@wrongstack/webui 1.0.4 → 1.0.6

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 (128) hide show
  1. package/dist/assets/AgentRosterView-Cat9dDuY.js +12 -0
  2. package/dist/assets/AnalyticsDashboard-BAC5fpQO.js +1 -0
  3. package/dist/assets/AudienceMemoryPanel-BOaFRWeR.js +3 -0
  4. package/dist/assets/ChangesView-D0oqt9WQ.js +1 -0
  5. package/dist/assets/ChimeraReviewsView-xYqbuZGK.js +1 -0
  6. package/dist/assets/ChronicleDashboard-BDaOO8qg.js +1 -0
  7. package/dist/assets/CodeEditor-BgJIgzjz.js +2 -0
  8. package/dist/assets/CodeMap-D47WG8ZE.js +1 -0
  9. package/dist/assets/CronJobsPanel-oxmSB2ni.js +1 -0
  10. package/dist/assets/{DeadCodeScanPanel-CSr2alPo.js → DeadCodeScanPanel-DAOBcPPB.js} +1 -1
  11. package/dist/assets/{DebugDashboard-Ctw40UDW.js → DebugDashboard-P6-449d1.js} +1 -1
  12. package/dist/assets/DesignGalleryView-BUYdq9xj.js +1 -0
  13. package/dist/assets/GoalView-DfVrI8Br.js +1 -0
  14. package/dist/assets/KanbanView-DYzC0SvN.js +3 -0
  15. package/dist/assets/MailboxDetailView-CidOf8tE.js +1 -0
  16. package/dist/assets/MemoryDrawer-D2iiRUm3.js +1 -0
  17. package/dist/assets/MemoryManager-ajwrcppd.js +1 -0
  18. package/dist/assets/ProcessMonitor-D4q3YZ99.js +1 -0
  19. package/dist/assets/PromptJournalView-BRTW81Ev.js +1 -0
  20. package/dist/assets/QueuePanel--kMl1y82.js +1 -0
  21. package/dist/assets/RefreshDebugView-Dty8h6nr.js +1 -0
  22. package/dist/assets/RepositoryHistoryView-DGlHg9K7.js +2 -0
  23. package/dist/assets/{RequirementIntakeView-BkztR0C2.js → RequirementIntakeView-DXimEE5N.js} +1 -1
  24. package/dist/assets/SageTabs-DC4wv_Gu.js +2 -0
  25. package/dist/assets/{SddFlowGraph-dcuamshO.js → SddFlowGraph-BNd4F2pW.js} +1 -1
  26. package/dist/assets/SddHub-Dfsg4kpC.js +2 -0
  27. package/dist/assets/SessionInspectView-CFKKgcpn.js +1 -0
  28. package/dist/assets/SessionList-C_5GxI2E.js +1 -0
  29. package/dist/assets/SessionsDashboard-yTvoFIQH.js +1 -0
  30. package/dist/assets/SetupScreen-BCgcO4L-.js +1 -0
  31. package/dist/assets/SkillDetailView-BZ-xB1C6.js +3 -0
  32. package/dist/assets/TechStackView-DPmmgBtE.js +2 -0
  33. package/dist/assets/TerminalPanel-Cjineyx0.js +1 -0
  34. package/dist/assets/{activity-KXlU1-QD.js → activity-B6W4JEPC.js} +6 -6
  35. package/dist/assets/{activity-ClXUH80G.js → activity-BYWZhxvD.js} +6 -6
  36. package/dist/assets/{activity-B9cZQdVv.js → activity-C2ThLEx6.js} +6 -6
  37. package/dist/assets/{activity-ByjzcTzj.js → activity-Co3aH0eV.js} +6 -6
  38. package/dist/assets/{activity-DBsqMkAC.js → activity-D8QpThnB.js} +6 -6
  39. package/dist/assets/{activity-PRYzlsxa.js → activity-DBzijhvU.js} +6 -6
  40. package/dist/assets/{activity-DFMEXTAP.js → activity-DaNFfhdh.js} +6 -6
  41. package/dist/assets/{button-Bv5PYkY5.js → button-CN_h6kNT.js} +1 -1
  42. package/dist/assets/chat-store-Dl3XHXs8.js +1 -0
  43. package/dist/assets/codemap-activity-store-RqE4L9Os.js +1 -0
  44. package/dist/assets/common-5rSj2oHt.js +1 -0
  45. package/dist/assets/common-B5Uslzr2.js +1 -0
  46. package/dist/assets/common-BnhmJl6b.js +1 -0
  47. package/dist/assets/{common-BBHmIHQW.js → common-CmkkiJUR.js} +1 -1
  48. package/dist/assets/common-CpZ-DoXd.js +1 -0
  49. package/dist/assets/common-Ct-Iodid.js +1 -0
  50. package/dist/assets/common-D9w3BalB.js +1 -0
  51. package/dist/assets/config-store-Dq6MhrIA.js +22 -0
  52. package/dist/assets/{dialog-DyGu9hTX.js → dialog-DNsBc-EF.js} +1 -1
  53. package/dist/assets/{empty-state-Dy__H8vX.js → empty-state-BFPCt03_.js} +1 -1
  54. package/dist/assets/i18n-CRIAwjnX.js +3 -0
  55. package/dist/assets/index-BI1MMjfc.js +170 -0
  56. package/dist/assets/index-DO49jK02.css +1 -0
  57. package/dist/assets/{input-DdFYcw53.js → input-BnTFqRjn.js} +1 -1
  58. package/dist/assets/mailbox-store-CV5--Nmh.js +1 -0
  59. package/dist/assets/{markdown-BzXmcdZg.js → markdown-BzOXYqOo.js} +2 -2
  60. package/dist/assets/{monaco-LhToOuuW.js → monaco-COtIgMfE.js} +4 -4
  61. package/dist/assets/{monaco-theme-BOzs6u2L.js → monaco-theme-ruX2YdTu.js} +1 -1
  62. package/dist/assets/react-core-wiHys0m2.js +9 -0
  63. package/dist/assets/roster-ws-BviY2gOb.js +1 -0
  64. package/dist/assets/{shared-hOwESeA9.js → shared-h0I65HLY.js} +1 -1
  65. package/dist/assets/stores-BOo4b1ZG.js +7 -0
  66. package/dist/assets/{ts.worker-Dj4vg72D.js → ts.worker-9_CJKYKz.js} +16 -16
  67. package/dist/assets/ui-store-D2CzZVyU.js +1 -0
  68. package/dist/assets/utils-sO9lidp6.js +1 -0
  69. package/dist/assets/{vector-memory-panel-BK3Q4TEg.js → vector-memory-panel-BtQElVO4.js} +1 -1
  70. package/dist/assets/{vendor-CkMYDhDf.js → vendor-Cvuk-OYN.js} +27 -27
  71. package/dist/assets/view-navigation-Ca7VJMhX.js +1 -0
  72. package/dist/assets/{xyflow-BlkaZTzI.js → xyflow-BqDBClm9.js} +1 -1
  73. package/dist/components/ConfirmDialog.d.ts +4 -0
  74. package/dist/components/activity-bar/index.d.ts +29 -1
  75. package/dist/hooks/useDesktopBridge.d.ts +3 -1
  76. package/dist/hooks/ws-handlers/chat-handlers.d.ts +1 -0
  77. package/dist/index.html +19 -14
  78. package/dist/index.js +8121 -7670
  79. package/dist/lib/desktop-host.d.ts +3 -0
  80. package/dist/lib/ws-client.d.ts +4 -4
  81. package/dist/stores/chat-lanes.d.ts +1 -0
  82. package/dist/stores/ui-store-types.d.ts +17 -0
  83. package/dist/types/runtime.d.ts +11 -0
  84. package/dist/types/server-message.d.ts +2 -2
  85. package/package.json +9 -9
  86. package/dist/assets/AgentRosterView-CoD9SgNh.js +0 -12
  87. package/dist/assets/AnalyticsDashboard-SAH8yxTa.js +0 -1
  88. package/dist/assets/AudienceMemoryPanel-C_JHPr_q.js +0 -3
  89. package/dist/assets/ChangesView-BRdNlV9e.js +0 -1
  90. package/dist/assets/ChimeraReviewsView-B8ecsRM9.js +0 -1
  91. package/dist/assets/ChronicleDashboard-B2qq4Ax7.js +0 -1
  92. package/dist/assets/CodeEditor-B-zhjWYw.js +0 -2
  93. package/dist/assets/CodeMap-BgOJwRYK.js +0 -1
  94. package/dist/assets/CronJobsPanel-CsbjBcuL.js +0 -1
  95. package/dist/assets/DesignGalleryView-DFMq7qzt.js +0 -1
  96. package/dist/assets/GoalView-CHO3i5LQ.js +0 -1
  97. package/dist/assets/KanbanView-DxCgCuzq.js +0 -3
  98. package/dist/assets/MailboxDetailView-CjOZymFt.js +0 -1
  99. package/dist/assets/MemoryDrawer-DlTa24j0.js +0 -1
  100. package/dist/assets/MemoryManager-BvhuaBnp.js +0 -1
  101. package/dist/assets/ProcessMonitor-BB1j59e7.js +0 -1
  102. package/dist/assets/PromptJournalView-BxhsHl73.js +0 -1
  103. package/dist/assets/QueuePanel-SirB3W9f.js +0 -1
  104. package/dist/assets/RefreshDebugView-DVUmjUXS.js +0 -1
  105. package/dist/assets/RepositoryHistoryView-Cr-UBUel.js +0 -2
  106. package/dist/assets/SageTabs-Bb04xdXQ.js +0 -2
  107. package/dist/assets/SddHub-E6nNmKTl.js +0 -2
  108. package/dist/assets/SessionInspectView-M3HH5k-z.js +0 -1
  109. package/dist/assets/SessionList-BkRdBhqJ.js +0 -1
  110. package/dist/assets/SessionsDashboard-BW_sONY5.js +0 -1
  111. package/dist/assets/SetupScreen-CoQOGYNC.js +0 -1
  112. package/dist/assets/SkillDetailView-3YHXo_2F.js +0 -3
  113. package/dist/assets/TechStackView-Bs8OpeDl.js +0 -2
  114. package/dist/assets/TerminalPanel-Mv04uw-A.js +0 -1
  115. package/dist/assets/common-C3PzxyXg.js +0 -1
  116. package/dist/assets/common-CUWL8eNX.js +0 -1
  117. package/dist/assets/common-CvSB5NM3.js +0 -1
  118. package/dist/assets/common-DT2FL9xN.js +0 -1
  119. package/dist/assets/common-DuR5FTPN.js +0 -1
  120. package/dist/assets/common-xPePelft.js +0 -1
  121. package/dist/assets/i18n-CEYnEdVi.js +0 -2
  122. package/dist/assets/index-VSjrOYGx.css +0 -1
  123. package/dist/assets/index-r9OdFrxf.js +0 -176
  124. package/dist/assets/react-core-D0Ec-185.js +0 -9
  125. package/dist/assets/roster-ws-BDcOlcE2.js +0 -1
  126. package/dist/assets/ui-store-vtaLeTKu.js +0 -1
  127. package/dist/assets/utils-YeTxmVPQ.js +0 -1
  128. package/dist/assets/ws-client-BG2ZSPmv.js +0 -22
