@edspencer/paddock 0.72.1 → 0.74.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 (93) hide show
  1. package/package.json +1 -1
  2. package/packages/server/dist/config.d.ts +15 -0
  3. package/packages/server/dist/config.js +19 -0
  4. package/packages/server/dist/instance-config.js +5 -1
  5. package/packages/server/dist/models.d.ts +26 -6
  6. package/packages/server/dist/models.js +45 -10
  7. package/packages/server/dist/project-files.d.ts +5 -4
  8. package/packages/server/dist/project-files.js +6 -5
  9. package/packages/server/dist/project-mime.d.ts +5 -5
  10. package/packages/server/dist/project-mime.js +7 -5
  11. package/packages/server/dist/project-paths.d.ts +15 -0
  12. package/packages/server/dist/project-paths.js +15 -0
  13. package/packages/server/dist/project-types.d.ts +1 -1
  14. package/packages/server/dist/projects.d.ts +2 -2
  15. package/packages/server/dist/projects.js +43 -7
  16. package/packages/server/dist/routes/chats.js +24 -2
  17. package/packages/server/dist/routes/git.js +4 -1
  18. package/packages/server/dist/routes/meta.js +5 -1
  19. package/packages/server/dist/routes/projects.js +5 -2
  20. package/packages/server/dist/ui-config.d.ts +43 -0
  21. package/packages/server/dist/ui-config.js +28 -0
  22. package/packages/server/package.json +1 -1
  23. package/packages/web/dist/assets/DiscoverPage-BX2Q0ycN.js +2 -0
  24. package/packages/web/dist/assets/DiscoverView-BPH1QcJ9.js +2 -0
  25. package/packages/web/dist/assets/{InstanceConfigPage-aOgiBFLq.js → InstanceConfigPage-C0p7EP0D.js} +1 -1
  26. package/packages/web/dist/assets/{MarkdownRenderer-BjrB0TDO.js → MarkdownRenderer-DpATMqaW.js} +1 -1
  27. package/packages/web/dist/assets/ProjectMenu-COBWHez-.js +2 -0
  28. package/packages/web/dist/assets/{ProjectRedirect-N4g7WrZm.js → ProjectRedirect-DsDlOmgR.js} +1 -1
  29. package/packages/web/dist/assets/ProjectView-Da-HMPaX.js +13 -0
  30. package/packages/web/dist/assets/ProjectsGrid-B7Tu8bJa.js +2 -0
  31. package/packages/web/dist/assets/{RootHome-C9wEtWHu.js → RootHome-BR2M_FNm.js} +1 -1
  32. package/packages/web/dist/assets/{Surfaces-BidCkENw.js → Surfaces-DKrmOzkk.js} +1 -1
  33. package/packages/web/dist/assets/{arc-BctfAqLY.js → arc-BUDm_v94.js} +1 -1
  34. package/packages/web/dist/assets/{architectureDiagram-3BPJPVTR-BJgwSqOO.js → architectureDiagram-3BPJPVTR-D4ZBf5MA.js} +1 -1
  35. package/packages/web/dist/assets/{blockDiagram-GPEHLZMM-BD2skmST.js → blockDiagram-GPEHLZMM-VTYIZW4q.js} +1 -1
  36. package/packages/web/dist/assets/{c4Diagram-AAUBKEIU-DckMrhMv.js → c4Diagram-AAUBKEIU-CyUzrDQ0.js} +1 -1
  37. package/packages/web/dist/assets/channel-BEbx-lLm.js +2 -0
  38. package/packages/web/dist/assets/{chunk-2J33WTMH-CQDUH7rp.js → chunk-2J33WTMH-BtndMYUq.js} +1 -1
  39. package/packages/web/dist/assets/{chunk-4BX2VUAB-Bae1J961.js → chunk-4BX2VUAB-sN2R3uRX.js} +1 -1
  40. package/packages/web/dist/assets/{chunk-55IACEB6-CXxS5wOa.js → chunk-55IACEB6-Dft9UrXF.js} +1 -1
  41. package/packages/web/dist/assets/{chunk-727SXJPM-DSNFkPB3.js → chunk-727SXJPM-B9VXcd9S.js} +1 -1
  42. package/packages/web/dist/assets/{chunk-AQP2D5EJ-B2mqFyB7.js → chunk-AQP2D5EJ-D3HMB7td.js} +1 -1
  43. package/packages/web/dist/assets/{chunk-FMBD7UC4-BfqEy3lu.js → chunk-FMBD7UC4-B50IDAXn.js} +1 -1
  44. package/packages/web/dist/assets/{chunk-ND2GUHAM-Bm6CBVK7.js → chunk-ND2GUHAM-BthbFTUl.js} +1 -1
  45. package/packages/web/dist/assets/{chunk-QZHKN3VN-NmnLtgYc.js → chunk-QZHKN3VN-ZArPIBZ4.js} +1 -1
  46. package/packages/web/dist/assets/classDiagram-4FO5ZUOK-DuHRhAai.js +2 -0
  47. package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-DuHRhAai.js +2 -0
  48. package/packages/web/dist/assets/{core-YKeFSK1q.js → core-DfGQq4F4.js} +1 -1
  49. package/packages/web/dist/assets/{cose-bilkent-S5V4N54A-qf_mXpa9.js → cose-bilkent-S5V4N54A-o6695fVh.js} +1 -1
  50. package/packages/web/dist/assets/{dagre-BM42HDAG-C31v-j3s.js → dagre-BM42HDAG-BbJtmARn.js} +1 -1
  51. package/packages/web/dist/assets/{diagram-2AECGRRQ-C_TiPHdS.js → diagram-2AECGRRQ-gMpt4UAN.js} +1 -1
  52. package/packages/web/dist/assets/{diagram-5GNKFQAL-BC8gUFK-.js → diagram-5GNKFQAL-6Yf0abcV.js} +1 -1
  53. package/packages/web/dist/assets/{diagram-KO2AKTUF-vO_QYWxi.js → diagram-KO2AKTUF-Cbux4Jaa.js} +1 -1
  54. package/packages/web/dist/assets/{diagram-LMA3HP47-vxJ-YZOg.js → diagram-LMA3HP47-B4Pz9qdB.js} +1 -1
  55. package/packages/web/dist/assets/{diagram-OG6HWLK6-BNIfJG6l.js → diagram-OG6HWLK6-DUwGWY8v.js} +1 -1
  56. package/packages/web/dist/assets/{erDiagram-TEJ5UH35-B37HsOFM.js → erDiagram-TEJ5UH35-BYe6FsbI.js} +1 -1
  57. package/packages/web/dist/assets/{flowDiagram-I6XJVG4X-DqA5X81H.js → flowDiagram-I6XJVG4X-CBjmjKdl.js} +1 -1
  58. package/packages/web/dist/assets/{ganttDiagram-6RSMTGT7-BMP0zpIg.js → ganttDiagram-6RSMTGT7-a_XquFE3.js} +1 -1
  59. package/packages/web/dist/assets/{gitGraphDiagram-PVQCEYII-P0nXaCzx.js → gitGraphDiagram-PVQCEYII-eTvZb_j2.js} +1 -1
  60. package/packages/web/dist/assets/index-Bmrlxsb0.css +1 -0
  61. package/packages/web/dist/assets/index-CIGlBQAs.js +71 -0
  62. package/packages/web/dist/assets/{infoDiagram-5YYISTIA-DpKYQ7VK.js → infoDiagram-5YYISTIA-D9KnLZ9C.js} +1 -1
  63. package/packages/web/dist/assets/{ishikawaDiagram-YF4QCWOH-BZeRMg3C.js → ishikawaDiagram-YF4QCWOH-CYfdAUXb.js} +1 -1
  64. package/packages/web/dist/assets/{journeyDiagram-JHISSGLW-Cg2O0qzv.js → journeyDiagram-JHISSGLW-BS5b0yBH.js} +1 -1
  65. package/packages/web/dist/assets/{kanban-definition-UN3LZRKU-DBwVxUvI.js → kanban-definition-UN3LZRKU-DNGUO5mT.js} +1 -1
  66. package/packages/web/dist/assets/{linear-R8qRwYqx.js → linear-DxEiALSJ.js} +1 -1
  67. package/packages/web/dist/assets/{mermaid.core-jctTs2en.js → mermaid.core-CrttYAaz.js} +4 -4
  68. package/packages/web/dist/assets/{mindmap-definition-RKZ34NQL-CtmsNfpb.js → mindmap-definition-RKZ34NQL-B5pnbSAD.js} +1 -1
  69. package/packages/web/dist/assets/{pieDiagram-4H26LBE5-C-UiLFDv.js → pieDiagram-4H26LBE5-GGhWYy-7.js} +1 -1
  70. package/packages/web/dist/assets/{quadrantDiagram-W4KKPZXB-BS4SWa01.js → quadrantDiagram-W4KKPZXB-SErMkbVi.js} +1 -1
  71. package/packages/web/dist/assets/{requirementDiagram-4Y6WPE33-LPPAC6Q1.js → requirementDiagram-4Y6WPE33-JKwTIXzH.js} +1 -1
  72. package/packages/web/dist/assets/{sankeyDiagram-5OEKKPKP-tjF8KyS3.js → sankeyDiagram-5OEKKPKP-DOAQnux6.js} +1 -1
  73. package/packages/web/dist/assets/{sequenceDiagram-3UESZ5HK-kmddkdk2.js → sequenceDiagram-3UESZ5HK-m6O3XSti.js} +1 -1
  74. package/packages/web/dist/assets/{stateDiagram-AJRCARHV-B07mykTY.js → stateDiagram-AJRCARHV-kuTP2Tq-.js} +1 -1
  75. package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-CQizvmc0.js +2 -0
  76. package/packages/web/dist/assets/{timeline-definition-PNZ67QCA-DrUgi0cT.js → timeline-definition-PNZ67QCA-BsUvko-L.js} +1 -1
  77. package/packages/web/dist/assets/{vennDiagram-CIIHVFJN-Dz6p0m7l.js → vennDiagram-CIIHVFJN-BbzLQnXq.js} +1 -1
  78. package/packages/web/dist/assets/{wardley-L42UT6IY-DM16lA5x.js → wardley-L42UT6IY-DZ9zhTE4.js} +1 -1
  79. package/packages/web/dist/assets/{wardleyDiagram-YWT4CUSO-CCFQkFGB.js → wardleyDiagram-YWT4CUSO-DEtCkWvy.js} +1 -1
  80. package/packages/web/dist/assets/{xychartDiagram-2RQKCTM6-DiUI5Dos.js → xychartDiagram-2RQKCTM6-CPZHKB8u.js} +1 -1
  81. package/packages/web/dist/index.html +2 -2
  82. package/packages/web/dist/sw.js +1 -1
  83. package/packages/web/dist/assets/DiscoverPage-DhrXvgkl.js +0 -2
  84. package/packages/web/dist/assets/DiscoverView-yPLCp_YE.js +0 -2
  85. package/packages/web/dist/assets/ProjectMenu-PhwXTmgn.js +0 -2
  86. package/packages/web/dist/assets/ProjectView-B-7AIt--.js +0 -13
  87. package/packages/web/dist/assets/ProjectsGrid-DZF5VHJF.js +0 -2
  88. package/packages/web/dist/assets/channel-CsZOz8jm.js +0 -2
  89. package/packages/web/dist/assets/classDiagram-4FO5ZUOK-DdALkhE9.js +0 -2
  90. package/packages/web/dist/assets/classDiagram-v2-Q7XG4LA2-DdALkhE9.js +0 -2
  91. package/packages/web/dist/assets/index-BkY_Nc_i.css +0 -1
  92. package/packages/web/dist/assets/index-C3MdluUb.js +0 -71
  93. package/packages/web/dist/assets/stateDiagram-v2-BHNVJYJU-r6WdX0dw.js +0 -2
