@graphmemory/server 1.3.0 → 1.3.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.
- package/dist/api/index.js +4 -4
- package/dist/api/rest/code.js +2 -1
- package/dist/api/rest/docs.js +2 -1
- package/dist/api/rest/embed.js +8 -1
- package/dist/api/rest/index.js +25 -7
- package/dist/api/rest/knowledge.js +4 -2
- package/dist/api/rest/skills.js +2 -1
- package/dist/api/rest/tasks.js +2 -1
- package/dist/api/rest/validation.js +41 -40
- package/dist/api/rest/websocket.js +24 -7
- package/dist/api/tools/knowledge/add-attachment.js +2 -1
- package/dist/api/tools/skills/add-attachment.js +2 -1
- package/dist/api/tools/tasks/add-attachment.js +2 -1
- package/dist/cli/index.js +7 -4
- package/dist/cli/indexer.js +38 -25
- package/dist/graphs/attachment-types.js +5 -0
- package/dist/graphs/code.js +34 -8
- package/dist/graphs/docs.js +5 -3
- package/dist/graphs/file-index.js +5 -3
- package/dist/graphs/knowledge.js +11 -4
- package/dist/graphs/skill.js +12 -5
- package/dist/graphs/task.js +12 -5
- package/dist/lib/defaults.js +78 -0
- package/dist/lib/embedder.js +11 -12
- package/dist/lib/embedding-codec.js +3 -5
- package/dist/lib/graph-persistence.js +68 -0
- package/dist/lib/jwt.js +2 -2
- package/dist/lib/mirror-watcher.js +4 -3
- package/dist/lib/multi-config.js +3 -1
- package/dist/lib/parsers/docs.js +2 -1
- package/dist/lib/parsers/languages/typescript.js +39 -17
- package/dist/lib/project-manager.js +7 -1
- package/dist/lib/search/bm25.js +5 -4
- package/dist/lib/search/code.js +2 -1
- package/dist/lib/search/docs.js +2 -1
- package/dist/lib/search/file-index.js +2 -1
- package/dist/lib/search/files.js +3 -2
- package/dist/lib/search/knowledge.js +2 -1
- package/dist/lib/search/skills.js +2 -1
- package/dist/lib/search/tasks.js +2 -1
- package/dist/ui/assets/{NoteForm-aZX9f6-3.js → NoteForm-SQ0b93i0.js} +1 -1
- package/dist/ui/assets/{SkillForm-KYa3o92l.js → SkillForm-BVsGrNPb.js} +1 -1
- package/dist/ui/assets/{TaskForm-Bl5nkybO.js → TaskForm-DgPVeiI9.js} +1 -1
- package/dist/ui/assets/{_articleId_-DjbCByxM.js → _articleId_-FqdaSeYS.js} +1 -1
- package/dist/ui/assets/{_docId_-hdCDjclV.js → _docId_-Q0Wmjtp6.js} +1 -1
- package/dist/ui/assets/{_filePath_-CpG836v4.js → _filePath_-BR0gOT_z.js} +1 -1
- package/dist/ui/assets/{_noteId_-C1enaQd1.js → _noteId_-BMWd415J.js} +1 -1
- package/dist/ui/assets/{_skillId_-hPoCet7J.js → _skillId_-CsHgildJ.js} +1 -1
- package/dist/ui/assets/{_taskId_-DSB3dLVz.js → _taskId_-xDHTfbQw.js} +1 -1
- package/dist/ui/assets/{_toolName_-3SmCfxZy.js → _toolName_-BSa2uNSu.js} +1 -1
- package/dist/ui/assets/{attachments-CEQ-2nMo.js → attachments-NSvN5_0A.js} +1 -1
- package/dist/ui/assets/{docs-CrXsRcOG.js → docs-iUK8E40J.js} +1 -1
- package/dist/ui/assets/{edit-TUIIpUMF.js → edit-BzIJy_Oo.js} +1 -1
- package/dist/ui/assets/{edit-BYiy1FZy.js → edit-Dnc067B2.js} +1 -1
- package/dist/ui/assets/{edit-hc-ZWz3y.js → edit-U_UEI361.js} +1 -1
- package/dist/ui/assets/{files-0bPg6NH9.js → files-B4svJUZh.js} +1 -1
- package/dist/ui/assets/{graph-DXGud_wF.js → graph-CcNP1ckP.js} +1 -1
- package/dist/ui/assets/{help-DJ52_fxN.js → help-BJZZtKAR.js} +1 -1
- package/dist/ui/assets/{help-CEMQqZUR.js → help-D6XKMuzk.js} +16 -4
- package/dist/ui/assets/index-CEweXD9O.js +2 -0
- package/dist/ui/assets/{knowledge-DeygeGGH.js → knowledge-CV99ToEV.js} +1 -1
- package/dist/ui/assets/{new-CpD7hOBA.js → new-BypesKiP.js} +1 -1
- package/dist/ui/assets/{new-s8c0M75X.js → new-Dcx8wlp4.js} +1 -1
- package/dist/ui/assets/{new-DHTg3Dqq.js → new-Sq3NY2oa.js} +1 -1
- package/dist/ui/assets/{prompts-BgOmdxgM.js → prompts-DbsIe3Pm.js} +1 -1
- package/dist/ui/assets/{search-EpJhdP2a.js → search-D87r7lIL.js} +1 -1
- package/dist/ui/assets/{skill-y9pizyqE.js → skill-BltAsz7M.js} +1 -1
- package/dist/ui/assets/{skills-Cga9iUZN.js → skills-Dtmg2kDA.js} +1 -1
- package/dist/ui/assets/{tasks-CobouTKV.js → tasks-BRqIwKCG.js} +1 -1
- package/dist/ui/assets/{tools-JxKH5BDF.js → tools-CM3gQ4TK.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/package.json +5 -2
- package/dist/ui/assets/index-BCZDAYZi.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{D as t,O as n}from"./vendor-markdown-CT8ZVEPu.js";import{c as r,l as i}from"./vendor-react-CHUjhoxh.js";import{$ as a,A as o,P as s,S as ee,U as te,X as c,Y as l,b as ne,et as re,ft as u,h as ie,m as ae,nt as oe,ot as d,q as f,r as p,tt as m,ut as se,v as h,y as g}from"./vendor-mui-BPj7d3Sw.js";import"./vendor-md-editor-DmWafJvr.js";import{K as _,M as ce,Q as v,W as le,n as ue,r as de,st as fe,ut as pe}from"./vendor-mui-icons-B196sG3f.js";import{F as me,P as he,Q as ge,Z as _e,c as ve,et as ye,g as be,h as xe,i as y,j as Se,n as Ce,o as we,t as b,w as Te}from"./index-BCZDAYZi.js";var x=e(n(),1),S=`kanban-visible-columns`,C=b.map(e=>e.status);function w(){try{let e=localStorage.getItem(S);if(e){let t=JSON.parse(e).filter(e=>C.includes(e));if(t.length>0)return new Set(t)}}catch{}return new Set(C)}function Ee(){let[e,t]=(0,x.useState)(w);return{visible:e,toggle:(0,x.useCallback)(e=>{t(t=>{let n=new Set(t);if(n.has(e)){if(n.size<=1)return t;n.delete(e)}else n.add(e);return localStorage.setItem(S,JSON.stringify([...n])),n})},[]),visibleColumns:b.filter(t=>e.has(t.status))}}var T=t(),E=[`done`,`cancelled`],D=864e5;function De(e,t){if(!e||E.includes(t))return null;let n=e-Date.now(),r=Math.ceil(n/D);return r<0?{label:`Overdue ${Math.abs(r)}d`,color:`error`}:r<=3?{label:`Due in ${r}d`,color:`warning`}:null}function O(){let{projectId:e}=i(),t=r(),{palette:n}=se(),S=_e(`tasks`),[C,w]=(0,x.useState)([]),[E,D]=(0,x.useState)(!0),[O,Oe]=(0,x.useState)(null),[k,A]=(0,x.useState)(null),[ke,j]=(0,x.useState)(null),[M,Ae]=(0,x.useState)([]),[N,P]=(0,x.useState)(``),{visible:F,toggle:je,visibleColumns:Me}=Ee(),[I,L]=(0,x.useState)(null),[R,z]=(0,x.useState)(``),[B,V]=(0,x.useState)(``),[H,U]=(0,x.useState)(``),[W,G]=(0,x.useState)(null),[K,q]=(0,x.useState)(``),J=(0,x.useRef)(null),[Y,X]=(0,x.useState)(null),[Ne,Z]=(0,x.useState)(!1),Q=(0,x.useCallback)(async()=>{if(e)try{w(await xe(e,{limit:500}))}catch(e){Oe(e instanceof Error?e.message:String(e))}finally{D(!1)}},[e]);(0,x.useEffect)(()=>{Q()},[Q]),(0,x.useEffect)(()=>{e&&ye(e).then(Ae).catch(()=>{})},[e]),ge(e??null,(0,x.useCallback)(e=>{e.type.startsWith(`task:`)&&Q()},[Q])),(0,x.useEffect)(()=>{W&&setTimeout(()=>J.current?.focus(),50)},[W]);let Pe=e=>A(e),$=()=>{A(null),j(null)},Fe=async t=>{if(!k||!e)return;let n=C.find(e=>e.id===k);if(!n||n.status===t){$();return}w(e=>e.map(e=>e.id===k?{...e,status:t}:e)),$();try{await be(e,k,t)}catch{Q()}},Ie=async t=>{let n=K.trim();if(!(!n||!e)){q(``),G(null);try{await we(e,{title:n,status:t}),Q()}catch{}}},Le=async()=>{if(!(!Y||!e)){Z(!0);try{w(e=>e.filter(e=>e.id!==Y.id)),await ve(e,Y.id)}catch{Q()}finally{Z(!1),X(null)}}},Re=(0,x.useMemo)(()=>{let e=new Set;for(let t of C)t.tags?.forEach(t=>e.add(t));return[...e].sort()},[C]),ze=(0,x.useMemo)(()=>{let e=C;if(R){let t=R.toLowerCase();e=e.filter(e=>e.title.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t))}return B&&(e=e.filter(e=>e.priority===B)),H&&(e=e.filter(e=>e.tags?.includes(H))),N&&(e=e.filter(e=>e.assignee===N)),e},[C,R,B,H,N]),Be=(0,x.useMemo)(()=>{let e=new Map;for(let t of b)e.set(t.status,[]);for(let t of ze){let n=e.get(t.status);n&&n.push(t)}return e},[ze]),Ve=R||B||H||N;return(0,T.jsxs)(l,{children:[(0,T.jsx)(Se,{breadcrumbs:[{label:`Tasks`}],actions:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(ie,{title:`Column visibility`,children:(0,T.jsx)(m,{onClick:e=>L(e.currentTarget),size:`small`,children:(0,T.jsx)(de,{fontSize:`small`})})}),(0,T.jsx)(ne,{anchorEl:I,open:!!I,onClose:()=>L(null),children:b.map(({status:e,label:t})=>(0,T.jsxs)(g,{onClick:()=>je(e),dense:!0,children:[(0,T.jsx)(te,{checked:F.has(e),disabled:F.has(e)&&F.size===1,size:`small`,sx:{p:0,mr:1}}),(0,T.jsx)(ee,{primary:t})]},e))}),S&&(0,T.jsx)(f,{variant:`contained`,startIcon:(0,T.jsx)(_,{}),onClick:()=>t(`new`),children:`New Task`})]})}),(0,T.jsxs)(l,{sx:{display:`flex`,alignItems:`center`,gap:1.5,px:2,py:1,bgcolor:n.custom.surfaceMuted,borderRadius:1,mb:2},children:[(0,T.jsx)(p,{size:`small`,placeholder:`Search tasks...`,value:R,onChange:e=>z(e.target.value),slotProps:{input:{startAdornment:(0,T.jsx)(o,{position:`start`,children:(0,T.jsx)(fe,{fontSize:`small`,sx:{color:n.custom.textMuted}})}),endAdornment:R?(0,T.jsx)(o,{position:`end`,children:(0,T.jsx)(m,{size:`small`,onClick:()=>z(``),children:(0,T.jsx)(v,{fontSize:`small`})})}):void 0}},sx:{minWidth:200,flex:1,maxWidth:350}}),(0,T.jsx)(s,{size:`small`,sx:{minWidth:120},children:(0,T.jsxs)(h,{value:B,onChange:e=>V(e.target.value),displayEmpty:!0,renderValue:e=>e?y(e):`Priority`,sx:{color:B?void 0:n.custom.textMuted},children:[(0,T.jsx)(g,{value:``,children:`All priorities`}),(0,T.jsx)(g,{value:`critical`,children:`Critical`}),(0,T.jsx)(g,{value:`high`,children:`High`}),(0,T.jsx)(g,{value:`medium`,children:`Medium`}),(0,T.jsx)(g,{value:`low`,children:`Low`})]})}),Re.length>0&&(0,T.jsx)(s,{size:`small`,sx:{minWidth:120},children:(0,T.jsxs)(h,{value:H,onChange:e=>U(e.target.value),displayEmpty:!0,renderValue:e=>e||`Tag`,sx:{color:H?void 0:n.custom.textMuted},children:[(0,T.jsx)(g,{value:``,children:`All tags`}),Re.map(e=>(0,T.jsx)(g,{value:e,children:e},e))]})}),M.length>0&&(0,T.jsx)(s,{size:`small`,sx:{minWidth:120},children:(0,T.jsxs)(h,{value:N,onChange:e=>P(e.target.value),displayEmpty:!0,renderValue:e=>e?M.find(t=>t.id===e)?.name||e:`Assignee`,sx:{color:N?void 0:n.custom.textMuted},children:[(0,T.jsx)(g,{value:``,children:`All`}),M.map(e=>(0,T.jsx)(g,{value:e.id,children:e.name||e.id},e.id))]})}),Ve&&(0,T.jsx)(f,{size:`small`,onClick:()=>{z(``),V(``),U(``),P(``)},children:`Clear`})]}),O&&(0,T.jsx)(re,{severity:`error`,sx:{mb:2},children:O}),E?(0,T.jsx)(l,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,T.jsx)(oe,{})}):C.length===0?(0,T.jsxs)(l,{sx:{display:`flex`,flexDirection:`column`,alignItems:`center`,py:6},children:[(0,T.jsx)(pe,{sx:{fontSize:48,color:n.custom.textMuted,mb:2}}),(0,T.jsx)(a,{variant:`h6`,gutterBottom:!0,children:`No tasks yet`}),(0,T.jsx)(a,{variant:`body2`,sx:{color:n.custom.textMuted,mb:2},children:S?`Create your first task to get started`:`No tasks yet`}),S&&(0,T.jsx)(f,{variant:`contained`,startIcon:(0,T.jsx)(_,{}),onClick:()=>t(`new`),children:`New Task`})]}):(0,T.jsx)(l,{sx:{display:`flex`,gap:2,overflowX:`auto`,pb:2,maxHeight:`calc(100vh - 220px)`},children:Me.map(({status:e,label:r,color:i})=>{let o=Be.get(e),s=ke===e&&k!==null;return(0,T.jsxs)(d,{variant:`outlined`,sx:{minWidth:220,flex:1,display:`flex`,flexDirection:`column`,borderTop:`3px solid ${i}`,bgcolor:s?u(i,.06):n.custom.surfaceMuted,borderColor:s?i:void 0,borderStyle:s?`dashed`:void 0,transition:`background-color 0.15s, border-color 0.15s`},onDragOver:t=>{t.preventDefault(),j(e)},onDragEnter:()=>j(e),onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||j(null)},onDrop:()=>Fe(e),children:[(0,T.jsxs)(l,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,px:1.5,pt:1.5,pb:1},children:[(0,T.jsxs)(l,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[(0,T.jsx)(a,{variant:`subtitle2`,fontWeight:700,children:r}),(0,T.jsx)(a,{variant:`caption`,sx:{color:n.custom.textMuted},children:o.length})]}),S&&(0,T.jsx)(m,{size:`small`,onClick:()=>{G(e),q(``)},sx:{p:.25,color:n.custom.textMuted},children:(0,T.jsx)(_,{sx:{fontSize:18}})})]}),W===e&&(0,T.jsxs)(l,{sx:{display:`flex`,gap:.5,px:1.5,pb:1},children:[(0,T.jsx)(p,{inputRef:J,size:`small`,placeholder:`Task title...`,value:K,onChange:e=>q(e.target.value),onKeyDown:t=>{t.key===`Enter`&&Ie(e),t.key===`Escape`&&(G(null),q(``))},fullWidth:!0,sx:{"& .MuiInputBase-root":{fontSize:`0.85rem`}}}),(0,T.jsx)(m,{size:`small`,onClick:()=>{G(null),q(``)},children:(0,T.jsx)(v,{fontSize:`small`})})]}),(0,T.jsx)(ae,{spacing:1,sx:{flex:1,overflowY:`auto`,px:1.5,pb:1.5,minHeight:50,"&::-webkit-scrollbar":{width:4},"&::-webkit-scrollbar-thumb":{bgcolor:u(n.text.primary,.15),borderRadius:2}},children:o.map(e=>{let r=De(e.dueDate,e.status);return(0,T.jsxs)(d,{variant:`outlined`,draggable:S,onDragStart:S?()=>Pe(e.id):void 0,onDragEnd:S?$:void 0,onClick:()=>t(e.id),sx:{p:1.5,cursor:`pointer`,position:`relative`,bgcolor:n.custom.surface,"&:hover":{borderColor:`primary.main`},"&:hover .task-actions":{opacity:1},opacity:k===e.id?.5:1},children:[(0,T.jsxs)(l,{className:`task-actions`,sx:{position:`absolute`,top:4,right:4,display:`flex`,gap:.25,opacity:0,transition:`opacity 0.15s`,bgcolor:n.custom.surface,borderRadius:.5},children:[(0,T.jsx)(m,{size:`small`,onClick:n=>{n.stopPropagation(),t(`${e.id}/edit`)},sx:{p:.5},children:(0,T.jsx)(le,{sx:{fontSize:15}})}),S&&(0,T.jsx)(m,{size:`small`,onClick:t=>{t.stopPropagation(),X(e)},sx:{p:.5,color:`error.main`},children:(0,T.jsx)(ce,{sx:{fontSize:15}})})]}),(0,T.jsx)(l,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`flex-start`,mb:.5,pr:3},children:(0,T.jsx)(a,{variant:`body2`,fontWeight:600,sx:{flex:1},children:e.title})}),e.assignee&&(0,T.jsxs)(a,{variant:`caption`,color:`text.secondary`,sx:{display:`block`,mb:.5},children:[`@`,M.find(t=>t.id===e.assignee)?.name??e.assignee]}),(0,T.jsxs)(l,{sx:{display:`flex`,gap:.5,flexWrap:`wrap`,mb:e.description?.5:0},children:[(0,T.jsx)(me,{label:y(e.priority),color:Ce[e.priority],size:`small`}),e.estimate!=null&&(0,T.jsx)(c,{icon:(0,T.jsx)(ue,{sx:{fontSize:`14px !important`}}),label:`${e.estimate}h`,size:`small`,variant:`outlined`,sx:{height:20,"& .MuiChip-label":{px:.5,fontSize:`0.7rem`},"& .MuiChip-icon":{ml:.5}}}),r&&(0,T.jsx)(c,{label:r.label,size:`small`,color:r.color,sx:{height:20,"& .MuiChip-label":{px:.75,fontSize:`0.7rem`}}})]}),e.description&&(0,T.jsx)(a,{variant:`caption`,sx:{display:`block`,mb:.5,color:n.custom.textMuted},children:e.description.length>80?e.description.slice(0,80)+`...`:e.description}),e.tags?.length>0&&(0,T.jsx)(l,{sx:{mt:.5},children:(0,T.jsx)(he,{tags:e.tags})})]},e.id)})})]},e)})}),(0,T.jsx)(Te,{open:!!Y,title:`Delete Task`,message:`Are you sure you want to delete "${Y?.title}"? This action cannot be undone.`,confirmLabel:`Delete`,confirmColor:`error`,onConfirm:Le,onCancel:()=>X(null),loading:Ne})]})}export{O as default};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{D as t,O as n}from"./vendor-markdown-CT8ZVEPu.js";import{c as r,l as i}from"./vendor-react-CHUjhoxh.js";import{$ as a,A as o,P as s,S as ee,U as te,X as c,Y as l,b as ne,et as re,ft as u,h as ie,m as ae,nt as oe,ot as d,q as f,r as p,tt as m,ut as se,v as h,y as g}from"./vendor-mui-BPj7d3Sw.js";import"./vendor-md-editor-DmWafJvr.js";import{K as _,M as ce,Q as v,W as le,n as ue,r as de,st as fe,ut as pe}from"./vendor-mui-icons-B196sG3f.js";import{F as me,P as he,Q as ge,Z as _e,c as ve,et as ye,g as be,h as xe,i as y,j as Se,n as Ce,o as we,t as b,w as Te}from"./index-CEweXD9O.js";var x=e(n(),1),S=`kanban-visible-columns`,C=b.map(e=>e.status);function w(){try{let e=localStorage.getItem(S);if(e){let t=JSON.parse(e).filter(e=>C.includes(e));if(t.length>0)return new Set(t)}}catch{}return new Set(C)}function Ee(){let[e,t]=(0,x.useState)(w);return{visible:e,toggle:(0,x.useCallback)(e=>{t(t=>{let n=new Set(t);if(n.has(e)){if(n.size<=1)return t;n.delete(e)}else n.add(e);return localStorage.setItem(S,JSON.stringify([...n])),n})},[]),visibleColumns:b.filter(t=>e.has(t.status))}}var T=t(),E=[`done`,`cancelled`],D=864e5;function De(e,t){if(!e||E.includes(t))return null;let n=e-Date.now(),r=Math.ceil(n/D);return r<0?{label:`Overdue ${Math.abs(r)}d`,color:`error`}:r<=3?{label:`Due in ${r}d`,color:`warning`}:null}function O(){let{projectId:e}=i(),t=r(),{palette:n}=se(),S=_e(`tasks`),[C,w]=(0,x.useState)([]),[E,D]=(0,x.useState)(!0),[O,Oe]=(0,x.useState)(null),[k,A]=(0,x.useState)(null),[ke,j]=(0,x.useState)(null),[M,Ae]=(0,x.useState)([]),[N,P]=(0,x.useState)(``),{visible:F,toggle:je,visibleColumns:Me}=Ee(),[I,L]=(0,x.useState)(null),[R,z]=(0,x.useState)(``),[B,V]=(0,x.useState)(``),[H,U]=(0,x.useState)(``),[W,G]=(0,x.useState)(null),[K,q]=(0,x.useState)(``),J=(0,x.useRef)(null),[Y,X]=(0,x.useState)(null),[Ne,Z]=(0,x.useState)(!1),Q=(0,x.useCallback)(async()=>{if(e)try{w(await xe(e,{limit:500}))}catch(e){Oe(e instanceof Error?e.message:String(e))}finally{D(!1)}},[e]);(0,x.useEffect)(()=>{Q()},[Q]),(0,x.useEffect)(()=>{e&&ye(e).then(Ae).catch(()=>{})},[e]),ge(e??null,(0,x.useCallback)(e=>{e.type.startsWith(`task:`)&&Q()},[Q])),(0,x.useEffect)(()=>{W&&setTimeout(()=>J.current?.focus(),50)},[W]);let Pe=e=>A(e),$=()=>{A(null),j(null)},Fe=async t=>{if(!k||!e)return;let n=C.find(e=>e.id===k);if(!n||n.status===t){$();return}w(e=>e.map(e=>e.id===k?{...e,status:t}:e)),$();try{await be(e,k,t)}catch{Q()}},Ie=async t=>{let n=K.trim();if(!(!n||!e)){q(``),G(null);try{await we(e,{title:n,status:t}),Q()}catch{}}},Le=async()=>{if(!(!Y||!e)){Z(!0);try{w(e=>e.filter(e=>e.id!==Y.id)),await ve(e,Y.id)}catch{Q()}finally{Z(!1),X(null)}}},Re=(0,x.useMemo)(()=>{let e=new Set;for(let t of C)t.tags?.forEach(t=>e.add(t));return[...e].sort()},[C]),ze=(0,x.useMemo)(()=>{let e=C;if(R){let t=R.toLowerCase();e=e.filter(e=>e.title.toLowerCase().includes(t)||e.description&&e.description.toLowerCase().includes(t))}return B&&(e=e.filter(e=>e.priority===B)),H&&(e=e.filter(e=>e.tags?.includes(H))),N&&(e=e.filter(e=>e.assignee===N)),e},[C,R,B,H,N]),Be=(0,x.useMemo)(()=>{let e=new Map;for(let t of b)e.set(t.status,[]);for(let t of ze){let n=e.get(t.status);n&&n.push(t)}return e},[ze]),Ve=R||B||H||N;return(0,T.jsxs)(l,{children:[(0,T.jsx)(Se,{breadcrumbs:[{label:`Tasks`}],actions:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(ie,{title:`Column visibility`,children:(0,T.jsx)(m,{onClick:e=>L(e.currentTarget),size:`small`,children:(0,T.jsx)(de,{fontSize:`small`})})}),(0,T.jsx)(ne,{anchorEl:I,open:!!I,onClose:()=>L(null),children:b.map(({status:e,label:t})=>(0,T.jsxs)(g,{onClick:()=>je(e),dense:!0,children:[(0,T.jsx)(te,{checked:F.has(e),disabled:F.has(e)&&F.size===1,size:`small`,sx:{p:0,mr:1}}),(0,T.jsx)(ee,{primary:t})]},e))}),S&&(0,T.jsx)(f,{variant:`contained`,startIcon:(0,T.jsx)(_,{}),onClick:()=>t(`new`),children:`New Task`})]})}),(0,T.jsxs)(l,{sx:{display:`flex`,alignItems:`center`,gap:1.5,px:2,py:1,bgcolor:n.custom.surfaceMuted,borderRadius:1,mb:2},children:[(0,T.jsx)(p,{size:`small`,placeholder:`Search tasks...`,value:R,onChange:e=>z(e.target.value),slotProps:{input:{startAdornment:(0,T.jsx)(o,{position:`start`,children:(0,T.jsx)(fe,{fontSize:`small`,sx:{color:n.custom.textMuted}})}),endAdornment:R?(0,T.jsx)(o,{position:`end`,children:(0,T.jsx)(m,{size:`small`,onClick:()=>z(``),children:(0,T.jsx)(v,{fontSize:`small`})})}):void 0}},sx:{minWidth:200,flex:1,maxWidth:350}}),(0,T.jsx)(s,{size:`small`,sx:{minWidth:120},children:(0,T.jsxs)(h,{value:B,onChange:e=>V(e.target.value),displayEmpty:!0,renderValue:e=>e?y(e):`Priority`,sx:{color:B?void 0:n.custom.textMuted},children:[(0,T.jsx)(g,{value:``,children:`All priorities`}),(0,T.jsx)(g,{value:`critical`,children:`Critical`}),(0,T.jsx)(g,{value:`high`,children:`High`}),(0,T.jsx)(g,{value:`medium`,children:`Medium`}),(0,T.jsx)(g,{value:`low`,children:`Low`})]})}),Re.length>0&&(0,T.jsx)(s,{size:`small`,sx:{minWidth:120},children:(0,T.jsxs)(h,{value:H,onChange:e=>U(e.target.value),displayEmpty:!0,renderValue:e=>e||`Tag`,sx:{color:H?void 0:n.custom.textMuted},children:[(0,T.jsx)(g,{value:``,children:`All tags`}),Re.map(e=>(0,T.jsx)(g,{value:e,children:e},e))]})}),M.length>0&&(0,T.jsx)(s,{size:`small`,sx:{minWidth:120},children:(0,T.jsxs)(h,{value:N,onChange:e=>P(e.target.value),displayEmpty:!0,renderValue:e=>e?M.find(t=>t.id===e)?.name||e:`Assignee`,sx:{color:N?void 0:n.custom.textMuted},children:[(0,T.jsx)(g,{value:``,children:`All`}),M.map(e=>(0,T.jsx)(g,{value:e.id,children:e.name||e.id},e.id))]})}),Ve&&(0,T.jsx)(f,{size:`small`,onClick:()=>{z(``),V(``),U(``),P(``)},children:`Clear`})]}),O&&(0,T.jsx)(re,{severity:`error`,sx:{mb:2},children:O}),E?(0,T.jsx)(l,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,T.jsx)(oe,{})}):C.length===0?(0,T.jsxs)(l,{sx:{display:`flex`,flexDirection:`column`,alignItems:`center`,py:6},children:[(0,T.jsx)(pe,{sx:{fontSize:48,color:n.custom.textMuted,mb:2}}),(0,T.jsx)(a,{variant:`h6`,gutterBottom:!0,children:`No tasks yet`}),(0,T.jsx)(a,{variant:`body2`,sx:{color:n.custom.textMuted,mb:2},children:S?`Create your first task to get started`:`No tasks yet`}),S&&(0,T.jsx)(f,{variant:`contained`,startIcon:(0,T.jsx)(_,{}),onClick:()=>t(`new`),children:`New Task`})]}):(0,T.jsx)(l,{sx:{display:`flex`,gap:2,overflowX:`auto`,pb:2,maxHeight:`calc(100vh - 220px)`},children:Me.map(({status:e,label:r,color:i})=>{let o=Be.get(e),s=ke===e&&k!==null;return(0,T.jsxs)(d,{variant:`outlined`,sx:{minWidth:220,flex:1,display:`flex`,flexDirection:`column`,borderTop:`3px solid ${i}`,bgcolor:s?u(i,.06):n.custom.surfaceMuted,borderColor:s?i:void 0,borderStyle:s?`dashed`:void 0,transition:`background-color 0.15s, border-color 0.15s`},onDragOver:t=>{t.preventDefault(),j(e)},onDragEnter:()=>j(e),onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||j(null)},onDrop:()=>Fe(e),children:[(0,T.jsxs)(l,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,px:1.5,pt:1.5,pb:1},children:[(0,T.jsxs)(l,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[(0,T.jsx)(a,{variant:`subtitle2`,fontWeight:700,children:r}),(0,T.jsx)(a,{variant:`caption`,sx:{color:n.custom.textMuted},children:o.length})]}),S&&(0,T.jsx)(m,{size:`small`,onClick:()=>{G(e),q(``)},sx:{p:.25,color:n.custom.textMuted},children:(0,T.jsx)(_,{sx:{fontSize:18}})})]}),W===e&&(0,T.jsxs)(l,{sx:{display:`flex`,gap:.5,px:1.5,pb:1},children:[(0,T.jsx)(p,{inputRef:J,size:`small`,placeholder:`Task title...`,value:K,onChange:e=>q(e.target.value),onKeyDown:t=>{t.key===`Enter`&&Ie(e),t.key===`Escape`&&(G(null),q(``))},fullWidth:!0,sx:{"& .MuiInputBase-root":{fontSize:`0.85rem`}}}),(0,T.jsx)(m,{size:`small`,onClick:()=>{G(null),q(``)},children:(0,T.jsx)(v,{fontSize:`small`})})]}),(0,T.jsx)(ae,{spacing:1,sx:{flex:1,overflowY:`auto`,px:1.5,pb:1.5,minHeight:50,"&::-webkit-scrollbar":{width:4},"&::-webkit-scrollbar-thumb":{bgcolor:u(n.text.primary,.15),borderRadius:2}},children:o.map(e=>{let r=De(e.dueDate,e.status);return(0,T.jsxs)(d,{variant:`outlined`,draggable:S,onDragStart:S?()=>Pe(e.id):void 0,onDragEnd:S?$:void 0,onClick:()=>t(e.id),sx:{p:1.5,cursor:`pointer`,position:`relative`,bgcolor:n.custom.surface,"&:hover":{borderColor:`primary.main`},"&:hover .task-actions":{opacity:1},opacity:k===e.id?.5:1},children:[(0,T.jsxs)(l,{className:`task-actions`,sx:{position:`absolute`,top:4,right:4,display:`flex`,gap:.25,opacity:0,transition:`opacity 0.15s`,bgcolor:n.custom.surface,borderRadius:.5},children:[(0,T.jsx)(m,{size:`small`,onClick:n=>{n.stopPropagation(),t(`${e.id}/edit`)},sx:{p:.5},children:(0,T.jsx)(le,{sx:{fontSize:15}})}),S&&(0,T.jsx)(m,{size:`small`,onClick:t=>{t.stopPropagation(),X(e)},sx:{p:.5,color:`error.main`},children:(0,T.jsx)(ce,{sx:{fontSize:15}})})]}),(0,T.jsx)(l,{sx:{display:`flex`,justifyContent:`space-between`,alignItems:`flex-start`,mb:.5,pr:3},children:(0,T.jsx)(a,{variant:`body2`,fontWeight:600,sx:{flex:1},children:e.title})}),e.assignee&&(0,T.jsxs)(a,{variant:`caption`,color:`text.secondary`,sx:{display:`block`,mb:.5},children:[`@`,M.find(t=>t.id===e.assignee)?.name??e.assignee]}),(0,T.jsxs)(l,{sx:{display:`flex`,gap:.5,flexWrap:`wrap`,mb:e.description?.5:0},children:[(0,T.jsx)(me,{label:y(e.priority),color:Ce[e.priority],size:`small`}),e.estimate!=null&&(0,T.jsx)(c,{icon:(0,T.jsx)(ue,{sx:{fontSize:`14px !important`}}),label:`${e.estimate}h`,size:`small`,variant:`outlined`,sx:{height:20,"& .MuiChip-label":{px:.5,fontSize:`0.7rem`},"& .MuiChip-icon":{ml:.5}}}),r&&(0,T.jsx)(c,{label:r.label,size:`small`,color:r.color,sx:{height:20,"& .MuiChip-label":{px:.75,fontSize:`0.7rem`}}})]}),e.description&&(0,T.jsx)(a,{variant:`caption`,sx:{display:`block`,mb:.5,color:n.custom.textMuted},children:e.description.length>80?e.description.slice(0,80)+`...`:e.description}),e.tags?.length>0&&(0,T.jsx)(l,{sx:{mt:.5},children:(0,T.jsx)(he,{tags:e.tags})})]},e.id)})})]},e)})}),(0,T.jsx)(Te,{open:!!Y,title:`Delete Task`,message:`Are you sure you want to delete "${Y?.title}"? This action cannot be undone.`,confirmLabel:`Delete`,confirmColor:`error`,onConfirm:Le,onCancel:()=>X(null),loading:Ne})]})}export{O as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{D as t,O as n}from"./vendor-markdown-CT8ZVEPu.js";import{c as r,l as i}from"./vendor-react-CHUjhoxh.js";import{$ as a,A as o,P as s,Y as c,a as l,c as u,d,k as f,l as p,nt as m,r as h,s as g,u as _,ut as v,v as y,y as b}from"./vendor-mui-BPj7d3Sw.js";import"./vendor-md-editor-DmWafJvr.js";import{nt as x,st as S}from"./vendor-mui-icons-B196sG3f.js";import{A as C,F as w,T,j as E}from"./index-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{D as t,O as n}from"./vendor-markdown-CT8ZVEPu.js";import{c as r,l as i}from"./vendor-react-CHUjhoxh.js";import{$ as a,A as o,P as s,Y as c,a as l,c as u,d,k as f,l as p,nt as m,r as h,s as g,u as _,ut as v,v as y,y as b}from"./vendor-mui-BPj7d3Sw.js";import"./vendor-md-editor-DmWafJvr.js";import{nt as x,st as S}from"./vendor-mui-icons-B196sG3f.js";import{A as C,F as w,T,j as E}from"./index-CEweXD9O.js";import{r as D}from"./api-DuX-0a_X.js";var O=e(n(),1),k=t(),A={docs:`primary`,code:`success`,knowledge:`warning`,tasks:`neutral`,skills:`primary`,files:`neutral`,context:`neutral`,"cross-graph":`error`};function j(){let{projectId:e}=i(),t=r(),{palette:n}=v(),[j,M]=(0,O.useState)([]),[N,P]=(0,O.useState)(!0),[F,I]=(0,O.useState)(``),[L,R]=(0,O.useState)(`all`);(0,O.useEffect)(()=>{e&&(P(!0),D(e).then(M).finally(()=>P(!1)))},[e]);let z=(0,O.useMemo)(()=>{let e=new Set(j.map(e=>e.category));return[`all`,...Array.from(e).sort()]},[j]),B=(0,O.useMemo)(()=>j.filter(e=>!(L!==`all`&&e.category!==L||F&&!e.name.toLowerCase().includes(F.toLowerCase())&&!e.description.toLowerCase().includes(F.toLowerCase()))),[j,F,L]),V=e=>{let t=e.inputSchema?.properties;return t?Object.keys(t).length:0};return N?(0,k.jsx)(c,{sx:{display:`flex`,justifyContent:`center`,py:8},children:(0,k.jsx)(m,{})}):(0,k.jsxs)(c,{children:[(0,k.jsx)(E,{breadcrumbs:[{label:`Tools`}]}),(0,k.jsxs)(C,{children:[(0,k.jsx)(h,{size:`small`,placeholder:`Search tools...`,value:F,onChange:e=>I(e.target.value),slotProps:{input:{startAdornment:(0,k.jsx)(o,{position:`start`,children:(0,k.jsx)(S,{fontSize:`small`})})}},sx:{minWidth:240}}),(0,k.jsxs)(s,{size:`small`,sx:{minWidth:140},children:[(0,k.jsx)(f,{children:`Category`}),(0,k.jsx)(y,{value:L,label:`Category`,onChange:e=>R(e.target.value),children:z.map(e=>(0,k.jsx)(b,{value:e,children:e===`all`?`All`:e},e))})]}),(0,k.jsxs)(a,{variant:`body2`,sx:{color:n.custom.textMuted,ml:`auto`},children:[B.length,` tool`,B.length===1?``:`s`]})]}),B.length===0?(0,k.jsx)(T,{icon:(0,k.jsx)(x,{}),title:`No tools found`,description:F||L!==`all`?`Try adjusting your filters`:`No MCP tools available for this project`}):(0,k.jsx)(u,{children:(0,k.jsxs)(d,{size:`small`,children:[(0,k.jsx)(g,{children:(0,k.jsxs)(l,{children:[(0,k.jsx)(p,{children:`Name`}),(0,k.jsx)(p,{children:`Category`}),(0,k.jsx)(p,{children:`Description`}),(0,k.jsx)(p,{align:`center`,children:`Params`})]})}),(0,k.jsx)(_,{children:B.map(r=>(0,k.jsxs)(l,{hover:!0,sx:{cursor:`pointer`},onClick:()=>t(`/${e}/tools/${r.name}`),children:[(0,k.jsx)(p,{children:(0,k.jsx)(a,{variant:`body2`,fontWeight:600,sx:{fontFamily:`monospace`},children:r.name})}),(0,k.jsx)(p,{children:(0,k.jsx)(w,{label:r.category,color:A[r.category]||`neutral`})}),(0,k.jsx)(p,{children:(0,k.jsx)(a,{variant:`body2`,sx:{color:n.custom.textMuted,maxWidth:500,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:r.description})}),(0,k.jsx)(p,{align:`center`,children:(0,k.jsx)(a,{variant:`body2`,children:V(r)})})]},r.name))})]})})]})}export{j as default};
|
package/dist/ui/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/ui/favicon.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>ui</title>
|
|
8
|
-
<script type="module" crossorigin src="/ui/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/ui/assets/index-CEweXD9O.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/ui/assets/rolldown-runtime-Dw2cE7zH.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/ui/assets/vendor-markdown-CT8ZVEPu.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/ui/assets/vendor-md-editor-DmWafJvr.js">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphmemory/server",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "MCP server for semantic graph memory from markdown files",
|
|
5
5
|
"main": "dist/cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -15,7 +15,10 @@
|
|
|
15
15
|
"cli": "node dist/cli/index.js",
|
|
16
16
|
"cli:dev": "tsx src/cli/index.ts",
|
|
17
17
|
"test": "NODE_OPTIONS='--experimental-vm-modules' jest",
|
|
18
|
-
"test:watch": "NODE_OPTIONS='--experimental-vm-modules' jest --watch"
|
|
18
|
+
"test:watch": "NODE_OPTIONS='--experimental-vm-modules' jest --watch",
|
|
19
|
+
"site:dev": "cd site && npm start",
|
|
20
|
+
"site:build": "cd site && npm run build",
|
|
21
|
+
"site:serve": "cd site && npm run serve"
|
|
19
22
|
},
|
|
20
23
|
"repository": {
|
|
21
24
|
"type": "git",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-BWiKNcBW.js","assets/vendor-md-editor-DmWafJvr.js","assets/rolldown-runtime-Dw2cE7zH.js","assets/vendor-markdown-CT8ZVEPu.js","assets/vendor-md-editor-HrwGbQou.css","assets/knowledge-DeygeGGH.js","assets/vendor-react-CHUjhoxh.js","assets/vendor-mui-BPj7d3Sw.js","assets/vendor-mui-icons-B196sG3f.js","assets/NoteForm-aZX9f6-3.js","assets/_noteId_-C1enaQd1.js","assets/skill-y9pizyqE.js","assets/client-Bq88u7gN.js","assets/attachments-CEQ-2nMo.js","assets/api-CrGJOcaN.js","assets/api-BlFF6gX-.js","assets/api-BMnBjMMf.js","assets/new-DHTg3Dqq.js","assets/edit-BYiy1FZy.js","assets/tasks-CobouTKV.js","assets/_taskId_-DSB3dLVz.js","assets/new-CpD7hOBA.js","assets/TaskForm-Bl5nkybO.js","assets/edit-TUIIpUMF.js","assets/skills-Cga9iUZN.js","assets/SkillForm-KYa3o92l.js","assets/_skillId_-hPoCet7J.js","assets/new-s8c0M75X.js","assets/edit-hc-ZWz3y.js","assets/docs-CrXsRcOG.js","assets/_docId_-hdCDjclV.js","assets/files-0bPg6NH9.js","assets/_filePath_-CpG836v4.js","assets/search-EpJhdP2a.js","assets/graph-DXGud_wF.js","assets/vendor-graph-BWpSgpMe.js","assets/tools-JxKH5BDF.js","assets/api-DuX-0a_X.js","assets/_toolName_-3SmCfxZy.js","assets/help-CEMQqZUR.js","assets/prompts-BgOmdxgM.js","assets/help-DJ52_fxN.js","assets/_articleId_-DjbCByxM.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{D as t,O as n,g as r,h as i}from"./vendor-markdown-CT8ZVEPu.js";import{a,c as o,d as s,f as c,i as l,l as u,n as d,o as f,r as p,s as m,t as h}from"./vendor-react-CHUjhoxh.js";import{$ as g,B as _,C as ee,D as v,E as y,F as te,H as b,I as x,J as ne,K as S,L as C,O as w,Q as re,R as ie,S as T,V as ae,W as E,X as D,Y as O,Z as oe,dt as k,et as A,f as se,h as ce,i as le,lt as ue,nt as j,o as de,q as M,r as N,tt as P,ut as F,v as fe,y as pe,z as me}from"./vendor-mui-BPj7d3Sw.js";import"./vendor-md-editor-DmWafJvr.js";import{i as I,n as L,r as R,t as he}from"./client-Bq88u7gN.js";import{$ as ge,G as _e,J as z,K as B,Q as ve,U as ye,W as be,X as V,Y as xe,Z as H,at as Se,ct as U,dt as W,et as Ce,ft as we,it as G,lt as K,mt as Te,nt as Ee,ot as De,pt as Oe,q as ke,rt as Ae,st as je,tt as Me,ut as Ne}from"./vendor-mui-icons-B196sG3f.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Pe=c(),q=e(n(),1),Fe={fontFamily:`"Inter", "Roboto", "Helvetica", "Arial", sans-serif`},Ie=k({palette:{mode:`dark`,primary:{main:`#569cd6`},secondary:{main:`#c586c0`},success:{main:`#6a9955`},error:{main:`#f14c4c`},warning:{main:`#cca700`},info:{main:`#3794ff`},background:{default:`#1e1e1e`,paper:`#252526`},text:{primary:`#cccccc`,secondary:`#9d9d9d`},divider:`#3c3c3c`,action:{hover:`rgba(90,93,94,0.31)`,selected:`rgba(90,93,94,0.40)`,focus:`rgba(90,93,94,0.48)`},custom:{surface:`#252526`,surfaceMuted:`#2d2d2d`,border:`#3c3c3c`,textMuted:`#858585`,textOnPrimary:`#ffffff`,neutral:`#858585`}},typography:Fe,components:{MuiCssBaseline:{styleOverrides:{body:{backgroundColor:`#1e1e1e`},"*::-webkit-scrollbar":{width:10,height:10},"*::-webkit-scrollbar-track":{background:`#1e1e1e`},"*::-webkit-scrollbar-thumb":{background:`#424242`,borderRadius:0},"*::-webkit-scrollbar-thumb:hover":{background:`#4f4f4f`}}},MuiDrawer:{styleOverrides:{paper:{backgroundColor:`#181818`,borderRight:`1px solid #2b2b2b`}}},MuiAppBar:{styleOverrides:{root:{backgroundColor:`#181818`,boxShadow:`none`,borderBottom:`1px solid #2b2b2b`}}},MuiCard:{styleOverrides:{root:{backgroundColor:`#252526`,border:`1px solid #3c3c3c`}}},MuiPaper:{styleOverrides:{root:{backgroundImage:`none`}}},MuiTableHead:{styleOverrides:{root:{"& .MuiTableCell-head":{backgroundColor:`#2d2d2d`,color:`#cccccc`}}}},MuiTableCell:{styleOverrides:{root:{borderBottom:`1px solid #3c3c3c`}}},MuiChip:{styleOverrides:{root:{backgroundColor:`#2d2d2d`,border:`1px solid #3c3c3c`}}},MuiButton:{styleOverrides:{contained:{boxShadow:`none`,"&:hover":{boxShadow:`none`}},containedPrimary:{backgroundColor:`#0e639c`,"&:hover":{backgroundColor:`#1177bb`}}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{backgroundColor:`#3c3c3c`,"& fieldset":{borderColor:`#3c3c3c`},"&:hover fieldset":{borderColor:`#569cd6`},"&.Mui-focused fieldset":{borderColor:`#569cd6`}}}}},MuiSelect:{styleOverrides:{root:{backgroundColor:`#3c3c3c`,"& .MuiOutlinedInput-notchedOutline":{borderColor:`#3c3c3c`},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:`#569cd6`}}}},MuiListItemButton:{styleOverrides:{root:{"&.Mui-selected":{backgroundColor:`rgba(90,93,94,0.40)`}}}},MuiTab:{styleOverrides:{root:{textTransform:`none`,color:`#969696`,"&.Mui-selected":{color:`#ffffff`}}}},MuiTooltip:{styleOverrides:{tooltip:{backgroundColor:`#383838`,border:`1px solid #454545`,color:`#cccccc`}}},MuiMenu:{styleOverrides:{paper:{backgroundColor:`#2d2d2d`,border:`1px solid #454545`}}},MuiDialog:{styleOverrides:{paper:{backgroundColor:`#252526`,border:`1px solid #454545`}}}}}),Le=k({palette:{mode:`light`,primary:{main:`#1976d2`},secondary:{main:`#9c27b0`},success:{main:`#2e7d32`},error:{main:`#d32f2f`},warning:{main:`#ed6c02`},background:{default:`#f0f2f5`,paper:`#ffffff`},custom:{surface:`#ffffff`,surfaceMuted:`#f5f5f5`,border:`#e0e0e0`,textMuted:`#757575`,textOnPrimary:`#ffffff`,neutral:`#9e9e9e`}},typography:Fe,components:{MuiInputLabel:{styleOverrides:{root:{fontSize:`0.8125rem`,textTransform:`uppercase`,letterSpacing:`0.04em`,fontWeight:500,"&.MuiInputLabel-shrink":{transform:`translate(14px, -9px) scale(0.85)`}}}},MuiDrawer:{styleOverrides:{paper:{backgroundColor:`#ffffff`,borderRight:`1px solid #e0e0e0`}}},MuiAppBar:{styleOverrides:{root:{backgroundColor:`#ffffff`,boxShadow:`none`,borderBottom:`1px solid #e0e0e0`}}},MuiCard:{styleOverrides:{root:{backgroundColor:`#ffffff`,border:`1px solid #e0e0e0`}}},MuiTableHead:{styleOverrides:{root:{"& .MuiTableCell-head":{backgroundColor:`#f5f5f5`}}}},MuiChip:{styleOverrides:{root:{backgroundColor:`#f5f5f5`,border:`1px solid #e0e0e0`}}}}}),J=t(),Re=(0,q.createContext)({mode:`dark`,toggle:()=>{}});function ze({children:e}){let[t,n]=(0,q.useState)(()=>localStorage.getItem(`theme-mode`)===`light`?`light`:`dark`),r=(0,q.useCallback)(()=>{n(e=>{let t=e===`dark`?`light`:`dark`;return localStorage.setItem(`theme-mode`,t),t})},[]);return(0,J.jsx)(Re,{value:(0,q.useMemo)(()=>({mode:t,toggle:r}),[t,r]),children:(0,J.jsxs)(ue,{theme:t===`dark`?Ie:Le,children:[(0,J.jsx)(b,{}),e]})})}function Be(){return(0,q.useContext)(Re)}function Ve(){return R(`/projects`).then(I)}function He(){return R(`/workspaces`).then(I)}function Ue(e){return R(`/projects/${e}/stats`)}function We(e){return R(`/projects/${e}/team`).then(I)}async function Ge(){return(await fetch(`/api/auth/status`,{credentials:`include`})).json()}function Ke({onSuccess:e}){let[t,n]=(0,q.useState)(``),[r,i]=(0,q.useState)(``),[a,o]=(0,q.useState)(``),[s,c]=(0,q.useState)(!1);return(0,J.jsx)(O,{sx:{display:`flex`,alignItems:`center`,justifyContent:`center`,minHeight:`100vh`},children:(0,J.jsx)(S,{sx:{maxWidth:400,width:`100%`,mx:2},children:(0,J.jsxs)(E,{children:[(0,J.jsx)(g,{variant:`h5`,gutterBottom:!0,align:`center`,children:`Graph Memory`}),(0,J.jsx)(g,{variant:`body2`,color:`text.secondary`,gutterBottom:!0,align:`center`,children:`Sign in to continue`}),(0,J.jsxs)(`form`,{onSubmit:async n=>{if(n.preventDefault(),!(!t.trim()||!r)){c(!0),o(``);try{let n=await fetch(`/api/auth/login`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify({email:t.trim(),password:r})});n.ok?e():o((await n.json().catch(()=>({error:`Login failed`}))).error||`Login failed`)}catch{o(`Connection failed`)}finally{c(!1)}}},children:[(0,J.jsx)(N,{fullWidth:!0,label:`Email`,type:`email`,value:t,onChange:e=>n(e.target.value),margin:`normal`,autoFocus:!0}),(0,J.jsx)(N,{fullWidth:!0,label:`Password`,type:`password`,value:r,onChange:e=>i(e.target.value),margin:`normal`}),a&&(0,J.jsx)(A,{severity:`error`,sx:{mt:1},children:a}),(0,J.jsx)(M,{fullWidth:!0,variant:`contained`,type:`submit`,disabled:s||!t.trim()||!r,sx:{mt:2},children:s?`Signing in...`:`Sign In`})]})]})})})}function qe({children:e}){let[t,n]=(0,q.useState)(`loading`),r=(0,q.useCallback)(async()=>{try{let e=await Ge();!e.required||e.authenticated?n(`ok`):n(`login`)}catch{n(`ok`)}},[]);return(0,q.useEffect)(()=>{r()},[r]),(0,q.useEffect)(()=>{he(()=>n(`login`))},[]),t===`loading`?(0,J.jsx)(O,{sx:{display:`flex`,alignItems:`center`,justifyContent:`center`,minHeight:`100vh`},children:(0,J.jsx)(j,{})}):t===`login`?(0,J.jsx)(Ke,{onSuccess:()=>n(`ok`)}):(0,J.jsx)(J.Fragment,{children:e})}function Je(){let[e,t]=(0,q.useState)([]),[n,r]=(0,q.useState)([]),[i,a]=(0,q.useState)(!0),[o,s]=(0,q.useState)(null);return(0,q.useEffect)(()=>{Promise.all([Ve(),He()]).then(([e,n])=>{t(e),r(n)}).catch(e=>s(e.message)).finally(()=>a(!1))},[]),{projects:e,workspaces:n,loading:i,error:o}}function Ye(){let e=new Set,t=null,n=null,r=!1,i;function a(){if(r||!n)return;let o=`${window.location.protocol===`https:`?`wss`:`ws`}://${window.location.host}/api/ws`;t=new WebSocket(o),t.onopen=()=>{console.log(`[ws] connected to`,o)},t.onmessage=t=>{try{let r=JSON.parse(t.data);if(r.projectId===n)for(let t of e)t(r)}catch{}},t.onerror=()=>{},t.onclose=e=>{console.log(`[ws] closed, code:`,e.code,`reason:`,e.reason),!r&&n&&(i=setTimeout(a,3e3))}}return{subscribe(t){return e.add(t),()=>{e.delete(t)}},connect(e){n===e&&t&&t.readyState<=WebSocket.OPEN||(r=!1,clearTimeout(i),t&&t.readyState<=WebSocket.OPEN&&t.close(),n=e,a())},disconnect(){r=!0,n=null,clearTimeout(i),t&&t.readyState<=WebSocket.OPEN&&t.close()}}}var Y=Ye(),Xe=(0,q.createContext)(Y);function Ze({projectId:e,children:t}){return(0,q.useEffect)(()=>(e&&Y.connect(e),()=>{Y.disconnect()}),[e]),(0,q.createElement)(Xe.Provider,{value:Y},t)}function Qe(e,t){let n=(0,q.useContext)(Xe),r=(0,q.useRef)(t);r.current=t,(0,q.useEffect)(()=>{if(e)return n.subscribe(e=>{r.current(e)})},[e,n])}var $e=(0,q.createContext)({graphs:{},loading:!0});function et({graphs:e,loading:t,children:n}){return(0,J.jsx)($e,{value:{graphs:e,loading:t},children:n})}function tt(e){let{graphs:t,loading:n}=(0,q.useContext)($e),r=t[e];return{enabled:r?.enabled??!0,readonly:r?.readonly??!1,access:r?.access??`rw`,loading:n}}function nt(e){let{access:t,readonly:n}=tt(e);return t===`rw`&&!n}function rt({value:e}){let{palette:t}=F(),[n,r]=(0,q.useState)(!1),i=(0,q.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{r(!0),setTimeout(()=>r(!1),1500)})},[e]);return(0,J.jsxs)(O,{sx:{position:`relative`},children:[(0,J.jsx)(O,{sx:{bgcolor:t.mode===`dark`?`#1a1a1a`:`#f5f5f5`,border:`1px solid ${t.custom.border}`,borderRadius:1,p:1.5,pr:5,fontFamily:`monospace`,fontSize:`0.8125rem`,lineHeight:1.6,whiteSpace:`pre`,overflow:`auto`},children:e}),(0,J.jsx)(P,{size:`small`,onClick:i,sx:{position:`absolute`,top:8,right:8,color:n?`success.main`:t.custom.textMuted},children:n?(0,J.jsx)(V,{fontSize:`small`}):(0,J.jsx)(H,{fontSize:`small`})})]})}function it(e,t){let n={type:`http`,url:e};return t&&(n.headers={Authorization:`Bearer ${t}`}),JSON.stringify({mcpServers:{"graph-memory":n}},null,2)}var at=[`.mcp.json`,`Claude CLI`,`Cursor`,`Windsurf`],ot=[(0,J.jsx)(z,{sx:{fontSize:16}}),(0,J.jsx)(xe,{sx:{fontSize:16}}),(0,J.jsx)(z,{sx:{fontSize:16}}),(0,J.jsx)(z,{sx:{fontSize:16}})],st={0:{text:`Add to your project’s .mcp.json file (or create one in the project root). Works with Claude Desktop and other MCP-compatible clients.`},1:{text:`Run this command in your terminal to register the MCP server with Claude Code CLI.`},2:{text:`Add to your Cursor MCP configuration file.`,path:`~/.cursor/mcp.json`},3:{text:`Add to your Windsurf MCP configuration file.`,path:`~/.codeium/windsurf/mcp_config.json`}};function ct({open:e,onClose:t,projectId:n}){let{palette:r}=F(),[i,a]=(0,q.useState)(0),[o,s]=(0,q.useState)(``),[c,l]=(0,q.useState)(!1);(0,q.useEffect)(()=>{e&&fetch(`/api/auth/status`,{credentials:`include`}).then(e=>e.json()).then(e=>{l(e.required===!0),e.apiKey&&s(e.apiKey)}).catch(()=>l(!1))},[e]);let u=`${(0,q.useMemo)(()=>{let{protocol:e,hostname:t,port:n}=window.location;return`${e}//${t}${n?`:${n}`:``}`},[])}/mcp/${n}`,d=it(u,o),f=o?`claude mcp add --transport http --scope project \\\n --header "Authorization: Bearer ${o}" \\\n graph-memory ${u}`:`claude mcp add --transport http --scope project graph-memory ${u}`,p=st[i];return(0,J.jsxs)(ae,{open:e,onClose:t,maxWidth:`sm`,fullWidth:!0,PaperProps:{sx:{bgcolor:r.mode===`dark`?`#252526`:void 0,border:r.mode===`dark`?`1px solid #454545`:void 0}},children:[(0,J.jsxs)(C,{sx:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,pb:1},children:[(0,J.jsx)(g,{variant:`h6`,fontWeight:700,children:`Connect MCP`}),(0,J.jsx)(P,{size:`small`,onClick:t,sx:{color:r.custom.textMuted},children:(0,J.jsx)(ve,{fontSize:`small`})})]}),(0,J.jsxs)(me,{sx:{pt:0},children:[(0,J.jsxs)(g,{variant:`body2`,sx:{color:r.custom.textMuted,mb:2},children:[`Connect your AI assistant to `,(0,J.jsx)(`strong`,{children:n}),` via MCP (Model Context Protocol).`]}),c&&(0,J.jsx)(N,{label:`API Key`,placeholder:`Enter your API key`,size:`small`,fullWidth:!0,value:o,onChange:e=>s(e.target.value),sx:{mb:2},helperText:`Authentication is enabled. Paste your API key to include it in the config.`}),(0,J.jsx)(le,{value:i,onChange:(e,t)=>a(t),variant:`scrollable`,scrollButtons:`auto`,sx:{mb:2,minHeight:36,"& .MuiTab-root":{minHeight:36,py:.5}},children:at.map((e,t)=>(0,J.jsx)(se,{icon:ot[t],iconPosition:`start`,label:e},e))}),(0,J.jsxs)(O,{sx:{display:`flex`,flexDirection:`column`,gap:1.5},children:[(0,J.jsx)(g,{variant:`body2`,sx:{color:r.custom.textMuted},children:p.text}),p.path&&(0,J.jsxs)(g,{variant:`body2`,sx:{color:r.custom.textMuted},children:[`Config path: `,(0,J.jsx)(`code`,{children:p.path})]}),(0,J.jsx)(rt,{value:i===1?f:d})]}),(0,J.jsxs)(O,{sx:{mt:3,pt:2,borderTop:`1px solid ${r.custom.border}`},children:[(0,J.jsx)(g,{variant:`caption`,sx:{color:r.custom.textMuted,mb:.5,display:`block`},children:`Endpoint`}),(0,J.jsx)(rt,{value:u})]})]})]})}var X=240,lt=64,ut={knowledge:`knowledge`,tasks:`tasks`,skills:`skills`,docs:`docs`,files:`files`},dt=[{label:`Dashboard`,icon:(0,J.jsx)(Se,{}),path:`dashboard`},{label:`Knowledge`,icon:(0,J.jsx)(W,{}),path:`knowledge`},{label:`Tasks`,icon:(0,J.jsx)(Ne,{}),path:`tasks`},{label:`Skills`,icon:(0,J.jsx)(G,{}),path:`skills`},{label:`Docs`,icon:(0,J.jsx)(U,{}),path:`docs`},{label:`Files`,icon:(0,J.jsx)(K,{}),path:`files`},{label:`Search`,icon:(0,J.jsx)(je,{}),path:`search`},{label:`Graph`,icon:(0,J.jsx)(De,{}),path:`graph`},{label:`Prompts`,icon:(0,J.jsx)(Ae,{}),path:`prompts`},{label:`Tools`,icon:(0,J.jsx)(Ee,{}),path:`tools`},{label:`Help`,icon:(0,J.jsx)(Me,{}),path:`help`}],ft={dashboard:`Dashboard`,knowledge:`Knowledge`,tasks:`Tasks`,skills:`Skills`,docs:`Docs`,files:`Files`,search:`Search`,graph:`Graph`,prompts:`Prompts`,tools:`Tools`,help:`Help`};function pt(e){return ft[e.split(`/`).filter(Boolean)[1]||`dashboard`]||`Dashboard`}function mt(e){let t=e.split(`/`).filter(Boolean),n=[t[0]||``];for(let e=1;e<t.length;e++){let r=t[e];r!==`view`&&n.push(ft[r]||r)}return n.length===1&&n.push(`Dashboard`),n.join(` :: `)}function ht(e,t){let n=[],r=new Set;for(let i of t){let t=e.filter(e=>e.workspaceId===i.id);if(t.length!==0){n.push((0,J.jsx)(oe,{sx:{lineHeight:`32px`,fontSize:`0.7rem`,fontWeight:700,textTransform:`uppercase`,letterSpacing:`0.05em`},children:i.id},`ws-${i.id}`));for(let e of t)n.push((0,J.jsx)(pe,{value:e.id,children:e.id},e.id)),r.add(e.id)}}let i=e.filter(e=>!r.has(e.id));i.length>0&&t.length>0&&n.push((0,J.jsx)(oe,{sx:{lineHeight:`32px`,fontSize:`0.7rem`,fontWeight:700,textTransform:`uppercase`,letterSpacing:`0.05em`},children:`Standalone`},`ws-standalone`));for(let e of i)n.push((0,J.jsx)(pe,{value:e.id,children:e.id},e.id));return n}function gt(){let[e,t]=(0,q.useState)(!1),[n,r]=(0,q.useState)(!1),{projects:i,workspaces:a,loading:s}=Je(),c=o(),d=m(),{projectId:f}=u(),{mode:p,toggle:h}=Be(),{palette:_}=F(),b=i.find(e=>e.id===f),ne=pt(d.pathname),S=mt(d.pathname);(0,q.useEffect)(()=>{document.title=S},[S]);let C=e=>{c(`/${e}/${d.pathname.split(`/`).slice(2).join(`/`)||`dashboard`}`)},w=(0,J.jsxs)(O,{sx:{display:`flex`,flexDirection:`column`,height:`100%`},children:[(0,J.jsxs)(de,{children:[(0,J.jsx)(De,{sx:{mr:1,color:`primary.main`}}),(0,J.jsx)(g,{variant:`subtitle1`,fontWeight:700,noWrap:!0,children:`Graph Memory`})]}),(0,J.jsx)(x,{}),(0,J.jsx)(O,{sx:{px:2,py:1.5},children:(0,J.jsx)(fe,{fullWidth:!0,size:`small`,value:!s&&i.some(e=>e.id===f)?f:``,onChange:e=>C(e.target.value),disabled:s,displayEmpty:!0,renderValue:e=>(0,J.jsx)(g,{variant:`body2`,fontWeight:600,noWrap:!0,children:e||`Select project`}),children:ht(i,a)})}),(0,J.jsx)(x,{}),(0,J.jsx)(v,{sx:{flex:1,px:1},children:dt.filter(({path:e})=>{let t=ut[e];return!t||!b?.graphs?!0:b.graphs[t]?.enabled!==!1}).map(({label:e,icon:t,path:n})=>{let r=(d.pathname.split(`/`).filter(Boolean)[1]||``)===n;return(0,J.jsxs)(y,{selected:r,onClick:()=>c(`/${f}/${n}`),disabled:!f,sx:{borderRadius:1,mb:.5,...r&&{bgcolor:`primary.main`,color:_.custom.textOnPrimary,"&:hover":{bgcolor:`primary.dark`},"&.Mui-selected":{bgcolor:`primary.main`,color:_.custom.textOnPrimary,"&:hover":{bgcolor:`primary.dark`}}}},children:[(0,J.jsx)(ee,{sx:{minWidth:40,color:r?_.custom.textOnPrimary:`inherit`},children:t}),(0,J.jsx)(T,{primary:e})]},n)})})]});return(0,J.jsxs)(O,{sx:{display:`flex`,height:`100vh`},children:[(0,J.jsx)(re,{position:`fixed`,sx:{width:{md:`calc(100% - ${X}px)`},ml:{md:`${X}px`},color:`text.primary`},children:(0,J.jsxs)(de,{children:[(0,J.jsx)(P,{edge:`start`,color:`inherit`,onClick:()=>t(!e),sx:{display:{md:`none`},mr:1},children:(0,J.jsx)(Te,{})}),(0,J.jsxs)(O,{sx:{display:`flex`,alignItems:`center`,gap:1,flexGrow:1},children:[(0,J.jsx)(g,{variant:`h6`,noWrap:!0,children:ne}),b?.workspaceId&&(0,J.jsx)(D,{label:b.workspaceId,size:`small`,variant:`outlined`,color:`primary`,sx:{fontWeight:600}})]}),(0,J.jsx)(M,{variant:`outlined`,size:`small`,color:`primary`,startIcon:(0,J.jsx)(ge,{}),onClick:()=>r(!0),disabled:!f,sx:{textTransform:`none`},children:`Connect`}),(0,J.jsx)(P,{color:`inherit`,onClick:h,title:`Switch to ${p===`dark`?`light`:`dark`} mode`,children:p===`dark`?(0,J.jsx)(we,{}):(0,J.jsx)(Oe,{})}),(0,J.jsx)(P,{color:`inherit`,title:`Sign out`,onClick:async()=>{await fetch(`/api/auth/logout`,{method:`POST`,credentials:`include`}),window.location.reload()},children:(0,J.jsx)(Ce,{})})]})}),(0,J.jsxs)(O,{component:`nav`,sx:{width:{md:X},flexShrink:{md:0}},children:[(0,J.jsx)(te,{variant:`temporary`,open:e,onClose:()=>t(!1),sx:{display:{xs:`block`,md:`none`},"& .MuiDrawer-paper":{width:X}},children:w}),(0,J.jsx)(te,{variant:`permanent`,sx:{display:{xs:`none`,md:`block`},"& .MuiDrawer-paper":{width:X}},open:!0,children:w})]}),(0,J.jsx)(O,{component:`main`,sx:{flexGrow:1,width:{md:`calc(100% - ${X}px)`},height:`100vh`,overflow:`auto`,p:3,pt:`${lt+24}px`},children:(0,J.jsx)(et,{graphs:b?.graphs??{},loading:s,children:(0,J.jsx)(Ze,{projectId:f??null,children:(0,J.jsx)(l,{})})})}),f&&(0,J.jsx)(ct,{open:n,onClose:()=>r(!1),projectId:f})]})}function _t(){let[e,t]=(0,q.useState)(null),[n,r]=(0,q.useState)(null);return(0,q.useEffect)(()=>{Ve().then(e=>{e.length>0?t(e[0].id):r(`No projects configured. Add a project to graph-memory.yaml and restart the server.`)}).catch(e=>r(e instanceof Error?e.message:String(e)))},[]),n?(0,J.jsx)(O,{sx:{display:`flex`,justifyContent:`center`,alignItems:`center`,height:`100vh`},children:(0,J.jsx)(g,{color:`error`,children:n})}):e?(0,J.jsx)(p,{to:`/${e}/dashboard`,replace:!0}):(0,J.jsx)(O,{sx:{display:`flex`,justifyContent:`center`,alignItems:`center`,height:`100vh`},children:(0,J.jsx)(j,{})})}function vt(e,t){return R(`/projects/${e}/knowledge/notes${L({tag:t?.tag,limit:t?.limit})}`).then(I)}function yt(e,t){return R(`/projects/${e}/knowledge/notes/${t}`)}function bt(e,t){return R(`/projects/${e}/knowledge/notes`,{method:`POST`,body:JSON.stringify(t)})}function xt(e,t,n){return R(`/projects/${e}/knowledge/notes/${t}`,{method:`PUT`,body:JSON.stringify(n)})}function St(e,t){return R(`/projects/${e}/knowledge/notes/${t}`,{method:`DELETE`})}function Ct(e,t,n){return R(`/projects/${e}/knowledge/search${L({q:t,topK:n?.topK,minScore:n?.minScore})}`).then(I)}function wt(e,t){return R(`/projects/${e}/knowledge/notes/${t}/relations`).then(I)}function Tt(e,t){return R(`/projects/${e}/knowledge/relations`,{method:`POST`,body:JSON.stringify(t)})}function Et(e,t){return R(`/projects/${e}/knowledge/relations`,{method:`DELETE`,body:JSON.stringify(t)})}function Dt(e,t,n){return R(`/projects/${e}/knowledge/linked${L({targetGraph:t,targetNodeId:n})}`).then(I)}function Ot(e,t){return R(`/projects/${e}/knowledge/notes/${t}/attachments`).then(I)}async function kt(e,t,n){let r=new FormData;r.append(`file`,n);let i=await fetch(`/api/projects/${e}/knowledge/notes/${t}/attachments`,{method:`POST`,credentials:`include`,body:r});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||i.statusText)}return i.json()}function At(e,t,n){return R(`/projects/${e}/knowledge/notes/${t}/attachments/${encodeURIComponent(n)}`,{method:`DELETE`})}function jt(e,t,n){return`/api/projects/${e}/knowledge/notes/${t}/attachments/${encodeURIComponent(n)}`}function Z({title:e,action:t,children:n,sx:r}){let{palette:i}=F();return(0,J.jsxs)(O,{sx:{borderRadius:1,overflow:`hidden`,border:`1px solid ${i.custom.border}`,display:`flex`,flexDirection:`column`,...r},children:[(0,J.jsxs)(O,{sx:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,px:2,py:1.5,bgcolor:i.custom.surfaceMuted,flexShrink:0},children:[(0,J.jsx)(g,{variant:`subtitle2`,sx:{textTransform:`uppercase`,letterSpacing:.5},children:e}),t]}),(0,J.jsx)(O,{sx:{p:2,bgcolor:i.custom.surface,flex:1},children:n})]})}function Q({label:e,color:t,icon:n,size:r=`small`}){let{palette:i}=F(),a={success:i.success.main,error:i.error.main,warning:i.warning.main,neutral:i.custom.neutral,primary:i.primary.main}[t]??i.custom.neutral;return(0,J.jsx)(D,{label:e,icon:n,size:r,sx:{bgcolor:`${a}26`,color:a,border:`none`,borderRadius:`999px`,fontWeight:600,"& .MuiChip-icon":{color:a}}})}function Mt({tags:e,onAdd:t,onRemove:n,editable:r=!1}){let{palette:i}=F(),[a,o]=(0,q.useState)(``);return(0,J.jsxs)(O,{sx:{display:`flex`,flexWrap:`wrap`,gap:.5,alignItems:`center`},children:[e.map(e=>(0,J.jsx)(D,{label:e,size:`small`,onDelete:r?()=>n?.(e):void 0,sx:{bgcolor:i.custom.surfaceMuted,border:`1px solid ${i.custom.border}`,color:i.custom.textMuted}},e)),r&&(0,J.jsx)(N,{size:`small`,placeholder:`Add tag…`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&a.trim()&&(e.preventDefault(),t?.(a.trim()),o(``))},sx:{width:100,"& .MuiInputBase-input":{py:.5,fontSize:`0.8125rem`}}})]})}function Nt({value:e,size:t=`small`}){let{palette:n}=F(),[r,i]=(0,q.useState)(!1);return(0,J.jsx)(P,{size:t,onClick:(0,q.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{i(!0),setTimeout(()=>i(!1),1500)})},[e]),sx:{color:n.custom.textMuted},children:r?(0,J.jsx)(V,{fontSize:`small`}):(0,J.jsx)(H,{fontSize:`small`})})}var Pt=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Ft=720*60*60*1e3;function It(e,t){let n=String(e.getDate()).padStart(2,`0`),r=Pt[e.getMonth()],i=e.getFullYear();return t?`${n} ${r} ${i}, ${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`${n} ${r} ${i}`}function Lt(e){let t=Date.now()-e.getTime();if(t<0||t>Ft)return null;let n=Math.floor(t/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function Rt({value:e,showTime:t=!1,showRelative:n=!0}){let{palette:r}=F(),i=e instanceof Date?e:new Date(e);if(isNaN(i.getTime()))return null;let a=It(i,t),o=n?Lt(i):null;return(0,J.jsxs)(g,{component:`span`,variant:`body2`,children:[a,o&&(0,J.jsxs)(g,{component:`span`,variant:`body2`,sx:{color:r.custom.textMuted,ml:.5},children:[`· `,o]})]})}function zt({breadcrumbs:e,actions:t}){let n=e.length<=1;return n&&!t?null:(0,J.jsxs)(O,{sx:{display:`flex`,alignItems:`center`,justifyContent:n?`flex-end`:`space-between`,mb:n?1.5:3},children:[!n&&(0,J.jsx)(ne,{separator:(0,J.jsx)(ye,{fontSize:`small`}),children:e.map((t,n)=>t.to&&n<e.length-1?(0,J.jsx)(d,{to:t.to,style:{textDecoration:`none`,color:`inherit`},children:(0,J.jsx)(g,{variant:`body1`,color:`text.secondary`,children:t.label})},n):(0,J.jsx)(g,{variant:`body1`,fontWeight:600,children:t.label},n))}),t&&(0,J.jsx)(O,{sx:{display:`flex`,gap:1},children:t})]})}function Bt({children:e,actions:t}){let{palette:n}=F();return(0,J.jsxs)(O,{sx:{display:`flex`,alignItems:`center`,gap:1.5,px:2,py:1,bgcolor:n.custom.surfaceMuted,borderRadius:1,mb:2},children:[(0,J.jsx)(O,{sx:{display:`flex`,gap:1.5,flex:1,alignItems:`center`},children:e}),t&&(0,J.jsx)(O,{sx:{display:`flex`,gap:1},children:t})]})}function Vt({label:e,children:t,divider:n=!0}){let{palette:r}=F();return(0,J.jsxs)(O,{sx:{display:`flex`,alignItems:`flex-start`,py:1.25,borderBottom:n?`1px solid ${r.custom.border}`:`none`},children:[(0,J.jsx)(g,{variant:`body2`,sx:{width:200,flexShrink:0,color:r.custom.textMuted,pt:.25},children:e}),(0,J.jsx)(O,{sx:{flex:1,minWidth:0},children:t})]})}function Ht({children:e}){return(0,J.jsx)(O,{sx:{display:`grid`,gridTemplateColumns:{xs:`1fr`,md:`1fr 1fr`},gap:2},children:e})}function Ut({children:e,fullWidth:t=!1}){return(0,J.jsx)(O,{sx:t?{gridColumn:`1 / -1`}:void 0,children:e})}function Wt({children:e,required:t,sx:n}){return(0,J.jsxs)(g,{variant:`caption`,sx:{display:`block`,mb:.75,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.05em`,color:`text.secondary`,...n},children:[e,t&&` *`]})}function Gt({title:e,description:t,action:n,icon:r}){let{palette:i}=F();return(0,J.jsxs)(O,{sx:{display:`flex`,flexDirection:`column`,alignItems:`center`,py:6,px:2},children:[r&&(0,J.jsx)(O,{sx:{mb:2,color:i.custom.textMuted,"& .MuiSvgIcon-root":{fontSize:48}},children:r}),(0,J.jsx)(g,{variant:`h6`,gutterBottom:!0,children:e}),t&&(0,J.jsx)(g,{variant:`body2`,sx:{color:i.custom.textMuted,mb:2,textAlign:`center`},children:t}),n]})}function Kt({open:e,title:t,message:n,confirmLabel:r=`Confirm`,confirmColor:i=`primary`,onConfirm:a,onCancel:o,loading:s=!1}){return(0,J.jsxs)(ae,{open:e,onClose:o,maxWidth:`xs`,fullWidth:!0,children:[(0,J.jsx)(C,{children:t}),(0,J.jsx)(me,{children:(0,J.jsx)(ie,{children:n})}),(0,J.jsxs)(_,{children:[(0,J.jsx)(M,{onClick:o,disabled:s,children:`Cancel`}),(0,J.jsx)(M,{onClick:a,color:i,variant:`contained`,disabled:s,children:r})]})]})}function qt({children:e}){let{palette:t}=F();return(0,J.jsx)(r,{remarkPlugins:[i],components:{h1:({children:e})=>(0,J.jsx)(g,{variant:`h5`,fontWeight:700,gutterBottom:!0,sx:{mt:3,mb:1.5},children:e}),h2:({children:e})=>(0,J.jsx)(g,{variant:`h6`,fontWeight:700,gutterBottom:!0,sx:{mt:3,mb:1},children:e}),h3:({children:e})=>(0,J.jsx)(g,{variant:`subtitle1`,fontWeight:700,gutterBottom:!0,sx:{mt:2,mb:.5},children:e}),p:({children:e})=>(0,J.jsx)(g,{variant:`body2`,sx:{mb:1.5,lineHeight:1.7},children:e}),a:({href:e,children:t})=>(0,J.jsx)(w,{href:e,underline:`hover`,color:`primary`,children:t}),ul:({children:e})=>(0,J.jsx)(O,{component:`ul`,sx:{pl:3,mb:1.5,"& li":{mb:.5}},children:e}),ol:({children:e})=>(0,J.jsx)(O,{component:`ol`,sx:{pl:3,mb:1.5,"& li":{mb:.5}},children:e}),li:({children:e})=>(0,J.jsx)(g,{component:`li`,variant:`body2`,sx:{lineHeight:1.7},children:e}),code:({className:e,children:n})=>e?.startsWith(`language-`)?(0,J.jsx)(O,{component:`pre`,sx:{p:2,mb:1.5,bgcolor:t.custom.surfaceMuted,borderRadius:1,border:`1px solid ${t.custom.border}`,overflow:`auto`,fontFamily:`monospace`,fontSize:`0.8125rem`,lineHeight:1.6,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:(0,J.jsx)(`code`,{children:n})}):(0,J.jsx)(O,{component:`code`,sx:{px:.6,py:.15,bgcolor:t.custom.surfaceMuted,borderRadius:.5,fontFamily:`monospace`,fontSize:`0.8125rem`},children:n}),pre:({children:e})=>(0,J.jsx)(J.Fragment,{children:e}),blockquote:({children:e})=>(0,J.jsx)(O,{sx:{pl:2,ml:0,borderLeft:`3px solid ${t.primary.main}`,color:t.custom.textMuted,mb:1.5},children:e}),table:({children:e})=>(0,J.jsx)(O,{component:`table`,sx:{width:`100%`,mb:1.5,borderCollapse:`collapse`,"& th, & td":{border:`1px solid ${t.custom.border}`,px:1.5,py:.75,fontSize:`0.8125rem`,textAlign:`left`},"& th":{bgcolor:t.custom.surfaceMuted,fontWeight:600}},children:e}),hr:()=>(0,J.jsx)(O,{component:`hr`,sx:{border:`none`,borderTop:`1px solid ${t.custom.border}`,my:2}})},children:e})}var Jt=(0,q.lazy)(()=>s(()=>import(`./esm-BWiKNcBW.js`),__vite__mapDeps([0,1,2,3,4])));function Yt({value:e,onChange:t,height:n=300}){let{palette:r}=F(),i=r.mode;return(0,J.jsx)(`div`,{"data-color-mode":i,children:(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)(O,{sx:{display:`flex`,justifyContent:`center`,alignItems:`center`,height:n},children:(0,J.jsx)(j,{size:24})}),children:(0,J.jsx)(Jt,{value:e,onChange:e=>t(e??``),height:n,preview:`edit`,visibleDragbar:!1})})})}function Xt({note:e,score:t,onClick:n,onEdit:r}){let{palette:i}=F();return(0,J.jsx)(S,{variant:`outlined`,sx:{cursor:n?`pointer`:`default`,"&:hover":n?{borderColor:`primary.main`}:{}},onClick:n,children:(0,J.jsx)(E,{sx:{py:1.5,px:2,"&:last-child":{pb:1.5}},children:(0,J.jsxs)(O,{sx:{display:`flex`,alignItems:`flex-start`,gap:1},children:[(0,J.jsxs)(O,{sx:{flex:1,minWidth:0},children:[(0,J.jsxs)(O,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:.25},children:[(0,J.jsx)(g,{variant:`subtitle1`,fontWeight:600,noWrap:!0,sx:{flex:1},children:e.title}),t!==void 0&&(0,J.jsx)(Q,{label:`${(t*100).toFixed(0)}%`,color:`primary`,size:`small`})]}),e.content&&(0,J.jsx)(g,{variant:`body2`,sx:{color:i.custom.textMuted,display:`-webkit-box`,WebkitLineClamp:2,WebkitBoxOrient:`vertical`,overflow:`hidden`},children:e.content.replace(/^#+\s*/gm,``).replace(/[*_`]/g,``).trim()}),e.tags?.length>0&&(0,J.jsx)(O,{sx:{mt:.5},children:(0,J.jsx)(Mt,{tags:e.tags})})]}),r&&(0,J.jsx)(ce,{title:`Edit`,children:(0,J.jsx)(P,{size:`small`,onClick:e=>{e.stopPropagation(),r()},children:(0,J.jsx)(be,{fontSize:`small`})})})]})})})}function Zt(e,t){return R(`/projects/${e}/tasks${L({status:t?.status,priority:t?.priority,tag:t?.tag,assignee:t?.assignee,limit:t?.limit})}`).then(I)}function Qt(e,t){return R(`/projects/${e}/tasks/${t}`)}function $t(e,t){return R(`/projects/${e}/tasks`,{method:`POST`,body:JSON.stringify(t)})}function en(e,t,n){return R(`/projects/${e}/tasks/${t}`,{method:`PUT`,body:JSON.stringify(n)})}function tn(e,t,n){return R(`/projects/${e}/tasks/${t}/move`,{method:`POST`,body:JSON.stringify({status:n})})}function nn(e,t){return R(`/projects/${e}/tasks/${t}`,{method:`DELETE`})}function rn(e,t,n){return R(`/projects/${e}/tasks/search${L({q:t,topK:n?.topK,minScore:n?.minScore})}`).then(I)}function an(e,t){return R(`/projects/${e}/tasks/${t}/relations`).then(I)}function on(e,t){return R(`/projects/${e}/tasks/links`,{method:`POST`,body:JSON.stringify(t)})}function sn(e,t){return R(`/projects/${e}/tasks/links`,{method:`DELETE`,body:JSON.stringify(t)})}function cn(e,t,n){return R(`/projects/${e}/tasks/linked${L({targetGraph:t,targetNodeId:n})}`).then(I)}function ln(e,t){return R(`/projects/${e}/tasks/${t}/attachments`).then(I)}async function un(e,t,n){let r=new FormData;r.append(`file`,n);let i=await fetch(`/api/projects/${e}/tasks/${t}/attachments`,{method:`POST`,credentials:`include`,body:r});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||i.statusText)}return i.json()}function dn(e,t,n){return R(`/projects/${e}/tasks/${t}/attachments/${encodeURIComponent(n)}`,{method:`DELETE`})}function fn(e,t,n){return`/api/projects/${e}/tasks/${t}/attachments/${encodeURIComponent(n)}`}var pn=[{status:`backlog`,label:`Backlog`,color:`#616161`},{status:`todo`,label:`To Do`,color:`#1976d2`},{status:`in_progress`,label:`In Progress`,color:`#f57c00`},{status:`review`,label:`Review`,color:`#7b1fa2`},{status:`done`,label:`Done`,color:`#388e3c`},{status:`cancelled`,label:`Cancelled`,color:`#d32f2f`}],mn={backlog:`neutral`,todo:`primary`,in_progress:`warning`,review:`primary`,done:`success`,cancelled:`error`},hn={critical:`error`,high:`warning`,medium:`primary`,low:`neutral`};function gn(e){return pn.find(t=>t.status===e)?.label??e}function _n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function vn(){let{projectId:e}=u(),t=o(),{palette:n}=F(),[r,i]=(0,q.useState)(null),[a,s]=(0,q.useState)([]),[c,l]=(0,q.useState)([]),[d,f]=(0,q.useState)(!0),[p,m]=(0,q.useState)(null),h=(0,q.useCallback)(async()=>{if(e)try{let[t,n,r]=await Promise.all([Ue(e),vt(e,{limit:5}).catch(()=>[]),Zt(e,{limit:10}).catch(()=>[])]);i(t),s(n),l(r),m(null)}catch(e){m(e instanceof Error?e.message:String(e))}finally{f(!1)}},[e]);if((0,q.useEffect)(()=>{h()},[h]),Qe(e??null,(0,q.useCallback)(()=>{h()},[h])),d)return(0,J.jsx)(O,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,J.jsx)(j,{})});if(p)return(0,J.jsx)(A,{severity:`error`,children:p});let _=[{label:`Notes`,value:r?.knowledge?.nodes??0,icon:(0,J.jsx)(W,{}),path:`knowledge`,color:n.warning.main},{label:`Tasks`,value:r?.tasks?.nodes??0,icon:(0,J.jsx)(Ne,{}),path:`tasks`,color:n.primary.main},{label:`Skills`,value:r?.skills?.nodes??0,icon:(0,J.jsx)(G,{}),path:`skills`,color:`#9c27b0`},{label:`Docs`,value:r?.docs?.nodes??0,icon:(0,J.jsx)(U,{}),path:`docs`,color:n.secondary.main},{label:`Code Symbols`,value:r?.code?.nodes??0,icon:(0,J.jsx)(ke,{}),path:`search`,color:n.error.main},{label:`Files`,value:r?.fileIndex?.nodes??0,icon:(0,J.jsx)(K,{}),path:`files`,color:n.success.main}];return(0,J.jsxs)(O,{children:[(0,J.jsx)(zt,{breadcrumbs:[{label:`Dashboard`}]}),(0,J.jsx)(O,{sx:{display:`grid`,gridTemplateColumns:{xs:`1fr 1fr`,md:`repeat(6, 1fr)`},gap:2,mb:3},children:_.map(r=>(0,J.jsx)(S,{variant:`outlined`,sx:{cursor:`pointer`,"&:hover":{borderColor:`primary.main`}},onClick:()=>t(`/${e}/${r.path}`),children:(0,J.jsxs)(E,{sx:{py:2,px:2,"&:last-child":{pb:2}},children:[(0,J.jsxs)(O,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:1},children:[(0,J.jsx)(O,{sx:{color:r.color},children:r.icon}),(0,J.jsx)(g,{variant:`caption`,sx:{color:n.custom.textMuted,textTransform:`uppercase`,letterSpacing:.5},children:r.label})]}),(0,J.jsx)(g,{variant:`h4`,fontWeight:700,children:r.value})]})},r.label))}),(0,J.jsxs)(O,{sx:{display:`grid`,gridTemplateColumns:{xs:`1fr`,md:`1fr 1fr`},gap:3},children:[(0,J.jsxs)(Z,{title:`Recent Notes`,action:(0,J.jsx)(M,{size:`small`,endIcon:(0,J.jsx)(_e,{}),onClick:()=>t(`/${e}/knowledge`),children:`View all`}),children:[a.length===0?(0,J.jsx)(g,{variant:`body2`,sx:{color:n.custom.textMuted},children:`No notes yet`}):(0,J.jsx)(v,{dense:!0,disablePadding:!0,children:a.map(r=>(0,J.jsxs)(y,{onClick:()=>t(`/${e}/knowledge/${r.id}`),sx:{borderRadius:1,py:.5},children:[(0,J.jsx)(ee,{sx:{minWidth:32},children:(0,J.jsx)(W,{fontSize:`small`,sx:{color:n.warning.main}})}),(0,J.jsx)(T,{primary:(0,J.jsx)(g,{variant:`body2`,fontWeight:500,children:r.title}),secondary:r.content?r.content.slice(0,60)+(r.content.length>60?`...`:``):void 0})]},r.id))}),(0,J.jsx)(O,{sx:{mt:1.5},children:(0,J.jsx)(M,{size:`small`,startIcon:(0,J.jsx)(B,{}),onClick:()=>t(`/${e}/knowledge/new`),children:`New Note`})})]}),(0,J.jsxs)(Z,{title:`Recent Tasks`,action:(0,J.jsx)(M,{size:`small`,endIcon:(0,J.jsx)(_e,{}),onClick:()=>t(`/${e}/tasks`),children:`View all`}),children:[c.length===0?(0,J.jsx)(g,{variant:`body2`,sx:{color:n.custom.textMuted},children:`No tasks yet`}):(0,J.jsx)(v,{dense:!0,disablePadding:!0,children:c.map(n=>(0,J.jsxs)(y,{onClick:()=>t(`/${e}/tasks/${n.id}`),sx:{borderRadius:1,py:.75,px:1.5},children:[(0,J.jsx)(T,{primary:(0,J.jsx)(g,{variant:`body2`,fontWeight:500,noWrap:!0,children:n.title}),sx:{mr:2}}),(0,J.jsx)(Q,{label:gn(n.status),color:mn[n.status],size:`small`})]},n.id))}),(0,J.jsx)(O,{sx:{mt:1.5},children:(0,J.jsx)(M,{size:`small`,startIcon:(0,J.jsx)(B,{}),onClick:()=>t(`/${e}/tasks/new`),children:`New Task`})})]})]})]})}var yn=(0,q.lazy)(()=>s(()=>import(`./knowledge-DeygeGGH.js`),__vite__mapDeps([5,2,6,7,1,3,4,8,9]))),bn=(0,q.lazy)(()=>s(()=>import(`./_noteId_-C1enaQd1.js`),__vite__mapDeps([10,2,6,7,1,3,4,8,11,12,13,14,15,16]))),xn=(0,q.lazy)(()=>s(()=>import(`./new-DHTg3Dqq.js`),__vite__mapDeps([17,6,2,7,1,3,4,9]))),Sn=(0,q.lazy)(()=>s(()=>import(`./edit-BYiy1FZy.js`),__vite__mapDeps([18,2,6,7,1,3,4,9]))),Cn=(0,q.lazy)(()=>s(()=>import(`./tasks-CobouTKV.js`),__vite__mapDeps([19,2,6,7,1,3,4,8]))),wn=(0,q.lazy)(()=>s(()=>import(`./_taskId_-DSB3dLVz.js`),__vite__mapDeps([20,2,6,7,1,3,4,8,11,12,13,14,15,16]))),Tn=(0,q.lazy)(()=>s(()=>import(`./new-CpD7hOBA.js`),__vite__mapDeps([21,6,2,7,1,3,4,22]))),En=(0,q.lazy)(()=>s(()=>import(`./edit-TUIIpUMF.js`),__vite__mapDeps([23,2,6,7,1,3,4,22]))),Dn=(0,q.lazy)(()=>s(()=>import(`./skills-Cga9iUZN.js`),__vite__mapDeps([24,2,6,7,1,3,4,8,11,12,25]))),On=(0,q.lazy)(()=>s(()=>import(`./_skillId_-hPoCet7J.js`),__vite__mapDeps([26,2,6,7,1,3,4,8,11,12,13,14,15,16]))),kn=(0,q.lazy)(()=>s(()=>import(`./new-s8c0M75X.js`),__vite__mapDeps([27,6,2,7,1,3,4,11,8,12,25]))),An=(0,q.lazy)(()=>s(()=>import(`./edit-hc-ZWz3y.js`),__vite__mapDeps([28,2,6,7,1,3,4,11,8,12,25]))),jn=(0,q.lazy)(()=>s(()=>import(`./docs-CrXsRcOG.js`),__vite__mapDeps([29,2,6,7,1,3,4,8,15,12]))),Mn=(0,q.lazy)(()=>s(()=>import(`./_docId_-hdCDjclV.js`),__vite__mapDeps([30,2,6,7,1,3,4,15,12]))),Nn=(0,q.lazy)(()=>s(()=>import(`./files-0bPg6NH9.js`),__vite__mapDeps([31,2,6,7,1,3,4,8,16,12]))),Pn=(0,q.lazy)(()=>s(()=>import(`./_filePath_-CpG836v4.js`),__vite__mapDeps([32,2,6,7,1,3,4,16,12]))),Fn=(0,q.lazy)(()=>s(()=>import(`./search-EpJhdP2a.js`),__vite__mapDeps([33,2,6,7,1,3,4,8,14,12,15,16,11]))),In=(0,q.lazy)(()=>s(()=>import(`./graph-DXGud_wF.js`),__vite__mapDeps([34,2,6,7,1,3,4,8,35,12]))),Ln=(0,q.lazy)(()=>s(()=>import(`./tools-JxKH5BDF.js`),__vite__mapDeps([36,2,6,7,1,3,4,8,37,12]))),Rn=(0,q.lazy)(()=>s(()=>import(`./_toolName_-3SmCfxZy.js`),__vite__mapDeps([38,2,6,7,1,3,4,8,39,37,12]))),$=(0,q.lazy)(()=>s(()=>import(`./prompts-BgOmdxgM.js`),__vite__mapDeps([40,2,6,7,1,3,4,8,11,12]))),zn=(0,q.lazy)(()=>s(()=>import(`./help-DJ52_fxN.js`),__vite__mapDeps([41,2,6,7,1,3,4,8,39]))),Bn=(0,q.lazy)(()=>s(()=>import(`./_articleId_-DjbCByxM.js`),__vite__mapDeps([42,6,2,7,1,3,4,8,39])));function Vn(){return(0,J.jsx)(O,{sx:{display:`flex`,justifyContent:`center`,alignItems:`center`,height:`50vh`},children:(0,J.jsx)(j,{size:32})})}function Hn(){return(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)(Vn,{}),children:(0,J.jsxs)(f,{children:[(0,J.jsxs)(a,{path:`/:projectId`,element:(0,J.jsx)(gt,{}),children:[(0,J.jsx)(a,{index:!0,element:(0,J.jsx)(p,{to:`dashboard`,replace:!0})}),(0,J.jsx)(a,{path:`dashboard`,element:(0,J.jsx)(vn,{})}),(0,J.jsx)(a,{path:`knowledge`,element:(0,J.jsx)(yn,{})}),(0,J.jsx)(a,{path:`knowledge/new`,element:(0,J.jsx)(xn,{})}),(0,J.jsx)(a,{path:`knowledge/:noteId/edit`,element:(0,J.jsx)(Sn,{})}),(0,J.jsx)(a,{path:`knowledge/:noteId`,element:(0,J.jsx)(bn,{})}),(0,J.jsx)(a,{path:`tasks`,element:(0,J.jsx)(Cn,{})}),(0,J.jsx)(a,{path:`tasks/new`,element:(0,J.jsx)(Tn,{})}),(0,J.jsx)(a,{path:`tasks/:taskId/edit`,element:(0,J.jsx)(En,{})}),(0,J.jsx)(a,{path:`tasks/:taskId`,element:(0,J.jsx)(wn,{})}),(0,J.jsx)(a,{path:`skills`,element:(0,J.jsx)(Dn,{})}),(0,J.jsx)(a,{path:`skills/new`,element:(0,J.jsx)(kn,{})}),(0,J.jsx)(a,{path:`skills/:skillId/edit`,element:(0,J.jsx)(An,{})}),(0,J.jsx)(a,{path:`skills/:skillId`,element:(0,J.jsx)(On,{})}),(0,J.jsx)(a,{path:`docs`,element:(0,J.jsx)(jn,{})}),(0,J.jsx)(a,{path:`docs/:docId`,element:(0,J.jsx)(Mn,{})}),(0,J.jsx)(a,{path:`files`,element:(0,J.jsx)(Nn,{})}),(0,J.jsx)(a,{path:`files/view/*`,element:(0,J.jsx)(Pn,{})}),(0,J.jsx)(a,{path:`search`,element:(0,J.jsx)(Fn,{})}),(0,J.jsx)(a,{path:`graph`,element:(0,J.jsx)(In,{})}),(0,J.jsx)(a,{path:`prompts/simple`,element:(0,J.jsx)($,{})}),(0,J.jsx)(a,{path:`prompts/advanced`,element:(0,J.jsx)($,{})}),(0,J.jsx)(a,{path:`prompts`,element:(0,J.jsx)($,{})}),(0,J.jsx)(a,{path:`tools`,element:(0,J.jsx)(Ln,{})}),(0,J.jsx)(a,{path:`tools/:toolName`,element:(0,J.jsx)(Rn,{})}),(0,J.jsx)(a,{path:`help`,element:(0,J.jsx)(zn,{})}),(0,J.jsx)(a,{path:`help/:articleId`,element:(0,J.jsx)(Bn,{})})]}),(0,J.jsx)(a,{path:`*`,element:(0,J.jsx)(_t,{})})]})})}(0,Pe.createRoot)(document.getElementById(`root`)).render((0,J.jsx)(q.StrictMode,{children:(0,J.jsx)(h,{basename:`/ui`,children:(0,J.jsx)(ze,{children:(0,J.jsx)(qe,{children:(0,J.jsx)(Hn,{})})})})}));export{Ue as $,Bt as A,At as B,qt as C,Ut as D,Wt as E,Q as F,vt as G,Dt as H,Z as I,Ct as J,wt as K,bt as L,Rt as M,Nt as N,Ht as O,Mt as P,Qe as Q,Tt as R,Yt as S,Gt as T,yt as U,Et as V,Ot as W,kt as X,xt as Y,nt as Z,rn as _,gn as a,un as b,nn as c,cn as d,We as et,Qt as f,tn as g,Zt as h,_n as i,zt as j,Vt as k,dn as l,an as m,hn as n,$t as o,ln as p,jt as q,mn as r,on as s,pn as t,sn as u,fn as v,Kt as w,Xt as x,en as y,St as z};
|