@wrongstack/webui 0.308.7 → 0.309.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/assets/{AgentRosterView-z7sAuWGe.js → AgentRosterView-CbgKjnxJ.js} +1 -1
  2. package/dist/assets/{AnalyticsDashboard-Ch1DX7tR.js → AnalyticsDashboard-BXnPG2xB.js} +1 -1
  3. package/dist/assets/{AudienceMemoryPanel-Cec0V4--.js → AudienceMemoryPanel-Ch-jf06O.js} +1 -1
  4. package/dist/assets/{ChangesView-CzvRJS2F.js → ChangesView-5lcal8q4.js} +1 -1
  5. package/dist/assets/{ChronicleDashboard-Dc5cQH7A.js → ChronicleDashboard-BH9k5NjB.js} +1 -1
  6. package/dist/assets/{CodeEditor-C1xScB5M.js → CodeEditor-BrQMwzOp.js} +1 -1
  7. package/dist/assets/{CodeMap-BMcY8qXe.js → CodeMap-B5e0v0jn.js} +1 -1
  8. package/dist/assets/{ConfirmModal-i2BGY0ev.js → ConfirmModal-KzK0LoJw.js} +1 -1
  9. package/dist/assets/{CronJobsPanel-D4VNa-Kl.js → CronJobsPanel-aLru0Rd_.js} +1 -1
  10. package/dist/assets/{DeadCodeScanPanel-DyV2LHm_.js → DeadCodeScanPanel-BXpB_M2Z.js} +1 -1
  11. package/dist/assets/{DebugDashboard-C_T68C0f.js → DebugDashboard-hnhGaWr-.js} +1 -1
  12. package/dist/assets/{DesignGalleryView-CVmV-AU2.js → DesignGalleryView-CXHgaI2Q.js} +1 -1
  13. package/dist/assets/{GoalView-DQa9PklT.js → GoalView-BB5t68cb.js} +1 -1
  14. package/dist/assets/{KanbanView-CDp4gTML.js → KanbanView-bZtgy3zZ.js} +1 -1
  15. package/dist/assets/{MailboxDetailView-D7aRTWS8.js → MailboxDetailView-jPxF6ia3.js} +1 -1
  16. package/dist/assets/{MemoryDrawer-Bivx9AXj.js → MemoryDrawer-e8UxQq-s.js} +1 -1
  17. package/dist/assets/{MemoryManager-DOTxwo0l.js → MemoryManager-BXYIA9wG.js} +1 -1
  18. package/dist/assets/{ModelPicker-MpC6-gWQ.js → ModelPicker-nyXP3xsj.js} +1 -1
  19. package/dist/assets/{OfficeMapPanel-Q8nQfQVb.js → OfficeMapPanel-CBfE7Kli.js} +1 -1
  20. package/dist/assets/{ProcessMonitor-C8GH1q2B.js → ProcessMonitor-Epj6RrOA.js} +1 -1
  21. package/dist/assets/{PromptJournalView-BdOYPAjU.js → PromptJournalView-CMlGmjig.js} +1 -1
  22. package/dist/assets/{QueuePanel-RBW9Sh9b.js → QueuePanel-D67eiPuQ.js} +1 -1
  23. package/dist/assets/{RefreshDebugView-1lZduXKE.js → RefreshDebugView-CWAwHE9i.js} +1 -1
  24. package/dist/assets/{RequirementIntakeView-BtKuq_F4.js → RequirementIntakeView-DPj065HL.js} +1 -1
  25. package/dist/assets/{SageTabs-D2_mTlcJ.js → SageTabs-BtRa8OZC.js} +2 -2
  26. package/dist/assets/{SddFlowGraph-BdaItHkB.js → SddFlowGraph-DMSN4LTZ.js} +1 -1
  27. package/dist/assets/{SddHub-DVO0JGWk.js → SddHub-CuqWpqSd.js} +1 -1
  28. package/dist/assets/{SessionInspectView-xchxZrHA.js → SessionInspectView-BdlOiPzO.js} +1 -1
  29. package/dist/assets/{SessionList-2W7mKbcZ.js → SessionList-CvvH8SI2.js} +1 -1
  30. package/dist/assets/{SessionsDashboard-6QJsVGap.js → SessionsDashboard-BiR0zh-a.js} +1 -1
  31. package/dist/assets/{SetupScreen-DM2KCb23.js → SetupScreen-B8s5fvr8.js} +1 -1
  32. package/dist/assets/{SkillDetailView-Cx2z8hyp.js → SkillDetailView-DbXp7-E5.js} +1 -1
  33. package/dist/assets/{SpecsView-D-qbN6F5.js → SpecsView-2PqHEXH9.js} +1 -1
  34. package/dist/assets/{TechStackView-C7XFcAls.js → TechStackView-Dnws9pc9.js} +1 -1
  35. package/dist/assets/{TerminalPanel-DZs5mkPP.js → TerminalPanel-CLUB8F2H.js} +1 -1
  36. package/dist/assets/{Toaster-ChF897Tc.js → Toaster-BlD1m8P2.js} +1 -1
  37. package/dist/assets/{i18n-DiD9Wcep.js → i18n-DbJfY4tY.js} +2 -2
  38. package/dist/assets/{index-Cnerffls.js → index-DQn-Lz9q.js} +7 -7
  39. package/dist/assets/{roster-ws-XgkT9mo8.js → roster-ws-DycHs92J.js} +1 -1
  40. package/dist/assets/session-store-CKdsROPD.js +1 -0
  41. package/dist/assets/settings-B36QpLU8.js +1 -0
  42. package/dist/assets/settings-B8Hgh9_X.js +1 -0
  43. package/dist/assets/settings-B8uABeWU.js +1 -0
  44. package/dist/assets/settings-CSwU_zzD.js +1 -0
  45. package/dist/assets/settings-DfID_cS9.js +1 -0
  46. package/dist/assets/{settings-BPT8LWkU.js → settings-FXJ8SsEh.js} +1 -1
  47. package/dist/assets/settings-RQKnX4dA.js +1 -0
  48. package/dist/assets/{stores-CzgPPQlG.js → stores-C0xX0jn4.js} +1 -1
  49. package/dist/assets/{useWebSocket-DvMcAAgU.js → useWebSocket-D9Dy4-9x.js} +2 -2
  50. package/dist/assets/{ws-client-BVq0hf0a.js → ws-client-CBfMQmW9.js} +1 -1
  51. package/dist/index.html +10 -10
  52. package/dist/index.js +92 -31
  53. package/dist/stores/session-store.d.ts +7 -0
  54. package/dist/types/protocol-core.d.ts +4 -0
  55. package/package.json +8 -8
  56. package/dist/assets/session-store-BgiP4PnQ.js +0 -1
  57. package/dist/assets/settings-50uwXQIW.js +0 -1
  58. package/dist/assets/settings-BmJI-gam.js +0 -1
  59. package/dist/assets/settings-CqFe8Jtz.js +0 -1
  60. package/dist/assets/settings-DeM0wvCG.js +0 -1
  61. package/dist/assets/settings-DijFr-kZ.js +0 -1
  62. package/dist/assets/settings-L9mLQIIP.js +0 -1
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ba as t,Dn as n,Ga as r,Mr as i,Ot as a,Qr as o,Wt as s,dt as c,fi as l,lt as u,or as d,pi as f,ra as p,yn as m,zi as h}from"./vendor-C_zEzV4N.js";import"./i18n-DiD9Wcep.js";import{t as g}from"./ws-client-BVq0hf0a.js";import{t as _}from"./utils-tsZEnrBH.js";import{t as v}from"./button-DvpRpKkt.js";import{b as y,x as b}from"./index-Cnerffls.js";import{g as x,h as S,l as C,r as w,v as T}from"./shared-B3czc2Dj.js";var E=e(r(),1);function D(e){return e.replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/{2,}/g,`/`).toLowerCase()}var O={filePath:``,primaryMatches:[],symbolMatches:[],relatedMatches:[],totalCount:0,activeCount:0,supersededCount:0,reviewPendingCount:0};function k(e){let{filePath:t,lineStart:n,lineEnd:r,limit:i=50,showSuperseded:a=!0,showDeleted:o=!1,autoFetch:s=!0,sendOptions:c}=e,l=c?JSON.stringify(c):``,[u,d]=(0,E.useState)(null),[f,p]=(0,E.useState)(!1),[m,h]=(0,E.useState)(null),_=(0,E.useRef)(0),v=(0,E.useRef)(null),y=(0,E.useRef)(c);y.current=c;let b=(0,E.useCallback)(()=>{if(!t){d(null),h(null),p(!1);return}let e=++_.current;p(!0),h(null);let s=g();if(!s){h(`WebSocket client unavailable`),p(!1);return}v.current?.(),v.current=null;let c=t,l=s.on(`memory.sage.forFile`,t=>{if(e!==_.current)return;let n=t.payload.response;n&&D(n.filePath)!==D(c)||(t.payload.error?(h(t.payload.error),d(null)):(d(n??O),h(null)),p(!1))});v.current=l;let u={filePath:t,limit:i,showSuperseded:a,showDeleted:o,...n===void 0?{}:{lineStart:n},...r===void 0?{}:{lineEnd:r}};try{s.findMemoriesForFile(u,y.current??void 0)}catch(t){l(),v.current===l&&(v.current=null),e===_.current&&(h(t instanceof Error?t.message:String(t)),p(!1))}},[t,n,r,i,a,o]);(0,E.useEffect)(()=>{if(s)return b(),()=>{_.current++,v.current?.(),v.current=null}},[s,b,l]);let x=(0,E.useCallback)(()=>{b()},[b]);return(0,E.useEffect)(()=>()=>{v.current?.(),v.current=null},[]),{data:u,loading:f,error:m,refetch:x}}var A=u();function j(e){return e>=.9?`bg-success/15 border-success/40`:e>=.7?`bg-info/15 border-info/40`:e>=.4?`bg-warning/10 border-warning/30`:`bg-muted/30 border-border/40`}function M(e){switch(e){case`scope_file`:return`scope: file`;case`scope_symbol`:return`scope: symbol`;case`anchor_file`:return`anchor: file`;case`anchor_symbol`:return`anchor: symbol`;case`anchor_directory`:return`anchor: directory`;case`mention`:return`text mention`}}function N({match:e,cursorBoosted:r,onShowMemory:o,onAcceptDeletion:u,onKeep:f,onUpdate:h,onMarkPermanent:g,onRecover:y,pendingAction:b}){let{t:E}=t(),D=e.memory.status===`deleted`,O=e.memory.status===`superseded`,k=e.pendingReview,N=b!==void 0,P=r===!0;return(0,A.jsxs)(`article`,{className:_(`group relative rounded-md border px-3 py-2 text-sm transition-colors`,j(e.matchStrength),P&&`ring-1 ring-primary/40 ring-offset-0`,D&&`opacity-70`),"data-match-via":e.matchedVia,"data-memory-id":e.memory.id,children:[(0,A.jsx)(`header`,{className:`flex items-start justify-between gap-2`,children:(0,A.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] uppercase tracking-wide`,children:[(0,A.jsx)(`span`,{className:_(`font-mono`,S(e.memory.kind)),children:w[e.memory.kind]??e.memory.kind}),(0,A.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,A.jsx)(`span`,{className:`font-mono text-muted-foreground`,children:M(e.matchedVia)}),P&&(0,A.jsxs)(`span`,{className:`flex items-center gap-0.5 rounded-sm bg-primary/15 px-1 py-0.5 font-mono text-primary`,title:E(`activity:memoryManager.anchorCursorHint`),children:[(0,A.jsx)(n,{className:`size-2.5`}),` `,E(`activity:memoryManager.cursorLabel`)]}),k&&(0,A.jsxs)(`span`,{className:`flex items-center gap-0.5 rounded-sm bg-warning/15 px-1 py-0.5 font-mono text-warning`,title:E(`activity:memoryManager.hygieneReviewTitle`,{reason:k.reason,days:k.ageDays}),children:[(0,A.jsx)(a,{className:`size-2.5`}),` `,E(`activity:memoryManager.reviewLabel`)]}),D&&(0,A.jsx)(`span`,{className:`font-mono text-destructive`,children:E(`activity:memoryManager.statusDeleted`)}),O&&!D&&(0,A.jsx)(`span`,{className:`font-mono text-muted-foreground`,children:E(`activity:memoryManager.statusSuperseded`)})]}),(0,A.jsx)(`p`,{className:`mt-1 text-foreground/90`,children:x(e.memory.text,200)}),(0,A.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 text-[10px] text-muted-foreground`,children:[(0,A.jsx)(C,{status:e.memory.status}),(0,A.jsx)(`span`,{children:E(`activity:memoryManager.updatedSuffix`,{date:T(e.memory.updatedAt)})})]})]})}),(0,A.jsxs)(`footer`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,children:[D&&y&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>y(e.memory.id),className:`h-7 gap-1 border-primary/40 px-2 text-[11px] text-primary hover:bg-primary/10`,title:E(`activity:memoryManager.restoreTitle`),children:[(0,A.jsx)(m,{className:`size-3`}),` `,E(`activity:memoryManager.actionRecover`)]}),O&&e.supersededByActiveId&&o&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>o(e.supersededByActiveId),className:`h-7 gap-1 px-2 text-[11px]`,title:E(`activity:memoryManager.supersededJumpTitle`),children:[(0,A.jsx)(i,{className:`size-3`}),` `,E(`activity:memoryManager.actionGoToActive`)]}),k&&(u||f||h||g)&&(0,A.jsxs)(A.Fragment,{children:[k.suggestedAction===`delete`&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`destructive`,disabled:N,onClick:()=>u?.(k.candidateId,e.memory.id),className:`h-7 gap-1 px-2 text-[11px]`,title:E(`activity:memoryManager.acceptSuggestionTitle`),children:[(0,A.jsx)(p,{className:`size-3`}),` `,E(`activity:memoryManager.actionAcceptDeletion`)]}),(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>f?.(k.candidateId,e.memory.id),className:`h-7 gap-1 px-2 text-[11px]`,title:E(`activity:memoryManager.rejectSuggestionTitle`),children:[(0,A.jsx)(c,{className:`size-3`}),` `,E(`activity:memoryManager.actionKeep`)]}),(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>h?.(e.memory.id),className:`h-7 gap-1 px-2 text-[11px]`,title:E(`activity:memoryManager.updateTitle`),children:[(0,A.jsx)(s,{className:`size-3`}),` `,E(`activity:memoryManager.actionUpdate`)]}),g&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>g(e.memory.id),className:`h-7 gap-1 border-warning/40 px-2 text-[11px] text-warning hover:bg-warning/10`,title:E(`activity:memoryManager.promoteTitle`),children:[(0,A.jsx)(n,{className:`size-3`}),` `,E(`activity:memoryManager.actionMarkPermanent`)]})]}),o&&!D&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`ghost`,disabled:N,onClick:()=>o(e.memory.id),className:`h-7 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground`,title:E(`activity:memoryManager.openRecordTitle`),children:[(0,A.jsx)(l,{className:`size-3`}),` `,E(`activity:memoryManager.actionShowFull`)]}),b&&(0,A.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 text-[10px] text-muted-foreground`,children:[(0,A.jsx)(d,{className:`size-3 animate-spin`}),` `,b]})]})]})}function P({icon:e,title:r,count:i,matches:a,cursorBoosted:o=!1,...s}){let{t:c}=t(),l=b(a,10);return a.length===0?null:(0,A.jsxs)(`section`,{className:`flex flex-col gap-1.5`,children:[(0,A.jsxs)(`h3`,{className:`flex items-center gap-1.5 px-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,A.jsx)(e,{className:`size-3`}),(0,A.jsx)(`span`,{children:r}),(0,A.jsxs)(`span`,{className:`font-mono`,children:[`(`,i,`)`]}),o&&(0,A.jsxs)(`span`,{className:`ml-auto flex items-center gap-0.5 font-mono text-[9px] text-primary`,children:[(0,A.jsx)(n,{className:`size-2.5`}),` `,c(`activity:memoryManager.cursorBoostTitle`)]})]}),(0,A.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:l.pageItems.map(e=>(0,A.jsx)(N,{match:e,cursorBoosted:o&&(e.matchedVia===`anchor_symbol`||e.matchedVia===`scope_symbol`),pendingAction:s.pendingActionById.get(e.memory.id),...s},e.memory.id))}),(0,A.jsx)(y,{page:l.page,pageSize:l.pageSize,totalItems:l.totalItems,onPageChange:l.setPage,compact:!0,itemLabel:c(`activity:memoryManager.itemLabel`)})]})}function F({filePath:e,lineStart:r,lineEnd:i,open:s,onClose:c,onShowMemory:u,onAcceptDeletion:d,onKeep:p,onUpdate:g,onMarkPermanent:y,onRecover:b}){let{t:x}=t(),[S,C]=(0,E.useState)(!1),[w,T]=(0,E.useState)(new Map),D={accepting:x(`activity:memoryManager.pendingAccepting`),keeping:x(`activity:memoryManager.pendingKeeping`),updating:x(`activity:memoryManager.pendingUpdating`),marking:x(`activity:memoryManager.pendingMarking`),recovering:x(`activity:memoryManager.pendingRecovering`)},{data:O,loading:j,error:M,refetch:N}=k({filePath:e,lineStart:r,lineEnd:i,showDeleted:S,autoFetch:s}),F=r!==void 0&&i!==void 0,L=(0,E.useCallback)(async(e,t,n)=>{if(n){T(n=>new Map(n).set(e,t));try{await n(e)}finally{T(t=>{let n=new Map(t);return n.delete(e),n})}}},[]);if((0,E.useEffect)(()=>{C(!1)},[e]),!s)return null;let R=O,z=R?.totalCount??0;return(0,A.jsxs)(`aside`,{className:`flex h-full min-h-0 w-full flex-col border-l border-border/70 bg-card/15`,"aria-label":x(`activity:memoryManager.fileDrawerAria`),"data-file-path":e??``,children:[(0,A.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-border/60 px-3 py-2`,children:[(0,A.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] uppercase tracking-wide text-muted-foreground`,children:[(0,A.jsx)(o,{className:`size-3`}),(0,A.jsx)(`span`,{className:`truncate font-mono`,title:e??``,children:e??x(`activity:memoryManager.noFile`)})]}),(0,A.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-2 text-[10px] text-muted-foreground`,children:[(0,A.jsx)(`span`,{className:`font-mono`,children:x(`activity:memoryManager.memoriesCount`,{count:z})}),R&&R.reviewPendingCount>0&&(0,A.jsxs)(`span`,{className:`flex items-center gap-0.5 font-mono text-warning`,children:[(0,A.jsx)(a,{className:`size-3`}),x(`activity:memoryManager.pendingReviewCount`,{count:R.reviewPendingCount})]}),R&&R.supersededCount>0&&(0,A.jsx)(`span`,{className:`font-mono`,children:x(`activity:memoryManager.supersededCount`,{count:R.supersededCount})})]})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,A.jsx)(v,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>N(),disabled:j||!e,className:`h-7 w-7 p-0`,"aria-label":x(`common:action.refresh`),title:x(`activity:memoryManager.requeryTitle`),children:(0,A.jsx)(m,{className:_(`size-3.5`,j&&`animate-spin`)})}),(0,A.jsx)(v,{type:`button`,size:`sm`,variant:`ghost`,onClick:c,className:`h-7 w-7 p-0`,"aria-label":x(`activity:memoryManager.closeDrawerAria`),title:x(`activity:memoryManager.closeDrawerTitle`),children:(0,A.jsx)(h,{className:`size-3.5`})})]})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border/40 bg-background/40 px-3 py-1.5 text-[10px] text-muted-foreground`,children:[(0,A.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5`,children:[(0,A.jsx)(`input`,{type:`checkbox`,checked:S,onChange:e=>C(e.target.checked),className:`size-3 accent-primary`,disabled:!e,"data-testid":`memory-drawer-show-deleted`}),S?(0,A.jsx)(l,{className:`size-3`}):(0,A.jsx)(f,{className:`size-3`}),(0,A.jsx)(`span`,{children:x(`activity:memoryManager.showRecoverable`)})]}),F&&(0,A.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-mono text-[10px] text-primary`,children:[(0,A.jsx)(n,{className:`size-3`}),` `,x(`activity:memoryManager.linesRange`,{start:r,end:i})]})]}),(0,A.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto px-3 py-3`,children:e?j&&!R?(0,A.jsx)(I,{loading:!0,message:x(`activity:memoryManager.loadingMemories`)}):M?(0,A.jsx)(I,{tone:`error`,message:x(`activity:memoryManager.errorPrefix`,{message:M})}):!R||z===0?(0,A.jsx)(I,{message:x(`activity:memoryManager.emptyNoMemories`,{file:e})}):(0,A.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,A.jsx)(P,{icon:n,title:x(`activity:memoryManager.cursorBoostTitle`),count:R.symbolMatches.length,cursorBoosted:F,matches:R.symbolMatches,pendingActionById:w,onShowMemory:u,onAcceptDeletion:(e,t)=>L(t,D.accepting,()=>d?.(e,t)),onKeep:(e,t)=>L(t,D.keeping,()=>p?.(e,t)),onUpdate:e=>L(e,D.updating,()=>g?.(e)),onMarkPermanent:e=>L(e,D.marking,()=>y?.(e)),onRecover:e=>L(e,D.recovering,()=>b?.(e))}),(0,A.jsx)(P,{icon:o,title:x(`activity:memoryManager.fileScopedTitle`),count:R.primaryMatches.length,matches:R.primaryMatches,pendingActionById:w,onShowMemory:u,onAcceptDeletion:(e,t)=>L(t,D.accepting,()=>d?.(e,t)),onKeep:(e,t)=>L(t,D.keeping,()=>p?.(e,t)),onUpdate:e=>L(e,D.updating,()=>g?.(e)),onMarkPermanent:e=>L(e,D.marking,()=>y?.(e)),onRecover:e=>L(e,D.recovering,()=>b?.(e))}),(0,A.jsx)(P,{icon:l,title:x(`activity:memoryManager.mentionedInTitle`),count:R.relatedMatches.length,matches:R.relatedMatches,pendingActionById:w,onShowMemory:u,onAcceptDeletion:(e,t)=>L(t,D.accepting,()=>d?.(e,t)),onKeep:(e,t)=>L(t,D.keeping,()=>p?.(e,t)),onUpdate:e=>L(e,D.updating,()=>g?.(e)),onMarkPermanent:e=>L(e,D.marking,()=>y?.(e)),onRecover:e=>L(e,D.recovering,()=>b?.(e))})]}):(0,A.jsx)(I,{message:x(`activity:memoryManager.emptyOpenFile`)})})]})}function I({message:e,loading:t=!1,tone:n=`default`}){return(0,A.jsxs)(`div`,{className:_(`flex min-h-[120px] flex-col items-center justify-center gap-2 rounded-md border border-dashed border-border/60 px-4 py-6 text-center text-[11px]`,n===`error`?`text-destructive`:`text-muted-foreground`),children:[t&&(0,A.jsx)(d,{className:`size-4 animate-spin`}),(0,A.jsx)(`p`,{children:e})]})}export{F as t};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ba as t,Dn as n,Ga as r,Mr as i,Ot as a,Qr as o,Wt as s,dt as c,fi as l,lt as u,or as d,pi as f,ra as p,yn as m,zi as h}from"./vendor-C_zEzV4N.js";import"./i18n-DbJfY4tY.js";import{t as g}from"./ws-client-CBfMQmW9.js";import{t as _}from"./utils-tsZEnrBH.js";import{t as v}from"./button-DvpRpKkt.js";import{b as y,x as b}from"./index-DQn-Lz9q.js";import{g as x,h as S,l as C,r as w,v as T}from"./shared-B3czc2Dj.js";var E=e(r(),1);function D(e){return e.replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/{2,}/g,`/`).toLowerCase()}var O={filePath:``,primaryMatches:[],symbolMatches:[],relatedMatches:[],totalCount:0,activeCount:0,supersededCount:0,reviewPendingCount:0};function k(e){let{filePath:t,lineStart:n,lineEnd:r,limit:i=50,showSuperseded:a=!0,showDeleted:o=!1,autoFetch:s=!0,sendOptions:c}=e,l=c?JSON.stringify(c):``,[u,d]=(0,E.useState)(null),[f,p]=(0,E.useState)(!1),[m,h]=(0,E.useState)(null),_=(0,E.useRef)(0),v=(0,E.useRef)(null),y=(0,E.useRef)(c);y.current=c;let b=(0,E.useCallback)(()=>{if(!t){d(null),h(null),p(!1);return}let e=++_.current;p(!0),h(null);let s=g();if(!s){h(`WebSocket client unavailable`),p(!1);return}v.current?.(),v.current=null;let c=t,l=s.on(`memory.sage.forFile`,t=>{if(e!==_.current)return;let n=t.payload.response;n&&D(n.filePath)!==D(c)||(t.payload.error?(h(t.payload.error),d(null)):(d(n??O),h(null)),p(!1))});v.current=l;let u={filePath:t,limit:i,showSuperseded:a,showDeleted:o,...n===void 0?{}:{lineStart:n},...r===void 0?{}:{lineEnd:r}};try{s.findMemoriesForFile(u,y.current??void 0)}catch(t){l(),v.current===l&&(v.current=null),e===_.current&&(h(t instanceof Error?t.message:String(t)),p(!1))}},[t,n,r,i,a,o]);(0,E.useEffect)(()=>{if(s)return b(),()=>{_.current++,v.current?.(),v.current=null}},[s,b,l]);let x=(0,E.useCallback)(()=>{b()},[b]);return(0,E.useEffect)(()=>()=>{v.current?.(),v.current=null},[]),{data:u,loading:f,error:m,refetch:x}}var A=u();function j(e){return e>=.9?`bg-success/15 border-success/40`:e>=.7?`bg-info/15 border-info/40`:e>=.4?`bg-warning/10 border-warning/30`:`bg-muted/30 border-border/40`}function M(e){switch(e){case`scope_file`:return`scope: file`;case`scope_symbol`:return`scope: symbol`;case`anchor_file`:return`anchor: file`;case`anchor_symbol`:return`anchor: symbol`;case`anchor_directory`:return`anchor: directory`;case`mention`:return`text mention`}}function N({match:e,cursorBoosted:r,onShowMemory:o,onAcceptDeletion:u,onKeep:f,onUpdate:h,onMarkPermanent:g,onRecover:y,pendingAction:b}){let{t:E}=t(),D=e.memory.status===`deleted`,O=e.memory.status===`superseded`,k=e.pendingReview,N=b!==void 0,P=r===!0;return(0,A.jsxs)(`article`,{className:_(`group relative rounded-md border px-3 py-2 text-sm transition-colors`,j(e.matchStrength),P&&`ring-1 ring-primary/40 ring-offset-0`,D&&`opacity-70`),"data-match-via":e.matchedVia,"data-memory-id":e.memory.id,children:[(0,A.jsx)(`header`,{className:`flex items-start justify-between gap-2`,children:(0,A.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] uppercase tracking-wide`,children:[(0,A.jsx)(`span`,{className:_(`font-mono`,S(e.memory.kind)),children:w[e.memory.kind]??e.memory.kind}),(0,A.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,A.jsx)(`span`,{className:`font-mono text-muted-foreground`,children:M(e.matchedVia)}),P&&(0,A.jsxs)(`span`,{className:`flex items-center gap-0.5 rounded-sm bg-primary/15 px-1 py-0.5 font-mono text-primary`,title:E(`activity:memoryManager.anchorCursorHint`),children:[(0,A.jsx)(n,{className:`size-2.5`}),` `,E(`activity:memoryManager.cursorLabel`)]}),k&&(0,A.jsxs)(`span`,{className:`flex items-center gap-0.5 rounded-sm bg-warning/15 px-1 py-0.5 font-mono text-warning`,title:E(`activity:memoryManager.hygieneReviewTitle`,{reason:k.reason,days:k.ageDays}),children:[(0,A.jsx)(a,{className:`size-2.5`}),` `,E(`activity:memoryManager.reviewLabel`)]}),D&&(0,A.jsx)(`span`,{className:`font-mono text-destructive`,children:E(`activity:memoryManager.statusDeleted`)}),O&&!D&&(0,A.jsx)(`span`,{className:`font-mono text-muted-foreground`,children:E(`activity:memoryManager.statusSuperseded`)})]}),(0,A.jsx)(`p`,{className:`mt-1 text-foreground/90`,children:x(e.memory.text,200)}),(0,A.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 text-[10px] text-muted-foreground`,children:[(0,A.jsx)(C,{status:e.memory.status}),(0,A.jsx)(`span`,{children:E(`activity:memoryManager.updatedSuffix`,{date:T(e.memory.updatedAt)})})]})]})}),(0,A.jsxs)(`footer`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,children:[D&&y&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>y(e.memory.id),className:`h-7 gap-1 border-primary/40 px-2 text-[11px] text-primary hover:bg-primary/10`,title:E(`activity:memoryManager.restoreTitle`),children:[(0,A.jsx)(m,{className:`size-3`}),` `,E(`activity:memoryManager.actionRecover`)]}),O&&e.supersededByActiveId&&o&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>o(e.supersededByActiveId),className:`h-7 gap-1 px-2 text-[11px]`,title:E(`activity:memoryManager.supersededJumpTitle`),children:[(0,A.jsx)(i,{className:`size-3`}),` `,E(`activity:memoryManager.actionGoToActive`)]}),k&&(u||f||h||g)&&(0,A.jsxs)(A.Fragment,{children:[k.suggestedAction===`delete`&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`destructive`,disabled:N,onClick:()=>u?.(k.candidateId,e.memory.id),className:`h-7 gap-1 px-2 text-[11px]`,title:E(`activity:memoryManager.acceptSuggestionTitle`),children:[(0,A.jsx)(p,{className:`size-3`}),` `,E(`activity:memoryManager.actionAcceptDeletion`)]}),(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>f?.(k.candidateId,e.memory.id),className:`h-7 gap-1 px-2 text-[11px]`,title:E(`activity:memoryManager.rejectSuggestionTitle`),children:[(0,A.jsx)(c,{className:`size-3`}),` `,E(`activity:memoryManager.actionKeep`)]}),(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>h?.(e.memory.id),className:`h-7 gap-1 px-2 text-[11px]`,title:E(`activity:memoryManager.updateTitle`),children:[(0,A.jsx)(s,{className:`size-3`}),` `,E(`activity:memoryManager.actionUpdate`)]}),g&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`outline`,disabled:N,onClick:()=>g(e.memory.id),className:`h-7 gap-1 border-warning/40 px-2 text-[11px] text-warning hover:bg-warning/10`,title:E(`activity:memoryManager.promoteTitle`),children:[(0,A.jsx)(n,{className:`size-3`}),` `,E(`activity:memoryManager.actionMarkPermanent`)]})]}),o&&!D&&(0,A.jsxs)(v,{type:`button`,size:`sm`,variant:`ghost`,disabled:N,onClick:()=>o(e.memory.id),className:`h-7 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground`,title:E(`activity:memoryManager.openRecordTitle`),children:[(0,A.jsx)(l,{className:`size-3`}),` `,E(`activity:memoryManager.actionShowFull`)]}),b&&(0,A.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 text-[10px] text-muted-foreground`,children:[(0,A.jsx)(d,{className:`size-3 animate-spin`}),` `,b]})]})]})}function P({icon:e,title:r,count:i,matches:a,cursorBoosted:o=!1,...s}){let{t:c}=t(),l=b(a,10);return a.length===0?null:(0,A.jsxs)(`section`,{className:`flex flex-col gap-1.5`,children:[(0,A.jsxs)(`h3`,{className:`flex items-center gap-1.5 px-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,A.jsx)(e,{className:`size-3`}),(0,A.jsx)(`span`,{children:r}),(0,A.jsxs)(`span`,{className:`font-mono`,children:[`(`,i,`)`]}),o&&(0,A.jsxs)(`span`,{className:`ml-auto flex items-center gap-0.5 font-mono text-[9px] text-primary`,children:[(0,A.jsx)(n,{className:`size-2.5`}),` `,c(`activity:memoryManager.cursorBoostTitle`)]})]}),(0,A.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:l.pageItems.map(e=>(0,A.jsx)(N,{match:e,cursorBoosted:o&&(e.matchedVia===`anchor_symbol`||e.matchedVia===`scope_symbol`),pendingAction:s.pendingActionById.get(e.memory.id),...s},e.memory.id))}),(0,A.jsx)(y,{page:l.page,pageSize:l.pageSize,totalItems:l.totalItems,onPageChange:l.setPage,compact:!0,itemLabel:c(`activity:memoryManager.itemLabel`)})]})}function F({filePath:e,lineStart:r,lineEnd:i,open:s,onClose:c,onShowMemory:u,onAcceptDeletion:d,onKeep:p,onUpdate:g,onMarkPermanent:y,onRecover:b}){let{t:x}=t(),[S,C]=(0,E.useState)(!1),[w,T]=(0,E.useState)(new Map),D={accepting:x(`activity:memoryManager.pendingAccepting`),keeping:x(`activity:memoryManager.pendingKeeping`),updating:x(`activity:memoryManager.pendingUpdating`),marking:x(`activity:memoryManager.pendingMarking`),recovering:x(`activity:memoryManager.pendingRecovering`)},{data:O,loading:j,error:M,refetch:N}=k({filePath:e,lineStart:r,lineEnd:i,showDeleted:S,autoFetch:s}),F=r!==void 0&&i!==void 0,L=(0,E.useCallback)(async(e,t,n)=>{if(n){T(n=>new Map(n).set(e,t));try{await n(e)}finally{T(t=>{let n=new Map(t);return n.delete(e),n})}}},[]);if((0,E.useEffect)(()=>{C(!1)},[e]),!s)return null;let R=O,z=R?.totalCount??0;return(0,A.jsxs)(`aside`,{className:`flex h-full min-h-0 w-full flex-col border-l border-border/70 bg-card/15`,"aria-label":x(`activity:memoryManager.fileDrawerAria`),"data-file-path":e??``,children:[(0,A.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-border/60 px-3 py-2`,children:[(0,A.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] uppercase tracking-wide text-muted-foreground`,children:[(0,A.jsx)(o,{className:`size-3`}),(0,A.jsx)(`span`,{className:`truncate font-mono`,title:e??``,children:e??x(`activity:memoryManager.noFile`)})]}),(0,A.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-2 text-[10px] text-muted-foreground`,children:[(0,A.jsx)(`span`,{className:`font-mono`,children:x(`activity:memoryManager.memoriesCount`,{count:z})}),R&&R.reviewPendingCount>0&&(0,A.jsxs)(`span`,{className:`flex items-center gap-0.5 font-mono text-warning`,children:[(0,A.jsx)(a,{className:`size-3`}),x(`activity:memoryManager.pendingReviewCount`,{count:R.reviewPendingCount})]}),R&&R.supersededCount>0&&(0,A.jsx)(`span`,{className:`font-mono`,children:x(`activity:memoryManager.supersededCount`,{count:R.supersededCount})})]})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,A.jsx)(v,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>N(),disabled:j||!e,className:`h-7 w-7 p-0`,"aria-label":x(`common:action.refresh`),title:x(`activity:memoryManager.requeryTitle`),children:(0,A.jsx)(m,{className:_(`size-3.5`,j&&`animate-spin`)})}),(0,A.jsx)(v,{type:`button`,size:`sm`,variant:`ghost`,onClick:c,className:`h-7 w-7 p-0`,"aria-label":x(`activity:memoryManager.closeDrawerAria`),title:x(`activity:memoryManager.closeDrawerTitle`),children:(0,A.jsx)(h,{className:`size-3.5`})})]})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border/40 bg-background/40 px-3 py-1.5 text-[10px] text-muted-foreground`,children:[(0,A.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5`,children:[(0,A.jsx)(`input`,{type:`checkbox`,checked:S,onChange:e=>C(e.target.checked),className:`size-3 accent-primary`,disabled:!e,"data-testid":`memory-drawer-show-deleted`}),S?(0,A.jsx)(l,{className:`size-3`}):(0,A.jsx)(f,{className:`size-3`}),(0,A.jsx)(`span`,{children:x(`activity:memoryManager.showRecoverable`)})]}),F&&(0,A.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-mono text-[10px] text-primary`,children:[(0,A.jsx)(n,{className:`size-3`}),` `,x(`activity:memoryManager.linesRange`,{start:r,end:i})]})]}),(0,A.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto px-3 py-3`,children:e?j&&!R?(0,A.jsx)(I,{loading:!0,message:x(`activity:memoryManager.loadingMemories`)}):M?(0,A.jsx)(I,{tone:`error`,message:x(`activity:memoryManager.errorPrefix`,{message:M})}):!R||z===0?(0,A.jsx)(I,{message:x(`activity:memoryManager.emptyNoMemories`,{file:e})}):(0,A.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,A.jsx)(P,{icon:n,title:x(`activity:memoryManager.cursorBoostTitle`),count:R.symbolMatches.length,cursorBoosted:F,matches:R.symbolMatches,pendingActionById:w,onShowMemory:u,onAcceptDeletion:(e,t)=>L(t,D.accepting,()=>d?.(e,t)),onKeep:(e,t)=>L(t,D.keeping,()=>p?.(e,t)),onUpdate:e=>L(e,D.updating,()=>g?.(e)),onMarkPermanent:e=>L(e,D.marking,()=>y?.(e)),onRecover:e=>L(e,D.recovering,()=>b?.(e))}),(0,A.jsx)(P,{icon:o,title:x(`activity:memoryManager.fileScopedTitle`),count:R.primaryMatches.length,matches:R.primaryMatches,pendingActionById:w,onShowMemory:u,onAcceptDeletion:(e,t)=>L(t,D.accepting,()=>d?.(e,t)),onKeep:(e,t)=>L(t,D.keeping,()=>p?.(e,t)),onUpdate:e=>L(e,D.updating,()=>g?.(e)),onMarkPermanent:e=>L(e,D.marking,()=>y?.(e)),onRecover:e=>L(e,D.recovering,()=>b?.(e))}),(0,A.jsx)(P,{icon:l,title:x(`activity:memoryManager.mentionedInTitle`),count:R.relatedMatches.length,matches:R.relatedMatches,pendingActionById:w,onShowMemory:u,onAcceptDeletion:(e,t)=>L(t,D.accepting,()=>d?.(e,t)),onKeep:(e,t)=>L(t,D.keeping,()=>p?.(e,t)),onUpdate:e=>L(e,D.updating,()=>g?.(e)),onMarkPermanent:e=>L(e,D.marking,()=>y?.(e)),onRecover:e=>L(e,D.recovering,()=>b?.(e))})]}):(0,A.jsx)(I,{message:x(`activity:memoryManager.emptyOpenFile`)})})]})}function I({message:e,loading:t=!1,tone:n=`default`}){return(0,A.jsxs)(`div`,{className:_(`flex min-h-[120px] flex-col items-center justify-center gap-2 rounded-md border border-dashed border-border/60 px-4 py-6 text-center text-[11px]`,n===`error`?`text-destructive`:`text-muted-foreground`),children:[t&&(0,A.jsx)(d,{className:`size-4 animate-spin`}),(0,A.jsx)(`p`,{children:e})]})}export{F as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ba as t,Br as n,Ea as r,Fi as i,Ft as a,Ga as o,Ma as s,Nn as c,Or as l,Ot as u,Pn as d,Pr as f,Tn as p,Vn as m,Vt as h,Wt as g,Zt as _,_ as v,_a as y,a as b,an as x,da as S,dt as ee,ea as C,f as w,hi as T,i as E,jt as D,kn as O,li as te,lt as ne,n as re,na as ie,or as k,pr as ae,qi as oe,r as se,ra as A,s as j,ua as ce,un as M,xi as le,yn as N}from"./vendor-C_zEzV4N.js";import"./i18n-DiD9Wcep.js";import{t as ue}from"./useWebSocket-DvMcAAgU.js";import{t as P}from"./utils-tsZEnrBH.js";import{I as de}from"./stores-CzgPPQlG.js";import{n as fe}from"./ui-store-xx1NssJI.js";import{a as F,i as pe,n as me,o as he,r as ge,t as I}from"./dialog-BJjDUqb3.js";import{t as L}from"./button-DvpRpKkt.js";import{t as R}from"./input-BtoHcCl9.js";import{c as _e}from"./index-Cnerffls.js";import{t as z}from"./roster-ws-XgkT9mo8.js";import{_ as ve,a as ye,b as be,c as xe,d as Se,f as Ce,g as B,h as we,i as Te,l as Ee,m as V,n as De,o as Oe,p as ke,r as Ae,s as je,t as Me,u as Ne,v as Pe,y as H}from"./shared-B3czc2Dj.js";import{t as Fe}from"./MemoryDrawer-Bivx9AXj.js";var U=ne();function Ie({busyAction:e,deletingId:n,memories:r,onCancel:i,onConfirm:a,onOpenChange:o}){let{t:s}=t();return(0,U.jsx)(I,{open:!!n,onOpenChange:o,children:(0,U.jsxs)(me,{className:`max-w-md`,children:[(0,U.jsxs)(F,{children:[(0,U.jsx)(`span`,{className:`mb-2 flex size-10 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,U.jsx)(D,{className:`size-4`})}),(0,U.jsx)(he,{children:s(`activity:memoryManager.deleteTitle`)}),(0,U.jsx)(ge,{className:`leading-6`,children:s(`activity:deleteMemoryDialog.sageWillMarkTheRecordDeleted`)})]}),(0,U.jsx)(`div`,{className:`border border-border/70 bg-background/45 p-3 text-xs text-muted-foreground`,children:B(r.find(e=>e.id===n)?.text??``,180)}),(0,U.jsxs)(pe,{children:[(0,U.jsx)(L,{variant:`outline`,onClick:i,disabled:e===`delete`,children:s(`common:action.cancel`)}),(0,U.jsxs)(L,{variant:`destructive`,onClick:a,disabled:e===`delete`,children:[e===`delete`?(0,U.jsx)(k,{className:`size-4 animate-spin`}):(0,U.jsx)(D,{className:`size-4`}),s(e===`delete`?`activity:memoryManager.deletingLabel`:`activity:memoryManager.actionDeleteMemory`)]})]})]})})}var W=e(o(),1),G=212,Le=188;function Re(e){return e.length>14?`${e.slice(0,11)}…`:e}function ze(e,t=58){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function K(e){return e.type===`symbol`?[e.path,e.symbol?`#${e.symbol}`:``].filter(Boolean).join(``):e.path??e.command??e.symbol??e.role??e.type}function q(e){return e===`active`?`border-success/45 bg-success/10 text-success`:e===`stale`?`border-warning/45 bg-warning/10 text-warning`:e===`contradicted`?`border-destructive/45 bg-destructive/10 text-destructive`:e===`superseded`?`border-warning/35 bg-warning/5 text-warning`:`border-border bg-muted/55 text-muted-foreground`}function Be({data:e}){let{entry:t,center:n}=e;return(0,U.jsxs)(`div`,{className:n?`border border-primary/70 bg-card px-3 py-2.5 text-card-foreground shadow-[0_0_0_1px_hsl(var(--primary)/0.2),0_0_24px_hsl(var(--primary)/0.12)]`:`border border-border/80 bg-card/95 px-3 py-2.5 text-card-foreground shadow-lg`,style:{width:G},title:t.text,children:[(0,U.jsx)(j,{type:`target`,position:v.Top,className:`!border-background !bg-muted-foreground`}),(0,U.jsx)(j,{type:`source`,position:v.Bottom,className:`!border-background !bg-primary`}),(0,U.jsx)(j,{type:`source`,position:v.Right,className:`!border-background !bg-primary`}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`border px-1.5 py-0.5 text-[9px] font-bold uppercase ${q(t.status)}`,children:t.status}),(0,U.jsx)(`span`,{className:`ml-auto truncate font-mono text-[9px] text-muted-foreground`,children:Re(t.id)})]}),(0,U.jsx)(`p`,{className:`mt-2 line-clamp-2 text-[11px] leading-4 text-foreground/90`,children:ze(t.text)}),(0,U.jsx)(`p`,{className:`mt-1 font-mono text-[9px] uppercase text-muted-foreground`,children:t.kind})]})}function J({data:e}){return(0,U.jsxs)(`div`,{className:`border border-info/40 bg-info/8 px-2.5 py-2 text-card-foreground shadow-lg`,style:{width:Le},title:e.label,children:[(0,U.jsx)(j,{type:`target`,position:v.Left,className:`!border-background !bg-info`}),(0,U.jsx)(`p`,{className:`font-mono text-[9px] font-bold uppercase text-info`,children:e.anchor.type}),(0,U.jsx)(`p`,{className:`mt-1 truncate font-mono text-[10px] text-foreground/85`,children:e.label})]})}var Y={memoryNode:Be,anchorNode:J};function X(e,t){return{id:e,revision:0,scope:`project`,kind:`fact`,status:`deleted`,text:t(`activity:memoryManager.memoryUnavailable`),importance:0,confidence:0,freshness:0,tags:[],anchors:[],createdAt:``,updatedAt:``}}function Ve({nodes:e,edges:t,className:n}){return(0,U.jsx)(`div`,{className:P(`w-full`,n),children:(0,U.jsxs)(w,{nodes:e,edges:t,nodeTypes:Y,fitView:!0,fitViewOptions:{padding:.24,maxZoom:1.05},minZoom:.4,maxZoom:1.5,nodesConnectable:!1,elementsSelectable:!1,panOnScroll:!1,zoomOnScroll:!1,proOptions:{hideAttribution:!0},children:[(0,U.jsx)(se,{variant:E.Dots,gap:18,size:1,color:`hsl(var(--muted-foreground) / 0.18)`}),(0,U.jsx)(b,{showInteractive:!1,className:`!border-border !bg-card !shadow-lg`})]})})}function He({centerMemory:e,allMemories:n,graphEdges:r,loading:i=!1,error:a=null}){let{t:o}=t(),[s,c]=(0,W.useState)(!1),l=`mem:${e.id}`,u=(0,W.useMemo)(()=>r.filter(e=>e.from===l&&e.to.startsWith(`mem:`)||e.to===l&&e.from.startsWith(`mem:`)).slice(0,24),[l,r]),{nodes:d,edges:f}=(0,W.useMemo)(()=>{let t=[],r=[],i=new Map(n.map(e=>[e.id,e]));t.push({id:e.id,type:`memoryNode`,position:{x:320-G/2,y:120},data:{entry:e,center:!0}});let a=[...e.supersededBy?[{id:e.supersededBy,relation:`superseded by`}]:[],...(e.supersedes??[]).map(e=>({id:e,relation:`supersedes`})),...(e.contradicts??[]).map(e=>({id:e,relation:`contradicts`}))];for(let e of u){let t=(e.from===l?e.to:e.from).slice(4);a.some(n=>n.id===t&&n.relation===e.relation)||a.push({id:t,relation:e.relation,weight:e.weight,evidence:e.evidence})}let s=320-(a.length-1)*220/2;return a.forEach((n,a)=>{let c=i.get(n.id)??X(n.id,o),l=n.relation===`superseded by`,u=l?0:280+Math.floor(a/3)*130,d=l?320-G/2:s+a*220-G/2;t.push({id:`memory:${n.id}:${a}`,type:`memoryNode`,position:{x:d,y:u},data:{entry:c,center:!1}});let f=n.relation===`contradicts`,p=l?`memory:${n.id}:${a}`:e.id,m=l?e.id:`memory:${n.id}:${a}`;r.push({id:`relation:${n.relation}:${n.id}:${a}`,source:p,target:m,type:`smoothstep`,animated:!f,label:n.weight===void 0?n.relation:`${n.relation} ${n.weight.toFixed(2)}`,data:{evidence:n.evidence??[]},style:{stroke:f?`hsl(var(--destructive))`:`hsl(var(--primary))`,strokeWidth:1.7,...f?{strokeDasharray:`5 4`}:{}},labelStyle:{fill:f?`hsl(var(--destructive))`:`hsl(var(--muted-foreground))`,fontSize:9,fontWeight:700},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.9}})}),e.anchors.forEach((n,i)=>{let a=`anchor:${i}`;t.push({id:a,type:`anchorNode`,position:{x:540,y:120+(i-(e.anchors.length-1)/2)*66},data:{anchor:n,label:K(n)}}),r.push({id:`anchor-edge:${i}`,source:e.id,target:a,type:`smoothstep`,style:{stroke:`hsl(var(--info))`,strokeWidth:1.3}})}),{nodes:t,edges:r}},[n,e,l,u]);return d.length<=1&&!i&&!a?null:(0,U.jsxs)(`section`,{className:`overflow-hidden border border-border/75 bg-background/35`,"aria-label":o(`activity:memoryManager.graphAria`),children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/70 bg-card/55 px-3 py-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`p`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:o(`activity:memoryManager.graphHeading`)}),d.length>1&&(0,U.jsxs)(L,{variant:`ghost`,size:`sm`,onClick:()=>c(!0),className:`h-6 gap-1 px-2 text-[9px] font-bold uppercase tracking-[0.12em]`,"aria-label":o(`activity:memoryManager.graphFullscreenAria`),children:[(0,U.jsx)(T,{className:`size-3`}),o(`activity:memoryManager.graphOpenFullscreen`)]})]}),(0,U.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:i?o(`activity:memoryManager.loadingGraph`):o(`activity:memoryManager.graphStats`,{nodes:d.length,edges:f.length})})]}),a&&(0,U.jsx)(`p`,{className:`border-b border-destructive/25 bg-destructive/5 px-3 py-2 text-[10px] text-destructive`,children:a}),d.length>1&&(0,U.jsx)(Ve,{nodes:d,edges:f,className:`h-[320px]`}),u.some(e=>e.evidence?.length)&&(0,U.jsx)(`div`,{className:`grid gap-1 border-t border-border/70 bg-card/35 px-3 py-2`,children:u.filter(e=>e.evidence?.length).slice(0,12).map(e=>{let t=(e.from===l?e.to:e.from).slice(4);return(0,U.jsxs)(`p`,{className:`truncate font-mono text-[9px] text-muted-foreground`,children:[(0,U.jsx)(`span`,{className:`text-info`,children:e.relation}),` `,Re(t),` · why:`,` `,e.evidence?.join(`, `)]},e.id)})}),s&&(0,U.jsx)(I,{open:s,onOpenChange:c,children:(0,U.jsxs)(me,{className:`flex max-h-[90dvh] max-w-[90vw] flex-col p-0`,showCloseButton:!1,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/70 bg-card/55 px-4 py-3`,children:[(0,U.jsx)(`p`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:o(`activity:memoryManager.graphHeadingFull`,{id:e.id})}),(0,U.jsx)(L,{variant:`ghost`,size:`sm`,onClick:()=>c(!1),className:`h-7 gap-1 px-2 text-[10px]`,children:o(`common:action.close`)})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 px-4 pb-4`,children:(0,U.jsx)(Ve,{nodes:d,edges:f,className:`h-[65vh]`})})]})})]})}function Z({memory:e,allMemories:n,relatedMemories:a,graphEdges:o,graphLoading:s,graphError:c,onClose:l,onOpenMemory:u,onEdit:d,onDelete:f,onTagSelect:p,onNotice:m}){let{t:h}=t();return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-b border-border/70 bg-card/65 px-4 py-3 backdrop-blur-xl`,children:[(0,U.jsx)(L,{variant:`ghost`,size:`icon`,className:`md:hidden`,onClick:l,"aria-label":h(`activity:memoryManager.backToList`),children:(0,U.jsx)(r,{className:`size-4`})}),(0,U.jsx)(`span`,{className:P(`text-[10px] font-bold uppercase tracking-[0.14em]`,we(e.kind)),children:Ae[e.kind]??e.kind}),(0,U.jsx)(Ee,{status:e.status}),(0,U.jsx)(`span`,{className:`border border-border/70 px-2 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:e.scope}),e.audience&&(0,U.jsxs)(`span`,{className:`flex items-center gap-1 border border-primary/30 bg-primary/10 px-2 py-0.5 font-mono text-[9px] text-primary`,title:ke(e.audience),children:[(0,U.jsx)(S,{className:`size-3`}),ke(e.audience)]}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-1.5`,children:[(0,U.jsx)(L,{variant:`ghost`,size:`icon`,"aria-label":h(`activity:memoryManager.copyId`),title:h(`activity:memoryManager.copyId`),onClick:()=>{navigator.clipboard?.writeText(e.id),m(h(`activity:memoryManager.copiedNotice`))},children:(0,U.jsx)(i,{className:`size-4`})}),(0,U.jsxs)(L,{variant:`outline`,size:`sm`,onClick:()=>d(e.id),disabled:e.status===`deleted`,children:[(0,U.jsx)(O,{className:`size-3.5`}),` `,h(`common:action.edit`)]}),(0,U.jsxs)(L,{variant:`destructive`,size:`sm`,onClick:f,disabled:e.status===`deleted`,children:[(0,U.jsx)(D,{className:`size-3.5`}),` `,h(`common:action.delete`)]})]})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-4 md:p-5`,children:(0,U.jsxs)(`div`,{className:`mx-auto max-w-5xl space-y-5`,children:[(0,U.jsx)(Ue,{memory:e}),(0,U.jsx)(Q,{memory:e}),e.tags.length>0&&(0,U.jsx)(We,{tags:e.tags,onTagSelect:p}),e.anchors.length>0&&(0,U.jsx)(Ge,{anchors:e.anchors}),a.length>0&&(0,U.jsx)($,{relatedMemories:a,allMemories:n,onOpenMemory:u}),(0,U.jsx)(He,{centerMemory:e,allMemories:n,graphEdges:o,loading:s,error:c}),(0,U.jsx)(Ke,{memory:e}),e.status===`deleted`&&(0,U.jsx)(qe,{contextPolicy:e.contextPolicy})]})})]})}function Ue({memory:e}){let{t:n}=t();return(0,U.jsxs)(`div`,{className:`relative overflow-hidden border border-border/75 bg-card/55 p-5 shadow-[inset_0_1px_0_hsl(var(--foreground)/0.04)]`,children:[(0,U.jsx)(`div`,{className:`pointer-events-none absolute -right-10 -top-10 size-36 bg-[radial-gradient(circle,hsl(var(--info)/0.13),transparent_68%)]`}),(0,U.jsx)(`p`,{className:`relative whitespace-pre-wrap text-sm leading-7 text-foreground md:text-[15px]`,children:e.text}),e.summary&&(0,U.jsx)(`p`,{className:`relative mt-4 border-l-2 border-info/50 pl-3 text-xs italic leading-5 text-muted-foreground`,children:e.summary}),(0,U.jsxs)(`div`,{className:`relative mt-5 flex flex-wrap items-center gap-2 border-t border-border/60 pt-3`,children:[(0,U.jsx)(`code`,{className:`min-w-0 break-all font-mono text-[10px] text-muted-foreground`,children:e.id}),(0,U.jsx)(`span`,{className:`ml-auto font-mono text-[10px] text-muted-foreground`,children:n(`activity:memoryManager.revisionSuffix`,{n:e.revision})})]})]})}function Q({memory:e}){let{t:n}=t(),r=[[n(`activity:memoryManager.editorImportance`),e.importance,_],[n(`activity:memoryManager.editorConfidence`),e.confidence,oe],[n(`activity:memoryManager.editorFreshness`),e.freshness,N]];return(0,U.jsx)(`div`,{className:`grid gap-px bg-border/60 sm:grid-cols-3`,children:r.map(([e,t,n])=>(0,U.jsxs)(`div`,{className:`bg-card/60 p-3`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(n,{className:`size-3.5 text-info`}),(0,U.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.13em] text-muted-foreground`,children:e}),(0,U.jsxs)(`span`,{className:`ml-auto font-mono text-xs font-bold tabular-nums`,children:[Math.round(t*100),`%`]})]}),(0,U.jsx)(`div`,{className:`mt-2 h-1 bg-muted`,children:(0,U.jsx)(`div`,{className:`h-full bg-info shadow-[0_0_8px_hsl(var(--info)/0.45)]`,style:{width:`${Math.round(t*100)}%`}})})]},e))})}function We({tags:e,onTagSelect:n}){let{t:r}=t();return(0,U.jsxs)(`section`,{children:[(0,U.jsxs)(`h3`,{className:`mb-2 flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,U.jsx)(a,{className:`size-3.5 text-info`}),` `,r(`activity:memoryManager.tagsLabel`)]}),(0,U.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:`border border-info/25 bg-info/5 px-2 py-1 font-mono text-[10px] text-info hover:border-info/55 hover:bg-info/10`,children:[`#`,e]},e))})]})}function Ge({anchors:e}){let{t:n}=t();return(0,U.jsxs)(`section`,{className:`border border-border/75 bg-card/40`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/65 px-3 py-2.5`,children:[(0,U.jsxs)(`h3`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,U.jsx)(te,{className:`size-3.5 text-info`}),` `,n(`activity:memoryManager.editorAnchors`)]}),(0,U.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e.length})]}),(0,U.jsx)(`ul`,{className:`divide-y divide-border/55`,children:e.map((e,t)=>(0,U.jsxs)(`li`,{className:`flex min-w-0 items-start gap-3 px-3 py-2.5`,children:[(0,U.jsx)(`span`,{className:`mt-0.5 flex size-7 shrink-0 items-center justify-center border border-info/25 bg-info/5 text-info`,children:e.type===`command`?(0,U.jsx)(h,{className:`size-3.5`}):(0,U.jsx)(te,{className:`size-3.5`})}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:`text-[9px] font-bold uppercase text-muted-foreground`,children:e.type}),(0,U.jsxs)(`p`,{className:`mt-0.5 break-all font-mono text-[10px] leading-4 text-foreground/85`,children:[e.path??e.command??e.role??`—`,e.symbol?`#${e.symbol}`:``]})]}),(e.lineStart||e.lineEnd)&&(0,U.jsxs)(`span`,{className:`ml-auto shrink-0 font-mono text-[9px] text-muted-foreground`,children:[`L`,e.lineStart??`?`,`–`,e.lineEnd??`?`]})]},`${e.type}:${e.path??e.command??e.symbol??e.role}:${t}`))})]})}function $({relatedMemories:e,allMemories:n,onOpenMemory:r}){let{t:i}=t();return(0,U.jsxs)(`section`,{className:`border border-border/75 bg-card/40`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/65 px-3 py-2.5`,children:[(0,U.jsxs)(`h3`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,U.jsx)(f,{className:`size-3.5 text-info`}),` `,i(`activity:memoryManager.memoryRelationships`)]}),(0,U.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e.length})]}),(0,U.jsx)(`ul`,{className:`divide-y divide-border/55`,children:e.map(e=>{let t=n.find(t=>t.id===e.id);return(0,U.jsx)(`li`,{children:(0,U.jsxs)(`button`,{type:`button`,disabled:!t,onClick:()=>t&&r(t.id),className:`group flex w-full min-w-0 items-center gap-3 px-3 py-2.5 text-left hover:bg-info/5 disabled:cursor-not-allowed disabled:opacity-55`,children:[(0,U.jsx)(`span`,{className:P(`w-24 shrink-0 text-[9px] font-bold uppercase`,e.relation===`Contradicts`?`text-destructive`:`text-info`),children:e.relation}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs`,children:t?B(t.text,95):i(`activity:memoryManager.referencedUnavailable`)}),(0,U.jsx)(`code`,{className:`hidden max-w-32 truncate font-mono text-[9px] text-muted-foreground sm:block`,children:e.id}),t&&(0,U.jsx)(C,{className:`size-3.5 shrink-0 text-muted-foreground group-hover:text-info`})]})},`${e.relation}:${e.id}`)})})]})}function Ke({memory:e}){let{t:n}=t(),r=[[n(`activity:memoryManager.metaCreated`),V(e.createdAt),y],[n(`activity:memoryManager.metaUpdated`),V(e.updatedAt),N],[n(`activity:memoryManager.metaLastAccessed`),V(e.lastAccessedAt),m],[n(`activity:memoryManager.metaLastVerified`),V(e.lastVerifiedAt),_]];return(0,U.jsx)(`section`,{className:`grid gap-px bg-border/60 sm:grid-cols-2 lg:grid-cols-4`,children:r.map(([e,t,n])=>(0,U.jsxs)(`div`,{className:`bg-card/50 p-3`,children:[(0,U.jsx)(n,{className:`size-3.5 text-muted-foreground`}),(0,U.jsx)(`p`,{className:`mt-2 text-[9px] font-bold uppercase tracking-[0.12em] text-muted-foreground`,children:e}),(0,U.jsx)(`p`,{className:`mt-1 text-[10px] leading-4 text-foreground/85`,children:t})]},e))})}function qe({contextPolicy:e}){let{t:n}=t();return(0,U.jsxs)(`div`,{className:`flex items-start gap-3 border border-border bg-muted/50 p-4 text-xs text-muted-foreground`,children:[(0,U.jsx)(s,{className:`mt-0.5 size-4 shrink-0`}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`font-bold text-foreground`,children:n(`activity:memoryManager.deletedMemory`)}),(0,U.jsx)(`p`,{className:`mt-1 leading-5`,children:n(e===`never`?`activity:memoryManager.deletedNeverPolicy`:`activity:memoryManager.deletedEligiblePolicy`)})]})]})}function Je({currentFilePath:e,knownFilePaths:n,drawerActive:r,onFilePathChange:i,onToggleDrawer:a}){let{t:o}=t();return(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border/60 bg-card/30 px-3 py-1.5`,children:[(0,U.jsx)(`span`,{className:`text-[10px] uppercase tracking-wide text-muted-foreground`,children:o(`activity:memoryManager.fileDrawerLabel`)}),(0,U.jsx)(`input`,{type:`text`,list:`memory-drawer-file-list`,value:e??``,onChange:e=>{i(e.target.value.trim()||null)},placeholder:o(`activity:memoryManager.selectFilePlaceholder`),className:`min-w-0 max-w-[260px] flex-1 truncate rounded-sm border border-border/60 bg-background px-1.5 py-0.5 text-[10px] font-mono`,"aria-label":o(`activity:memoryManager.fileForDrawerAria`),"data-testid":`memory-drawer-file-select`}),(0,U.jsx)(`datalist`,{id:`memory-drawer-file-list`,children:[...n].sort().map(e=>(0,U.jsx)(`option`,{value:e},e))}),(0,U.jsxs)(L,{type:`button`,size:`sm`,variant:r?`default`:`outline`,onClick:a,disabled:!e,className:`h-7 shrink-0 gap-1 px-2 text-[11px]`,"aria-pressed":r,title:o(r?`activity:memoryManager.hideFileDrawer`:`activity:memoryManager.showFileDrawer`),children:[r?(0,U.jsx)(d,{className:`size-3`}):(0,U.jsx)(c,{className:`size-3`}),o(r?`activity:memoryManager.hideDrawer`:`activity:memoryManager.showDrawer`)]})]})}function Ye({mode:e,draft:n,busy:r,error:i,onChange:a,onCancel:o,onSubmit:s}){let{t:c}=t(),l=(0,W.useRef)(null),[d,f]=(0,W.useState)([]);(0,W.useEffect)(()=>{l.current?.focus();let e=new AbortController;return z(`agent-roster.list`,{},e.signal).then(e=>{let t=e.roles;Array.isArray(t)&&f(t.filter(e=>typeof e==`string`))}).catch(()=>void 0),()=>e.abort()},[]);let m=(e,t)=>{a({...n,[e]:t})},h=()=>{m(`anchors`,[...n.anchors,{type:`file`,path:``}])};return(0,U.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col`,onSubmit:e=>{e.preventDefault(),s()},"aria-busy":r,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-b border-border/70 bg-card/70 px-4 py-3 backdrop-blur-xl`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`flex size-8 items-center justify-center border border-info/35 bg-info/10 text-info`,children:e===`create`?(0,U.jsx)(g,{className:`size-4`}):(0,U.jsx)(O,{className:`size-4`})}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:`truncate text-sm font-bold`,children:c(e===`create`?`activity:memoryManager.captureMemory`:`activity:memoryManager.editMemory`)}),(0,U.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:c(e===`create`?`activity:memoryManager.editorCreateHint`:`activity:memoryManager.editorEditHint`)})]})]}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,U.jsxs)(L,{type:`button`,variant:`ghost`,size:`sm`,onClick:o,disabled:r,children:[(0,U.jsx)(ee,{className:`size-3.5`}),` `,c(`common:action.cancel`)]}),(0,U.jsxs)(L,{type:`submit`,size:`sm`,disabled:r||!n.text.trim(),children:[r?(0,U.jsx)(k,{className:`size-3.5 animate-spin`}):e===`create`?(0,U.jsx)(p,{className:`size-3.5`}):(0,U.jsx)(M,{className:`size-3.5`}),c(r?`common:action.saving`:e===`create`?`activity:memoryManager.createMemory`:`activity:memoryManager.saveChanges`)]})]})]}),(0,U.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto overscroll-contain p-4 md:p-5`,children:(0,U.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-5`,children:[i&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-2 border border-destructive/40 bg-destructive/10 px-3 py-2.5 text-sm text-destructive`,children:[(0,U.jsx)(u,{className:`mt-0.5 size-4 shrink-0`}),(0,U.jsx)(`span`,{children:i})]}),(0,U.jsxs)(`section`,{className:`border border-border/75 bg-card/45 p-4`,children:[(0,U.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:c(`activity:memoryManager.editorKnowledge`)}),(0,U.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:c(`activity:memEditor.writeTheDurableFactOrDecision`)})]}),(0,U.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground tabular-nums`,children:c(`activity:memoryManager.editorCharCount`,{count:n.text.length})})]}),(0,U.jsx)(`label`,{htmlFor:`memory-text`,className:`sr-only`,children:c(`activity:memoryManager.editorContentLabel`)}),(0,U.jsx)(`textarea`,{ref:l,id:`memory-text`,value:n.text,onChange:e=>m(`text`,e.target.value),rows:7,required:!0,placeholder:c(`activity:memoryManager.editorContentPlaceholder`),className:`min-h-36 w-full resize-y border border-input bg-background/75 px-3 py-3 text-sm leading-6 text-foreground shadow-inner placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`})]}),(0,U.jsxs)(`section`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:[(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`label`,{htmlFor:`memory-kind`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorKind`)}),(0,U.jsx)(`select`,{id:`memory-kind`,value:n.kind,onChange:e=>m(`kind`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:Te.map(e=>(0,U.jsx)(`option`,{value:e,children:Ae[e]},e))})]}),e===`create`?(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`label`,{htmlFor:`memory-scope`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorScope`)}),(0,U.jsx)(`select`,{id:`memory-scope`,value:n.scope,onChange:e=>m(`scope`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:ye.map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))})]}):(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`label`,{htmlFor:`memory-status`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorLifecycleStatus`)}),(0,U.jsx)(`select`,{id:`memory-status`,value:n.status,onChange:e=>m(`status`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:De.map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))})]}),(0,U.jsxs)(`div`,{className:P(`min-w-0`,e===`create`?`sm:col-span-2 lg:col-span-1`:``),children:[(0,U.jsx)(`label`,{htmlFor:`memory-tags`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.tagsLabel`)}),(0,U.jsx)(R,{id:`memory-tags`,value:n.tags,onChange:e=>m(`tags`,e.target.value),placeholder:c(`activity:memEditor.architectureWebuiWorkflow`),className:`h-10 bg-background`})]})]}),(0,U.jsxs)(`section`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,U.jsx)(xe,{id:`memory-importance`,label:c(`activity:memoryManager.editorImportance`),value:n.importance,onChange:e=>m(`importance`,e)}),(0,U.jsx)(xe,{id:`memory-confidence`,label:c(`activity:memoryManager.editorConfidence`),value:n.confidence,onChange:e=>m(`confidence`,e)}),(0,U.jsx)(xe,{id:`memory-freshness`,label:c(`activity:memoryManager.editorFreshness`),value:n.freshness,onChange:e=>m(`freshness`,e)})]}),(0,U.jsxs)(`section`,{className:`border border-border/75 bg-card/45 p-4`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:c(`activity:memoryManager.editorAnchors`)}),(0,U.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:c(`activity:memEditor.bindKnowledgeToFilesSymbolsPackages`)})]}),(0,U.jsxs)(L,{type:`button`,variant:`outline`,size:`sm`,onClick:h,children:[(0,U.jsx)(p,{className:`size-3.5`}),` `,c(`activity:memoryManager.addAnchor`)]})]}),n.anchors.length===0?(0,U.jsxs)(`button`,{type:`button`,onClick:h,className:`mt-4 flex w-full items-center justify-center gap-2 border border-dashed border-border px-4 py-7 text-xs text-muted-foreground transition-colors hover:border-info/50 hover:bg-info/5 hover:text-info`,children:[(0,U.jsx)(ae,{className:`size-4`}),` `,c(`activity:memoryManager.noAnchors`)]}):(0,U.jsx)(`div`,{className:`mt-4 space-y-2`,children:n.anchors.map((e,t)=>(0,U.jsxs)(`div`,{className:`grid gap-2 border border-border/65 bg-background/40 p-2 sm:grid-cols-[9rem_minmax(0,1fr)_auto]`,children:[(0,U.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-type-${t}`,children:[`Anchor `,t+1,` type`]}),(0,U.jsx)(`select`,{id:`anchor-type-${t}`,value:e.type,onChange:e=>{let r=e.target.value,i=r===`command`?{type:r,command:``}:r===`agent`?{type:r,role:``}:{type:r,path:``},a=n.anchors.map((e,n)=>n===t?i:e);m(`anchors`,a)},className:`h-10 border border-input bg-background px-2 text-xs`,children:Me.map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))}),(0,U.jsxs)(`div`,{className:P(`grid min-w-0 gap-2`,e.type===`symbol`&&`sm:grid-cols-[minmax(0,1fr)_11rem]`),children:[(0,U.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-value-${t}`,children:[`Anchor `,t+1,` value`]}),(0,U.jsx)(R,{id:`anchor-value-${t}`,list:e.type===`agent`?`memory-agent-role-options`:void 0,value:Ne(e),onChange:e=>{let r=n.anchors.map((n,r)=>r===t?be(n,e.target.value):n);m(`anchors`,r)},placeholder:e.type===`command`?`pnpm test --filter webui`:e.type===`agent`?`reviewer`:`packages/webui/src/App.tsx`,className:`h-10 min-w-0 bg-background font-mono text-xs`}),e.type===`symbol`&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-symbol-${t}`,children:[`Anchor `,t+1,` symbol`]}),(0,U.jsx)(R,{id:`anchor-symbol-${t}`,value:e.symbol??``,onChange:e=>{let r=n.anchors.map((n,r)=>r===t?{...n,symbol:e.target.value}:n);m(`anchors`,r)},placeholder:c(`activity:memoryManager.editorSymbolPlaceholder`),className:`h-10 bg-background font-mono text-xs`})]})]}),(0,U.jsx)(L,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Remove anchor ${t+1}`,onClick:()=>m(`anchors`,n.anchors.filter((e,n)=>n!==t)),children:(0,U.jsx)(D,{className:`size-4 text-destructive`})})]},`${e.type}:${t}`))}),(0,U.jsx)(`datalist`,{id:`memory-agent-role-options`,children:d.map(e=>(0,U.jsx)(`option`,{value:e},e))})]}),(0,U.jsxs)(`section`,{className:`grid gap-3 border border-border/75 bg-card/45 p-4 sm:grid-cols-2`,children:[(0,U.jsxs)(`div`,{className:`sm:col-span-2`,children:[(0,U.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:c(`activity:memoryManager.editorRelationships`)}),(0,U.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:c(`activity:memoryManager.editorRelationshipsHint`)})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-supersedes`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorSupersedes`)}),(0,U.jsx)(R,{id:`memory-supersedes`,value:n.supersedes,onChange:e=>m(`supersedes`,e.target.value),placeholder:c(`activity:memEditor.memIdMemId`),className:`h-10 bg-background font-mono text-xs`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-contradicts`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorContradicts`)}),(0,U.jsx)(R,{id:`memory-contradicts`,value:n.contradicts,onChange:e=>m(`contradicts`,e.target.value),placeholder:c(`activity:memEditor.memIdMemId`),className:`h-10 bg-background font-mono text-xs`})]})]}),(0,U.jsxs)(`section`,{className:`space-y-2`,children:[(0,U.jsx)(`h3`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memEditor.audienceOptional`)}),(0,U.jsx)(`p`,{className:`text-[10px] text-muted-foreground/70`,children:c(`activity:memEditor.targetThisMemoryToSpecificAgent`)}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-audience-roles`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memEditor.roles`)}),(0,U.jsx)(R,{id:`memory-audience-roles`,value:n.audienceRoles,onChange:e=>m(`audienceRoles`,e.target.value),placeholder:c(`activity:memEditor.reviewerRefactorPlanner`),className:`h-9 bg-background font-mono text-xs`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-audience-task-types`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorTaskTypes`)}),(0,U.jsx)(R,{id:`memory-audience-task-types`,value:n.audienceTaskTypes,onChange:e=>m(`audienceTaskTypes`,e.target.value),placeholder:c(`activity:memEditor.reviewRefactorBugfix`),className:`h-9 bg-background font-mono text-xs`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-audience-modes`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memEditor.modes`)}),(0,U.jsx)(R,{id:`memory-audience-modes`,value:n.audienceModes,onChange:e=>m(`audienceModes`,e.target.value),placeholder:c(`activity:memEditor.teachCodeReview`),className:`h-9 bg-background font-mono text-xs`})]})]})]})})]})}function Xe({searchQuery:e,statusFilter:r,kindFilter:i,audienceOnly:o,tagFilter:s,hasFilters:c,allTags:l,stats:u,onSearchChange:d,onStatusFilterChange:f,onKindFilterChange:p,onToggleAudienceOnly:m,onTagFilterChange:h,onClearFilters:g}){let{t:_}=t(),[v,y]=(0,W.useState)(!!s),b=v||!!s,C=l.length>0;return(0,U.jsxs)(`div`,{className:`shrink-0 space-y-2 overflow-hidden border-b border-border/70 bg-card/45 p-3`,children:[(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,U.jsx)(x,{className:`pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground`}),(0,U.jsx)(R,{"aria-label":_(`activity:memoryManager.searchAria`),value:e,onChange:e=>d(e.target.value),placeholder:_(`activity:memoryManager.searchPlaceholder`),className:`h-10 min-w-0 bg-background pl-9 pr-8 text-xs`}),e&&(0,U.jsx)(`button`,{type:`button`,"aria-label":_(`activity:memoryManager.clearSearchAria`),onClick:()=>d(``),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-muted-foreground hover:text-foreground`,children:(0,U.jsx)(ee,{className:`size-3.5`})})]}),(0,U.jsx)(L,{variant:o?`default`:`ghost`,size:`icon`,onClick:m,"aria-label":_(`activity:memoryManager.audienceFilterAria`),title:_(`activity:memoryManager.audienceFilterTitle`),className:`shrink-0`,children:(0,U.jsx)(S,{className:`size-4`})}),c&&(0,U.jsx)(L,{variant:`ghost`,size:`icon`,onClick:g,"aria-label":_(`activity:memoryManager.clearFiltersAria`),title:_(`activity:memoryManager.clearFiltersTitle`),children:(0,U.jsx)(n,{className:`size-4`})})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,U.jsx)(`label`,{className:`sr-only`,htmlFor:`memory-status-filter`,children:_(`activity:memoryManager.filterByStatus`)}),(0,U.jsxs)(`select`,{id:`memory-status-filter`,value:r,onChange:e=>f(e.target.value),className:`h-9 min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,U.jsx)(`option`,{value:`all`,children:_(`activity:memoryManager.allStatuses`)}),Oe.map(e=>(0,U.jsxs)(`option`,{value:e,children:[e,` · `,u?.byStatus[e]??0]},e))]}),(0,U.jsx)(`label`,{className:`sr-only`,htmlFor:`memory-kind-filter`,children:_(`activity:memoryManager.filterByKind`)}),(0,U.jsxs)(`select`,{id:`memory-kind-filter`,value:i,onChange:e=>p(e.target.value),className:`h-9 min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,U.jsx)(`option`,{value:`all`,children:_(`activity:memoryManager.allKinds`)}),Te.map(e=>(0,U.jsxs)(`option`,{value:e,children:[Ae[e],` · `,u?.byKind[e]??0]},e))]})]}),C&&(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>{s||y(e=>!e)},"aria-expanded":b,"aria-controls":`memory-tags-panel`,disabled:!!s,className:P(`flex items-center gap-1.5 px-1 py-0.5 text-[10px] uppercase tracking-wide transition-colors`,b?`text-foreground`:`text-muted-foreground hover:text-foreground`,!!s&&`cursor-default`),title:s?`Active filter: ${s} (click the chip to clear)`:b?`Hide tag filters`:`Show tag filters (${l.length})`,children:[(0,U.jsx)(ie,{className:P(`size-3 transition-transform`,!b&&`-rotate-90`)}),(0,U.jsx)(a,{className:`size-3`}),(0,U.jsx)(`span`,{className:`font-semibold`,children:_(`activity:memoryManager.tagsLabel`)}),(0,U.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:l.length})]}),s&&(0,U.jsx)(`span`,{role:`status`,"aria-label":`Active tag filter: ${s}`,className:`border border-info/55 bg-info/10 px-1 font-mono text-[9px] uppercase text-info`,children:s})]}),C&&b&&(0,U.jsxs)(`fieldset`,{id:`memory-tags-panel`,className:`min-w-0 border-0 p-0`,children:[(0,U.jsx)(`legend`,{className:`sr-only`,children:_(`activity:memoryManager.popularTags`)}),(0,U.jsx)(`div`,{className:`no-scrollbar flex gap-1.5 overflow-x-auto pb-0.5`,children:l.slice(0,18).map(([e,t])=>(0,U.jsxs)(`button`,{type:`button`,"aria-pressed":s===e,onClick:()=>h(s===e?null:e),className:P(`flex shrink-0 items-center gap-1 border px-2 py-1 text-[10px] transition-colors`,s===e?`border-info/55 bg-info/10 text-info`:`border-border/70 bg-background/45 text-muted-foreground hover:border-info/35 hover:text-foreground`),children:[(0,U.jsx)(a,{className:`size-2.5`}),` `,e,(0,U.jsx)(`span`,{className:`font-mono opacity-60`,children:t})]},e))})]})]})}var Ze=100;function Qe({memoryListRef:e,memories:n,filteredMemories:r,selectedId:i,onSelectMemory:a,onOpenCreate:o,onClearFilters:s}){let{t:c}=t(),l=r.length>Ze,u=re({count:r.length,getScrollElement:()=>e.current,estimateSize:()=>100,overscan:8,enabled:l});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-border/60 px-3 py-2 text-[10px] text-muted-foreground`,children:[(0,U.jsx)(`span`,{children:c(`activity:memoryManager.memoryCountSummary`,{shown:r.length,total:n.length})}),(0,U.jsx)(`span`,{className:`font-mono uppercase`,children:c(`activity:memoryManager.updatedSortLabel`)})]}),(0,U.jsx)(`section`,{ref:e,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,"aria-label":c(`activity:memoryManager.listAria`),children:r.length===0?(0,U.jsx)($e,{hasMemories:n.length>0,onOpenCreate:o,onClearFilters:s}):l?(0,U.jsx)(`div`,{style:{height:`${u.getTotalSize()}px`,width:`100%`,position:`relative`},children:u.getVirtualItems().map(e=>{let t=r[e.index];return t?(0,U.jsx)(`div`,{"data-index":e.index,ref:u.measureElement,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${e.start}px)`},children:(0,U.jsx)(et,{memory:t,isSelected:i===t.id,onClick:()=>a(t.id)})},t.id):null})}):r.map(e=>(0,U.jsx)(et,{memory:e,isSelected:i===e.id,onClick:()=>a(e.id)},e.id))})]})}function $e({hasMemories:e,onOpenCreate:r,onClearFilters:i}){let{t:a}=t();return(0,U.jsxs)(`div`,{className:`flex min-h-64 flex-col items-center justify-center px-6 text-center`,children:[(0,U.jsx)(`span`,{className:`flex size-12 items-center justify-center border border-dashed border-border text-muted-foreground`,children:(0,U.jsx)(le,{className:`size-5`})}),(0,U.jsx)(`h2`,{className:`mt-4 text-sm font-bold`,children:a(e?`activity:memoryManager.noMatching`:`activity:memoryManager.buildGraph`)}),(0,U.jsx)(`p`,{className:`mt-1 max-w-xs text-xs leading-5 text-muted-foreground`,children:a(e?`activity:memoryManager.emptyFiltered`:`activity:memoryManager.emptyCapture`)}),(0,U.jsxs)(L,{className:`mt-4`,variant:`outline`,size:`sm`,onClick:e?i:r,children:[e?(0,U.jsx)(n,{className:`size-3.5`}):(0,U.jsx)(p,{className:`size-3.5`}),a(e?`activity:memoryManager.clearFilters`:`activity:memoryManager.createFirst`)]})]})}function et({memory:e,isSelected:t,onClick:n}){return(0,U.jsxs)(`button`,{type:`button`,"aria-current":t?`true`:void 0,onClick:n,className:P(`group relative block w-full border-b border-border/55 px-3 py-3 text-left transition-[background-color,border-color] hover:bg-info/5`,t&&`bg-info/8`),children:[t&&(0,U.jsx)(`span`,{className:`absolute inset-y-0 left-0 w-0.5 bg-info shadow-[0_0_10px_hsl(var(--info)/0.7)]`}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:P(`truncate text-[10px] font-bold uppercase tracking-[0.1em]`,we(e.kind)),children:Ae[e.kind]??e.kind}),(0,U.jsx)(Ee,{status:e.status}),(0,U.jsxs)(`span`,{className:`ml-auto shrink-0 font-mono text-[9px] text-muted-foreground`,children:[`r`,e.revision]})]}),(0,U.jsx)(`p`,{className:P(`mt-2 line-clamp-2 text-xs leading-5 text-foreground/90`,e.status===`deleted`&&`line-through opacity-60`),children:B(e.text)}),(0,U.jsxs)(`div`,{className:`mt-2 flex min-w-0 items-center gap-1.5`,children:[(0,U.jsx)(`span`,{className:`border border-border/60 bg-background/50 px-1.5 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:e.scope}),e.audience&&(0,U.jsxs)(`span`,{className:`flex items-center gap-0.5 border border-primary/30 bg-primary/10 px-1.5 py-0.5 font-mono text-[9px] text-primary`,children:[(0,U.jsx)(S,{className:`size-2.5`}),(e.audience.roles??e.audience.taskTypes??e.audience.modes??[]).slice(0,1)[0]??`scoped`]}),e.tags.slice(0,2).map(e=>(0,U.jsxs)(`span`,{className:`max-w-24 truncate border border-border/60 px-1.5 py-0.5 font-mono text-[9px] text-muted-foreground`,children:[`#`,e]},e)),e.tags.length>2&&(0,U.jsxs)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:[`+`,e.tags.length-2]}),(0,U.jsx)(`span`,{className:`ml-auto shrink-0 text-[9px] text-muted-foreground`,children:Pe(e.updatedAt)}),(0,U.jsx)(C,{className:`size-3 shrink-0 text-muted-foreground transition-transform group-hover:translate-x-0.5 group-hover:text-info`})]})]})}function tt({query:e,channel:n,hits:r,loading:i,error:a,onOpenMemory:o,onClear:s}){let{t:c}=t();return e?(0,U.jsxs)(`section`,{"aria-label":c(`activity:memoryManager.searchBreakdownAria`),className:`border-b border-border/60 bg-card/35`,children:[(0,U.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between border-b border-border/55 px-3 py-2 text-[10px] text-muted-foreground`,children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(g,{className:`size-3 text-info`}),(0,U.jsx)(`span`,{className:`font-mono uppercase tracking-[0.1em]`,children:c(`activity:memoryManager.searchBreakdownTitle`,{query:e})}),n===`breakdown`&&(0,U.jsx)(`span`,{className:`border border-info/40 bg-info/8 px-1.5 py-0.5 font-mono text-[9px] uppercase text-info`,children:c(`activity:memoryManager.searchBreakdownDual`)}),n===`lexical`&&(0,U.jsx)(`span`,{className:`border border-border/60 px-1.5 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:c(`activity:memoryManager.searchBreakdownLexicalOnly`)})]}),(0,U.jsx)(`button`,{type:`button`,onClick:s,className:`font-mono text-[10px] uppercase text-muted-foreground hover:text-foreground`,children:c(`common:action.close`)})]}),i&&(0,U.jsx)(`p`,{className:`px-3 py-3 text-[10px] text-muted-foreground`,children:c(`activity:memoryManager.searchBreakdownLoading`)}),a&&(0,U.jsx)(`p`,{className:`border-t border-border/55 px-3 py-2 text-[10px] text-destructive`,role:`alert`,children:a}),!i&&!a&&r.length===0&&(0,U.jsx)(`p`,{className:`px-3 py-3 text-[10px] text-muted-foreground`,children:c(`activity:memoryManager.searchBreakdownEmpty`)}),(0,U.jsx)(`ul`,{className:`divide-y divide-border/55`,children:r.map(e=>(0,U.jsx)(nt,{hit:e,onOpenMemory:o},e.memory.id))})]}):null}function nt({hit:e,onOpenMemory:n}){let{t:r}=t(),i=rt(e.lexicalScore),a=rt(e.vectorScore),o=rt(e.finalScore),{accent:s,label:c}=it(e.source);return(0,U.jsx)(`li`,{children:(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e.memory.id),className:`group flex w-full min-w-0 items-start gap-3 px-3 py-2.5 text-left hover:bg-info/5`,children:[(0,U.jsx)(`span`,{className:P(`flex size-7 shrink-0 items-center justify-center border font-mono text-[9px] uppercase`,s),title:r(`activity:memoryManager.searchBreakdownSourceLabel`,{source:c}),children:e.source===`vector`?(0,U.jsx)(g,{className:`size-3.5`}):e.source===`both`?(0,U.jsx)(ce,{className:`size-3.5`}):(0,U.jsx)(l,{className:`size-3.5`})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`line-clamp-2 text-[11px] leading-5 text-foreground/90`,children:e.memory.text}),(0,U.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-x-3 gap-y-1 font-mono text-[9px] text-muted-foreground`,children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`L`}),(0,U.jsx)(`span`,{className:`tabular-nums text-foreground/80`,children:i})]}),(0,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`V`}),(0,U.jsx)(`span`,{className:P(`tabular-nums`,e.vectorScore===null?`text-muted-foreground/50`:`text-foreground/80`),children:a})]}),(0,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`RRF`}),(0,U.jsx)(`span`,{className:`tabular-nums font-bold text-foreground`,children:o})]}),(0,U.jsx)(`span`,{className:`ml-auto uppercase text-[9px]`,children:c})]})]})]})})}function rt(e){return e===null?`—`:`${Math.round(e*100)}%`}function it(e){switch(e){case`vector`:return{accent:`border-accent/40 bg-accent/10 text-accent`,label:`vector`};case`both`:return{accent:`border-info/40 bg-info/10 text-info`,label:`both`};default:return{accent:`border-border/60 bg-background text-muted-foreground`,label:`lexical`}}}function at({onCapture:e}){let{t:n}=t();return(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center p-8 text-center`,children:[(0,U.jsxs)(`div`,{className:`relative flex size-20 items-center justify-center border border-info/25 bg-info/5 text-info`,children:[(0,U.jsx)(S,{className:`size-8`}),(0,U.jsx)(`span`,{className:`absolute inset-2 border border-info/10`})]}),(0,U.jsx)(`h2`,{className:`mt-5 text-lg font-bold`,children:n(`activity:memoryManager.emptyTitle`)}),(0,U.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-muted-foreground`,children:n(`activity:memoryManager.emptyBody`)}),(0,U.jsxs)(`div`,{className:`mt-6 grid w-full max-w-lg gap-2 sm:grid-cols-3`,children:[(0,U.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,U.jsx)(A,{className:`mx-auto size-4 text-success`}),(0,U.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:n(`activity:memoryManager.emptyVerifiedAnchors`)})]}),(0,U.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,U.jsx)(S,{className:`mx-auto size-4 text-info`}),(0,U.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:n(`activity:memoryManager.emptyTypedRelations`)})]}),(0,U.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,U.jsx)(p,{className:`mx-auto size-4 text-warning`}),(0,U.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:n(`activity:memoryManager.emptyAgentRecall`)})]})]}),(0,U.jsxs)(L,{onClick:e,children:[(0,U.jsx)(p,{className:`size-4`}),` `,n(`activity:memoryManager.captureButton`)]})]})}function ot({wsConnected:e,refreshing:n,onRefresh:i,onCreate:a}){let{t:o}=t(),s=fe(e=>e.setCurrentView);return(0,U.jsxs)(`header`,{className:`relative shrink-0 overflow-hidden border-b border-border/70 bg-card/72 px-4 py-3 backdrop-blur-xl sm:px-5`,children:[(0,U.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 right-0 w-1/2 bg-[radial-gradient(circle_at_right,hsl(var(--info)/0.11),transparent_68%)]`}),(0,U.jsxs)(`div`,{className:`relative flex flex-wrap items-center gap-3`,children:[(0,U.jsx)(L,{variant:`ghost`,size:`icon`,onClick:()=>s(`chat`),"aria-label":o(`activity:memoryManager.backToChat`),title:o(`activity:memoryManager.backToChat`),children:(0,U.jsx)(r,{className:`size-4`})}),(0,U.jsx)(`span`,{className:`flex size-10 items-center justify-center border border-info/40 bg-info/10 text-info shadow-[0_0_20px_hsl(var(--info)/0.12)]`,children:(0,U.jsx)(S,{className:`size-5`})}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`h1`,{className:`text-base font-bold sm:text-lg`,children:o(`activity:memoryManager.sageHeading`)}),(0,U.jsx)(`span`,{className:`border border-success/35 bg-success/10 px-2 py-0.5 font-mono text-[9px] font-bold uppercase text-success`,children:o(`activity:memoryManager.projectKnowledge`)})]}),(0,U.jsx)(`p`,{className:`mt-0.5 max-w-2xl text-[10px] text-muted-foreground sm:text-xs`,children:o(`activity:memoryManager.sageSubtitle`)})]}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,U.jsxs)(`span`,{className:P(`hidden items-center gap-1.5 border px-2 py-1 font-mono text-[9px] uppercase sm:flex`,e?`border-success/30 text-success`:`border-warning/30 text-warning`),children:[(0,U.jsx)(`span`,{className:`size-1.5 bg-current`}),` `,o(e?`activity:memoryManager.liveStore`:`activity:memoryManager.reconnecting`)]}),(0,U.jsxs)(L,{variant:`outline`,size:`sm`,onClick:i,disabled:n,"aria-label":o(`activity:memoryManager.refreshAria`),children:[(0,U.jsx)(N,{className:P(`size-3.5`,n&&`animate-spin`)}),(0,U.jsx)(`span`,{className:`hidden sm:inline`,children:o(`common:action.refresh`)})]}),(0,U.jsxs)(L,{size:`sm`,onClick:a,children:[(0,U.jsx)(p,{className:`size-3.5`}),` `,o(`activity:memoryManager.newMemory`)]})]})]})]})}function st({stats:e,memories:n,filteredCount:r,allTagsCount:i}){let{t:a}=t(),o=n.filter(e=>e.audience).length,s=new Set;if(o>0){for(let e of n)if(e.audience){for(let t of e.audience.roles??[])s.add(t);for(let t of e.audience.taskTypes??[])s.add(t);for(let t of e.audience.modes??[])s.add(t)}}return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`grid shrink-0 grid-cols-2 gap-px border-b border-border/70 bg-border/60 sm:grid-cols-4`,children:[(0,U.jsx)(je,{label:a(`activity:memoryManager.tabMemories`),value:e?.total??n.length,hint:`${r} visible`}),(0,U.jsx)(je,{label:a(`activity:memoryManager.tabActive`),value:e?.byStatus.active??n.filter(e=>e.status===`active`).length,hint:`retrievable`,tone:`success`}),(0,U.jsx)(je,{label:a(`activity:memoryManager.tabNeedsReview`),value:(e?.byStatus.stale??0)+(e?.byStatus.contradicted??0),hint:a(`activity:memoryManager.staleConflicts`),tone:`warning`}),(0,U.jsx)(`div`,{className:`hidden sm:block`,children:(0,U.jsx)(je,{label:a(`activity:memoryManager.tabGraphEdges`),value:e?.edges??0,hint:`${i} tags`,tone:`info`})})]}),o>0&&(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border/70 bg-primary/5 px-4 py-1.5`,children:[(0,U.jsx)(S,{className:`size-3.5 text-primary`}),(0,U.jsxs)(`span`,{className:`text-[11px] font-medium text-primary`,children:[o,` audience-scoped memory`,o===1?``:`ies`]}),s.size>0&&(0,U.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`(`,[...s].sort().join(`, `),`)`]})]})]})}function ct({listCandidates:e,resolveCandidate:n,onOpenMemory:r,client:i,active:a}){let{t:o}=t(),[s,c]=(0,W.useState)([]),[l,d]=(0,W.useState)(!1),[f,p]=(0,W.useState)(null),[m,h]=(0,W.useState)(null),[g,_]=(0,W.useState)(!1),[v,y]=(0,W.useState)(()=>new Set),b=(0,W.useRef)(0),x=(0,W.useCallback)(()=>{let t=++b.current;d(!0),p(null);let n=i.on(`memory.sage.listCandidates`,e=>{if(t===b.current){if(n(),e.payload.error)p(String(e.payload.error)),c([]);else{let t=(Array.isArray(e.payload.candidates)?e.payload.candidates:[]).filter(e=>e.status===`pending`);c(t),y(e=>{let n=new Set;for(let r of e)t.some(e=>e.id===r)&&n.add(r);return n})}d(!1)}}),r=setTimeout(()=>{t===b.current&&(n(),d(!1),p(o(`activity:memoryManager.reviewLoadTimeout`)))},15e3);return e({includeResolved:!1},{echoToChat:!1}),()=>{clearTimeout(r),n()}},[i,e,o]);(0,W.useEffect)(()=>{if(a)return x()},[a,x]);let S=(0,W.useCallback)((e,t)=>new Promise(r=>{let a=i.on(`memory.sage.candidateResolve`,e=>{a();let t=e.payload.error;r(!t)});n({candidateId:e,action:t,reason:t===`reject`?`Rejected via Memory Review tab`:void 0},{echoToChat:!1}),setTimeout(()=>{a(),r(!1)},15e3)}),[i,n]),C=(0,W.useCallback)(async(e,t)=>{h(e),await S(e,t),h(null),x()},[x,S]),w=(0,W.useCallback)(async e=>{let t=[...v];if(t.length!==0){_(!0);for(let n of t)await S(n,e);_(!1),y(new Set),x()}},[x,S,v]),T=e=>{y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},E=()=>{y(new Set(s.map(e=>e.id)))},D=()=>y(new Set);if(l&&s.length===0)return(0,U.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-2 p-6 text-sm text-muted-foreground`,children:[(0,U.jsx)(k,{className:`size-4 animate-spin`}),o(`activity:memoryManager.reviewLoading`)]});if(f&&s.length===0)return(0,U.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 p-6 text-center`,children:[(0,U.jsx)(u,{className:`size-5 text-warning`}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:f}),(0,U.jsxs)(L,{size:`sm`,variant:`outline`,onClick:()=>x(),children:[(0,U.jsx)(N,{className:`size-3.5`}),` `,o(`common:action.retry`)]})]});if(s.length===0)return(0,U.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-2 p-8 text-center`,children:[(0,U.jsx)(A,{className:`size-6 text-success`}),(0,U.jsx)(`p`,{className:`text-sm font-medium`,children:o(`activity:memoryManager.reviewEmptyTitle`)}),(0,U.jsx)(`p`,{className:`max-w-sm text-xs text-muted-foreground`,children:o(`activity:memoryManager.reviewEmptyHint`)}),(0,U.jsxs)(L,{size:`sm`,variant:`ghost`,onClick:()=>x(),children:[(0,U.jsx)(N,{className:`size-3.5`}),` `,o(`common:action.refresh`)]})]});let O=v.size,te=O===s.length&&s.length>0;return(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-2 border-b border-border/60 px-3 py-2`,children:[(0,U.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`,children:o(`activity:memoryManager.reviewPendingCount`,{count:s.length})}),(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,U.jsx)(L,{size:`sm`,variant:`ghost`,className:`h-7 text-[11px]`,onClick:te?D:E,children:o(te?`activity:memoryManager.reviewClearSelection`:`activity:memoryManager.reviewSelectAll`)}),(0,U.jsxs)(L,{size:`sm`,className:`h-7`,disabled:O===0||g,onClick:()=>void w(`accept`),children:[g?(0,U.jsx)(k,{className:`size-3 animate-spin`}):(0,U.jsx)(A,{className:`size-3`}),o(`activity:memoryManager.reviewBulkAccept`),O>0?` (${O})`:``]}),(0,U.jsxs)(L,{size:`sm`,variant:`outline`,className:`h-7`,disabled:O===0||g,onClick:()=>void w(`reject`),children:[(0,U.jsx)(ee,{className:`size-3`}),o(`activity:memoryManager.reviewBulkKeep`),O>0?` (${O})`:``]}),(0,U.jsx)(L,{size:`sm`,variant:`ghost`,className:`h-7`,onClick:()=>x(),disabled:l,children:(0,U.jsx)(N,{className:P(`size-3.5`,l&&`animate-spin`)})})]})]}),(0,U.jsx)(`ul`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto p-3`,children:s.map(e=>{let t=e.targetMemoryId??e.memoryId,n=e.reviewReason??e.reason??``,i=m===e.id||g,a=v.has(e.id);return(0,U.jsx)(`li`,{className:P(`rounded-md border bg-card/60 p-3 text-sm shadow-sm`,a?`border-primary/50 ring-1 ring-primary/20`:`border-border/70`),children:(0,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-1 size-3.5 accent-primary`,checked:a,disabled:g,onChange:()=>T(e.id),"aria-label":o(`activity:memoryManager.reviewSelectOne`)}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 text-[10px] uppercase tracking-wide text-muted-foreground`,children:[(0,U.jsx)(`span`,{className:`font-mono text-warning`,children:e.suggestedAction??`review`}),(0,U.jsx)(`span`,{children:`·`}),(0,U.jsx)(`span`,{children:Pe(e.createdAt)}),e.tags?.includes(`triage`)&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{children:`·`}),(0,U.jsx)(`span`,{className:`text-info`,children:`triage`})]})]}),(0,U.jsx)(`p`,{className:`mt-1.5 text-[13px] leading-snug text-foreground`,children:B(e.text,220)}),n?(0,U.jsx)(`p`,{className:`mt-1 text-[11px] text-muted-foreground`,children:n}):null,t?(0,U.jsxs)(`button`,{type:`button`,className:`mt-1 font-mono text-[10px] text-primary hover:underline`,onClick:()=>r?.(t),children:[t.slice(0,16),`…`]}):null,(0,U.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:[(0,U.jsxs)(L,{size:`sm`,className:`h-7`,disabled:i,onClick:()=>void C(e.id,`accept`),children:[m===e.id?(0,U.jsx)(k,{className:`size-3 animate-spin`}):(0,U.jsx)(A,{className:`size-3`}),o(`activity:memoryManager.actionAcceptDeletion`)]}),(0,U.jsxs)(L,{size:`sm`,variant:`outline`,className:`h-7`,disabled:i,onClick:()=>void C(e.id,`reject`),children:[(0,U.jsx)(ee,{className:`size-3`}),o(`activity:memoryManager.actionKeep`)]})]})]})]})},e.id)})})]})}function lt(e,t){let n=t.searchQuery.trim().toLowerCase();return e.filter(e=>{if(t.statusFilter!==`all`&&e.status!==t.statusFilter||t.kindFilter!==`all`&&e.kind!==t.kindFilter||t.tagFilter&&!e.tags.includes(t.tagFilter)||t.audienceOnly&&!e.audience)return!1;if(!n)return!0;let r=e.anchors.map(e=>[e.path,e.symbol,e.command,e.role].filter(Boolean).join(` `)).join(` `),i=e.audience?[e.audience.roles?.join(` `)??``,e.audience.taskTypes?.join(` `)??``,e.audience.modes?.join(` `)??``].join(` `):``;return[e.id,e.text,e.summary??``,e.kind,e.scope,e.tags.join(` `),r,i].join(` `).toLowerCase().includes(n)})}function ut(e){let t=new Map;for(let n of e)for(let e of n.tags)t.set(e,(t.get(e)??0)+1);return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0]))}function dt(e){if(!e)return[];let t=[];e.supersededBy&&t.push({relation:`Superseded by`,id:e.supersededBy});for(let n of e.supersedes??[])t.push({relation:`Supersedes`,id:n});for(let n of e.contradicts??[])t.push({relation:`Contradicts`,id:n});return t}var ft=100;function pt(){let{t:e}=t(),{client:n,listSageMemoriesPage:r,listMemoryCandidates:i,rememberSage:a,updateSage:o,deleteSage:s,getSageGraph:c,recoverSage:l,resolveMemoryCandidate:u,searchSageBreakdown:d}=ue(),f=de(e=>e.wsConnected),[p,m]=(0,W.useState)([]),[h,g]=(0,W.useState)(null),[_,v]=(0,W.useState)(!0),[y,b]=(0,W.useState)(!1),[x,S]=(0,W.useState)(null),[ee,C]=(0,W.useState)(null),[w,T]=(0,W.useState)(null),[E,D]=(0,W.useState)(null),[O,te]=(0,W.useState)([]),[ne,re]=(0,W.useState)([]),[ie,k]=(0,W.useState)(null),[ae,oe]=(0,W.useState)(!1),[se,A]=(0,W.useState)(!1),[j,ce]=(0,W.useState)(!1),[M,le]=(0,W.useState)(Ce),[N,P]=(0,W.useState)(Ce),[fe,F]=(0,W.useState)(null),[pe,me]=(0,W.useState)(null),[he,ge]=(0,W.useState)({hits:[],channel:void 0,loading:!1,error:null}),[I,L]=(0,W.useState)(``),[R,_e]=(0,W.useState)(`all`),[z,ye]=(0,W.useState)(`all`),[be,xe]=(0,W.useState)(!1),[B,we]=(0,W.useState)(null),[Te,Ee]=(0,W.useState)(`active`),V=Te===`deleted`,De=Te===`review`,[Oe,ke]=(0,W.useState)(null),[Ae,je]=(0,W.useState)(!1),[Me,Ne]=(0,W.useState)(!1),[Pe,Fe]=(0,W.useState)({}),[U,Ie]=(0,W.useState)(!1),[G,Le]=(0,W.useState)(null),Re=(0,W.useRef)(!1),ze=(0,W.useRef)(0),K=(0,W.useRef)(null),q=(0,W.useRef)(!0),Be=(0,W.useRef)(0),J=(0,W.useRef)(0),Y=(0,W.useRef)(null),X=(0,W.useRef)(null),Ve=(0,W.useMemo)(()=>{let e=new Set;for(let t of p)for(let n of t.anchors??[])n.type===`file`&&n.path&&e.add(n.path);return e},[p]),He=(0,W.useMemo)(()=>JSON.stringify(M)!==JSON.stringify(N),[N,M]),Z=(0,W.useMemo)(()=>p.find(e=>e.id===E)??null,[p,E]),Ue=(0,W.useCallback)(e=>{let t=e!==null,i=++Be.current;Y.current?.(),S(null),t?Ne(!0):(b(!0),Re.current||v(!0));let a=()=>{},o=null,s=!1,c=()=>{s||(s=!0,o!==null&&clearTimeout(o),a(),Y.current===c&&(Y.current=null))};a=n.on(`memory.sage.listPage`,e=>{if(i!==Be.current||!q.current){c();return}if(c(),e.payload.error)S(e.payload.error);else{let n=e.payload.memories??[];m(e=>t?[...e,...n]:n),ke(e.payload.nextCursor??null),je(!!e.payload.nextCursor);let r=e.payload.statusCounts??{};Fe(r);let i=Object.values(r).reduce((e,t)=>e+t,0);e.payload.stats?g(e.payload.stats):g(e=>({total:i,byStatus:r,byKind:e?.byKind??{},edges:e?.edges??0})),Re.current=!0,t||D(e=>e&&n.some(t=>t.id===e)?e:null)}v(!1),b(!1),Ne(!1)}),o=setTimeout(()=>{i!==Be.current||!q.current||(c(),S(`The memory store did not respond. Check the WebSocket connection and try again.`),v(!1),b(!1),Ne(!1))},2e4),Y.current=c,r({limit:ft,...V?{statuses:[`deleted`]}:{},...e?{cursor:e}:{},...I.trim()?{query:I.trim()}:{},...z===`all`?{}:{kind:z}},{echoToChat:!1})},[n,z,r,I,V]),Q=(0,W.useCallback)(()=>{ke(null),je(!1),Ue(null)},[Ue]),We=(0,W.useCallback)(()=>{Me||!Oe||Ue(Oe)},[Ue,Me,Oe]);(0,W.useEffect)(()=>(q.current=!0,Q(),()=>{q.current=!1,Be.current+=1,J.current+=1,Y.current?.(),X.current?.(),K.current?.()}),[Q]),(0,W.useEffect)(()=>{let e=I.trim();if(K.current?.(),e.length===0){ge({hits:[],channel:void 0,loading:!1,error:null});return}let t=++ze.current;ge(e=>({...e,loading:!0,error:null}));let r=()=>{},i=()=>{K.current===i&&(K.current=null),r()};K.current=i,r=n.on(`memory.sage.searchBreakdown`,e=>{if(t!==ze.current||!q.current){i();return}if(i(),e.payload.error){ge({hits:[],channel:void 0,loading:!1,error:e.payload.error});return}ge({hits:e.payload.hits??[],channel:e.payload.source,loading:!1,error:null})}),d({query:e,limit:20})},[I,n,d]),(0,W.useEffect)(()=>{if(te([]),re([]),k(null),!E){oe(!1);return}let e=E;oe(!0);let t=null,r=n.on(`memory.sage.graph`,n=>{n.payload.query===e&&(t!==null&&clearTimeout(t),te(n.payload.edges??[]),re(n.payload.memories??[]),k(n.payload.error??null),oe(!1))});return t=setTimeout(()=>{k(`Relationship graph did not respond in time.`),oe(!1)},15e3),c(e,{maxDepth:1,limit:120},{echoToChat:!1}),()=>{t!==null&&clearTimeout(t),r()}},[n,c,E]);let Ge=(0,W.useRef)(f);(0,W.useEffect)(()=>{f&&!Ge.current&&Re.current&&Q(),Ge.current=f},[Q,f]),(0,W.useEffect)(()=>{if(!w)return;let e=setTimeout(()=>T(null),4e3);return()=>clearTimeout(e)},[w]);let $=(0,W.useCallback)(()=>!He||!se&&!j||window.confirm(`Discard the unsaved memory changes?`),[j,He,se]),Ke=(0,W.useCallback)(()=>{if(!$())return;let e=Ce();le(e),P(e),ce(!0),A(!1),D(null),C(null)},[$]),qe=(0,W.useCallback)(e=>{$()&&(D(e),ce(!1),A(!1),C(null))},[$]),Je=(0,W.useCallback)(e=>{let t=e===void 0?Z:p.find(t=>t.id===e)??null;if(!t||t.status===`deleted`)return;e!==void 0&&D(e);let n=Se(t);le(n),P(n),A(!0),ce(!1),C(null)},[p,Z]),Ye=(0,W.useCallback)(()=>{$()&&(A(!1),ce(!1),C(null))},[$]),Xe=(0,W.useCallback)((t,r,i)=>{if(!M.text.trim()){C(`Memory content is required.`);return}let a=++J.current;X.current?.(),F(i),C(null),T(null);let o=()=>{},s=null,c=!1,l=()=>{c||(c=!0,s!==null&&clearTimeout(s),o(),X.current===l&&(X.current=null))},u=t=>{if(a!==J.current||!q.current){l();return}if(l(),F(null),t.payload.error||!t.payload.memory){C(t.payload.error??`The server returned no memory record.`);return}let n=t.payload.memory;m(e=>{let t=e.filter(e=>e.id!==n.id);return[n,...t]}),D(n.id),ce(!1),A(!1),T(e(i===`create`?`activity:memoryManager.memoryCaptured`:`activity:memoryManager.memoryUpdated`)),Q()};o=t===`memory.sage.remember`?n.on(`memory.sage.remember`,u):n.on(`memory.sage.update`,u),s=setTimeout(()=>{a!==J.current||!q.current||(l(),F(null),C(e(`activity:memoryManager.mutationTimeout`,{verb:e(i===`create`?`activity:memoryManager.createAction`:`common:action.save`)})))},2e4),X.current=l,r()},[n,M.text,Q,e]),Ze=(0,W.useCallback)(()=>{Xe(`memory.sage.remember`,()=>a({text:M.text.trim(),kind:M.kind,scope:M.scope,tags:H(M.tags),importance:M.importance,confidence:M.confidence,freshness:M.freshness,anchors:ve(M.anchors),...H(M.audienceRoles).length||H(M.audienceTaskTypes).length||H(M.audienceModes).length?{audience:{roles:H(M.audienceRoles),taskTypes:H(M.audienceTaskTypes),modes:H(M.audienceModes)}}:{},supersedes:H(M.supersedes),contradicts:H(M.contradicts)},{echoToChat:!1}),`create`)},[M,a,Xe]),Qe=(0,W.useCallback)(()=>{Z&&Xe(`memory.sage.update`,()=>o(Z.id,{text:M.text.trim(),kind:M.kind,status:M.status,tags:H(M.tags),importance:M.importance,confidence:M.confidence,freshness:M.freshness,anchors:ve(M.anchors),...H(M.audienceRoles).length||H(M.audienceTaskTypes).length||H(M.audienceModes).length?{audience:{roles:H(M.audienceRoles),taskTypes:H(M.audienceTaskTypes),modes:H(M.audienceModes)}}:{},supersedes:H(M.supersedes),contradicts:H(M.contradicts)},{echoToChat:!1}),`update`)},[M,Xe,Z,o]),$e=(0,W.useCallback)(()=>{if(!pe)return;let e=++J.current;X.current?.(),F(`delete`),C(null);let t=()=>{},r=null,i=!1,a=()=>{i||(i=!0,r!==null&&clearTimeout(r),t(),X.current===a&&(X.current=null))};t=n.on(`memory.sage.delete`,t=>{if(e!==J.current||!q.current){a();return}if(a(),F(null),!t.payload.success){C(t.payload.message||`Delete failed.`);return}me(null),D(null),A(!1),T(`Memory deleted and relationship edges cleaned up.`),Q()}),r=setTimeout(()=>{e!==J.current||!q.current||(a(),F(null),C(`Delete timed out. The memory may still exist; refresh to confirm.`))},2e4),X.current=a,s(pe,`Deleted from the WebUI Memory Manager.`)},[n,s,pe,Q]),et=(0,W.useCallback)((e,t,r)=>{let i=++J.current;X.current?.(),C(null);let a=()=>{},o=null,s=!1,c=()=>{s||(s=!0,o!==null&&clearTimeout(o),a(),X.current===c&&(X.current=null))};a=n.on(e,e=>{if(i!==J.current||!q.current){c();return}c(),r(e.payload)}),o=setTimeout(()=>{i!==J.current||!q.current||(c(),C(`The memory store did not respond. Check the WebSocket connection and try again.`))},2e4),X.current=c,t()},[n]),tt=(0,W.useMemo)(()=>lt(p,{searchQuery:I,statusFilter:R,kindFilter:z,tagFilter:B,audienceOnly:be}),[be,z,p,I,R,B]),nt=(0,W.useMemo)(()=>ut(p),[p]),rt=(0,W.useMemo)(()=>dt(Z),[Z]),it=(0,W.useCallback)(()=>{L(``),_e(`all`),ye(`all`),xe(!1),we(null)},[]);return{client:n,wsConnected:f,memories:p,stats:h,initialLoading:_,refreshing:y,loadError:x,mutationError:ee,setMutationError:C,notice:w,setNotice:T,selectedId:E,setSelectedId:D,selectedMemory:Z,graphEdges:O,graphMemories:ne,graphError:ie,graphLoading:ae,editing:se,creating:j,draft:M,setDraft:le,busyAction:fe,deletingId:pe,setDeletingId:me,searchQuery:I,setSearchQuery:L,searchBreakdown:he,clearSearchBreakdown:()=>{ze.current+=1,K.current?.(),ge({hits:[],channel:void 0,loading:!1,error:null})},statusFilter:R,setStatusFilter:_e,kindFilter:z,setKindFilter:ye,audienceOnly:be,setAudienceOnly:xe,tagFilter:B,setTagFilter:we,libraryView:Te,setLibraryView:Ee,showDeleted:V,showReview:De,hasMore:Ae,loadingMore:Me,statusCounts:Pe,drawerOpen:U,setDrawerOpen:Ie,currentFilePath:G,setCurrentFilePath:Le,knownFilePaths:Ve,filteredMemories:tt,allTags:nt,relatedMemories:rt,hasFilters:!!(I||R!==`all`||z!==`all`||B||be),detailOpen:j||!!Z,drawerActive:U&&!!G,loadMemories:Q,loadMore:We,openCreate:Ke,openMemory:qe,openEdit:Je,cancelEditor:Ye,submitCreate:Ze,submitUpdate:Qe,confirmDelete:$e,sendWithAck:et,clearFilters:it,resolveMemoryCandidate:u,updateSage:o,recoverSage:l,listMemoryCandidates:i}}function mt(){let{t:e}=t(),n=fe(e=>e.setCurrentView),i=_e(`memory`),a=pt();return a.initialLoading&&a.memories.length===0?(0,U.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,"aria-busy":`true`,children:[(0,U.jsxs)(`div`,{className:`border-b border-border/70 bg-card/70 px-5 py-4`,children:[(0,U.jsx)(`div`,{className:`h-3 w-28 animate-pulse bg-muted`}),(0,U.jsx)(`div`,{className:`mt-3 h-7 w-56 animate-pulse bg-muted`})]}),(0,U.jsxs)(`div`,{className:`grid flex-1 gap-px bg-border/60 md:grid-cols-[minmax(300px,0.82fr)_minmax(0,1.35fr)]`,children:[(0,U.jsx)(`div`,{className:`space-y-px bg-background p-4`,children:Array.from({length:7},(e,t)=>(0,U.jsx)(`div`,{className:`h-24 animate-pulse border border-border/60 bg-card/45`},t))}),(0,U.jsx)(`div`,{className:`hidden bg-background p-6 md:block`,children:(0,U.jsx)(`div`,{className:`h-full animate-pulse border border-border/60 bg-card/35`})})]}),(0,U.jsx)(`span`,{className:`sr-only`,role:`status`,children:e(`activity:memoryManager.loadingSageContent`)})]}):a.loadError&&a.memories.length===0?(0,U.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center bg-background p-6`,children:(0,U.jsxs)(`div`,{className:`max-w-md border border-destructive/35 bg-card p-6 shadow-2xl`,children:[(0,U.jsx)(`span`,{className:`flex size-11 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,U.jsx)(u,{className:`size-5`})}),(0,U.jsx)(`h2`,{className:`mt-4 text-lg font-bold`,children:e(`activity:memoryManager.storeUnavailable`)}),(0,U.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-muted-foreground`,children:a.loadError}),(0,U.jsxs)(`div`,{className:`mt-5 flex gap-2`,children:[(0,U.jsxs)(L,{onClick:a.loadMemories,children:[(0,U.jsx)(N,{className:`size-4`}),` `,e(`common:action.retry`)]}),(0,U.jsxs)(L,{variant:`outline`,onClick:()=>n(`chat`),children:[(0,U.jsx)(r,{className:`size-4`}),` `,e(`activity:memoryManager.backToChat`)]})]})]})}):(0,U.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden bg-background`,children:[(0,U.jsx)(ot,{wsConnected:a.wsConnected,refreshing:a.refreshing,onRefresh:a.loadMemories,onCreate:a.openCreate}),(0,U.jsx)(st,{stats:a.stats,memories:a.memories,filteredCount:a.filteredMemories.length,allTagsCount:a.allTags.length}),(a.notice||a.loadError||a.mutationError)&&(0,U.jsxs)(`div`,{className:`shrink-0 border-b border-border/70 px-4 py-2`,"aria-live":`polite`,children:[a.notice&&(0,U.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 text-xs text-success`,children:[(0,U.jsx)(A,{className:`size-3.5`}),` `,a.notice]}),a.loadError&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 text-xs text-warning`,children:[(0,U.jsx)(u,{className:`size-3.5`}),` `,a.loadError,` Existing content remains available.`]}),a.mutationError&&!a.editing&&!a.creating&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 text-xs text-destructive`,children:[(0,U.jsx)(u,{className:`size-3.5`}),` `,a.mutationError]})]}),(0,U.jsxs)(`div`,{className:`grid min-h-0 flex-1 md:grid-cols-[minmax(320px,0.82fr)_minmax(0,1.35fr)]`,children:[(0,U.jsxs)(`section`,{className:P(`min-h-0 border-r border-border/70 bg-card/25`,a.detailOpen?`hidden md:flex md:flex-col`:`flex flex-col`),"aria-label":e(`activity:memoryManager.libraryAria`),children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 border-b border-border/60 px-3 pt-1`,role:`tablist`,"aria-label":e(`activity:memoryManager.viewAria`),children:[(0,U.jsx)(L,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":a.libraryView===`active`,onClick:()=>a.setLibraryView(`active`),className:P(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,a.libraryView===`active`?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:e(`activity:memoryManager.tabActive`)}),(0,U.jsx)(L,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":a.showReview,onClick:()=>a.setLibraryView(`review`),className:P(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,a.showReview?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:e(`activity:memoryManager.tabReview`)}),(0,U.jsxs)(L,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":a.showDeleted,onClick:()=>a.setLibraryView(`deleted`),className:P(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,a.showDeleted?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:[e(`activity:memoryManager.tabDeleted`),typeof a.statusCounts.deleted==`number`?` (${a.statusCounts.deleted})`:``]})]}),a.showReview?(0,U.jsx)(ct,{active:a.showReview,client:a.client,listCandidates:a.listMemoryCandidates,resolveCandidate:a.resolveMemoryCandidate,onOpenMemory:a.openMemory}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Xe,{searchQuery:a.searchQuery,statusFilter:a.statusFilter,kindFilter:a.kindFilter,audienceOnly:a.audienceOnly,tagFilter:a.tagFilter,hasFilters:a.hasFilters,allTags:a.allTags,stats:a.stats,onSearchChange:a.setSearchQuery,onStatusFilterChange:a.setStatusFilter,onKindFilterChange:a.setKindFilter,onToggleAudienceOnly:()=>a.setAudienceOnly(e=>!e),onTagFilterChange:a.setTagFilter,onClearFilters:a.clearFilters}),(0,U.jsx)(Qe,{memoryListRef:i,memories:a.memories,filteredMemories:a.filteredMemories,selectedId:a.selectedId,onSelectMemory:a.openMemory,onOpenCreate:a.openCreate,onClearFilters:a.clearFilters}),a.searchQuery.trim().length>0&&(0,U.jsx)(tt,{query:a.searchQuery.trim(),channel:a.searchBreakdown.channel,hits:a.searchBreakdown.hits,loading:a.searchBreakdown.loading,error:a.searchBreakdown.error,onOpenMemory:a.openMemory,onClear:a.clearSearchBreakdown}),a.hasMore?(0,U.jsx)(`div`,{className:`shrink-0 border-t border-border/60 p-2`,children:(0,U.jsx)(L,{type:`button`,variant:`outline`,size:`sm`,onClick:a.loadMore,disabled:a.loadingMore,className:`h-7 w-full text-[11px]`,children:a.loadingMore?e(`common:action.loading`):`Load more (${a.memories.length} loaded)`})}):null]})]}),(0,U.jsxs)(`section`,{className:P(`min-h-0 bg-background`,a.detailOpen?`flex flex-col`:`hidden md:flex md:flex-col`),"aria-label":e(`activity:memoryManager.detailAria`),children:[a.memories.some(e=>(e.anchors??[]).some(e=>e.type===`file`&&e.path))&&(0,U.jsx)(Je,{currentFilePath:a.currentFilePath,knownFilePaths:a.knownFilePaths,drawerActive:a.drawerActive,onFilePathChange:e=>{e&&a.knownFilePaths.has(e)?(a.setCurrentFilePath(e),a.setDrawerOpen(!0)):e?a.setCurrentFilePath(e):a.setCurrentFilePath(null)},onToggleDrawer:()=>{a.currentFilePath&&a.setDrawerOpen(e=>!e)}}),a.creating?(0,U.jsx)(Ye,{mode:`create`,draft:a.draft,busy:a.busyAction===`create`,error:a.mutationError,onChange:a.setDraft,onCancel:a.cancelEditor,onSubmit:a.submitCreate}):a.selectedMemory?a.editing?(0,U.jsx)(Ye,{mode:`edit`,draft:a.draft,busy:a.busyAction===`update`,error:a.mutationError,onChange:a.setDraft,onCancel:a.cancelEditor,onSubmit:a.submitUpdate}):a.drawerActive?(0,U.jsx)(Fe,{filePath:a.currentFilePath,open:a.drawerActive,onClose:()=>a.setDrawerOpen(!1),onShowMemory:e=>a.setSelectedId(e),onAcceptDeletion:(e,t)=>{a.sendWithAck(`memory.sage.candidateResolve`,()=>a.resolveMemoryCandidate({candidateId:e,action:`accept`}),n=>{if(n.error){a.setMutationError(n.error);return}a.setNotice(`Accepted hygiene review for ${t.slice(0,12)}… (candidate ${e.slice(0,12)}…).`),a.loadMemories()})},onKeep:(e,t)=>{a.sendWithAck(`memory.sage.candidateResolve`,()=>a.resolveMemoryCandidate({candidateId:e,action:`reject`}),n=>{if(n.error){a.setMutationError(n.error);return}a.setNotice(`Kept ${t.slice(0,12)}… (candidate ${e.slice(0,12)}… rejected).`),a.loadMemories()})},onUpdate:e=>{a.openEdit(e)},onMarkPermanent:e=>{a.sendWithAck(`memory.sage.update`,()=>a.updateSage(e,{persistence:`permanent`}),t=>{if(t.error||!t.memory){a.setMutationError(t.error??`The server returned no memory record.`);return}a.setNotice(`Memory ${e.slice(0,12)}… promoted to permanent.`),a.loadMemories()})},onRecover:e=>{a.sendWithAck(`memory.sage.recover`,()=>a.recoverSage({id:e,reason:`recovered via file drawer`}),t=>{if(t.error){a.setMutationError(t.error);return}a.setNotice(`Recovered ${e.slice(0,12)}…`),a.loadMemories()})}}):(0,U.jsx)(Z,{memory:a.selectedMemory,allMemories:[...a.memories,...a.graphMemories],relatedMemories:a.relatedMemories,graphEdges:a.graphEdges,graphLoading:a.graphLoading,graphError:a.graphError,onClose:()=>a.setSelectedId(null),onOpenMemory:a.openMemory,onEdit:a.openEdit,onDelete:()=>a.setDeletingId(a.selectedMemory.id),onTagSelect:e=>{a.setTagFilter(e),a.setSelectedId(null)},onNotice:a.setNotice}):(0,U.jsx)(at,{onCapture:a.openCreate})]})]}),(0,U.jsx)(Ie,{busyAction:a.busyAction,deletingId:a.deletingId,memories:a.memories,onCancel:()=>a.setDeletingId(null),onConfirm:a.confirmDelete,onOpenChange:e=>{!e&&a.busyAction!==`delete`&&a.setDeletingId(null)}})]})}export{mt as MemoryManager};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ba as t,Br as n,Ea as r,Fi as i,Ft as a,Ga as o,Ma as s,Nn as c,Or as l,Ot as u,Pn as d,Pr as f,Tn as p,Vn as m,Vt as h,Wt as g,Zt as _,_ as v,_a as y,a as b,an as x,da as S,dt as ee,ea as C,f as w,hi as T,i as E,jt as D,kn as O,li as te,lt as ne,n as re,na as ie,or as k,pr as ae,qi as oe,r as se,ra as A,s as j,ua as ce,un as M,xi as le,yn as N}from"./vendor-C_zEzV4N.js";import"./i18n-DbJfY4tY.js";import{t as ue}from"./useWebSocket-D9Dy4-9x.js";import{t as P}from"./utils-tsZEnrBH.js";import{I as de}from"./stores-C0xX0jn4.js";import{n as fe}from"./ui-store-xx1NssJI.js";import{a as F,i as pe,n as me,o as he,r as ge,t as I}from"./dialog-BJjDUqb3.js";import{t as L}from"./button-DvpRpKkt.js";import{t as R}from"./input-BtoHcCl9.js";import{c as _e}from"./index-DQn-Lz9q.js";import{t as z}from"./roster-ws-DycHs92J.js";import{_ as ve,a as ye,b as be,c as xe,d as Se,f as Ce,g as B,h as we,i as Te,l as Ee,m as V,n as De,o as Oe,p as ke,r as Ae,s as je,t as Me,u as Ne,v as Pe,y as H}from"./shared-B3czc2Dj.js";import{t as Fe}from"./MemoryDrawer-e8UxQq-s.js";var U=ne();function Ie({busyAction:e,deletingId:n,memories:r,onCancel:i,onConfirm:a,onOpenChange:o}){let{t:s}=t();return(0,U.jsx)(I,{open:!!n,onOpenChange:o,children:(0,U.jsxs)(me,{className:`max-w-md`,children:[(0,U.jsxs)(F,{children:[(0,U.jsx)(`span`,{className:`mb-2 flex size-10 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,U.jsx)(D,{className:`size-4`})}),(0,U.jsx)(he,{children:s(`activity:memoryManager.deleteTitle`)}),(0,U.jsx)(ge,{className:`leading-6`,children:s(`activity:deleteMemoryDialog.sageWillMarkTheRecordDeleted`)})]}),(0,U.jsx)(`div`,{className:`border border-border/70 bg-background/45 p-3 text-xs text-muted-foreground`,children:B(r.find(e=>e.id===n)?.text??``,180)}),(0,U.jsxs)(pe,{children:[(0,U.jsx)(L,{variant:`outline`,onClick:i,disabled:e===`delete`,children:s(`common:action.cancel`)}),(0,U.jsxs)(L,{variant:`destructive`,onClick:a,disabled:e===`delete`,children:[e===`delete`?(0,U.jsx)(k,{className:`size-4 animate-spin`}):(0,U.jsx)(D,{className:`size-4`}),s(e===`delete`?`activity:memoryManager.deletingLabel`:`activity:memoryManager.actionDeleteMemory`)]})]})]})})}var W=e(o(),1),G=212,Le=188;function Re(e){return e.length>14?`${e.slice(0,11)}…`:e}function ze(e,t=58){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function K(e){return e.type===`symbol`?[e.path,e.symbol?`#${e.symbol}`:``].filter(Boolean).join(``):e.path??e.command??e.symbol??e.role??e.type}function q(e){return e===`active`?`border-success/45 bg-success/10 text-success`:e===`stale`?`border-warning/45 bg-warning/10 text-warning`:e===`contradicted`?`border-destructive/45 bg-destructive/10 text-destructive`:e===`superseded`?`border-warning/35 bg-warning/5 text-warning`:`border-border bg-muted/55 text-muted-foreground`}function Be({data:e}){let{entry:t,center:n}=e;return(0,U.jsxs)(`div`,{className:n?`border border-primary/70 bg-card px-3 py-2.5 text-card-foreground shadow-[0_0_0_1px_hsl(var(--primary)/0.2),0_0_24px_hsl(var(--primary)/0.12)]`:`border border-border/80 bg-card/95 px-3 py-2.5 text-card-foreground shadow-lg`,style:{width:G},title:t.text,children:[(0,U.jsx)(j,{type:`target`,position:v.Top,className:`!border-background !bg-muted-foreground`}),(0,U.jsx)(j,{type:`source`,position:v.Bottom,className:`!border-background !bg-primary`}),(0,U.jsx)(j,{type:`source`,position:v.Right,className:`!border-background !bg-primary`}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`border px-1.5 py-0.5 text-[9px] font-bold uppercase ${q(t.status)}`,children:t.status}),(0,U.jsx)(`span`,{className:`ml-auto truncate font-mono text-[9px] text-muted-foreground`,children:Re(t.id)})]}),(0,U.jsx)(`p`,{className:`mt-2 line-clamp-2 text-[11px] leading-4 text-foreground/90`,children:ze(t.text)}),(0,U.jsx)(`p`,{className:`mt-1 font-mono text-[9px] uppercase text-muted-foreground`,children:t.kind})]})}function J({data:e}){return(0,U.jsxs)(`div`,{className:`border border-info/40 bg-info/8 px-2.5 py-2 text-card-foreground shadow-lg`,style:{width:Le},title:e.label,children:[(0,U.jsx)(j,{type:`target`,position:v.Left,className:`!border-background !bg-info`}),(0,U.jsx)(`p`,{className:`font-mono text-[9px] font-bold uppercase text-info`,children:e.anchor.type}),(0,U.jsx)(`p`,{className:`mt-1 truncate font-mono text-[10px] text-foreground/85`,children:e.label})]})}var Y={memoryNode:Be,anchorNode:J};function X(e,t){return{id:e,revision:0,scope:`project`,kind:`fact`,status:`deleted`,text:t(`activity:memoryManager.memoryUnavailable`),importance:0,confidence:0,freshness:0,tags:[],anchors:[],createdAt:``,updatedAt:``}}function Ve({nodes:e,edges:t,className:n}){return(0,U.jsx)(`div`,{className:P(`w-full`,n),children:(0,U.jsxs)(w,{nodes:e,edges:t,nodeTypes:Y,fitView:!0,fitViewOptions:{padding:.24,maxZoom:1.05},minZoom:.4,maxZoom:1.5,nodesConnectable:!1,elementsSelectable:!1,panOnScroll:!1,zoomOnScroll:!1,proOptions:{hideAttribution:!0},children:[(0,U.jsx)(se,{variant:E.Dots,gap:18,size:1,color:`hsl(var(--muted-foreground) / 0.18)`}),(0,U.jsx)(b,{showInteractive:!1,className:`!border-border !bg-card !shadow-lg`})]})})}function He({centerMemory:e,allMemories:n,graphEdges:r,loading:i=!1,error:a=null}){let{t:o}=t(),[s,c]=(0,W.useState)(!1),l=`mem:${e.id}`,u=(0,W.useMemo)(()=>r.filter(e=>e.from===l&&e.to.startsWith(`mem:`)||e.to===l&&e.from.startsWith(`mem:`)).slice(0,24),[l,r]),{nodes:d,edges:f}=(0,W.useMemo)(()=>{let t=[],r=[],i=new Map(n.map(e=>[e.id,e]));t.push({id:e.id,type:`memoryNode`,position:{x:320-G/2,y:120},data:{entry:e,center:!0}});let a=[...e.supersededBy?[{id:e.supersededBy,relation:`superseded by`}]:[],...(e.supersedes??[]).map(e=>({id:e,relation:`supersedes`})),...(e.contradicts??[]).map(e=>({id:e,relation:`contradicts`}))];for(let e of u){let t=(e.from===l?e.to:e.from).slice(4);a.some(n=>n.id===t&&n.relation===e.relation)||a.push({id:t,relation:e.relation,weight:e.weight,evidence:e.evidence})}let s=320-(a.length-1)*220/2;return a.forEach((n,a)=>{let c=i.get(n.id)??X(n.id,o),l=n.relation===`superseded by`,u=l?0:280+Math.floor(a/3)*130,d=l?320-G/2:s+a*220-G/2;t.push({id:`memory:${n.id}:${a}`,type:`memoryNode`,position:{x:d,y:u},data:{entry:c,center:!1}});let f=n.relation===`contradicts`,p=l?`memory:${n.id}:${a}`:e.id,m=l?e.id:`memory:${n.id}:${a}`;r.push({id:`relation:${n.relation}:${n.id}:${a}`,source:p,target:m,type:`smoothstep`,animated:!f,label:n.weight===void 0?n.relation:`${n.relation} ${n.weight.toFixed(2)}`,data:{evidence:n.evidence??[]},style:{stroke:f?`hsl(var(--destructive))`:`hsl(var(--primary))`,strokeWidth:1.7,...f?{strokeDasharray:`5 4`}:{}},labelStyle:{fill:f?`hsl(var(--destructive))`:`hsl(var(--muted-foreground))`,fontSize:9,fontWeight:700},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.9}})}),e.anchors.forEach((n,i)=>{let a=`anchor:${i}`;t.push({id:a,type:`anchorNode`,position:{x:540,y:120+(i-(e.anchors.length-1)/2)*66},data:{anchor:n,label:K(n)}}),r.push({id:`anchor-edge:${i}`,source:e.id,target:a,type:`smoothstep`,style:{stroke:`hsl(var(--info))`,strokeWidth:1.3}})}),{nodes:t,edges:r}},[n,e,l,u]);return d.length<=1&&!i&&!a?null:(0,U.jsxs)(`section`,{className:`overflow-hidden border border-border/75 bg-background/35`,"aria-label":o(`activity:memoryManager.graphAria`),children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/70 bg-card/55 px-3 py-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`p`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:o(`activity:memoryManager.graphHeading`)}),d.length>1&&(0,U.jsxs)(L,{variant:`ghost`,size:`sm`,onClick:()=>c(!0),className:`h-6 gap-1 px-2 text-[9px] font-bold uppercase tracking-[0.12em]`,"aria-label":o(`activity:memoryManager.graphFullscreenAria`),children:[(0,U.jsx)(T,{className:`size-3`}),o(`activity:memoryManager.graphOpenFullscreen`)]})]}),(0,U.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:i?o(`activity:memoryManager.loadingGraph`):o(`activity:memoryManager.graphStats`,{nodes:d.length,edges:f.length})})]}),a&&(0,U.jsx)(`p`,{className:`border-b border-destructive/25 bg-destructive/5 px-3 py-2 text-[10px] text-destructive`,children:a}),d.length>1&&(0,U.jsx)(Ve,{nodes:d,edges:f,className:`h-[320px]`}),u.some(e=>e.evidence?.length)&&(0,U.jsx)(`div`,{className:`grid gap-1 border-t border-border/70 bg-card/35 px-3 py-2`,children:u.filter(e=>e.evidence?.length).slice(0,12).map(e=>{let t=(e.from===l?e.to:e.from).slice(4);return(0,U.jsxs)(`p`,{className:`truncate font-mono text-[9px] text-muted-foreground`,children:[(0,U.jsx)(`span`,{className:`text-info`,children:e.relation}),` `,Re(t),` · why:`,` `,e.evidence?.join(`, `)]},e.id)})}),s&&(0,U.jsx)(I,{open:s,onOpenChange:c,children:(0,U.jsxs)(me,{className:`flex max-h-[90dvh] max-w-[90vw] flex-col p-0`,showCloseButton:!1,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/70 bg-card/55 px-4 py-3`,children:[(0,U.jsx)(`p`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:o(`activity:memoryManager.graphHeadingFull`,{id:e.id})}),(0,U.jsx)(L,{variant:`ghost`,size:`sm`,onClick:()=>c(!1),className:`h-7 gap-1 px-2 text-[10px]`,children:o(`common:action.close`)})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 px-4 pb-4`,children:(0,U.jsx)(Ve,{nodes:d,edges:f,className:`h-[65vh]`})})]})})]})}function Z({memory:e,allMemories:n,relatedMemories:a,graphEdges:o,graphLoading:s,graphError:c,onClose:l,onOpenMemory:u,onEdit:d,onDelete:f,onTagSelect:p,onNotice:m}){let{t:h}=t();return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-b border-border/70 bg-card/65 px-4 py-3 backdrop-blur-xl`,children:[(0,U.jsx)(L,{variant:`ghost`,size:`icon`,className:`md:hidden`,onClick:l,"aria-label":h(`activity:memoryManager.backToList`),children:(0,U.jsx)(r,{className:`size-4`})}),(0,U.jsx)(`span`,{className:P(`text-[10px] font-bold uppercase tracking-[0.14em]`,we(e.kind)),children:Ae[e.kind]??e.kind}),(0,U.jsx)(Ee,{status:e.status}),(0,U.jsx)(`span`,{className:`border border-border/70 px-2 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:e.scope}),e.audience&&(0,U.jsxs)(`span`,{className:`flex items-center gap-1 border border-primary/30 bg-primary/10 px-2 py-0.5 font-mono text-[9px] text-primary`,title:ke(e.audience),children:[(0,U.jsx)(S,{className:`size-3`}),ke(e.audience)]}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-1.5`,children:[(0,U.jsx)(L,{variant:`ghost`,size:`icon`,"aria-label":h(`activity:memoryManager.copyId`),title:h(`activity:memoryManager.copyId`),onClick:()=>{navigator.clipboard?.writeText(e.id),m(h(`activity:memoryManager.copiedNotice`))},children:(0,U.jsx)(i,{className:`size-4`})}),(0,U.jsxs)(L,{variant:`outline`,size:`sm`,onClick:()=>d(e.id),disabled:e.status===`deleted`,children:[(0,U.jsx)(O,{className:`size-3.5`}),` `,h(`common:action.edit`)]}),(0,U.jsxs)(L,{variant:`destructive`,size:`sm`,onClick:f,disabled:e.status===`deleted`,children:[(0,U.jsx)(D,{className:`size-3.5`}),` `,h(`common:action.delete`)]})]})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-4 md:p-5`,children:(0,U.jsxs)(`div`,{className:`mx-auto max-w-5xl space-y-5`,children:[(0,U.jsx)(Ue,{memory:e}),(0,U.jsx)(Q,{memory:e}),e.tags.length>0&&(0,U.jsx)(We,{tags:e.tags,onTagSelect:p}),e.anchors.length>0&&(0,U.jsx)(Ge,{anchors:e.anchors}),a.length>0&&(0,U.jsx)($,{relatedMemories:a,allMemories:n,onOpenMemory:u}),(0,U.jsx)(He,{centerMemory:e,allMemories:n,graphEdges:o,loading:s,error:c}),(0,U.jsx)(Ke,{memory:e}),e.status===`deleted`&&(0,U.jsx)(qe,{contextPolicy:e.contextPolicy})]})})]})}function Ue({memory:e}){let{t:n}=t();return(0,U.jsxs)(`div`,{className:`relative overflow-hidden border border-border/75 bg-card/55 p-5 shadow-[inset_0_1px_0_hsl(var(--foreground)/0.04)]`,children:[(0,U.jsx)(`div`,{className:`pointer-events-none absolute -right-10 -top-10 size-36 bg-[radial-gradient(circle,hsl(var(--info)/0.13),transparent_68%)]`}),(0,U.jsx)(`p`,{className:`relative whitespace-pre-wrap text-sm leading-7 text-foreground md:text-[15px]`,children:e.text}),e.summary&&(0,U.jsx)(`p`,{className:`relative mt-4 border-l-2 border-info/50 pl-3 text-xs italic leading-5 text-muted-foreground`,children:e.summary}),(0,U.jsxs)(`div`,{className:`relative mt-5 flex flex-wrap items-center gap-2 border-t border-border/60 pt-3`,children:[(0,U.jsx)(`code`,{className:`min-w-0 break-all font-mono text-[10px] text-muted-foreground`,children:e.id}),(0,U.jsx)(`span`,{className:`ml-auto font-mono text-[10px] text-muted-foreground`,children:n(`activity:memoryManager.revisionSuffix`,{n:e.revision})})]})]})}function Q({memory:e}){let{t:n}=t(),r=[[n(`activity:memoryManager.editorImportance`),e.importance,_],[n(`activity:memoryManager.editorConfidence`),e.confidence,oe],[n(`activity:memoryManager.editorFreshness`),e.freshness,N]];return(0,U.jsx)(`div`,{className:`grid gap-px bg-border/60 sm:grid-cols-3`,children:r.map(([e,t,n])=>(0,U.jsxs)(`div`,{className:`bg-card/60 p-3`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(n,{className:`size-3.5 text-info`}),(0,U.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.13em] text-muted-foreground`,children:e}),(0,U.jsxs)(`span`,{className:`ml-auto font-mono text-xs font-bold tabular-nums`,children:[Math.round(t*100),`%`]})]}),(0,U.jsx)(`div`,{className:`mt-2 h-1 bg-muted`,children:(0,U.jsx)(`div`,{className:`h-full bg-info shadow-[0_0_8px_hsl(var(--info)/0.45)]`,style:{width:`${Math.round(t*100)}%`}})})]},e))})}function We({tags:e,onTagSelect:n}){let{t:r}=t();return(0,U.jsxs)(`section`,{children:[(0,U.jsxs)(`h3`,{className:`mb-2 flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,U.jsx)(a,{className:`size-3.5 text-info`}),` `,r(`activity:memoryManager.tagsLabel`)]}),(0,U.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:`border border-info/25 bg-info/5 px-2 py-1 font-mono text-[10px] text-info hover:border-info/55 hover:bg-info/10`,children:[`#`,e]},e))})]})}function Ge({anchors:e}){let{t:n}=t();return(0,U.jsxs)(`section`,{className:`border border-border/75 bg-card/40`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/65 px-3 py-2.5`,children:[(0,U.jsxs)(`h3`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,U.jsx)(te,{className:`size-3.5 text-info`}),` `,n(`activity:memoryManager.editorAnchors`)]}),(0,U.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e.length})]}),(0,U.jsx)(`ul`,{className:`divide-y divide-border/55`,children:e.map((e,t)=>(0,U.jsxs)(`li`,{className:`flex min-w-0 items-start gap-3 px-3 py-2.5`,children:[(0,U.jsx)(`span`,{className:`mt-0.5 flex size-7 shrink-0 items-center justify-center border border-info/25 bg-info/5 text-info`,children:e.type===`command`?(0,U.jsx)(h,{className:`size-3.5`}):(0,U.jsx)(te,{className:`size-3.5`})}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:`text-[9px] font-bold uppercase text-muted-foreground`,children:e.type}),(0,U.jsxs)(`p`,{className:`mt-0.5 break-all font-mono text-[10px] leading-4 text-foreground/85`,children:[e.path??e.command??e.role??`—`,e.symbol?`#${e.symbol}`:``]})]}),(e.lineStart||e.lineEnd)&&(0,U.jsxs)(`span`,{className:`ml-auto shrink-0 font-mono text-[9px] text-muted-foreground`,children:[`L`,e.lineStart??`?`,`–`,e.lineEnd??`?`]})]},`${e.type}:${e.path??e.command??e.symbol??e.role}:${t}`))})]})}function $({relatedMemories:e,allMemories:n,onOpenMemory:r}){let{t:i}=t();return(0,U.jsxs)(`section`,{className:`border border-border/75 bg-card/40`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/65 px-3 py-2.5`,children:[(0,U.jsxs)(`h3`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,U.jsx)(f,{className:`size-3.5 text-info`}),` `,i(`activity:memoryManager.memoryRelationships`)]}),(0,U.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e.length})]}),(0,U.jsx)(`ul`,{className:`divide-y divide-border/55`,children:e.map(e=>{let t=n.find(t=>t.id===e.id);return(0,U.jsx)(`li`,{children:(0,U.jsxs)(`button`,{type:`button`,disabled:!t,onClick:()=>t&&r(t.id),className:`group flex w-full min-w-0 items-center gap-3 px-3 py-2.5 text-left hover:bg-info/5 disabled:cursor-not-allowed disabled:opacity-55`,children:[(0,U.jsx)(`span`,{className:P(`w-24 shrink-0 text-[9px] font-bold uppercase`,e.relation===`Contradicts`?`text-destructive`:`text-info`),children:e.relation}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs`,children:t?B(t.text,95):i(`activity:memoryManager.referencedUnavailable`)}),(0,U.jsx)(`code`,{className:`hidden max-w-32 truncate font-mono text-[9px] text-muted-foreground sm:block`,children:e.id}),t&&(0,U.jsx)(C,{className:`size-3.5 shrink-0 text-muted-foreground group-hover:text-info`})]})},`${e.relation}:${e.id}`)})})]})}function Ke({memory:e}){let{t:n}=t(),r=[[n(`activity:memoryManager.metaCreated`),V(e.createdAt),y],[n(`activity:memoryManager.metaUpdated`),V(e.updatedAt),N],[n(`activity:memoryManager.metaLastAccessed`),V(e.lastAccessedAt),m],[n(`activity:memoryManager.metaLastVerified`),V(e.lastVerifiedAt),_]];return(0,U.jsx)(`section`,{className:`grid gap-px bg-border/60 sm:grid-cols-2 lg:grid-cols-4`,children:r.map(([e,t,n])=>(0,U.jsxs)(`div`,{className:`bg-card/50 p-3`,children:[(0,U.jsx)(n,{className:`size-3.5 text-muted-foreground`}),(0,U.jsx)(`p`,{className:`mt-2 text-[9px] font-bold uppercase tracking-[0.12em] text-muted-foreground`,children:e}),(0,U.jsx)(`p`,{className:`mt-1 text-[10px] leading-4 text-foreground/85`,children:t})]},e))})}function qe({contextPolicy:e}){let{t:n}=t();return(0,U.jsxs)(`div`,{className:`flex items-start gap-3 border border-border bg-muted/50 p-4 text-xs text-muted-foreground`,children:[(0,U.jsx)(s,{className:`mt-0.5 size-4 shrink-0`}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`font-bold text-foreground`,children:n(`activity:memoryManager.deletedMemory`)}),(0,U.jsx)(`p`,{className:`mt-1 leading-5`,children:n(e===`never`?`activity:memoryManager.deletedNeverPolicy`:`activity:memoryManager.deletedEligiblePolicy`)})]})]})}function Je({currentFilePath:e,knownFilePaths:n,drawerActive:r,onFilePathChange:i,onToggleDrawer:a}){let{t:o}=t();return(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border/60 bg-card/30 px-3 py-1.5`,children:[(0,U.jsx)(`span`,{className:`text-[10px] uppercase tracking-wide text-muted-foreground`,children:o(`activity:memoryManager.fileDrawerLabel`)}),(0,U.jsx)(`input`,{type:`text`,list:`memory-drawer-file-list`,value:e??``,onChange:e=>{i(e.target.value.trim()||null)},placeholder:o(`activity:memoryManager.selectFilePlaceholder`),className:`min-w-0 max-w-[260px] flex-1 truncate rounded-sm border border-border/60 bg-background px-1.5 py-0.5 text-[10px] font-mono`,"aria-label":o(`activity:memoryManager.fileForDrawerAria`),"data-testid":`memory-drawer-file-select`}),(0,U.jsx)(`datalist`,{id:`memory-drawer-file-list`,children:[...n].sort().map(e=>(0,U.jsx)(`option`,{value:e},e))}),(0,U.jsxs)(L,{type:`button`,size:`sm`,variant:r?`default`:`outline`,onClick:a,disabled:!e,className:`h-7 shrink-0 gap-1 px-2 text-[11px]`,"aria-pressed":r,title:o(r?`activity:memoryManager.hideFileDrawer`:`activity:memoryManager.showFileDrawer`),children:[r?(0,U.jsx)(d,{className:`size-3`}):(0,U.jsx)(c,{className:`size-3`}),o(r?`activity:memoryManager.hideDrawer`:`activity:memoryManager.showDrawer`)]})]})}function Ye({mode:e,draft:n,busy:r,error:i,onChange:a,onCancel:o,onSubmit:s}){let{t:c}=t(),l=(0,W.useRef)(null),[d,f]=(0,W.useState)([]);(0,W.useEffect)(()=>{l.current?.focus();let e=new AbortController;return z(`agent-roster.list`,{},e.signal).then(e=>{let t=e.roles;Array.isArray(t)&&f(t.filter(e=>typeof e==`string`))}).catch(()=>void 0),()=>e.abort()},[]);let m=(e,t)=>{a({...n,[e]:t})},h=()=>{m(`anchors`,[...n.anchors,{type:`file`,path:``}])};return(0,U.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col`,onSubmit:e=>{e.preventDefault(),s()},"aria-busy":r,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-b border-border/70 bg-card/70 px-4 py-3 backdrop-blur-xl`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`flex size-8 items-center justify-center border border-info/35 bg-info/10 text-info`,children:e===`create`?(0,U.jsx)(g,{className:`size-4`}):(0,U.jsx)(O,{className:`size-4`})}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:`truncate text-sm font-bold`,children:c(e===`create`?`activity:memoryManager.captureMemory`:`activity:memoryManager.editMemory`)}),(0,U.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:c(e===`create`?`activity:memoryManager.editorCreateHint`:`activity:memoryManager.editorEditHint`)})]})]}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,U.jsxs)(L,{type:`button`,variant:`ghost`,size:`sm`,onClick:o,disabled:r,children:[(0,U.jsx)(ee,{className:`size-3.5`}),` `,c(`common:action.cancel`)]}),(0,U.jsxs)(L,{type:`submit`,size:`sm`,disabled:r||!n.text.trim(),children:[r?(0,U.jsx)(k,{className:`size-3.5 animate-spin`}):e===`create`?(0,U.jsx)(p,{className:`size-3.5`}):(0,U.jsx)(M,{className:`size-3.5`}),c(r?`common:action.saving`:e===`create`?`activity:memoryManager.createMemory`:`activity:memoryManager.saveChanges`)]})]})]}),(0,U.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto overscroll-contain p-4 md:p-5`,children:(0,U.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-5`,children:[i&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-2 border border-destructive/40 bg-destructive/10 px-3 py-2.5 text-sm text-destructive`,children:[(0,U.jsx)(u,{className:`mt-0.5 size-4 shrink-0`}),(0,U.jsx)(`span`,{children:i})]}),(0,U.jsxs)(`section`,{className:`border border-border/75 bg-card/45 p-4`,children:[(0,U.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:c(`activity:memoryManager.editorKnowledge`)}),(0,U.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:c(`activity:memEditor.writeTheDurableFactOrDecision`)})]}),(0,U.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground tabular-nums`,children:c(`activity:memoryManager.editorCharCount`,{count:n.text.length})})]}),(0,U.jsx)(`label`,{htmlFor:`memory-text`,className:`sr-only`,children:c(`activity:memoryManager.editorContentLabel`)}),(0,U.jsx)(`textarea`,{ref:l,id:`memory-text`,value:n.text,onChange:e=>m(`text`,e.target.value),rows:7,required:!0,placeholder:c(`activity:memoryManager.editorContentPlaceholder`),className:`min-h-36 w-full resize-y border border-input bg-background/75 px-3 py-3 text-sm leading-6 text-foreground shadow-inner placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`})]}),(0,U.jsxs)(`section`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:[(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`label`,{htmlFor:`memory-kind`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorKind`)}),(0,U.jsx)(`select`,{id:`memory-kind`,value:n.kind,onChange:e=>m(`kind`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:Te.map(e=>(0,U.jsx)(`option`,{value:e,children:Ae[e]},e))})]}),e===`create`?(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`label`,{htmlFor:`memory-scope`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorScope`)}),(0,U.jsx)(`select`,{id:`memory-scope`,value:n.scope,onChange:e=>m(`scope`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:ye.map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))})]}):(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`label`,{htmlFor:`memory-status`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorLifecycleStatus`)}),(0,U.jsx)(`select`,{id:`memory-status`,value:n.status,onChange:e=>m(`status`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:De.map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))})]}),(0,U.jsxs)(`div`,{className:P(`min-w-0`,e===`create`?`sm:col-span-2 lg:col-span-1`:``),children:[(0,U.jsx)(`label`,{htmlFor:`memory-tags`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.tagsLabel`)}),(0,U.jsx)(R,{id:`memory-tags`,value:n.tags,onChange:e=>m(`tags`,e.target.value),placeholder:c(`activity:memEditor.architectureWebuiWorkflow`),className:`h-10 bg-background`})]})]}),(0,U.jsxs)(`section`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,U.jsx)(xe,{id:`memory-importance`,label:c(`activity:memoryManager.editorImportance`),value:n.importance,onChange:e=>m(`importance`,e)}),(0,U.jsx)(xe,{id:`memory-confidence`,label:c(`activity:memoryManager.editorConfidence`),value:n.confidence,onChange:e=>m(`confidence`,e)}),(0,U.jsx)(xe,{id:`memory-freshness`,label:c(`activity:memoryManager.editorFreshness`),value:n.freshness,onChange:e=>m(`freshness`,e)})]}),(0,U.jsxs)(`section`,{className:`border border-border/75 bg-card/45 p-4`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:c(`activity:memoryManager.editorAnchors`)}),(0,U.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:c(`activity:memEditor.bindKnowledgeToFilesSymbolsPackages`)})]}),(0,U.jsxs)(L,{type:`button`,variant:`outline`,size:`sm`,onClick:h,children:[(0,U.jsx)(p,{className:`size-3.5`}),` `,c(`activity:memoryManager.addAnchor`)]})]}),n.anchors.length===0?(0,U.jsxs)(`button`,{type:`button`,onClick:h,className:`mt-4 flex w-full items-center justify-center gap-2 border border-dashed border-border px-4 py-7 text-xs text-muted-foreground transition-colors hover:border-info/50 hover:bg-info/5 hover:text-info`,children:[(0,U.jsx)(ae,{className:`size-4`}),` `,c(`activity:memoryManager.noAnchors`)]}):(0,U.jsx)(`div`,{className:`mt-4 space-y-2`,children:n.anchors.map((e,t)=>(0,U.jsxs)(`div`,{className:`grid gap-2 border border-border/65 bg-background/40 p-2 sm:grid-cols-[9rem_minmax(0,1fr)_auto]`,children:[(0,U.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-type-${t}`,children:[`Anchor `,t+1,` type`]}),(0,U.jsx)(`select`,{id:`anchor-type-${t}`,value:e.type,onChange:e=>{let r=e.target.value,i=r===`command`?{type:r,command:``}:r===`agent`?{type:r,role:``}:{type:r,path:``},a=n.anchors.map((e,n)=>n===t?i:e);m(`anchors`,a)},className:`h-10 border border-input bg-background px-2 text-xs`,children:Me.map(e=>(0,U.jsx)(`option`,{value:e,children:e},e))}),(0,U.jsxs)(`div`,{className:P(`grid min-w-0 gap-2`,e.type===`symbol`&&`sm:grid-cols-[minmax(0,1fr)_11rem]`),children:[(0,U.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-value-${t}`,children:[`Anchor `,t+1,` value`]}),(0,U.jsx)(R,{id:`anchor-value-${t}`,list:e.type===`agent`?`memory-agent-role-options`:void 0,value:Ne(e),onChange:e=>{let r=n.anchors.map((n,r)=>r===t?be(n,e.target.value):n);m(`anchors`,r)},placeholder:e.type===`command`?`pnpm test --filter webui`:e.type===`agent`?`reviewer`:`packages/webui/src/App.tsx`,className:`h-10 min-w-0 bg-background font-mono text-xs`}),e.type===`symbol`&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-symbol-${t}`,children:[`Anchor `,t+1,` symbol`]}),(0,U.jsx)(R,{id:`anchor-symbol-${t}`,value:e.symbol??``,onChange:e=>{let r=n.anchors.map((n,r)=>r===t?{...n,symbol:e.target.value}:n);m(`anchors`,r)},placeholder:c(`activity:memoryManager.editorSymbolPlaceholder`),className:`h-10 bg-background font-mono text-xs`})]})]}),(0,U.jsx)(L,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Remove anchor ${t+1}`,onClick:()=>m(`anchors`,n.anchors.filter((e,n)=>n!==t)),children:(0,U.jsx)(D,{className:`size-4 text-destructive`})})]},`${e.type}:${t}`))}),(0,U.jsx)(`datalist`,{id:`memory-agent-role-options`,children:d.map(e=>(0,U.jsx)(`option`,{value:e},e))})]}),(0,U.jsxs)(`section`,{className:`grid gap-3 border border-border/75 bg-card/45 p-4 sm:grid-cols-2`,children:[(0,U.jsxs)(`div`,{className:`sm:col-span-2`,children:[(0,U.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:c(`activity:memoryManager.editorRelationships`)}),(0,U.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:c(`activity:memoryManager.editorRelationshipsHint`)})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-supersedes`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorSupersedes`)}),(0,U.jsx)(R,{id:`memory-supersedes`,value:n.supersedes,onChange:e=>m(`supersedes`,e.target.value),placeholder:c(`activity:memEditor.memIdMemId`),className:`h-10 bg-background font-mono text-xs`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-contradicts`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorContradicts`)}),(0,U.jsx)(R,{id:`memory-contradicts`,value:n.contradicts,onChange:e=>m(`contradicts`,e.target.value),placeholder:c(`activity:memEditor.memIdMemId`),className:`h-10 bg-background font-mono text-xs`})]})]}),(0,U.jsxs)(`section`,{className:`space-y-2`,children:[(0,U.jsx)(`h3`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memEditor.audienceOptional`)}),(0,U.jsx)(`p`,{className:`text-[10px] text-muted-foreground/70`,children:c(`activity:memEditor.targetThisMemoryToSpecificAgent`)}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-audience-roles`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memEditor.roles`)}),(0,U.jsx)(R,{id:`memory-audience-roles`,value:n.audienceRoles,onChange:e=>m(`audienceRoles`,e.target.value),placeholder:c(`activity:memEditor.reviewerRefactorPlanner`),className:`h-9 bg-background font-mono text-xs`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-audience-task-types`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memoryManager.editorTaskTypes`)}),(0,U.jsx)(R,{id:`memory-audience-task-types`,value:n.audienceTaskTypes,onChange:e=>m(`audienceTaskTypes`,e.target.value),placeholder:c(`activity:memEditor.reviewRefactorBugfix`),className:`h-9 bg-background font-mono text-xs`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`label`,{htmlFor:`memory-audience-modes`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:c(`activity:memEditor.modes`)}),(0,U.jsx)(R,{id:`memory-audience-modes`,value:n.audienceModes,onChange:e=>m(`audienceModes`,e.target.value),placeholder:c(`activity:memEditor.teachCodeReview`),className:`h-9 bg-background font-mono text-xs`})]})]})]})})]})}function Xe({searchQuery:e,statusFilter:r,kindFilter:i,audienceOnly:o,tagFilter:s,hasFilters:c,allTags:l,stats:u,onSearchChange:d,onStatusFilterChange:f,onKindFilterChange:p,onToggleAudienceOnly:m,onTagFilterChange:h,onClearFilters:g}){let{t:_}=t(),[v,y]=(0,W.useState)(!!s),b=v||!!s,C=l.length>0;return(0,U.jsxs)(`div`,{className:`shrink-0 space-y-2 overflow-hidden border-b border-border/70 bg-card/45 p-3`,children:[(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,U.jsx)(x,{className:`pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground`}),(0,U.jsx)(R,{"aria-label":_(`activity:memoryManager.searchAria`),value:e,onChange:e=>d(e.target.value),placeholder:_(`activity:memoryManager.searchPlaceholder`),className:`h-10 min-w-0 bg-background pl-9 pr-8 text-xs`}),e&&(0,U.jsx)(`button`,{type:`button`,"aria-label":_(`activity:memoryManager.clearSearchAria`),onClick:()=>d(``),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-muted-foreground hover:text-foreground`,children:(0,U.jsx)(ee,{className:`size-3.5`})})]}),(0,U.jsx)(L,{variant:o?`default`:`ghost`,size:`icon`,onClick:m,"aria-label":_(`activity:memoryManager.audienceFilterAria`),title:_(`activity:memoryManager.audienceFilterTitle`),className:`shrink-0`,children:(0,U.jsx)(S,{className:`size-4`})}),c&&(0,U.jsx)(L,{variant:`ghost`,size:`icon`,onClick:g,"aria-label":_(`activity:memoryManager.clearFiltersAria`),title:_(`activity:memoryManager.clearFiltersTitle`),children:(0,U.jsx)(n,{className:`size-4`})})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,U.jsx)(`label`,{className:`sr-only`,htmlFor:`memory-status-filter`,children:_(`activity:memoryManager.filterByStatus`)}),(0,U.jsxs)(`select`,{id:`memory-status-filter`,value:r,onChange:e=>f(e.target.value),className:`h-9 min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,U.jsx)(`option`,{value:`all`,children:_(`activity:memoryManager.allStatuses`)}),Oe.map(e=>(0,U.jsxs)(`option`,{value:e,children:[e,` · `,u?.byStatus[e]??0]},e))]}),(0,U.jsx)(`label`,{className:`sr-only`,htmlFor:`memory-kind-filter`,children:_(`activity:memoryManager.filterByKind`)}),(0,U.jsxs)(`select`,{id:`memory-kind-filter`,value:i,onChange:e=>p(e.target.value),className:`h-9 min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,U.jsx)(`option`,{value:`all`,children:_(`activity:memoryManager.allKinds`)}),Te.map(e=>(0,U.jsxs)(`option`,{value:e,children:[Ae[e],` · `,u?.byKind[e]??0]},e))]})]}),C&&(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>{s||y(e=>!e)},"aria-expanded":b,"aria-controls":`memory-tags-panel`,disabled:!!s,className:P(`flex items-center gap-1.5 px-1 py-0.5 text-[10px] uppercase tracking-wide transition-colors`,b?`text-foreground`:`text-muted-foreground hover:text-foreground`,!!s&&`cursor-default`),title:s?`Active filter: ${s} (click the chip to clear)`:b?`Hide tag filters`:`Show tag filters (${l.length})`,children:[(0,U.jsx)(ie,{className:P(`size-3 transition-transform`,!b&&`-rotate-90`)}),(0,U.jsx)(a,{className:`size-3`}),(0,U.jsx)(`span`,{className:`font-semibold`,children:_(`activity:memoryManager.tagsLabel`)}),(0,U.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:l.length})]}),s&&(0,U.jsx)(`span`,{role:`status`,"aria-label":`Active tag filter: ${s}`,className:`border border-info/55 bg-info/10 px-1 font-mono text-[9px] uppercase text-info`,children:s})]}),C&&b&&(0,U.jsxs)(`fieldset`,{id:`memory-tags-panel`,className:`min-w-0 border-0 p-0`,children:[(0,U.jsx)(`legend`,{className:`sr-only`,children:_(`activity:memoryManager.popularTags`)}),(0,U.jsx)(`div`,{className:`no-scrollbar flex gap-1.5 overflow-x-auto pb-0.5`,children:l.slice(0,18).map(([e,t])=>(0,U.jsxs)(`button`,{type:`button`,"aria-pressed":s===e,onClick:()=>h(s===e?null:e),className:P(`flex shrink-0 items-center gap-1 border px-2 py-1 text-[10px] transition-colors`,s===e?`border-info/55 bg-info/10 text-info`:`border-border/70 bg-background/45 text-muted-foreground hover:border-info/35 hover:text-foreground`),children:[(0,U.jsx)(a,{className:`size-2.5`}),` `,e,(0,U.jsx)(`span`,{className:`font-mono opacity-60`,children:t})]},e))})]})]})}var Ze=100;function Qe({memoryListRef:e,memories:n,filteredMemories:r,selectedId:i,onSelectMemory:a,onOpenCreate:o,onClearFilters:s}){let{t:c}=t(),l=r.length>Ze,u=re({count:r.length,getScrollElement:()=>e.current,estimateSize:()=>100,overscan:8,enabled:l});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-border/60 px-3 py-2 text-[10px] text-muted-foreground`,children:[(0,U.jsx)(`span`,{children:c(`activity:memoryManager.memoryCountSummary`,{shown:r.length,total:n.length})}),(0,U.jsx)(`span`,{className:`font-mono uppercase`,children:c(`activity:memoryManager.updatedSortLabel`)})]}),(0,U.jsx)(`section`,{ref:e,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,"aria-label":c(`activity:memoryManager.listAria`),children:r.length===0?(0,U.jsx)($e,{hasMemories:n.length>0,onOpenCreate:o,onClearFilters:s}):l?(0,U.jsx)(`div`,{style:{height:`${u.getTotalSize()}px`,width:`100%`,position:`relative`},children:u.getVirtualItems().map(e=>{let t=r[e.index];return t?(0,U.jsx)(`div`,{"data-index":e.index,ref:u.measureElement,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${e.start}px)`},children:(0,U.jsx)(et,{memory:t,isSelected:i===t.id,onClick:()=>a(t.id)})},t.id):null})}):r.map(e=>(0,U.jsx)(et,{memory:e,isSelected:i===e.id,onClick:()=>a(e.id)},e.id))})]})}function $e({hasMemories:e,onOpenCreate:r,onClearFilters:i}){let{t:a}=t();return(0,U.jsxs)(`div`,{className:`flex min-h-64 flex-col items-center justify-center px-6 text-center`,children:[(0,U.jsx)(`span`,{className:`flex size-12 items-center justify-center border border-dashed border-border text-muted-foreground`,children:(0,U.jsx)(le,{className:`size-5`})}),(0,U.jsx)(`h2`,{className:`mt-4 text-sm font-bold`,children:a(e?`activity:memoryManager.noMatching`:`activity:memoryManager.buildGraph`)}),(0,U.jsx)(`p`,{className:`mt-1 max-w-xs text-xs leading-5 text-muted-foreground`,children:a(e?`activity:memoryManager.emptyFiltered`:`activity:memoryManager.emptyCapture`)}),(0,U.jsxs)(L,{className:`mt-4`,variant:`outline`,size:`sm`,onClick:e?i:r,children:[e?(0,U.jsx)(n,{className:`size-3.5`}):(0,U.jsx)(p,{className:`size-3.5`}),a(e?`activity:memoryManager.clearFilters`:`activity:memoryManager.createFirst`)]})]})}function et({memory:e,isSelected:t,onClick:n}){return(0,U.jsxs)(`button`,{type:`button`,"aria-current":t?`true`:void 0,onClick:n,className:P(`group relative block w-full border-b border-border/55 px-3 py-3 text-left transition-[background-color,border-color] hover:bg-info/5`,t&&`bg-info/8`),children:[t&&(0,U.jsx)(`span`,{className:`absolute inset-y-0 left-0 w-0.5 bg-info shadow-[0_0_10px_hsl(var(--info)/0.7)]`}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`span`,{className:P(`truncate text-[10px] font-bold uppercase tracking-[0.1em]`,we(e.kind)),children:Ae[e.kind]??e.kind}),(0,U.jsx)(Ee,{status:e.status}),(0,U.jsxs)(`span`,{className:`ml-auto shrink-0 font-mono text-[9px] text-muted-foreground`,children:[`r`,e.revision]})]}),(0,U.jsx)(`p`,{className:P(`mt-2 line-clamp-2 text-xs leading-5 text-foreground/90`,e.status===`deleted`&&`line-through opacity-60`),children:B(e.text)}),(0,U.jsxs)(`div`,{className:`mt-2 flex min-w-0 items-center gap-1.5`,children:[(0,U.jsx)(`span`,{className:`border border-border/60 bg-background/50 px-1.5 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:e.scope}),e.audience&&(0,U.jsxs)(`span`,{className:`flex items-center gap-0.5 border border-primary/30 bg-primary/10 px-1.5 py-0.5 font-mono text-[9px] text-primary`,children:[(0,U.jsx)(S,{className:`size-2.5`}),(e.audience.roles??e.audience.taskTypes??e.audience.modes??[]).slice(0,1)[0]??`scoped`]}),e.tags.slice(0,2).map(e=>(0,U.jsxs)(`span`,{className:`max-w-24 truncate border border-border/60 px-1.5 py-0.5 font-mono text-[9px] text-muted-foreground`,children:[`#`,e]},e)),e.tags.length>2&&(0,U.jsxs)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:[`+`,e.tags.length-2]}),(0,U.jsx)(`span`,{className:`ml-auto shrink-0 text-[9px] text-muted-foreground`,children:Pe(e.updatedAt)}),(0,U.jsx)(C,{className:`size-3 shrink-0 text-muted-foreground transition-transform group-hover:translate-x-0.5 group-hover:text-info`})]})]})}function tt({query:e,channel:n,hits:r,loading:i,error:a,onOpenMemory:o,onClear:s}){let{t:c}=t();return e?(0,U.jsxs)(`section`,{"aria-label":c(`activity:memoryManager.searchBreakdownAria`),className:`border-b border-border/60 bg-card/35`,children:[(0,U.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between border-b border-border/55 px-3 py-2 text-[10px] text-muted-foreground`,children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(g,{className:`size-3 text-info`}),(0,U.jsx)(`span`,{className:`font-mono uppercase tracking-[0.1em]`,children:c(`activity:memoryManager.searchBreakdownTitle`,{query:e})}),n===`breakdown`&&(0,U.jsx)(`span`,{className:`border border-info/40 bg-info/8 px-1.5 py-0.5 font-mono text-[9px] uppercase text-info`,children:c(`activity:memoryManager.searchBreakdownDual`)}),n===`lexical`&&(0,U.jsx)(`span`,{className:`border border-border/60 px-1.5 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:c(`activity:memoryManager.searchBreakdownLexicalOnly`)})]}),(0,U.jsx)(`button`,{type:`button`,onClick:s,className:`font-mono text-[10px] uppercase text-muted-foreground hover:text-foreground`,children:c(`common:action.close`)})]}),i&&(0,U.jsx)(`p`,{className:`px-3 py-3 text-[10px] text-muted-foreground`,children:c(`activity:memoryManager.searchBreakdownLoading`)}),a&&(0,U.jsx)(`p`,{className:`border-t border-border/55 px-3 py-2 text-[10px] text-destructive`,role:`alert`,children:a}),!i&&!a&&r.length===0&&(0,U.jsx)(`p`,{className:`px-3 py-3 text-[10px] text-muted-foreground`,children:c(`activity:memoryManager.searchBreakdownEmpty`)}),(0,U.jsx)(`ul`,{className:`divide-y divide-border/55`,children:r.map(e=>(0,U.jsx)(nt,{hit:e,onOpenMemory:o},e.memory.id))})]}):null}function nt({hit:e,onOpenMemory:n}){let{t:r}=t(),i=rt(e.lexicalScore),a=rt(e.vectorScore),o=rt(e.finalScore),{accent:s,label:c}=it(e.source);return(0,U.jsx)(`li`,{children:(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n(e.memory.id),className:`group flex w-full min-w-0 items-start gap-3 px-3 py-2.5 text-left hover:bg-info/5`,children:[(0,U.jsx)(`span`,{className:P(`flex size-7 shrink-0 items-center justify-center border font-mono text-[9px] uppercase`,s),title:r(`activity:memoryManager.searchBreakdownSourceLabel`,{source:c}),children:e.source===`vector`?(0,U.jsx)(g,{className:`size-3.5`}):e.source===`both`?(0,U.jsx)(ce,{className:`size-3.5`}):(0,U.jsx)(l,{className:`size-3.5`})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`line-clamp-2 text-[11px] leading-5 text-foreground/90`,children:e.memory.text}),(0,U.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-x-3 gap-y-1 font-mono text-[9px] text-muted-foreground`,children:[(0,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`L`}),(0,U.jsx)(`span`,{className:`tabular-nums text-foreground/80`,children:i})]}),(0,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`V`}),(0,U.jsx)(`span`,{className:P(`tabular-nums`,e.vectorScore===null?`text-muted-foreground/50`:`text-foreground/80`),children:a})]}),(0,U.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`RRF`}),(0,U.jsx)(`span`,{className:`tabular-nums font-bold text-foreground`,children:o})]}),(0,U.jsx)(`span`,{className:`ml-auto uppercase text-[9px]`,children:c})]})]})]})})}function rt(e){return e===null?`—`:`${Math.round(e*100)}%`}function it(e){switch(e){case`vector`:return{accent:`border-accent/40 bg-accent/10 text-accent`,label:`vector`};case`both`:return{accent:`border-info/40 bg-info/10 text-info`,label:`both`};default:return{accent:`border-border/60 bg-background text-muted-foreground`,label:`lexical`}}}function at({onCapture:e}){let{t:n}=t();return(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center p-8 text-center`,children:[(0,U.jsxs)(`div`,{className:`relative flex size-20 items-center justify-center border border-info/25 bg-info/5 text-info`,children:[(0,U.jsx)(S,{className:`size-8`}),(0,U.jsx)(`span`,{className:`absolute inset-2 border border-info/10`})]}),(0,U.jsx)(`h2`,{className:`mt-5 text-lg font-bold`,children:n(`activity:memoryManager.emptyTitle`)}),(0,U.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-muted-foreground`,children:n(`activity:memoryManager.emptyBody`)}),(0,U.jsxs)(`div`,{className:`mt-6 grid w-full max-w-lg gap-2 sm:grid-cols-3`,children:[(0,U.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,U.jsx)(A,{className:`mx-auto size-4 text-success`}),(0,U.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:n(`activity:memoryManager.emptyVerifiedAnchors`)})]}),(0,U.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,U.jsx)(S,{className:`mx-auto size-4 text-info`}),(0,U.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:n(`activity:memoryManager.emptyTypedRelations`)})]}),(0,U.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,U.jsx)(p,{className:`mx-auto size-4 text-warning`}),(0,U.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:n(`activity:memoryManager.emptyAgentRecall`)})]})]}),(0,U.jsxs)(L,{onClick:e,children:[(0,U.jsx)(p,{className:`size-4`}),` `,n(`activity:memoryManager.captureButton`)]})]})}function ot({wsConnected:e,refreshing:n,onRefresh:i,onCreate:a}){let{t:o}=t(),s=fe(e=>e.setCurrentView);return(0,U.jsxs)(`header`,{className:`relative shrink-0 overflow-hidden border-b border-border/70 bg-card/72 px-4 py-3 backdrop-blur-xl sm:px-5`,children:[(0,U.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 right-0 w-1/2 bg-[radial-gradient(circle_at_right,hsl(var(--info)/0.11),transparent_68%)]`}),(0,U.jsxs)(`div`,{className:`relative flex flex-wrap items-center gap-3`,children:[(0,U.jsx)(L,{variant:`ghost`,size:`icon`,onClick:()=>s(`chat`),"aria-label":o(`activity:memoryManager.backToChat`),title:o(`activity:memoryManager.backToChat`),children:(0,U.jsx)(r,{className:`size-4`})}),(0,U.jsx)(`span`,{className:`flex size-10 items-center justify-center border border-info/40 bg-info/10 text-info shadow-[0_0_20px_hsl(var(--info)/0.12)]`,children:(0,U.jsx)(S,{className:`size-5`})}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,U.jsx)(`h1`,{className:`text-base font-bold sm:text-lg`,children:o(`activity:memoryManager.sageHeading`)}),(0,U.jsx)(`span`,{className:`border border-success/35 bg-success/10 px-2 py-0.5 font-mono text-[9px] font-bold uppercase text-success`,children:o(`activity:memoryManager.projectKnowledge`)})]}),(0,U.jsx)(`p`,{className:`mt-0.5 max-w-2xl text-[10px] text-muted-foreground sm:text-xs`,children:o(`activity:memoryManager.sageSubtitle`)})]}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,U.jsxs)(`span`,{className:P(`hidden items-center gap-1.5 border px-2 py-1 font-mono text-[9px] uppercase sm:flex`,e?`border-success/30 text-success`:`border-warning/30 text-warning`),children:[(0,U.jsx)(`span`,{className:`size-1.5 bg-current`}),` `,o(e?`activity:memoryManager.liveStore`:`activity:memoryManager.reconnecting`)]}),(0,U.jsxs)(L,{variant:`outline`,size:`sm`,onClick:i,disabled:n,"aria-label":o(`activity:memoryManager.refreshAria`),children:[(0,U.jsx)(N,{className:P(`size-3.5`,n&&`animate-spin`)}),(0,U.jsx)(`span`,{className:`hidden sm:inline`,children:o(`common:action.refresh`)})]}),(0,U.jsxs)(L,{size:`sm`,onClick:a,children:[(0,U.jsx)(p,{className:`size-3.5`}),` `,o(`activity:memoryManager.newMemory`)]})]})]})]})}function st({stats:e,memories:n,filteredCount:r,allTagsCount:i}){let{t:a}=t(),o=n.filter(e=>e.audience).length,s=new Set;if(o>0){for(let e of n)if(e.audience){for(let t of e.audience.roles??[])s.add(t);for(let t of e.audience.taskTypes??[])s.add(t);for(let t of e.audience.modes??[])s.add(t)}}return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`grid shrink-0 grid-cols-2 gap-px border-b border-border/70 bg-border/60 sm:grid-cols-4`,children:[(0,U.jsx)(je,{label:a(`activity:memoryManager.tabMemories`),value:e?.total??n.length,hint:`${r} visible`}),(0,U.jsx)(je,{label:a(`activity:memoryManager.tabActive`),value:e?.byStatus.active??n.filter(e=>e.status===`active`).length,hint:`retrievable`,tone:`success`}),(0,U.jsx)(je,{label:a(`activity:memoryManager.tabNeedsReview`),value:(e?.byStatus.stale??0)+(e?.byStatus.contradicted??0),hint:a(`activity:memoryManager.staleConflicts`),tone:`warning`}),(0,U.jsx)(`div`,{className:`hidden sm:block`,children:(0,U.jsx)(je,{label:a(`activity:memoryManager.tabGraphEdges`),value:e?.edges??0,hint:`${i} tags`,tone:`info`})})]}),o>0&&(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border/70 bg-primary/5 px-4 py-1.5`,children:[(0,U.jsx)(S,{className:`size-3.5 text-primary`}),(0,U.jsxs)(`span`,{className:`text-[11px] font-medium text-primary`,children:[o,` audience-scoped memory`,o===1?``:`ies`]}),s.size>0&&(0,U.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`(`,[...s].sort().join(`, `),`)`]})]})]})}function ct({listCandidates:e,resolveCandidate:n,onOpenMemory:r,client:i,active:a}){let{t:o}=t(),[s,c]=(0,W.useState)([]),[l,d]=(0,W.useState)(!1),[f,p]=(0,W.useState)(null),[m,h]=(0,W.useState)(null),[g,_]=(0,W.useState)(!1),[v,y]=(0,W.useState)(()=>new Set),b=(0,W.useRef)(0),x=(0,W.useCallback)(()=>{let t=++b.current;d(!0),p(null);let n=i.on(`memory.sage.listCandidates`,e=>{if(t===b.current){if(n(),e.payload.error)p(String(e.payload.error)),c([]);else{let t=(Array.isArray(e.payload.candidates)?e.payload.candidates:[]).filter(e=>e.status===`pending`);c(t),y(e=>{let n=new Set;for(let r of e)t.some(e=>e.id===r)&&n.add(r);return n})}d(!1)}}),r=setTimeout(()=>{t===b.current&&(n(),d(!1),p(o(`activity:memoryManager.reviewLoadTimeout`)))},15e3);return e({includeResolved:!1},{echoToChat:!1}),()=>{clearTimeout(r),n()}},[i,e,o]);(0,W.useEffect)(()=>{if(a)return x()},[a,x]);let S=(0,W.useCallback)((e,t)=>new Promise(r=>{let a=i.on(`memory.sage.candidateResolve`,e=>{a();let t=e.payload.error;r(!t)});n({candidateId:e,action:t,reason:t===`reject`?`Rejected via Memory Review tab`:void 0},{echoToChat:!1}),setTimeout(()=>{a(),r(!1)},15e3)}),[i,n]),C=(0,W.useCallback)(async(e,t)=>{h(e),await S(e,t),h(null),x()},[x,S]),w=(0,W.useCallback)(async e=>{let t=[...v];if(t.length!==0){_(!0);for(let n of t)await S(n,e);_(!1),y(new Set),x()}},[x,S,v]),T=e=>{y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},E=()=>{y(new Set(s.map(e=>e.id)))},D=()=>y(new Set);if(l&&s.length===0)return(0,U.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-2 p-6 text-sm text-muted-foreground`,children:[(0,U.jsx)(k,{className:`size-4 animate-spin`}),o(`activity:memoryManager.reviewLoading`)]});if(f&&s.length===0)return(0,U.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 p-6 text-center`,children:[(0,U.jsx)(u,{className:`size-5 text-warning`}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:f}),(0,U.jsxs)(L,{size:`sm`,variant:`outline`,onClick:()=>x(),children:[(0,U.jsx)(N,{className:`size-3.5`}),` `,o(`common:action.retry`)]})]});if(s.length===0)return(0,U.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-2 p-8 text-center`,children:[(0,U.jsx)(A,{className:`size-6 text-success`}),(0,U.jsx)(`p`,{className:`text-sm font-medium`,children:o(`activity:memoryManager.reviewEmptyTitle`)}),(0,U.jsx)(`p`,{className:`max-w-sm text-xs text-muted-foreground`,children:o(`activity:memoryManager.reviewEmptyHint`)}),(0,U.jsxs)(L,{size:`sm`,variant:`ghost`,onClick:()=>x(),children:[(0,U.jsx)(N,{className:`size-3.5`}),` `,o(`common:action.refresh`)]})]});let O=v.size,te=O===s.length&&s.length>0;return(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-2 border-b border-border/60 px-3 py-2`,children:[(0,U.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`,children:o(`activity:memoryManager.reviewPendingCount`,{count:s.length})}),(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,U.jsx)(L,{size:`sm`,variant:`ghost`,className:`h-7 text-[11px]`,onClick:te?D:E,children:o(te?`activity:memoryManager.reviewClearSelection`:`activity:memoryManager.reviewSelectAll`)}),(0,U.jsxs)(L,{size:`sm`,className:`h-7`,disabled:O===0||g,onClick:()=>void w(`accept`),children:[g?(0,U.jsx)(k,{className:`size-3 animate-spin`}):(0,U.jsx)(A,{className:`size-3`}),o(`activity:memoryManager.reviewBulkAccept`),O>0?` (${O})`:``]}),(0,U.jsxs)(L,{size:`sm`,variant:`outline`,className:`h-7`,disabled:O===0||g,onClick:()=>void w(`reject`),children:[(0,U.jsx)(ee,{className:`size-3`}),o(`activity:memoryManager.reviewBulkKeep`),O>0?` (${O})`:``]}),(0,U.jsx)(L,{size:`sm`,variant:`ghost`,className:`h-7`,onClick:()=>x(),disabled:l,children:(0,U.jsx)(N,{className:P(`size-3.5`,l&&`animate-spin`)})})]})]}),(0,U.jsx)(`ul`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto p-3`,children:s.map(e=>{let t=e.targetMemoryId??e.memoryId,n=e.reviewReason??e.reason??``,i=m===e.id||g,a=v.has(e.id);return(0,U.jsx)(`li`,{className:P(`rounded-md border bg-card/60 p-3 text-sm shadow-sm`,a?`border-primary/50 ring-1 ring-primary/20`:`border-border/70`),children:(0,U.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,U.jsx)(`input`,{type:`checkbox`,className:`mt-1 size-3.5 accent-primary`,checked:a,disabled:g,onChange:()=>T(e.id),"aria-label":o(`activity:memoryManager.reviewSelectOne`)}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 text-[10px] uppercase tracking-wide text-muted-foreground`,children:[(0,U.jsx)(`span`,{className:`font-mono text-warning`,children:e.suggestedAction??`review`}),(0,U.jsx)(`span`,{children:`·`}),(0,U.jsx)(`span`,{children:Pe(e.createdAt)}),e.tags?.includes(`triage`)&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{children:`·`}),(0,U.jsx)(`span`,{className:`text-info`,children:`triage`})]})]}),(0,U.jsx)(`p`,{className:`mt-1.5 text-[13px] leading-snug text-foreground`,children:B(e.text,220)}),n?(0,U.jsx)(`p`,{className:`mt-1 text-[11px] text-muted-foreground`,children:n}):null,t?(0,U.jsxs)(`button`,{type:`button`,className:`mt-1 font-mono text-[10px] text-primary hover:underline`,onClick:()=>r?.(t),children:[t.slice(0,16),`…`]}):null,(0,U.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:[(0,U.jsxs)(L,{size:`sm`,className:`h-7`,disabled:i,onClick:()=>void C(e.id,`accept`),children:[m===e.id?(0,U.jsx)(k,{className:`size-3 animate-spin`}):(0,U.jsx)(A,{className:`size-3`}),o(`activity:memoryManager.actionAcceptDeletion`)]}),(0,U.jsxs)(L,{size:`sm`,variant:`outline`,className:`h-7`,disabled:i,onClick:()=>void C(e.id,`reject`),children:[(0,U.jsx)(ee,{className:`size-3`}),o(`activity:memoryManager.actionKeep`)]})]})]})]})},e.id)})})]})}function lt(e,t){let n=t.searchQuery.trim().toLowerCase();return e.filter(e=>{if(t.statusFilter!==`all`&&e.status!==t.statusFilter||t.kindFilter!==`all`&&e.kind!==t.kindFilter||t.tagFilter&&!e.tags.includes(t.tagFilter)||t.audienceOnly&&!e.audience)return!1;if(!n)return!0;let r=e.anchors.map(e=>[e.path,e.symbol,e.command,e.role].filter(Boolean).join(` `)).join(` `),i=e.audience?[e.audience.roles?.join(` `)??``,e.audience.taskTypes?.join(` `)??``,e.audience.modes?.join(` `)??``].join(` `):``;return[e.id,e.text,e.summary??``,e.kind,e.scope,e.tags.join(` `),r,i].join(` `).toLowerCase().includes(n)})}function ut(e){let t=new Map;for(let n of e)for(let e of n.tags)t.set(e,(t.get(e)??0)+1);return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0]))}function dt(e){if(!e)return[];let t=[];e.supersededBy&&t.push({relation:`Superseded by`,id:e.supersededBy});for(let n of e.supersedes??[])t.push({relation:`Supersedes`,id:n});for(let n of e.contradicts??[])t.push({relation:`Contradicts`,id:n});return t}var ft=100;function pt(){let{t:e}=t(),{client:n,listSageMemoriesPage:r,listMemoryCandidates:i,rememberSage:a,updateSage:o,deleteSage:s,getSageGraph:c,recoverSage:l,resolveMemoryCandidate:u,searchSageBreakdown:d}=ue(),f=de(e=>e.wsConnected),[p,m]=(0,W.useState)([]),[h,g]=(0,W.useState)(null),[_,v]=(0,W.useState)(!0),[y,b]=(0,W.useState)(!1),[x,S]=(0,W.useState)(null),[ee,C]=(0,W.useState)(null),[w,T]=(0,W.useState)(null),[E,D]=(0,W.useState)(null),[O,te]=(0,W.useState)([]),[ne,re]=(0,W.useState)([]),[ie,k]=(0,W.useState)(null),[ae,oe]=(0,W.useState)(!1),[se,A]=(0,W.useState)(!1),[j,ce]=(0,W.useState)(!1),[M,le]=(0,W.useState)(Ce),[N,P]=(0,W.useState)(Ce),[fe,F]=(0,W.useState)(null),[pe,me]=(0,W.useState)(null),[he,ge]=(0,W.useState)({hits:[],channel:void 0,loading:!1,error:null}),[I,L]=(0,W.useState)(``),[R,_e]=(0,W.useState)(`all`),[z,ye]=(0,W.useState)(`all`),[be,xe]=(0,W.useState)(!1),[B,we]=(0,W.useState)(null),[Te,Ee]=(0,W.useState)(`active`),V=Te===`deleted`,De=Te===`review`,[Oe,ke]=(0,W.useState)(null),[Ae,je]=(0,W.useState)(!1),[Me,Ne]=(0,W.useState)(!1),[Pe,Fe]=(0,W.useState)({}),[U,Ie]=(0,W.useState)(!1),[G,Le]=(0,W.useState)(null),Re=(0,W.useRef)(!1),ze=(0,W.useRef)(0),K=(0,W.useRef)(null),q=(0,W.useRef)(!0),Be=(0,W.useRef)(0),J=(0,W.useRef)(0),Y=(0,W.useRef)(null),X=(0,W.useRef)(null),Ve=(0,W.useMemo)(()=>{let e=new Set;for(let t of p)for(let n of t.anchors??[])n.type===`file`&&n.path&&e.add(n.path);return e},[p]),He=(0,W.useMemo)(()=>JSON.stringify(M)!==JSON.stringify(N),[N,M]),Z=(0,W.useMemo)(()=>p.find(e=>e.id===E)??null,[p,E]),Ue=(0,W.useCallback)(e=>{let t=e!==null,i=++Be.current;Y.current?.(),S(null),t?Ne(!0):(b(!0),Re.current||v(!0));let a=()=>{},o=null,s=!1,c=()=>{s||(s=!0,o!==null&&clearTimeout(o),a(),Y.current===c&&(Y.current=null))};a=n.on(`memory.sage.listPage`,e=>{if(i!==Be.current||!q.current){c();return}if(c(),e.payload.error)S(e.payload.error);else{let n=e.payload.memories??[];m(e=>t?[...e,...n]:n),ke(e.payload.nextCursor??null),je(!!e.payload.nextCursor);let r=e.payload.statusCounts??{};Fe(r);let i=Object.values(r).reduce((e,t)=>e+t,0);e.payload.stats?g(e.payload.stats):g(e=>({total:i,byStatus:r,byKind:e?.byKind??{},edges:e?.edges??0})),Re.current=!0,t||D(e=>e&&n.some(t=>t.id===e)?e:null)}v(!1),b(!1),Ne(!1)}),o=setTimeout(()=>{i!==Be.current||!q.current||(c(),S(`The memory store did not respond. Check the WebSocket connection and try again.`),v(!1),b(!1),Ne(!1))},2e4),Y.current=c,r({limit:ft,...V?{statuses:[`deleted`]}:{},...e?{cursor:e}:{},...I.trim()?{query:I.trim()}:{},...z===`all`?{}:{kind:z}},{echoToChat:!1})},[n,z,r,I,V]),Q=(0,W.useCallback)(()=>{ke(null),je(!1),Ue(null)},[Ue]),We=(0,W.useCallback)(()=>{Me||!Oe||Ue(Oe)},[Ue,Me,Oe]);(0,W.useEffect)(()=>(q.current=!0,Q(),()=>{q.current=!1,Be.current+=1,J.current+=1,Y.current?.(),X.current?.(),K.current?.()}),[Q]),(0,W.useEffect)(()=>{let e=I.trim();if(K.current?.(),e.length===0){ge({hits:[],channel:void 0,loading:!1,error:null});return}let t=++ze.current;ge(e=>({...e,loading:!0,error:null}));let r=()=>{},i=()=>{K.current===i&&(K.current=null),r()};K.current=i,r=n.on(`memory.sage.searchBreakdown`,e=>{if(t!==ze.current||!q.current){i();return}if(i(),e.payload.error){ge({hits:[],channel:void 0,loading:!1,error:e.payload.error});return}ge({hits:e.payload.hits??[],channel:e.payload.source,loading:!1,error:null})}),d({query:e,limit:20})},[I,n,d]),(0,W.useEffect)(()=>{if(te([]),re([]),k(null),!E){oe(!1);return}let e=E;oe(!0);let t=null,r=n.on(`memory.sage.graph`,n=>{n.payload.query===e&&(t!==null&&clearTimeout(t),te(n.payload.edges??[]),re(n.payload.memories??[]),k(n.payload.error??null),oe(!1))});return t=setTimeout(()=>{k(`Relationship graph did not respond in time.`),oe(!1)},15e3),c(e,{maxDepth:1,limit:120},{echoToChat:!1}),()=>{t!==null&&clearTimeout(t),r()}},[n,c,E]);let Ge=(0,W.useRef)(f);(0,W.useEffect)(()=>{f&&!Ge.current&&Re.current&&Q(),Ge.current=f},[Q,f]),(0,W.useEffect)(()=>{if(!w)return;let e=setTimeout(()=>T(null),4e3);return()=>clearTimeout(e)},[w]);let $=(0,W.useCallback)(()=>!He||!se&&!j||window.confirm(`Discard the unsaved memory changes?`),[j,He,se]),Ke=(0,W.useCallback)(()=>{if(!$())return;let e=Ce();le(e),P(e),ce(!0),A(!1),D(null),C(null)},[$]),qe=(0,W.useCallback)(e=>{$()&&(D(e),ce(!1),A(!1),C(null))},[$]),Je=(0,W.useCallback)(e=>{let t=e===void 0?Z:p.find(t=>t.id===e)??null;if(!t||t.status===`deleted`)return;e!==void 0&&D(e);let n=Se(t);le(n),P(n),A(!0),ce(!1),C(null)},[p,Z]),Ye=(0,W.useCallback)(()=>{$()&&(A(!1),ce(!1),C(null))},[$]),Xe=(0,W.useCallback)((t,r,i)=>{if(!M.text.trim()){C(`Memory content is required.`);return}let a=++J.current;X.current?.(),F(i),C(null),T(null);let o=()=>{},s=null,c=!1,l=()=>{c||(c=!0,s!==null&&clearTimeout(s),o(),X.current===l&&(X.current=null))},u=t=>{if(a!==J.current||!q.current){l();return}if(l(),F(null),t.payload.error||!t.payload.memory){C(t.payload.error??`The server returned no memory record.`);return}let n=t.payload.memory;m(e=>{let t=e.filter(e=>e.id!==n.id);return[n,...t]}),D(n.id),ce(!1),A(!1),T(e(i===`create`?`activity:memoryManager.memoryCaptured`:`activity:memoryManager.memoryUpdated`)),Q()};o=t===`memory.sage.remember`?n.on(`memory.sage.remember`,u):n.on(`memory.sage.update`,u),s=setTimeout(()=>{a!==J.current||!q.current||(l(),F(null),C(e(`activity:memoryManager.mutationTimeout`,{verb:e(i===`create`?`activity:memoryManager.createAction`:`common:action.save`)})))},2e4),X.current=l,r()},[n,M.text,Q,e]),Ze=(0,W.useCallback)(()=>{Xe(`memory.sage.remember`,()=>a({text:M.text.trim(),kind:M.kind,scope:M.scope,tags:H(M.tags),importance:M.importance,confidence:M.confidence,freshness:M.freshness,anchors:ve(M.anchors),...H(M.audienceRoles).length||H(M.audienceTaskTypes).length||H(M.audienceModes).length?{audience:{roles:H(M.audienceRoles),taskTypes:H(M.audienceTaskTypes),modes:H(M.audienceModes)}}:{},supersedes:H(M.supersedes),contradicts:H(M.contradicts)},{echoToChat:!1}),`create`)},[M,a,Xe]),Qe=(0,W.useCallback)(()=>{Z&&Xe(`memory.sage.update`,()=>o(Z.id,{text:M.text.trim(),kind:M.kind,status:M.status,tags:H(M.tags),importance:M.importance,confidence:M.confidence,freshness:M.freshness,anchors:ve(M.anchors),...H(M.audienceRoles).length||H(M.audienceTaskTypes).length||H(M.audienceModes).length?{audience:{roles:H(M.audienceRoles),taskTypes:H(M.audienceTaskTypes),modes:H(M.audienceModes)}}:{},supersedes:H(M.supersedes),contradicts:H(M.contradicts)},{echoToChat:!1}),`update`)},[M,Xe,Z,o]),$e=(0,W.useCallback)(()=>{if(!pe)return;let e=++J.current;X.current?.(),F(`delete`),C(null);let t=()=>{},r=null,i=!1,a=()=>{i||(i=!0,r!==null&&clearTimeout(r),t(),X.current===a&&(X.current=null))};t=n.on(`memory.sage.delete`,t=>{if(e!==J.current||!q.current){a();return}if(a(),F(null),!t.payload.success){C(t.payload.message||`Delete failed.`);return}me(null),D(null),A(!1),T(`Memory deleted and relationship edges cleaned up.`),Q()}),r=setTimeout(()=>{e!==J.current||!q.current||(a(),F(null),C(`Delete timed out. The memory may still exist; refresh to confirm.`))},2e4),X.current=a,s(pe,`Deleted from the WebUI Memory Manager.`)},[n,s,pe,Q]),et=(0,W.useCallback)((e,t,r)=>{let i=++J.current;X.current?.(),C(null);let a=()=>{},o=null,s=!1,c=()=>{s||(s=!0,o!==null&&clearTimeout(o),a(),X.current===c&&(X.current=null))};a=n.on(e,e=>{if(i!==J.current||!q.current){c();return}c(),r(e.payload)}),o=setTimeout(()=>{i!==J.current||!q.current||(c(),C(`The memory store did not respond. Check the WebSocket connection and try again.`))},2e4),X.current=c,t()},[n]),tt=(0,W.useMemo)(()=>lt(p,{searchQuery:I,statusFilter:R,kindFilter:z,tagFilter:B,audienceOnly:be}),[be,z,p,I,R,B]),nt=(0,W.useMemo)(()=>ut(p),[p]),rt=(0,W.useMemo)(()=>dt(Z),[Z]),it=(0,W.useCallback)(()=>{L(``),_e(`all`),ye(`all`),xe(!1),we(null)},[]);return{client:n,wsConnected:f,memories:p,stats:h,initialLoading:_,refreshing:y,loadError:x,mutationError:ee,setMutationError:C,notice:w,setNotice:T,selectedId:E,setSelectedId:D,selectedMemory:Z,graphEdges:O,graphMemories:ne,graphError:ie,graphLoading:ae,editing:se,creating:j,draft:M,setDraft:le,busyAction:fe,deletingId:pe,setDeletingId:me,searchQuery:I,setSearchQuery:L,searchBreakdown:he,clearSearchBreakdown:()=>{ze.current+=1,K.current?.(),ge({hits:[],channel:void 0,loading:!1,error:null})},statusFilter:R,setStatusFilter:_e,kindFilter:z,setKindFilter:ye,audienceOnly:be,setAudienceOnly:xe,tagFilter:B,setTagFilter:we,libraryView:Te,setLibraryView:Ee,showDeleted:V,showReview:De,hasMore:Ae,loadingMore:Me,statusCounts:Pe,drawerOpen:U,setDrawerOpen:Ie,currentFilePath:G,setCurrentFilePath:Le,knownFilePaths:Ve,filteredMemories:tt,allTags:nt,relatedMemories:rt,hasFilters:!!(I||R!==`all`||z!==`all`||B||be),detailOpen:j||!!Z,drawerActive:U&&!!G,loadMemories:Q,loadMore:We,openCreate:Ke,openMemory:qe,openEdit:Je,cancelEditor:Ye,submitCreate:Ze,submitUpdate:Qe,confirmDelete:$e,sendWithAck:et,clearFilters:it,resolveMemoryCandidate:u,updateSage:o,recoverSage:l,listMemoryCandidates:i}}function mt(){let{t:e}=t(),n=fe(e=>e.setCurrentView),i=_e(`memory`),a=pt();return a.initialLoading&&a.memories.length===0?(0,U.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,"aria-busy":`true`,children:[(0,U.jsxs)(`div`,{className:`border-b border-border/70 bg-card/70 px-5 py-4`,children:[(0,U.jsx)(`div`,{className:`h-3 w-28 animate-pulse bg-muted`}),(0,U.jsx)(`div`,{className:`mt-3 h-7 w-56 animate-pulse bg-muted`})]}),(0,U.jsxs)(`div`,{className:`grid flex-1 gap-px bg-border/60 md:grid-cols-[minmax(300px,0.82fr)_minmax(0,1.35fr)]`,children:[(0,U.jsx)(`div`,{className:`space-y-px bg-background p-4`,children:Array.from({length:7},(e,t)=>(0,U.jsx)(`div`,{className:`h-24 animate-pulse border border-border/60 bg-card/45`},t))}),(0,U.jsx)(`div`,{className:`hidden bg-background p-6 md:block`,children:(0,U.jsx)(`div`,{className:`h-full animate-pulse border border-border/60 bg-card/35`})})]}),(0,U.jsx)(`span`,{className:`sr-only`,role:`status`,children:e(`activity:memoryManager.loadingSageContent`)})]}):a.loadError&&a.memories.length===0?(0,U.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center bg-background p-6`,children:(0,U.jsxs)(`div`,{className:`max-w-md border border-destructive/35 bg-card p-6 shadow-2xl`,children:[(0,U.jsx)(`span`,{className:`flex size-11 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,U.jsx)(u,{className:`size-5`})}),(0,U.jsx)(`h2`,{className:`mt-4 text-lg font-bold`,children:e(`activity:memoryManager.storeUnavailable`)}),(0,U.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-muted-foreground`,children:a.loadError}),(0,U.jsxs)(`div`,{className:`mt-5 flex gap-2`,children:[(0,U.jsxs)(L,{onClick:a.loadMemories,children:[(0,U.jsx)(N,{className:`size-4`}),` `,e(`common:action.retry`)]}),(0,U.jsxs)(L,{variant:`outline`,onClick:()=>n(`chat`),children:[(0,U.jsx)(r,{className:`size-4`}),` `,e(`activity:memoryManager.backToChat`)]})]})]})}):(0,U.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden bg-background`,children:[(0,U.jsx)(ot,{wsConnected:a.wsConnected,refreshing:a.refreshing,onRefresh:a.loadMemories,onCreate:a.openCreate}),(0,U.jsx)(st,{stats:a.stats,memories:a.memories,filteredCount:a.filteredMemories.length,allTagsCount:a.allTags.length}),(a.notice||a.loadError||a.mutationError)&&(0,U.jsxs)(`div`,{className:`shrink-0 border-b border-border/70 px-4 py-2`,"aria-live":`polite`,children:[a.notice&&(0,U.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 text-xs text-success`,children:[(0,U.jsx)(A,{className:`size-3.5`}),` `,a.notice]}),a.loadError&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 text-xs text-warning`,children:[(0,U.jsx)(u,{className:`size-3.5`}),` `,a.loadError,` Existing content remains available.`]}),a.mutationError&&!a.editing&&!a.creating&&(0,U.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 text-xs text-destructive`,children:[(0,U.jsx)(u,{className:`size-3.5`}),` `,a.mutationError]})]}),(0,U.jsxs)(`div`,{className:`grid min-h-0 flex-1 md:grid-cols-[minmax(320px,0.82fr)_minmax(0,1.35fr)]`,children:[(0,U.jsxs)(`section`,{className:P(`min-h-0 border-r border-border/70 bg-card/25`,a.detailOpen?`hidden md:flex md:flex-col`:`flex flex-col`),"aria-label":e(`activity:memoryManager.libraryAria`),children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 border-b border-border/60 px-3 pt-1`,role:`tablist`,"aria-label":e(`activity:memoryManager.viewAria`),children:[(0,U.jsx)(L,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":a.libraryView===`active`,onClick:()=>a.setLibraryView(`active`),className:P(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,a.libraryView===`active`?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:e(`activity:memoryManager.tabActive`)}),(0,U.jsx)(L,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":a.showReview,onClick:()=>a.setLibraryView(`review`),className:P(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,a.showReview?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:e(`activity:memoryManager.tabReview`)}),(0,U.jsxs)(L,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":a.showDeleted,onClick:()=>a.setLibraryView(`deleted`),className:P(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,a.showDeleted?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:[e(`activity:memoryManager.tabDeleted`),typeof a.statusCounts.deleted==`number`?` (${a.statusCounts.deleted})`:``]})]}),a.showReview?(0,U.jsx)(ct,{active:a.showReview,client:a.client,listCandidates:a.listMemoryCandidates,resolveCandidate:a.resolveMemoryCandidate,onOpenMemory:a.openMemory}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Xe,{searchQuery:a.searchQuery,statusFilter:a.statusFilter,kindFilter:a.kindFilter,audienceOnly:a.audienceOnly,tagFilter:a.tagFilter,hasFilters:a.hasFilters,allTags:a.allTags,stats:a.stats,onSearchChange:a.setSearchQuery,onStatusFilterChange:a.setStatusFilter,onKindFilterChange:a.setKindFilter,onToggleAudienceOnly:()=>a.setAudienceOnly(e=>!e),onTagFilterChange:a.setTagFilter,onClearFilters:a.clearFilters}),(0,U.jsx)(Qe,{memoryListRef:i,memories:a.memories,filteredMemories:a.filteredMemories,selectedId:a.selectedId,onSelectMemory:a.openMemory,onOpenCreate:a.openCreate,onClearFilters:a.clearFilters}),a.searchQuery.trim().length>0&&(0,U.jsx)(tt,{query:a.searchQuery.trim(),channel:a.searchBreakdown.channel,hits:a.searchBreakdown.hits,loading:a.searchBreakdown.loading,error:a.searchBreakdown.error,onOpenMemory:a.openMemory,onClear:a.clearSearchBreakdown}),a.hasMore?(0,U.jsx)(`div`,{className:`shrink-0 border-t border-border/60 p-2`,children:(0,U.jsx)(L,{type:`button`,variant:`outline`,size:`sm`,onClick:a.loadMore,disabled:a.loadingMore,className:`h-7 w-full text-[11px]`,children:a.loadingMore?e(`common:action.loading`):`Load more (${a.memories.length} loaded)`})}):null]})]}),(0,U.jsxs)(`section`,{className:P(`min-h-0 bg-background`,a.detailOpen?`flex flex-col`:`hidden md:flex md:flex-col`),"aria-label":e(`activity:memoryManager.detailAria`),children:[a.memories.some(e=>(e.anchors??[]).some(e=>e.type===`file`&&e.path))&&(0,U.jsx)(Je,{currentFilePath:a.currentFilePath,knownFilePaths:a.knownFilePaths,drawerActive:a.drawerActive,onFilePathChange:e=>{e&&a.knownFilePaths.has(e)?(a.setCurrentFilePath(e),a.setDrawerOpen(!0)):e?a.setCurrentFilePath(e):a.setCurrentFilePath(null)},onToggleDrawer:()=>{a.currentFilePath&&a.setDrawerOpen(e=>!e)}}),a.creating?(0,U.jsx)(Ye,{mode:`create`,draft:a.draft,busy:a.busyAction===`create`,error:a.mutationError,onChange:a.setDraft,onCancel:a.cancelEditor,onSubmit:a.submitCreate}):a.selectedMemory?a.editing?(0,U.jsx)(Ye,{mode:`edit`,draft:a.draft,busy:a.busyAction===`update`,error:a.mutationError,onChange:a.setDraft,onCancel:a.cancelEditor,onSubmit:a.submitUpdate}):a.drawerActive?(0,U.jsx)(Fe,{filePath:a.currentFilePath,open:a.drawerActive,onClose:()=>a.setDrawerOpen(!1),onShowMemory:e=>a.setSelectedId(e),onAcceptDeletion:(e,t)=>{a.sendWithAck(`memory.sage.candidateResolve`,()=>a.resolveMemoryCandidate({candidateId:e,action:`accept`}),n=>{if(n.error){a.setMutationError(n.error);return}a.setNotice(`Accepted hygiene review for ${t.slice(0,12)}… (candidate ${e.slice(0,12)}…).`),a.loadMemories()})},onKeep:(e,t)=>{a.sendWithAck(`memory.sage.candidateResolve`,()=>a.resolveMemoryCandidate({candidateId:e,action:`reject`}),n=>{if(n.error){a.setMutationError(n.error);return}a.setNotice(`Kept ${t.slice(0,12)}… (candidate ${e.slice(0,12)}… rejected).`),a.loadMemories()})},onUpdate:e=>{a.openEdit(e)},onMarkPermanent:e=>{a.sendWithAck(`memory.sage.update`,()=>a.updateSage(e,{persistence:`permanent`}),t=>{if(t.error||!t.memory){a.setMutationError(t.error??`The server returned no memory record.`);return}a.setNotice(`Memory ${e.slice(0,12)}… promoted to permanent.`),a.loadMemories()})},onRecover:e=>{a.sendWithAck(`memory.sage.recover`,()=>a.recoverSage({id:e,reason:`recovered via file drawer`}),t=>{if(t.error){a.setMutationError(t.error);return}a.setNotice(`Recovered ${e.slice(0,12)}…`),a.loadMemories()})}}):(0,U.jsx)(Z,{memory:a.selectedMemory,allMemories:[...a.memories,...a.graphMemories],relatedMemories:a.relatedMemories,graphEdges:a.graphEdges,graphLoading:a.graphLoading,graphError:a.graphError,onClose:()=>a.setSelectedId(null),onOpenMemory:a.openMemory,onEdit:a.openEdit,onDelete:()=>a.setDeletingId(a.selectedMemory.id),onTagSelect:e=>{a.setTagFilter(e),a.setSelectedId(null)},onNotice:a.setNotice}):(0,U.jsx)(at,{onCapture:a.openCreate})]})]}),(0,U.jsx)(Ie,{busyAction:a.busyAction,deletingId:a.deletingId,memories:a.memories,onCancel:()=>a.setDeletingId(null),onConfirm:a.confirmDelete,onOpenChange:e=>{!e&&a.busyAction!==`delete`&&a.setDeletingId(null)}})]})}export{mt as MemoryManager};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ba as t,Ci as n,Ga as r,dt as i,lt as a,mn as o,na as s,ra as c}from"./vendor-C_zEzV4N.js";import"./i18n-DiD9Wcep.js";import{t as l}from"./useWebSocket-DvMcAAgU.js";import{t as u}from"./ws-client-BVq0hf0a.js";import{t as d}from"./utils-tsZEnrBH.js";import{I as f}from"./stores-CzgPPQlG.js";var p=e(r(),1);function m(e){let t=f(e=>e.wsUrl),{listSavedProviders:n,listProviderModels:r}=l(),[i,a]=(0,p.useState)([]),[o,s]=(0,p.useState)({});return(0,p.useEffect)(()=>{let e=u(t),n=e.on(`providers.saved`,e=>{let t=e.payload;a((t.providers??[]).map(e=>e.id))}),r=e.on(`provider.models`,e=>{let t=e.payload;s(e=>({...e,[t.provider]:t.models??[]}))});return()=>{n(),r()}},[t]),(0,p.useEffect)(()=>{e&&n()},[e,n]),(0,p.useEffect)(()=>{if(e)for(let e of i)o[e]||r(e)},[e,i,o,r]),(0,p.useMemo)(()=>{let e=[];for(let t of i)for(let n of o[t]??[])n.outputModalities?.length&&!n.outputModalities.includes(`text`)||e.push({provider:t,model:n.id,label:n.name??n.id,description:n.description,contextWindow:n.contextWindow,outputModalities:n.outputModalities});return e},[i,o])}var h=a();function g({value:e,provider:r,candidates:a,placeholder:l,resetLabel:u,onPick:f,onReset:m,className:g}){let{t:_}=t(),[v,y]=(0,p.useState)(!1),[b,x]=(0,p.useState)(``),S=(0,p.useRef)(null);(0,p.useEffect)(()=>{if(!v)return;let e=e=>{S.current&&!S.current.contains(e.target)&&y(!1)};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[v]);let C=(0,p.useMemo)(()=>{let e=b.trim().toLowerCase();return(e?a.filter(t=>`${t.provider}/${t.model} ${t.label}`.toLowerCase().includes(e)):a).slice(0,60)},[a,b]);return(0,h.jsxs)(`div`,{ref:S,className:d(`relative`,g),children:[(0,h.jsxs)(`button`,{type:`button`,onClick:()=>y(e=>!e),className:`flex w-full items-center gap-1.5 rounded-md border border-border bg-muted px-2 py-1.5 text-left text-xs transition-colors hover:border-primary/45 hover:bg-muted/80`,children:[(0,h.jsx)(n,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,h.jsx)(`span`,{className:d(`min-w-0 flex-1 truncate`,e?`text-foreground`:`text-muted-foreground`),children:e?r?`${r}/${e}`:e:l??_(`activity:model.runDefault`)}),(0,h.jsx)(s,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}),v&&(0,h.jsxs)(`div`,{className:`sdd-rise absolute z-50 mt-1 max-h-72 w-full min-w-[240px] overflow-hidden rounded-md border border-border/80 bg-popover shadow-xl`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-1.5 border-b border-border/70 bg-muted/20 px-2 py-1.5`,children:[(0,h.jsx)(`input`,{value:b,onChange:e=>x(e.target.value),placeholder:_(`activity:model.filterPlaceholder`),className:`min-w-0 flex-1 bg-transparent text-xs outline-none placeholder:text-muted-foreground`}),b&&(0,h.jsx)(`button`,{type:`button`,onClick:()=>x(``),className:`text-muted-foreground hover:text-foreground`,children:(0,h.jsx)(i,{className:`h-3 w-3`})})]}),(0,h.jsxs)(`div`,{className:`max-h-60 overflow-y-auto py-1`,children:[m&&(0,h.jsxs)(`button`,{type:`button`,onClick:()=>{m(),y(!1)},className:`flex w-full items-center gap-1.5 px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,children:[(0,h.jsx)(o,{className:`h-3 w-3`}),` `,u??_(`activity:model.useRunDefault`)]}),C.map(t=>{let n=t.model===e&&(!r||t.provider===r);return(0,h.jsxs)(`button`,{type:`button`,onClick:()=>{f(t.model,t.provider),y(!1)},className:d(`flex w-full items-start gap-1.5 px-2 py-1.5 text-left text-xs transition-colors hover:bg-muted`,n?`bg-primary/8 text-primary`:`text-foreground`),children:[n?(0,h.jsx)(c,{className:`mt-0.5 h-3 w-3 shrink-0 text-primary`}):(0,h.jsx)(`span`,{className:`w-3 shrink-0`}),(0,h.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,h.jsx)(`span`,{className:`block truncate`,children:t.label}),t.description&&(0,h.jsx)(`span`,{className:`mt-0.5 block truncate text-[10px] text-muted-foreground`,children:t.description})]}),(0,h.jsx)(`span`,{className:`mt-0.5 shrink-0 font-mono text-[9px] text-muted-foreground`,children:t.provider})]},`${t.provider}/${t.model}`)}),C.length===0&&(0,h.jsx)(`div`,{className:`px-2 py-3 text-center text-[11px] text-muted-foreground`,children:a.length===0?_(`activity:model.loading`):_(`activity:model.noMatch`)})]})]})]})}export{m as n,g as t};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ba as t,Ci as n,Ga as r,dt as i,lt as a,mn as o,na as s,ra as c}from"./vendor-C_zEzV4N.js";import"./i18n-DbJfY4tY.js";import{t as l}from"./useWebSocket-D9Dy4-9x.js";import{t as u}from"./ws-client-CBfMQmW9.js";import{t as d}from"./utils-tsZEnrBH.js";import{I as f}from"./stores-C0xX0jn4.js";var p=e(r(),1);function m(e){let t=f(e=>e.wsUrl),{listSavedProviders:n,listProviderModels:r}=l(),[i,a]=(0,p.useState)([]),[o,s]=(0,p.useState)({});return(0,p.useEffect)(()=>{let e=u(t),n=e.on(`providers.saved`,e=>{let t=e.payload;a((t.providers??[]).map(e=>e.id))}),r=e.on(`provider.models`,e=>{let t=e.payload;s(e=>({...e,[t.provider]:t.models??[]}))});return()=>{n(),r()}},[t]),(0,p.useEffect)(()=>{e&&n()},[e,n]),(0,p.useEffect)(()=>{if(e)for(let e of i)o[e]||r(e)},[e,i,o,r]),(0,p.useMemo)(()=>{let e=[];for(let t of i)for(let n of o[t]??[])n.outputModalities?.length&&!n.outputModalities.includes(`text`)||e.push({provider:t,model:n.id,label:n.name??n.id,description:n.description,contextWindow:n.contextWindow,outputModalities:n.outputModalities});return e},[i,o])}var h=a();function g({value:e,provider:r,candidates:a,placeholder:l,resetLabel:u,onPick:f,onReset:m,className:g}){let{t:_}=t(),[v,y]=(0,p.useState)(!1),[b,x]=(0,p.useState)(``),S=(0,p.useRef)(null);(0,p.useEffect)(()=>{if(!v)return;let e=e=>{S.current&&!S.current.contains(e.target)&&y(!1)};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[v]);let C=(0,p.useMemo)(()=>{let e=b.trim().toLowerCase();return(e?a.filter(t=>`${t.provider}/${t.model} ${t.label}`.toLowerCase().includes(e)):a).slice(0,60)},[a,b]);return(0,h.jsxs)(`div`,{ref:S,className:d(`relative`,g),children:[(0,h.jsxs)(`button`,{type:`button`,onClick:()=>y(e=>!e),className:`flex w-full items-center gap-1.5 rounded-md border border-border bg-muted px-2 py-1.5 text-left text-xs transition-colors hover:border-primary/45 hover:bg-muted/80`,children:[(0,h.jsx)(n,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,h.jsx)(`span`,{className:d(`min-w-0 flex-1 truncate`,e?`text-foreground`:`text-muted-foreground`),children:e?r?`${r}/${e}`:e:l??_(`activity:model.runDefault`)}),(0,h.jsx)(s,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}),v&&(0,h.jsxs)(`div`,{className:`sdd-rise absolute z-50 mt-1 max-h-72 w-full min-w-[240px] overflow-hidden rounded-md border border-border/80 bg-popover shadow-xl`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-1.5 border-b border-border/70 bg-muted/20 px-2 py-1.5`,children:[(0,h.jsx)(`input`,{value:b,onChange:e=>x(e.target.value),placeholder:_(`activity:model.filterPlaceholder`),className:`min-w-0 flex-1 bg-transparent text-xs outline-none placeholder:text-muted-foreground`}),b&&(0,h.jsx)(`button`,{type:`button`,onClick:()=>x(``),className:`text-muted-foreground hover:text-foreground`,children:(0,h.jsx)(i,{className:`h-3 w-3`})})]}),(0,h.jsxs)(`div`,{className:`max-h-60 overflow-y-auto py-1`,children:[m&&(0,h.jsxs)(`button`,{type:`button`,onClick:()=>{m(),y(!1)},className:`flex w-full items-center gap-1.5 px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,children:[(0,h.jsx)(o,{className:`h-3 w-3`}),` `,u??_(`activity:model.useRunDefault`)]}),C.map(t=>{let n=t.model===e&&(!r||t.provider===r);return(0,h.jsxs)(`button`,{type:`button`,onClick:()=>{f(t.model,t.provider),y(!1)},className:d(`flex w-full items-start gap-1.5 px-2 py-1.5 text-left text-xs transition-colors hover:bg-muted`,n?`bg-primary/8 text-primary`:`text-foreground`),children:[n?(0,h.jsx)(c,{className:`mt-0.5 h-3 w-3 shrink-0 text-primary`}):(0,h.jsx)(`span`,{className:`w-3 shrink-0`}),(0,h.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,h.jsx)(`span`,{className:`block truncate`,children:t.label}),t.description&&(0,h.jsx)(`span`,{className:`mt-0.5 block truncate text-[10px] text-muted-foreground`,children:t.description})]}),(0,h.jsx)(`span`,{className:`mt-0.5 shrink-0 font-mono text-[9px] text-muted-foreground`,children:t.provider})]},`${t.provider}/${t.model}`)}),C.length===0&&(0,h.jsx)(`div`,{className:`px-2 py-3 text-center text-[11px] text-muted-foreground`,children:a.length===0?_(`activity:model.loading`):_(`activity:model.noMatch`)})]})]})]})}export{m as n,g as t};