@@ -0,0 +1,2 @@
1
+ import{j as e,r as o,a2 as w,G as y,u as k,b as v,a3 as N,a4 as P,a5 as E}from"./index-CIGlBQAs.js";import{c as C}from"./lastTab-CU1zsF0j.js";const b={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 M({status:t}){const s=b[t]??b.idea;return e.jsxs("span",{className:`status-pill ${s.pill}`,children:[e.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${s.dot}`}),t]})}function D({open:t,title:s,message:u,confirmLabel:r="Delete",cancelLabel:c="Cancel",danger:a=!0,wide:l=!1,dismissOnBackdrop:m=!0,onConfirm:f,onClose:n}){const[i,d]=o.useState(!1),[h,g]=o.useState(null);if(o.useEffect(()=>{t&&g(null)},[t]),w(t&&!i,n),!t)return null;const j=async()=>{d(!0),g(null);try{await f()}catch(x){g(x instanceof Error?x.message:"Action failed"),d(!1)}};return e.jsx("div",{className:"fixed inset-0 z-[60] flex items-center justify-center bg-overlay p-4 backdrop-blur-sm",onClick:()=>m&&!i&&n(),children:e.jsxs("div",{className:`w-full ${l?"max-w-md":"max-w-sm"} animate-scale-in rounded-2xl border border-edge bg-surface-raised p-6 shadow-2xl`,onClick:x=>x.stopPropagation(),role:"alertdialog","aria-modal":"true",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[a&&e.jsx("span",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-danger-soft text-danger",children:e.jsx(y,{width:18,height:18})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("h2",{className:"text-base font-semibold",children:s}),e.jsx("div",{className:"mt-1.5 text-sm text-fg-muted",children:u})]})]}),h&&e.jsx("p",{className:"mt-4 rounded-lg bg-danger-soft px-3 py-2 text-sm text-danger",children:h}),e.jsxs("div",{className:"mt-5 flex justify-end gap-2",children:[e.jsx("button",{type:"button",className:"btn-ghost",onClick:n,disabled:i,children:c}),e.jsx("button",{type:"button",className:a?"btn btn-danger":"btn-primary",onClick:j,disabled:i,children:i?"Working…":r})]})]})})}function L(t,s){return t===s?!0:t.startsWith(s.endsWith("/")?s:`${s}/`)}function p(t){return!L(t.workingDir,t.dir)}function S({project:t}){const s=e.jsx("span",{className:"font-medium text-fg",children:t.name});return p(t)?e.jsxs(e.Fragment,{children:[s," will be unlinked. Paddock’s notes, settings and chats for it are permanently removed, and this cannot be undone — but the directory it works in is left alone:",e.jsx("span",{className:"mt-1.5 block break-all font-mono text-xs text-fg",children:t.workingDir}),e.jsx("span",{className:"mt-1.5 block",children:"Nothing in there is deleted."})]}):e.jsxs(e.Fragment,{children:[s," and all its chats and files will be permanently removed. This cannot be undone."]})}function I(){const{remove:t}=k();return o.useCallback(async s=>{await v.deleteProject(s),t(s),C(s)},[t])}function O({project:t,open:s,onClose:u,onDeleted:r}){const c=I(),a=p(t);return e.jsx(D,{open:s,title:"Delete project?",message:e.jsx(S,{project:t}),confirmLabel:"Delete project",wide:a,dismissOnBackdrop:!a,onConfirm:async()=>{await c(t.slug),r==null||r()},onClose:u})}function W({onEdit:t,onDelete:s,align:u="right",label:r="Project actions",size:c=16}){const[a,l]=o.useState(!1),m=o.useRef(null);o.useEffect(()=>{if(!a)return;const n=d=>{m.current&&!m.current.contains(d.target)&&l(!1)},i=d=>{d.key==="Escape"&&l(!1)};return document.addEventListener("mousedown",n),document.addEventListener("keydown",i),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("keydown",i)}},[a]);const f=n=>{n.preventDefault(),n.stopPropagation()};return e.jsxs("div",{className:"relative",ref:m,children:[e.jsx("button",{type:"button","aria-label":r,"aria-haspopup":"menu","aria-expanded":a,title:r,onClick:n=>{f(n),l(i=>!i)},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(N,{width:c,height:c})}),a&&e.jsxs("div",{className:`menu top-8 ${u==="right"?"right-0":"left-0"}`,role:"menu",children:[e.jsxs("button",{type:"button",role:"menuitem",className:"menu-item",onClick:n=>{f(n),l(!1),t()},children:[e.jsx(P,{width:14,height:14}),"Edit details"]}),s&&e.jsxs("button",{type:"button",role:"menuitem",className:"menu-item-danger",onClick:n=>{f(n),l(!1),s()},children:[e.jsx(E,{width:14,height:14}),"Delete project"]})]})]})}export{D as C,O as D,W as P,M as S,p as d};
2
+
@@ -1,2 +1,2 @@
1
- import{i as u,r as i,b as o,j as n,k as p}from"./index-C3MdluUb.js";import{r as m,v as f}from"./lastTab-CU1zsF0j.js";function j(){const{slug:t=""}=u(),[s,r]=i.useState(null);return i.useEffect(()=>{let c=!1;const e=m(t);if(!e){r("home");return}if(e==="home"||e.startsWith("chat")){r(e);return}return Promise.all([o.getProjectDetail(t).then(a=>a.project.pinned).catch(()=>[]),o.listProjectFiles(t).catch(()=>[])]).then(([a,l])=>{c||r(f(e,{pinned:a,files:l}))}),()=>{c=!0}},[t]),s===null?n.jsx("div",{className:"p-8 text-sm text-fg-muted",children:"Opening project…"}):n.jsx(p,{to:`/projects/${t}/${s}`,replace:!0})}export{j as ProjectRedirect};
1
+ import{i as u,r as i,b as o,j as n,k as p}from"./index-CIGlBQAs.js";import{r as m,v as f}from"./lastTab-CU1zsF0j.js";function j(){const{slug:t=""}=u(),[s,r]=i.useState(null);return i.useEffect(()=>{let c=!1;const e=m(t);if(!e){r("home");return}if(e==="home"||e.startsWith("chat")){r(e);return}return Promise.all([o.getProjectDetail(t).then(a=>a.project.pinned).catch(()=>[]),o.listProjectFiles(t).catch(()=>[])]).then(([a,l])=>{c||r(f(e,{pinned:a,files:l}))}),()=>{c=!0}},[t]),s===null?n.jsx("div",{className:"p-8 text-sm text-fg-muted",children:"Opening project…"}):n.jsx(p,{to:`/projects/${t}/${s}`,replace:!0})}export{j as ProjectRedirect};
2
2