agent-relay-server 0.71.0 → 0.73.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.
- package/docs/openapi.json +1 -1
- package/package.json +2 -2
- package/public/assets/MessageBubble-BWdM9UCM.js +3 -0
- package/public/assets/MessageBubble-BWdM9UCM.js.map +1 -0
- package/public/assets/{PlanGraphPanel-BYmE8ldg.js → PlanGraphPanel-icESxd82.js} +2 -2
- package/public/assets/{PlanGraphPanel-BYmE8ldg.js.map → PlanGraphPanel-icESxd82.js.map} +1 -1
- package/public/assets/{activity-BzU196gP.js → activity-BR9I23hc.js} +2 -2
- package/public/assets/{activity-BzU196gP.js.map → activity-BR9I23hc.js.map} +1 -1
- package/public/assets/{agent-profiles-CQuoP8Nr.js → agent-profiles-BB0V-Tg1.js} +2 -2
- package/public/assets/{agent-profiles-CQuoP8Nr.js.map → agent-profiles-BB0V-Tg1.js.map} +1 -1
- package/public/assets/{agents-qH6q44nK.js → agents-Clkboz93.js} +2 -2
- package/public/assets/{agents-qH6q44nK.js.map → agents-Clkboz93.js.map} +1 -1
- package/public/assets/{analytics-EJH9GFID.js → analytics-DRlHs5ho.js} +3 -3
- package/public/assets/{analytics-EJH9GFID.js.map → analytics-DRlHs5ho.js.map} +1 -1
- package/public/assets/{automation-Dahmxg07.js → automation-DlnH_MPy.js} +2 -2
- package/public/assets/{automation-Dahmxg07.js.map → automation-DlnH_MPy.js.map} +1 -1
- package/public/assets/{badge-C6NJQ60B.js → badge-YQhT30dy.js} +2 -2
- package/public/assets/{badge-C6NJQ60B.js.map → badge-YQhT30dy.js.map} +1 -1
- package/public/assets/branch-state-badge-Dg1qnmF5.js +2 -0
- package/public/assets/{branch-state-badge-C7H8HY22.js.map → branch-state-badge-Dg1qnmF5.js.map} +1 -1
- package/public/assets/{button-DD2CCM3t.js → button-CaFI76Ja.js} +2 -2
- package/public/assets/{button-DD2CCM3t.js.map → button-CaFI76Ja.js.map} +1 -1
- package/public/assets/{card-GZqj3rMm.js → card-B_fQtKce.js} +2 -2
- package/public/assets/{card-GZqj3rMm.js.map → card-B_fQtKce.js.map} +1 -1
- package/public/assets/{channels-VhlwES_A.js → channels-BVYLrKUL.js} +2 -2
- package/public/assets/{channels-VhlwES_A.js.map → channels-BVYLrKUL.js.map} +1 -1
- package/public/assets/chat-ml_YzbK4.js +2 -0
- package/public/assets/chat-ml_YzbK4.js.map +1 -0
- package/public/assets/{connectors-C03pRoXx.js → connectors-BOyk5hC3.js} +2 -2
- package/public/assets/{connectors-C03pRoXx.js.map → connectors-BOyk5hC3.js.map} +1 -1
- package/public/assets/copy-button-m00JmflM.js +2 -0
- package/public/assets/{copy-button-DqAoeiPC.js.map → copy-button-m00JmflM.js.map} +1 -1
- package/public/assets/display-LAWaAboe.js.map +1 -1
- package/public/assets/{dist-DByqf8W0.js → dist-B_yrHbsb.js} +2 -2
- package/public/assets/{dist-DByqf8W0.js.map → dist-B_yrHbsb.js.map} +1 -1
- package/public/assets/{dist-C_XTOHbv.js → dist-C-viWls-.js} +2 -2
- package/public/assets/{dist-C_XTOHbv.js.map → dist-C-viWls-.js.map} +1 -1
- package/public/assets/{dist-DMD9fD99.js → dist-CYS2puT9.js} +2 -2
- package/public/assets/{dist-DMD9fD99.js.map → dist-CYS2puT9.js.map} +1 -1
- package/public/assets/{dist-CpugiXtB.js → dist-ChP4KvKi.js} +2 -2
- package/public/assets/{dist-CpugiXtB.js.map → dist-ChP4KvKi.js.map} +1 -1
- package/public/assets/{dist-CePvvSwo.js → dist-Cnlh_NpI.js} +2 -2
- package/public/assets/{dist-CePvvSwo.js.map → dist-Cnlh_NpI.js.map} +1 -1
- package/public/assets/{dist-DJ6ZVqRl.js → dist-CydxJz3m.js} +2 -2
- package/public/assets/{dist-DJ6ZVqRl.js.map → dist-CydxJz3m.js.map} +1 -1
- package/public/assets/{dist-Djf_WfhW.js → dist-D7K3qgp7.js} +2 -2
- package/public/assets/{dist-Djf_WfhW.js.map → dist-D7K3qgp7.js.map} +1 -1
- package/public/assets/{dist-otKoCUDq.js → dist-D8Yr1AIJ.js} +2 -2
- package/public/assets/{dist-otKoCUDq.js.map → dist-D8Yr1AIJ.js.map} +1 -1
- package/public/assets/{dist-BauUE17c.js → dist-DeAdFM5_.js} +2 -2
- package/public/assets/{dist-BauUE17c.js.map → dist-DeAdFM5_.js.map} +1 -1
- package/public/assets/{dist-CROpCfON.js → dist-DeM72J6a.js} +2 -2
- package/public/assets/{dist-CROpCfON.js.map → dist-DeM72J6a.js.map} +1 -1
- package/public/assets/{dist-CW_EpVCQ.js → dist-DfQP9-VC.js} +2 -2
- package/public/assets/{dist-CW_EpVCQ.js.map → dist-DfQP9-VC.js.map} +1 -1
- package/public/assets/{es2015-t3pwjvKi.js → es2015-C3DnXBqu.js} +2 -2
- package/public/assets/{es2015-t3pwjvKi.js.map → es2015-C3DnXBqu.js.map} +1 -1
- package/public/assets/{formatted-body-impl-DhvR8Z-A.js → formatted-body-impl-D2F76gPY.js} +2 -2
- package/public/assets/{formatted-body-impl-DhvR8Z-A.js.map → formatted-body-impl-D2F76gPY.js.map} +1 -1
- package/public/assets/index-CQQTCZxg.css +2 -0
- package/public/assets/index-DYmgI4s4.js +22 -0
- package/public/assets/{index-VGRP16ua.js.map → index-DYmgI4s4.js.map} +1 -1
- package/public/assets/{input-08ItMIki.js → input-Cqqq0OFl.js} +2 -2
- package/public/assets/{input-08ItMIki.js.map → input-Cqqq0OFl.js.map} +1 -1
- package/public/assets/{insights-v9noub5E.js → insights-DylYp2q4.js} +2 -2
- package/public/assets/{insights-v9noub5E.js.map → insights-DylYp2q4.js.map} +1 -1
- package/public/assets/{integrations-BEa3ArUw.js → integrations-B9ViWoJy.js} +2 -2
- package/public/assets/{integrations-BEa3ArUw.js.map → integrations-B9ViWoJy.js.map} +1 -1
- package/public/assets/{lib-CMqRPJG-.js → lib-6L4m0E3M.js} +2 -2
- package/public/assets/{lib-CMqRPJG-.js.map → lib-6L4m0E3M.js.map} +1 -1
- package/public/assets/{lucide-react-BbMYCUlW.js → lucide-react-DI8kTavp.js} +2 -2
- package/public/assets/{lucide-react-BbMYCUlW.js.map → lucide-react-DI8kTavp.js.map} +1 -1
- package/public/assets/{maintenance-DyRfVkhp.js → maintenance-inyZGLys.js} +2 -2
- package/public/assets/{maintenance-DyRfVkhp.js.map → maintenance-inyZGLys.js.map} +1 -1
- package/public/assets/{managed-agents-BSdMoBgG.js → managed-agents-CEFvMPN-.js} +2 -2
- package/public/assets/{managed-agents-BSdMoBgG.js.map → managed-agents-CEFvMPN-.js.map} +1 -1
- package/public/assets/{markdown-preview-impl-DidsrMmn.js → markdown-preview-impl-CniyG4_g.js} +2 -2
- package/public/assets/{markdown-preview-impl-DidsrMmn.js.map → markdown-preview-impl-CniyG4_g.js.map} +1 -1
- package/public/assets/memory-DDYGuRzr.js +2 -0
- package/public/assets/{memory-DM8muGVW.js.map → memory-DDYGuRzr.js.map} +1 -1
- package/public/assets/{messages-BqjAkcBF.js → messages-BMFcsMMa.js} +2 -2
- package/public/assets/{messages-BqjAkcBF.js.map → messages-BMFcsMMa.js.map} +1 -1
- package/public/assets/{orchestrators-C_mjUDZg.js → orchestrators-D5nL4a52.js} +2 -2
- package/public/assets/{orchestrators-C_mjUDZg.js.map → orchestrators-D5nL4a52.js.map} +1 -1
- package/public/assets/{overview-Cpu2plX-.js → overview-DywDrPKE.js} +2 -2
- package/public/assets/{overview-Cpu2plX-.js.map → overview-DywDrPKE.js.map} +1 -1
- package/public/assets/{pairs--8_0A0lq.js → pairs-UvIyBk4w.js} +2 -2
- package/public/assets/{pairs--8_0A0lq.js.map → pairs-UvIyBk4w.js.map} +1 -1
- package/public/assets/{projects-nCww9PG1.js → projects-DXBjwPU5.js} +2 -2
- package/public/assets/{projects-nCww9PG1.js.map → projects-DXBjwPU5.js.map} +1 -1
- package/public/assets/{react-dom-HJwa4sZ-.js → react-dom-Ct8qXivQ.js} +2 -2
- package/public/assets/{react-dom-HJwa4sZ-.js.map → react-dom-Ct8qXivQ.js.map} +1 -1
- package/public/assets/{security-CwgoEvJT.js → security-Boe7MEIz.js} +2 -2
- package/public/assets/{security-CwgoEvJT.js.map → security-Boe7MEIz.js.map} +1 -1
- package/public/assets/{select-Bhx6zSZr.js → select-Dh5Q8rJ8.js} +2 -2
- package/public/assets/{select-Bhx6zSZr.js.map → select-Dh5Q8rJ8.js.map} +1 -1
- package/public/assets/{settings-BNQBnKXg.js → settings-Ch4jMDrE.js} +3 -3
- package/public/assets/{settings-BNQBnKXg.js.map → settings-Ch4jMDrE.js.map} +1 -1
- package/public/assets/{store-BB-YW24l.js → store-BRvMMH5T.js} +2 -2
- package/public/assets/{store-BB-YW24l.js.map → store-BRvMMH5T.js.map} +1 -1
- package/public/assets/{tasks-C5Kv18N7.js → tasks-DrW8R52c.js} +2 -2
- package/public/assets/{tasks-C5Kv18N7.js.map → tasks-DrW8R52c.js.map} +1 -1
- package/public/assets/{teams-D_Ttv7qD.js → teams-CJqpAwmO.js} +2 -2
- package/public/assets/{teams-D_Ttv7qD.js.map → teams-CJqpAwmO.js.map} +1 -1
- package/public/assets/{terminal-viewer-impl-5y8v9jNx.js → terminal-viewer-impl-1_7v8GfU.js} +3 -3
- package/public/assets/{terminal-viewer-impl-5y8v9jNx.js.map → terminal-viewer-impl-1_7v8GfU.js.map} +1 -1
- package/public/assets/{use-keyboard-viewport-CEmOxaNm.js → use-keyboard-viewport-DxmCAbQi.js} +2 -2
- package/public/assets/{use-keyboard-viewport-CEmOxaNm.js.map → use-keyboard-viewport-DxmCAbQi.js.map} +1 -1
- package/public/assets/work-queue-BnIi7evb.js +2 -0
- package/public/assets/{work-queue-BB7bYLIK.js.map → work-queue-BnIi7evb.js.map} +1 -1
- package/public/assets/workspaces-u5j6mOlA.js +3 -0
- package/public/assets/{workspaces-CrtAeVnv.js.map → workspaces-u5j6mOlA.js.map} +1 -1
- package/public/index.html +21 -21
- package/runner/src/adapter.ts +7 -1
- package/runner/src/config.ts +4 -0
- package/src/db/message-reads.ts +8 -46
- package/src/db/messages.ts +208 -0
- package/src/db/notification-subscriptions.ts +68 -12
- package/src/index.ts +1 -1
- package/src/mcp/tools-spawn.ts +1 -1
- package/src/mcp-notification-subscription-tools.ts +90 -4
- package/src/memory-service.ts +14 -0
- package/src/notification-router.ts +9 -75
- package/src/notification-rules.ts +3 -3
- package/src/notification-subscription-rules.ts +11 -0
- package/src/notification-types.ts +70 -0
- package/src/project-instructions.ts +82 -9
- package/src/services/send-message.ts +5 -0
- package/src/services/spawn-agent.ts +13 -12
- package/src/spawn-command.ts +2 -0
- package/src/sse.ts +39 -2
- package/public/assets/MessageBubble-DPcJxTJj.js +0 -3
- package/public/assets/MessageBubble-DPcJxTJj.js.map +0 -1
- package/public/assets/branch-state-badge-C7H8HY22.js +0 -2
- package/public/assets/chat-DJqvtoFT.js +0 -2
- package/public/assets/chat-DJqvtoFT.js.map +0 -1
- package/public/assets/copy-button-DqAoeiPC.js +0 -2
- package/public/assets/index-Dh7NjR-l.css +0 -2
- package/public/assets/index-VGRP16ua.js +0 -22
- package/public/assets/memory-DM8muGVW.js +0 -2
- package/public/assets/work-queue-BB7bYLIK.js +0 -2
- package/public/assets/workspaces-CrtAeVnv.js +0 -3
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{Bn as t,D as n,Gt as r,H as ee,O as i,P as te,Qn as a,R as ne,m as o,xn as re}from"./lucide-react-BbMYCUlW.js";import{l as ie,t as s}from"./store-BB-YW24l.js";import{U as c,d as ae,h as l}from"./display-LAWaAboe.js";import{t as u}from"./badge-C6NJQ60B.js";import{t as d}from"./button-DD2CCM3t.js";import{t as f}from"./input-08ItMIki.js";import{P as oe,r as se,s as ce}from"./index-VGRP16ua.js";import{a as p,o as m,r as h,t as g}from"./card-GZqj3rMm.js";var _=e(a(),1),v=t(),y=[`organization`,`role`,`project`,`task`,`interaction`,`agent`],le=[`private`,`project`,`org`,`public`],ue=[`public`,`normal`,`sensitive`,`secret`],b=[`reported`,`inferred`,`verified`];function x(){return{type:`project`,scope:`default`,title:``,content:``,tags:``,visibility:`project`,sensitivity:`normal`,confidence:`reported`,relevanceScore:`0.7`}}function S(e){return{type:e.type,scope:e.scope,title:e.title,content:e.content,tags:e.tags.join(`, `),visibility:e.visibility,sensitivity:e.sensitivity,confidence:e.confidence,relevanceScore:String(e.relevanceScore)}}function C(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}function de(e){let t={limit:100};e.type&&(t.type=e.type),e.scope.trim()&&(t.scope=e.scope.trim()),e.visibility&&(t.visibility=e.visibility);let n=C(e.tags);if(n.length&&(t.tags=n),e.minRelevance.trim()){let n=Number(e.minRelevance);Number.isFinite(n)&&(t.minRelevance=Math.max(0,Math.min(1,n)))}return t}function w(e){return e===`secret`?`bg-red-500/10 text-red-400 border-red-500/30`:e===`sensitive`?`bg-yellow-500/10 text-yellow-400 border-yellow-500/30`:e===`public`?`bg-blue-500/10 text-blue-400 border-blue-500/30`:`bg-zinc-500/10 text-zinc-400 border-zinc-500/30`}function T(e){return e>=.8?`text-emerald-400`:e>=.5?`text-yellow-400`:`text-zinc-400`}function fe(e){return e?Object.entries(e).map(([e,t])=>`${e}=${Array.isArray(t)?t.join(` `):String(t)}`).join(` `):`default`}function pe(e){return e.filter(e=>![`system`,`user`,`channel`].includes(e.kind||``))}function E(){let e=ie(),t=s(e=>e.agents),a=s(e=>e.memories),E=s(e=>e.memoryTotal),O=s(e=>e.memoryStats),k=s(e=>e.memoryBrokerInfo),A=s(e=>e.memoryFilters),j=s(e=>e.selectedMemoryId),he=s(e=>e.memoryLoading),M=s(e=>e.set),ge=s(e=>e.fetchMemories),N=s(e=>e.refreshMemory),P=s(e=>e.saveMemory),F=s(e=>e.deleteMemory),I=s(e=>e.injectMemory),L=a.find(e=>e.id===j),[R,z]=(0,_.useState)(`create`),[B,V]=(0,_.useState)(x),[H,U]=(0,_.useState)(``),[W,_e]=(0,_.useState)(`manual`),[G,ve]=(0,_.useState)(`1600`),[K,q]=(0,_.useState)(`8`),[J,ye]=(0,_.useState)(``),Y=(0,_.useMemo)(()=>pe(t),[t]);(0,_.useEffect)(()=>{!H&&Y[0]&&U(Y[0].id)},[Y,H]),(0,_.useEffect)(()=>{L&&R===`edit`&&V(S(L))},[L?.id,R]);let X=(0,_.useMemo)(()=>{let e=A.search.trim().toLowerCase();return e?a.filter(t=>[t.id,t.type,t.scope,t.title,t.content,...t.tags].some(t=>String(t).toLowerCase().includes(e))):a},[a,A.search]);function Z(e){M({memoryFilters:{...A,...e}})}async function be(){let e=Number(B.relevanceScore),t={title:B.title.trim(),content:B.content.trim(),tags:C(B.tags),visibility:B.visibility,sensitivity:B.sensitivity,confidence:B.confidence,relevanceScore:Number.isFinite(e)?Math.max(0,Math.min(1,e)):.7};if(R===`edit`&&L){await P(t,L.id);return}await P({...t,type:B.type,scope:B.scope.trim()}),z(`create`),V(x())}async function Q(e){if(!H)return;let t=await I({agentId:H,memoryIds:e,query:e?.length?void 0:de(A),reason:W.trim()||`manual`,budget:{maxTokens:Math.max(200,Number(G)||1600),maxMemories:Math.max(1,Number(K)||8),priorityCutoff:3}});t?.command?.id&&ye(t.command.id)}function xe(){z(`create`),V(x())}function Se(){L&&(z(`edit`),V(S(L)))}let Ce=B.title.trim()&&B.content.trim()&&(R===`edit`||B.scope.trim()),$=fe(k?.config);return(0,v.jsxs)(`div`,{className:`space-y-4`,children:[(0,v.jsxs)(`div`,{className:`flex items-center justify-between gap-3 flex-wrap`,children:[(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(re,{className:`w-5 h-5 text-muted-foreground`}),(0,v.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Memory`}),(0,v.jsx)(u,{variant:`secondary`,children:O?.total??E}),k&&(0,v.jsx)(u,{className:k.external?`bg-blue-500/15 text-blue-400 border-blue-500/30`:`bg-emerald-500/15 text-emerald-400 border-emerald-500/30`,children:k.type})]}),(0,v.jsxs)(d,{size:`sm`,variant:`outline`,className:`gap-1.5`,onClick:()=>N(),children:[(0,v.jsx)(te,{className:`w-3.5 h-3.5 ${he?`animate-spin`:``}`}),`Refresh`]})]}),(0,v.jsxs)(`div`,{className:`grid gap-3 xl:grid-cols-[1.2fr_0.8fr]`,children:[(0,v.jsxs)(g,{children:[(0,v.jsx)(p,{className:`py-3 px-4`,children:(0,v.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,v.jsxs)(m,{className:`text-sm font-medium flex items-center gap-2`,children:[(0,v.jsx)(r,{className:`w-4 h-4 text-muted-foreground`}),`Broker`]}),k?.capabilities&&(0,v.jsx)(`div`,{className:`flex flex-wrap gap-1 justify-end`,children:Object.entries(k.capabilities).filter(([,e])=>!!e).map(([e])=>(0,v.jsx)(u,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:e},e))})]})}),(0,v.jsxs)(h,{className:`px-4 pb-4 space-y-3`,children:[(0,v.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-5 gap-2`,children:[(0,v.jsx)(D,{label:`total`,value:O?.total??E}),(0,v.jsx)(D,{label:`project`,value:O?.byType?.project??0}),(0,v.jsx)(D,{label:`task`,value:O?.byType?.task??0}),(0,v.jsx)(D,{label:`agent`,value:O?.byType?.agent??0}),(0,v.jsx)(D,{label:`sensitive`,value:(O?.bySensitivity?.sensitive??0)+(O?.bySensitivity?.secret??0)})]}),(0,v.jsx)(`div`,{className:`font-mono text-xs text-muted-foreground truncate`,title:$,children:$})]})]}),(0,v.jsxs)(g,{children:[(0,v.jsx)(p,{className:`py-3 px-4`,children:(0,v.jsx)(m,{className:`text-sm font-medium`,children:`Inject`})}),(0,v.jsxs)(h,{className:`px-4 pb-4 space-y-2`,children:[(0,v.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:[(0,v.jsxs)(`select`,{className:`rounded-md border border-input bg-background px-2 py-1.5 text-sm`,value:H,onChange:e=>U(e.target.value),children:[(0,v.jsx)(`option`,{value:``,children:`Agent`}),Y.map(e=>(0,v.jsx)(`option`,{value:e.id,children:ae(e)},e.id))]}),(0,v.jsx)(f,{value:W,onChange:e=>_e(e.target.value),placeholder:`reason`}),(0,v.jsx)(f,{value:G,onChange:e=>ve(e.target.value),inputMode:`numeric`,placeholder:`tokens`}),(0,v.jsx)(f,{value:K,onChange:e=>q(e.target.value),inputMode:`numeric`,placeholder:`memories`})]}),(0,v.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,v.jsxs)(d,{size:`sm`,className:`gap-1.5`,disabled:!H||!L,onClick:()=>L&&Q([L.id]),children:[(0,v.jsx)(n,{className:`w-3.5 h-3.5`}),`Selected`]}),(0,v.jsxs)(d,{size:`sm`,variant:`outline`,className:`gap-1.5`,disabled:!H,onClick:()=>Q(),children:[(0,v.jsx)(i,{className:`w-3.5 h-3.5`}),`Filtered`]}),J&&(0,v.jsx)(u,{variant:`outline`,className:`font-mono text-[10px]`,children:J})]})]})]})]}),(0,v.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[minmax(0,1fr)_420px]`,children:[(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(g,{children:(0,v.jsx)(h,{className:`p-3`,children:(0,v.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-6 gap-2`,children:[(0,v.jsx)(f,{className:`lg:col-span-2`,value:A.search,onChange:e=>Z({search:e.target.value}),placeholder:`Search visible memories`}),(0,v.jsxs)(`select`,{className:`rounded-md border border-input bg-background px-2 py-1.5 text-sm`,value:A.type,onChange:e=>Z({type:e.target.value}),children:[(0,v.jsx)(`option`,{value:``,children:`All types`}),y.map(e=>(0,v.jsx)(`option`,{value:e,children:e},e))]}),(0,v.jsx)(f,{value:A.scope,onChange:e=>Z({scope:e.target.value}),placeholder:`scope`}),(0,v.jsx)(f,{value:A.tags,onChange:e=>Z({tags:e.target.value}),placeholder:`tags`}),(0,v.jsxs)(`div`,{className:`flex gap-2`,children:[(0,v.jsx)(f,{value:A.minRelevance,onChange:e=>Z({minRelevance:e.target.value}),placeholder:`score`}),(0,v.jsx)(d,{size:`sm`,variant:`outline`,className:`h-8 px-2`,onClick:()=>ge(),children:(0,v.jsx)(i,{className:`w-4 h-4`})})]})]})})}),(0,v.jsx)(ce,{className:`h-[calc(100dvh-24rem)] min-h-[360px]`,children:(0,v.jsxs)(`div`,{className:`space-y-2 pr-2`,children:[X.length===0&&(0,v.jsx)(`div`,{className:`text-center text-sm text-muted-foreground py-16`,children:`No memories`}),X.map(t=>(0,v.jsx)(me,{memory:t,selected:t.id===j,now:e,onSelect:()=>M({selectedMemoryId:t.id})},t.id))]})})]}),(0,v.jsxs)(g,{children:[(0,v.jsx)(p,{className:`py-3 px-4`,children:(0,v.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,v.jsx)(m,{className:`text-sm font-medium`,children:R===`edit`?`Edit Memory`:`New Memory`}),(0,v.jsxs)(`div`,{className:`flex gap-1`,children:[(0,v.jsx)(d,{size:`sm`,variant:`ghost`,className:`h-7 px-2`,onClick:xe,title:`New memory`,children:(0,v.jsx)(ne,{className:`w-3.5 h-3.5`})}),(0,v.jsx)(d,{size:`sm`,variant:`ghost`,className:`h-7 px-2`,onClick:Se,disabled:!L,title:`Edit selected`,children:(0,v.jsx)(ee,{className:`w-3.5 h-3.5`})}),(0,v.jsx)(d,{size:`sm`,variant:`ghost`,className:`h-7 px-2 text-red-400 hover:text-red-300`,disabled:!L,onClick:()=>L&&F(L.id),title:`Delete selected`,children:(0,v.jsx)(o,{className:`w-3.5 h-3.5`})})]})]})}),(0,v.jsxs)(h,{className:`px-4 pb-4 space-y-3`,children:[L&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`div`,{className:`space-y-2`,children:[(0,v.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[(0,v.jsx)(u,{variant:`secondary`,children:L.type}),(0,v.jsx)(u,{variant:`outline`,children:L.scope}),(0,v.jsx)(u,{className:w(L.sensitivity),children:L.sensitivity}),(0,v.jsx)(u,{variant:`outline`,className:T(L.relevanceScore),children:L.relevanceScore.toFixed(2)})]}),(0,v.jsxs)(`div`,{className:`text-xs text-muted-foreground`,title:l(L.updatedAt),children:[`updated `,c(e,L.updatedAt)]}),(0,v.jsx)(`p`,{className:`text-sm font-medium`,children:L.title}),(0,v.jsx)(`p`,{className:`text-xs text-muted-foreground whitespace-pre-wrap max-h-24 overflow-auto`,children:L.content})]}),(0,v.jsx)(oe,{})]}),(0,v.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,v.jsx)(`select`,{className:`rounded-md border border-input bg-background px-2 py-1.5 text-sm`,disabled:R===`edit`,value:B.type,onChange:e=>V({...B,type:e.target.value}),children:y.map(e=>(0,v.jsx)(`option`,{value:e,children:e},e))}),(0,v.jsx)(f,{disabled:R===`edit`,value:B.scope,onChange:e=>V({...B,scope:e.target.value}),placeholder:`scope`}),(0,v.jsx)(f,{className:`col-span-2`,value:B.title,onChange:e=>V({...B,title:e.target.value}),placeholder:`title`}),(0,v.jsx)(se,{className:`col-span-2 min-h-32`,value:B.content,onChange:e=>V({...B,content:e.target.value}),placeholder:`content`}),(0,v.jsx)(f,{className:`col-span-2`,value:B.tags,onChange:e=>V({...B,tags:e.target.value}),placeholder:`tags`}),(0,v.jsx)(`select`,{className:`rounded-md border border-input bg-background px-2 py-1.5 text-sm`,value:B.visibility,onChange:e=>V({...B,visibility:e.target.value}),children:le.map(e=>(0,v.jsx)(`option`,{value:e,children:e},e))}),(0,v.jsx)(`select`,{className:`rounded-md border border-input bg-background px-2 py-1.5 text-sm`,value:B.sensitivity,onChange:e=>V({...B,sensitivity:e.target.value}),children:ue.map(e=>(0,v.jsx)(`option`,{value:e,children:e},e))}),(0,v.jsx)(`select`,{className:`rounded-md border border-input bg-background px-2 py-1.5 text-sm`,value:B.confidence,onChange:e=>V({...B,confidence:e.target.value}),children:b.map(e=>(0,v.jsx)(`option`,{value:e,children:e},e))}),(0,v.jsx)(f,{value:B.relevanceScore,onChange:e=>V({...B,relevanceScore:e.target.value}),inputMode:`decimal`,placeholder:`score`})]}),(0,v.jsx)(d,{size:`sm`,className:`w-full`,disabled:!Ce,onClick:be,children:R===`edit`?`Save memory`:`Create memory`})]})]})]})]})}function D({label:e,value:t}){return(0,v.jsxs)(`div`,{className:`rounded-md border border-border bg-muted/20 px-3 py-2`,children:[(0,v.jsx)(`div`,{className:`text-lg font-semibold tabular-nums`,children:t}),(0,v.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e})]})}function me({memory:e,selected:t,now:n,onSelect:r}){return(0,v.jsx)(`button`,{onClick:r,className:`w-full text-left rounded-md border p-3 transition-colors ${t?`border-primary bg-primary/5`:`border-border bg-card hover:border-zinc-600`}`,children:(0,v.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,v.jsxs)(`div`,{className:`min-w-0`,children:[(0,v.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[(0,v.jsx)(u,{variant:`secondary`,className:`text-[10px]`,children:e.type}),(0,v.jsx)(u,{variant:`outline`,className:`text-[10px] font-mono`,children:e.scope}),(0,v.jsx)(u,{className:`text-[10px] ${w(e.sensitivity)}`,children:e.sensitivity})]}),(0,v.jsx)(`div`,{className:`font-medium text-sm mt-2 truncate`,children:e.title}),(0,v.jsx)(`div`,{className:`text-xs text-muted-foreground line-clamp-2 mt-1`,children:e.content}),e.tags.length>0&&(0,v.jsx)(`div`,{className:`flex gap-1 flex-wrap mt-2`,children:e.tags.slice(0,8).map(e=>(0,v.jsxs)(u,{variant:`outline`,className:`text-[10px] text-zinc-400`,children:[`#`,e]},e))})]}),(0,v.jsxs)(`div`,{className:`text-right shrink-0 space-y-1`,children:[(0,v.jsx)(`div`,{className:`text-sm font-semibold tabular-nums ${T(e.relevanceScore)}`,children:e.relevanceScore.toFixed(2)}),(0,v.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,title:l(e.updatedAt),children:c(n,e.updatedAt)}),e.accessCount>0&&(0,v.jsxs)(`div`,{className:`text-[10px] text-muted-foreground`,children:[e.accessCount,` hits`]})]})]})})}export{E as MemoryView};
|
|
2
|
-
//# sourceMappingURL=memory-DM8muGVW.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Bn as e,_n as t,i as n,lt as r,on as i}from"./lucide-react-BbMYCUlW.js";import{l as a,t as o}from"./store-BB-YW24l.js";import{U as s,d as c,ut as l}from"./display-LAWaAboe.js";import{t as u}from"./badge-C6NJQ60B.js";import{t as d}from"./button-DD2CCM3t.js";import{B as f,K as p,s as m}from"./index-VGRP16ua.js";import{r as h,t as g}from"./card-GZqj3rMm.js";var _=e(),v={open:`bg-blue-500/10 text-blue-400 border-blue-500/20`,blocked:`bg-yellow-500/10 text-yellow-400 border-yellow-500/20`,claimed:`bg-emerald-500/10 text-emerald-400 border-emerald-500/20`,in_progress:`bg-purple-500/10 text-purple-400 border-purple-500/20`};function y(){let e=a(),t=o(e=>e.agentsById),n=o(e=>e.compose),i=o(e=>e.set),s=o(e=>e.doClaimTask),l=o(e=>e.doClaim),d=o(e=>e.openTaskEvents),h=o(e=>e.showError),g=o(e=>e.openConfirm),v=o(e=>e.doDeleteMessage),y=o(e=>e.doUpdateTaskStatus),x=f(),S=p(),C=S.filter(e=>e.claimable).length;function w(e){if(!n.from){h(`Validation`,`Select a "Claim as" agent first.`);return}e.sourceType===`task`&&e.task?s(e.task.id):e.sourceType===`message`&&e.message&&l(e.message.id)}function T(e){g(`Cancel Item`,`Cancel "${e.title||(e.sourceType===`task`?`Task #${e.id}`:`Message #${e.id}`)}"? This cannot be undone.`,()=>{e.sourceType===`task`&&e.task?y(e.task,`canceled`):e.sourceType===`message`&&e.message&&v(e.message.id)})}function E(e){e.task&&d(e.task)}return(0,_.jsxs)(`div`,{className:`space-y-4`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-2`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,_.jsx)(r,{className:`w-5 h-5 text-muted-foreground`}),(0,_.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Work Queue`}),C>0&&(0,_.jsxs)(u,{className:`bg-orange-500/20 text-orange-400 border-orange-500/30 border`,children:[C,` claimable`]})]}),(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,_.jsx)(`label`,{className:`text-xs text-muted-foreground shrink-0`,children:`Claim as`}),(0,_.jsxs)(`select`,{className:`rounded-md border border-input bg-background px-3 py-1.5 text-sm`,value:n.from,onChange:e=>i({compose:{...n,from:e.target.value}}),children:[(0,_.jsx)(`option`,{value:``,children:`Select agent...`}),x.map(e=>(0,_.jsx)(`option`,{value:e.id,children:c(e)},e.id))]})]})]}),(0,_.jsx)(m,{className:`h-[calc(100dvh-11rem)]`,children:(0,_.jsxs)(`div`,{className:`space-y-2 pr-2`,children:[S.length===0&&(0,_.jsx)(`div`,{className:`text-center text-muted-foreground py-16 text-sm`,children:`Work queue is empty`}),S.map(n=>(0,_.jsx)(b,{item:n,now:e,agentName:e=>t[e]?c(t[e]):e.slice(-10),onClaim:()=>w(n),onCancel:()=>T(n),onEvents:n.task?()=>E(n):void 0},n.id))]})})]})}function b({item:e,now:r,agentName:a,onClaim:o,onCancel:c,onEvents:f}){let p=l[e.severity]||l.info,m=v[e.status]||`bg-zinc-500/10 text-zinc-400 border-zinc-500/20`;return(0,_.jsx)(g,{className:e.claimable?`ring-1 ring-orange-500/30`:``,children:(0,_.jsx)(h,{className:`p-3`,children:(0,_.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,_.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap mb-1`,children:[(0,_.jsx)(`span`,{className:`font-medium text-sm truncate`,children:e.title}),(0,_.jsx)(u,{variant:`outline`,className:`text-xs px-1.5 py-0 border ${p}`,children:e.severity}),(0,_.jsx)(u,{variant:`outline`,className:`text-xs px-1.5 py-0 border ${m}`,children:e.status}),e.sourceType===`message`&&(0,_.jsx)(u,{variant:`outline`,className:`text-xs px-1.5 py-0 border border-zinc-500/20 text-zinc-400`,children:`msg`})]}),e.body&&(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground line-clamp-2 mb-2`,children:e.body}),(0,_.jsxs)(`div`,{className:`flex items-center gap-3 text-xs text-muted-foreground flex-wrap`,children:[e.owner&&(0,_.jsxs)(`span`,{title:`Owner`,children:[(0,_.jsx)(i,{className:`w-3 h-3 inline mr-1`}),a(e.owner)]}),e.source&&(0,_.jsx)(`span`,{className:`font-mono`,children:e.source}),(0,_.jsxs)(`span`,{title:String(e.updatedAt),children:[(0,_.jsx)(t,{className:`w-3 h-3 inline mr-1`}),s(r,e.updatedAt)]})]})]}),(0,_.jsxs)(`div`,{className:`flex flex-col gap-1 shrink-0`,children:[e.claimable&&(0,_.jsxs)(d,{size:`sm`,className:`h-7 text-xs bg-orange-600 hover:bg-orange-700 text-white`,onClick:o,children:[(0,_.jsx)(i,{className:`w-3.5 h-3.5 mr-1`}),` Claim`]}),f&&(0,_.jsx)(d,{size:`sm`,variant:`outline`,className:`h-7 text-xs`,onClick:f,children:`Events`}),(0,_.jsxs)(d,{size:`sm`,variant:`outline`,className:`h-7 text-xs text-red-400 hover:text-red-300 hover:bg-red-500/10 border-red-500/20`,onClick:c,children:[(0,_.jsx)(n,{className:`w-3.5 h-3.5 mr-1`}),` Cancel`]})]})]})})})}export{y as WorkQueueView};
|
|
2
|
-
//# sourceMappingURL=work-queue-BB7bYLIK.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-CilyBKbf.js";import{Bn as t,Ft as n,In as r,K as i,Lt as a,Mt as o,Nn as s,On as c,P as l,Qn as u,Qt as d,Rt as f,St as p,Tt as m,fn as h,i as g,kt as _,m as v,p as y,pn as b,un as ee,wt as x}from"./lucide-react-BbMYCUlW.js";import{l as S,t as C}from"./store-BB-YW24l.js";import{U as w,Y as T,d as E}from"./display-LAWaAboe.js";import{t as D}from"./badge-C6NJQ60B.js";import{t as O}from"./button-DD2CCM3t.js";import{t as k}from"./copy-button-DqAoeiPC.js";import{a as A,o as j,r as M,t as N}from"./card-GZqj3rMm.js";var P=e(u(),1),F=t(),I=new Set([`active`,`ready`,`conflict`,`review_requested`,`merge_planned`,`cleanup_requested`]),L=new Set([`active`,`ready`,`conflict`,`review_requested`,`merge_planned`]),R=new Set([`active`,`ready`,`review_requested`,`merge_planned`,`conflict`]),z={active:`bg-blue-500/10 text-blue-400 border-blue-500/20`,ready:`bg-emerald-500/10 text-emerald-400 border-emerald-500/20`,conflict:`bg-red-500/10 text-red-400 border-red-500/20`,review_requested:`bg-yellow-500/10 text-yellow-400 border-yellow-500/20`,merge_planned:`bg-indigo-500/10 text-indigo-400 border-indigo-500/20`,merged:`bg-violet-500/10 text-violet-400 border-violet-500/20`,abandoned:`bg-zinc-500/10 text-zinc-400 border-zinc-500/20`,cleanup_requested:`bg-orange-500/10 text-orange-400 border-orange-500/20`,cleaned:`bg-zinc-500/10 text-zinc-400 border-zinc-500/20`},B={active:`active`,ready:`ready`,conflict:`conflict`,review_requested:`review`,merge_planned:`merge planned`,merged:`merged`,abandoned:`abandoned`,cleanup_requested:`cleanup`,cleaned:`cleaned`},V={conflict:0,ready:1,review_requested:2,merge_planned:3,active:4,cleanup_requested:5,merged:6,abandoned:7,cleaned:8},H=new Set(T);function U(e){let t=e.split(`/`).filter(Boolean);return t.length<=3?e||`-`:`/${t.slice(-3).join(`/`)}`}function W(e,t){return e?E(e):t||`-`}function G(e){return z[e]||`bg-zinc-500/10 text-zinc-400 border-zinc-500/20`}function K(e,t){let n=(V[e.status]??99)-(V[t.status]??99);return n===0?Number(t.updatedAt||0)-Number(e.updatedAt||0):n}function q(e){let t=new Map;for(let n of e){let e=n.repoRoot||n.sourceCwd||`unknown repo`;t.set(e,[...t.get(e)||[],n])}return[...t.entries()].map(([e,t])=>({repoRoot:e,workspaces:t.sort(K)})).sort((e,t)=>{let n=e.workspaces.some(e=>I.has(e.status));return n===t.workspaces.some(e=>I.has(e.status))?e.repoRoot.localeCompare(t.repoRoot):n?-1:1})}function J(e,t){return t===`all`?e:t===`cleaned`?e.filter(e=>H.has(e.status)):e.filter(e=>!H.has(e.status))}function Y({workspace:e,expanded:t,onToggleDetails:n}){let r=C(e=>e.workspaceAction),i=C(e=>e.purgeWorkspace),a=C(e=>e.fetchWorkspaceMergePreview),s=C(e=>e.openFilesAt),c=e.status===`cleaned`||e.status===`merged`||e.status===`abandoned`,l=c||e.status===`cleanup_requested`,u=e.worktreePath||e.sourceCwd||e.repoRoot,d=C(t=>t.workspaceGitState[e.id]),m=!!d&&d.available!==!1&&d.landed===!0,y=e.mode===`isolated`&&!!e.worktreePath&&R.has(e.status)&&!m;async function x(){await a(e.id),await r(e.id,`merge`)}return(0,F.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-1.5`,children:[(0,F.jsx)(O,{size:`icon-sm`,variant:`ghost`,title:t?`Hide details`:`Show diff & timeline`,onClick:n,children:t?(0,F.jsx)(h,{className:`h-3.5 w-3.5`}):(0,F.jsx)(ee,{className:`h-3.5 w-3.5`})}),(0,F.jsx)(O,{size:`icon-sm`,variant:`ghost`,title:`Open workspace`,disabled:!u||e.status===`cleaned`,onClick:()=>void s({path:u}),children:(0,F.jsx)(_,{className:`h-3.5 w-3.5`})}),(0,F.jsx)(k,{value:u,label:`Copy path`,copiedLabel:`Copied path`,size:`icon-sm`,variant:`ghost`,disabled:!u}),(0,F.jsx)(O,{size:`icon-sm`,variant:`outline`,title:`Mark ready`,disabled:l||e.status===`ready`,onClick:()=>void r(e.id,`ready`),children:(0,F.jsx)(b,{className:`h-3.5 w-3.5`})}),(0,F.jsx)(O,{size:`icon-sm`,variant:`outline`,title:`Request review`,disabled:l||e.status===`review_requested`,onClick:()=>void r(e.id,`request-review`),children:(0,F.jsx)(f,{className:`h-3.5 w-3.5`})}),(0,F.jsx)(O,{size:`icon-sm`,variant:`outline`,title:`Mark merge planned`,disabled:l||e.status===`merge_planned`,onClick:()=>void r(e.id,`merge-plan`),children:(0,F.jsx)(o,{className:`h-3.5 w-3.5`})}),(0,F.jsx)(O,{size:`icon-sm`,variant:`default`,title:m?`Already merged into base — nothing to land`:`Merge & land work`,disabled:!y,onClick:()=>void x(),children:(0,F.jsx)(p,{className:`h-3.5 w-3.5`})}),(0,F.jsx)(O,{size:`icon-sm`,variant:`outline`,title:`Request cleanup (removes the worktree on the host)`,disabled:e.status===`cleaned`||e.status===`cleanup_requested`,onClick:()=>void r(e.id,`cleanup`),children:(0,F.jsx)(v,{className:`h-3.5 w-3.5`})}),c&&(0,F.jsx)(O,{size:`icon-sm`,variant:`ghost`,title:`Purge record (clears the row, does not touch disk)`,onClick:()=>void i(e.id),children:(0,F.jsx)(g,{className:`h-3.5 w-3.5`})})]})}function X({workspace:e,unmerged:t}){let n=C(t=>t.workspaceMergePreview[e.id]),r=C(e=>e.fetchWorkspaceMergePreview),i=t>0&&R.has(e.status);return(0,P.useEffect)(()=>{i&&n===void 0&&r(e.id)},[i,n,e.id,r]),!i||n===void 0||n.available===!1?null:n.conflict?(0,F.jsxs)(`span`,{className:`flex items-center gap-0.5 text-amber-400`,title:`Merging into ${n.baseRef||`base`} would conflict — resolve before merging`,children:[(0,F.jsx)(y,{className:`h-3 w-3`}),`conflict`]}):n.conflict===!1?(0,F.jsxs)(`span`,{className:`flex items-center gap-0.5 text-emerald-400`,title:`Clean to merge via ${n.strategy===`pr`?`PR`:`rebase + fast-forward`} into ${n.baseRef||`base`}`,children:[(0,F.jsx)(b,{className:`h-3 w-3`}),n.strategy===`pr`?`PR ready`:`clean`]}):null}function Z({workspace:e}){let t=S(),r=C(t=>t.workspaceGitState[e.id]),i=C(e=>e.fetchWorkspaceGitState),a=e.mode===`isolated`&&!!e.worktreePath&&L.has(e.status);if((0,P.useEffect)(()=>{a&&r===void 0&&i(e.id)},[a,r,e.id,i]),!a)return null;let o=(0,F.jsx)(O,{size:`icon-sm`,variant:`ghost`,className:`h-5 w-5`,title:`Refresh git state`,onClick:()=>void i(e.id),children:(0,F.jsx)(l,{className:`h-3 w-3`})});if(r===void 0)return(0,F.jsx)(`div`,{className:`flex items-center gap-1 text-[11px] text-muted-foreground`,children:`Loading git state…`});if(r.available===!1)return(0,F.jsxs)(`div`,{className:`flex items-center gap-1 text-[11px] text-muted-foreground`,title:r.reason,children:[(0,F.jsx)(`span`,{children:`git state unavailable`}),o]});if(r.missing)return(0,F.jsxs)(`div`,{className:`flex items-center gap-1 text-[11px] text-muted-foreground`,children:[`worktree gone `,o]});if(r.error)return(0,F.jsxs)(`div`,{className:`flex items-center gap-1 text-[11px] text-red-400`,title:r.error,children:[(0,F.jsx)(`span`,{children:`git error`}),o]});let u=r.ahead??0,d=r.landed===!0,f=d?0:r.unmergedAhead??u,p=r.behind??0,m=r.dirtyCount??0,h=f===0&&m===0&&!d,g=r.lastCommit;return(0,F.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-0.5 text-[11px]`,children:[h?(0,F.jsx)(`span`,{className:`text-muted-foreground`,children:`no unmerged work`}):(0,F.jsxs)(F.Fragment,{children:[d?(0,F.jsxs)(`span`,{className:`flex items-center gap-0.5 text-emerald-400`,title:`Work already landed in ${r.baseRef||`base`} via squash/cherry-pick — safe to clean up`,children:[(0,F.jsx)(b,{className:`h-3 w-3`}),`landed`]}):(0,F.jsxs)(`span`,{className:f>0?`flex items-center text-emerald-400`:`flex items-center text-muted-foreground`,title:u===f?`${f} commit(s) ahead of base`:`${f} unmerged commit(s) (${u} ahead of base)`,children:[(0,F.jsx)(c,{className:`h-3 w-3`}),f]}),(0,F.jsxs)(`span`,{className:p>0?`flex items-center text-amber-400`:`flex items-center text-muted-foreground`,title:`${p} commit(s) behind base`,children:[(0,F.jsx)(s,{className:`h-3 w-3`}),p]}),m>0&&(0,F.jsxs)(`span`,{className:`flex items-center text-orange-400`,title:`${m} uncommitted change(s)`,children:[(0,F.jsx)(n,{className:`h-3 w-3`}),m]}),!d&&(0,F.jsx)(X,{workspace:e,unmerged:f})]}),o]}),g&&(0,F.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 text-[11px] text-muted-foreground`,title:`${g.sha.slice(0,8)} — ${g.message}`,children:[(0,F.jsx)(x,{className:`h-3 w-3 shrink-0`}),(0,F.jsx)(`span`,{className:`truncate`,children:g.message||g.sha.slice(0,8)}),g.at?(0,F.jsxs)(`span`,{className:`shrink-0 opacity-70`,children:[`· `,w(t,g.at)]}):null]})]})}function Q({workspace:e}){let t=S(),n=typeof e.metadata?.mergedAt==`number`?e.metadata.mergedAt:void 0,r=[{label:`created`,at:e.createdAt},{label:`ready`,at:e.readyAt},{label:`merged`,at:n},{label:`cleaned`,at:e.cleanedAt}].filter(e=>typeof e.at==`number`&&e.at>0);return(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-muted-foreground`,children:[(0,F.jsxs)(`span`,{className:`flex items-center gap-1 font-medium text-foreground`,children:[(0,F.jsx)(d,{className:`h-3 w-3`}),`Timeline`]}),r.map((e,n)=>(0,F.jsxs)(`span`,{className:`flex items-center gap-1`,children:[n>0&&(0,F.jsx)(`span`,{className:`opacity-40`,children:`→`}),(0,F.jsx)(`span`,{className:`text-foreground`,children:e.label}),(0,F.jsx)(`span`,{title:new Date(e.at).toLocaleString(),children:w(t,e.at)})]},e.label))]})}function te(e){return e.startsWith(`+`)&&!e.startsWith(`+++`)?`text-emerald-400`:e.startsWith(`-`)&&!e.startsWith(`---`)?`text-red-400`:e.startsWith(`@@`)?`text-cyan-400`:e.startsWith(`diff `)||e.startsWith(`index `)||e.startsWith(`+++`)||e.startsWith(`---`)?`text-muted-foreground`:``}function ne({workspace:e}){let t=C(t=>t.workspaceDiff[e.id]),n=C(e=>e.fetchWorkspaceDiff),r=e.mode===`isolated`&&!!e.worktreePath;if((0,P.useEffect)(()=>{r&&t===void 0&&n(e.id)},[r,t,e.id,n]),!r)return null;if(t===void 0)return(0,F.jsx)(`div`,{className:`text-[11px] text-muted-foreground`,children:`Loading diff…`});if(t.available===!1)return(0,F.jsxs)(`div`,{className:`text-[11px] text-muted-foreground`,children:[`Diff unavailable`,t.reason?`: ${t.reason}`:``]});if(t.missing)return(0,F.jsx)(`div`,{className:`text-[11px] text-muted-foreground`,children:`Worktree no longer on disk`});if(t.error)return(0,F.jsxs)(`div`,{className:`text-[11px] text-red-400`,children:[`Diff error: `,t.error]});if(!t.files.length)return(0,F.jsxs)(`div`,{className:`text-[11px] text-muted-foreground`,children:[`No committed changes against `,t.baseRef||`base`]});let i=(0,F.jsx)(O,{size:`icon-sm`,variant:`ghost`,className:`h-5 w-5`,title:`Refresh diff`,onClick:()=>void n(e.id),children:(0,F.jsx)(l,{className:`h-3 w-3`})});return(0,F.jsxs)(`div`,{className:`space-y-1`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-medium`,children:[(0,F.jsx)(a,{className:`h-3 w-3`}),(0,F.jsxs)(`span`,{children:[t.files.length,` file`,t.files.length===1?``:`s`,` vs `,t.baseRef||`base`]}),i]}),(0,F.jsx)(`ul`,{className:`space-y-0.5 text-[11px]`,children:t.files.map(e=>(0,F.jsxs)(`li`,{className:`flex items-center gap-2 font-mono`,children:[(0,F.jsx)(`span`,{className:`truncate`,title:e.path,children:e.path}),e.binary?(0,F.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:`binary`}):(0,F.jsxs)(`span`,{className:`shrink-0`,children:[(0,F.jsxs)(`span`,{className:`text-emerald-400`,children:[`+`,e.additions??0]}),` `,(0,F.jsxs)(`span`,{className:`text-red-400`,children:[`−`,e.deletions??0]})]})]},e.path))}),t.patch&&(0,F.jsxs)(`pre`,{className:`max-h-80 overflow-auto rounded border border-border bg-muted/30 p-2 text-[10.5px] leading-relaxed`,children:[t.patch.split(`
|
|
2
|
-
`).map((e,t)=>(0,F.jsx)(`div`,{className:te(e),children:e||` `},t)),t.truncated&&(0,F.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:`… patch truncated`})]})]})}function $({workspace:e}){return(0,F.jsxs)(`div`,{className:`space-y-3 border-t border-dashed border-border bg-muted/20 px-3 py-3`,children:[(0,F.jsx)(Q,{workspace:e}),(0,F.jsx)(ne,{workspace:e})]})}function re(){let e=C(e=>e.workspaceOrphans),t=C(e=>e.fetchWorkspaceOrphans),n=C(e=>e.reclaimWorkspaceOrphan);return(0,P.useEffect)(()=>{t()},[t]),e.length?(0,F.jsxs)(N,{className:`border-amber-500/30`,children:[(0,F.jsxs)(A,{className:`px-4 py-3`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsx)(i,{className:`h-4 w-4 text-amber-400`}),(0,F.jsx)(j,{className:`text-sm font-medium`,children:`Orphaned worktrees`}),(0,F.jsx)(D,{variant:`outline`,className:`border-amber-500/30 text-amber-400 text-[10px]`,children:e.length}),(0,F.jsx)(O,{size:`icon-sm`,variant:`ghost`,className:`ml-auto h-6 w-6`,title:`Rescan`,onClick:()=>void t(),children:(0,F.jsx)(l,{className:`h-3.5 w-3.5`})})]}),(0,F.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Agent worktrees on disk with no live workspace. Reclaim removes them from the host.`})]}),(0,F.jsx)(M,{className:`p-0`,children:e.map(e=>(0,F.jsxs)(`div`,{className:`flex items-center gap-3 border-t border-border px-4 py-2 text-xs`,children:[(0,F.jsx)(m,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,F.jsx)(`span`,{className:`truncate font-medium`,title:e.branch,children:e.branch||`(detached)`}),(0,F.jsx)(`span`,{className:`truncate font-mono text-muted-foreground`,title:e.worktreePath,children:U(e.worktreePath)}),e.hadTerminalRow&&(0,F.jsx)(D,{variant:`outline`,className:`text-[10px]`,children:`cleanup failed`}),(0,F.jsxs)(O,{size:`sm`,variant:`outline`,className:`ml-auto h-7 text-xs`,onClick:()=>void n(e),children:[(0,F.jsx)(r,{className:`mr-1 h-3.5 w-3.5`}),`Reclaim`]})]},e.worktreePath))})]}):null}function ie(e){let t=e.match(/\/pull\/(\d+)/);return t?`PR #${t[1]}`:`View PR`}function ae({workspace:e}){let t=e.metadata?.mergeResult,n=t?.prUrl,r=t?.error||e.metadata?.mergeError;return!n&&!r?null:(0,F.jsxs)(F.Fragment,{children:[n&&(0,F.jsxs)(`a`,{href:n,target:`_blank`,rel:`noreferrer`,title:n,className:`inline-flex items-center gap-0.5 rounded border border-violet-500/30 px-1.5 py-0 text-[10px] text-violet-400 hover:text-violet-300`,children:[(0,F.jsx)(p,{className:`h-2.5 w-2.5`}),ie(n)]}),r&&(0,F.jsxs)(D,{variant:`outline`,className:`max-w-[16rem] border-amber-500/30 text-amber-400 text-[10px]`,title:r,children:[(0,F.jsx)(y,{className:`mr-0.5 h-2.5 w-2.5 shrink-0`}),(0,F.jsxs)(`span`,{className:`truncate`,children:[`merge: `,r]})]})]})}function oe({workspace:e}){let t=S(),[n,r]=(0,P.useState)(!1),i=C(e=>e.agentsById),a=C(t=>t.workspaceFocusId===e.id),o=e.ownerAgentId?i[e.ownerAgentId]:void 0,s=e.stewardAgentId?i[e.stewardAgentId]:void 0,c=e.worktreePath||e.sourceCwd||e.repoRoot,l=(0,P.useRef)(null);return(0,P.useEffect)(()=>{a&&l.current?.scrollIntoView({behavior:`smooth`,block:`center`})},[a]),(0,F.jsxs)(`div`,{ref:l,className:`border-t border-border ${a?`bg-primary/5 ring-1 ring-inset ring-primary/40`:``}`,children:[(0,F.jsxs)(`div`,{className:`grid gap-3 px-3 py-3 text-sm lg:grid-cols-[minmax(180px,1.2fr)_minmax(220px,1.5fr)_minmax(160px,1fr)_minmax(170px,auto)]`,children:[(0,F.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,F.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,F.jsx)(m,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,F.jsx)(`span`,{className:`truncate font-medium`,title:e.branch||e.id,children:e.branch||e.id})]}),(0,F.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[(0,F.jsx)(D,{variant:`outline`,className:`text-[10px] ${e.mode===`isolated`?`border-sky-500/30 text-sky-400`:`border-zinc-500/30 text-zinc-400`}`,children:e.mode}),e.requestedMode&&e.requestedMode!==e.mode&&(0,F.jsxs)(D,{variant:`outline`,className:`text-[10px]`,children:[`requested `,e.requestedMode]}),(0,F.jsx)(D,{variant:`outline`,className:`text-[10px] ${G(e.status)}`,children:B[e.status]||e.status}),(0,F.jsx)(ae,{workspace:e})]})]}),(0,F.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,F.jsx)(`div`,{className:`truncate font-mono text-xs`,title:c,children:U(c)}),(0,F.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,title:e.sourceCwd,children:e.sourceCwd}),(0,F.jsx)(Z,{workspace:e})]}),(0,F.jsxs)(`div`,{className:`grid grid-cols-[4.5rem_minmax(0,1fr)] gap-x-2 gap-y-1 text-xs`,children:[(0,F.jsx)(`span`,{className:`text-muted-foreground`,children:`Owner`}),(0,F.jsx)(`span`,{className:`truncate`,title:e.ownerAgentId,children:W(o,e.ownerPolicyName||e.ownerAgentId)}),(0,F.jsx)(`span`,{className:`text-muted-foreground`,children:`Steward`}),(0,F.jsx)(`span`,{className:`truncate`,title:e.stewardAgentId,children:W(s,e.stewardAgentId)}),(0,F.jsx)(`span`,{className:`text-muted-foreground`,children:`Updated`}),(0,F.jsx)(`span`,{children:w(t,e.updatedAt)}),e.baseRef&&(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`span`,{className:`text-muted-foreground`,children:`Base`}),(0,F.jsx)(`span`,{className:`truncate`,title:e.baseSha,children:e.baseRef})]})]}),(0,F.jsx)(Y,{workspace:e,expanded:n,onToggleDetails:()=>r(e=>!e)})]}),n&&(0,F.jsx)($,{workspace:e})]})}function se({repoRoot:e,workspaces:t}){let n=t.filter(e=>I.has(e.status)).length,r=t.filter(e=>e.status===`ready`||e.status===`review_requested`||e.status===`merge_planned`).length,i=t.filter(e=>e.status===`conflict`).length;return(0,F.jsxs)(N,{children:[(0,F.jsx)(A,{className:`px-4 py-3`,children:(0,F.jsx)(`div`,{className:`flex min-w-0 items-start gap-3`,children:(0,F.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,F.jsx)(j,{className:`truncate text-sm font-medium`,title:e,children:e}),(0,F.jsxs)(`div`,{className:`mt-1 flex flex-wrap gap-1.5`,children:[(0,F.jsxs)(D,{variant:`outline`,className:`text-[10px]`,children:[t.length,` total`]}),(0,F.jsxs)(D,{variant:`outline`,className:`text-[10px]`,children:[n,` live`]}),r>0&&(0,F.jsxs)(D,{variant:`outline`,className:`border-emerald-500/20 text-emerald-400 text-[10px]`,children:[r,` merge signal`]}),i>0&&(0,F.jsxs)(D,{variant:`outline`,className:`border-red-500/20 text-red-400 text-[10px]`,children:[i,` conflict`]})]})]})})}),(0,F.jsx)(M,{className:`p-0`,children:t.map(e=>(0,F.jsx)(oe,{workspace:e},e.id))})]})}function ce(){let[e,t]=(0,P.useState)(`active`),n=C(e=>e.workspaces),r=C(e=>e.set),i=C(e=>e.workspaceFocusId);(0,P.useEffect)(()=>{i&&t(`all`)},[i]),(0,P.useEffect)(()=>()=>{r({workspaceFocusId:null})},[r]);let a=(0,P.useMemo)(()=>J(n,e),[n,e]),o=(0,P.useMemo)(()=>q(a),[a]),s=n.filter(e=>I.has(e.status)).length,c=n.filter(e=>e.mode===`isolated`).length,l=n.filter(e=>e.status===`ready`||e.status===`review_requested`||e.status===`merge_planned`).length,u=n.filter(e=>e.status===`conflict`).length,d=n.filter(e=>H.has(e.status)).length,f=[{key:`active`,label:`Active`,count:n.length-d},{key:`cleaned`,label:`Done`,count:d},{key:`all`,label:`All`,count:n.length}];return(0,F.jsxs)(`div`,{className:`space-y-4`,children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,F.jsxs)(`div`,{children:[(0,F.jsx)(`h1`,{className:`text-2xl font-semibold`,children:`Workspaces`}),(0,F.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Agent worktrees, ownership, and merge readiness.`})]}),(0,F.jsxs)(`div`,{className:`ml-auto flex flex-wrap gap-1.5`,children:[(0,F.jsxs)(D,{variant:`outline`,children:[c,` isolated`]}),(0,F.jsxs)(D,{variant:`outline`,children:[s,` live`]}),(0,F.jsxs)(D,{variant:`outline`,children:[l,` ready`]}),u>0&&(0,F.jsxs)(D,{variant:`outline`,className:`border-red-500/20 text-red-400`,children:[u,` conflict`]})]})]}),(0,F.jsx)(re,{}),(0,F.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:(0,F.jsx)(`div`,{className:`flex rounded-md border border-border bg-card p-1`,children:f.map(n=>(0,F.jsxs)(O,{size:`sm`,variant:e===n.key?`secondary`:`ghost`,className:`h-7 text-xs`,onClick:()=>t(n.key),children:[n.label,(0,F.jsx)(`span`,{className:`ml-1 text-muted-foreground`,children:n.count})]},n.key))})}),o.length===0?(0,F.jsxs)(`div`,{className:`rounded-md border border-border px-3 py-12 text-center text-sm text-muted-foreground`,children:[`No `,e===`all`?``:e,` workspaces`]}):(0,F.jsx)(`div`,{className:`space-y-3`,children:o.map(e=>(0,F.jsx)(se,{repoRoot:e.repoRoot,workspaces:e.workspaces},e.repoRoot))})]})}export{ce as WorkspacesView};
|
|
3
|
-
//# sourceMappingURL=workspaces-CrtAeVnv.js.map
|