@@ -0,0 +1 @@
1
+ import{Na as e,Pa as t}from"./vendor-Cvuk-OYN.js";var n=[`chat`,`agents`,`files`,`changes`,`mailbox`,`skills`,`design`];function r(e){return n.includes(e)?e:e===`context`||e===`history`||e===`sessions`||e===`projects`?`chat`:e===`worktrees`?`changes`:`chat`}var i=`chat.settings.memory.roster.context.goal.kanban.sddhub.files.changes.history.sessions.session-inspect.setup.skill.mailbox.debug.design-gallery.refresh-debug.analytics.codemap.techstack.chronicle.intake.deadcode.prompts.chimera`.split(`.`);function a(e){return i.includes(e)?e:`chat`}var o=[`goal`,`goal-state`,`fleet`,`work`,`worktrees`,`collab`];function s(e){return e==null||!o.includes(e)?null:e}var c=[`general`,`provider`,`connection`,`agent`,`execution`,`fallbacks`,`routing`,`fleet`,`integrations`,`chimera`,`context`,`logs`,`security`,`display`];function l(e){return c.includes(e)?e:`general`}function u(){if(typeof window>`u`)return!1;if(window.wrongstackDesktopHost)return!0;try{return new URLSearchParams(window.location.search).get(`shell`)===`desktop`}catch{return!1}}function d(e={}){return{currentView:`chat`,activeActivity:`chat`,sidebarOpen:e.sidebarOpen??!1,dockSection:null,chromeSessionId:null,chromeBySession:{},dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null,skillsState:f(),chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function f(){return{selectedSkill:null,navHistory:[],historyIndex:-1,detailOpen:!1,knownRefs:{},updateAvailableCount:0}}function p(){return{sidebarOpen:!0,activeActivity:`chat`,currentView:`chat`,inspectSessionId:null,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,promptInsertRequest:null,refinePanel:null,draftInput:``,draftImages:[],processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,terminalOpen:!1,dockSection:null,workDashboardTab:`todos`,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,agentRosterActiveTab:`live`,changesPanelTab:`changes`,dockCustomizeOpen:!1,skillsState:f(),selectedMailMessage:null,scrollPositions:{},chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function m(e){return{sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,currentView:e.currentView,inspectSessionId:e.inspectSessionId,searchOpen:e.searchOpen,searchQuery:e.searchQuery,searchActiveMessageId:e.searchActiveMessageId,scrollTarget:e.scrollTarget,modelSwitcherOpen:e.modelSwitcherOpen,promptLibraryOpen:e.promptLibraryOpen,promptInsertRequest:e.promptInsertRequest,refinePanel:e.refinePanel,draftInput:e.draftInput,draftImages:e.draftImages,processMonitorOpen:e.processMonitorOpen,queuePanelOpen:e.queuePanelOpen,cronJobsOpen:e.cronJobsOpen,sideContextBreakdownOpen:e.sideContextBreakdownOpen,terminalOpen:e.terminalOpen,dockSection:e.dockSection,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,inspectorTarget:e.inspectorTarget,inspectorFocusedAgentId:e.inspectorFocusedAgentId,agentRosterActiveTab:e.agentRosterActiveTab,changesPanelTab:e.changesPanelTab,dockCustomizeOpen:e.dockCustomizeOpen,skillsState:e.skillsState,selectedMailMessage:e.selectedMailMessage,scrollPositions:e.scrollPositions,chatSwitcherOpen:e.chatSwitcherOpen,chatCheckpointOpen:e.chatCheckpointOpen,chatMemoryPanelOpen:e.chatMemoryPanelOpen,chatContextBreakdownOpen:e.chatContextBreakdownOpen,chatContextEditorOpen:e.chatContextEditorOpen,chatToolStatsOpen:e.chatToolStatsOpen,chatInputCollapsed:e.chatInputCollapsed}}function h(e,t){return e.chromeSessionId?{chromeBySession:{...e.chromeBySession,[e.chromeSessionId]:{...m(e),...t}}}:{}}var g={name:`wrongstack-ui`,version:8,migrate:(e,t)=>{let i=e??{};if(i.activeActivity=r(i.activeActivity),typeof i.sidebarWidth==`number`&&(i.sidebarWidth=Math.max(240,Math.min(560,i.sidebarWidth))),t<2&&(delete i.fleetDrawerOpen,delete i.agentsDrawerOpen),`currentView`in i&&(i.currentView=a(i.currentView)),`dockSection`in i&&(i.dockSection=s(i.dockSection)),`settingsActiveTab`in i&&(i.settingsActiveTab=l(i.settingsActiveTab)),`activityBarOrder`in i&&i.activityBarOrder!=null){let e=i.activityBarOrder,t=new Set(n),r=Array.isArray(e.panels)?Array.from(new Set(e.panels.filter(e=>typeof e==`string`&&t.has(e)))):[],o=Array.isArray(e.views)?Array.from(new Set(e.views.map(a))):[];i.activityBarOrder=r.length||o.length?{panels:r,views:o}:null}return t<6&&delete i.draftInput,t<7&&(delete i.chromeSessionId,delete i.chromeBySession),i},merge:(e,t)=>{let n={...t,...e??{}};return n.activeActivity=r(n.activeActivity),n.currentView=a(n.currentView),n.dockSection=s(n.dockSection),n.settingsActiveTab=l(n.settingsActiveTab),typeof n.chromeSessionId!=`string`&&(n.chromeSessionId=null),(typeof n.chromeBySession!=`object`||n.chromeBySession===null)&&(n.chromeBySession={}),n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth)),u()?{...n,...d({sidebarOpen:!1})}:n},partialize:e=>({sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,sidebarWidth:e.sidebarWidth,promptHistory:e.promptHistory,pinnedIds:e.pinnedIds,compactMode:e.compactMode,favoriteSessionIds:e.favoriteSessionIds,sessionNicknames:e.sessionNicknames,fileExplorerWidth:e.fileExplorerWidth,refineEnabled:e.refineEnabled,hiddenChips:e.hiddenChips,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,skillsState:e.skillsState,activityBarOrder:e.activityBarOrder,currentView:e.currentView,dockSection:e.dockSection,settingsActiveTab:e.settingsActiveTab,scrollPositions:e.scrollPositions})},_=2048,v=2097152,y=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),b=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function x(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function S(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function C(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function w(e){try{return await createImageBitmap(e)}catch{let t=URL.createObjectURL(e);try{return await new Promise((e,n)=>{let r=new Image;r.onload=()=>e(r),r.onerror=()=>n(Error(`image decode failed`)),r.src=t})}finally{URL.revokeObjectURL(t)}}}function T(e,t,n,r,i){let a=document.createElement(`canvas`);a.width=t,a.height=n;let o=a.getContext(`2d`);if(!o)throw new b(`canvas 2d context unavailable`,`decode_failed`);o.drawImage(e,0,0,t,n);let s=a.toDataURL(`image/webp`,i);return s.startsWith(`data:image/webp`)?s:r?a.toDataURL(`image/png`):a.toDataURL(`image/jpeg`,i)}var E=0;function D(){return E+=1,`img_${Date.now()}_${E}`}async function O(e){let t=y.has(e.type),n;try{n=await w(e)}catch{throw new b(`Could not decode image "${e.name}"`,`decode_failed`)}let r=n.width,i=n.height,a=Math.max(r,i);if(!(!t||a>_||e.size>v)){let t=await x(e);return{id:D(),dataUrl:t,mediaType:e.type,bytes:S(t),name:e.name||void 0,width:r,height:i}}let o=e.type!==`image/jpeg`,s=Math.min(1,_/a),c=.85,l=T(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c);S(l)>4194304&&(s=Math.min(s,1280/a),c=.7,l=T(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c)),`close`in n&&n.close();let u=S(l);if(u>4194304)throw new b(`Image "${e.name}" is too large after compression`,`too_large`);return{id:D(),dataUrl:l,mediaType:C(l),bytes:u,name:e.name||void 0,width:Math.max(1,Math.round(r*s)),height:Math.max(1,Math.round(i*s))}}function k(e){return e.map(e=>{let t=e.dataUrl.indexOf(`,`);return{data:t>=0?e.dataUrl.slice(t+1):e.dataUrl,mediaType:e.mediaType,...e.name?{name:e.name}:{}}})}var A=t()(e(e=>({sidebarOpen:!0,activeActivity:`chat`,settingsOpen:!1,currentView:`chat`,showConfirmDialog:!1,confirmInfo:null,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,promptHistory:[],sidebarWidth:304,pinnedIds:[],compactMode:!1,modelSwitcherOpen:!1,favoriteSessionIds:[],sessionNicknames:{},fileExplorerWidth:220,refineEnabled:!0,refinePanel:null,promptLibraryOpen:!1,promptInsertRequest:null,dockSection:null,workDashboardTab:`todos`,chromeSessionId:null,chromeBySession:{},hiddenChips:[],dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,inspectSessionId:null,terminalOpen:!1,terminalCreateNonce:0,agentRosterActiveTab:`live`,changesPanelTab:`changes`,settingsActiveTab:`general`,scrollPositions:{},activityBarOrder:null,draftInput:``,draftImages:[],sideContextBreakdownOpen:!1,chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1,selectedMailMessage:null,skillsState:f(),selectActivity:t=>e(e=>({activeActivity:t,...h(e,{activeActivity:t})})),toggleSidebar:()=>e(e=>{let t=!e.sidebarOpen;return{sidebarOpen:t,...h(e,{sidebarOpen:t})}}),setSidebarOpen:t=>e(e=>({sidebarOpen:t,...h(e,{sidebarOpen:t})})),setSettingsOpen:t=>e({settingsOpen:t}),setCurrentView:t=>e(e=>{let n=a(t);return{currentView:n,...h(e,{currentView:n})}}),showConfirm:t=>e({showConfirmDialog:!0,confirmInfo:t}),hideConfirm:()=>e({showConfirmDialog:!1,confirmInfo:null}),setPaletteOpen:t=>e({paletteOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setSearchOpen:t=>e(e=>({searchOpen:t,searchQuery:``,searchActiveMessageId:null,...h(e,{searchOpen:t,searchQuery:``,searchActiveMessageId:null})})),setSearchQuery:t=>e(e=>({searchQuery:t,...h(e,{searchQuery:t})})),setSearchActiveMessageId:t=>e(e=>({searchActiveMessageId:t,...h(e,{searchActiveMessageId:t})})),requestScrollToMessage:t=>e(e=>{let n={id:t,nonce:(e.scrollTarget?.nonce??0)+1};return{scrollTarget:n,...h(e,{scrollTarget:n})}}),pushPrompt:t=>e(e=>{let n=t.trim();return n?{promptHistory:[n,...e.promptHistory.filter(e=>e!==n)].slice(0,50)}:e}),setSidebarWidth:t=>e({sidebarWidth:Math.max(240,Math.min(560,Math.round(t)))}),togglePin:t=>e(e=>({pinnedIds:e.pinnedIds.includes(t)?e.pinnedIds.filter(e=>e!==t):[...e.pinnedIds,t]})),unpinAll:()=>e({pinnedIds:[]}),toggleCompactMode:()=>e(e=>({compactMode:!e.compactMode})),setModelSwitcherOpen:t=>e(e=>({modelSwitcherOpen:t,...h(e,{modelSwitcherOpen:t})})),toggleFavoriteSession:t=>e(e=>({favoriteSessionIds:e.favoriteSessionIds.includes(t)?e.favoriteSessionIds.filter(e=>e!==t):[...e.favoriteSessionIds,t]})),setSessionNickname:(t,n)=>e(e=>{let r=n.trim(),i={...e.sessionNicknames};return r?i[t]=r:delete i[t],{sessionNicknames:i}}),setFileExplorerWidth:t=>e({fileExplorerWidth:Math.max(160,Math.min(400,Math.round(t)))}),toggleRefineEnabled:()=>e(e=>({refineEnabled:!e.refineEnabled})),setRefinePanel:t=>e(e=>({refinePanel:t,...h(e,{refinePanel:t})})),setPromptLibraryOpen:t=>e(e=>({promptLibraryOpen:t,...h(e,{promptLibraryOpen:t})})),requestPromptInsert:t=>e(e=>({promptInsertRequest:t,promptLibraryOpen:!1,...h(e,{promptInsertRequest:t,promptLibraryOpen:!1})})),clearPromptInsert:()=>e(e=>({promptInsertRequest:null,...h(e,{promptInsertRequest:null})})),setDockSection:t=>e(e=>({dockSection:t,...h(e,{dockSection:t,inspectorOpen:!t&&e.inspectorOpen}),...t?{inspectorOpen:!1}:{}})),setWorkDashboardTab:t=>e(e=>({workDashboardTab:t,...h(e,{workDashboardTab:t})})),bindSessionChrome:t=>e(e=>{if(e.chromeSessionId===t)return{};let n={...e.chromeBySession};if(e.chromeSessionId){let t=m(e);n[e.chromeSessionId]=t.refinePanel?{...t,refinePanel:null,draftInput:t.refinePanel.original}:t}let r=(t?n[t]:void 0)??p();return{chromeSessionId:t,chromeBySession:n,subagentChatFocusId:null,subagentChatFocusSessionId:t,sidebarOpen:r.sidebarOpen??p().sidebarOpen,activeActivity:r.activeActivity,currentView:r.currentView,inspectSessionId:r.inspectSessionId,searchOpen:r.searchOpen,searchQuery:r.searchQuery,searchActiveMessageId:r.searchActiveMessageId,scrollTarget:r.scrollTarget,modelSwitcherOpen:r.modelSwitcherOpen,promptLibraryOpen:r.promptLibraryOpen,promptInsertRequest:r.promptInsertRequest,refinePanel:r.refinePanel,draftInput:r.draftInput,draftImages:r.draftImages,processMonitorOpen:r.processMonitorOpen,queuePanelOpen:r.queuePanelOpen,cronJobsOpen:r.cronJobsOpen,sideContextBreakdownOpen:r.sideContextBreakdownOpen,terminalOpen:r.terminalOpen,dockSection:r.dockSection,workDashboardTab:r.workDashboardTab,inspectorOpen:r.inspectorOpen,inspectorTab:r.inspectorTab,inspectorTarget:r.inspectorTarget,inspectorFocusedAgentId:r.inspectorFocusedAgentId,agentRosterActiveTab:r.agentRosterActiveTab,changesPanelTab:r.changesPanelTab,dockCustomizeOpen:r.dockCustomizeOpen??!1,skillsState:r.skillsState??f(),selectedMailMessage:r.selectedMailMessage??null,scrollPositions:r.scrollPositions??{},chatSwitcherOpen:r.chatSwitcherOpen??!1,chatCheckpointOpen:r.chatCheckpointOpen??!1,chatMemoryPanelOpen:r.chatMemoryPanelOpen??!1,chatContextBreakdownOpen:r.chatContextBreakdownOpen??!1,chatContextEditorOpen:r.chatContextEditorOpen??!1,chatInputCollapsed:r.chatInputCollapsed??!1}}),toggleDockSection:t=>e(e=>{let n=e.dockSection===t?null:t;return{dockSection:n,...h(e,{dockSection:n,inspectorOpen:!n&&e.inspectorOpen}),...n?{inspectorOpen:!1}:{}}}),toggleChipHidden:t=>e(e=>{let n=e.hiddenChips.includes(t),r=!n&&e.dockSection===t?null:e.dockSection;return{hiddenChips:n?e.hiddenChips.filter(e=>e!==t):[...e.hiddenChips,t],dockSection:r,...h(e,{dockSection:r})}}),showDockChip:t=>e(e=>({hiddenChips:e.hiddenChips.filter(e=>e!==t)})),setDockCustomizeOpen:t=>e(e=>({dockCustomizeOpen:t,...h(e,{dockCustomizeOpen:t})})),setAgentRosterActiveTab:t=>e(e=>({agentRosterActiveTab:t,...h(e,{agentRosterActiveTab:t})})),setChangesPanelTab:t=>e(e=>({changesPanelTab:t,...h(e,{changesPanelTab:t})})),setFleetMonitorOpen:t=>e(e=>({fleetMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,...h(e,{inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setAgentsMonitorOpen:t=>e(e=>({agentsMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,...h(e,{inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setInspectorOpen:t=>e(e=>({inspectorOpen:t,...t?{dockSection:null}:{inspectorTarget:null},...h(e,{inspectorOpen:t,dockSection:t?null:e.dockSection,inspectorTarget:t?e.inspectorTarget:null})})),setInspectorTab:t=>e(e=>({inspectorTab:t,...h(e,{inspectorTab:t})})),openInspectorTarget:t=>e(e=>{let n=e.inspectorTab,r=e.inspectorFocusedAgentId;return t.kind===`fleet`?n=t.tab??`fleet`:t.kind===`agent`?(n=`agents`,r=t.agentId):t.kind===`sideEffects`?n=`sideEffects`:t.kind===`council`&&(n=`council`),{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null,...h(e,{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null})}}),closeInspector:()=>e(e=>({inspectorOpen:!1,inspectorTarget:null,...h(e,{inspectorOpen:!1,inspectorTarget:null})})),setInspectorFocusedAgentId:t=>e(e=>({inspectorFocusedAgentId:t,...h(e,{inspectorFocusedAgentId:t})})),setSubagentChatFocus:(t,n)=>e(e=>({subagentChatFocusId:t,subagentChatFocusSessionId:(n===``?null:n)??e.chromeSessionId??e.subagentChatFocusSessionId??null})),forgetSession:t=>e(e=>{let n=e.subagentChatFocusSessionId===t,r=t in e.chromeBySession||e.chromeSessionId===t;if(!n&&!r)return e;let i={...e.chromeBySession};delete i[t];let a=e.subagentChatFocusSessionId===t,o=e.chromeSessionId===t;return{chromeBySession:i,...a?{subagentChatFocusId:null,subagentChatFocusSessionId:null}:{},...o?{chromeSessionId:null,...p()}:{}}}),toggleInspector:()=>e(e=>{let t=!e.inspectorOpen,n=t?null:e.dockSection;return{inspectorOpen:t,dockSection:n,...h(e,{inspectorOpen:t,dockSection:n})}}),setProcessMonitorOpen:t=>e(e=>({processMonitorOpen:t,...h(e,{processMonitorOpen:t})})),setQueuePanelOpen:t=>e(e=>({queuePanelOpen:t,...h(e,{queuePanelOpen:t})})),setCronJobsOpen:t=>e(e=>({cronJobsOpen:t,...h(e,{cronJobsOpen:t})})),setInspectSession:t=>e(e=>({inspectSessionId:t,currentView:`session-inspect`,...h(e,{inspectSessionId:t,currentView:`session-inspect`})})),clearInspectSession:()=>e(e=>({inspectSessionId:null,currentView:`chat`,...h(e,{inspectSessionId:null,currentView:`chat`})})),setTerminalOpen:t=>e(e=>({terminalOpen:t,...h(e,{terminalOpen:t})})),toggleTerminal:()=>e(e=>{let t=!e.terminalOpen;return{terminalOpen:t,...h(e,{terminalOpen:t})}}),requestTerminalCreate:()=>e(e=>({terminalCreateNonce:e.terminalCreateNonce+1})),setSettingsActiveTab:t=>e({settingsActiveTab:l(t)}),setScrollPosition:(t,n)=>e(e=>{let r={...e.scrollPositions,[t]:n};return{scrollPositions:r,...h(e,{scrollPositions:r})}}),setActivityBarOrder:t=>e({activityBarOrder:t}),setDraftInput:t=>e(e=>({draftInput:t,...h(e,{draftInput:t})})),setDraftImages:t=>e(e=>{let n=t.slice(-8);return{draftImages:n,...h(e,{draftImages:n})}}),setSideContextBreakdownOpen:t=>e(e=>({sideContextBreakdownOpen:t,...h(e,{sideContextBreakdownOpen:t})})),setChatSwitcherOpen:t=>e(e=>({chatSwitcherOpen:t,...h(e,{chatSwitcherOpen:t})})),setChatCheckpointOpen:t=>e(e=>({chatCheckpointOpen:t,...h(e,{chatCheckpointOpen:t})})),setChatMemoryPanelOpen:t=>e(e=>({chatMemoryPanelOpen:t,...h(e,{chatMemoryPanelOpen:t})})),setChatContextBreakdownOpen:t=>e(e=>({chatContextBreakdownOpen:t,...h(e,{chatContextBreakdownOpen:t})})),setChatToolStatsOpen:t=>e(e=>({chatToolStatsOpen:t,...h(e,{chatToolStatsOpen:t})})),setChatContextEditorOpen:t=>e(e=>({chatContextEditorOpen:t,...h(e,{chatContextEditorOpen:t})})),setChatInputCollapsed:t=>e(e=>({chatInputCollapsed:t,...h(e,{chatInputCollapsed:t})})),setSkillsState:t=>e(e=>({skillsState:t,...h(e,{skillsState:t})})),setSelectedMailMessage:t=>e(e=>({selectedMailMessage:t,...h(e,{selectedMailMessage:t})}))}),g));function j(e={}){A.setState(d(e))}export{k as a,O as i,A as n,b as r,j as t};
@@ -0,0 +1 @@
1
+ import{G as e,K as t}from"./vendor-Cvuk-OYN.js";function n(...n){return e(t(n))}function r(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}export{r as n,n as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-D0Ec-185.js";import{Gi as r,Kn as i,ft as a}from"./vendor-CkMYDhDf.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./dialog-DyGu9hTX.js";import{t as f}from"./button-Bv5PYkY5.js";var p=e(t(),1);async function m(e=``){let t=await fetch(`${e}/api/vector-memory/status`,{credentials:`include`});if(!t.ok)throw Error(`status failed: HTTP ${t.status}`);return await t.json()}async function h(e,t={}){let n=new URLSearchParams;n.set(`q`,e),t.limit!==void 0&&n.set(`limit`,String(t.limit)),t.threshold!==void 0&&n.set(`threshold`,String(t.threshold)),t.similarity===!0&&n.set(`similarity`,`1`);let r=await fetch(`${t.baseUrl??``}/api/vector-memory/search?${n.toString()}`,{credentials:`include`});if(!r.ok)throw Error(`search failed: HTTP ${r.status}`);return await r.json()}function g(e,t=170){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}async function _(e,t={}){let n=await fetch(`${t.baseUrl??``}/api/vector-memory/store/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`});if(!n.ok)throw Error(`forget failed: HTTP ${n.status}`);return await n.json()}var v=n();function y({hit:e,busy:t,error:n,onCancel:r,onConfirm:p,onOpenChange:m}){return(0,v.jsx)(d,{open:e!==null,onOpenChange:m,children:(0,v.jsxs)(c,{className:`max-w-md`,children:[(0,v.jsxs)(o,{children:[(0,v.jsx)(`span`,{className:`mb-2 flex size-10 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,v.jsx)(a,{className:`size-4`})}),(0,v.jsx)(l,{children:`Forget this vector memory?`}),(0,v.jsx)(u,{className:`leading-6`,children:`This removes the entry and its embedding from the vector memory store.`})]}),(0,v.jsx)(`div`,{className:`border border-border/70 bg-background/45 p-3 text-xs text-muted-foreground`,children:g(e?.text??``,180)}),n===void 0?null:(0,v.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,children:n}),(0,v.jsxs)(s,{children:[(0,v.jsx)(f,{variant:`outline`,onClick:r,disabled:t,children:`Cancel`}),(0,v.jsxs)(f,{variant:`destructive`,onClick:p,disabled:t,children:[t?(0,v.jsx)(i,{className:`size-4 animate-spin`}):(0,v.jsx)(a,{className:`size-4`}),t?`Forgetting…`:`Forget memory`]})]})]})})}function b({baseUrl:e=``}={}){let[t,n]=(0,p.useState)(),[i,a]=(0,p.useState)(),[o,s]=(0,p.useState)(``),[c,l]=(0,p.useState)(10),[u,d]=(0,p.useState)(void 0),[f,b]=(0,p.useState)([]),[S,C]=(0,p.useState)(),[w,T]=(0,p.useState)(),[E,D]=(0,p.useState)(!1),[O,k]=(0,p.useState)(null),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(),[I,L]=(0,p.useState)(0),R=(0,p.useRef)(0),z=(0,p.useRef)(!1),B=(0,p.useRef)(e);(0,p.useEffect)(()=>{let t=!1;return B.current!==e&&(B.current=e,z.current=!1,n(void 0),a(void 0)),m(e).then(e=>{t||(z.current=!0,n(e),a(void 0))}).catch(e=>{t||z.current||(n(void 0),a(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e,I]);let V=async()=>{let t=o.trim();if(t.length!==0){D(!0),T(void 0),k(null),j(null),F(void 0);try{let n=await h(t,{limit:c,...u===void 0?{}:{threshold:u},similarity:!0,baseUrl:e});b(n.hits),C(n.similarity)}catch(e){b([]),C(void 0),T(e instanceof Error?e.message:String(e))}finally{R.current+=1,D(!1)}}},H=async()=>{if(A===null)return;let t=A.id,n=R.current,r=f,i=S;N(!0),F(void 0);try{let{removed:a}=await _(t,{baseUrl:e});if(a){if(R.current===n){let e=r.findIndex(e=>e.id===t);b(r.filter(e=>e.id!==t)),i!==void 0&&e>=0&&C(i.filter((t,n)=>n!==e).map(t=>t.filter((t,n)=>n!==e))),O===t&&k(null)}j(e=>e?.id===t?null:e),L(e=>e+1)}else F(`The store reported the entry was not removed.`)}catch(e){F(e instanceof Error?e.message:String(e))}finally{N(!1)}};return i===void 0?t===void 0?(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--loading`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Loading status…`})]}):t.enabled?(0,v.jsxs)(`div`,{className:`vector-memory-panel`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`dl`,{className:`vector-memory-panel__status`,children:[(0,v.jsx)(`dt`,{children:`Active provider`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.providerId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Model`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Dimensions`}),(0,v.jsx)(`dd`,{children:t.dimensions??`unknown`}),(0,v.jsx)(`dt`,{children:`Entries / vectors`}),(0,v.jsxs)(`dd`,{children:[t.entries??0,` / `,t.vectors??0]}),(0,v.jsx)(`dt`,{children:`Store path`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.storePath??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Model cache`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelCacheDir??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Providers`}),(0,v.jsx)(`dd`,{children:t.providers?.join(`, `)??``}),t.cache?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`Embedding cache`}),(0,v.jsxs)(`dd`,{children:[t.cache.entries,` entries · `,t.cache.providers,` provider`,t.cache.providers===1?``:`s`,` · `,t.cache.totalUseCount,` hits`]})]}):null]}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__search`,children:[(0,v.jsx)(`label`,{htmlFor:`vm-query`,children:`Query`}),(0,v.jsx)(`input`,{id:`vm-query`,type:`text`,value:o,onChange:e=>s(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&V()},placeholder:`apple banana`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__controls`,children:[(0,v.jsxs)(`label`,{children:[`limit`,(0,v.jsx)(`input`,{type:`number`,min:1,max:50,value:c,onChange:e=>l(Math.max(1,Math.min(50,Number(e.currentTarget.value)||10)))})]}),(0,v.jsxs)(`label`,{children:[`threshold`,(0,v.jsx)(`input`,{type:`number`,min:0,max:1,step:.05,value:u??``,onChange:e=>{let t=e.currentTarget.value;d(t===``?void 0:Number.parseFloat(t))}})]}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>void V(),disabled:E,children:E?`Searching…`:`Search`})]})]}),w===void 0?null:(0,v.jsxs)(`p`,{className:`vector-memory-panel__error`,children:[`Search error: `,w]}),(0,v.jsxs)(`ol`,{className:`vector-memory-panel__hits`,children:[f.map(e=>{let t=O===e.id;return(0,v.jsxs)(`li`,{className:t?`vector-memory-panel__hit vector-memory-panel__hit--expanded`:`vector-memory-panel__hit`,children:[(0,v.jsxs)(`button`,{type:`button`,className:`vector-memory-panel__hit-toggle`,"aria-expanded":t,onClick:()=>k(t?null:e.id),children:[(0,v.jsx)(r,{"aria-hidden":`true`,className:t?`vector-memory-panel__hit-chevron vector-memory-panel__hit-chevron--open`:`vector-memory-panel__hit-chevron`}),(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-score`,children:e.score.toFixed(3)}),e.summary?(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-summary`,children:e.summary}):null]}),(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-text`,children:t?e.text:g(e.text)}),e.tags.length>0?(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-tags`,children:e.tags.map(e=>(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-tag`,children:e},e))}):null,t?(0,v.jsxs)(`div`,{className:`vector-memory-panel__hit-detail`,children:[(0,v.jsxs)(`dl`,{className:`vector-memory-panel__hit-fields`,children:[(0,v.jsx)(`dt`,{children:`id`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:e.id})}),(0,v.jsx)(`dt`,{children:`score`}),(0,v.jsx)(`dd`,{children:e.score.toFixed(3)}),e.summary?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`summary`}),(0,v.jsx)(`dd`,{children:e.summary})]}):null]}),(0,v.jsx)(`div`,{className:`vector-memory-panel__hit-actions`,children:(0,v.jsx)(`button`,{type:`button`,className:`vector-memory-panel__forget`,onClick:()=>{F(void 0),j(e)},children:`Forget`})})]}):null]},e.id)}),f.length===0&&E===!1&&o.trim().length>0?(0,v.jsx)(`li`,{className:`vector-memory-panel__no-hits`,children:`No results.`}):null]}),S!==void 0&&S.length>1?(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap`,"data-testid":`vector-memory-heatmap`,children:[(0,v.jsx)(`h4`,{children:`Result similarity`}),(0,v.jsx)(`p`,{className:`vector-memory-panel__heatmap-hint`,children:`Pairwise cosine similarity between returned hits. Darker cells = more similar. A bright diagonal with mostly dark off-diagonals means results form a tight cluster; a noisy grid means the search returned mixed topics.`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap-grid`,style:{gridTemplateColumns:`auto repeat(${S.length}, minmax(20px, 1fr))`},role:`table`,"aria-label":`Pairwise cosine similarity between returned hits`,children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-corner`}),S.map((e,t)=>(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-col-label`,children:t+1},`col-${t}`)),S.map((e,t)=>(0,v.jsx)(x,{row:e,index:t},`row-${t}`))]})]}):null,(0,v.jsx)(y,{hit:A,busy:M,error:P,onCancel:()=>j(null),onConfirm:()=>void H(),onOpenChange:e=>{!e&&!M&&j(null)}})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--disabled`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Disabled — the webui-server host does not have a vector memory store wired.`})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--error`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`p`,{children:[`Status unavailable: `,i]})]})}function x({row:e,index:t}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-row-label`,children:t+1}),e.map((e,n)=>{let r=t===n,i=Math.max(0,Math.min(1,e)),a=95-i*60,o=`hsl(220, ${r?0:35}%, ${a}%)`;return(0,v.jsx)(`div`,{className:r?`vector-memory-panel__heatmap-cell vector-memory-panel__heatmap-cell--diagonal`:`vector-memory-panel__heatmap-cell`,style:{background:o},role:`cell`,"aria-label":`hit ${t+1} vs hit ${n+1}: ${i.toFixed(2)}`,title:`hit ${t+1} ↔ hit ${n+1}: ${i.toFixed(3)}`,children:i>=.5?i.toFixed(2):``},`cell-${t}-${n}`)})]})}export{b as VectorMemoryPanel};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-wiHys0m2.js";import{Jn as r,mt as i,qi as a}from"./vendor-Cvuk-OYN.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./dialog-DNsBc-EF.js";import{t as f}from"./button-CN_h6kNT.js";var p=e(t(),1);async function m(e=``){let t=await fetch(`${e}/api/vector-memory/status`,{credentials:`include`});if(!t.ok)throw Error(`status failed: HTTP ${t.status}`);return await t.json()}async function h(e,t={}){let n=new URLSearchParams;n.set(`q`,e),t.limit!==void 0&&n.set(`limit`,String(t.limit)),t.threshold!==void 0&&n.set(`threshold`,String(t.threshold)),t.similarity===!0&&n.set(`similarity`,`1`);let r=await fetch(`${t.baseUrl??``}/api/vector-memory/search?${n.toString()}`,{credentials:`include`});if(!r.ok)throw Error(`search failed: HTTP ${r.status}`);return await r.json()}function g(e,t=170){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}async function _(e,t={}){let n=await fetch(`${t.baseUrl??``}/api/vector-memory/store/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`});if(!n.ok)throw Error(`forget failed: HTTP ${n.status}`);return await n.json()}var v=n();function y({hit:e,busy:t,error:n,onCancel:a,onConfirm:p,onOpenChange:m}){return(0,v.jsx)(d,{open:e!==null,onOpenChange:m,children:(0,v.jsxs)(c,{className:`max-w-md`,children:[(0,v.jsxs)(o,{children:[(0,v.jsx)(`span`,{className:`mb-2 flex size-10 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,v.jsx)(i,{className:`size-4`})}),(0,v.jsx)(l,{children:`Forget this vector memory?`}),(0,v.jsx)(u,{className:`leading-6`,children:`This removes the entry and its embedding from the vector memory store.`})]}),(0,v.jsx)(`div`,{className:`border border-border/70 bg-background/45 p-3 text-xs text-muted-foreground`,children:g(e?.text??``,180)}),n===void 0?null:(0,v.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,children:n}),(0,v.jsxs)(s,{children:[(0,v.jsx)(f,{variant:`outline`,onClick:a,disabled:t,children:`Cancel`}),(0,v.jsxs)(f,{variant:`destructive`,onClick:p,disabled:t,children:[t?(0,v.jsx)(r,{className:`size-4 animate-spin`}):(0,v.jsx)(i,{className:`size-4`}),t?`Forgetting…`:`Forget memory`]})]})]})})}function b({baseUrl:e=``}={}){let[t,n]=(0,p.useState)(),[r,i]=(0,p.useState)(),[o,s]=(0,p.useState)(``),[c,l]=(0,p.useState)(10),[u,d]=(0,p.useState)(void 0),[f,b]=(0,p.useState)([]),[S,C]=(0,p.useState)(),[w,T]=(0,p.useState)(),[E,D]=(0,p.useState)(!1),[O,k]=(0,p.useState)(null),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(),[I,L]=(0,p.useState)(0),R=(0,p.useRef)(0),z=(0,p.useRef)(!1),B=(0,p.useRef)(e);(0,p.useEffect)(()=>{let t=!1;return B.current!==e&&(B.current=e,z.current=!1,n(void 0),i(void 0)),m(e).then(e=>{t||(z.current=!0,n(e),i(void 0))}).catch(e=>{t||z.current||(n(void 0),i(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e,I]);let V=async()=>{let t=o.trim();if(t.length!==0){D(!0),T(void 0),k(null),j(null),F(void 0);try{let n=await h(t,{limit:c,...u===void 0?{}:{threshold:u},similarity:!0,baseUrl:e});b(n.hits),C(n.similarity)}catch(e){b([]),C(void 0),T(e instanceof Error?e.message:String(e))}finally{R.current+=1,D(!1)}}},H=async()=>{if(A===null)return;let t=A.id,n=R.current,r=f,i=S;N(!0),F(void 0);try{let{removed:a}=await _(t,{baseUrl:e});if(a){if(R.current===n){let e=r.findIndex(e=>e.id===t);b(r.filter(e=>e.id!==t)),i!==void 0&&e>=0&&C(i.filter((t,n)=>n!==e).map(t=>t.filter((t,n)=>n!==e))),O===t&&k(null)}j(e=>e?.id===t?null:e),L(e=>e+1)}else F(`The store reported the entry was not removed.`)}catch(e){F(e instanceof Error?e.message:String(e))}finally{N(!1)}};return r===void 0?t===void 0?(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--loading`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Loading status…`})]}):t.enabled?(0,v.jsxs)(`div`,{className:`vector-memory-panel`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`dl`,{className:`vector-memory-panel__status`,children:[(0,v.jsx)(`dt`,{children:`Active provider`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.providerId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Model`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Dimensions`}),(0,v.jsx)(`dd`,{children:t.dimensions??`unknown`}),(0,v.jsx)(`dt`,{children:`Entries / vectors`}),(0,v.jsxs)(`dd`,{children:[t.entries??0,` / `,t.vectors??0]}),(0,v.jsx)(`dt`,{children:`Store path`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.storePath??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Model cache`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelCacheDir??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Providers`}),(0,v.jsx)(`dd`,{children:t.providers?.join(`, `)??``}),t.cache?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`Embedding cache`}),(0,v.jsxs)(`dd`,{children:[t.cache.entries,` entries · `,t.cache.providers,` provider`,t.cache.providers===1?``:`s`,` · `,t.cache.totalUseCount,` hits`]})]}):null]}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__search`,children:[(0,v.jsx)(`label`,{htmlFor:`vm-query`,children:`Query`}),(0,v.jsx)(`input`,{id:`vm-query`,type:`text`,value:o,onChange:e=>s(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&V()},placeholder:`apple banana`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__controls`,children:[(0,v.jsxs)(`label`,{children:[`limit`,(0,v.jsx)(`input`,{type:`number`,min:1,max:50,value:c,onChange:e=>l(Math.max(1,Math.min(50,Number(e.currentTarget.value)||10)))})]}),(0,v.jsxs)(`label`,{children:[`threshold`,(0,v.jsx)(`input`,{type:`number`,min:0,max:1,step:.05,value:u??``,onChange:e=>{let t=e.currentTarget.value;d(t===``?void 0:Number.parseFloat(t))}})]}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>void V(),disabled:E,children:E?`Searching…`:`Search`})]})]}),w===void 0?null:(0,v.jsxs)(`p`,{className:`vector-memory-panel__error`,children:[`Search error: `,w]}),(0,v.jsxs)(`ol`,{className:`vector-memory-panel__hits`,children:[f.map(e=>{let t=O===e.id;return(0,v.jsxs)(`li`,{className:t?`vector-memory-panel__hit vector-memory-panel__hit--expanded`:`vector-memory-panel__hit`,children:[(0,v.jsxs)(`button`,{type:`button`,className:`vector-memory-panel__hit-toggle`,"aria-expanded":t,onClick:()=>k(t?null:e.id),children:[(0,v.jsx)(a,{"aria-hidden":`true`,className:t?`vector-memory-panel__hit-chevron vector-memory-panel__hit-chevron--open`:`vector-memory-panel__hit-chevron`}),(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-score`,children:e.score.toFixed(3)}),e.summary?(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-summary`,children:e.summary}):null]}),(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-text`,children:t?e.text:g(e.text)}),e.tags.length>0?(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-tags`,children:e.tags.map(e=>(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-tag`,children:e},e))}):null,t?(0,v.jsxs)(`div`,{className:`vector-memory-panel__hit-detail`,children:[(0,v.jsxs)(`dl`,{className:`vector-memory-panel__hit-fields`,children:[(0,v.jsx)(`dt`,{children:`id`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:e.id})}),(0,v.jsx)(`dt`,{children:`score`}),(0,v.jsx)(`dd`,{children:e.score.toFixed(3)}),e.summary?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`summary`}),(0,v.jsx)(`dd`,{children:e.summary})]}):null]}),(0,v.jsx)(`div`,{className:`vector-memory-panel__hit-actions`,children:(0,v.jsx)(`button`,{type:`button`,className:`vector-memory-panel__forget`,onClick:()=>{F(void 0),j(e)},children:`Forget`})})]}):null]},e.id)}),f.length===0&&E===!1&&o.trim().length>0?(0,v.jsx)(`li`,{className:`vector-memory-panel__no-hits`,children:`No results.`}):null]}),S!==void 0&&S.length>1?(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap`,"data-testid":`vector-memory-heatmap`,children:[(0,v.jsx)(`h4`,{children:`Result similarity`}),(0,v.jsx)(`p`,{className:`vector-memory-panel__heatmap-hint`,children:`Pairwise cosine similarity between returned hits. Darker cells = more similar. A bright diagonal with mostly dark off-diagonals means results form a tight cluster; a noisy grid means the search returned mixed topics.`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap-grid`,style:{gridTemplateColumns:`auto repeat(${S.length}, minmax(20px, 1fr))`},role:`table`,"aria-label":`Pairwise cosine similarity between returned hits`,children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-corner`}),S.map((e,t)=>(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-col-label`,children:t+1},`col-${t}`)),S.map((e,t)=>(0,v.jsx)(x,{row:e,index:t},`row-${t}`))]})]}):null,(0,v.jsx)(y,{hit:A,busy:M,error:P,onCancel:()=>j(null),onConfirm:()=>void H(),onOpenChange:e=>{!e&&!M&&j(null)}})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--disabled`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Disabled — the webui-server host does not have a vector memory store wired.`})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--error`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`p`,{children:[`Status unavailable: `,r]})]})}function x({row:e,index:t}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-row-label`,children:t+1}),e.map((e,n)=>{let r=t===n,i=Math.max(0,Math.min(1,e)),a=95-i*60,o=`hsl(220, ${r?0:35}%, ${a}%)`;return(0,v.jsx)(`div`,{className:r?`vector-memory-panel__heatmap-cell vector-memory-panel__heatmap-cell--diagonal`:`vector-memory-panel__heatmap-cell`,style:{background:o},role:`cell`,"aria-label":`hit ${t+1} vs hit ${n+1}: ${i.toFixed(2)}`,title:`hit ${t+1} ↔ hit ${n+1}: ${i.toFixed(3)}`,children:i>=.5?i.toFixed(2):``},`cell-${t}-${n}`)})]})}export{b as VectorMemoryPanel};