@codeuxai/codeux 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dashboard/dist/assets/{AgentAvatarScene-DAjdNR8q.js → AgentAvatarScene-3Fa3RQHc.js} +1 -1
  2. package/dashboard/dist/assets/{AgentsPage-dG7HaQww.js → AgentsPage-woorcNHq.js} +2 -2
  3. package/dashboard/dist/assets/{BackgroundManager-CxjNC7ME.js → BackgroundManager-DbgGcx7x.js} +1 -1
  4. package/dashboard/dist/assets/{BranchNameSchemeEditor-wfv629Ml.js → BranchNameSchemeEditor-Bk2p-g2z.js} +1 -1
  5. package/dashboard/dist/assets/{BrowserPage-5eFh6pZt.js → BrowserPage-BLTJo_tK.js} +1 -1
  6. package/dashboard/dist/assets/{ChatPage-CfunB4-0.js → ChatPage-BljTU3OV.js} +1 -1
  7. package/dashboard/dist/assets/{ErrorPage-CEHtK2Hk.js → ErrorPage-DgYd7CGv.js} +1 -1
  8. package/dashboard/dist/assets/{FileBrowserPage-BOVIkrrv.js → FileBrowserPage-ChIelEM6.js} +1 -1
  9. package/dashboard/dist/assets/{KnowledgePage-CeKSiAys.js → KnowledgePage-DP7v0vk3.js} +1 -1
  10. package/dashboard/dist/assets/{ListWindowSelector-cshzGFot.js → ListWindowSelector-DtKcmXGY.js} +1 -1
  11. package/dashboard/dist/assets/{MemoryPage-Cctk6NFp.js → MemoryPage-2N_EfqqO.js} +1 -1
  12. package/dashboard/dist/assets/{OverviewTelemetry-D_V7-M2H.js → OverviewTelemetry-C1hoOMVQ.js} +1 -1
  13. package/dashboard/dist/assets/{ProjectsPage-D8ICYJVv.js → ProjectsPage-CEn6QDXI.js} +1 -1
  14. package/dashboard/dist/assets/{SchedulerPage-BM0sGrEZ.js → SchedulerPage-BDTm8Q3w.js} +1 -1
  15. package/dashboard/dist/assets/{SettingsPage-BlDplYC7.js → SettingsPage-CvSsreD8.js} +1 -1
  16. package/dashboard/dist/assets/{SprintBoatRace-DaP10JYZ.js → SprintBoatRace-Ryphd2ZR.js} +1 -1
  17. package/dashboard/dist/assets/{SprintDag-DbxJdjBK.js → SprintDag-BLP6gb8k.js} +1 -1
  18. package/dashboard/dist/assets/{SprintsPage-XGhd04Sn.js → SprintsPage-DORSqECT.js} +1 -1
  19. package/dashboard/dist/assets/{StatsPage-CrSwtTGq.js → StatsPage-BODQk1cJ.js} +1 -1
  20. package/dashboard/dist/assets/{TasksPage-DNpVBxt6.js → TasksPage-PeouQ4EB.js} +1 -1
  21. package/dashboard/dist/assets/{index-BViPTeJx.js → index-DddY8OV0.js} +5 -5
  22. package/dashboard/dist/assets/{monaco.contribution-KtWzfVt5.js → monaco.contribution-Bxle9Jvf.js} +2 -2
  23. package/dashboard/dist/assets/{tsMode-CalcmZZa.js → tsMode-BYb4cdGe.js} +1 -1
  24. package/dashboard/dist/index.html +1 -1
  25. package/package.json +1 -1
  26. package/.code-ux/debug.log +0 -97190
