@edspencer/paddock 0.66.2 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/package.json +1 -1
  2. package/packages/server/dist/routes/chats.js +14 -2
  3. package/packages/server/dist/session-hub.d.ts +10 -0
  4. package/packages/server/dist/session-hub.js +16 -2
  5. package/packages/server/dist/ws-protocol.d.ts +15 -0
  6. package/packages/server/dist/ws.js +1 -0
  7. package/packages/server/package.json +1 -1
  8. package/packages/web/dist/assets/InstanceConfigPage-sDbCoFxC.js +2 -0
  9. package/packages/web/dist/assets/{MarkdownRenderer-DDVO0zhl.js → MarkdownRenderer-MaSe5aAI.js} +11 -11
  10. package/packages/web/dist/assets/ProjectMenu-DmWpr9od.js +2 -0
  11. package/packages/web/dist/assets/ProjectRedirect-BJeDERUd.js +2 -0
  12. package/packages/web/dist/assets/ProjectView-Bbecs1u7.js +13 -0
  13. package/packages/web/dist/assets/ProjectsGrid-BE4cAtu5.js +2 -0
  14. package/packages/web/dist/assets/Surfaces-DtSsbnLh.js +2 -0
  15. package/packages/web/dist/assets/{arc-DXqVnx_r.js → arc-NLb6J_GZ.js} +1 -1
  16. package/packages/web/dist/assets/{architectureDiagram-3BPJPVTR-FgkfD1Bk.js → architectureDiagram-3BPJPVTR-BbiSIctn.js} +1 -1
  17. package/packages/web/dist/assets/{blockDiagram-GPEHLZMM-WwkIIJsI.js → blockDiagram-GPEHLZMM-Br1sRzRE.js} +1 -1
  18. package/packages/web/dist/assets/{c4Diagram-AAUBKEIU-BIzkTibx.js → c4Diagram-AAUBKEIU-DUvJurko.js} +1 -1
  19. package/packages/web/dist/assets/channel-bezC0w5b.js +2 -0
  20. package/packages/web/dist/assets/{chunk-2J33WTMH-C4TBH3R6.js → chunk-2J33WTMH-Cm_E_LAD.js} +1 -1
  21. package/packages/web/dist/assets/{chunk-4BX2VUAB-DTKJZlRM.js → chunk-4BX2VUAB-CK6R2MCN.js} +1 -1
  22. package/packages/web/dist/assets/{chunk-55IACEB6-BC9_Qc8h.js → chunk-55IACEB6-D7HXvxGy.js} +1 -1
  23. package/packages/web/dist/assets/{chunk-727SXJPM-D3gQ4rP3.js → chunk-727SXJPM-BLwevzlY.js} +1 -1
  24. package/packages/web/dist/assets/{chunk-AQP2D5EJ-My2AXBvz.js → chunk-AQP2D5EJ-CpLWD5so.js} +1 -1
  25. package/packages/web/dist/assets/{chunk-FMBD7UC4-D09zE6Ow.js → chunk-FMBD7UC4-BNlt1t19.js} +1 -1
  26. package/packages/web/dist/assets/{chunk-ND2GUHAM-CUSgeCLl.js → chunk-ND2GUHAM-CIt5gAq8.js} +1 -1
  27. package/packages/web/dist/assets/{chunk-QZHKN3VN-B6jVPYgy.js → chunk-QZHKN3VN-B1uwIQ9c.js} +1 -1
  28. package/packages/web/dist/assets/classDiagram-4FO5ZUOK-DMgrTmQU.js +2 -0
  29. package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-DMgrTmQU.js +2 -0
  30. package/packages/web/dist/assets/{core-DPY0seI-.js → core-HXUN76Po.js} +1 -1
  31. package/packages/web/dist/assets/{cose-bilkent-S5V4N54A-BasCiARv.js → cose-bilkent-S5V4N54A-DJ4_5jxB.js} +1 -1
  32. package/packages/web/dist/assets/{dagre-BM42HDAG-Cimn11Qe.js → dagre-BM42HDAG-Bc9-haAu.js} +1 -1
  33. package/packages/web/dist/assets/{diagram-2AECGRRQ-fe9cDHyn.js → diagram-2AECGRRQ-nLOtPDzu.js} +1 -1
  34. package/packages/web/dist/assets/{diagram-5GNKFQAL-T0tQlfbl.js → diagram-5GNKFQAL-DThV84R3.js} +1 -1
  35. package/packages/web/dist/assets/{diagram-KO2AKTUF-dLORrSiu.js → diagram-KO2AKTUF-C5hcR1vA.js} +1 -1
  36. package/packages/web/dist/assets/{diagram-LMA3HP47-iUMeaR-J.js → diagram-LMA3HP47-BEFzrSHy.js} +1 -1
  37. package/packages/web/dist/assets/{diagram-OG6HWLK6-oEH6olHK.js → diagram-OG6HWLK6-BY5lPsX7.js} +1 -1
  38. package/packages/web/dist/assets/{erDiagram-TEJ5UH35-VtQqF9SY.js → erDiagram-TEJ5UH35-y_kB8ETg.js} +1 -1
  39. package/packages/web/dist/assets/{flowDiagram-I6XJVG4X-wvF2EkJa.js → flowDiagram-I6XJVG4X-Cuhha5cF.js} +1 -1
  40. package/packages/web/dist/assets/{ganttDiagram-6RSMTGT7-ng4qJ0E1.js → ganttDiagram-6RSMTGT7-DFJpciK5.js} +1 -1
  41. package/packages/web/dist/assets/{gitGraphDiagram-PVQCEYII-BV4aWy8k.js → gitGraphDiagram-PVQCEYII-FoA0yuh-.js} +1 -1
  42. package/packages/web/dist/assets/index-BxLurJvz.css +1 -0
  43. package/packages/web/dist/assets/index-C_PXsGTD.js +71 -0
  44. package/packages/web/dist/assets/{infoDiagram-5YYISTIA-BpGTxAjU.js → infoDiagram-5YYISTIA-CKYqD8-c.js} +1 -1
  45. package/packages/web/dist/assets/{ishikawaDiagram-YF4QCWOH-Cj36LyoS.js → ishikawaDiagram-YF4QCWOH-CCIxHIBw.js} +1 -1
  46. package/packages/web/dist/assets/{journeyDiagram-JHISSGLW-0vNlg3um.js → journeyDiagram-JHISSGLW-lGYoSyk0.js} +1 -1
  47. package/packages/web/dist/assets/{kanban-definition-UN3LZRKU-wijkEDaR.js → kanban-definition-UN3LZRKU-B3D7CIwy.js} +1 -1
  48. package/packages/web/dist/assets/{linear-LqRymMD_.js → linear-BiplJBex.js} +1 -1
  49. package/packages/web/dist/assets/{mermaid.core-DPrhSs95.js → mermaid.core-BJ7aEinZ.js} +4 -4
  50. package/packages/web/dist/assets/{mindmap-definition-RKZ34NQL-en-uGqgC.js → mindmap-definition-RKZ34NQL-BiXcOtHo.js} +1 -1
  51. package/packages/web/dist/assets/{pieDiagram-4H26LBE5-DKBZ2Vnx.js → pieDiagram-4H26LBE5-tnkj45YF.js} +1 -1
  52. package/packages/web/dist/assets/{quadrantDiagram-W4KKPZXB--g-WtxyL.js → quadrantDiagram-W4KKPZXB-LqReq3Gl.js} +1 -1
  53. package/packages/web/dist/assets/{requirementDiagram-4Y6WPE33-Dl4eYxDI.js → requirementDiagram-4Y6WPE33-C1uk9Jty.js} +1 -1
  54. package/packages/web/dist/assets/{sankeyDiagram-5OEKKPKP-7lt4gqSw.js → sankeyDiagram-5OEKKPKP-eQQ3OKrV.js} +1 -1
  55. package/packages/web/dist/assets/{sequenceDiagram-3UESZ5HK-COgq-dXg.js → sequenceDiagram-3UESZ5HK-C6-a0lH4.js} +1 -1
  56. package/packages/web/dist/assets/{stateDiagram-AJRCARHV-CL6XC79S.js → stateDiagram-AJRCARHV-CsTOkKqz.js} +1 -1
  57. package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-Bsc-VlVI.js +2 -0
  58. package/packages/web/dist/assets/{timeline-definition-PNZ67QCA-C5egKeGT.js → timeline-definition-PNZ67QCA-DUBXH1x-.js} +1 -1
  59. package/packages/web/dist/assets/{vennDiagram-CIIHVFJN-C_UhtC8u.js → vennDiagram-CIIHVFJN-CcQrNnou.js} +1 -1
  60. package/packages/web/dist/assets/{wardley-L42UT6IY-Bj9chUqz.js → wardley-L42UT6IY-Br823uUV.js} +1 -1
  61. package/packages/web/dist/assets/{wardleyDiagram-YWT4CUSO-D7VnZoRp.js → wardleyDiagram-YWT4CUSO-DRBECQc_.js} +1 -1
  62. package/packages/web/dist/assets/{xychartDiagram-2RQKCTM6-VrWLDoi4.js → xychartDiagram-2RQKCTM6--HtSFP24.js} +1 -1
  63. package/packages/web/dist/fonts/alegreya-latin-italic.woff2 +0 -0
  64. package/packages/web/dist/fonts/alegreya-latin.woff2 +0 -0
  65. package/packages/web/dist/fonts/alegreya-sc-latin-500.woff2 +0 -0
  66. package/packages/web/dist/fonts/alegreya-sc-latin-700.woff2 +0 -0
  67. package/packages/web/dist/fonts/courier-prime-latin-400.woff2 +0 -0
  68. package/packages/web/dist/fonts/courier-prime-latin-700.woff2 +0 -0
  69. package/packages/web/dist/fonts/courier-prime-latin-italic.woff2 +0 -0
  70. package/packages/web/dist/fonts/iosevka-terminal-400.woff2 +0 -0
  71. package/packages/web/dist/fonts/iosevka-terminal-700.woff2 +0 -0
  72. package/packages/web/dist/fonts/martian-mono-latin.woff2 +0 -0
  73. package/packages/web/dist/fonts/saira-latin.woff2 +0 -0
  74. package/packages/web/dist/index.html +61 -12
  75. package/packages/web/dist/sw.js +1 -1
  76. package/packages/web/dist/assets/InstanceConfigPage-DKzAHOhx.js +0 -2
  77. package/packages/web/dist/assets/ProjectRedirect-WczXTV0_.js +0 -2
  78. package/packages/web/dist/assets/ProjectView-Dd_myWpV.js +0 -13
  79. package/packages/web/dist/assets/ProjectsGrid-BeJj0q6Y.js +0 -2
  80. package/packages/web/dist/assets/channel-DUsOl5_p.js +0 -2
  81. package/packages/web/dist/assets/classDiagram-4FO5ZUOK-CIdDKEqH.js +0 -2
  82. package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-CIdDKEqH.js +0 -2
  83. package/packages/web/dist/assets/format-CvRqOKZU.js +0 -2
  84. package/packages/web/dist/assets/index-DGNSeqL-.js +0 -71
  85. package/packages/web/dist/assets/index-DMRbU1Jl.css +0 -1
  86. package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-BDlRyphY.js +0 -2
