@edspencer/paddock 0.82.0 → 0.82.1
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/package.json +1 -1
- package/packages/server/dist/cli/args.js +2 -2
- package/packages/server/dist/cli/busy-command.js +1 -1
- package/packages/server/dist/cli/busy.js +10 -12
- package/packages/server/dist/cli/exit-codes.d.ts +21 -45
- package/packages/server/dist/cli/exit-codes.js +42 -45
- package/packages/server/dist/cli/output.js +5 -6
- package/packages/server/dist/cli/paddock.js +9 -9
- package/packages/server/dist/cli/service/index.d.ts +2 -2
- package/packages/server/dist/cli/service/index.js +30 -24
- package/packages/server/dist/cli/service/launchd.d.ts +31 -84
- package/packages/server/dist/cli/service/launchd.js +104 -304
- package/packages/server/dist/cli/service/logs.d.ts +9 -28
- package/packages/server/dist/cli/service/logs.js +33 -75
- package/packages/server/dist/cli/service/manager.d.ts +93 -0
- package/packages/server/dist/cli/service/manager.js +21 -0
- package/packages/server/dist/cli/service/path-env.d.ts +7 -18
- package/packages/server/dist/cli/service/path-env.js +30 -81
- package/packages/server/dist/cli/service/spec.d.ts +4 -31
- package/packages/server/dist/cli/service/spec.js +9 -0
- package/packages/server/dist/cli/service/systemd.d.ts +27 -101
- package/packages/server/dist/cli/service/systemd.js +106 -262
- package/packages/server/dist/cli/update/health.d.ts +48 -0
- package/packages/server/dist/cli/update/health.js +64 -0
- package/packages/server/dist/cli/update/install-method.d.ts +29 -76
- package/packages/server/dist/cli/update/install-method.js +103 -178
- package/packages/server/dist/cli/update/lock.d.ts +7 -12
- package/packages/server/dist/cli/update/lock.js +28 -62
- package/packages/server/dist/cli/update/package-manager.d.ts +39 -74
- package/packages/server/dist/cli/update/package-manager.js +95 -160
- package/packages/server/dist/cli/update/registry.d.ts +17 -54
- package/packages/server/dist/cli/update/registry.js +46 -89
- package/packages/server/dist/cli/update/semver.d.ts +18 -41
- package/packages/server/dist/cli/update/semver.js +74 -124
- package/packages/server/dist/cli/update/update-check.d.ts +15 -26
- package/packages/server/dist/cli/update/update-check.js +30 -60
- package/packages/server/dist/cli/update/update.d.ts +57 -91
- package/packages/server/dist/cli/update/update.js +230 -431
- package/packages/server/dist/cli/update-command.js +3 -5
- package/packages/server/package.json +1 -1
- package/packages/web/dist/assets/{DeleteProjectDialog-CphdGB3R.js → DeleteProjectDialog-CgHpQctt.js} +1 -1
- package/packages/web/dist/assets/DiscoverPage-CG6cf-0i.js +2 -0
- package/packages/web/dist/assets/{DiscoverView-B_kcF4sm.js → DiscoverView-BKqI0I1E.js} +1 -1
- package/packages/web/dist/assets/{InstanceConfigPage-CvUK5DKW.js → InstanceConfigPage-DL3raCK1.js} +1 -1
- package/packages/web/dist/assets/{MarkdownRenderer-DvZ-j_Ao.js → MarkdownRenderer-DcjEuf3s.js} +1 -1
- package/packages/web/dist/assets/{ProjectRedirect-DayHvUH2.js → ProjectRedirect-DerkA-nE.js} +1 -1
- package/packages/web/dist/assets/{ProjectView-CCw83gUi.js → ProjectView-NwfC3_w7.js} +3 -3
- package/packages/web/dist/assets/{ProjectsGrid-B3Klg2H4.js → ProjectsGrid-BeORa0UH.js} +1 -1
- package/packages/web/dist/assets/{RootHome-BxcDvpgI.js → RootHome-BYJs8qJ6.js} +1 -1
- package/packages/web/dist/assets/{Surfaces-7UlhFBSG.js → Surfaces-w-kEaAYU.js} +1 -1
- package/packages/web/dist/assets/{arc-DNkh5o5Q.js → arc-Bv56hasM.js} +1 -1
- package/packages/web/dist/assets/{architectureDiagram-3BPJPVTR-BrgN3oLF.js → architectureDiagram-3BPJPVTR-BHEknx9i.js} +1 -1
- package/packages/web/dist/assets/{blockDiagram-GPEHLZMM-D05XOJSk.js → blockDiagram-GPEHLZMM-DtxTMrPX.js} +1 -1
- package/packages/web/dist/assets/{c4Diagram-AAUBKEIU-CKaMBhMP.js → c4Diagram-AAUBKEIU-DRpEYOlM.js} +1 -1
- package/packages/web/dist/assets/channel-CdIiAqY2.js +2 -0
- package/packages/web/dist/assets/{chunk-2J33WTMH-8hgadCQc.js → chunk-2J33WTMH-S4s7GCg7.js} +1 -1
- package/packages/web/dist/assets/{chunk-4BX2VUAB-CBfEC-pu.js → chunk-4BX2VUAB-BkWVPLf1.js} +1 -1
- package/packages/web/dist/assets/{chunk-55IACEB6-DV1eMgHk.js → chunk-55IACEB6-4-FQp01F.js} +1 -1
- package/packages/web/dist/assets/{chunk-727SXJPM-Cfgl5fxY.js → chunk-727SXJPM-BeyDWdIb.js} +1 -1
- package/packages/web/dist/assets/{chunk-AQP2D5EJ-BXhqD295.js → chunk-AQP2D5EJ-ZSxKy745.js} +1 -1
- package/packages/web/dist/assets/{chunk-FMBD7UC4-TFGOPtek.js → chunk-FMBD7UC4-Bq8uV9j-.js} +1 -1
- package/packages/web/dist/assets/{chunk-ND2GUHAM-CHFM665R.js → chunk-ND2GUHAM-BOFsRyHk.js} +1 -1
- package/packages/web/dist/assets/{chunk-QZHKN3VN-CqEf6MMT.js → chunk-QZHKN3VN-uZ6oNc4m.js} +1 -1
- package/packages/web/dist/assets/classDiagram-4FO5ZUOK-DCCUHba0.js +2 -0
- package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-DCCUHba0.js +2 -0
- package/packages/web/dist/assets/{core-DmEaKxBb.js → core-CYuJAM2U.js} +1 -1
- package/packages/web/dist/assets/{cose-bilkent-S5V4N54A-BnGI6jkr.js → cose-bilkent-S5V4N54A-DIzkVSFb.js} +1 -1
- package/packages/web/dist/assets/{dagre-BM42HDAG-CKoPx61E.js → dagre-BM42HDAG-CHR6jJBv.js} +1 -1
- package/packages/web/dist/assets/{diagram-2AECGRRQ-mMmtlBl1.js → diagram-2AECGRRQ-BAFXCH8Q.js} +1 -1
- package/packages/web/dist/assets/{diagram-5GNKFQAL-Cdz9Mtnt.js → diagram-5GNKFQAL-BJ5t5gbz.js} +1 -1
- package/packages/web/dist/assets/{diagram-KO2AKTUF-DQxM3wYj.js → diagram-KO2AKTUF-D9Xt0IVg.js} +1 -1
- package/packages/web/dist/assets/{diagram-LMA3HP47-BWrinPsq.js → diagram-LMA3HP47-Bq38u6sy.js} +1 -1
- package/packages/web/dist/assets/{diagram-OG6HWLK6-U6MYUve2.js → diagram-OG6HWLK6-CMQVqkpi.js} +1 -1
- package/packages/web/dist/assets/{documentTitle-DGjRXuTP.js → documentTitle-M1lrfXRU.js} +1 -1
- package/packages/web/dist/assets/{erDiagram-TEJ5UH35-xqMCsXxY.js → erDiagram-TEJ5UH35-C63M1g9b.js} +1 -1
- package/packages/web/dist/assets/{flowDiagram-I6XJVG4X-PMfy_czF.js → flowDiagram-I6XJVG4X-D3j8ACN7.js} +1 -1
- package/packages/web/dist/assets/{ganttDiagram-6RSMTGT7-whhYYE4N.js → ganttDiagram-6RSMTGT7-B1Fd1A2Y.js} +1 -1
- package/packages/web/dist/assets/{gitGraphDiagram-PVQCEYII-C51JW4tf.js → gitGraphDiagram-PVQCEYII-CEhZhDdR.js} +1 -1
- package/packages/web/dist/assets/{index-CHOtvlnO.js → index-1E9yHciS.js} +2 -2
- package/packages/web/dist/assets/{infoDiagram-5YYISTIA-SH8cr905.js → infoDiagram-5YYISTIA-Ctquaew6.js} +1 -1
- package/packages/web/dist/assets/{ishikawaDiagram-YF4QCWOH-BjqaoU3U.js → ishikawaDiagram-YF4QCWOH-DV4GvA1R.js} +1 -1
- package/packages/web/dist/assets/{journeyDiagram-JHISSGLW-CBmdEVrd.js → journeyDiagram-JHISSGLW-C_Cy9waA.js} +1 -1
- package/packages/web/dist/assets/{kanban-definition-UN3LZRKU-U8njjMLZ.js → kanban-definition-UN3LZRKU-CGr9ctEf.js} +1 -1
- package/packages/web/dist/assets/{linear-DF66GPs1.js → linear-D3U8NOkt.js} +1 -1
- package/packages/web/dist/assets/{mermaid.core-CouJz7Ph.js → mermaid.core-BiArdWKV.js} +4 -4
- package/packages/web/dist/assets/{mindmap-definition-RKZ34NQL-BYIf0oFt.js → mindmap-definition-RKZ34NQL-CZIpzj8Z.js} +1 -1
- package/packages/web/dist/assets/{pieDiagram-4H26LBE5-Cm8rgg09.js → pieDiagram-4H26LBE5-1MaeS3rt.js} +1 -1
- package/packages/web/dist/assets/{quadrantDiagram-W4KKPZXB-C3Il5kOH.js → quadrantDiagram-W4KKPZXB-B5pgQ54e.js} +1 -1
- package/packages/web/dist/assets/{requirementDiagram-4Y6WPE33-D3PE2nTe.js → requirementDiagram-4Y6WPE33-BNnxrpGr.js} +1 -1
- package/packages/web/dist/assets/{sankeyDiagram-5OEKKPKP-DdmvBM18.js → sankeyDiagram-5OEKKPKP-DsxVH-hM.js} +1 -1
- package/packages/web/dist/assets/{sequenceDiagram-3UESZ5HK-B8M_GAIq.js → sequenceDiagram-3UESZ5HK-Ke9LcFZI.js} +1 -1
- package/packages/web/dist/assets/{stateDiagram-AJRCARHV-DZkXnK1_.js → stateDiagram-AJRCARHV-UJzmflND.js} +1 -1
- package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-DgUc3HkP.js +2 -0
- package/packages/web/dist/assets/{timeline-definition-PNZ67QCA-IHXq7rqi.js → timeline-definition-PNZ67QCA-BRjNALVI.js} +1 -1
- package/packages/web/dist/assets/{vennDiagram-CIIHVFJN-Dga7tLtT.js → vennDiagram-CIIHVFJN-ClMAspxz.js} +1 -1
- package/packages/web/dist/assets/{wardley-L42UT6IY-CmcwnEJ-.js → wardley-L42UT6IY-UPv4JEmz.js} +1 -1
- package/packages/web/dist/assets/{wardleyDiagram-YWT4CUSO-zHuSLrD4.js → wardleyDiagram-YWT4CUSO-BgYJbdEx.js} +1 -1
- package/packages/web/dist/assets/{xychartDiagram-2RQKCTM6-D93MU_ic.js → xychartDiagram-2RQKCTM6-Bfk5HjGx.js} +1 -1
- package/packages/web/dist/index.html +1 -1
- package/packages/web/dist/sw.js +1 -1
- package/packages/server/dist/cli/service/backend.d.ts +0 -115
- package/packages/server/dist/cli/service/backend.js +0 -19
- package/packages/web/dist/assets/DiscoverPage-C4OPLNO8.js +0 -2
- package/packages/web/dist/assets/channel-JrEedxB8.js +0 -2
- package/packages/web/dist/assets/classDiagram-4FO5ZUOK-CHJiQp-W.js +0 -2
- package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-CHJiQp-W.js +0 -2
- package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-CjCdT9Ls.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,r as m,M as I,P as M,T as L,d as A,h as O,o as B,a as F,L as y,C as j,i as C,k as R,l as X,X as k,S as q,B as G,m as H,n as J,p as K,q as U,s as V,t as Y,v as z}from"./index-CHOtvlnO.js";import{D as Q}from"./DeleteProjectDialog-CphdGB3R.js";import{u as W}from"./documentTitle-DGjRXuTP.js";import"./lastTab-CU1zsF0j.js";const v={idea:{pill:"bg-surface-active text-fg-muted",dot:"bg-fg-muted"},active:{pill:"bg-success-soft text-success",dot:"bg-success-solid"},paused:{pill:"bg-warn-soft text-warn",dot:"bg-warn-solid"},blocked:{pill:"bg-danger-soft text-danger",dot:"bg-danger-solid"},done:{pill:"bg-info-soft text-info",dot:"bg-info-solid"},abandoned:{pill:"bg-surface-active text-fg-subtle",dot:"bg-fg-subtle"}};function Z({status:s}){const t=v[s]??v.idea;return e.jsxs("span",{className:`status-pill ${t.pill}`,children:[e.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${t.dot}`}),s]})}function _({onEdit:s,onDelete:t,align:r="right",label:i="Project actions",size:d=16}){const[x,o]=m.useState(!1),u=m.useRef(null);m.useEffect(()=>{if(!x)return;const n=p=>{u.current&&!u.current.contains(p.target)&&o(!1)},h=p=>{p.key==="Escape"&&o(!1)};return document.addEventListener("mousedown",n),document.addEventListener("keydown",h),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("keydown",h)}},[x]);const c=n=>{n.preventDefault(),n.stopPropagation()};return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx("button",{type:"button","aria-label":i,"aria-haspopup":"menu","aria-expanded":x,title:i,onClick:n=>{c(n),o(h=>!h)},className:"flex h-7 w-7 items-center justify-center rounded-lg text-fg-subtle transition-colors hover:bg-surface-active hover:text-fg",children:e.jsx(I,{width:d,height:d})}),x&&e.jsxs("div",{className:`menu top-8 ${r==="right"?"right-0":"left-0"}`,role:"menu",children:[e.jsxs("button",{type:"button",role:"menuitem",className:"menu-item",onClick:n=>{c(n),o(!1),s()},children:[e.jsx(M,{width:14,height:14}),"Edit details"]}),t&&e.jsxs("button",{type:"button",role:"menuitem",className:"menu-item-danger",onClick:n=>{c(n),o(!1),t()},children:[e.jsx(L,{width:14,height:14}),"Delete project"]})]})]})}function ce({filterTag:s}={}){const{projects:t,loading:r,error:i,upsert:d}=A(),[x,o]=m.useState(!1),[u,c]=m.useState(null),n=O();W([s?`#${s}`:"Projects"]);const h=X(),p=m.useCallback(a=>n(`/projects/${a.slug}/settings`),[n]),g=m.useMemo(()=>s?t.filter(a=>a.domain.includes(s)):t,[t,s]),E=m.useMemo(()=>{const a=new Map;for(const l of t){const N=l.group??"",w=a.get(N);w?w.push(l):a.set(N,[l])}return B(a.keys()).map(l=>[l,a.get(l)??[]])},[t]),[f,$]=m.useState({}),S=m.useMemo(()=>g.map(a=>a.slug).join(","),[g]);m.useEffect(()=>{let a=!1;return Promise.all(g.map(async l=>[l.slug,await F.listProjectChats(l.slug).catch(()=>[])])).then(l=>{a||$(Object.fromEntries(l))}),()=>{a=!0}},[S]);const D=a=>{d(a),o(!1),n(`/projects/${a.slug}/chat`)},b=!r&&!i&&!s&&t.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-3xl 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-fg-muted",children:[!r&&`${g.length} ${g.length===1?"project":"projects"} tagged “${s}”.`," ",e.jsx(y,{to:h,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-fg-muted",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:()=>n("/chat"),children:[e.jsx(j,{width:16,height:16}),"New chat"]}),e.jsxs("button",{className:"btn-primary",onClick:()=>o(!0),children:[e.jsx(C,{width:16,height:16}),"New Project"]})]})]}),s&&e.jsx(se,{tag:s,onClear:()=>n(h)}),i&&e.jsx("div",{className:"mb-6 rounded-lg border border-danger-edge bg-danger-soft px-4 py-3 text-sm text-danger",children:i}),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(a=>e.jsx("div",{className:"h-40 animate-pulse rounded-2xl border border-edge bg-surface-raised"},a))}),!r&&g.length===0&&!i&&s&&e.jsx(te,{tag:s,onClear:()=>n(h)}),b&&e.jsx(ae,{onCreate:()=>o(!0),onChat:()=>n("/chat")}),!r&&s&&g.length>0&&e.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:g.map(a=>{var l;return e.jsx(P,{project:a,sessionCount:(l=f[a.slug])==null?void 0:l.length,onEdit:()=>p(a),onDelete:()=>c(a)},a.slug)})}),!r&&!s&&!b&&e.jsx("div",{className:"space-y-2",children:E.map(([a,l])=>e.jsx(ee,{slug:a,projects:l,counts:f,onEdit:p,onDelete:c},a||"unsorted"))})]}),e.jsx(R,{open:x,onClose:()=>o(!1),onCreated:D}),u&&e.jsx(Q,{project:u,open:!0,onDeleted:()=>c(null),onClose:()=>c(null)})]})}function T({open:s,label:t,count:r,blurb:i,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-surface-hover","aria-expanded":s,children:[e.jsx(z,{width:16,height:16,className:`shrink-0 text-fg-subtle transition-transform ${s?"rotate-90":""}`}),e.jsx("h2",{className:"text-md font-semibold tracking-tight",children:t}),e.jsx("span",{className:"rounded-full bg-surface-active px-2 py-0.5 text-2xs font-medium text-fg-muted",children:r}),i&&e.jsxs("span",{className:"hidden min-w-0 truncate text-xs text-fg-subtle md:inline",children:["· ",i]})]})}function ee({slug:s,projects:t,counts:r,onEdit:i,onDelete:d}){const[x,o]=U(s),u=!x;return e.jsxs("section",{className:"mb-4",children:[e.jsx(T,{open:u,label:Y(s),count:t.length,blurb:V(s),onToggle:o}),u&&e.jsx("div",{className:"mt-2 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:t.map(c=>{var n;return e.jsx(P,{project:c,sessionCount:(n=r[c.slug])==null?void 0:n.length,onEdit:()=>i(c),onDelete:()=>d(c)},c.slug)})})]})}function P({project:s,sessionCount:t,onEdit:r,onDelete:i}){return e.jsxs(y,{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-warn-soft px-1.5 py-0.5 text-3xs font-semibold text-warn",children:[e.jsx(G,{width:10,height:10}),s.dirty]}):null,e.jsx(Z,{status:s.status}),e.jsx(_,{onEdit:r,onDelete:i,label:`Actions for ${s.name}`})]})]}),s.summary&&e.jsx("p",{className:"line-clamp-3 text-sm text-fg-muted",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(H,{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-edge pt-3 text-2xs text-fg-subtle",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(j,{width:12,height:12}),t==null?"…":`${t} ${t===1?"chat":"chats"}`]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(J,{width:12,height:12}),K(s.updated)]})]})]})}function se({tag:s,onClear:t}){return e.jsxs("div",{className:"mb-6 flex items-center gap-2 text-sm text-fg-muted",children:[e.jsx("span",{children:"Filtered by"}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-surface-active px-2.5 py-1 text-xs font-medium text-fg",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:t,className:"-mr-0.5 ml-0.5 flex h-4 w-4 items-center justify-center rounded-full transition-colors hover:bg-surface-selected",children:e.jsx(k,{width:11,height:11})})]})]})}function te({tag:s,onClear:t}){return e.jsxs("div",{className:"mx-auto mt-10 max-w-lg rounded-2xl border border-dashed border-edge bg-surface-raised px-8 py-12 text-center",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-fg-muted",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:t,children:[e.jsx(k,{width:16,height:16}),"Clear filter"]})})]})}function ae({onCreate:s,onChat:t}){return e.jsxs("div",{className:"mx-auto mt-10 max-w-lg rounded-2xl border border-dashed border-edge bg-surface-raised px-8 py-12 text-center",children:[e.jsx("div",{className:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-accent-soft text-accent",children:e.jsx(q,{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-fg-muted",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:t,children:[e.jsx(j,{width:16,height:16}),"Just chat once"]})]})]})}export{ce as ProjectsGrid};
|
|
1
|
+
import{j as e,r as m,M as I,P as M,T as L,d as A,h as O,o as B,a as F,L as y,C as j,i as C,k as R,l as X,X as k,S as q,B as G,m as H,n as J,p as K,q as U,s as V,t as Y,v as z}from"./index-1E9yHciS.js";import{D as Q}from"./DeleteProjectDialog-CgHpQctt.js";import{u as W}from"./documentTitle-M1lrfXRU.js";import"./lastTab-CU1zsF0j.js";const v={idea:{pill:"bg-surface-active text-fg-muted",dot:"bg-fg-muted"},active:{pill:"bg-success-soft text-success",dot:"bg-success-solid"},paused:{pill:"bg-warn-soft text-warn",dot:"bg-warn-solid"},blocked:{pill:"bg-danger-soft text-danger",dot:"bg-danger-solid"},done:{pill:"bg-info-soft text-info",dot:"bg-info-solid"},abandoned:{pill:"bg-surface-active text-fg-subtle",dot:"bg-fg-subtle"}};function Z({status:s}){const t=v[s]??v.idea;return e.jsxs("span",{className:`status-pill ${t.pill}`,children:[e.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${t.dot}`}),s]})}function _({onEdit:s,onDelete:t,align:r="right",label:i="Project actions",size:d=16}){const[x,o]=m.useState(!1),u=m.useRef(null);m.useEffect(()=>{if(!x)return;const n=p=>{u.current&&!u.current.contains(p.target)&&o(!1)},h=p=>{p.key==="Escape"&&o(!1)};return document.addEventListener("mousedown",n),document.addEventListener("keydown",h),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("keydown",h)}},[x]);const c=n=>{n.preventDefault(),n.stopPropagation()};return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx("button",{type:"button","aria-label":i,"aria-haspopup":"menu","aria-expanded":x,title:i,onClick:n=>{c(n),o(h=>!h)},className:"flex h-7 w-7 items-center justify-center rounded-lg text-fg-subtle transition-colors hover:bg-surface-active hover:text-fg",children:e.jsx(I,{width:d,height:d})}),x&&e.jsxs("div",{className:`menu top-8 ${r==="right"?"right-0":"left-0"}`,role:"menu",children:[e.jsxs("button",{type:"button",role:"menuitem",className:"menu-item",onClick:n=>{c(n),o(!1),s()},children:[e.jsx(M,{width:14,height:14}),"Edit details"]}),t&&e.jsxs("button",{type:"button",role:"menuitem",className:"menu-item-danger",onClick:n=>{c(n),o(!1),t()},children:[e.jsx(L,{width:14,height:14}),"Delete project"]})]})]})}function ce({filterTag:s}={}){const{projects:t,loading:r,error:i,upsert:d}=A(),[x,o]=m.useState(!1),[u,c]=m.useState(null),n=O();W([s?`#${s}`:"Projects"]);const h=X(),p=m.useCallback(a=>n(`/projects/${a.slug}/settings`),[n]),g=m.useMemo(()=>s?t.filter(a=>a.domain.includes(s)):t,[t,s]),E=m.useMemo(()=>{const a=new Map;for(const l of t){const N=l.group??"",w=a.get(N);w?w.push(l):a.set(N,[l])}return B(a.keys()).map(l=>[l,a.get(l)??[]])},[t]),[f,$]=m.useState({}),S=m.useMemo(()=>g.map(a=>a.slug).join(","),[g]);m.useEffect(()=>{let a=!1;return Promise.all(g.map(async l=>[l.slug,await F.listProjectChats(l.slug).catch(()=>[])])).then(l=>{a||$(Object.fromEntries(l))}),()=>{a=!0}},[S]);const D=a=>{d(a),o(!1),n(`/projects/${a.slug}/chat`)},b=!r&&!i&&!s&&t.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-3xl 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-fg-muted",children:[!r&&`${g.length} ${g.length===1?"project":"projects"} tagged “${s}”.`," ",e.jsx(y,{to:h,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-fg-muted",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:()=>n("/chat"),children:[e.jsx(j,{width:16,height:16}),"New chat"]}),e.jsxs("button",{className:"btn-primary",onClick:()=>o(!0),children:[e.jsx(C,{width:16,height:16}),"New Project"]})]})]}),s&&e.jsx(se,{tag:s,onClear:()=>n(h)}),i&&e.jsx("div",{className:"mb-6 rounded-lg border border-danger-edge bg-danger-soft px-4 py-3 text-sm text-danger",children:i}),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(a=>e.jsx("div",{className:"h-40 animate-pulse rounded-2xl border border-edge bg-surface-raised"},a))}),!r&&g.length===0&&!i&&s&&e.jsx(te,{tag:s,onClear:()=>n(h)}),b&&e.jsx(ae,{onCreate:()=>o(!0),onChat:()=>n("/chat")}),!r&&s&&g.length>0&&e.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:g.map(a=>{var l;return e.jsx(P,{project:a,sessionCount:(l=f[a.slug])==null?void 0:l.length,onEdit:()=>p(a),onDelete:()=>c(a)},a.slug)})}),!r&&!s&&!b&&e.jsx("div",{className:"space-y-2",children:E.map(([a,l])=>e.jsx(ee,{slug:a,projects:l,counts:f,onEdit:p,onDelete:c},a||"unsorted"))})]}),e.jsx(R,{open:x,onClose:()=>o(!1),onCreated:D}),u&&e.jsx(Q,{project:u,open:!0,onDeleted:()=>c(null),onClose:()=>c(null)})]})}function T({open:s,label:t,count:r,blurb:i,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-surface-hover","aria-expanded":s,children:[e.jsx(z,{width:16,height:16,className:`shrink-0 text-fg-subtle transition-transform ${s?"rotate-90":""}`}),e.jsx("h2",{className:"text-md font-semibold tracking-tight",children:t}),e.jsx("span",{className:"rounded-full bg-surface-active px-2 py-0.5 text-2xs font-medium text-fg-muted",children:r}),i&&e.jsxs("span",{className:"hidden min-w-0 truncate text-xs text-fg-subtle md:inline",children:["· ",i]})]})}function ee({slug:s,projects:t,counts:r,onEdit:i,onDelete:d}){const[x,o]=U(s),u=!x;return e.jsxs("section",{className:"mb-4",children:[e.jsx(T,{open:u,label:Y(s),count:t.length,blurb:V(s),onToggle:o}),u&&e.jsx("div",{className:"mt-2 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:t.map(c=>{var n;return e.jsx(P,{project:c,sessionCount:(n=r[c.slug])==null?void 0:n.length,onEdit:()=>i(c),onDelete:()=>d(c)},c.slug)})})]})}function P({project:s,sessionCount:t,onEdit:r,onDelete:i}){return e.jsxs(y,{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-warn-soft px-1.5 py-0.5 text-3xs font-semibold text-warn",children:[e.jsx(G,{width:10,height:10}),s.dirty]}):null,e.jsx(Z,{status:s.status}),e.jsx(_,{onEdit:r,onDelete:i,label:`Actions for ${s.name}`})]})]}),s.summary&&e.jsx("p",{className:"line-clamp-3 text-sm text-fg-muted",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(H,{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-edge pt-3 text-2xs text-fg-subtle",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(j,{width:12,height:12}),t==null?"…":`${t} ${t===1?"chat":"chats"}`]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(J,{width:12,height:12}),K(s.updated)]})]})]})}function se({tag:s,onClear:t}){return e.jsxs("div",{className:"mb-6 flex items-center gap-2 text-sm text-fg-muted",children:[e.jsx("span",{children:"Filtered by"}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-surface-active px-2.5 py-1 text-xs font-medium text-fg",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:t,className:"-mr-0.5 ml-0.5 flex h-4 w-4 items-center justify-center rounded-full transition-colors hover:bg-surface-selected",children:e.jsx(k,{width:11,height:11})})]})]})}function te({tag:s,onClear:t}){return e.jsxs("div",{className:"mx-auto mt-10 max-w-lg rounded-2xl border border-dashed border-edge bg-surface-raised px-8 py-12 text-center",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-fg-muted",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:t,children:[e.jsx(k,{width:16,height:16}),"Clear filter"]})})]})}function ae({onCreate:s,onChat:t}){return e.jsxs("div",{className:"mx-auto mt-10 max-w-lg rounded-2xl border border-dashed border-edge bg-surface-raised px-8 py-12 text-center",children:[e.jsx("div",{className:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-accent-soft text-accent",children:e.jsx(q,{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-fg-muted",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:t,children:[e.jsx(j,{width:16,height:16}),"Just chat once"]})]})]})}export{ce as ProjectsGrid};
|
|
2
2
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as h,r as n,a as j,R as g,j as E}from"./index-
|
|
1
|
+
import{d as h,r as n,a as j,R as g,j as E}from"./index-1E9yHciS.js";import{P as R}from"./ProjectView-NwfC3_w7.js";import"./queued-CagZVfWU.js";import"./DeleteProjectDialog-CgHpQctt.js";import"./lastTab-CU1zsF0j.js";import"./Surfaces-w-kEaAYU.js";import"./DiscoverView-BKqI0I1E.js";import"./documentTitle-M1lrfXRU.js";function x(){const{projects:s,loading:o}=h(),[l,r]=n.useState(null),[c,i]=n.useState(0),p=n.useCallback(()=>{r(null),i(e=>e+1)},[]),u=!o&&s.length===0;n.useEffect(()=>{if(!u)return;let e=!0;return r(null),j.listProjectChats(g).then(f=>{e&&r(f.length>0)}).catch(()=>{e&&r(!0)}),()=>{e=!1}},[u,c]);const a=o?null:s.length>0?!1:l===null?null:!l,[t,m]=n.useState(null);return a!==null&&(t==null?void 0:t.gen)!==c&&m({gen:c,value:a}),{empty:(t==null?void 0:t.gen)===c?t.value:null,recheck:p}}function O(){const{empty:s,recheck:o}=x();return E.jsx(R,{root:!0,instanceEmpty:s,onInstanceRecheck:o})}export{O as RootHome};
|
|
2
2
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,c as x}from"./index-
|
|
1
|
+
import{j as e,c as x}from"./index-1E9yHciS.js";function i({interactive:r=!1,flush:s=!1,className:t,...a}){return e.jsx("div",{className:x("rounded-2xl border border-edge bg-surface-raised shadow-xs",s?"":"p-4",r&&"motion-fast transition-[border-color,box-shadow] hover:border-edge-strong hover:shadow-sm",t),...a})}function f({title:r,description:s,action:t,id:a,variant:d="card",first:l=!1,flush:c=!1,className:n,children:m}){return e.jsxs("section",{id:a,className:x("scroll-mt-4",d==="rule"&&!l&&"mt-9 border-t border-edge pt-7",d==="rule"?"":"mb-6",n),children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[e.jsx("h3",{className:x(d==="rule"?"text-base font-semibold tracking-tight text-fg":"text-sm font-semibold uppercase tracking-wide text-fg-muted"),children:r}),t]}),s&&e.jsx("p",{className:"mt-0.5 text-xs leading-snug text-fg-muted",children:s}),d==="card"?e.jsx(i,{className:"mt-2",flush:c,children:m}):e.jsx("div",{className:"mt-4",children:m})]})}function u({title:r,body:s,action:t,icon:a,variant:d="inline",className:l}){return d==="inline"?e.jsxs("div",{className:x("px-1 py-2",l),children:[e.jsx("p",{className:"text-sm text-fg-muted",children:r}),s&&e.jsx("p",{className:"mt-0.5 text-xs text-fg-subtle",children:s}),t&&e.jsx("div",{className:"mt-2",children:t})]}):e.jsxs("div",{className:x("mx-auto max-w-lg rounded-2xl border border-dashed border-edge px-8 py-12 text-center",l),children:[a&&e.jsx("div",{className:"mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-accent-soft text-accent",children:a}),e.jsx("h3",{className:"text-base font-semibold text-fg",children:r}),s&&e.jsx("p",{className:"mx-auto mt-1.5 max-w-sm text-sm text-fg-muted",children:s}),t&&e.jsx("div",{className:"mt-5 flex items-center justify-center gap-2",children:t})]})}export{i as C,u as E,f as S};
|
|
2
2
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{M as ln,N as an,O as Y,P as O,Q,R as un,S as y,T as tn,V as j,W as _,X as rn,Y as o,Z as on,$ as sn,a0 as fn}from"./mermaid.core-
|
|
1
|
+
import{M as ln,N as an,O as Y,P as O,Q,R as un,S as y,T as tn,V as j,W as _,X as rn,Y as o,Z as on,$ as sn,a0 as fn}from"./mermaid.core-BiArdWKV.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,d=a-R,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-R)-d*(l-v))/u,[l+u*E,h+u*i]}function H(l,h,D,S,v,R,V){var a=l-D,E=h-S,i=(V?R:-R)/j(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,W=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,A=m*m+g*g,T=v-R,P=u*c-f*s,I=(g<0?-1:1)*j(on(0,T*T*A-P*P)),M=(P*g-m*I)/A,N=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=M-W,e=N-t,r=w-W,X=p-t;return x*x+e*e>r*r+X*X&&(M=w,N=p),{cx:M,cy:N,x01:-n,y01:-d,x11:M*(v/T-1),y11:N*(v/T-1)}}function hn(){var l=cn,h=yn,D=Q(0),S=null,v=gn,R=dn,V=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,W=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(W>tn-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Y(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=W,I=W,M=V.apply(this,arguments)/2,N=M>y&&(S?+S.apply(this,arguments):j(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(N>y){var X=sn(N/u*O(M)),z=sn(N/s*O(M));(P-=X*2)>y?(X*=t?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(I=0,m=g=(f+c)/2)}var Z=s*Y(m),$=s*O(m),B=u*Y(T),C=u*O(T);if(w>y){var F=s*Y(g),G=s*O(g),J=u*Y(A),K=u*O(A),q;if(W<an)if(q=pn(Z,$,J,K,F,G,B,C)){var L=Z-q[0],U=$-q[1],k=F-q[0],b=G-q[1],nn=1/O(fn((L*k+U*b)/(j(L*L+U*U)*j(k*k+b*b)))/2),en=j(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=H(J,K,Z,$,s,x,t),r=H(F,G,B,C,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(Z,$),a.arc(0,0,s,m,g,!t)):a.moveTo(Z,$),!(u>y)||!(P>y)?a.lineTo(B,C):p>y?(e=H(B,C,F,G,u,-p,t),r=H(Z,$,J,K,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,A,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +R.apply(this,arguments))/2-an/2;return[Y(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:Q(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:Q(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:Q(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:Q(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:Q(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:Q(+n),i):R},i.padAngle=function(n){return arguments.length?(V=typeof n=="function"?n:Q(+n),i):V},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|
|
2
2
|
|