@@ -1,4 +1,4 @@
1
- import{O as e,S as t,_ as n,a as r,f as i,h as a,j as o,v as s,w as c,x as l,y as u}from"./vendor-Dl0fhdV0.js";import{n as d,t as f}from"./message-square-DiaHza4H.js";import{n as p,r as m,t as h}from"./user-DZm9qlWc.js";import{t as g}from"./wrench-DSVlxBRn.js";import{D as _,X as v,r as y}from"./project-data-BSCsMQnj.js";import{r as b,t as x}from"./use-reduced-motion-Dxh6NCDM.js";import{Ai as S,Ar as C,C as w,Ci as T,Di as E,Ei as D,En as O,Gr as k,Hr as A,Jr as j,Li as M,Mr as N,Or as P,Pi as F,Qn as ee,Rr as I,S as te,Sr as L,St as ne,T as re,Ti as ie,Tr as ae,Vr as R,X as z,b as oe,bi as B,cn as V,dr as H,dt as U,fn as W,ft as G,hi as se,jr as ce,jt as le,ki as ue,lr as K,mr as de,ni as fe,pr as q,pt as pe,rr as me,sr as J,ui as he,vi as ge,wi as _e,wt as ve,y as ye,yr as be}from"./index-BViPTeJx.js";import{n as xe,t as Se}from"./PlanningShip-BejkTCIr.js";import{n as Ce,t as we}from"./invocation-api-Cb2lPef-.js";l();function Te(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}function Ee(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}function De(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}function Oe(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}var ke=e=>{if(!e)return`Unassigned`;if(e.runtimeState?.routeKind===`virtual`&&e.runtimeState.virtualProvider)return`Virtual ${e.runtimeState.virtualProvider}`;if(e.runtimeState?.routeKind===`worker`){if(e.runtimeState.workerEndpointId)return e.runtimeState.workerEndpointId;if(e.connectionId)return e.connectionId}return e.connectionId?e.connectionId:`Unassigned`},Ae=({thread:e,onCompact:t,isCompacting:n})=>{let i=ke(e),a=K(),o=e?.runtimeState?.replayRequired,s=e?.runtimeState?.sessionIds&&e.runtimeState.sessionIds.length>0;return r(`div`,{className:`shrink-0 border-b border-black/[0.05] px-6 py-5 dark:border-white/[0.05]`,children:r(`div`,{className:`flex flex-col sm:flex-row items-start sm:justify-between gap-4 sm:gap-6`,children:[r(`div`,{children:[r(`div`,{className:`flex flex-wrap items-center gap-2`,children:[r(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-signal-500`,children:`Active Thread`}),o&&r(`span`,{className:`inline-flex items-center gap-1 rounded-sm border border-status-amber/30 bg-status-amber/20 shadow-sm px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-status-amber`,children:[r(B,{className:`h-3 w-3`}),`Replay Required`]}),!o&&s&&r(`span`,{className:`inline-flex items-center gap-1 rounded-sm border border-signal-500/30 bg-signal-500/20 shadow-sm px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-signal-500`,children:[r(F,{className:`h-3 w-3`}),`Active Session`]}),(!s||o)&&!o&&r(`span`,{className:`inline-flex items-center gap-1 rounded-sm border border-slate-500/30 bg-slate-500/20 shadow-sm px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-slate-600 dark:border-slate-400/30 dark:text-slate-300`,children:`New/Compacted`})]}),r(`h2`,{className:`mt-2 font-display text-3xl font-black tracking-tight text-slate-900 dark:text-white break-words min-w-0 w-full`,children:e?.title||`No Thread Selected`})]}),r(`div`,{className:`text-left sm:text-right text-[10px] font-mono text-slate-400 w-full sm:w-auto`,children:[r(`div`,{className:`mb-2 w-full`,children:e?`${e.messageCount} messages`:`0 messages`}),r(`div`,{className:`flex flex-wrap items-center sm:justify-end gap-2`,children:[e&&e.messageCount>0&&r(`button`,{type:`button`,onClick:t,disabled:n,style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:a.controlFeedback.duration,transitionTimingFunction:a.controlFeedback.ease},className:`inline-flex items-center gap-1.5 rounded-full border border-black/[0.08] bg-white/70 px-3 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-500 hover:bg-black/[0.03] hover:text-slate-900 dark:border-white/[0.08] dark:bg-white/[0.03] dark:text-slate-300 dark:hover:bg-white/[0.06] dark:hover:text-white ${n?`cursor-wait opacity-70`:``}`,title:`Compact Conversation`,children:[r(de,{className:`h-3.5 w-3.5 ${n?`animate-pulse text-signal-500`:``}`}),n?`Compacting session...`:`Compact`]}),r(`div`,{className:`inline-flex items-center gap-2`,children:[r(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400`,children:`Worker:`}),r(`span`,{className:`rounded-full border border-black/[0.08] bg-white/70 px-3 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-500 dark:border-white/[0.08] dark:bg-white/[0.03] dark:text-slate-300 transition-colors duration-300`,children:i})]})]})]})]})})};o();var je=({selectedProject:t,chatMode:n,onSetChatMode:i,onRefresh:o,manualRefreshing:c,onCreateThread:l,pendingDashboardMessages:u,activeConnectionLabel:d,error:f,railSlot:p,detailSlot:m})=>{let h=a(null),g=x(),_=K();return s(()=>{let e=q.context(()=>{h.current&&(g?q.set(Array.from(h.current.children),{opacity:1,y:0}):q.fromTo(Array.from(h.current.children),{opacity:0,y:28},{opacity:1,y:0,duration:.8,stagger:.08,ease:`power4.out`}))});return()=>e.revert()},[g]),r(ne,{padding:`chat`,className:`min-h-0 flex-1 flex flex-col gap-6 lg:gap-8 h-full`,children:[r(`div`,{ref:h,className:`shrink-0 flex flex-col gap-5 xl:flex-row xl:items-end xl:justify-between`,children:[r(`div`,{className:`space-y-4`,children:[r(`div`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] text-signal-500`,children:[r(I,{className:`h-3.5 w-3.5`,strokeWidth:2.2}),`Dashboard Chat`]}),r(`div`,{className:`relative overflow-hidden`,children:[r(`div`,{className:`pointer-events-none absolute -left-2 -top-8 font-display text-[6rem] font-black leading-none tracking-tighter text-black/[0.04] dark:text-white/[0.03]`,children:`CHAT`}),r(`h1`,{className:`relative z-10 font-display text-5xl font-black tracking-tighter text-slate-900 dark:text-white md:text-7xl`,children:[`Project `,r(`span`,{className:`text-signal-500`,children:`Conversations.`})]})]})]}),r(`div`,{className:`flex flex-wrap items-center gap-2 w-full xl:w-auto xl:justify-end`,children:[r(`div`,{role:`tablist`,"aria-label":`Chat Mode`,className:`flex items-center rounded-full border border-black/[0.06] bg-white/70 p-1 dark:border-white/[0.06] dark:bg-white/[0.03]`,children:[r(`button`,{role:`tab`,"aria-selected":n===`threads`,"aria-controls":`chat-panel`,type:`button`,onClick:()=>i(`threads`),style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:_.controlFeedback.duration,transitionTimingFunction:_.controlFeedback.ease},className:`rounded-full px-4 py-1.5 text-[10px] font-bold uppercase tracking-[0.14em] ${n===`threads`?`bg-slate-900 text-white dark:bg-white dark:text-void-900`:`text-slate-500 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white`}`,children:`Threads`}),r(`button`,{role:`tab`,"aria-selected":n===`invocations`,"aria-controls":`chat-panel`,type:`button`,onClick:()=>i(`invocations`),style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:_.controlFeedback.duration,transitionTimingFunction:_.controlFeedback.ease},className:`rounded-full px-4 py-1.5 text-[10px] font-bold uppercase tracking-[0.14em] ${n===`invocations`?`bg-slate-900 text-white dark:bg-white dark:text-void-900`:`text-slate-500 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white`}`,children:`Invocations`})]}),n===`threads`&&r(e,{children:[r(`span`,{className:`rounded-full border border-black/[0.06] bg-white/70 px-4 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-500 dark:border-white/[0.06] dark:bg-white/[0.03] dark:text-slate-400`,children:d||`Unassigned`}),r(`span`,{className:`flex items-center gap-2 rounded-full border px-4 py-2 text-[10px] font-bold uppercase tracking-[0.14em] ${u>0?`border-status-amber/30 bg-status-amber/10 text-status-amber`:`border-signal-500/20 bg-signal-500/10 text-signal-500`}`,children:[u>0&&r(`span`,{className:`relative flex h-2 w-2`,children:[r(`span`,{className:`absolute inline-flex h-full w-full animate-ping rounded-full bg-status-amber opacity-75`}),r(`span`,{className:`relative inline-flex h-2 w-2 rounded-full bg-status-amber`})]}),u>0?r(e,{children:[u,` pending`,r(`span`,{className:`sr-only`,children:` messages`})]}):`Inbox clear`]})]}),r(`button`,{type:`button`,onClick:o,disabled:c,style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:_.controlFeedback.duration,transitionTimingFunction:_.controlFeedback.ease},className:`inline-flex items-center gap-2 rounded-full border border-black/[0.06] bg-white/70 px-4 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-500 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-50 dark:border-white/[0.06] dark:bg-white/[0.03] dark:text-slate-400 dark:hover:text-white`,children:[r(C,{className:`h-3.5 w-3.5 ${c?`animate-spin`:``}`,strokeWidth:2.1}),`Refresh`]}),n===`threads`&&r(`button`,{type:`button`,onClick:l,disabled:!t,style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:_.controlFeedback.duration,transitionTimingFunction:_.controlFeedback.ease},className:`inline-flex items-center gap-2 rounded-full bg-signal-500 px-4 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-void-900 hover:bg-signal-400 disabled:cursor-not-allowed disabled:opacity-50`,children:[r(N,{className:`h-3.5 w-3.5`,strokeWidth:2.3}),`New Thread`]})]})]}),(f||c)&&r(`div`,{className:`shrink-0`,children:r(V,{status:f?`error`:`pending`,message:f||`Refreshing chat state...`})}),r(`div`,{className:`flex-1 min-h-0 flex flex-col lg:grid lg:grid-cols-[360px_minmax(0,1fr)] gap-6 pb-6`,children:[p,r(`section`,{className:`flex flex-col min-h-0 flex-1 rounded-3xl border border-black/[0.06] bg-white/80 shadow-[0_2px_20px_rgba(0,0,0,0.04)] backdrop-blur-sm dark:border-white/[0.06] dark:bg-void-800/75 dark:shadow-[0_4px_24px_rgba(0,0,0,0.2)]`,children:m})]})]})},Me=({title:e,count:t,secondaryTitle:n,secondaryCount:i,children:a})=>r(`aside`,{"aria-label":e,className:`flex flex-col max-h-[50vh] lg:max-h-none rounded-3xl border border-black/[0.06] bg-white/80 shadow-[0_2px_20px_rgba(0,0,0,0.04)] backdrop-blur-sm dark:border-white/[0.06] dark:bg-void-800/75 dark:shadow-[0_4px_24px_rgba(0,0,0,0.2)] min-h-[20rem] lg:min-h-0`,children:[r(`div`,{className:`shrink-0 p-5 mb-2`,children:r(`div`,{className:`flex items-center justify-between`,children:[r(`div`,{children:[r(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400`,children:e}),r(`div`,{className:`mt-1 font-display text-2xl font-black tracking-tight text-slate-900 dark:text-white`,children:t})]}),n&&i!==void 0&&r(`div`,{className:`text-right`,children:[r(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400`,children:n}),r(`div`,{className:`mt-1 font-mono text-sm text-slate-600 dark:text-slate-300`,children:i})]})]})}),r(`div`,{className:`flex-1 overflow-y-auto min-h-0 px-5 pb-5`,children:a})]}),Ne=e=>{if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t},Y=(e,t=0)=>{let n=Ne(e);return n?n.getTime():t},Pe=e=>{let t=Ne(e);return t?t.toLocaleTimeString(`en-US`,{hour:`2-digit`,minute:`2-digit`,hour12:!1}):``},Fe=e=>{if(!e)return`No messages`;let t=Y(e,NaN);if(Number.isNaN(t))return`Just now`;let n=Math.max(0,Date.now()-t),r=Math.floor(n/6e4);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`},X=({provider:e,size:t=20,className:n=``,title:i})=>{let a=e.toLowerCase(),o=null;if(a.includes(`antigravity`)?o=`antigravity`:a.includes(`gemini`)?o=`gemini`:a.includes(`codex`)?o=`codex`:a.includes(`claude`)?o=`claude-code`:a.includes(`qwen`)?o=`qwen-code`:a.includes(`opencode`)?o=`opencode`:(a===`jules`||a.startsWith(`jules-`)||a.startsWith(`jules_`))&&(o=`jules`),o){let e=`w-5 h-5 rounded-[0.375rem]`,i=`w-3 h-3`;return t<=12?(e=`w-3 h-3 rounded-[0.25rem]`,i=`w-2 h-2`):t<=16?(e=`w-4 h-4 rounded-[0.3rem]`,i=`w-2.5 h-2.5`):t<=18?(e=`w-[18px] h-[18px] rounded-[0.35rem]`,i=`w-[11px] h-[11px]`):t<=20?(e=`w-5 h-5 rounded-[0.375rem]`,i=`w-3 h-3`):t<=24?(e=`w-6 h-6 rounded-[0.5rem]`,i=`w-3.5 h-3.5`):(e=`w-[${t}px] h-[${t}px] rounded-[0.5rem]`,i=`w-[${Math.round(t*.6)}px] h-[${Math.round(t*.6)}px]`),r(w,{id:o,className:`${e} ${n}`,imageClassName:i})}return r(S,{size:t,className:`text-slate-500 ${n}`})};function Ie(e){let t=e.toLowerCase(),n=Object.keys(re);return n.includes(t)?t:[...n].sort((e,t)=>t.length-e.length).find(e=>t.startsWith(e+`-`)||t.startsWith(e+`_`))||(t.includes(`claude`)?`claude-code`:t.includes(`gemini`)?`gemini`:t.includes(`codex`)?`codex`:t.includes(`qwen`)?`qwen-code`:t.includes(`opencode`)?`opencode`:t.includes(`antigravity`)?`antigravity`:t.includes(`jules`)?`jules`:null)}var Le=({role:e,provider:t,agentName:n,avatarConfig:i,isDark:a=!0})=>{let o=e===`agent`&&t?Ie(t):null,s=()=>e===`jules`?`Jules`:e===`container`?`Container Worker`:e===`system`?`System`:e===`user`?`User`:o?z[o]:n||`Agent`;return r(`div`,{class:`flex-shrink-0 w-8 h-8 rounded-md border flex items-center justify-center overflow-hidden ${(()=>{switch(e){case`jules`:return`bg-void-900 border-void-700 text-signal-500`;case`container`:return`bg-slate-900 border-slate-700 text-slate-300`;case`system`:return`bg-slate-100 dark:bg-slate-800 border-slate-200 dark:border-slate-700`;case`user`:return`bg-slate-200 dark:bg-slate-700 border-slate-300 dark:border-slate-600`;default:return`bg-void-900/95 border-void-700/80 dark:bg-void-900 dark:border-void-700`}})()}`,role:`img`,"aria-label":s(),title:s(),children:(()=>{switch(e){case`jules`:return r(X,{provider:`jules`,size:20});case`container`:return r(`svg`,{viewBox:`-60 -40 120 80`,"aria-hidden":`true`,class:`w-full h-full`,children:r(xe,{accentColor:`#00E0A0`,isMoving:!0,isDark:a})});case`system`:return r(L,{class:`w-5 h-5 text-slate-500`,"aria-hidden":`true`});case`user`:return r(h,{class:`w-5 h-5 text-slate-400`,"aria-hidden":`true`});default:if(i)try{let e=me(i);return r(`div`,{class:`w-full h-full p-0.5 overflow-hidden`,"data-cux-agent-name":n??``,children:r(O,{config:e,size:32,expression:`happy`,className:`w-full h-full`})})}catch{}return o?r(X,{provider:o,size:20,title:z[o]}):r(S,{class:`w-5 h-5 text-slate-400`,"aria-hidden":`true`})}})()})},Re=({status:e,label:t})=>{let n=()=>{switch(e){case`queued`:return`bg-slate-400`;case`running`:return`bg-signal-500 animate-pulse`;case`completed`:return`bg-slate-600 dark:bg-slate-50`;case`failed`:return`bg-red-500`;default:return`bg-slate-500`}},i=()=>t?`${t}: ${e}`:e;return r(`div`,{class:`w-2 h-2 rounded-full ${n()}`,role:`status`,"aria-live":`polite`,"aria-label":i(),title:i()})},ze=e=>e>0?`text-status-amber animate-pulse`:`text-slate-400 dark:text-slate-500`,Z={replay:{dot:`bg-status-amber shadow-[0_0_6px_rgba(245,158,11,0.4)]`,text:`text-status-amber`,bg:`bg-status-amber/[0.08]`,border:`border-status-amber/20`},active:{dot:`bg-signal-500 shadow-[0_0_8px_rgba(0,224,160,0.6)] animate-pulse`,text:`text-signal-500`,bg:`bg-signal-500/[0.08]`,border:`border-signal-500/20`}},Be=({threads:e,selectedThreadId:t,onSelect:n,onDelete:i,deletingThreadId:a})=>{let o=K();return r(`div`,{className:`space-y-3`,children:e.map(e=>{let s=t===e.id,c=!!(e.runtimeState?.sessionIds&&e.runtimeState.sessionIds.length>0&&!e.runtimeState?.replayRequired),l=!!e.runtimeState?.replayRequired;return r(`div`,{className:`group relative overflow-hidden rounded-[1.75rem]`,children:[r(`button`,{type:`button`,"aria-selected":s?`true`:`false`,onClick:()=>n(e.id),style:{transitionProperty:`all`,transitionDuration:o.controlFeedback.duration,transitionTimingFunction:o.controlFeedback.ease},className:`w-full rounded-[1.75rem] p-5 pr-16 text-left
1
+ import{O as e,S as t,_ as n,a as r,f as i,h as a,j as o,v as s,w as c,x as l,y as u}from"./vendor-Dl0fhdV0.js";import{n as d,t as f}from"./message-square-DiaHza4H.js";import{n as p,r as m,t as h}from"./user-DZm9qlWc.js";import{t as g}from"./wrench-DSVlxBRn.js";import{D as _,X as v,r as y}from"./project-data-BSCsMQnj.js";import{r as b,t as x}from"./use-reduced-motion-Dxh6NCDM.js";import{Ai as S,Ar as C,C as w,Ci as T,Di as E,Ei as D,En as O,Gr as k,Hr as A,Jr as j,Li as M,Mr as N,Or as P,Pi as F,Qn as ee,Rr as I,S as te,Sr as L,St as ne,T as re,Ti as ie,Tr as ae,Vr as R,X as z,b as oe,bi as B,cn as V,dr as H,dt as U,fn as W,ft as G,hi as se,jr as ce,jt as le,ki as ue,lr as K,mr as de,ni as fe,pr as q,pt as pe,rr as me,sr as J,ui as he,vi as ge,wi as _e,wt as ve,y as ye,yr as be}from"./index-DddY8OV0.js";import{n as xe,t as Se}from"./PlanningShip-BejkTCIr.js";import{n as Ce,t as we}from"./invocation-api-Cb2lPef-.js";l();function Te(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}function Ee(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}function De(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}function Oe(e){let t=new Map;for(let n of e)t.set(n.id,n);return t}var ke=e=>{if(!e)return`Unassigned`;if(e.runtimeState?.routeKind===`virtual`&&e.runtimeState.virtualProvider)return`Virtual ${e.runtimeState.virtualProvider}`;if(e.runtimeState?.routeKind===`worker`){if(e.runtimeState.workerEndpointId)return e.runtimeState.workerEndpointId;if(e.connectionId)return e.connectionId}return e.connectionId?e.connectionId:`Unassigned`},Ae=({thread:e,onCompact:t,isCompacting:n})=>{let i=ke(e),a=K(),o=e?.runtimeState?.replayRequired,s=e?.runtimeState?.sessionIds&&e.runtimeState.sessionIds.length>0;return r(`div`,{className:`shrink-0 border-b border-black/[0.05] px-6 py-5 dark:border-white/[0.05]`,children:r(`div`,{className:`flex flex-col sm:flex-row items-start sm:justify-between gap-4 sm:gap-6`,children:[r(`div`,{children:[r(`div`,{className:`flex flex-wrap items-center gap-2`,children:[r(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-signal-500`,children:`Active Thread`}),o&&r(`span`,{className:`inline-flex items-center gap-1 rounded-sm border border-status-amber/30 bg-status-amber/20 shadow-sm px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-status-amber`,children:[r(B,{className:`h-3 w-3`}),`Replay Required`]}),!o&&s&&r(`span`,{className:`inline-flex items-center gap-1 rounded-sm border border-signal-500/30 bg-signal-500/20 shadow-sm px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-signal-500`,children:[r(F,{className:`h-3 w-3`}),`Active Session`]}),(!s||o)&&!o&&r(`span`,{className:`inline-flex items-center gap-1 rounded-sm border border-slate-500/30 bg-slate-500/20 shadow-sm px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-slate-600 dark:border-slate-400/30 dark:text-slate-300`,children:`New/Compacted`})]}),r(`h2`,{className:`mt-2 font-display text-3xl font-black tracking-tight text-slate-900 dark:text-white break-words min-w-0 w-full`,children:e?.title||`No Thread Selected`})]}),r(`div`,{className:`text-left sm:text-right text-[10px] font-mono text-slate-400 w-full sm:w-auto`,children:[r(`div`,{className:`mb-2 w-full`,children:e?`${e.messageCount} messages`:`0 messages`}),r(`div`,{className:`flex flex-wrap items-center sm:justify-end gap-2`,children:[e&&e.messageCount>0&&r(`button`,{type:`button`,onClick:t,disabled:n,style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:a.controlFeedback.duration,transitionTimingFunction:a.controlFeedback.ease},className:`inline-flex items-center gap-1.5 rounded-full border border-black/[0.08] bg-white/70 px-3 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-500 hover:bg-black/[0.03] hover:text-slate-900 dark:border-white/[0.08] dark:bg-white/[0.03] dark:text-slate-300 dark:hover:bg-white/[0.06] dark:hover:text-white ${n?`cursor-wait opacity-70`:``}`,title:`Compact Conversation`,children:[r(de,{className:`h-3.5 w-3.5 ${n?`animate-pulse text-signal-500`:``}`}),n?`Compacting session...`:`Compact`]}),r(`div`,{className:`inline-flex items-center gap-2`,children:[r(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400`,children:`Worker:`}),r(`span`,{className:`rounded-full border border-black/[0.08] bg-white/70 px-3 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-500 dark:border-white/[0.08] dark:bg-white/[0.03] dark:text-slate-300 transition-colors duration-300`,children:i})]})]})]})]})})};o();var je=({selectedProject:t,chatMode:n,onSetChatMode:i,onRefresh:o,manualRefreshing:c,onCreateThread:l,pendingDashboardMessages:u,activeConnectionLabel:d,error:f,railSlot:p,detailSlot:m})=>{let h=a(null),g=x(),_=K();return s(()=>{let e=q.context(()=>{h.current&&(g?q.set(Array.from(h.current.children),{opacity:1,y:0}):q.fromTo(Array.from(h.current.children),{opacity:0,y:28},{opacity:1,y:0,duration:.8,stagger:.08,ease:`power4.out`}))});return()=>e.revert()},[g]),r(ne,{padding:`chat`,className:`min-h-0 flex-1 flex flex-col gap-6 lg:gap-8 h-full`,children:[r(`div`,{ref:h,className:`shrink-0 flex flex-col gap-5 xl:flex-row xl:items-end xl:justify-between`,children:[r(`div`,{className:`space-y-4`,children:[r(`div`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.2em] text-signal-500`,children:[r(I,{className:`h-3.5 w-3.5`,strokeWidth:2.2}),`Dashboard Chat`]}),r(`div`,{className:`relative overflow-hidden`,children:[r(`div`,{className:`pointer-events-none absolute -left-2 -top-8 font-display text-[6rem] font-black leading-none tracking-tighter text-black/[0.04] dark:text-white/[0.03]`,children:`CHAT`}),r(`h1`,{className:`relative z-10 font-display text-5xl font-black tracking-tighter text-slate-900 dark:text-white md:text-7xl`,children:[`Project `,r(`span`,{className:`text-signal-500`,children:`Conversations.`})]})]})]}),r(`div`,{className:`flex flex-wrap items-center gap-2 w-full xl:w-auto xl:justify-end`,children:[r(`div`,{role:`tablist`,"aria-label":`Chat Mode`,className:`flex items-center rounded-full border border-black/[0.06] bg-white/70 p-1 dark:border-white/[0.06] dark:bg-white/[0.03]`,children:[r(`button`,{role:`tab`,"aria-selected":n===`threads`,"aria-controls":`chat-panel`,type:`button`,onClick:()=>i(`threads`),style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:_.controlFeedback.duration,transitionTimingFunction:_.controlFeedback.ease},className:`rounded-full px-4 py-1.5 text-[10px] font-bold uppercase tracking-[0.14em] ${n===`threads`?`bg-slate-900 text-white dark:bg-white dark:text-void-900`:`text-slate-500 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white`}`,children:`Threads`}),r(`button`,{role:`tab`,"aria-selected":n===`invocations`,"aria-controls":`chat-panel`,type:`button`,onClick:()=>i(`invocations`),style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:_.controlFeedback.duration,transitionTimingFunction:_.controlFeedback.ease},className:`rounded-full px-4 py-1.5 text-[10px] font-bold uppercase tracking-[0.14em] ${n===`invocations`?`bg-slate-900 text-white dark:bg-white dark:text-void-900`:`text-slate-500 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white`}`,children:`Invocations`})]}),n===`threads`&&r(e,{children:[r(`span`,{className:`rounded-full border border-black/[0.06] bg-white/70 px-4 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-500 dark:border-white/[0.06] dark:bg-white/[0.03] dark:text-slate-400`,children:d||`Unassigned`}),r(`span`,{className:`flex items-center gap-2 rounded-full border px-4 py-2 text-[10px] font-bold uppercase tracking-[0.14em] ${u>0?`border-status-amber/30 bg-status-amber/10 text-status-amber`:`border-signal-500/20 bg-signal-500/10 text-signal-500`}`,children:[u>0&&r(`span`,{className:`relative flex h-2 w-2`,children:[r(`span`,{className:`absolute inline-flex h-full w-full animate-ping rounded-full bg-status-amber opacity-75`}),r(`span`,{className:`relative inline-flex h-2 w-2 rounded-full bg-status-amber`})]}),u>0?r(e,{children:[u,` pending`,r(`span`,{className:`sr-only`,children:` messages`})]}):`Inbox clear`]})]}),r(`button`,{type:`button`,onClick:o,disabled:c,style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:_.controlFeedback.duration,transitionTimingFunction:_.controlFeedback.ease},className:`inline-flex items-center gap-2 rounded-full border border-black/[0.06] bg-white/70 px-4 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-500 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-50 dark:border-white/[0.06] dark:bg-white/[0.03] dark:text-slate-400 dark:hover:text-white`,children:[r(C,{className:`h-3.5 w-3.5 ${c?`animate-spin`:``}`,strokeWidth:2.1}),`Refresh`]}),n===`threads`&&r(`button`,{type:`button`,onClick:l,disabled:!t,style:{transitionProperty:`color, background-color, border-color, text-decoration-color, fill, stroke`,transitionDuration:_.controlFeedback.duration,transitionTimingFunction:_.controlFeedback.ease},className:`inline-flex items-center gap-2 rounded-full bg-signal-500 px-4 py-2 text-[10px] font-bold uppercase tracking-[0.14em] text-void-900 hover:bg-signal-400 disabled:cursor-not-allowed disabled:opacity-50`,children:[r(N,{className:`h-3.5 w-3.5`,strokeWidth:2.3}),`New Thread`]})]})]}),(f||c)&&r(`div`,{className:`shrink-0`,children:r(V,{status:f?`error`:`pending`,message:f||`Refreshing chat state...`})}),r(`div`,{className:`flex-1 min-h-0 flex flex-col lg:grid lg:grid-cols-[360px_minmax(0,1fr)] gap-6 pb-6`,children:[p,r(`section`,{className:`flex flex-col min-h-0 flex-1 rounded-3xl border border-black/[0.06] bg-white/80 shadow-[0_2px_20px_rgba(0,0,0,0.04)] backdrop-blur-sm dark:border-white/[0.06] dark:bg-void-800/75 dark:shadow-[0_4px_24px_rgba(0,0,0,0.2)]`,children:m})]})]})},Me=({title:e,count:t,secondaryTitle:n,secondaryCount:i,children:a})=>r(`aside`,{"aria-label":e,className:`flex flex-col max-h-[50vh] lg:max-h-none rounded-3xl border border-black/[0.06] bg-white/80 shadow-[0_2px_20px_rgba(0,0,0,0.04)] backdrop-blur-sm dark:border-white/[0.06] dark:bg-void-800/75 dark:shadow-[0_4px_24px_rgba(0,0,0,0.2)] min-h-[20rem] lg:min-h-0`,children:[r(`div`,{className:`shrink-0 p-5 mb-2`,children:r(`div`,{className:`flex items-center justify-between`,children:[r(`div`,{children:[r(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400`,children:e}),r(`div`,{className:`mt-1 font-display text-2xl font-black tracking-tight text-slate-900 dark:text-white`,children:t})]}),n&&i!==void 0&&r(`div`,{className:`text-right`,children:[r(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400`,children:n}),r(`div`,{className:`mt-1 font-mono text-sm text-slate-600 dark:text-slate-300`,children:i})]})]})}),r(`div`,{className:`flex-1 overflow-y-auto min-h-0 px-5 pb-5`,children:a})]}),Ne=e=>{if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t},Y=(e,t=0)=>{let n=Ne(e);return n?n.getTime():t},Pe=e=>{let t=Ne(e);return t?t.toLocaleTimeString(`en-US`,{hour:`2-digit`,minute:`2-digit`,hour12:!1}):``},Fe=e=>{if(!e)return`No messages`;let t=Y(e,NaN);if(Number.isNaN(t))return`Just now`;let n=Math.max(0,Date.now()-t),r=Math.floor(n/6e4);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`},X=({provider:e,size:t=20,className:n=``,title:i})=>{let a=e.toLowerCase(),o=null;if(a.includes(`antigravity`)?o=`antigravity`:a.includes(`gemini`)?o=`gemini`:a.includes(`codex`)?o=`codex`:a.includes(`claude`)?o=`claude-code`:a.includes(`qwen`)?o=`qwen-code`:a.includes(`opencode`)?o=`opencode`:(a===`jules`||a.startsWith(`jules-`)||a.startsWith(`jules_`))&&(o=`jules`),o){let e=`w-5 h-5 rounded-[0.375rem]`,i=`w-3 h-3`;return t<=12?(e=`w-3 h-3 rounded-[0.25rem]`,i=`w-2 h-2`):t<=16?(e=`w-4 h-4 rounded-[0.3rem]`,i=`w-2.5 h-2.5`):t<=18?(e=`w-[18px] h-[18px] rounded-[0.35rem]`,i=`w-[11px] h-[11px]`):t<=20?(e=`w-5 h-5 rounded-[0.375rem]`,i=`w-3 h-3`):t<=24?(e=`w-6 h-6 rounded-[0.5rem]`,i=`w-3.5 h-3.5`):(e=`w-[${t}px] h-[${t}px] rounded-[0.5rem]`,i=`w-[${Math.round(t*.6)}px] h-[${Math.round(t*.6)}px]`),r(w,{id:o,className:`${e} ${n}`,imageClassName:i})}return r(S,{size:t,className:`text-slate-500 ${n}`})};function Ie(e){let t=e.toLowerCase(),n=Object.keys(re);return n.includes(t)?t:[...n].sort((e,t)=>t.length-e.length).find(e=>t.startsWith(e+`-`)||t.startsWith(e+`_`))||(t.includes(`claude`)?`claude-code`:t.includes(`gemini`)?`gemini`:t.includes(`codex`)?`codex`:t.includes(`qwen`)?`qwen-code`:t.includes(`opencode`)?`opencode`:t.includes(`antigravity`)?`antigravity`:t.includes(`jules`)?`jules`:null)}var Le=({role:e,provider:t,agentName:n,avatarConfig:i,isDark:a=!0})=>{let o=e===`agent`&&t?Ie(t):null,s=()=>e===`jules`?`Jules`:e===`container`?`Container Worker`:e===`system`?`System`:e===`user`?`User`:o?z[o]:n||`Agent`;return r(`div`,{class:`flex-shrink-0 w-8 h-8 rounded-md border flex items-center justify-center overflow-hidden ${(()=>{switch(e){case`jules`:return`bg-void-900 border-void-700 text-signal-500`;case`container`:return`bg-slate-900 border-slate-700 text-slate-300`;case`system`:return`bg-slate-100 dark:bg-slate-800 border-slate-200 dark:border-slate-700`;case`user`:return`bg-slate-200 dark:bg-slate-700 border-slate-300 dark:border-slate-600`;default:return`bg-void-900/95 border-void-700/80 dark:bg-void-900 dark:border-void-700`}})()}`,role:`img`,"aria-label":s(),title:s(),children:(()=>{switch(e){case`jules`:return r(X,{provider:`jules`,size:20});case`container`:return r(`svg`,{viewBox:`-60 -40 120 80`,"aria-hidden":`true`,class:`w-full h-full`,children:r(xe,{accentColor:`#00E0A0`,isMoving:!0,isDark:a})});case`system`:return r(L,{class:`w-5 h-5 text-slate-500`,"aria-hidden":`true`});case`user`:return r(h,{class:`w-5 h-5 text-slate-400`,"aria-hidden":`true`});default:if(i)try{let e=me(i);return r(`div`,{class:`w-full h-full p-0.5 overflow-hidden`,"data-cux-agent-name":n??``,children:r(O,{config:e,size:32,expression:`happy`,className:`w-full h-full`})})}catch{}return o?r(X,{provider:o,size:20,title:z[o]}):r(S,{class:`w-5 h-5 text-slate-400`,"aria-hidden":`true`})}})()})},Re=({status:e,label:t})=>{let n=()=>{switch(e){case`queued`:return`bg-slate-400`;case`running`:return`bg-signal-500 animate-pulse`;case`completed`:return`bg-slate-600 dark:bg-slate-50`;case`failed`:return`bg-red-500`;default:return`bg-slate-500`}},i=()=>t?`${t}: ${e}`:e;return r(`div`,{class:`w-2 h-2 rounded-full ${n()}`,role:`status`,"aria-live":`polite`,"aria-label":i(),title:i()})},ze=e=>e>0?`text-status-amber animate-pulse`:`text-slate-400 dark:text-slate-500`,Z={replay:{dot:`bg-status-amber shadow-[0_0_6px_rgba(245,158,11,0.4)]`,text:`text-status-amber`,bg:`bg-status-amber/[0.08]`,border:`border-status-amber/20`},active:{dot:`bg-signal-500 shadow-[0_0_8px_rgba(0,224,160,0.6)] animate-pulse`,text:`text-signal-500`,bg:`bg-signal-500/[0.08]`,border:`border-signal-500/20`}},Be=({threads:e,selectedThreadId:t,onSelect:n,onDelete:i,deletingThreadId:a})=>{let o=K();return r(`div`,{className:`space-y-3`,children:e.map(e=>{let s=t===e.id,c=!!(e.runtimeState?.sessionIds&&e.runtimeState.sessionIds.length>0&&!e.runtimeState?.replayRequired),l=!!e.runtimeState?.replayRequired;return r(`div`,{className:`group relative overflow-hidden rounded-[1.75rem]`,children:[r(`button`,{type:`button`,"aria-selected":s?`true`:`false`,onClick:()=>n(e.id),style:{transitionProperty:`all`,transitionDuration:o.controlFeedback.duration,transitionTimingFunction:o.controlFeedback.ease},className:`w-full rounded-[1.75rem] p-5 pr-16 text-left
2
2
  bg-white/70 dark:bg-void-800/60 backdrop-blur-2xl
3
3
  shadow-[0_2px_20px_rgba(0,0,0,0.04)] dark:shadow-[0_4px_24px_rgba(0,0,0,0.2)]
4
4
  focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-signal-500 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-void-900
@@ -1 +1 @@
1
- import{a as e,h as t,w as n,x as r}from"./vendor-Dl0fhdV0.js";import{t as i}from"./use-reduced-motion-Dxh6NCDM.js";import{Li as a,pr as o}from"./index-BViPTeJx.js";r();var s=()=>{let r=t(null),a=i();return n(()=>{if(!a&&r.current){let e=o.timeline({repeat:-1,yoyo:!0});return e.to(r.current,{attr:{d:`M 0,200 C 200,600 400,-100 800,400 C 1200,900 1600,0 2000,300`},duration:16,ease:`sine.inOut`}).to(r.current,{attr:{d:`M 0,400 C 300,-100 500,800 1000,200 C 1400,-200 1800,700 2000,500`},duration:22,ease:`sine.inOut`}),()=>{e.kill()}}},[a]),e(`div`,{className:`fixed inset-0 pointer-events-none z-0 overflow-hidden`,children:[e(`div`,{className:`absolute inset-0 bg-[radial-gradient(ellipse_80%_50%_at_-10%_-10%,_rgba(0,224,160,0.04)_0%,_transparent_60%)] dark:bg-[radial-gradient(ellipse_80%_50%_at_-10%_-10%,_rgba(0,224,160,0.06)_0%,_transparent_60%)] transition-colors duration-1000`}),e(`div`,{className:`absolute inset-0 bg-[radial-gradient(ellipse_50%_40%_at_110%_110%,_rgba(255,184,0,0.03)_0%,_transparent_60%)] dark:bg-[radial-gradient(ellipse_50%_40%_at_110%_110%,_rgba(255,184,0,0.04)_0%,_transparent_60%)]`}),e(`svg`,{className:`absolute w-full h-[100vh] top-[5%] left-0 opacity-[0.025] dark:opacity-[0.04]`,viewBox:`0 0 2000 800`,preserveAspectRatio:`none`,children:[e(`path`,{ref:r,d:`M 0,300 C 300,100 600,700 1000,300 C 1400,-100 1800,600 2000,200`,fill:`none`,stroke:`url(#bg-gradient)`,strokeWidth:`2`}),e(`defs`,{children:e(`linearGradient`,{id:`bg-gradient`,x1:`0`,y1:`0`,x2:`1`,y2:`0`,children:[e(`stop`,{offset:`0%`,stopColor:`#00E0A0`}),e(`stop`,{offset:`50%`,stopColor:`#33FFB8`}),e(`stop`,{offset:`100%`,stopColor:`#FFB800`})]})})]})]})};r();function c({errorCode:r=404,message:i=`Page not found`}){let c=t(null);return n(()=>{c.current&&o.fromTo(c.current,{opacity:0,y:32},{opacity:1,y:0,duration:.6,ease:`power4.out`})},[]),e(`div`,{className:`h-screen w-full flex items-center justify-center relative bg-transparent`,children:[e(`div`,{className:`absolute inset-0 z-0`,children:e(s,{})}),e(`div`,{ref:c,className:`z-10 flex flex-col items-center`,children:[e(`h1`,{className:`text-[9rem] font-black leading-none bg-gradient-to-r from-[#00E0A0] to-[#FFB800] bg-clip-text text-transparent drop-shadow-[0_0_15px_rgba(0,224,160,0.3)]`,children:r}),e(`p`,{className:`text-xl text-slate-400 dark:text-slate-400 mt-4 mb-8`,children:i}),e(a,{to:`/`,className:`bg-[#00E0A0] text-[#0d0f12] font-semibold px-6 py-3 rounded-[1.25rem] hover:opacity-90 transition-opacity`,children:`Go Home`})]})]})}export{c as ErrorPage};
1
+ import{a as e,h as t,w as n,x as r}from"./vendor-Dl0fhdV0.js";import{t as i}from"./use-reduced-motion-Dxh6NCDM.js";import{Li as a,pr as o}from"./index-DddY8OV0.js";r();var s=()=>{let r=t(null),a=i();return n(()=>{if(!a&&r.current){let e=o.timeline({repeat:-1,yoyo:!0});return e.to(r.current,{attr:{d:`M 0,200 C 200,600 400,-100 800,400 C 1200,900 1600,0 2000,300`},duration:16,ease:`sine.inOut`}).to(r.current,{attr:{d:`M 0,400 C 300,-100 500,800 1000,200 C 1400,-200 1800,700 2000,500`},duration:22,ease:`sine.inOut`}),()=>{e.kill()}}},[a]),e(`div`,{className:`fixed inset-0 pointer-events-none z-0 overflow-hidden`,children:[e(`div`,{className:`absolute inset-0 bg-[radial-gradient(ellipse_80%_50%_at_-10%_-10%,_rgba(0,224,160,0.04)_0%,_transparent_60%)] dark:bg-[radial-gradient(ellipse_80%_50%_at_-10%_-10%,_rgba(0,224,160,0.06)_0%,_transparent_60%)] transition-colors duration-1000`}),e(`div`,{className:`absolute inset-0 bg-[radial-gradient(ellipse_50%_40%_at_110%_110%,_rgba(255,184,0,0.03)_0%,_transparent_60%)] dark:bg-[radial-gradient(ellipse_50%_40%_at_110%_110%,_rgba(255,184,0,0.04)_0%,_transparent_60%)]`}),e(`svg`,{className:`absolute w-full h-[100vh] top-[5%] left-0 opacity-[0.025] dark:opacity-[0.04]`,viewBox:`0 0 2000 800`,preserveAspectRatio:`none`,children:[e(`path`,{ref:r,d:`M 0,300 C 300,100 600,700 1000,300 C 1400,-100 1800,600 2000,200`,fill:`none`,stroke:`url(#bg-gradient)`,strokeWidth:`2`}),e(`defs`,{children:e(`linearGradient`,{id:`bg-gradient`,x1:`0`,y1:`0`,x2:`1`,y2:`0`,children:[e(`stop`,{offset:`0%`,stopColor:`#00E0A0`}),e(`stop`,{offset:`50%`,stopColor:`#33FFB8`}),e(`stop`,{offset:`100%`,stopColor:`#FFB800`})]})})]})]})};r();function c({errorCode:r=404,message:i=`Page not found`}){let c=t(null);return n(()=>{c.current&&o.fromTo(c.current,{opacity:0,y:32},{opacity:1,y:0,duration:.6,ease:`power4.out`})},[]),e(`div`,{className:`h-screen w-full flex items-center justify-center relative bg-transparent`,children:[e(`div`,{className:`absolute inset-0 z-0`,children:e(s,{})}),e(`div`,{ref:c,className:`z-10 flex flex-col items-center`,children:[e(`h1`,{className:`text-[9rem] font-black leading-none bg-gradient-to-r from-[#00E0A0] to-[#FFB800] bg-clip-text text-transparent drop-shadow-[0_0_15px_rgba(0,224,160,0.3)]`,children:r}),e(`p`,{className:`text-xl text-slate-400 dark:text-slate-400 mt-4 mb-8`,children:i}),e(a,{to:`/`,className:`bg-[#00E0A0] text-[#0d0f12] font-semibold px-6 py-3 rounded-[1.25rem] hover:opacity-90 transition-opacity`,children:`Go Home`})]})]})}export{c as ErrorPage};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-DumxT3u9.js","assets/lspLanguageFeatures-BLk1gUG3.js","assets/editor.api2-KGjWAjnM.js","assets/rolldown-runtime-Cyuzqnbw.js","assets/editor-Br_kD0ds.css","assets/workers-BiyiPf0K.js","assets/htmlMode-Cqy792Ta.js","assets/jsonMode-CbzveF2H.js","assets/freemarker2-o_m3eAVB.js","assets/handlebars-DveRADXi.js","assets/html-7D22xAOr.js","assets/javascript-B23PyUcM.js","assets/typescript-9U784hMu.js","assets/liquid-Dh_PtpQ0.js","assets/mdx-BKpk3ry9.js","assets/python-Y8V29hw_.js","assets/razor-DteNJvx9.js","assets/xml-jzQtqvqd.js","assets/yaml-D0dAjXXf.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-Cyuzqnbw.js";import{O as t,S as n,_ as r,a as i,c as a,d as o,h as s,j as c,r as l,t as u,w as d,x as f,y as p}from"./vendor-Dl0fhdV0.js";import{t as m}from"./createLucideIcon-BshUfn15.js";import{t as ee}from"./folder-CpXTXAeA.js";import{t as h}from"./server-Colb_cUG.js";import{X as g,r as te}from"./project-data-BSCsMQnj.js";import{$r as ne,Ar as re,Ci as ie,Ii as _,Nr as v,Or as ae,Qr as oe,St as y,Vr as b,Zt as x,ei as se,kr as S,on as C,wr as ce}from"./index-BViPTeJx.js";import{a as w,c as T,d as E,f as le,h as D,i as O,l as k,m as ue,n as A,o as de,p as j,r as fe,s as M,t as pe,u as me}from"./editor.api2-KGjWAjnM.js";import{t as he}from"./monaco.contribution-KtWzfVt5.js";import{t as ge}from"./workers-BiyiPf0K.js";var _e=m(`columns-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M12 3v18`,key:`108xh3`}]]),ve=m(`file-diff`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M9 10h6`,key:`9gxzsh`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`path`,{d:`M9 17h6`,key:`r8uit2`}]]),N=m(`file-exclamation-point`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ye=m(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),be=m(`git-compare`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`path`,{d:`M11 18H8a2 2 0 0 1-2-2V9`,key:`19pyzm`}]]),xe=m(`rows-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}]]);f();var Se=async e=>g(`/api/projects/${encodeURIComponent(e)}/file-browser/sessions`),Ce=async(e,t)=>g(`/api/projects/${encodeURIComponent(e)}/sprints/${encodeURIComponent(t)}/file-browser/start`,{method:`POST`}),we=async e=>g(`/api/file-browser/sessions/${encodeURIComponent(e)}/rebuild`,{method:`POST`}),Te=async e=>g(`/api/file-browser/sessions/${encodeURIComponent(e)}/stop`,{method:`POST`}),Ee=async e=>{let t=await fetch(`/api/file-browser/sessions/${encodeURIComponent(e)}`,{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>({})),n=typeof e?.error==`string`?e.error:`Failed to remove file browser session`;throw Error(n)}},De=async e=>g(`/api/file-browser/sessions/${encodeURIComponent(e)}/tree`),Oe=async(e,t)=>{let n=new URL(`/api/file-browser/sessions/${encodeURIComponent(e)}/file`,window.location.origin);return n.searchParams.set(`path`,t),g(`${n.pathname}${n.search}`)},ke=async e=>g(`/api/file-browser/sessions/${encodeURIComponent(e)}/changes`),Ae=async(e,t)=>{let n=new URL(`/api/file-browser/sessions/${encodeURIComponent(e)}/diff`,window.location.origin);return n.searchParams.set(`path`,t),g(`${n.pathname}${n.search}`)},je=({projectId:e,selectedSprintId:t,activeSessionId:n,pollInterval:i=8e3})=>{let[a,o]=p([]),[s,c]=p(!1),[l,u]=p(null),f=async(t=!1)=>{if(!e){o([]);return}t||c(!0);try{o(await Se(e)),u(null)}catch(e){u(e instanceof Error?e.message:String(e))}finally{t||c(!1)}};return d(()=>{f()},[e]),d(()=>{if(!e||!i)return;let t=window.setInterval(()=>{f(!0)},i);return()=>window.clearInterval(t)},[e,i]),{sessions:a,selectedSession:r(()=>n?a.find(e=>e.id===n)||null:t?a.find(e=>e.sprintId===t)||null:a[0]||null,[n,t,a]),loading:s,error:l,refresh:f}};f();var Me=({node:e,style:t,dragHandle:n})=>{let r=e.data.type===`directory`;return i(`div`,{ref:n,style:t,onClick:()=>{r?e.toggle():e.select()},class:`group flex h-full items-center gap-1.5 rounded-lg pr-2 text-[13px] transition-colors cursor-pointer ${e.isSelected&&!r?`bg-signal-500/[0.14] text-slate-900 ring-1 ring-inset ring-signal-500/25 dark:text-white`:`text-slate-600 hover:bg-black/[0.04] dark:text-slate-300 dark:hover:bg-white/[0.05]`}`,children:[i(`span`,{class:`flex h-4 w-4 shrink-0 items-center justify-center text-slate-400`,children:r?i(ie,{class:`h-3.5 w-3.5 transition-transform duration-200 ${e.isOpen?`rotate-90`:``}`,strokeWidth:2.4}):null}),i(`span`,{class:`flex h-4 w-4 shrink-0 items-center justify-center ${r?`text-ember-500`:`text-sky-500`}`,children:r?e.isOpen?i(se,{class:`h-4 w-4`,strokeWidth:1.8}):i(ee,{class:`h-4 w-4`,strokeWidth:1.8}):i(ye,{class:`h-3.5 w-3.5`,strokeWidth:1.8})}),i(`span`,{class:`truncate font-medium`,children:e.data.name})]})},Ne=({nodes:e,selectedPath:t,onSelectFile:n,searchTerm:r})=>{let a=s(null),[o,c]=p({width:320,height:480});return d(()=>{if(!a.current||typeof ResizeObserver>`u`)return;let e=a.current,t=new ResizeObserver(e=>{for(let t of e)c({width:Math.max(160,Math.floor(t.contentRect.width)),height:Math.max(200,Math.floor(t.contentRect.height))})});return t.observe(e),()=>t.disconnect()},[]),i(`div`,{ref:a,class:`h-full w-full overflow-hidden`,children:i(u,{data:e,idAccessor:`id`,childrenAccessor:e=>e.children??null,openByDefault:!1,width:o.width,height:o.height,indent:14,rowHeight:30,searchTerm:r,searchMatch:(e,t)=>e.data.name.toLowerCase().includes(t.toLowerCase()),selection:t??void 0,onSelect:e=>{let t=e[0];t&&t.data.type===`file`&&n(t.data.path)},children:Me})})};function P(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Pe(e){if(Array.isArray(e))return e}function Fe(e,t,n){return(t=Ue(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ie(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Le(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ import{r as e}from"./rolldown-runtime-Cyuzqnbw.js";import{O as t,S as n,_ as r,a as i,c as a,d as o,h as s,j as c,r as l,t as u,w as d,x as f,y as p}from"./vendor-Dl0fhdV0.js";import{t as m}from"./createLucideIcon-BshUfn15.js";import{t as ee}from"./folder-CpXTXAeA.js";import{t as h}from"./server-Colb_cUG.js";import{X as g,r as te}from"./project-data-BSCsMQnj.js";import{$r as ne,Ar as re,Ci as ie,Ii as _,Nr as v,Or as ae,Qr as oe,St as y,Vr as b,Zt as x,ei as se,kr as S,on as C,wr as ce}from"./index-DddY8OV0.js";import{a as w,c as T,d as E,f as le,h as D,i as O,l as k,m as ue,n as A,o as de,p as j,r as fe,s as M,t as pe,u as me}from"./editor.api2-KGjWAjnM.js";import{t as he}from"./monaco.contribution-Bxle9Jvf.js";import{t as ge}from"./workers-BiyiPf0K.js";var _e=m(`columns-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M12 3v18`,key:`108xh3`}]]),ve=m(`file-diff`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M9 10h6`,key:`9gxzsh`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`path`,{d:`M9 17h6`,key:`r8uit2`}]]),N=m(`file-exclamation-point`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ye=m(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),be=m(`git-compare`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`path`,{d:`M11 18H8a2 2 0 0 1-2-2V9`,key:`19pyzm`}]]),xe=m(`rows-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}]]);f();var Se=async e=>g(`/api/projects/${encodeURIComponent(e)}/file-browser/sessions`),Ce=async(e,t)=>g(`/api/projects/${encodeURIComponent(e)}/sprints/${encodeURIComponent(t)}/file-browser/start`,{method:`POST`}),we=async e=>g(`/api/file-browser/sessions/${encodeURIComponent(e)}/rebuild`,{method:`POST`}),Te=async e=>g(`/api/file-browser/sessions/${encodeURIComponent(e)}/stop`,{method:`POST`}),Ee=async e=>{let t=await fetch(`/api/file-browser/sessions/${encodeURIComponent(e)}`,{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>({})),n=typeof e?.error==`string`?e.error:`Failed to remove file browser session`;throw Error(n)}},De=async e=>g(`/api/file-browser/sessions/${encodeURIComponent(e)}/tree`),Oe=async(e,t)=>{let n=new URL(`/api/file-browser/sessions/${encodeURIComponent(e)}/file`,window.location.origin);return n.searchParams.set(`path`,t),g(`${n.pathname}${n.search}`)},ke=async e=>g(`/api/file-browser/sessions/${encodeURIComponent(e)}/changes`),Ae=async(e,t)=>{let n=new URL(`/api/file-browser/sessions/${encodeURIComponent(e)}/diff`,window.location.origin);return n.searchParams.set(`path`,t),g(`${n.pathname}${n.search}`)},je=({projectId:e,selectedSprintId:t,activeSessionId:n,pollInterval:i=8e3})=>{let[a,o]=p([]),[s,c]=p(!1),[l,u]=p(null),f=async(t=!1)=>{if(!e){o([]);return}t||c(!0);try{o(await Se(e)),u(null)}catch(e){u(e instanceof Error?e.message:String(e))}finally{t||c(!1)}};return d(()=>{f()},[e]),d(()=>{if(!e||!i)return;let t=window.setInterval(()=>{f(!0)},i);return()=>window.clearInterval(t)},[e,i]),{sessions:a,selectedSession:r(()=>n?a.find(e=>e.id===n)||null:t?a.find(e=>e.sprintId===t)||null:a[0]||null,[n,t,a]),loading:s,error:l,refresh:f}};f();var Me=({node:e,style:t,dragHandle:n})=>{let r=e.data.type===`directory`;return i(`div`,{ref:n,style:t,onClick:()=>{r?e.toggle():e.select()},class:`group flex h-full items-center gap-1.5 rounded-lg pr-2 text-[13px] transition-colors cursor-pointer ${e.isSelected&&!r?`bg-signal-500/[0.14] text-slate-900 ring-1 ring-inset ring-signal-500/25 dark:text-white`:`text-slate-600 hover:bg-black/[0.04] dark:text-slate-300 dark:hover:bg-white/[0.05]`}`,children:[i(`span`,{class:`flex h-4 w-4 shrink-0 items-center justify-center text-slate-400`,children:r?i(ie,{class:`h-3.5 w-3.5 transition-transform duration-200 ${e.isOpen?`rotate-90`:``}`,strokeWidth:2.4}):null}),i(`span`,{class:`flex h-4 w-4 shrink-0 items-center justify-center ${r?`text-ember-500`:`text-sky-500`}`,children:r?e.isOpen?i(se,{class:`h-4 w-4`,strokeWidth:1.8}):i(ee,{class:`h-4 w-4`,strokeWidth:1.8}):i(ye,{class:`h-3.5 w-3.5`,strokeWidth:1.8})}),i(`span`,{class:`truncate font-medium`,children:e.data.name})]})},Ne=({nodes:e,selectedPath:t,onSelectFile:n,searchTerm:r})=>{let a=s(null),[o,c]=p({width:320,height:480});return d(()=>{if(!a.current||typeof ResizeObserver>`u`)return;let e=a.current,t=new ResizeObserver(e=>{for(let t of e)c({width:Math.max(160,Math.floor(t.contentRect.width)),height:Math.max(200,Math.floor(t.contentRect.height))})});return t.observe(e),()=>t.disconnect()},[]),i(`div`,{ref:a,class:`h-full w-full overflow-hidden`,children:i(u,{data:e,idAccessor:`id`,childrenAccessor:e=>e.children??null,openByDefault:!1,width:o.width,height:o.height,indent:14,rowHeight:30,searchTerm:r,searchMatch:(e,t)=>e.data.name.toLowerCase().includes(t.toLowerCase()),selection:t??void 0,onSelect:e=>{let t=e[0];t&&t.data.type===`file`&&n(t.data.path)},children:Me})})};function P(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Pe(e){if(Array.isArray(e))return e}function Fe(e,t,n){return(t=Ue(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ie(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Le(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
3
3
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ze(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Re(Object(n),!0).forEach(function(t){Fe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Re(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Be(e,t){if(e==null)return{};var n,r,i=Ve(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ve(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function He(e,t){return Pe(e)||Ie(e,t)||We(e,t)||Le()}function F(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ue(e){var t=F(e,`string`);return typeof t==`symbol`?t:t+``}function We(e,t){if(e){if(typeof e==`string`)return P(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?P(e,t):void 0}}function Ge(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ke(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?I(Object(n),!0).forEach(function(t){Ge(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qe(){var e=[...arguments];return function(t){return e.reduceRight(function(e,t){return t(e)},t)}}function Je(e){return function t(){var n=this,r=[...arguments];return r.length>=e.length?e.apply(this,r):function(){var e=[...arguments];return t.apply(n,[].concat(r,e))}}}function Ye(e){return{}.toString.call(e).includes(`Object`)}function Xe(e){return!Object.keys(e).length}function L(e){return typeof e==`function`}function Ze(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Qe(e,t){return Ye(t)||R(`changeType`),Object.keys(t).some(function(t){return!Ze(e,t)})&&R(`changeField`),t}function $e(e){L(e)||R(`selectorType`)}function et(e){L(e)||Ye(e)||R(`handlerType`),Ye(e)&&Object.values(e).some(function(e){return!L(e)})&&R(`handlersType`)}function tt(e){e||R(`initialIsRequired`),Ye(e)||R(`initialType`),Xe(e)&&R(`initialContent`)}function nt(e,t){throw Error(e[t]||e.default)}var R=Je(nt)({initialIsRequired:`initial state is required`,initialType:`initial state should be an object`,initialContent:`initial state shouldn't be an empty object`,handlerType:`handler should be an object or a function`,handlersType:`all handlers should be a functions`,selectorType:`selector should be a function`,changeType:`provided value of changes should be an object`,changeField:`it seams you want to change a field in the state which is not specified in the "initial" state`,default:"an unknown error accured in `state-local` package"}),rt={changes:Qe,selector:$e,handler:et,initial:tt};function it(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};rt.initial(e),rt.handler(t);var n={current:e},r=Je(st)(n,t),i=Je(ot)(n),a=Je(rt.changes)(e),o=Je(at)(n);function s(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(e){return e};return rt.selector(e),e(n.current)}function c(e){qe(r,i,a,o)(e)}return[s,c]}function at(e,t){return L(t)?t(e.current):t}function ot(e,t){return e.current=Ke(Ke({},e.current),t),t}function st(e,t,n){return L(t)?t(e.current):Object.keys(n).forEach(function(n){return t[n]?.call(t,e.current[n])}),n}var ct={create:it},lt={paths:{vs:`https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs`}};function ut(e){return function t(){var n=this,r=[...arguments];return r.length>=e.length?e.apply(this,r):function(){var e=[...arguments];return t.apply(n,[].concat(r,e))}}}function dt(e){return{}.toString.call(e).includes(`Object`)}function ft(e){return e||gt(`configIsRequired`),dt(e)||gt(`configType`),e.urls?(pt(),{paths:{vs:e.urls.monacoBase}}):e}function pt(){console.warn(ht.deprecation)}function mt(e,t){throw Error(e[t]||e.default)}var ht={configIsRequired:`the configuration object is required`,configType:`the configuration object should be an object`,default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
4
4
  You are using deprecated way of configuration.
5
5
 
@@ -1 +1 @@
1
- import{S as e,_ as t,a as n,h as r,w as i,x as a,y as o}from"./vendor-Dl0fhdV0.js";import{t as s}from"./createLucideIcon-BshUfn15.js";import{t as c}from"./upload-CU4ugZOr.js";import{r as l}from"./project-data-BSCsMQnj.js";import{Ar as u,Mr as d,Or as f,St as p,Ti as m,Tr as h,Vr as g,Wr as _,_r as v,fn as y,hr as b,ji as x,ni as S,si as C,ti as w,yr as T}from"./index-BViPTeJx.js";import{a as E,c as D,n as ee,o as te,r as ne,s as re,t as ie,u as O}from"./knowledge-api-BfLaCxBX.js";import{c as ae}from"./memory-api-Dn65unGR.js";var k=s(`file-code`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}]]),A=s(`sticky-note`,[[`path`,{d:`M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z`,key:`1dfntj`}],[`path`,{d:`M15 3v5a1 1 0 0 0 1 1h5`,key:`6s6qgf`}]]);a();var j=e=>e?e<1e6?`${(e/1024).toFixed(0)} KB`:`${(e/1e6).toFixed(1)} MB`:`0 KB`,oe=e=>e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e),M=e=>{let t=(e.sourceRef||e.title||``).toLowerCase();return(e.mimeType||``).includes(`pdf`)||t.endsWith(`.pdf`)?{Icon:S,cls:`text-status-red`}:(e.mimeType||``).includes(`wordprocessingml`)||t.endsWith(`.docx`)?{Icon:S,cls:`text-sky-500`}:e.sourceType===`paste`?{Icon:A,cls:`text-amber-500`}:e.sourceType===`repo_path`?{Icon:w,cls:`text-violet-500`}:e.sourceType===`project`?{Icon:C,cls:`text-sky-500`}:/\.(ts|tsx|js|jsx|py|go|rs|java|rb|php|c|cpp|cs|sh|sql|css)$/.test(t)?{Icon:k,cls:`text-signal-500`}:{Icon:S,cls:`text-slate-400`}},N=({doc:e})=>e.status===`ready`?n(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-signal-500/20 bg-signal-500/8 px-2 py-0.5 text-[10px] font-bold text-signal-600 dark:text-signal-400`,children:[n(m,{className:`h-3 w-3`,strokeWidth:2.6}),e.chunkCount,` chunk`,e.chunkCount===1?``:`s`]}):e.status===`error`?n(`span`,{title:e.errorMessage||`Failed`,className:`inline-flex items-center gap-1 rounded-full border border-status-red/20 bg-status-red/8 px-2 py-0.5 text-[10px] font-bold text-status-red`,children:[n(v,{className:`h-3 w-3`,strokeWidth:2.4}),`Error`]}):n(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-amber-400/20 bg-amber-400/8 px-2 py-0.5 text-[10px] font-bold text-amber-600 dark:text-amber-400`,children:[n(g,{className:`h-3 w-3 animate-spin`,strokeWidth:2.4}),e.status===`pending`?`Queued`:`Embedding`]}),P=()=>{let{selectedProject:a,projects:s}=l(),d=a?.id||``,[f,m]=o([]),[S,D]=o([]),[k,P]=o(null),[I,z]=o(!1),[B,V]=o(null),[H,U]=o(!1),[W,G]=o(null),[K,q]=o(!1),ue=t(()=>{let e=new Map;for(let t of S)e.set(t.id,t);return e},[S]),J=e(async()=>{if(!d){m([]);return}z(!0),V(null);try{let[e,t,n]=await Promise.all([E(d),ae().catch(()=>[]),y(d).catch(()=>[])]);m(e),P(t.some(e=>e.active)),D(n)}catch(e){V(e instanceof Error?e.message:`Failed to load knowledge base`)}finally{z(!1)}},[d]);i(()=>{J()},[J]);let Y=f.some(e=>e.status===`pending`||e.status===`embedding`),X=r(Y);X.current=Y,i(()=>{if(!d)return;let e=setInterval(()=>{X.current&&E(d).then(m).catch(()=>{})},1500);return()=>clearInterval(e)},[d]);let Z=e(async e=>{if(!(!d||e.length===0)){U(!0),V(null);try{let t=await O(d,e);t.errors.length>0&&V(t.errors.map(e=>`${e.fileName}: ${e.error}`).join(` · `)),await J(),G(null)}catch(e){V(e instanceof Error?e.message:`Upload failed`)}finally{U(!1)}}},[d,J]),Q=e(e=>{e.preventDefault(),q(!1);let t=e.dataTransfer?Array.from(e.dataTransfer.files):[];t.length>0&&Z(t)},[Z]),de=e(async e=>{m(t=>t.filter(t=>t.id!==e));try{await ne(e)}catch{await J()}},[J]),fe=e(async e=>{try{let t=await re(e);m(n=>n.map(n=>n.id===e?t:n))}catch(e){V(e instanceof Error?e.message:`Re-embed failed`)}},[]),pe=f.reduce((e,t)=>e+t.chunkCount,0),$=f.filter(e=>e.status===`ready`).length;return n(p,{padding:`section`,className:`gap-8`,children:[n(`div`,{className:`flex flex-col gap-6 md:flex-row md:items-end md:justify-between`,children:[n(`div`,{className:`flex flex-col gap-3`,children:[n(`div`,{className:`flex items-center gap-2.5 font-mono text-[10px] font-bold uppercase tracking-[0.2em] text-signal-500`,children:[n(_,{className:`h-3.5 w-3.5`,strokeWidth:2.5}),`Knowledge Base`]}),n(`h1`,{className:`font-display text-4xl font-black tracking-tight text-slate-900 dark:text-white`,children:`Documents`}),n(`p`,{className:`max-w-2xl text-sm leading-relaxed text-slate-500 dark:text-slate-400`,children:[`Upload specs, docs, and code into a shared library. Each document is embedded once with your local model, and agents subscribe to the ones they should know. They retrieve passages on demand via `,n(`code`,{className:`rounded bg-black/[0.05] px-1 py-0.5 font-mono text-[11px] dark:bg-white/[0.06]`,children:`search_knowledge`}),`.`]}),f.length>0&&n(`div`,{className:`flex flex-wrap items-center gap-4 text-[11px] font-semibold text-slate-400 dark:text-slate-500`,children:[n(`span`,{children:[f.length,` document`,f.length===1?``:`s`]}),n(`span`,{children:`·`}),n(`span`,{children:[$,` ready`]}),n(`span`,{children:`·`}),n(`span`,{children:[pe,` embedded chunks`]})]})]}),n(`div`,{className:`flex flex-wrap items-center gap-2`,children:[n(`button`,{type:`button`,onClick:()=>G(`upload`),disabled:!d,className:`inline-flex items-center gap-2 rounded-full bg-signal-500 px-5 py-2.5 text-sm font-bold text-slate-900 shadow-lg shadow-signal-500/15 transition-all hover:scale-[1.03] hover:bg-signal-400 disabled:cursor-not-allowed disabled:opacity-50 dark:text-void-900`,children:[n(c,{className:`h-4 w-4`,strokeWidth:2.5}),`Upload`]}),n(`button`,{type:`button`,onClick:()=>G(`paste`),disabled:!d,className:`inline-flex items-center gap-2 rounded-full border border-black/[0.08] bg-white/60 px-4 py-2.5 text-sm font-bold text-slate-600 transition-colors hover:bg-white disabled:cursor-not-allowed disabled:opacity-50 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200 dark:hover:bg-white/[0.08]`,children:[n(A,{className:`h-4 w-4`,strokeWidth:2.4}),`Paste`]}),n(`button`,{type:`button`,onClick:()=>G(`repo`),disabled:!d,className:`inline-flex items-center gap-2 rounded-full border border-black/[0.08] bg-white/60 px-4 py-2.5 text-sm font-bold text-slate-600 transition-colors hover:bg-white disabled:cursor-not-allowed disabled:opacity-50 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200 dark:hover:bg-white/[0.08]`,children:[n(w,{className:`h-4 w-4`,strokeWidth:2.4}),`From repo`]}),n(`button`,{type:`button`,onClick:()=>G(`project`),disabled:!d||s.filter(e=>e.id!==d).length===0,className:`inline-flex items-center gap-2 rounded-full border border-black/[0.08] bg-white/60 px-4 py-2.5 text-sm font-bold text-slate-600 transition-colors hover:bg-white disabled:cursor-not-allowed disabled:opacity-50 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200 dark:hover:bg-white/[0.08]`,children:[n(C,{className:`h-4 w-4`,strokeWidth:2.4}),`From project`]})]})]}),k===!1&&n(`div`,{className:`flex items-center gap-3 rounded-2xl border border-amber-400/25 bg-amber-400/[0.06] px-5 py-4 text-sm text-amber-700 dark:text-amber-300`,children:[n(v,{className:`h-5 w-5 shrink-0`,strokeWidth:2.2}),n(`span`,{children:[`No embedding model is active. Download and select one on the`,` `,n(`a`,{href:`/memory`,className:`font-bold underline`,children:`Memory`}),` page before adding documents.`]})]}),B&&n(`div`,{className:`flex items-start gap-3 rounded-2xl border border-status-red/25 bg-status-red/[0.06] px-5 py-3 text-sm text-status-red`,children:[n(v,{className:`mt-0.5 h-4 w-4 shrink-0`,strokeWidth:2.2}),n(`span`,{className:`flex-1`,children:B}),n(`button`,{type:`button`,onClick:()=>V(null),"aria-label":`Dismiss`,children:n(b,{className:`h-4 w-4`})})]}),$>0&&n(F,{projectId:d,agentPresets:S}),d?I&&f.length===0?n(`div`,{className:`flex items-center justify-center py-24 text-slate-400`,children:n(g,{className:`h-6 w-6 animate-spin`})}):f.length===0?n(`div`,{onDragOver:e=>{e.preventDefault(),q(!0)},onDragLeave:()=>q(!1),onDrop:Q,className:`flex flex-col items-center gap-4 rounded-[1.8rem] border-2 border-dashed px-8 py-20 text-center transition-colors ${K?`border-signal-500 bg-signal-500/[0.05]`:`border-black/[0.08] dark:border-white/[0.08]`}`,children:[n(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-2xl bg-signal-500/10 text-signal-500`,children:n(h,{className:`h-7 w-7`,strokeWidth:2})}),n(`div`,{className:`flex flex-col gap-1`,children:[n(`p`,{className:`text-lg font-bold text-slate-700 dark:text-slate-200`,children:`Build your knowledge base`}),n(`p`,{className:`text-sm text-slate-400 dark:text-slate-500`,children:`Drag files here, or use Upload / Paste / From repo above.`})]})]}):n(`div`,{onDragOver:e=>{e.preventDefault(),q(!0)},onDragLeave:()=>q(!1),onDrop:Q,className:`grid grid-cols-1 gap-4 rounded-[1.5rem] transition-colors sm:grid-cols-2 xl:grid-cols-3 ${K?`ring-2 ring-signal-500/40`:``}`,children:f.map(e=>{let{Icon:t,cls:r}=M(e),i=e.subscriberAgentIds.map(e=>ue.get(e)?.name).filter(Boolean);return n(`div`,{className:`group relative flex flex-col gap-3 rounded-2xl border border-black/[0.06] bg-white/70 p-5 shadow-[0_2px_16px_rgba(0,0,0,0.03)] backdrop-blur-xl transition-all hover:shadow-[0_4px_24px_rgba(0,0,0,0.06)] dark:border-white/[0.06] dark:bg-void-800/50`,children:[n(`div`,{className:`flex items-start gap-3`,children:[n(`span`,{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-black/[0.04] dark:bg-white/[0.05] ${r}`,children:n(t,{className:`h-5 w-5`,strokeWidth:2.2})}),n(`div`,{className:`min-w-0 flex-1`,children:[n(`div`,{className:`truncate text-sm font-bold text-slate-800 dark:text-slate-100`,title:e.title,children:e.title}),n(`div`,{className:`mt-0.5 truncate font-mono text-[10px] text-slate-400 dark:text-slate-500`,title:e.sourceRef||``,children:e.sourceRef||e.sourceType})]})]}),e.summary&&n(`p`,{className:`line-clamp-2 text-[12px] leading-relaxed text-slate-500 dark:text-slate-400`,children:e.summary}),n(`div`,{className:`mt-auto flex items-center justify-between gap-2 pt-1`,children:[n(`div`,{className:`flex items-center gap-2`,children:[n(N,{doc:e}),n(`span`,{className:`text-[10px] font-semibold text-slate-400 dark:text-slate-500`,children:[j(e.byteSize),` · ~`,oe(e.tokenCount),` tok`]})]}),n(`div`,{className:`flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100`,children:[e.status===`error`&&n(`button`,{type:`button`,onClick:()=>fe(e.id),title:`Retry embedding`,className:`rounded-lg p-1.5 text-slate-400 hover:bg-black/[0.05] hover:text-signal-500 dark:hover:bg-white/[0.06]`,children:n(u,{className:`h-3.5 w-3.5`,strokeWidth:2.2})}),n(`button`,{type:`button`,onClick:()=>de(e.id),title:`Delete`,className:`rounded-lg p-1.5 text-slate-400 hover:bg-status-red/10 hover:text-status-red`,children:n(T,{className:`h-3.5 w-3.5`,strokeWidth:2.2})})]})]}),i.length>0&&n(`div`,{className:`flex flex-wrap items-center gap-1.5 border-t border-black/[0.05] pt-2.5 dark:border-white/[0.05]`,children:[i.slice(0,4).map(e=>n(`span`,{className:`inline-flex items-center rounded-full bg-signal-500/[0.08] px-2 py-0.5 text-[10px] font-bold text-signal-600 dark:text-signal-400`,children:e},e)),i.length>4&&n(`span`,{className:`text-[10px] font-bold text-slate-400`,children:[`+`,i.length-4]})]})]},e.id)})}):n(R,{icon:x,title:`Select a project`,body:`Choose a project to manage its knowledge base.`}),W===`upload`&&n(se,{busy:H,onClose:()=>G(null),onFiles:Z}),W===`paste`&&n(ce,{busy:H,onClose:()=>G(null),onSubmit:async(e,t)=>{U(!0),V(null);try{await ie(d,{title:e,text:t}),await J(),G(null)}catch(e){V(e instanceof Error?e.message:`Failed to add note`)}finally{U(!1)}}}),W===`repo`&&n(le,{busy:H,onClose:()=>G(null),onSubmit:async e=>{U(!0),V(null);try{let t=await ee(d,e);t.errors.length>0&&V(t.errors.map(e=>`${e.fileName}: ${e.error}`).join(` · `)),await J(),G(null)}catch(e){V(e instanceof Error?e.message:`Failed to ingest path`)}finally{U(!1)}}}),W===`project`&&n(L,{busy:H,currentProjectId:d,projects:s,onClose:()=>G(null),onSubmit:async(e,t)=>{U(!0),V(null);try{let n=await te(d,{sourceProjectId:e,documentIds:t});n.errors.length>0&&V(n.errors.map(e=>`${e.fileName}: ${e.error}`).join(` · `)),await J(),G(null)}catch(e){V(e instanceof Error?e.message:`Failed to import project knowledge`)}finally{U(!1)}}})]})},F=({projectId:t,agentPresets:r})=>{let[i,a]=o(``),[s,c]=o(``),[l,u]=o(null),[d,p]=o(!1),m=e(async()=>{if(i.trim()){p(!0);try{u(await D(t,{query:i,agentPresetId:s||void 0,limit:6}))}catch{u([])}finally{p(!1)}}},[t,i,s]);return n(`div`,{className:`flex flex-col gap-3 rounded-2xl border border-black/[0.06] bg-white/50 p-4 backdrop-blur-xl dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`flex flex-wrap items-center gap-2`,children:[n(`div`,{className:`relative flex-1 min-w-[220px]`,children:[n(f,{className:`pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400`}),n(`input`,{value:i,onInput:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&m()},placeholder:`Test what an agent would retrieve…`,className:`w-full rounded-xl border border-black/[0.08] bg-white/70 py-2.5 pl-9 pr-3 text-sm text-slate-700 outline-none focus:border-signal-500/40 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200`})]}),n(`select`,{value:s,onChange:e=>c(e.target.value),className:`rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 text-sm font-semibold text-slate-600 outline-none dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-300`,children:[n(`option`,{value:``,children:`Whole library`}),r.map(e=>n(`option`,{value:e.id,children:[e.name,`'s docs`]},e.id))]}),n(`button`,{type:`button`,onClick:m,disabled:d||!i.trim(),className:`inline-flex items-center gap-2 rounded-xl bg-signal-500/90 px-4 py-2.5 text-sm font-bold text-slate-900 hover:bg-signal-400 disabled:opacity-50 dark:text-void-900`,children:[d?n(g,{className:`h-4 w-4 animate-spin`}):n(f,{className:`h-4 w-4`,strokeWidth:2.5}),`Search`]})]}),l&&n(`div`,{className:`flex flex-col gap-2`,children:l.length===0?n(`p`,{className:`px-1 py-2 text-sm text-slate-400`,children:`No relevant passages found.`}):l.map((e,t)=>n(`div`,{className:`rounded-xl border border-black/[0.05] bg-white/40 p-3 dark:border-white/[0.05] dark:bg-white/[0.02]`,children:[n(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[n(`span`,{className:`truncate text-[11px] font-bold text-signal-600 dark:text-signal-400`,children:[e.documentTitle,e.heading?` › ${e.heading}`:``]}),n(`span`,{className:`shrink-0 font-mono text-[10px] text-slate-400`,children:[Math.round(e.similarity*100),`%`]})]}),n(`p`,{className:`line-clamp-3 text-[12px] leading-relaxed text-slate-500 dark:text-slate-400`,children:e.content})]},t))})]})},I=({title:e,onClose:t,children:r})=>n(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4 backdrop-blur-sm`,onClick:t,children:n(`div`,{className:`w-full max-w-lg rounded-3xl border border-black/[0.08] bg-white p-6 shadow-2xl dark:border-white/[0.08] dark:bg-void-800`,onClick:e=>e.stopPropagation(),children:[n(`div`,{className:`mb-4 flex items-center justify-between`,children:[n(`h3`,{className:`text-lg font-bold text-slate-800 dark:text-slate-100`,children:e}),n(`button`,{type:`button`,onClick:t,className:`rounded-lg p-1.5 text-slate-400 hover:bg-black/[0.05] dark:hover:bg-white/[0.06]`,children:n(b,{className:`h-5 w-5`})})]}),r]})}),se=({busy:e,onClose:t,onFiles:i})=>{let a=r(null);return n(I,{title:`Upload documents`,onClose:t,children:n(`div`,{className:`flex flex-col gap-4`,children:[n(`button`,{type:`button`,onClick:()=>a.current?.click(),disabled:e,className:`flex flex-col items-center gap-3 rounded-2xl border-2 border-dashed border-black/[0.1] py-12 transition-colors hover:border-signal-500/50 hover:bg-signal-500/[0.03] disabled:opacity-50 dark:border-white/[0.1]`,children:[e?n(g,{className:`h-8 w-8 animate-spin text-signal-500`}):n(c,{className:`h-8 w-8 text-signal-500`,strokeWidth:1.8}),n(`span`,{className:`text-sm font-bold text-slate-600 dark:text-slate-300`,children:e?`Uploading…`:`Choose files`}),n(`span`,{className:`text-[11px] text-slate-400`,children:`Text, Markdown, code, JSON/CSV, HTML, PDF, DOCX`})]}),n(`input`,{ref:a,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{let t=Array.from(e.target.files||[]);t.length>0&&i(t)}})]})})},ce=({busy:e,onClose:t,onSubmit:r})=>{let[i,a]=o(``),[s,c]=o(``);return n(I,{title:`Paste a note`,onClose:t,children:n(`div`,{className:`flex flex-col gap-3`,children:[n(`input`,{value:i,onInput:e=>a(e.target.value),placeholder:`Title`,className:`rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 text-sm outline-none focus:border-signal-500/40 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200`}),n(`textarea`,{value:s,onInput:e=>c(e.target.value),placeholder:`Paste documentation, conventions, runbooks…`,rows:10,className:`resize-y rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 font-mono text-[12px] outline-none focus:border-signal-500/40 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200`}),n(`button`,{type:`button`,disabled:e||!i.trim()||!s.trim(),onClick:()=>r(i.trim(),s),className:`inline-flex items-center justify-center gap-2 rounded-xl bg-signal-500 px-4 py-2.5 text-sm font-bold text-slate-900 hover:bg-signal-400 disabled:opacity-50 dark:text-void-900`,children:[e?n(g,{className:`h-4 w-4 animate-spin`}):n(d,{className:`h-4 w-4`,strokeWidth:2.5}),`Add to library`]})]})})},le=({busy:e,onClose:t,onSubmit:r})=>{let[i,a]=o(``);return n(I,{title:`Ingest from the repo`,onClose:t,children:n(`div`,{className:`flex flex-col gap-3`,children:[n(`p`,{className:`text-[12px] leading-relaxed text-slate-500 dark:text-slate-400`,children:`Enter a file or directory path relative to the project root. Directories are walked for text-extractable files (build output and dependencies are skipped).`}),n(`input`,{value:i,onInput:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&i.trim()&&r(i.trim())},placeholder:`docs/ or README.md`,className:`rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 font-mono text-sm outline-none focus:border-signal-500/40 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200`}),n(`button`,{type:`button`,disabled:e||!i.trim(),onClick:()=>r(i.trim()),className:`inline-flex items-center justify-center gap-2 rounded-xl bg-signal-500 px-4 py-2.5 text-sm font-bold text-slate-900 hover:bg-signal-400 disabled:opacity-50 dark:text-void-900`,children:[e?n(g,{className:`h-4 w-4 animate-spin`}):n(w,{className:`h-4 w-4`,strokeWidth:2.4}),`Ingest`]})]})})},L=({busy:e,currentProjectId:t,projects:r,onClose:a,onSubmit:s})=>{let c=r.filter(e=>e.id!==t),[l,u]=o(c[0]?.id||``),[d,f]=o([]),[p,h]=o(new Set),[_,v]=o(!1),[y,b]=o(null);i(()=>{if(!l){f([]),h(new Set);return}let e=!1;return v(!0),b(null),E(l).then(t=>{e||(f(t),h(new Set(t.map(e=>e.id))))}).catch(t=>{e||(f([]),h(new Set),b(t instanceof Error?t.message:`Failed to load project documents`))}).finally(()=>{e||v(!1)}),()=>{e=!0}},[l]);let x=e=>{h(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return n(I,{title:`Import from project`,onClose:a,children:n(`div`,{className:`flex flex-col gap-4`,children:[n(`select`,{value:l,onChange:e=>u(e.target.value),className:`rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 text-sm font-semibold text-slate-600 outline-none dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-300`,children:c.map(e=>n(`option`,{value:e.id,children:e.name},e.id))}),n(`div`,{className:`flex max-h-72 flex-col gap-2 overflow-y-auto rounded-2xl border border-black/[0.06] bg-black/[0.02] p-2 dark:border-white/[0.06] dark:bg-white/[0.02]`,children:_?n(`div`,{className:`flex items-center justify-center py-10 text-slate-400`,children:n(g,{className:`h-5 w-5 animate-spin`})}):y?n(`p`,{className:`px-2 py-8 text-center text-sm text-status-red`,children:y}):d.length===0?n(`p`,{className:`px-2 py-8 text-center text-sm text-slate-400`,children:`No knowledge documents in this project.`}):d.map(e=>{let t=p.has(e.id);return n(`button`,{type:`button`,onClick:()=>x(e.id),className:`flex items-center gap-3 rounded-xl px-3 py-2.5 text-left transition-colors ${t?`bg-signal-500/[0.08]`:`hover:bg-white/60 dark:hover:bg-white/[0.04]`}`,children:[n(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center rounded-lg ${t?`bg-signal-500 text-slate-900 dark:text-void-900`:`bg-black/[0.05] text-slate-400 dark:bg-white/[0.06]`}`,children:t?n(m,{className:`h-3.5 w-3.5`,strokeWidth:3}):n(S,{className:`h-3.5 w-3.5`})}),n(`span`,{className:`min-w-0 flex-1`,children:[n(`span`,{className:`block truncate text-[13px] font-semibold text-slate-700 dark:text-slate-200`,children:e.title}),n(`span`,{className:`block truncate text-[11px] text-slate-400 dark:text-slate-500`,children:e.summary||e.sourceRef||e.sourceType})]})]},e.id)})}),n(`div`,{className:`flex items-center justify-between gap-3`,children:[n(`button`,{type:`button`,disabled:d.length===0,onClick:()=>h(p.size===d.length?new Set:new Set(d.map(e=>e.id))),className:`rounded-xl border border-black/[0.08] px-3 py-2 text-[12px] font-bold text-slate-500 hover:bg-white disabled:opacity-50 dark:border-white/[0.08] dark:text-slate-300 dark:hover:bg-white/[0.06]`,children:p.size===d.length?`Clear`:`Select all`}),n(`button`,{type:`button`,disabled:e||!l||p.size===0,onClick:()=>s(l,[...p]),className:`inline-flex items-center justify-center gap-2 rounded-xl bg-signal-500 px-4 py-2.5 text-sm font-bold text-slate-900 hover:bg-signal-400 disabled:opacity-50 dark:text-void-900`,children:[e?n(g,{className:`h-4 w-4 animate-spin`}):n(C,{className:`h-4 w-4`,strokeWidth:2.4}),`Import `,p.size||``]})]})]})})},R=({icon:e,title:t,body:r})=>n(`div`,{className:`flex flex-col items-center gap-4 rounded-[1.8rem] border border-black/[0.06] bg-white/40 px-8 py-20 text-center dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`flex h-14 w-14 items-center justify-center rounded-2xl bg-black/[0.04] text-slate-400 dark:bg-white/[0.05]`,children:n(e,{className:`h-6 w-6`,strokeWidth:2})}),n(`div`,{className:`flex flex-col gap-1`,children:[n(`p`,{className:`text-lg font-bold text-slate-700 dark:text-slate-200`,children:t}),n(`p`,{className:`text-sm text-slate-400 dark:text-slate-500`,children:r})]})]});export{P as KnowledgePage};
1
+ import{S as e,_ as t,a as n,h as r,w as i,x as a,y as o}from"./vendor-Dl0fhdV0.js";import{t as s}from"./createLucideIcon-BshUfn15.js";import{t as c}from"./upload-CU4ugZOr.js";import{r as l}from"./project-data-BSCsMQnj.js";import{Ar as u,Mr as d,Or as f,St as p,Ti as m,Tr as h,Vr as g,Wr as _,_r as v,fn as y,hr as b,ji as x,ni as S,si as C,ti as w,yr as T}from"./index-DddY8OV0.js";import{a as E,c as D,n as ee,o as te,r as ne,s as re,t as ie,u as O}from"./knowledge-api-BfLaCxBX.js";import{c as ae}from"./memory-api-Dn65unGR.js";var k=s(`file-code`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}]]),A=s(`sticky-note`,[[`path`,{d:`M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z`,key:`1dfntj`}],[`path`,{d:`M15 3v5a1 1 0 0 0 1 1h5`,key:`6s6qgf`}]]);a();var j=e=>e?e<1e6?`${(e/1024).toFixed(0)} KB`:`${(e/1e6).toFixed(1)} MB`:`0 KB`,oe=e=>e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e),M=e=>{let t=(e.sourceRef||e.title||``).toLowerCase();return(e.mimeType||``).includes(`pdf`)||t.endsWith(`.pdf`)?{Icon:S,cls:`text-status-red`}:(e.mimeType||``).includes(`wordprocessingml`)||t.endsWith(`.docx`)?{Icon:S,cls:`text-sky-500`}:e.sourceType===`paste`?{Icon:A,cls:`text-amber-500`}:e.sourceType===`repo_path`?{Icon:w,cls:`text-violet-500`}:e.sourceType===`project`?{Icon:C,cls:`text-sky-500`}:/\.(ts|tsx|js|jsx|py|go|rs|java|rb|php|c|cpp|cs|sh|sql|css)$/.test(t)?{Icon:k,cls:`text-signal-500`}:{Icon:S,cls:`text-slate-400`}},N=({doc:e})=>e.status===`ready`?n(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-signal-500/20 bg-signal-500/8 px-2 py-0.5 text-[10px] font-bold text-signal-600 dark:text-signal-400`,children:[n(m,{className:`h-3 w-3`,strokeWidth:2.6}),e.chunkCount,` chunk`,e.chunkCount===1?``:`s`]}):e.status===`error`?n(`span`,{title:e.errorMessage||`Failed`,className:`inline-flex items-center gap-1 rounded-full border border-status-red/20 bg-status-red/8 px-2 py-0.5 text-[10px] font-bold text-status-red`,children:[n(v,{className:`h-3 w-3`,strokeWidth:2.4}),`Error`]}):n(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-amber-400/20 bg-amber-400/8 px-2 py-0.5 text-[10px] font-bold text-amber-600 dark:text-amber-400`,children:[n(g,{className:`h-3 w-3 animate-spin`,strokeWidth:2.4}),e.status===`pending`?`Queued`:`Embedding`]}),P=()=>{let{selectedProject:a,projects:s}=l(),d=a?.id||``,[f,m]=o([]),[S,D]=o([]),[k,P]=o(null),[I,z]=o(!1),[B,V]=o(null),[H,U]=o(!1),[W,G]=o(null),[K,q]=o(!1),ue=t(()=>{let e=new Map;for(let t of S)e.set(t.id,t);return e},[S]),J=e(async()=>{if(!d){m([]);return}z(!0),V(null);try{let[e,t,n]=await Promise.all([E(d),ae().catch(()=>[]),y(d).catch(()=>[])]);m(e),P(t.some(e=>e.active)),D(n)}catch(e){V(e instanceof Error?e.message:`Failed to load knowledge base`)}finally{z(!1)}},[d]);i(()=>{J()},[J]);let Y=f.some(e=>e.status===`pending`||e.status===`embedding`),X=r(Y);X.current=Y,i(()=>{if(!d)return;let e=setInterval(()=>{X.current&&E(d).then(m).catch(()=>{})},1500);return()=>clearInterval(e)},[d]);let Z=e(async e=>{if(!(!d||e.length===0)){U(!0),V(null);try{let t=await O(d,e);t.errors.length>0&&V(t.errors.map(e=>`${e.fileName}: ${e.error}`).join(` · `)),await J(),G(null)}catch(e){V(e instanceof Error?e.message:`Upload failed`)}finally{U(!1)}}},[d,J]),Q=e(e=>{e.preventDefault(),q(!1);let t=e.dataTransfer?Array.from(e.dataTransfer.files):[];t.length>0&&Z(t)},[Z]),de=e(async e=>{m(t=>t.filter(t=>t.id!==e));try{await ne(e)}catch{await J()}},[J]),fe=e(async e=>{try{let t=await re(e);m(n=>n.map(n=>n.id===e?t:n))}catch(e){V(e instanceof Error?e.message:`Re-embed failed`)}},[]),pe=f.reduce((e,t)=>e+t.chunkCount,0),$=f.filter(e=>e.status===`ready`).length;return n(p,{padding:`section`,className:`gap-8`,children:[n(`div`,{className:`flex flex-col gap-6 md:flex-row md:items-end md:justify-between`,children:[n(`div`,{className:`flex flex-col gap-3`,children:[n(`div`,{className:`flex items-center gap-2.5 font-mono text-[10px] font-bold uppercase tracking-[0.2em] text-signal-500`,children:[n(_,{className:`h-3.5 w-3.5`,strokeWidth:2.5}),`Knowledge Base`]}),n(`h1`,{className:`font-display text-4xl font-black tracking-tight text-slate-900 dark:text-white`,children:`Documents`}),n(`p`,{className:`max-w-2xl text-sm leading-relaxed text-slate-500 dark:text-slate-400`,children:[`Upload specs, docs, and code into a shared library. Each document is embedded once with your local model, and agents subscribe to the ones they should know. They retrieve passages on demand via `,n(`code`,{className:`rounded bg-black/[0.05] px-1 py-0.5 font-mono text-[11px] dark:bg-white/[0.06]`,children:`search_knowledge`}),`.`]}),f.length>0&&n(`div`,{className:`flex flex-wrap items-center gap-4 text-[11px] font-semibold text-slate-400 dark:text-slate-500`,children:[n(`span`,{children:[f.length,` document`,f.length===1?``:`s`]}),n(`span`,{children:`·`}),n(`span`,{children:[$,` ready`]}),n(`span`,{children:`·`}),n(`span`,{children:[pe,` embedded chunks`]})]})]}),n(`div`,{className:`flex flex-wrap items-center gap-2`,children:[n(`button`,{type:`button`,onClick:()=>G(`upload`),disabled:!d,className:`inline-flex items-center gap-2 rounded-full bg-signal-500 px-5 py-2.5 text-sm font-bold text-slate-900 shadow-lg shadow-signal-500/15 transition-all hover:scale-[1.03] hover:bg-signal-400 disabled:cursor-not-allowed disabled:opacity-50 dark:text-void-900`,children:[n(c,{className:`h-4 w-4`,strokeWidth:2.5}),`Upload`]}),n(`button`,{type:`button`,onClick:()=>G(`paste`),disabled:!d,className:`inline-flex items-center gap-2 rounded-full border border-black/[0.08] bg-white/60 px-4 py-2.5 text-sm font-bold text-slate-600 transition-colors hover:bg-white disabled:cursor-not-allowed disabled:opacity-50 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200 dark:hover:bg-white/[0.08]`,children:[n(A,{className:`h-4 w-4`,strokeWidth:2.4}),`Paste`]}),n(`button`,{type:`button`,onClick:()=>G(`repo`),disabled:!d,className:`inline-flex items-center gap-2 rounded-full border border-black/[0.08] bg-white/60 px-4 py-2.5 text-sm font-bold text-slate-600 transition-colors hover:bg-white disabled:cursor-not-allowed disabled:opacity-50 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200 dark:hover:bg-white/[0.08]`,children:[n(w,{className:`h-4 w-4`,strokeWidth:2.4}),`From repo`]}),n(`button`,{type:`button`,onClick:()=>G(`project`),disabled:!d||s.filter(e=>e.id!==d).length===0,className:`inline-flex items-center gap-2 rounded-full border border-black/[0.08] bg-white/60 px-4 py-2.5 text-sm font-bold text-slate-600 transition-colors hover:bg-white disabled:cursor-not-allowed disabled:opacity-50 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200 dark:hover:bg-white/[0.08]`,children:[n(C,{className:`h-4 w-4`,strokeWidth:2.4}),`From project`]})]})]}),k===!1&&n(`div`,{className:`flex items-center gap-3 rounded-2xl border border-amber-400/25 bg-amber-400/[0.06] px-5 py-4 text-sm text-amber-700 dark:text-amber-300`,children:[n(v,{className:`h-5 w-5 shrink-0`,strokeWidth:2.2}),n(`span`,{children:[`No embedding model is active. Download and select one on the`,` `,n(`a`,{href:`/memory`,className:`font-bold underline`,children:`Memory`}),` page before adding documents.`]})]}),B&&n(`div`,{className:`flex items-start gap-3 rounded-2xl border border-status-red/25 bg-status-red/[0.06] px-5 py-3 text-sm text-status-red`,children:[n(v,{className:`mt-0.5 h-4 w-4 shrink-0`,strokeWidth:2.2}),n(`span`,{className:`flex-1`,children:B}),n(`button`,{type:`button`,onClick:()=>V(null),"aria-label":`Dismiss`,children:n(b,{className:`h-4 w-4`})})]}),$>0&&n(F,{projectId:d,agentPresets:S}),d?I&&f.length===0?n(`div`,{className:`flex items-center justify-center py-24 text-slate-400`,children:n(g,{className:`h-6 w-6 animate-spin`})}):f.length===0?n(`div`,{onDragOver:e=>{e.preventDefault(),q(!0)},onDragLeave:()=>q(!1),onDrop:Q,className:`flex flex-col items-center gap-4 rounded-[1.8rem] border-2 border-dashed px-8 py-20 text-center transition-colors ${K?`border-signal-500 bg-signal-500/[0.05]`:`border-black/[0.08] dark:border-white/[0.08]`}`,children:[n(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-2xl bg-signal-500/10 text-signal-500`,children:n(h,{className:`h-7 w-7`,strokeWidth:2})}),n(`div`,{className:`flex flex-col gap-1`,children:[n(`p`,{className:`text-lg font-bold text-slate-700 dark:text-slate-200`,children:`Build your knowledge base`}),n(`p`,{className:`text-sm text-slate-400 dark:text-slate-500`,children:`Drag files here, or use Upload / Paste / From repo above.`})]})]}):n(`div`,{onDragOver:e=>{e.preventDefault(),q(!0)},onDragLeave:()=>q(!1),onDrop:Q,className:`grid grid-cols-1 gap-4 rounded-[1.5rem] transition-colors sm:grid-cols-2 xl:grid-cols-3 ${K?`ring-2 ring-signal-500/40`:``}`,children:f.map(e=>{let{Icon:t,cls:r}=M(e),i=e.subscriberAgentIds.map(e=>ue.get(e)?.name).filter(Boolean);return n(`div`,{className:`group relative flex flex-col gap-3 rounded-2xl border border-black/[0.06] bg-white/70 p-5 shadow-[0_2px_16px_rgba(0,0,0,0.03)] backdrop-blur-xl transition-all hover:shadow-[0_4px_24px_rgba(0,0,0,0.06)] dark:border-white/[0.06] dark:bg-void-800/50`,children:[n(`div`,{className:`flex items-start gap-3`,children:[n(`span`,{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-black/[0.04] dark:bg-white/[0.05] ${r}`,children:n(t,{className:`h-5 w-5`,strokeWidth:2.2})}),n(`div`,{className:`min-w-0 flex-1`,children:[n(`div`,{className:`truncate text-sm font-bold text-slate-800 dark:text-slate-100`,title:e.title,children:e.title}),n(`div`,{className:`mt-0.5 truncate font-mono text-[10px] text-slate-400 dark:text-slate-500`,title:e.sourceRef||``,children:e.sourceRef||e.sourceType})]})]}),e.summary&&n(`p`,{className:`line-clamp-2 text-[12px] leading-relaxed text-slate-500 dark:text-slate-400`,children:e.summary}),n(`div`,{className:`mt-auto flex items-center justify-between gap-2 pt-1`,children:[n(`div`,{className:`flex items-center gap-2`,children:[n(N,{doc:e}),n(`span`,{className:`text-[10px] font-semibold text-slate-400 dark:text-slate-500`,children:[j(e.byteSize),` · ~`,oe(e.tokenCount),` tok`]})]}),n(`div`,{className:`flex items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100`,children:[e.status===`error`&&n(`button`,{type:`button`,onClick:()=>fe(e.id),title:`Retry embedding`,className:`rounded-lg p-1.5 text-slate-400 hover:bg-black/[0.05] hover:text-signal-500 dark:hover:bg-white/[0.06]`,children:n(u,{className:`h-3.5 w-3.5`,strokeWidth:2.2})}),n(`button`,{type:`button`,onClick:()=>de(e.id),title:`Delete`,className:`rounded-lg p-1.5 text-slate-400 hover:bg-status-red/10 hover:text-status-red`,children:n(T,{className:`h-3.5 w-3.5`,strokeWidth:2.2})})]})]}),i.length>0&&n(`div`,{className:`flex flex-wrap items-center gap-1.5 border-t border-black/[0.05] pt-2.5 dark:border-white/[0.05]`,children:[i.slice(0,4).map(e=>n(`span`,{className:`inline-flex items-center rounded-full bg-signal-500/[0.08] px-2 py-0.5 text-[10px] font-bold text-signal-600 dark:text-signal-400`,children:e},e)),i.length>4&&n(`span`,{className:`text-[10px] font-bold text-slate-400`,children:[`+`,i.length-4]})]})]},e.id)})}):n(R,{icon:x,title:`Select a project`,body:`Choose a project to manage its knowledge base.`}),W===`upload`&&n(se,{busy:H,onClose:()=>G(null),onFiles:Z}),W===`paste`&&n(ce,{busy:H,onClose:()=>G(null),onSubmit:async(e,t)=>{U(!0),V(null);try{await ie(d,{title:e,text:t}),await J(),G(null)}catch(e){V(e instanceof Error?e.message:`Failed to add note`)}finally{U(!1)}}}),W===`repo`&&n(le,{busy:H,onClose:()=>G(null),onSubmit:async e=>{U(!0),V(null);try{let t=await ee(d,e);t.errors.length>0&&V(t.errors.map(e=>`${e.fileName}: ${e.error}`).join(` · `)),await J(),G(null)}catch(e){V(e instanceof Error?e.message:`Failed to ingest path`)}finally{U(!1)}}}),W===`project`&&n(L,{busy:H,currentProjectId:d,projects:s,onClose:()=>G(null),onSubmit:async(e,t)=>{U(!0),V(null);try{let n=await te(d,{sourceProjectId:e,documentIds:t});n.errors.length>0&&V(n.errors.map(e=>`${e.fileName}: ${e.error}`).join(` · `)),await J(),G(null)}catch(e){V(e instanceof Error?e.message:`Failed to import project knowledge`)}finally{U(!1)}}})]})},F=({projectId:t,agentPresets:r})=>{let[i,a]=o(``),[s,c]=o(``),[l,u]=o(null),[d,p]=o(!1),m=e(async()=>{if(i.trim()){p(!0);try{u(await D(t,{query:i,agentPresetId:s||void 0,limit:6}))}catch{u([])}finally{p(!1)}}},[t,i,s]);return n(`div`,{className:`flex flex-col gap-3 rounded-2xl border border-black/[0.06] bg-white/50 p-4 backdrop-blur-xl dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`flex flex-wrap items-center gap-2`,children:[n(`div`,{className:`relative flex-1 min-w-[220px]`,children:[n(f,{className:`pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400`}),n(`input`,{value:i,onInput:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&m()},placeholder:`Test what an agent would retrieve…`,className:`w-full rounded-xl border border-black/[0.08] bg-white/70 py-2.5 pl-9 pr-3 text-sm text-slate-700 outline-none focus:border-signal-500/40 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200`})]}),n(`select`,{value:s,onChange:e=>c(e.target.value),className:`rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 text-sm font-semibold text-slate-600 outline-none dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-300`,children:[n(`option`,{value:``,children:`Whole library`}),r.map(e=>n(`option`,{value:e.id,children:[e.name,`'s docs`]},e.id))]}),n(`button`,{type:`button`,onClick:m,disabled:d||!i.trim(),className:`inline-flex items-center gap-2 rounded-xl bg-signal-500/90 px-4 py-2.5 text-sm font-bold text-slate-900 hover:bg-signal-400 disabled:opacity-50 dark:text-void-900`,children:[d?n(g,{className:`h-4 w-4 animate-spin`}):n(f,{className:`h-4 w-4`,strokeWidth:2.5}),`Search`]})]}),l&&n(`div`,{className:`flex flex-col gap-2`,children:l.length===0?n(`p`,{className:`px-1 py-2 text-sm text-slate-400`,children:`No relevant passages found.`}):l.map((e,t)=>n(`div`,{className:`rounded-xl border border-black/[0.05] bg-white/40 p-3 dark:border-white/[0.05] dark:bg-white/[0.02]`,children:[n(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[n(`span`,{className:`truncate text-[11px] font-bold text-signal-600 dark:text-signal-400`,children:[e.documentTitle,e.heading?` › ${e.heading}`:``]}),n(`span`,{className:`shrink-0 font-mono text-[10px] text-slate-400`,children:[Math.round(e.similarity*100),`%`]})]}),n(`p`,{className:`line-clamp-3 text-[12px] leading-relaxed text-slate-500 dark:text-slate-400`,children:e.content})]},t))})]})},I=({title:e,onClose:t,children:r})=>n(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4 backdrop-blur-sm`,onClick:t,children:n(`div`,{className:`w-full max-w-lg rounded-3xl border border-black/[0.08] bg-white p-6 shadow-2xl dark:border-white/[0.08] dark:bg-void-800`,onClick:e=>e.stopPropagation(),children:[n(`div`,{className:`mb-4 flex items-center justify-between`,children:[n(`h3`,{className:`text-lg font-bold text-slate-800 dark:text-slate-100`,children:e}),n(`button`,{type:`button`,onClick:t,className:`rounded-lg p-1.5 text-slate-400 hover:bg-black/[0.05] dark:hover:bg-white/[0.06]`,children:n(b,{className:`h-5 w-5`})})]}),r]})}),se=({busy:e,onClose:t,onFiles:i})=>{let a=r(null);return n(I,{title:`Upload documents`,onClose:t,children:n(`div`,{className:`flex flex-col gap-4`,children:[n(`button`,{type:`button`,onClick:()=>a.current?.click(),disabled:e,className:`flex flex-col items-center gap-3 rounded-2xl border-2 border-dashed border-black/[0.1] py-12 transition-colors hover:border-signal-500/50 hover:bg-signal-500/[0.03] disabled:opacity-50 dark:border-white/[0.1]`,children:[e?n(g,{className:`h-8 w-8 animate-spin text-signal-500`}):n(c,{className:`h-8 w-8 text-signal-500`,strokeWidth:1.8}),n(`span`,{className:`text-sm font-bold text-slate-600 dark:text-slate-300`,children:e?`Uploading…`:`Choose files`}),n(`span`,{className:`text-[11px] text-slate-400`,children:`Text, Markdown, code, JSON/CSV, HTML, PDF, DOCX`})]}),n(`input`,{ref:a,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{let t=Array.from(e.target.files||[]);t.length>0&&i(t)}})]})})},ce=({busy:e,onClose:t,onSubmit:r})=>{let[i,a]=o(``),[s,c]=o(``);return n(I,{title:`Paste a note`,onClose:t,children:n(`div`,{className:`flex flex-col gap-3`,children:[n(`input`,{value:i,onInput:e=>a(e.target.value),placeholder:`Title`,className:`rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 text-sm outline-none focus:border-signal-500/40 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200`}),n(`textarea`,{value:s,onInput:e=>c(e.target.value),placeholder:`Paste documentation, conventions, runbooks…`,rows:10,className:`resize-y rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 font-mono text-[12px] outline-none focus:border-signal-500/40 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200`}),n(`button`,{type:`button`,disabled:e||!i.trim()||!s.trim(),onClick:()=>r(i.trim(),s),className:`inline-flex items-center justify-center gap-2 rounded-xl bg-signal-500 px-4 py-2.5 text-sm font-bold text-slate-900 hover:bg-signal-400 disabled:opacity-50 dark:text-void-900`,children:[e?n(g,{className:`h-4 w-4 animate-spin`}):n(d,{className:`h-4 w-4`,strokeWidth:2.5}),`Add to library`]})]})})},le=({busy:e,onClose:t,onSubmit:r})=>{let[i,a]=o(``);return n(I,{title:`Ingest from the repo`,onClose:t,children:n(`div`,{className:`flex flex-col gap-3`,children:[n(`p`,{className:`text-[12px] leading-relaxed text-slate-500 dark:text-slate-400`,children:`Enter a file or directory path relative to the project root. Directories are walked for text-extractable files (build output and dependencies are skipped).`}),n(`input`,{value:i,onInput:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&i.trim()&&r(i.trim())},placeholder:`docs/ or README.md`,className:`rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 font-mono text-sm outline-none focus:border-signal-500/40 dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-200`}),n(`button`,{type:`button`,disabled:e||!i.trim(),onClick:()=>r(i.trim()),className:`inline-flex items-center justify-center gap-2 rounded-xl bg-signal-500 px-4 py-2.5 text-sm font-bold text-slate-900 hover:bg-signal-400 disabled:opacity-50 dark:text-void-900`,children:[e?n(g,{className:`h-4 w-4 animate-spin`}):n(w,{className:`h-4 w-4`,strokeWidth:2.4}),`Ingest`]})]})})},L=({busy:e,currentProjectId:t,projects:r,onClose:a,onSubmit:s})=>{let c=r.filter(e=>e.id!==t),[l,u]=o(c[0]?.id||``),[d,f]=o([]),[p,h]=o(new Set),[_,v]=o(!1),[y,b]=o(null);i(()=>{if(!l){f([]),h(new Set);return}let e=!1;return v(!0),b(null),E(l).then(t=>{e||(f(t),h(new Set(t.map(e=>e.id))))}).catch(t=>{e||(f([]),h(new Set),b(t instanceof Error?t.message:`Failed to load project documents`))}).finally(()=>{e||v(!1)}),()=>{e=!0}},[l]);let x=e=>{h(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return n(I,{title:`Import from project`,onClose:a,children:n(`div`,{className:`flex flex-col gap-4`,children:[n(`select`,{value:l,onChange:e=>u(e.target.value),className:`rounded-xl border border-black/[0.08] bg-white/70 px-3 py-2.5 text-sm font-semibold text-slate-600 outline-none dark:border-white/[0.08] dark:bg-white/[0.04] dark:text-slate-300`,children:c.map(e=>n(`option`,{value:e.id,children:e.name},e.id))}),n(`div`,{className:`flex max-h-72 flex-col gap-2 overflow-y-auto rounded-2xl border border-black/[0.06] bg-black/[0.02] p-2 dark:border-white/[0.06] dark:bg-white/[0.02]`,children:_?n(`div`,{className:`flex items-center justify-center py-10 text-slate-400`,children:n(g,{className:`h-5 w-5 animate-spin`})}):y?n(`p`,{className:`px-2 py-8 text-center text-sm text-status-red`,children:y}):d.length===0?n(`p`,{className:`px-2 py-8 text-center text-sm text-slate-400`,children:`No knowledge documents in this project.`}):d.map(e=>{let t=p.has(e.id);return n(`button`,{type:`button`,onClick:()=>x(e.id),className:`flex items-center gap-3 rounded-xl px-3 py-2.5 text-left transition-colors ${t?`bg-signal-500/[0.08]`:`hover:bg-white/60 dark:hover:bg-white/[0.04]`}`,children:[n(`span`,{className:`flex h-6 w-6 shrink-0 items-center justify-center rounded-lg ${t?`bg-signal-500 text-slate-900 dark:text-void-900`:`bg-black/[0.05] text-slate-400 dark:bg-white/[0.06]`}`,children:t?n(m,{className:`h-3.5 w-3.5`,strokeWidth:3}):n(S,{className:`h-3.5 w-3.5`})}),n(`span`,{className:`min-w-0 flex-1`,children:[n(`span`,{className:`block truncate text-[13px] font-semibold text-slate-700 dark:text-slate-200`,children:e.title}),n(`span`,{className:`block truncate text-[11px] text-slate-400 dark:text-slate-500`,children:e.summary||e.sourceRef||e.sourceType})]})]},e.id)})}),n(`div`,{className:`flex items-center justify-between gap-3`,children:[n(`button`,{type:`button`,disabled:d.length===0,onClick:()=>h(p.size===d.length?new Set:new Set(d.map(e=>e.id))),className:`rounded-xl border border-black/[0.08] px-3 py-2 text-[12px] font-bold text-slate-500 hover:bg-white disabled:opacity-50 dark:border-white/[0.08] dark:text-slate-300 dark:hover:bg-white/[0.06]`,children:p.size===d.length?`Clear`:`Select all`}),n(`button`,{type:`button`,disabled:e||!l||p.size===0,onClick:()=>s(l,[...p]),className:`inline-flex items-center justify-center gap-2 rounded-xl bg-signal-500 px-4 py-2.5 text-sm font-bold text-slate-900 hover:bg-signal-400 disabled:opacity-50 dark:text-void-900`,children:[e?n(g,{className:`h-4 w-4 animate-spin`}):n(C,{className:`h-4 w-4`,strokeWidth:2.4}),`Import `,p.size||``]})]})]})})},R=({icon:e,title:t,body:r})=>n(`div`,{className:`flex flex-col items-center gap-4 rounded-[1.8rem] border border-black/[0.06] bg-white/40 px-8 py-20 text-center dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`flex h-14 w-14 items-center justify-center rounded-2xl bg-black/[0.04] text-slate-400 dark:bg-white/[0.05]`,children:n(e,{className:`h-6 w-6`,strokeWidth:2})}),n(`div`,{className:`flex flex-col gap-1`,children:[n(`p`,{className:`text-lg font-bold text-slate-700 dark:text-slate-200`,children:t}),n(`p`,{className:`text-sm text-slate-400 dark:text-slate-500`,children:r})]})]});export{P as KnowledgePage};
@@ -1 +1 @@
1
- import{a as e}from"./vendor-Dl0fhdV0.js";import{t}from"./createLucideIcon-BshUfn15.js";import{st as n}from"./index-BViPTeJx.js";import{t as r}from"./list-window-BtcrCL8y.js";var i=t(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),a=({value:t,onChange:a,label:o=`Show`})=>{let s=r.map(t=>({value:String(t),label:`${o} ${t}`,icon:e(i,{className:`h-3.5 w-3.5 text-slate-400`,strokeWidth:2.1})}));return e(n,{value:String(t),onChange:e=>{a(e===`All`?`All`:Number(e))},options:s,variant:`default`,className:`min-w-[8.75rem]`,"aria-label":`Select number of ledger entries`})};export{a as t};
1
+ import{a as e}from"./vendor-Dl0fhdV0.js";import{t}from"./createLucideIcon-BshUfn15.js";import{st as n}from"./index-DddY8OV0.js";import{t as r}from"./list-window-BtcrCL8y.js";var i=t(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),a=({value:t,onChange:a,label:o=`Show`})=>{let s=r.map(t=>({value:String(t),label:`${o} ${t}`,icon:e(i,{className:`h-3.5 w-3.5 text-slate-400`,strokeWidth:2.1})}));return e(n,{value:String(t),onChange:e=>{a(e===`All`?`All`:Number(e))},options:s,variant:`default`,className:`min-w-[8.75rem]`,"aria-label":`Select number of ledger entries`})};export{a as t};
@@ -1,4 +1,4 @@
1
- import{A as e,C as t,M as n,O as r,S as i,a,c as o,f as s,h as c,j as l,r as u,s as d,v as f,w as p,x as m,y as h}from"./vendor-Dl0fhdV0.js";import{t as g}from"./createLucideIcon-BshUfn15.js";import{r as _}from"./project-data-BSCsMQnj.js";import{t as v}from"./use-reduced-motion-Dxh6NCDM.js";import{Ar as y,Ci as b,Mr as x,Or as S,Si as C,St as w,Ti as T,Vr as E,_r as D,b as O,cn as k,fn as ee,hr as A,jt as j,ki as te,lr as ne,on as re,pr as M,ur as N,y as P,zr as ie}from"./index-BViPTeJx.js";import{a as ae,c as F,d as oe,i as se,l as ce,n as le,o as ue,r as de,s as fe,t as pe,u as me}from"./memory-api-Dn65unGR.js";import{i as I,r as he,t as ge}from"./signals.module-7u1xQmIO.js";var L=g(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),_e=g(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),ve=g(`zoom-out`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]);m();var R={architecture:[0,-270],codebase:[240,-135],context:[240,135],preferences:[0,270],patterns:[-240,-135],decision:[-240,135],error:[170,250],learning:[-170,-250]};function ye(e,t){let n=new Map;if(t?.hasEmbeddings)for(let e of t.nodes)n.set(e.id,{x:e.x,y:e.y});let r=n.size>0,i={};for(let t of e){let e=t.category in R?t.category:`context`;i[e]=(i[e]||0)+1}let a={};return e.map(e=>{let t,o,s=n.get(e.id);if(s&&r)t=s.x,o=s.y;else{let n=e.category in R?e.category:`context`,r=a[n]=a[n]||0;a[n]++;let[s,c]=R[n]||[0,0],l=i[n],u=r*(Math.PI*2/Math.max(3,l))+Math.PI/4,d=45+e.strength*35;t=s+Math.cos(u)*d,o=c+Math.sin(u)*d}return{id:e.id,content:e.content,category:e.category,strength:e.strength,scope:e.scope,x:0,y:0,targetX:t,targetY:o,radius:4+e.strength*7,opacity:0,scale:0,glow:e.strength*.4,alive:!0}})}function z(e,t){let n=[];if(t?.hasEmbeddings&&t.edges.length>0){let r=new Map;e.forEach((e,t)=>r.set(e.id,t));for(let e of t.edges){let t=r.get(e.source),i=r.get(e.target);t!==void 0&&i!==void 0&&n.push({a:t,b:i,similarity:e.similarity})}}else for(let t=0;t<e.length;t++)for(let r=t+1;r<e.length;r++)e[t].category===e[r].category&&n.push({a:t,b:r,similarity:.5});return n}function B(e,t){let n=ye(e,t),r=z(n,t),i={};for(let e of n){i[e.category]||(i[e.category]={x:0,y:0,count:0,radius:0});let t=i[e.category];t.x+=e.targetX,t.y+=e.targetY,t.count++}for(let e of Object.keys(i)){let t=i[e];t.count>0&&(t.x/=t.count,t.y/=t.count)}for(let e of n){let t=i[e.category];if(!t)continue;let n=Math.sqrt((e.targetX-t.x)**2+(e.targetY-t.y)**2);n>t.radius&&(t.radius=n)}return{nodes:n,edges:r,catCentroids:i}}var V=I(``),H=I(null),be=I(null),U=I(`short_term`),W=I(void 0),xe=I(void 0),Se=I(!1);I([]);var G=I(!0),K=I({addMemory:async(e,t)=>{},removeMemory:e=>{},feedback:{status:`idle`,message:null},clearFeedback:()=>{}});function Ce(e,t,n,r,a,o=!0){let[s,l]=h(!0),[u,d]=h([]),[f,m]=h(0),[g,_]=h([]),[v,y]=h({sprint:0,agent:0,project:0,activeModel:null,staleEmbeddings:0}),[b,x]=h(null),{feedback:S,setWarning:C,setSuccess:w,setError:T,clearFeedback:E,setPending:D}=j(5e3),O=c({}),k=i(async(e,t)=>{let n=`temp-${Date.now()}`,r={id:n,projectId:t,scope:e.scope,content:e.content,category:e.category,strength:e.strength||.7,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),sprintId:e.sprintId||null,agentPresetId:e.agentPresetId||null,source:`user`,embeddingModel:null,embeddingDimension:0,embeddingBlob:null,promotedFromId:null,promotionReason:null};D(`Adding memory...`),d(e=>{let t=[r,...e];return m(t.length),x({graph:B(t,b?.map||null),map:b?.map||null}),t});try{let r=await pe(t,e);d(e=>{let t=e.map(e=>e.id===n?r:e);return x({graph:B(t,b?.map||null),map:b?.map||null}),t}),w(`Memory added successfully`)}catch(e){d(e=>{let t=e.filter(e=>e.id!==n);return m(t.length),x({graph:B(t,b?.map||null),map:b?.map||null}),t}),T(e.message||`Failed to add memory`)}},[b?.map,w,T]),ee=i(e=>{let t=u.find(t=>t.id===e);if(!t)return;d(t=>{let n=t.filter(t=>t.id!==e);return m(n.length),x({graph:B(n,b?.map||null),map:b?.map||null}),n});let n=!1,r=async()=>{if(!n){n=!0;try{await de(e)}catch(n){d(n=>{let r=[...n],i=u.findIndex(t=>t.id===e);return i>=0?r.splice(i,0,t):r.push(t),m(r.length),x({graph:B(r,b?.map||null),map:b?.map||null}),r}),T(n.message||`Failed to delete memory`)}}};C(`Memory removed`,{retryAction:async()=>{O.current[e]&&(window.clearTimeout(O.current[e]),delete O.current[e]),n?(k({scope:t.scope,content:t.content,category:t.category,sprintId:t.sprintId||void 0,agentPresetId:t.agentPresetId||void 0,strength:t.strength},t.projectId),E()):(n=!0,d(n=>{let r=[...n],i=u.findIndex(t=>t.id===e);return i>=0?r.splice(i,0,t):r.push(t),m(r.length),x({graph:B(r,b?.map||null),map:b?.map||null}),r}),E())},retryLabel:`Undo`}),O.current[e]=window.setTimeout(()=>{r(),delete O.current[e]},5e3)},[u,b?.map,C,T,E,k]);p(()=>{K.value={addMemory:k,removeMemory:ee,feedback:S,clearFeedback:E}},[k,ee,S,E]);let A=i(async()=>{if(!(!e||!o)){l(!0);try{let i={projectId:e,scope:t,limit:200};n===`short_term`&&r&&(i.sprintId=r),a&&(i.agentPresetId=a);let[o,s,c,l]=await Promise.all([ce(i),F(),ue(e),ae(e,t,n===`short_term`?r:void 0,a).catch(()=>null)]);d(o),_(s),y(c),m(o.length),x({graph:B(o,l),map:l})}catch{}l(!1)}},[e,t,n,r,a,o]);return p(()=>{A()},[A]),{loading:s,records:u,memoryCount:f,setMemoryCount:m,initialModels:g,initialStats:v,graphData:b,loadData:A}}m();function we(e,t,n,r){let[i,a]=h(t),[o,s]=h(n),[l,u]=h(null);p(()=>a(t),[t]),p(()=>s(n),[n]);let d=c(!1);p(()=>{d.current=i.some(e=>e.downloading)},[i]),p(()=>{let e=setInterval(async()=>{if(d.current)try{a(await F())}catch{}},2e3);return()=>clearInterval(e)},[]);let f=c({active:l?.active,pid:e,onReembedComplete:r});return p(()=>{f.current={active:l?.active,pid:e,onReembedComplete:r}},[l?.active,e,r]),p(()=>{let e=setInterval(async()=>{let e=f.current;if(!(!e.active||!e.pid))try{let t=await fe(e.pid);u(t),t.active&&s(await ue(e.pid)),t.active||e.onReembedComplete()}catch{}},1e3);return()=>clearInterval(e)},[]),{models:i,setModels:a,stats:o,setStats:s,reembed:l,setReembed:u}}var q=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),J=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Te=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),Ee=e=>{let t=Te(e);return t.charAt(0).toUpperCase()+t.slice(1)},Y={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},De=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1};u();var Oe=e({}),ke=()=>t(Oe);u();var Ae=d(({color:e,size:t,strokeWidth:r,absoluteStrokeWidth:i,className:a=``,children:o,iconNode:s,...c},l)=>{let{size:u=24,strokeWidth:d=2,absoluteStrokeWidth:f=!1,color:p=`currentColor`,className:m=``}=ke()??{},h=i??f?Number(r??d)*24/Number(t??u):r??d;return n(`svg`,{ref:l,...Y,width:t??u??Y.width,height:t??u??Y.height,stroke:e??p,strokeWidth:h,className:q(`lucide`,m,a),...!o&&!De(c)&&{"aria-hidden":`true`},...c},[...s.map(([e,t])=>n(e,t)),...Array.isArray(o)?o:[o]])});u();var X=(e,t)=>{let r=d(({className:r,...i},a)=>n(Ae,{ref:a,iconNode:t,className:q(`lucide-${J(Ee(e))}`,`lucide-${e}`,r),...i}));return r.displayName=Ee(e),r},je=X(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),Me=X(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),Ne=X(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Pe=X(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),Fe=X(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Ie=X(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Le=X(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function Re(e){return e<1e6?`${(e/1024).toFixed(0)} KB`:e<1e9?`${(e/1e6).toFixed(0)} MB`:`${(e/1e9).toFixed(1)} GB`}var ze=({model:e,onDownload:t,onSelect:n,onDelete:r,onReembed:i,reembedding:o,staleCount:s})=>a(`div`,{className:`flex flex-col gap-3 p-4 rounded-[1.25rem]
1
+ import{A as e,C as t,M as n,O as r,S as i,a,c as o,f as s,h as c,j as l,r as u,s as d,v as f,w as p,x as m,y as h}from"./vendor-Dl0fhdV0.js";import{t as g}from"./createLucideIcon-BshUfn15.js";import{r as _}from"./project-data-BSCsMQnj.js";import{t as v}from"./use-reduced-motion-Dxh6NCDM.js";import{Ar as y,Ci as b,Mr as x,Or as S,Si as C,St as w,Ti as T,Vr as E,_r as D,b as O,cn as k,fn as ee,hr as A,jt as j,ki as te,lr as ne,on as re,pr as M,ur as N,y as P,zr as ie}from"./index-DddY8OV0.js";import{a as ae,c as F,d as oe,i as se,l as ce,n as le,o as ue,r as de,s as fe,t as pe,u as me}from"./memory-api-Dn65unGR.js";import{i as I,r as he,t as ge}from"./signals.module-7u1xQmIO.js";var L=g(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),_e=g(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),ve=g(`zoom-out`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]);m();var R={architecture:[0,-270],codebase:[240,-135],context:[240,135],preferences:[0,270],patterns:[-240,-135],decision:[-240,135],error:[170,250],learning:[-170,-250]};function ye(e,t){let n=new Map;if(t?.hasEmbeddings)for(let e of t.nodes)n.set(e.id,{x:e.x,y:e.y});let r=n.size>0,i={};for(let t of e){let e=t.category in R?t.category:`context`;i[e]=(i[e]||0)+1}let a={};return e.map(e=>{let t,o,s=n.get(e.id);if(s&&r)t=s.x,o=s.y;else{let n=e.category in R?e.category:`context`,r=a[n]=a[n]||0;a[n]++;let[s,c]=R[n]||[0,0],l=i[n],u=r*(Math.PI*2/Math.max(3,l))+Math.PI/4,d=45+e.strength*35;t=s+Math.cos(u)*d,o=c+Math.sin(u)*d}return{id:e.id,content:e.content,category:e.category,strength:e.strength,scope:e.scope,x:0,y:0,targetX:t,targetY:o,radius:4+e.strength*7,opacity:0,scale:0,glow:e.strength*.4,alive:!0}})}function z(e,t){let n=[];if(t?.hasEmbeddings&&t.edges.length>0){let r=new Map;e.forEach((e,t)=>r.set(e.id,t));for(let e of t.edges){let t=r.get(e.source),i=r.get(e.target);t!==void 0&&i!==void 0&&n.push({a:t,b:i,similarity:e.similarity})}}else for(let t=0;t<e.length;t++)for(let r=t+1;r<e.length;r++)e[t].category===e[r].category&&n.push({a:t,b:r,similarity:.5});return n}function B(e,t){let n=ye(e,t),r=z(n,t),i={};for(let e of n){i[e.category]||(i[e.category]={x:0,y:0,count:0,radius:0});let t=i[e.category];t.x+=e.targetX,t.y+=e.targetY,t.count++}for(let e of Object.keys(i)){let t=i[e];t.count>0&&(t.x/=t.count,t.y/=t.count)}for(let e of n){let t=i[e.category];if(!t)continue;let n=Math.sqrt((e.targetX-t.x)**2+(e.targetY-t.y)**2);n>t.radius&&(t.radius=n)}return{nodes:n,edges:r,catCentroids:i}}var V=I(``),H=I(null),be=I(null),U=I(`short_term`),W=I(void 0),xe=I(void 0),Se=I(!1);I([]);var G=I(!0),K=I({addMemory:async(e,t)=>{},removeMemory:e=>{},feedback:{status:`idle`,message:null},clearFeedback:()=>{}});function Ce(e,t,n,r,a,o=!0){let[s,l]=h(!0),[u,d]=h([]),[f,m]=h(0),[g,_]=h([]),[v,y]=h({sprint:0,agent:0,project:0,activeModel:null,staleEmbeddings:0}),[b,x]=h(null),{feedback:S,setWarning:C,setSuccess:w,setError:T,clearFeedback:E,setPending:D}=j(5e3),O=c({}),k=i(async(e,t)=>{let n=`temp-${Date.now()}`,r={id:n,projectId:t,scope:e.scope,content:e.content,category:e.category,strength:e.strength||.7,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),sprintId:e.sprintId||null,agentPresetId:e.agentPresetId||null,source:`user`,embeddingModel:null,embeddingDimension:0,embeddingBlob:null,promotedFromId:null,promotionReason:null};D(`Adding memory...`),d(e=>{let t=[r,...e];return m(t.length),x({graph:B(t,b?.map||null),map:b?.map||null}),t});try{let r=await pe(t,e);d(e=>{let t=e.map(e=>e.id===n?r:e);return x({graph:B(t,b?.map||null),map:b?.map||null}),t}),w(`Memory added successfully`)}catch(e){d(e=>{let t=e.filter(e=>e.id!==n);return m(t.length),x({graph:B(t,b?.map||null),map:b?.map||null}),t}),T(e.message||`Failed to add memory`)}},[b?.map,w,T]),ee=i(e=>{let t=u.find(t=>t.id===e);if(!t)return;d(t=>{let n=t.filter(t=>t.id!==e);return m(n.length),x({graph:B(n,b?.map||null),map:b?.map||null}),n});let n=!1,r=async()=>{if(!n){n=!0;try{await de(e)}catch(n){d(n=>{let r=[...n],i=u.findIndex(t=>t.id===e);return i>=0?r.splice(i,0,t):r.push(t),m(r.length),x({graph:B(r,b?.map||null),map:b?.map||null}),r}),T(n.message||`Failed to delete memory`)}}};C(`Memory removed`,{retryAction:async()=>{O.current[e]&&(window.clearTimeout(O.current[e]),delete O.current[e]),n?(k({scope:t.scope,content:t.content,category:t.category,sprintId:t.sprintId||void 0,agentPresetId:t.agentPresetId||void 0,strength:t.strength},t.projectId),E()):(n=!0,d(n=>{let r=[...n],i=u.findIndex(t=>t.id===e);return i>=0?r.splice(i,0,t):r.push(t),m(r.length),x({graph:B(r,b?.map||null),map:b?.map||null}),r}),E())},retryLabel:`Undo`}),O.current[e]=window.setTimeout(()=>{r(),delete O.current[e]},5e3)},[u,b?.map,C,T,E,k]);p(()=>{K.value={addMemory:k,removeMemory:ee,feedback:S,clearFeedback:E}},[k,ee,S,E]);let A=i(async()=>{if(!(!e||!o)){l(!0);try{let i={projectId:e,scope:t,limit:200};n===`short_term`&&r&&(i.sprintId=r),a&&(i.agentPresetId=a);let[o,s,c,l]=await Promise.all([ce(i),F(),ue(e),ae(e,t,n===`short_term`?r:void 0,a).catch(()=>null)]);d(o),_(s),y(c),m(o.length),x({graph:B(o,l),map:l})}catch{}l(!1)}},[e,t,n,r,a,o]);return p(()=>{A()},[A]),{loading:s,records:u,memoryCount:f,setMemoryCount:m,initialModels:g,initialStats:v,graphData:b,loadData:A}}m();function we(e,t,n,r){let[i,a]=h(t),[o,s]=h(n),[l,u]=h(null);p(()=>a(t),[t]),p(()=>s(n),[n]);let d=c(!1);p(()=>{d.current=i.some(e=>e.downloading)},[i]),p(()=>{let e=setInterval(async()=>{if(d.current)try{a(await F())}catch{}},2e3);return()=>clearInterval(e)},[]);let f=c({active:l?.active,pid:e,onReembedComplete:r});return p(()=>{f.current={active:l?.active,pid:e,onReembedComplete:r}},[l?.active,e,r]),p(()=>{let e=setInterval(async()=>{let e=f.current;if(!(!e.active||!e.pid))try{let t=await fe(e.pid);u(t),t.active&&s(await ue(e.pid)),t.active||e.onReembedComplete()}catch{}},1e3);return()=>clearInterval(e)},[]),{models:i,setModels:a,stats:o,setStats:s,reembed:l,setReembed:u}}var q=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),J=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Te=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),Ee=e=>{let t=Te(e);return t.charAt(0).toUpperCase()+t.slice(1)},Y={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},De=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1};u();var Oe=e({}),ke=()=>t(Oe);u();var Ae=d(({color:e,size:t,strokeWidth:r,absoluteStrokeWidth:i,className:a=``,children:o,iconNode:s,...c},l)=>{let{size:u=24,strokeWidth:d=2,absoluteStrokeWidth:f=!1,color:p=`currentColor`,className:m=``}=ke()??{},h=i??f?Number(r??d)*24/Number(t??u):r??d;return n(`svg`,{ref:l,...Y,width:t??u??Y.width,height:t??u??Y.height,stroke:e??p,strokeWidth:h,className:q(`lucide`,m,a),...!o&&!De(c)&&{"aria-hidden":`true`},...c},[...s.map(([e,t])=>n(e,t)),...Array.isArray(o)?o:[o]])});u();var X=(e,t)=>{let r=d(({className:r,...i},a)=>n(Ae,{ref:a,iconNode:t,className:q(`lucide-${J(Ee(e))}`,`lucide-${e}`,r),...i}));return r.displayName=Ee(e),r},je=X(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),Me=X(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),Ne=X(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Pe=X(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),Fe=X(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Ie=X(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Le=X(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function Re(e){return e<1e6?`${(e/1024).toFixed(0)} KB`:e<1e9?`${(e/1e6).toFixed(0)} MB`:`${(e/1e9).toFixed(1)} GB`}var ze=({model:e,onDownload:t,onSelect:n,onDelete:r,onReembed:i,reembedding:o,staleCount:s})=>a(`div`,{className:`flex flex-col gap-3 p-4 rounded-[1.25rem]
2
2
  bg-white/60 dark:bg-void-800/50 backdrop-blur-xl
3
3
  border border-black/[0.06] dark:border-white/[0.06]
4
4
  shadow-[0_2px_12px_rgba(0,0,0,0.04)] dark:shadow-[0_2px_12px_rgba(0,0,0,0.2)]`,children:[a(`div`,{className:`flex items-center justify-between`,children:[a(`div`,{className:`flex items-center gap-2`,children:[a(Me,{className:`w-4 h-4 text-signal-500`,strokeWidth:2}),a(`span`,{className:`text-sm font-bold text-slate-800 dark:text-white`,children:e.displayName})]}),e.active&&a(`span`,{className:`text-[9px] font-bold uppercase tracking-[0.14em] text-signal-500 bg-signal-500/10 px-2 py-0.5 rounded-full`,children:`Active`})]}),a(`p`,{className:`text-[11px] text-slate-500 leading-relaxed`,children:e.description}),a(`div`,{className:`flex items-center gap-3 text-[10px] font-mono text-slate-400`,children:[a(`span`,{children:[e.dimension,`d`]}),a(`span`,{children:Re(e.sizeBytes)}),a(`span`,{children:e.language})]}),e.downloading&&a(`div`,{className:`flex flex-col gap-1.5`,children:[a(`div`,{className:`h-1.5 w-full bg-black/[0.06] dark:bg-white/[0.06] rounded-full overflow-hidden`,children:a(`div`,{className:`h-full rounded-full bg-signal-500 transition-all duration-300`,style:{width:`${Math.round(e.downloadProgress*100)}%`}})}),a(`span`,{className:`text-[9px] font-mono text-slate-400 flex items-center gap-1.5`,children:[a(Ne,{className:`w-3 h-3 animate-spin`,strokeWidth:2}),`Downloading `,Math.round(e.downloadProgress*100),`%`]})]}),a(`div`,{className:`flex items-center gap-2 pt-1`,children:[!e.downloaded&&!e.downloading&&a(`button`,{onClick:()=>t(e.id),disabled:e.downloading||o,"aria-disabled":e.downloading||o,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-[11px] font-bold
@@ -1 +1 @@
1
- import{S as e,_ as t,a as n,x as r}from"./vendor-Dl0fhdV0.js";import{t as i}from"./createLucideIcon-BshUfn15.js";import{S as a,d as o,r as s,x as c}from"./project-data-BSCsMQnj.js";import{Gr as l,Jt as u,Pi as d,_r as f,jr as p,mr as m,vt as h}from"./index-BViPTeJx.js";var g=i(`folder-kanban`,[[`path`,{d:`M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z`,key:`1fr9dc`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M12 10v2`,key:`hh53o1`}],[`path`,{d:`M16 10v6`,key:`1d6xys`}]]);r();var _={activeProjects:[],attentionProjects:[],recentEvents:[],updatedAt:null};function v(n=3e4){let{data:r,loading:i,error:s,refetch:l}=c({initialData:_,fetchResource:e(async e=>o(),[]),isEqual:e((e,t)=>a({...e,updatedAt:null},{...t,updatedAt:null}),[]),realtime:{scopes:[`overview`],eventType:`overview.telemetry.updated`,updateDirectlyFromEvent:!0},pollIntervalMs:n,isAlreadyLoaded:!1});return t(()=>({telemetry:r,loading:i,error:s,refresh:()=>l({silent:!0})}),[r,i,s,l])}function y(e){let t=new Map;for(let n of e?.activeProjects||[])t.set(n.projectId,n.projectName);for(let n of e?.attentionProjects||[])t.set(n.projectId,n.projectName);return t}function b(e){let t=e.eventType,n=e.sprintRunStatus,r=e.taskRunState,i=t.replace(/_/g,` `);return t===`run_running`&&r?i=`task ${r}`:t===`sprint_paused`?i=`sprint paused`:t.includes(`sprint_`)&&n&&(i=`sprint ${n}`),t.includes(`failed`)||t.includes(`error`)?{label:i,toneClass:`text-status-red`}:t.includes(`completed`)||t.includes(`success`)||t===`cli_git_pushed`||t===`cli_pr_finalized`?{label:i,toneClass:`text-status-green`}:t.includes(`blocked`)||t.includes(`paused`)||t===`cli_git_no_changes`?{label:i,toneClass:`text-status-amber`}:t.includes(`started`)||t.includes(`running`)||t===`worker_claimed`?{label:i,toneClass:`text-status-blue`}:{label:i,toneClass:`text-slate-500`}}function x(e){return e.humanIntervention?{title:e.humanIntervention.title||`Human intervention required`}:null}r();var S=()=>{let{telemetry:e,loading:r,error:i}=v(),{loading:a}=s(),o=r||a,c=e?.activeProjects?.length>0,_=e?.attentionProjects?.length>0,S=t(()=>y(e),[e]),C=c||_,w=t(()=>(e?.activeProjects??[]).reduce((e,t)=>e+(t.runningDispatchCount??0),0),[e]);return i?n(`aside`,{className:`sticky top-24 flex h-[calc(100vh-7rem)] min-h-[30rem] flex-col overflow-hidden rounded-[1.75rem] border border-status-red/20 bg-white/80 p-8 backdrop-blur-sm dark:bg-void-800/75`,children:n(`div`,{className:`flex items-center gap-3`,children:[n(p,{className:`w-5 h-5 text-status-red`,strokeWidth:1.5}),n(`div`,{children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-status-red`,children:`Telemetry Error`}),n(`div`,{className:`text-sm text-slate-500 dark:text-slate-500 mt-1`,children:i})]})]})}):n(`aside`,{className:`sticky top-24 flex h-[calc(100vh-7rem)] min-h-[34rem] flex-col overflow-hidden group`,children:[n(`h3`,{className:`mb-7 flex items-center gap-4 font-display text-3xl font-black tracking-tighter text-slate-900 dark:text-white`,children:[n(`div`,{className:`relative flex items-center justify-center`,children:n(`div`,{className:`w-3.5 h-3.5 rounded-full relative z-10 shadow-sm ${c?`bg-status-green shadow-[0_0_8px_rgba(0,171,132,0.4)]`:_?`bg-status-amber shadow-[0_0_8px_rgba(245,158,11,0.4)]`:`bg-slate-400 dark:bg-slate-500`}`})}),`Telemetry.`]}),n(`div`,{className:`relative flex min-h-0 flex-1 flex-col overflow-hidden rounded-[2rem] border border-black/[0.06] bg-white/78 p-8 backdrop-blur-sm dark:border-white/[0.06] dark:bg-void-800/75`,children:[n(`div`,{className:`pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-signal-500/40 to-transparent`}),o?n(`div`,{className:`flex flex-col gap-6`,children:[n(u,{}),n(u,{})]}):C?n(`div`,{className:`relative z-10 flex min-h-0 flex-1 flex-col`,children:[n(`div`,{className:`grid shrink-0 grid-cols-2 gap-3 sm:grid-cols-4`,children:[n(`div`,{className:`rounded-2xl border border-status-green/15 bg-status-green/[0.06] p-4`,children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-status-green`,children:`Active`}),n(`div`,{className:`mt-1.5 font-mono text-2xl font-black text-slate-900 dark:text-white`,children:e?.activeProjects?.length??0})]}),n(`div`,{className:`rounded-2xl border border-signal-500/15 bg-signal-500/[0.06] p-4`,children:[n(`div`,{className:`flex items-center gap-1 text-[10px] font-bold uppercase tracking-[0.14em] text-signal-600 dark:text-signal-400`,children:[n(m,{className:`h-3 w-3`,strokeWidth:2.4}),`Running`]}),n(`div`,{className:`mt-1.5 font-mono text-2xl font-black text-slate-900 dark:text-white`,children:w})]}),n(`div`,{className:`rounded-2xl border border-status-amber/15 bg-status-amber/[0.07] p-4`,children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-status-amber`,children:`Attention`}),n(`div`,{className:`mt-1.5 font-mono text-2xl font-black text-slate-900 dark:text-white`,children:e?.attentionProjects?.length??0})]}),n(`div`,{className:`rounded-2xl border border-black/[0.05] bg-black/[0.02] p-4 dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400`,children:`Events`}),n(`div`,{className:`mt-1.5 font-mono text-2xl font-black text-slate-900 dark:text-white`,children:e?.recentEvents?.length??0})]})]}),e?.attentionProjects?.length>0&&n(`div`,{className:`mt-5 max-h-[26%] shrink-0 overflow-y-auto dashboard-scrollbar rounded-[1.5rem] border border-status-amber/18 bg-status-amber/[0.07] p-4`,children:[n(`div`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.16em] text-status-amber`,children:[n(f,{className:`h-3.5 w-3.5`,strokeWidth:2.1}),`Human Intervention Needed`]}),n(`div`,{className:`mt-3 space-y-2.5`,children:e.attentionProjects.map(e=>n(`div`,{className:`rounded-2xl border border-status-amber/15 bg-white/75 p-3.5 dark:bg-void-800/55`,children:[n(`div`,{className:`flex items-start justify-between gap-3`,children:[n(`div`,{className:`min-w-0`,children:[n(`div`,{className:`truncate text-sm font-bold tracking-tight text-slate-900 dark:text-white`,children:e.projectName}),n(`div`,{className:`mt-1 font-mono text-[10px] text-slate-400`,children:[e.sprintName,e.sprintNumber==null?``:` · Sprint ${e.sprintNumber}`]})]}),n(`div`,{className:`inline-flex shrink-0 items-center gap-1.5 rounded-full border border-status-amber/20 bg-status-amber/10 px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.14em] text-status-amber`,children:[n(f,{className:`h-3 w-3`,strokeWidth:2.2}),`Paused`]})]}),x(e)&&n(`div`,{className:`mt-2.5 text-sm font-semibold text-slate-800 dark:text-slate-100`,children:x(e).title})]},e.sprintRunId))})]}),n(`div`,{className:`mt-5 flex min-h-0 flex-1 flex-col gap-5`,children:[e?.activeProjects?.length>0&&n(`div`,{className:`flex max-h-[45%] shrink-0 flex-col`,children:[n(`div`,{className:`mb-2.5 flex items-center justify-between`,children:[n(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-slate-400`,children:`Active Sprints`}),n(`span`,{className:`font-mono text-[10px] text-slate-400`,children:e.activeProjects.length})]}),n(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto dashboard-scrollbar pr-1`,children:e.activeProjects.map(e=>{let t=e.runningDispatchCount??0,r=Math.max(e.activeDispatchCount??0,t),i=r>0?Math.round(t/r*100):0;return n(`div`,{className:`rounded-2xl border border-black/[0.05] bg-black/[0.02] p-3.5 dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`flex items-center justify-between gap-3`,children:[n(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[n(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-xl border border-signal-500/20 bg-signal-500/10 text-signal-600 dark:text-signal-400`,children:n(l,{className:`h-3.5 w-3.5`,strokeWidth:2.1})}),n(`div`,{className:`min-w-0`,children:[n(`div`,{className:`truncate text-sm font-bold tracking-tight text-slate-900 dark:text-white`,children:e.projectName}),n(`div`,{className:`mt-0.5 truncate font-mono text-[10px] text-slate-400`,children:[e.sprintName,e.sprintNumber==null?``:` · Sprint ${e.sprintNumber}`]})]})]}),n(`span`,{className:`inline-flex shrink-0 items-center gap-1.5 rounded-full border border-status-green/20 bg-status-green/10 px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.14em] text-status-green`,children:[n(d,{className:`h-3 w-3 animate-pulse`,strokeWidth:2.2}),t]})]}),r>0&&n(`div`,{className:`mt-2.5 h-1 w-full overflow-hidden rounded-full bg-black/[0.06] dark:bg-white/[0.08]`,children:n(`div`,{className:`h-full rounded-full bg-gradient-to-r from-signal-500 to-status-green transition-[width] duration-700 ease-out`,style:{width:`${i}%`}})})]},e.sprintRunId)})})]}),n(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[n(`div`,{className:`mb-2.5 text-[10px] font-bold uppercase tracking-[0.16em] text-slate-400`,children:`Runtime Timeline`}),n(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto dashboard-scrollbar pr-1`,children:e?.recentEvents?.map(e=>{let t=b(e);return n(`div`,{className:`relative overflow-hidden rounded-2xl border border-black/[0.05] bg-black/[0.02] p-3 dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`absolute inset-y-0 left-0 w-0.5 ${t.toneClass.replace(`text-`,`bg-`)}`}),n(`div`,{className:`flex items-center justify-between gap-2 pl-1.5`,children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] ${t.toneClass}`,children:t.label}),n(`div`,{className:`font-mono text-[10px] text-slate-400`,children:h(e.createdAt)})]}),n(`div`,{className:`mt-1 pl-1.5 text-xs font-semibold text-slate-800 dark:text-slate-200`,children:S.get(e.projectId)||`Project`}),n(`div`,{className:`mt-1 pl-1.5 font-mono text-[11px] text-slate-500 dark:text-slate-500`,children:[e.sprintName,e.sprintNumber==null?``:` · Sprint ${e.sprintNumber}`]})]},e.id)})})]})]})]}):n(`div`,{className:`relative flex h-full items-center justify-center overflow-hidden`,children:[n(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:[n(`div`,{className:`h-48 w-48 rounded-full border border-black/[0.07] dark:border-white/[0.08] animate-[ping_4s_cubic-bezier(0.1,0.5,0.8,1)_infinite]`}),n(`div`,{className:`absolute h-72 w-72 rounded-full border border-black/[0.04] dark:border-white/[0.05] animate-[ping_7s_cubic-bezier(0.1,0.5,0.8,1)_infinite]`}),n(`div`,{className:`absolute h-[22rem] w-[22rem] rounded-full border border-black/[0.02] dark:border-white/[0.03] animate-[ping_10s_cubic-bezier(0.1,0.5,0.8,1)_infinite]`})]}),n(`div`,{className:`relative z-10 text-center`,children:[n(`div`,{className:`mx-auto mb-5 flex h-14 w-14 items-center justify-center rounded-[1.25rem] border border-black/[0.07] shadow-[0_0_28px_rgba(100,116,139,0.12)] dark:border-white/[0.07]`,children:n(g,{className:`h-7 w-7 text-slate-400 dark:text-slate-500`,strokeWidth:1.5})}),n(`span`,{className:`block font-display text-sm font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-slate-500`,children:`Awaiting Runtime`}),n(`span`,{className:`mt-2 block font-mono text-xs text-slate-400 dark:text-slate-600`,children:`No active project telemetry yet`})]})]})]})]})};export{S as OverviewTelemetry};
1
+ import{S as e,_ as t,a as n,x as r}from"./vendor-Dl0fhdV0.js";import{t as i}from"./createLucideIcon-BshUfn15.js";import{S as a,d as o,r as s,x as c}from"./project-data-BSCsMQnj.js";import{Gr as l,Jt as u,Pi as d,_r as f,jr as p,mr as m,vt as h}from"./index-DddY8OV0.js";var g=i(`folder-kanban`,[[`path`,{d:`M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z`,key:`1fr9dc`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M12 10v2`,key:`hh53o1`}],[`path`,{d:`M16 10v6`,key:`1d6xys`}]]);r();var _={activeProjects:[],attentionProjects:[],recentEvents:[],updatedAt:null};function v(n=3e4){let{data:r,loading:i,error:s,refetch:l}=c({initialData:_,fetchResource:e(async e=>o(),[]),isEqual:e((e,t)=>a({...e,updatedAt:null},{...t,updatedAt:null}),[]),realtime:{scopes:[`overview`],eventType:`overview.telemetry.updated`,updateDirectlyFromEvent:!0},pollIntervalMs:n,isAlreadyLoaded:!1});return t(()=>({telemetry:r,loading:i,error:s,refresh:()=>l({silent:!0})}),[r,i,s,l])}function y(e){let t=new Map;for(let n of e?.activeProjects||[])t.set(n.projectId,n.projectName);for(let n of e?.attentionProjects||[])t.set(n.projectId,n.projectName);return t}function b(e){let t=e.eventType,n=e.sprintRunStatus,r=e.taskRunState,i=t.replace(/_/g,` `);return t===`run_running`&&r?i=`task ${r}`:t===`sprint_paused`?i=`sprint paused`:t.includes(`sprint_`)&&n&&(i=`sprint ${n}`),t.includes(`failed`)||t.includes(`error`)?{label:i,toneClass:`text-status-red`}:t.includes(`completed`)||t.includes(`success`)||t===`cli_git_pushed`||t===`cli_pr_finalized`?{label:i,toneClass:`text-status-green`}:t.includes(`blocked`)||t.includes(`paused`)||t===`cli_git_no_changes`?{label:i,toneClass:`text-status-amber`}:t.includes(`started`)||t.includes(`running`)||t===`worker_claimed`?{label:i,toneClass:`text-status-blue`}:{label:i,toneClass:`text-slate-500`}}function x(e){return e.humanIntervention?{title:e.humanIntervention.title||`Human intervention required`}:null}r();var S=()=>{let{telemetry:e,loading:r,error:i}=v(),{loading:a}=s(),o=r||a,c=e?.activeProjects?.length>0,_=e?.attentionProjects?.length>0,S=t(()=>y(e),[e]),C=c||_,w=t(()=>(e?.activeProjects??[]).reduce((e,t)=>e+(t.runningDispatchCount??0),0),[e]);return i?n(`aside`,{className:`sticky top-24 flex h-[calc(100vh-7rem)] min-h-[30rem] flex-col overflow-hidden rounded-[1.75rem] border border-status-red/20 bg-white/80 p-8 backdrop-blur-sm dark:bg-void-800/75`,children:n(`div`,{className:`flex items-center gap-3`,children:[n(p,{className:`w-5 h-5 text-status-red`,strokeWidth:1.5}),n(`div`,{children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-status-red`,children:`Telemetry Error`}),n(`div`,{className:`text-sm text-slate-500 dark:text-slate-500 mt-1`,children:i})]})]})}):n(`aside`,{className:`sticky top-24 flex h-[calc(100vh-7rem)] min-h-[34rem] flex-col overflow-hidden group`,children:[n(`h3`,{className:`mb-7 flex items-center gap-4 font-display text-3xl font-black tracking-tighter text-slate-900 dark:text-white`,children:[n(`div`,{className:`relative flex items-center justify-center`,children:n(`div`,{className:`w-3.5 h-3.5 rounded-full relative z-10 shadow-sm ${c?`bg-status-green shadow-[0_0_8px_rgba(0,171,132,0.4)]`:_?`bg-status-amber shadow-[0_0_8px_rgba(245,158,11,0.4)]`:`bg-slate-400 dark:bg-slate-500`}`})}),`Telemetry.`]}),n(`div`,{className:`relative flex min-h-0 flex-1 flex-col overflow-hidden rounded-[2rem] border border-black/[0.06] bg-white/78 p-8 backdrop-blur-sm dark:border-white/[0.06] dark:bg-void-800/75`,children:[n(`div`,{className:`pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-signal-500/40 to-transparent`}),o?n(`div`,{className:`flex flex-col gap-6`,children:[n(u,{}),n(u,{})]}):C?n(`div`,{className:`relative z-10 flex min-h-0 flex-1 flex-col`,children:[n(`div`,{className:`grid shrink-0 grid-cols-2 gap-3 sm:grid-cols-4`,children:[n(`div`,{className:`rounded-2xl border border-status-green/15 bg-status-green/[0.06] p-4`,children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-status-green`,children:`Active`}),n(`div`,{className:`mt-1.5 font-mono text-2xl font-black text-slate-900 dark:text-white`,children:e?.activeProjects?.length??0})]}),n(`div`,{className:`rounded-2xl border border-signal-500/15 bg-signal-500/[0.06] p-4`,children:[n(`div`,{className:`flex items-center gap-1 text-[10px] font-bold uppercase tracking-[0.14em] text-signal-600 dark:text-signal-400`,children:[n(m,{className:`h-3 w-3`,strokeWidth:2.4}),`Running`]}),n(`div`,{className:`mt-1.5 font-mono text-2xl font-black text-slate-900 dark:text-white`,children:w})]}),n(`div`,{className:`rounded-2xl border border-status-amber/15 bg-status-amber/[0.07] p-4`,children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-status-amber`,children:`Attention`}),n(`div`,{className:`mt-1.5 font-mono text-2xl font-black text-slate-900 dark:text-white`,children:e?.attentionProjects?.length??0})]}),n(`div`,{className:`rounded-2xl border border-black/[0.05] bg-black/[0.02] p-4 dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400`,children:`Events`}),n(`div`,{className:`mt-1.5 font-mono text-2xl font-black text-slate-900 dark:text-white`,children:e?.recentEvents?.length??0})]})]}),e?.attentionProjects?.length>0&&n(`div`,{className:`mt-5 max-h-[26%] shrink-0 overflow-y-auto dashboard-scrollbar rounded-[1.5rem] border border-status-amber/18 bg-status-amber/[0.07] p-4`,children:[n(`div`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.16em] text-status-amber`,children:[n(f,{className:`h-3.5 w-3.5`,strokeWidth:2.1}),`Human Intervention Needed`]}),n(`div`,{className:`mt-3 space-y-2.5`,children:e.attentionProjects.map(e=>n(`div`,{className:`rounded-2xl border border-status-amber/15 bg-white/75 p-3.5 dark:bg-void-800/55`,children:[n(`div`,{className:`flex items-start justify-between gap-3`,children:[n(`div`,{className:`min-w-0`,children:[n(`div`,{className:`truncate text-sm font-bold tracking-tight text-slate-900 dark:text-white`,children:e.projectName}),n(`div`,{className:`mt-1 font-mono text-[10px] text-slate-400`,children:[e.sprintName,e.sprintNumber==null?``:` · Sprint ${e.sprintNumber}`]})]}),n(`div`,{className:`inline-flex shrink-0 items-center gap-1.5 rounded-full border border-status-amber/20 bg-status-amber/10 px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.14em] text-status-amber`,children:[n(f,{className:`h-3 w-3`,strokeWidth:2.2}),`Paused`]})]}),x(e)&&n(`div`,{className:`mt-2.5 text-sm font-semibold text-slate-800 dark:text-slate-100`,children:x(e).title})]},e.sprintRunId))})]}),n(`div`,{className:`mt-5 flex min-h-0 flex-1 flex-col gap-5`,children:[e?.activeProjects?.length>0&&n(`div`,{className:`flex max-h-[45%] shrink-0 flex-col`,children:[n(`div`,{className:`mb-2.5 flex items-center justify-between`,children:[n(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-slate-400`,children:`Active Sprints`}),n(`span`,{className:`font-mono text-[10px] text-slate-400`,children:e.activeProjects.length})]}),n(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto dashboard-scrollbar pr-1`,children:e.activeProjects.map(e=>{let t=e.runningDispatchCount??0,r=Math.max(e.activeDispatchCount??0,t),i=r>0?Math.round(t/r*100):0;return n(`div`,{className:`rounded-2xl border border-black/[0.05] bg-black/[0.02] p-3.5 dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`flex items-center justify-between gap-3`,children:[n(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[n(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-xl border border-signal-500/20 bg-signal-500/10 text-signal-600 dark:text-signal-400`,children:n(l,{className:`h-3.5 w-3.5`,strokeWidth:2.1})}),n(`div`,{className:`min-w-0`,children:[n(`div`,{className:`truncate text-sm font-bold tracking-tight text-slate-900 dark:text-white`,children:e.projectName}),n(`div`,{className:`mt-0.5 truncate font-mono text-[10px] text-slate-400`,children:[e.sprintName,e.sprintNumber==null?``:` · Sprint ${e.sprintNumber}`]})]})]}),n(`span`,{className:`inline-flex shrink-0 items-center gap-1.5 rounded-full border border-status-green/20 bg-status-green/10 px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.14em] text-status-green`,children:[n(d,{className:`h-3 w-3 animate-pulse`,strokeWidth:2.2}),t]})]}),r>0&&n(`div`,{className:`mt-2.5 h-1 w-full overflow-hidden rounded-full bg-black/[0.06] dark:bg-white/[0.08]`,children:n(`div`,{className:`h-full rounded-full bg-gradient-to-r from-signal-500 to-status-green transition-[width] duration-700 ease-out`,style:{width:`${i}%`}})})]},e.sprintRunId)})})]}),n(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[n(`div`,{className:`mb-2.5 text-[10px] font-bold uppercase tracking-[0.16em] text-slate-400`,children:`Runtime Timeline`}),n(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto dashboard-scrollbar pr-1`,children:e?.recentEvents?.map(e=>{let t=b(e);return n(`div`,{className:`relative overflow-hidden rounded-2xl border border-black/[0.05] bg-black/[0.02] p-3 dark:border-white/[0.06] dark:bg-white/[0.02]`,children:[n(`div`,{className:`absolute inset-y-0 left-0 w-0.5 ${t.toneClass.replace(`text-`,`bg-`)}`}),n(`div`,{className:`flex items-center justify-between gap-2 pl-1.5`,children:[n(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] ${t.toneClass}`,children:t.label}),n(`div`,{className:`font-mono text-[10px] text-slate-400`,children:h(e.createdAt)})]}),n(`div`,{className:`mt-1 pl-1.5 text-xs font-semibold text-slate-800 dark:text-slate-200`,children:S.get(e.projectId)||`Project`}),n(`div`,{className:`mt-1 pl-1.5 font-mono text-[11px] text-slate-500 dark:text-slate-500`,children:[e.sprintName,e.sprintNumber==null?``:` · Sprint ${e.sprintNumber}`]})]},e.id)})})]})]})]}):n(`div`,{className:`relative flex h-full items-center justify-center overflow-hidden`,children:[n(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:[n(`div`,{className:`h-48 w-48 rounded-full border border-black/[0.07] dark:border-white/[0.08] animate-[ping_4s_cubic-bezier(0.1,0.5,0.8,1)_infinite]`}),n(`div`,{className:`absolute h-72 w-72 rounded-full border border-black/[0.04] dark:border-white/[0.05] animate-[ping_7s_cubic-bezier(0.1,0.5,0.8,1)_infinite]`}),n(`div`,{className:`absolute h-[22rem] w-[22rem] rounded-full border border-black/[0.02] dark:border-white/[0.03] animate-[ping_10s_cubic-bezier(0.1,0.5,0.8,1)_infinite]`})]}),n(`div`,{className:`relative z-10 text-center`,children:[n(`div`,{className:`mx-auto mb-5 flex h-14 w-14 items-center justify-center rounded-[1.25rem] border border-black/[0.07] shadow-[0_0_28px_rgba(100,116,139,0.12)] dark:border-white/[0.07]`,children:n(g,{className:`h-7 w-7 text-slate-400 dark:text-slate-500`,strokeWidth:1.5})}),n(`span`,{className:`block font-display text-sm font-semibold uppercase tracking-[0.14em] text-slate-500 dark:text-slate-500`,children:`Awaiting Runtime`}),n(`span`,{className:`mt-2 block font-mono text-xs text-slate-400 dark:text-slate-600`,children:`No active project telemetry yet`})]})]})]})]})};export{S as OverviewTelemetry};
@@ -1,4 +1,4 @@
1
- import{O as e,_ as t,a as n,h as r,j as i,v as a,w as o,x as s,y as c}from"./vendor-Dl0fhdV0.js";import{t as l}from"./createLucideIcon-BshUfn15.js";import{t as u}from"./link-BfFF-gXK.js";import{K as d,r as f}from"./project-data-BSCsMQnj.js";import{Ai as p,Dr as ee,Fi as m,Jr as h,Jt as g,Mr as _,Qr as v,Ri as y,St as te,Ti as b,Tr as ne,Vr as x,Xt as S,ei as C,fi as w,ft as T,ir as E,mi as D,pr as O,pt as k,qt as A,sn as j,yr as M}from"./index-BViPTeJx.js";import{n as N}from"./invocation-api-Cb2lPef-.js";var P=l(`map-pin`,[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]);s();var F=new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,timeZone:`UTC`}),I={github:`GitHub`,gitlab:`GitLab`,local:`Local`},L=[{kind:`open-project`,label:`Open`,ariaLabel:`Open project`,title:`Open project`,tone:`default`},{kind:`setup-project`,label:`Setup project`,ariaLabel:`Setup project`,title:`Setup project`,tone:`default`},{kind:`settings`,label:`Settings`,ariaLabel:`Project settings`,title:`Project settings`,tone:`default`},{kind:`delete`,label:`Delete`,ariaLabel:`Delete project`,title:`Delete project`,tone:`danger`}];function R(e){let t=typeof e==`string`?e.trim():``;return{value:t.length>0?t:`--`,isEmpty:t.length===0}}function z(e){let t=typeof e==`string`?e.trim():``;if(!t)return{value:`--`,isEmpty:!0};let n=new Date(t);return Number.isFinite(n.getTime())?{value:F.format(n),isEmpty:!1}:{value:`--`,isEmpty:!0}}function B(e){return R(I[e.gitProvider]||e.gitProvider)}function V(e){return R(e.gitHostDomain)}function H(e){return e.repoUrl?.trim()?R(e.repoUrl):e.sourceType===`git`?R(e.sourceRef):R(null)}function U(e){return R(e.baseDir)}function W(e){let t=e.settingsOverrides?.git?.defaultBranch;return typeof t==`string`&&t.trim().length>0?R(t):R(e.defaultBranch)}function G(e){return R(e.featureBranchPrefix)}function re(e){return R(e.lastRunStatus)}function ie(e){return e.sourceType===`git`?{kind:`remote-git`,label:`Remote Git`,description:J(`remote-git`,e)}:e.repoUrl?.trim()?{kind:`local-repository`,label:`Local repo`,description:J(`local-repository`,e)}:{kind:`local`,label:`Local`,description:J(`local`,e)}}function K(e){let t=Math.max(0,Math.trunc(e.completedTasks)),n=Math.max(0,Math.trunc(e.openTasks)),r=t+n;if(r<=0)return{value:`--`,percentage:null,completedTasks:t,openTasks:n,totalTasks:r,isEmpty:!0};let i=Math.round(t/r*100);return{value:`${i}%`,percentage:i,completedTasks:t,openTasks:n,totalTasks:r,isEmpty:!1}}function ae(){return L.map(e=>({...e}))}function q(e){return{sourceBadge:ie(e),sourceTypeLabel:e.sourceType===`git`?`Remote Git`:e.repoUrl?.trim()?`Local repo`:`Local`,providerLabel:B(e),hostLabel:V(e),gitUrl:H(e),localDirectory:U(e),createdAt:z(e.createdAt),updatedAt:z(e.updatedAt),lastRunAt:z(e.lastRunAt),lastRunStatus:re(e),branch:W(e),featureBranchPrefix:G(e),taskCompletion:K(e),emptyValue:`--`,actions:ae()}}function J(e,t){let n=B(t).value,r=t.gitHostDomain?.trim()||`--`;return e===`local`?`Local project rooted at ${t.baseDir||`--`}.`:e===`local-repository`?`Local project with inferred ${n} origin on ${r}.`:`${n} repository hosted on ${r}.`}i();var Y=`#FFB800`,oe={running:`Running`,failed:`Failed`,intervention:`Needs Review`,idle:`Idle`},se={running:`text-status-green`,failed:`text-status-red`,intervention:`text-status-amber`,idle:`text-slate-400 dark:text-slate-500`},X={running:`bg-status-green`,failed:`bg-status-red`,intervention:`bg-status-amber`,idle:`bg-slate-300 dark:bg-white/15`},Z=({icon:e,label:t,value:r,isEmpty:i,mono:a})=>n(`div`,{className:`flex items-baseline gap-2 min-w-0`,children:[n(`span`,{className:`flex shrink-0 items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400 dark:text-slate-500`,children:[n(e,{className:`h-3 w-3 shrink-0 -translate-y-px`,strokeWidth:2.4,"aria-hidden":`true`}),t]}),n(`span`,{"aria-hidden":`true`,className:`-translate-y-[3px] flex-1 border-b border-dotted border-black/[0.14] dark:border-white/[0.14]`}),n(`span`,{title:i?void 0:r,className:`max-w-[58%] shrink truncate text-[12px] leading-snug ${a?`font-mono`:`font-semibold`} ${i?`italic text-slate-300 dark:text-slate-600`:`text-slate-800 dark:text-slate-100`}`,children:r})]}),Q=({label:e,value:t,accent:r})=>n(`div`,{className:`flex flex-col items-center justify-center gap-1 py-0.5`,children:[n(`div`,{className:`font-display text-2xl font-black tabular-nums leading-none ${r?`bg-gradient-to-br from-ember-500 to-signal-500 bg-clip-text text-transparent`:`text-slate-900 dark:text-white`}`,children:t}),n(`div`,{className:`text-[8px] font-bold uppercase tracking-[0.18em] text-slate-400 dark:text-slate-500`,children:e})]}),$=({icon:e,label:t,onClick:r,danger:i,busy:a,disabled:o,onHover:s})=>n(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),!o&&r()},onPointerDown:e=>e.stopPropagation(),onMouseEnter:e=>{e.stopPropagation(),s?.()},onFocus:e=>{e.stopPropagation(),s?.()},disabled:o,"aria-label":t,"aria-busy":a,title:t,className:`inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ember-500/30 ${i?`border-status-red/15 bg-status-red/[0.05] text-status-red/80 hover:border-status-red/30 hover:bg-status-red/[0.12] hover:text-status-red`:`border-black/[0.06] bg-white/60 text-slate-500 hover:bg-black/[0.05] hover:text-slate-900 dark:border-white/[0.07] dark:bg-white/[0.04] dark:text-slate-400 dark:hover:bg-white/[0.08] dark:hover:text-white`} ${o?`cursor-not-allowed opacity-50`:``}`,children:a?n(x,{className:`h-4 w-4 animate-spin`}):n(e,{className:`h-4 w-4`,strokeWidth:2,"aria-hidden":`true`})}),ce=({source:e,isSelected:i,isSettingUp:a,setupInvocationId:s,onSelect:c,onDelete:l,onSetup:d,onOpenInvocation:f,onSettings:g})=>{let _=r(null),y=t(()=>q(e),[e]),te=oe[e.status],ne=se[e.status],S=e.status===`running`,C=e.completedTasks+e.openTasks,A=C>0?Math.round(e.completedTasks/C*100):0,j=i,N=!y.gitUrl.isEmpty,F=y.localDirectory.isEmpty?`Not set`:y.localDirectory.value,I=y.branch.isEmpty?`Not set`:y.branch.value,L=y.hostLabel.isEmpty?y.providerLabel.value:y.hostLabel.value,R=y.hostLabel.isEmpty&&y.providerLabel.isEmpty,z=y.lastRunAt.isEmpty?`No runs yet`:y.lastRunAt.value,B=j?`Selected project`:`Select project`;return o(()=>()=>{_.current&&O.killTweensOf(_.current)},[]),n(`div`,{ref:_,role:`button`,tabIndex:0,"aria-pressed":j,"aria-label":`${B}: ${e.name}`,title:`${B}: ${e.name}`,onClick:()=>{c()},onKeyDown:e=>{e.currentTarget===e.target&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c())},onMouseEnter:()=>{_.current&&O.to(_.current,{y:-4,scale:1.01,duration:.45,ease:`back.out(1.8)`,overwrite:`auto`})},onMouseLeave:()=>{_.current&&O.to(_.current,{y:0,scale:1,duration:.65,ease:`power2.out`,overwrite:`auto`})},className:`group relative h-full outline-none focus-visible:ring-2 focus-visible:ring-ember-500/35 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent`,children:[S&&n(`div`,{className:`pointer-events-none absolute inset-0 rounded-[1.75rem] scale-[1.01]`,style:{boxShadow:`0 0 0 1px rgba(0,171,132,0.42), 0 0 24px rgba(0,171,132,0.14)`}}),n(`div`,{className:`relative flex h-full flex-col overflow-hidden rounded-[1.75rem] border backdrop-blur-2xl transition-shadow duration-300 ${j?`border-ember-500/45 bg-white/80 shadow-[0_14px_44px_rgba(255,184,0,0.12)] ring-1 ring-ember-500/25 dark:bg-void-800/80`:`border-black/[0.06] bg-white/72 shadow-[0_2px_20px_rgba(0,0,0,0.04)] dark:border-white/[0.06] dark:bg-void-800/64 dark:shadow-[0_4px_24px_rgba(0,0,0,0.2)]`}`,children:[n(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute left-0 top-0 z-20 h-full w-[3px] ${X[e.status]} ${S?`animate-pulse`:``}`}),n(`div`,{className:`absolute inset-0 bg-signal-500/[0.025] opacity-0 transition-opacity duration-300 group-hover:opacity-100 group-focus-visible:opacity-100`}),n(`div`,{className:`pointer-events-none absolute -top-16 -left-10 h-40 w-40 rounded-full blur-3xl opacity-40 ${S?`bg-status-green/20`:`bg-ember-500/10`}`}),n(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute -bottom-10 -right-3 select-none font-display text-[7rem] font-black leading-none tracking-tighter text-black/[0.035] dark:text-white/[0.03]`,children:e.name.slice(0,2).toUpperCase()}),n(k,{accentHex:Y}),n(T,{accentHex:Y}),n(`div`,{className:`relative z-10 flex flex-1 flex-col gap-4 p-5 pl-6`,children:[n(`div`,{className:`flex items-center justify-between gap-3`,children:[n(`span`,{className:`inline-flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.16em] ${ne}`,children:[n(E,{status:e.status}),n(`span`,{children:te})]}),n(`div`,{className:`flex items-center gap-2`,children:[j?n(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-ember-500/[0.14] px-2 py-1 text-[9px] font-bold uppercase tracking-[0.12em] text-ember-700 dark:text-ember-200`,children:[n(b,{className:`h-2.5 w-2.5`,strokeWidth:3,"aria-hidden":!0}),`Selected`]}):null,n(`span`,{className:`inline-flex items-center rounded-full border px-2.5 py-1 text-[9px] font-bold uppercase tracking-[0.12em] ${y.sourceBadge.kind===`remote-git`?`border-status-green/20 bg-status-green/[0.08] text-status-green`:y.sourceBadge.kind===`local-repository`?`border-signal-500/20 bg-signal-500/[0.1] text-signal-700 dark:text-signal-300`:`border-black/[0.07] bg-black/[0.03] text-slate-500 dark:border-white/[0.08] dark:bg-white/[0.05] dark:text-slate-300`}`,children:y.sourceBadge.label})]})]}),n(`div`,{className:`flex items-center gap-3.5`,children:[n(`div`,{"aria-hidden":`true`,className:`relative grid h-12 w-12 shrink-0 place-items-center overflow-hidden rounded-2xl border border-ember-500/20 bg-gradient-to-br from-ember-500/[0.16] to-ember-600/[0.08] font-display text-xl font-black text-ember-700 dark:border-ember-400/15 dark:text-ember-200`,children:[n(`span`,{className:`absolute inset-0 bg-[linear-gradient(135deg,rgba(255,184,0,0.12)_0%,transparent_55%)]`}),n(`span`,{className:`relative`,children:e.name.slice(0,1).toUpperCase()})]}),n(`div`,{className:`min-w-0 flex-1`,children:[n(`h3`,{className:`truncate font-display text-lg font-black leading-tight tracking-tight text-slate-900 dark:text-white`,children:e.name}),n(`div`,{className:`mt-0.5 truncate font-mono text-[10px] tracking-wide text-slate-400 dark:text-slate-500`,children:e.id})]})]}),a?n(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),s&&f()},className:`flex items-center justify-between rounded-xl border border-ember-500/25 bg-ember-500/[0.08] px-3 py-2.5 text-left text-ember-700 transition-colors hover:bg-ember-500/[0.12] dark:text-ember-200`,disabled:!s,title:s?`Open setup invocation`:`Invocation starting`,children:[n(`span`,{className:`flex items-center gap-2`,children:[n(x,{className:`h-3.5 w-3.5 animate-spin`}),n(`span`,{className:`text-[10px] font-black uppercase tracking-[0.14em]`,children:`Project setup running`})]}),n(`span`,{className:`ml-3 font-mono text-[10px] font-bold opacity-80`,children:s?s.slice(0,8):`starting`})]}):null,n(`div`,{className:`flex flex-col gap-2 border-t border-black/[0.06] pt-3.5 dark:border-white/[0.07]`,children:[N?n(Z,{icon:u,label:`Repo`,value:y.gitUrl.value,isEmpty:!1,mono:!0}):null,n(Z,{icon:P,label:`Path`,value:F,isEmpty:y.localDirectory.isEmpty,mono:!0}),n(Z,{icon:v,label:`Branch`,value:I,isEmpty:y.branch.isEmpty,mono:!0}),n(Z,{icon:h,label:`Host`,value:L,isEmpty:R}),n(Z,{icon:w,label:`Last run`,value:z,isEmpty:y.lastRunAt.isEmpty})]}),n(`div`,{className:`grid grid-cols-3 divide-x divide-black/[0.06] border-y border-black/[0.06] py-2 dark:divide-white/[0.07] dark:border-white/[0.07]`,children:[n(Q,{label:`Sprints`,value:e.sprintsCount}),n(Q,{label:`Open`,value:e.openTasks}),n(Q,{label:`Done`,value:e.completedTasks,accent:A===100&&C>0})]}),n(`div`,{children:[n(`div`,{className:`flex items-center justify-between text-[9px] font-bold uppercase tracking-[0.16em] text-slate-400 dark:text-slate-500`,children:[n(`span`,{children:`Completion`}),n(`span`,{className:`font-mono tabular-nums text-slate-600 dark:text-slate-300`,children:[A,`%`]})]}),n(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-black/[0.06] dark:bg-white/[0.08]`,children:n(`div`,{className:`h-full rounded-full bg-gradient-to-r from-ember-500 via-ember-400 to-signal-500 shadow-[0_0_10px_rgba(255,184,0,0.4)] transition-[width] duration-700`,style:{width:`${A}%`}})})]}),n(`div`,{className:`mt-auto flex items-center gap-2`,children:[n(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),c()},onPointerDown:e=>e.stopPropagation(),"aria-pressed":j,"aria-label":j?`${e.name} is selected`:`Select ${e.name}`,className:`inline-flex flex-1 items-center justify-center gap-2 rounded-xl px-3 py-2.5 text-xs font-bold tracking-wide transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ember-500/40 ${j?`bg-ember-500 text-void-900 shadow-[0_4px_18px_rgba(255,184,0,0.3)] hover:bg-ember-400`:`border border-black/[0.1] bg-white/50 text-slate-700 hover:border-ember-500/45 hover:bg-ember-500/[0.08] hover:text-ember-700 dark:border-white/[0.12] dark:bg-white/[0.04] dark:text-slate-200 dark:hover:border-ember-500/45 dark:hover:text-ember-200`}`,children:[j?n(b,{className:`h-4 w-4`,strokeWidth:2.6,"aria-hidden":`true`}):n(D,{className:`h-3.5 w-3.5`,strokeWidth:2.4,"aria-hidden":`true`}),j?`Selected`:`Select project`]}),n($,{icon:p,label:a?`Project setup is already running`:`Setup project`,onClick:d,busy:a,disabled:a}),n($,{icon:ee,label:`Project settings`,onClick:g,onHover:()=>m(`/config`)}),n($,{icon:M,label:`Delete project`,onClick:l,danger:!0})]})]})]})]})},le=({onClick:e})=>n(`button`,{onClick:e,className:`group relative flex h-full min-h-[300px] w-full flex-col items-center justify-center gap-5
1
+ import{O as e,_ as t,a as n,h as r,j as i,v as a,w as o,x as s,y as c}from"./vendor-Dl0fhdV0.js";import{t as l}from"./createLucideIcon-BshUfn15.js";import{t as u}from"./link-BfFF-gXK.js";import{K as d,r as f}from"./project-data-BSCsMQnj.js";import{Ai as p,Dr as ee,Fi as m,Jr as h,Jt as g,Mr as _,Qr as v,Ri as y,St as te,Ti as b,Tr as ne,Vr as x,Xt as S,ei as C,fi as w,ft as T,ir as E,mi as D,pr as O,pt as k,qt as A,sn as j,yr as M}from"./index-DddY8OV0.js";import{n as N}from"./invocation-api-Cb2lPef-.js";var P=l(`map-pin`,[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]);s();var F=new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,timeZone:`UTC`}),I={github:`GitHub`,gitlab:`GitLab`,local:`Local`},L=[{kind:`open-project`,label:`Open`,ariaLabel:`Open project`,title:`Open project`,tone:`default`},{kind:`setup-project`,label:`Setup project`,ariaLabel:`Setup project`,title:`Setup project`,tone:`default`},{kind:`settings`,label:`Settings`,ariaLabel:`Project settings`,title:`Project settings`,tone:`default`},{kind:`delete`,label:`Delete`,ariaLabel:`Delete project`,title:`Delete project`,tone:`danger`}];function R(e){let t=typeof e==`string`?e.trim():``;return{value:t.length>0?t:`--`,isEmpty:t.length===0}}function z(e){let t=typeof e==`string`?e.trim():``;if(!t)return{value:`--`,isEmpty:!0};let n=new Date(t);return Number.isFinite(n.getTime())?{value:F.format(n),isEmpty:!1}:{value:`--`,isEmpty:!0}}function B(e){return R(I[e.gitProvider]||e.gitProvider)}function V(e){return R(e.gitHostDomain)}function H(e){return e.repoUrl?.trim()?R(e.repoUrl):e.sourceType===`git`?R(e.sourceRef):R(null)}function U(e){return R(e.baseDir)}function W(e){let t=e.settingsOverrides?.git?.defaultBranch;return typeof t==`string`&&t.trim().length>0?R(t):R(e.defaultBranch)}function G(e){return R(e.featureBranchPrefix)}function re(e){return R(e.lastRunStatus)}function ie(e){return e.sourceType===`git`?{kind:`remote-git`,label:`Remote Git`,description:J(`remote-git`,e)}:e.repoUrl?.trim()?{kind:`local-repository`,label:`Local repo`,description:J(`local-repository`,e)}:{kind:`local`,label:`Local`,description:J(`local`,e)}}function K(e){let t=Math.max(0,Math.trunc(e.completedTasks)),n=Math.max(0,Math.trunc(e.openTasks)),r=t+n;if(r<=0)return{value:`--`,percentage:null,completedTasks:t,openTasks:n,totalTasks:r,isEmpty:!0};let i=Math.round(t/r*100);return{value:`${i}%`,percentage:i,completedTasks:t,openTasks:n,totalTasks:r,isEmpty:!1}}function ae(){return L.map(e=>({...e}))}function q(e){return{sourceBadge:ie(e),sourceTypeLabel:e.sourceType===`git`?`Remote Git`:e.repoUrl?.trim()?`Local repo`:`Local`,providerLabel:B(e),hostLabel:V(e),gitUrl:H(e),localDirectory:U(e),createdAt:z(e.createdAt),updatedAt:z(e.updatedAt),lastRunAt:z(e.lastRunAt),lastRunStatus:re(e),branch:W(e),featureBranchPrefix:G(e),taskCompletion:K(e),emptyValue:`--`,actions:ae()}}function J(e,t){let n=B(t).value,r=t.gitHostDomain?.trim()||`--`;return e===`local`?`Local project rooted at ${t.baseDir||`--`}.`:e===`local-repository`?`Local project with inferred ${n} origin on ${r}.`:`${n} repository hosted on ${r}.`}i();var Y=`#FFB800`,oe={running:`Running`,failed:`Failed`,intervention:`Needs Review`,idle:`Idle`},se={running:`text-status-green`,failed:`text-status-red`,intervention:`text-status-amber`,idle:`text-slate-400 dark:text-slate-500`},X={running:`bg-status-green`,failed:`bg-status-red`,intervention:`bg-status-amber`,idle:`bg-slate-300 dark:bg-white/15`},Z=({icon:e,label:t,value:r,isEmpty:i,mono:a})=>n(`div`,{className:`flex items-baseline gap-2 min-w-0`,children:[n(`span`,{className:`flex shrink-0 items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.14em] text-slate-400 dark:text-slate-500`,children:[n(e,{className:`h-3 w-3 shrink-0 -translate-y-px`,strokeWidth:2.4,"aria-hidden":`true`}),t]}),n(`span`,{"aria-hidden":`true`,className:`-translate-y-[3px] flex-1 border-b border-dotted border-black/[0.14] dark:border-white/[0.14]`}),n(`span`,{title:i?void 0:r,className:`max-w-[58%] shrink truncate text-[12px] leading-snug ${a?`font-mono`:`font-semibold`} ${i?`italic text-slate-300 dark:text-slate-600`:`text-slate-800 dark:text-slate-100`}`,children:r})]}),Q=({label:e,value:t,accent:r})=>n(`div`,{className:`flex flex-col items-center justify-center gap-1 py-0.5`,children:[n(`div`,{className:`font-display text-2xl font-black tabular-nums leading-none ${r?`bg-gradient-to-br from-ember-500 to-signal-500 bg-clip-text text-transparent`:`text-slate-900 dark:text-white`}`,children:t}),n(`div`,{className:`text-[8px] font-bold uppercase tracking-[0.18em] text-slate-400 dark:text-slate-500`,children:e})]}),$=({icon:e,label:t,onClick:r,danger:i,busy:a,disabled:o,onHover:s})=>n(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),!o&&r()},onPointerDown:e=>e.stopPropagation(),onMouseEnter:e=>{e.stopPropagation(),s?.()},onFocus:e=>{e.stopPropagation(),s?.()},disabled:o,"aria-label":t,"aria-busy":a,title:t,className:`inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-xl border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ember-500/30 ${i?`border-status-red/15 bg-status-red/[0.05] text-status-red/80 hover:border-status-red/30 hover:bg-status-red/[0.12] hover:text-status-red`:`border-black/[0.06] bg-white/60 text-slate-500 hover:bg-black/[0.05] hover:text-slate-900 dark:border-white/[0.07] dark:bg-white/[0.04] dark:text-slate-400 dark:hover:bg-white/[0.08] dark:hover:text-white`} ${o?`cursor-not-allowed opacity-50`:``}`,children:a?n(x,{className:`h-4 w-4 animate-spin`}):n(e,{className:`h-4 w-4`,strokeWidth:2,"aria-hidden":`true`})}),ce=({source:e,isSelected:i,isSettingUp:a,setupInvocationId:s,onSelect:c,onDelete:l,onSetup:d,onOpenInvocation:f,onSettings:g})=>{let _=r(null),y=t(()=>q(e),[e]),te=oe[e.status],ne=se[e.status],S=e.status===`running`,C=e.completedTasks+e.openTasks,A=C>0?Math.round(e.completedTasks/C*100):0,j=i,N=!y.gitUrl.isEmpty,F=y.localDirectory.isEmpty?`Not set`:y.localDirectory.value,I=y.branch.isEmpty?`Not set`:y.branch.value,L=y.hostLabel.isEmpty?y.providerLabel.value:y.hostLabel.value,R=y.hostLabel.isEmpty&&y.providerLabel.isEmpty,z=y.lastRunAt.isEmpty?`No runs yet`:y.lastRunAt.value,B=j?`Selected project`:`Select project`;return o(()=>()=>{_.current&&O.killTweensOf(_.current)},[]),n(`div`,{ref:_,role:`button`,tabIndex:0,"aria-pressed":j,"aria-label":`${B}: ${e.name}`,title:`${B}: ${e.name}`,onClick:()=>{c()},onKeyDown:e=>{e.currentTarget===e.target&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c())},onMouseEnter:()=>{_.current&&O.to(_.current,{y:-4,scale:1.01,duration:.45,ease:`back.out(1.8)`,overwrite:`auto`})},onMouseLeave:()=>{_.current&&O.to(_.current,{y:0,scale:1,duration:.65,ease:`power2.out`,overwrite:`auto`})},className:`group relative h-full outline-none focus-visible:ring-2 focus-visible:ring-ember-500/35 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent`,children:[S&&n(`div`,{className:`pointer-events-none absolute inset-0 rounded-[1.75rem] scale-[1.01]`,style:{boxShadow:`0 0 0 1px rgba(0,171,132,0.42), 0 0 24px rgba(0,171,132,0.14)`}}),n(`div`,{className:`relative flex h-full flex-col overflow-hidden rounded-[1.75rem] border backdrop-blur-2xl transition-shadow duration-300 ${j?`border-ember-500/45 bg-white/80 shadow-[0_14px_44px_rgba(255,184,0,0.12)] ring-1 ring-ember-500/25 dark:bg-void-800/80`:`border-black/[0.06] bg-white/72 shadow-[0_2px_20px_rgba(0,0,0,0.04)] dark:border-white/[0.06] dark:bg-void-800/64 dark:shadow-[0_4px_24px_rgba(0,0,0,0.2)]`}`,children:[n(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute left-0 top-0 z-20 h-full w-[3px] ${X[e.status]} ${S?`animate-pulse`:``}`}),n(`div`,{className:`absolute inset-0 bg-signal-500/[0.025] opacity-0 transition-opacity duration-300 group-hover:opacity-100 group-focus-visible:opacity-100`}),n(`div`,{className:`pointer-events-none absolute -top-16 -left-10 h-40 w-40 rounded-full blur-3xl opacity-40 ${S?`bg-status-green/20`:`bg-ember-500/10`}`}),n(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute -bottom-10 -right-3 select-none font-display text-[7rem] font-black leading-none tracking-tighter text-black/[0.035] dark:text-white/[0.03]`,children:e.name.slice(0,2).toUpperCase()}),n(k,{accentHex:Y}),n(T,{accentHex:Y}),n(`div`,{className:`relative z-10 flex flex-1 flex-col gap-4 p-5 pl-6`,children:[n(`div`,{className:`flex items-center justify-between gap-3`,children:[n(`span`,{className:`inline-flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.16em] ${ne}`,children:[n(E,{status:e.status}),n(`span`,{children:te})]}),n(`div`,{className:`flex items-center gap-2`,children:[j?n(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-ember-500/[0.14] px-2 py-1 text-[9px] font-bold uppercase tracking-[0.12em] text-ember-700 dark:text-ember-200`,children:[n(b,{className:`h-2.5 w-2.5`,strokeWidth:3,"aria-hidden":!0}),`Selected`]}):null,n(`span`,{className:`inline-flex items-center rounded-full border px-2.5 py-1 text-[9px] font-bold uppercase tracking-[0.12em] ${y.sourceBadge.kind===`remote-git`?`border-status-green/20 bg-status-green/[0.08] text-status-green`:y.sourceBadge.kind===`local-repository`?`border-signal-500/20 bg-signal-500/[0.1] text-signal-700 dark:text-signal-300`:`border-black/[0.07] bg-black/[0.03] text-slate-500 dark:border-white/[0.08] dark:bg-white/[0.05] dark:text-slate-300`}`,children:y.sourceBadge.label})]})]}),n(`div`,{className:`flex items-center gap-3.5`,children:[n(`div`,{"aria-hidden":`true`,className:`relative grid h-12 w-12 shrink-0 place-items-center overflow-hidden rounded-2xl border border-ember-500/20 bg-gradient-to-br from-ember-500/[0.16] to-ember-600/[0.08] font-display text-xl font-black text-ember-700 dark:border-ember-400/15 dark:text-ember-200`,children:[n(`span`,{className:`absolute inset-0 bg-[linear-gradient(135deg,rgba(255,184,0,0.12)_0%,transparent_55%)]`}),n(`span`,{className:`relative`,children:e.name.slice(0,1).toUpperCase()})]}),n(`div`,{className:`min-w-0 flex-1`,children:[n(`h3`,{className:`truncate font-display text-lg font-black leading-tight tracking-tight text-slate-900 dark:text-white`,children:e.name}),n(`div`,{className:`mt-0.5 truncate font-mono text-[10px] tracking-wide text-slate-400 dark:text-slate-500`,children:e.id})]})]}),a?n(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),s&&f()},className:`flex items-center justify-between rounded-xl border border-ember-500/25 bg-ember-500/[0.08] px-3 py-2.5 text-left text-ember-700 transition-colors hover:bg-ember-500/[0.12] dark:text-ember-200`,disabled:!s,title:s?`Open setup invocation`:`Invocation starting`,children:[n(`span`,{className:`flex items-center gap-2`,children:[n(x,{className:`h-3.5 w-3.5 animate-spin`}),n(`span`,{className:`text-[10px] font-black uppercase tracking-[0.14em]`,children:`Project setup running`})]}),n(`span`,{className:`ml-3 font-mono text-[10px] font-bold opacity-80`,children:s?s.slice(0,8):`starting`})]}):null,n(`div`,{className:`flex flex-col gap-2 border-t border-black/[0.06] pt-3.5 dark:border-white/[0.07]`,children:[N?n(Z,{icon:u,label:`Repo`,value:y.gitUrl.value,isEmpty:!1,mono:!0}):null,n(Z,{icon:P,label:`Path`,value:F,isEmpty:y.localDirectory.isEmpty,mono:!0}),n(Z,{icon:v,label:`Branch`,value:I,isEmpty:y.branch.isEmpty,mono:!0}),n(Z,{icon:h,label:`Host`,value:L,isEmpty:R}),n(Z,{icon:w,label:`Last run`,value:z,isEmpty:y.lastRunAt.isEmpty})]}),n(`div`,{className:`grid grid-cols-3 divide-x divide-black/[0.06] border-y border-black/[0.06] py-2 dark:divide-white/[0.07] dark:border-white/[0.07]`,children:[n(Q,{label:`Sprints`,value:e.sprintsCount}),n(Q,{label:`Open`,value:e.openTasks}),n(Q,{label:`Done`,value:e.completedTasks,accent:A===100&&C>0})]}),n(`div`,{children:[n(`div`,{className:`flex items-center justify-between text-[9px] font-bold uppercase tracking-[0.16em] text-slate-400 dark:text-slate-500`,children:[n(`span`,{children:`Completion`}),n(`span`,{className:`font-mono tabular-nums text-slate-600 dark:text-slate-300`,children:[A,`%`]})]}),n(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-black/[0.06] dark:bg-white/[0.08]`,children:n(`div`,{className:`h-full rounded-full bg-gradient-to-r from-ember-500 via-ember-400 to-signal-500 shadow-[0_0_10px_rgba(255,184,0,0.4)] transition-[width] duration-700`,style:{width:`${A}%`}})})]}),n(`div`,{className:`mt-auto flex items-center gap-2`,children:[n(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),c()},onPointerDown:e=>e.stopPropagation(),"aria-pressed":j,"aria-label":j?`${e.name} is selected`:`Select ${e.name}`,className:`inline-flex flex-1 items-center justify-center gap-2 rounded-xl px-3 py-2.5 text-xs font-bold tracking-wide transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ember-500/40 ${j?`bg-ember-500 text-void-900 shadow-[0_4px_18px_rgba(255,184,0,0.3)] hover:bg-ember-400`:`border border-black/[0.1] bg-white/50 text-slate-700 hover:border-ember-500/45 hover:bg-ember-500/[0.08] hover:text-ember-700 dark:border-white/[0.12] dark:bg-white/[0.04] dark:text-slate-200 dark:hover:border-ember-500/45 dark:hover:text-ember-200`}`,children:[j?n(b,{className:`h-4 w-4`,strokeWidth:2.6,"aria-hidden":`true`}):n(D,{className:`h-3.5 w-3.5`,strokeWidth:2.4,"aria-hidden":`true`}),j?`Selected`:`Select project`]}),n($,{icon:p,label:a?`Project setup is already running`:`Setup project`,onClick:d,busy:a,disabled:a}),n($,{icon:ee,label:`Project settings`,onClick:g,onHover:()=>m(`/config`)}),n($,{icon:M,label:`Delete project`,onClick:l,danger:!0})]})]})]})]})},le=({onClick:e})=>n(`button`,{onClick:e,className:`group relative flex h-full min-h-[300px] w-full flex-col items-center justify-center gap-5
2
2
  overflow-hidden p-7
3
3
  bg-white/45 dark:bg-void-800/35
4
4
  backdrop-blur-2xl