@@ -1,2 +0,0 @@
1
- import{u as D,r as o,a as A,o as F,b as y,j as e,L as v,C as j,P as C,N as L,g as B,X as P,S as O,B as R,T as X,c as z,d as G,e as H,f as J}from"./index-DGNSeqL-.js";import{C as K,S as U,P as V,r as q}from"./format-CvRqOKZU.js";function te({filterTag:s}={}){const{projects:a,loading:r,error:l,upsert:d,remove:g}=D(),[u,m]=o.useState(!1),[c,x]=o.useState(null),h=A(),p=B(),b=o.useCallback(t=>h(`/projects/${t.slug}/settings`),[h]),i=o.useMemo(()=>s?a.filter(t=>t.domain.includes(s)):a,[a,s]),$=o.useMemo(()=>{const t=new Map;for(const n of a){const N=n.group??"",w=t.get(N);w?w.push(n):t.set(N,[n])}return F(t.keys()).map(n=>[n,t.get(n)??[]])},[a]),[k,E]=o.useState({}),I=o.useMemo(()=>i.map(t=>t.slug).join(","),[i]);o.useEffect(()=>{let t=!1;return Promise.all(i.map(async n=>[n.slug,await y.listProjectChats(n.slug).catch(()=>[])])).then(n=>{t||E(Object.fromEntries(n))}),()=>{t=!0}},[I]);const M=t=>{d(t),m(!1),h(`/projects/${t.slug}/chat`)},f=!r&&!l&&!s&&a.length===0;return e.jsxs("div",{className:"h-full overflow-y-auto",children:[e.jsxs("div",{className:"mx-auto max-w-6xl px-3 py-5 sm:px-8 sm:py-10",children:[e.jsxs("header",{className:"mb-8 flex flex-wrap items-end justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-[28px] font-semibold tracking-tight",children:s?e.jsxs(e.Fragment,{children:["Projects tagged ",e.jsx("span",{className:"text-accent",children:s})]}):"Projects"}),s?e.jsxs("p",{className:"mt-1.5 max-w-xl text-sm text-paddock-500",children:[!r&&`${i.length} ${i.length===1?"project":"projects"} tagged “${s}”.`," ",e.jsx(v,{to:p,className:"text-accent underline-offset-2 hover:underline",children:"View all projects"})]}):e.jsx("p",{className:"mt-1.5 max-w-xl text-sm text-paddock-500",children:"Each project is a directory with persistent, resumable Claude Code sessions — your work, organized and always running."})]}),e.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[e.jsxs("button",{className:"btn-ghost",onClick:()=>h("/chat"),children:[e.jsx(j,{width:16,height:16}),"New chat"]}),e.jsxs("button",{className:"btn-primary",onClick:()=>m(!0),children:[e.jsx(C,{width:16,height:16}),"New Project"]})]})]}),s&&e.jsx(Z,{tag:s,onClear:()=>h(p)}),l&&e.jsx("div",{className:"mb-6 rounded-lg border border-rose-300/60 bg-rose-50 px-4 py-3 text-sm text-rose-700 dark:border-rose-900/60 dark:bg-rose-950/40 dark:text-rose-300",children:l}),r&&e.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[0,1,2,3,4,5].map(t=>e.jsx("div",{className:"h-40 animate-pulse rounded-2xl border border-paddock-200 bg-white/60 dark:border-paddock-800 dark:bg-paddock-900/50"},t))}),!r&&i.length===0&&!l&&s&&e.jsx(_,{tag:s,onClear:()=>h(p)}),f&&e.jsx(T,{onCreate:()=>m(!0),onChat:()=>h("/chat")}),!r&&s&&i.length>0&&e.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:i.map(t=>{var n;return e.jsx(S,{project:t,sessionCount:(n=k[t.slug])==null?void 0:n.length,onEdit:()=>b(t),onDelete:()=>x(t)},t.slug)})}),!r&&!s&&!f&&e.jsx("div",{className:"space-y-2",children:$.map(([t,n])=>e.jsx(Y,{slug:t,projects:n,counts:k,onEdit:b,onDelete:x},t||"unsorted"))})]}),e.jsx(L,{open:u,onClose:()=>m(!1),onCreated:M}),e.jsx(K,{open:c!==null,title:"Delete project?",message:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"font-medium text-ink dark:text-ink-dark",children:c==null?void 0:c.name})," and all its chats and files will be permanently removed. This cannot be undone."]}),confirmLabel:"Delete project",onConfirm:async()=>{if(!c)return;const t=c.slug;await y.deleteProject(t),g(t),x(null)},onClose:()=>x(null)})]})}function Q(s){const a=`paddock:area-collapsed:${s}`,[r,l]=o.useState(()=>{try{return localStorage.getItem(a)==="1"}catch{return!1}});return[r,()=>l(g=>{const u=!g;try{localStorage.setItem(a,u?"1":"0")}catch{}return u})]}function W({open:s,label:a,count:r,blurb:l,onToggle:d}){return e.jsxs("button",{type:"button",onClick:d,className:"group/area flex w-full items-center gap-2 rounded-lg px-1 py-2 text-left hover:bg-paddock-100/60 dark:hover:bg-paddock-800/40","aria-expanded":s,children:[e.jsx(J,{width:16,height:16,className:`shrink-0 text-paddock-400 transition-transform ${s?"rotate-90":""}`}),e.jsx("h2",{className:"text-[15px] font-semibold tracking-tight",children:a}),e.jsx("span",{className:"rounded-full bg-paddock-200/70 px-2 py-0.5 text-[11px] font-medium text-paddock-500 dark:bg-paddock-800 dark:text-paddock-400",children:r}),l&&e.jsxs("span",{className:"hidden min-w-0 truncate text-xs text-paddock-400 md:inline",children:["· ",l]})]})}function Y({slug:s,projects:a,counts:r,onEdit:l,onDelete:d}){const[g,u]=Q(s||"unsorted"),m=!g;return e.jsxs("section",{className:"mb-4",children:[e.jsx(W,{open:m,label:H(s),count:a.length,blurb:G(s),onToggle:u}),m&&e.jsx("div",{className:"mt-2 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:a.map(c=>{var x;return e.jsx(S,{project:c,sessionCount:(x=r[c.slug])==null?void 0:x.length,onEdit:()=>l(c),onDelete:()=>d(c)},c.slug)})})]})}function S({project:s,sessionCount:a,onEdit:r,onDelete:l}){return e.jsxs(v,{to:`/projects/${s.slug}`,className:"card group/card relative flex flex-col gap-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx("h2",{className:"min-w-0 line-clamp-2 font-semibold leading-snug",children:s.name}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[s.dirty?e.jsxs("span",{title:`${s.dirty} uncommitted change${s.dirty===1?"":"s"} — open the Changes tab`,className:"inline-flex items-center gap-1 rounded-full bg-amber-100 px-1.5 py-0.5 text-[10px] font-semibold text-amber-700 dark:bg-amber-950/50 dark:text-amber-400",children:[e.jsx(R,{width:10,height:10}),s.dirty]}):null,e.jsx(U,{status:s.status}),e.jsx(V,{onEdit:r,onDelete:l,label:`Actions for ${s.name}`})]})]}),s.summary&&e.jsx("p",{className:"line-clamp-3 text-sm text-paddock-600 dark:text-paddock-400",children:s.summary}),s.domain.length>0&&e.jsxs("div",{className:"flex flex-wrap gap-1",children:[s.domain.slice(0,4).map(d=>e.jsx(X,{tag:d,className:"max-w-[10rem] truncate"},d)),s.domain.length>4&&e.jsxs("span",{className:"tag",children:["+",s.domain.length-4]})]}),e.jsxs("div",{className:"mt-auto flex items-center justify-between gap-2 border-t border-paddock-200/70 pt-3 text-[11px] text-paddock-400 dark:border-paddock-800",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(j,{width:12,height:12}),a==null?"…":`${a} ${a===1?"chat":"chats"}`]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(z,{width:12,height:12}),q(s.updated)]})]})]})}function Z({tag:s,onClear:a}){return e.jsxs("div",{className:"mb-6 flex items-center gap-2 text-sm text-paddock-500",children:[e.jsx("span",{children:"Filtered by"}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-paddock-200/70 px-2.5 py-1 text-xs font-medium text-paddock-700 dark:bg-paddock-800 dark:text-paddock-200",children:[e.jsx("span",{"aria-hidden":!0,children:"🏷"}),e.jsx("span",{className:"max-w-[14rem] truncate",children:s}),e.jsx("button",{type:"button","aria-label":`Clear ${s} filter`,title:"Clear filter",onClick:a,className:"-mr-0.5 ml-0.5 flex h-4 w-4 items-center justify-center rounded-full transition-colors hover:bg-black/10 dark:hover:bg-white/10",children:e.jsx(P,{width:11,height:11})})]})]})}function _({tag:s,onClear:a}){return e.jsxs("div",{className:"mx-auto mt-10 max-w-lg rounded-2xl border border-dashed border-paddock-300 bg-white/50 px-8 py-12 text-center dark:border-paddock-700 dark:bg-paddock-900/40",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"No projects tagged"}),e.jsxs("p",{className:"mx-auto mt-3 flex items-center justify-center gap-1.5 text-sm text-paddock-500",children:["Nothing matches ",e.jsx("span",{className:"tag",children:s})," right now."]}),e.jsx("div",{className:"mt-6 flex items-center justify-center",children:e.jsxs("button",{className:"btn-ghost",onClick:a,children:[e.jsx(P,{width:16,height:16}),"Clear filter"]})})]})}function T({onCreate:s,onChat:a}){return e.jsxs("div",{className:"mx-auto mt-10 max-w-lg rounded-2xl border border-dashed border-paddock-300 bg-white/50 px-8 py-12 text-center dark:border-paddock-700 dark:bg-paddock-900/40",children:[e.jsx("div",{className:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-accent/10 text-accent",children:e.jsx(O,{width:26,height:26})}),e.jsx("h2",{className:"text-lg font-semibold",children:"Create your first project"}),e.jsx("p",{className:"mx-auto mt-2 max-w-sm text-sm text-paddock-500",children:"A project gives your work a home — a directory and chat sessions that persist and resume. Start one, then chat your way through it."}),e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-2",children:[e.jsxs("button",{className:"btn-primary",onClick:s,children:[e.jsx(C,{width:16,height:16}),"New Project"]}),e.jsxs("button",{className:"btn-ghost",onClick:a,children:[e.jsx(j,{width:16,height:16}),"Just chat once"]})]})]})}export{te as ProjectsGrid};
2
-
@@ -1,2 +0,0 @@
1
- import{U as a,D as n}from"./mermaid.core-DPrhSs95.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
2
-
@@ -1,2 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-D3gQ4rP3.js";import{_ as i}from"./mermaid.core-DPrhSs95.js";import"./chunk-FMBD7UC4-D09zE6Ow.js";import"./chunk-ND2GUHAM-CUSgeCLl.js";import"./chunk-55IACEB6-BC9_Qc8h.js";import"./chunk-2J33WTMH-C4TBH3R6.js";import"./index-DGNSeqL-.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
2
-
@@ -1,2 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-D3gQ4rP3.js";import{_ as i}from"./mermaid.core-DPrhSs95.js";import"./chunk-FMBD7UC4-D09zE6Ow.js";import"./chunk-ND2GUHAM-CUSgeCLl.js";import"./chunk-55IACEB6-BC9_Qc8h.js";import"./chunk-2J33WTMH-C4TBH3R6.js";import"./index-DGNSeqL-.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
2
-
@@ -1,2 +0,0 @@
1
- import{j as s,r as h,A as y,t as w,v as $,w as N}from"./index-DGNSeqL-.js";const x={idea:{pill:"bg-paddock-200/70 text-paddock-700 dark:bg-paddock-800 dark:text-paddock-300",dot:"bg-paddock-500"},active:{pill:"bg-emerald-100 text-emerald-800 dark:bg-emerald-900/50 dark:text-emerald-300",dot:"bg-emerald-500"},paused:{pill:"bg-amber-100 text-amber-800 dark:bg-amber-900/50 dark:text-amber-300",dot:"bg-amber-500"},blocked:{pill:"bg-rose-100 text-rose-800 dark:bg-rose-900/50 dark:text-rose-300",dot:"bg-rose-500"},done:{pill:"bg-sky-100 text-sky-800 dark:bg-sky-900/50 dark:text-sky-300",dot:"bg-sky-500"},abandoned:{pill:"bg-zinc-200 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-400",dot:"bg-zinc-400"}};function E({status:t}){const e=x[t]??x.idea;return s.jsxs("span",{className:`status-pill ${e.pill}`,children:[s.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${e.dot}`}),t]})}function T(t,e){h.useEffect(()=>{if(!t)return;const n=r=>{r.key==="Escape"&&e()};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[t,e])}function S({open:t,title:e,message:n,confirmLabel:r="Delete",cancelLabel:d="Cancel",danger:a=!0,wide:i=!1,dismissOnBackdrop:u=!0,onConfirm:f,onClose:o}){const[c,m]=h.useState(!1),[k,g]=h.useState(null);if(h.useEffect(()=>{t&&g(null)},[t]),T(t&&!c,o),!t)return null;const l=async()=>{m(!0),g(null);try{await f()}catch(p){g(p instanceof Error?p.message:"Action failed"),m(!1)}};return s.jsx("div",{className:"fixed inset-0 z-[60] flex items-center justify-center bg-black/40 p-4 backdrop-blur-sm",onClick:()=>u&&!c&&o(),children:s.jsxs("div",{className:`w-full ${i?"max-w-md":"max-w-sm"} animate-scale-in rounded-2xl border border-paddock-200 bg-white p-6 shadow-2xl dark:border-paddock-800 dark:bg-paddock-900`,onClick:p=>p.stopPropagation(),role:"alertdialog","aria-modal":"true",children:[s.jsxs("div",{className:"flex items-start gap-3",children:[a&&s.jsx("span",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-rose-100 text-rose-600 dark:bg-rose-950/60 dark:text-rose-400",children:s.jsx(y,{width:18,height:18})}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("h2",{className:"text-base font-semibold",children:e}),s.jsx("div",{className:"mt-1.5 text-sm text-paddock-600 dark:text-paddock-400",children:n})]})]}),k&&s.jsx("p",{className:"mt-4 rounded-lg bg-rose-50 px-3 py-2 text-sm text-rose-600 dark:bg-rose-950/40 dark:text-rose-300",children:k}),s.jsxs("div",{className:"mt-5 flex justify-end gap-2",children:[s.jsx("button",{type:"button",className:"btn-ghost",onClick:o,disabled:c,children:d}),s.jsx("button",{type:"button",className:a?"btn btn-danger":"btn-primary",onClick:l,disabled:c,children:c?"Working…":r})]})]})})}function D({onEdit:t,onDelete:e,align:n="right",label:r="Project actions",size:d=16}){const[a,i]=h.useState(!1),u=h.useRef(null);h.useEffect(()=>{if(!a)return;const o=m=>{u.current&&!u.current.contains(m.target)&&i(!1)},c=m=>{m.key==="Escape"&&i(!1)};return document.addEventListener("mousedown",o),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",o),document.removeEventListener("keydown",c)}},[a]);const f=o=>{o.preventDefault(),o.stopPropagation()};return s.jsxs("div",{className:"relative",ref:u,children:[s.jsx("button",{type:"button","aria-label":r,"aria-haspopup":"menu","aria-expanded":a,title:r,onClick:o=>{f(o),i(c=>!c)},className:"flex h-7 w-7 items-center justify-center rounded-lg text-paddock-400 transition-colors hover:bg-paddock-200/70 hover:text-paddock-700 dark:hover:bg-paddock-800 dark:hover:text-paddock-200",children:s.jsx(w,{width:d,height:d})}),a&&s.jsxs("div",{className:`menu top-8 ${n==="right"?"right-0":"left-0"}`,role:"menu",children:[s.jsxs("button",{type:"button",role:"menuitem",className:"menu-item",onClick:o=>{f(o),i(!1),t()},children:[s.jsx($,{width:14,height:14}),"Edit details"]}),e&&s.jsxs("button",{type:"button",role:"menuitem",className:"menu-item-danger",onClick:o=>{f(o),i(!1),e()},children:[s.jsx(N,{width:14,height:14}),"Delete project"]})]})]})}const j=/^\d{4}-\d{2}-\d{2}$/;function L(t){if(!t)return"";if(j.test(t)){const[f,o,c]=t.split("-").map(Number),m=new Date(f,o-1,c);if(Number.isNaN(m.getTime()))return t;const k=new Date,g=new Date(k.getFullYear(),k.getMonth(),k.getDate()),l=Math.round((g.getTime()-m.getTime())/864e5);return l<=0?"today":l===1?"yesterday":l<7?`${l}d ago`:l<35?`${Math.round(l/7)}w ago`:l<365?`${Math.round(l/30)}mo ago`:`${Math.round(l/365)}y ago`}const e=new Date(t).getTime();if(Number.isNaN(e))return t;const n=Math.round((Date.now()-e)/1e3);if(n<45)return"just now";const r=Math.round(n/60);if(r<60)return`${r}m ago`;const d=Math.round(r/60);if(d<24)return`${d}h ago`;const a=Math.round(d/24);if(a<7)return`${a}d ago`;const i=Math.round(a/7);if(i<5)return`${i}w ago`;const u=Math.round(a/30);return u<12?`${u}mo ago`:`${Math.round(a/365)}y ago`}function P(t){if(!t)return"";const e=new Date(t).getTime();if(Number.isNaN(e))return t;const n=Math.round((e-Date.now())/1e3);if(n<=30)return"now";const r=Math.round(n/60);if(r<60)return`in ${r}m`;const d=Math.round(r/60);if(d<24)return`in ${d}h`;const a=Math.round(d/24);if(a<7)return`in ${a}d`;const i=Math.round(a/7);if(i<5)return`in ${i}w`;const u=Math.round(a/30);return u<12?`in ${u}mo`:`in ${Math.round(a/365)}y`}function b(t){return!Number.isFinite(t)||t<0?"0":t>=1e6?`${(t/1e6).toFixed(t>=1e7?0:2)}M`:t>=1e3?`${Math.round(t/1e3)}K`:`${Math.round(t)}`}function v(t){return!Number.isFinite(t)||t<=0?"$0.00":t<.01?"<$0.01":`$${t.toFixed(2)}`}function I(t){if(!(!t||t.totalTokens==null))return{inputTokens:t.inputTokens??0,outputTokens:t.outputTokens??0,cacheReadTokens:t.cacheReadTokens??0,cacheCreationTokens:t.cacheCreationTokens??0,totalTokens:t.totalTokens,costUsd:t.costUsd??null}}function U(t){const e=t.inputTokens+t.cacheReadTokens+t.cacheCreationTokens,n=`${b(t.totalTokens)} tokens · ${b(e)} in / ${b(t.outputTokens)} out`;return t.costUsd==null?n:`${n} · ~${v(t.costUsd)} at API rates`}function A(t){if(t==null||Number.isNaN(t))return null;if(t<1e3)return`${Math.round(t)}ms`;const e=t/1e3;if(e<10)return`${e.toFixed(1)}s`;if(e<60)return`${Math.round(e)}s`;const n=Math.floor(e/60),r=Math.round(e%60);return r?`${n}m ${r}s`:`${n}m`}const M="This session is being continued from a previous conversation";function F(t){return t.trimStart().startsWith(M)}function O(t){const e=/^\s*<command-name>([^<]*)<\/command-name>/.exec(t);if(!e)return null;const n=e[1].trim();return n.length>0?n:null}function R(t){return t.trimStart().startsWith("<local-command-caveat>")}function z(t){const e=/^\s*<local-command-stdout>([\s\S]*)<\/local-command-stdout>\s*$/.exec(t);if(!e)return null;const n=e[1].trim();return n.length>0?n:null}function K(t){return/^\s*<local-command-stdout>[\s\S]*<\/local-command-stdout>\s*$/.test(t)}function W(t){return t.trimStart().startsWith("<task-notification>")}function _(t){var r;const e=/<summary>([\s\S]*?)<\/summary>/.exec(t),n=(r=e==null?void 0:e[1])==null?void 0:r.trim();return n&&n.length>0?n:"Background agent updated"}function Y(t){var r;const e=/<status>([\s\S]*?)<\/status>/.exec(t),n=(r=e==null?void 0:e[1])==null?void 0:r.trim().toLowerCase();return n&&n.length>0?n:null}function B(t){return t==="killed"||t==="stopped"}export{S as C,D as P,E as S,K as a,R as b,W as c,_ as d,b as e,v as f,U as g,B as h,F as i,A as j,T as k,z as l,I as m,L as r,O as s,Y as t,P as u};
2
-