@saluzi/saluzi-edu 0.2.3 → 0.2.4

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 (113) hide show
  1. package/dist/cli.js +47 -47
  2. package/dist/rcs-web/assets/{Dashboard-BjLgSBGe.js → Dashboard-ClYYELch.js} +1 -1
  3. package/dist/rcs-web/assets/{SessionDetail-CruRK24e.js → SessionDetail-D5dCDgDF.js} +1 -1
  4. package/{packages/remote-control-server/web/dist/assets/arc-CrOXzA8z.js → dist/rcs-web/assets/arc-7lPfYTKR.js} +1 -1
  5. package/{packages/remote-control-server/web/dist/assets/architectureDiagram-3BPJPVTR-DuqRXyIw.js → dist/rcs-web/assets/architectureDiagram-3BPJPVTR-CLhFlBW3.js} +1 -1
  6. package/dist/rcs-web/assets/{blockDiagram-GPEHLZMM-DXIr9X16.js → blockDiagram-GPEHLZMM-CRxDmTyw.js} +1 -1
  7. package/{packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-CZ-In_ld.js → dist/rcs-web/assets/c4Diagram-AAUBKEIU-GhUzyEB2.js} +1 -1
  8. package/dist/rcs-web/assets/channel-DqKk-agI.js +1 -0
  9. package/dist/rcs-web/assets/{chunk-2J33WTMH-DBlf3wf4.js → chunk-2J33WTMH-CdFwFvWI.js} +1 -1
  10. package/dist/rcs-web/assets/{chunk-4BX2VUAB-BT5ihCmq.js → chunk-4BX2VUAB-Bxyari7X.js} +1 -1
  11. package/dist/rcs-web/assets/{chunk-55IACEB6-royQmypD.js → chunk-55IACEB6-B6itQfF-.js} +1 -1
  12. package/{packages/remote-control-server/web/dist/assets/chunk-727SXJPM-DRB3M5lQ.js → dist/rcs-web/assets/chunk-727SXJPM-28bp6QhF.js} +1 -1
  13. package/dist/rcs-web/assets/{chunk-AQP2D5EJ-DW5gI14p.js → chunk-AQP2D5EJ-Cin2Flu9.js} +1 -1
  14. package/dist/rcs-web/assets/{chunk-FMBD7UC4-DmyrNfml.js → chunk-FMBD7UC4-Bgh51Lft.js} +1 -1
  15. package/dist/rcs-web/assets/{chunk-ND2GUHAM-BBWD_dZm.js → chunk-ND2GUHAM-BmlO4Ydq.js} +1 -1
  16. package/dist/rcs-web/assets/{chunk-QZHKN3VN-BWCGFw9J.js → chunk-QZHKN3VN-sJrTY76r.js} +1 -1
  17. package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-DXYJPE0n.js +1 -0
  18. package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-DXYJPE0n.js +1 -0
  19. package/dist/rcs-web/assets/{code-block-IT6T5CEO-DkWGV1LC.js → code-block-IT6T5CEO-C_zrs-gT.js} +1 -1
  20. package/{packages/remote-control-server/web/dist/assets/cose-bilkent-S5V4N54A--hX8gn8J.js → dist/rcs-web/assets/cose-bilkent-S5V4N54A-B6rTlH08.js} +1 -1
  21. package/dist/rcs-web/assets/{dagre-BM42HDAG-B8qDaDD5.js → dagre-BM42HDAG-_wl_w4u8.js} +1 -1
  22. package/dist/rcs-web/assets/{diagram-2AECGRRQ-2sX5H1Xt.js → diagram-2AECGRRQ-CAM1F0zx.js} +1 -1
  23. package/dist/rcs-web/assets/{diagram-5GNKFQAL-FLLyF0xn.js → diagram-5GNKFQAL-RsfXB4M5.js} +1 -1
  24. package/dist/rcs-web/assets/{diagram-KO2AKTUF-CvHr1zie.js → diagram-KO2AKTUF-DgE4Jvy8.js} +1 -1
  25. package/dist/rcs-web/assets/{diagram-LMA3HP47-PjhDCqWG.js → diagram-LMA3HP47-btrs7dz6.js} +1 -1
  26. package/dist/rcs-web/assets/{diagram-OG6HWLK6-Bh0CGmhG.js → diagram-OG6HWLK6-B81c8jdJ.js} +1 -1
  27. package/dist/rcs-web/assets/{erDiagram-TEJ5UH35-DdhPUNhs.js → erDiagram-TEJ5UH35-DL-CzHVd.js} +1 -1
  28. package/dist/rcs-web/assets/{flowDiagram-I6XJVG4X-DDoYcc-o.js → flowDiagram-I6XJVG4X-Cl-2EwXo.js} +1 -1
  29. package/dist/rcs-web/assets/{ganttDiagram-6RSMTGT7-mG8bRCFp.js → ganttDiagram-6RSMTGT7-BEUqhgIP.js} +1 -1
  30. package/dist/rcs-web/assets/{gitGraphDiagram-PVQCEYII-r-matTCu.js → gitGraphDiagram-PVQCEYII-DeeVgqUk.js} +1 -1
  31. package/dist/rcs-web/assets/{infoDiagram-5YYISTIA-C9z9HgPv.js → infoDiagram-5YYISTIA-DPqTmZOu.js} +1 -1
  32. package/{packages/remote-control-server/web/dist/assets/ishikawaDiagram-YF4QCWOH-Bqj7zMWp.js → dist/rcs-web/assets/ishikawaDiagram-YF4QCWOH-5YBKCgSx.js} +1 -1
  33. package/dist/rcs-web/assets/{journeyDiagram-JHISSGLW-BatnAUtx.js → journeyDiagram-JHISSGLW-AnSqa6Hq.js} +1 -1
  34. package/dist/rcs-web/assets/{kanban-definition-UN3LZRKU-M5Z4A6zF.js → kanban-definition-UN3LZRKU-W7cAy0RU.js} +1 -1
  35. package/dist/rcs-web/assets/{linear-7g0gh_s4.js → linear-QvmQRsBx.js} +1 -1
  36. package/dist/rcs-web/assets/main-UBLYspes.js +283 -0
  37. package/dist/rcs-web/assets/{mermaid-VLURNSYL-C_e5Vkmm.js → mermaid-VLURNSYL-Dn1LM1yF.js} +4 -4
  38. package/dist/rcs-web/assets/{mermaid.core-BqN6IVxp.js → mermaid.core-C0ceVHNj.js} +5 -5
  39. package/dist/rcs-web/assets/{mindmap-definition-RKZ34NQL-OVu38HYw.js → mindmap-definition-RKZ34NQL-Crj88n-9.js} +1 -1
  40. package/{packages/remote-control-server/web/dist/assets/pieDiagram-4H26LBE5-W3fqeMGS.js → dist/rcs-web/assets/pieDiagram-4H26LBE5-Boh89MZl.js} +1 -1
  41. package/{packages/remote-control-server/web/dist/assets/quadrantDiagram-W4KKPZXB-DAXlPFus.js → dist/rcs-web/assets/quadrantDiagram-W4KKPZXB-B1hrNv25.js} +1 -1
  42. package/dist/rcs-web/assets/{requirementDiagram-4Y6WPE33-DnByCurZ.js → requirementDiagram-4Y6WPE33-B6BlGzlU.js} +1 -1
  43. package/{packages/remote-control-server/web/dist/assets/sankeyDiagram-5OEKKPKP-pRjQ5CvU.js → dist/rcs-web/assets/sankeyDiagram-5OEKKPKP-BdNcjCvy.js} +1 -1
  44. package/dist/rcs-web/assets/{sequenceDiagram-3UESZ5HK-CRNEGhTF.js → sequenceDiagram-3UESZ5HK-J9khnYhK.js} +1 -1
  45. package/dist/rcs-web/assets/{stateDiagram-AJRCARHV-Btaq-01j.js → stateDiagram-AJRCARHV-iaQJb8kI.js} +1 -1
  46. package/dist/rcs-web/assets/{stateDiagram-v2-BHNVJYJU-BIaHdJLR.js → stateDiagram-v2-BHNVJYJU-CZgBPZ4e.js} +1 -1
  47. package/{packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-dOdpmXck.js → dist/rcs-web/assets/timeline-definition-PNZ67QCA-zpFpWKc3.js} +1 -1
  48. package/dist/rcs-web/assets/{vennDiagram-CIIHVFJN-7VD_vmAe.js → vennDiagram-CIIHVFJN-Ld8wzoVI.js} +1 -1
  49. package/{packages/remote-control-server/web/dist/assets/wardleyDiagram-YWT4CUSO-B0kguESu.js → dist/rcs-web/assets/wardleyDiagram-YWT4CUSO-iCj-ntht.js} +1 -1
  50. package/{packages/remote-control-server/web/dist/assets/xychartDiagram-2RQKCTM6-D6clBho1.js → dist/rcs-web/assets/xychartDiagram-2RQKCTM6-DAAD572L.js} +1 -1
  51. package/dist/rcs-web/index.html +1 -1
  52. package/package.json +2 -2
  53. package/packages/remote-control-server/src/auth/middleware.ts +24 -3
  54. package/packages/remote-control-server/src/services/disconnect-monitor.ts +32 -1
  55. package/packages/remote-control-server/src/services/session.ts +17 -0
  56. package/packages/remote-control-server/web/dist/assets/{Dashboard-BjLgSBGe.js → Dashboard-ClYYELch.js} +1 -1
  57. package/packages/remote-control-server/web/dist/assets/{SessionDetail-CruRK24e.js → SessionDetail-D5dCDgDF.js} +1 -1
  58. package/{dist/rcs-web/assets/arc-CrOXzA8z.js → packages/remote-control-server/web/dist/assets/arc-7lPfYTKR.js} +1 -1
  59. package/{dist/rcs-web/assets/architectureDiagram-3BPJPVTR-DuqRXyIw.js → packages/remote-control-server/web/dist/assets/architectureDiagram-3BPJPVTR-CLhFlBW3.js} +1 -1
  60. package/packages/remote-control-server/web/dist/assets/{blockDiagram-GPEHLZMM-DXIr9X16.js → blockDiagram-GPEHLZMM-CRxDmTyw.js} +1 -1
  61. package/{dist/rcs-web/assets/c4Diagram-AAUBKEIU-CZ-In_ld.js → packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-GhUzyEB2.js} +1 -1
  62. package/packages/remote-control-server/web/dist/assets/channel-DqKk-agI.js +1 -0
  63. package/packages/remote-control-server/web/dist/assets/{chunk-2J33WTMH-DBlf3wf4.js → chunk-2J33WTMH-CdFwFvWI.js} +1 -1
  64. package/packages/remote-control-server/web/dist/assets/{chunk-4BX2VUAB-BT5ihCmq.js → chunk-4BX2VUAB-Bxyari7X.js} +1 -1
  65. package/packages/remote-control-server/web/dist/assets/{chunk-55IACEB6-royQmypD.js → chunk-55IACEB6-B6itQfF-.js} +1 -1
  66. package/{dist/rcs-web/assets/chunk-727SXJPM-DRB3M5lQ.js → packages/remote-control-server/web/dist/assets/chunk-727SXJPM-28bp6QhF.js} +1 -1
  67. package/packages/remote-control-server/web/dist/assets/{chunk-AQP2D5EJ-DW5gI14p.js → chunk-AQP2D5EJ-Cin2Flu9.js} +1 -1
  68. package/packages/remote-control-server/web/dist/assets/{chunk-FMBD7UC4-DmyrNfml.js → chunk-FMBD7UC4-Bgh51Lft.js} +1 -1
  69. package/packages/remote-control-server/web/dist/assets/{chunk-ND2GUHAM-BBWD_dZm.js → chunk-ND2GUHAM-BmlO4Ydq.js} +1 -1
  70. package/packages/remote-control-server/web/dist/assets/{chunk-QZHKN3VN-BWCGFw9J.js → chunk-QZHKN3VN-sJrTY76r.js} +1 -1
  71. package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-DXYJPE0n.js +1 -0
  72. package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-DXYJPE0n.js +1 -0
  73. package/packages/remote-control-server/web/dist/assets/{code-block-IT6T5CEO-DkWGV1LC.js → code-block-IT6T5CEO-C_zrs-gT.js} +1 -1
  74. package/{dist/rcs-web/assets/cose-bilkent-S5V4N54A--hX8gn8J.js → packages/remote-control-server/web/dist/assets/cose-bilkent-S5V4N54A-B6rTlH08.js} +1 -1
  75. package/packages/remote-control-server/web/dist/assets/{dagre-BM42HDAG-B8qDaDD5.js → dagre-BM42HDAG-_wl_w4u8.js} +1 -1
  76. package/packages/remote-control-server/web/dist/assets/{diagram-2AECGRRQ-2sX5H1Xt.js → diagram-2AECGRRQ-CAM1F0zx.js} +1 -1
  77. package/packages/remote-control-server/web/dist/assets/{diagram-5GNKFQAL-FLLyF0xn.js → diagram-5GNKFQAL-RsfXB4M5.js} +1 -1
  78. package/packages/remote-control-server/web/dist/assets/{diagram-KO2AKTUF-CvHr1zie.js → diagram-KO2AKTUF-DgE4Jvy8.js} +1 -1
  79. package/packages/remote-control-server/web/dist/assets/{diagram-LMA3HP47-PjhDCqWG.js → diagram-LMA3HP47-btrs7dz6.js} +1 -1
  80. package/packages/remote-control-server/web/dist/assets/{diagram-OG6HWLK6-Bh0CGmhG.js → diagram-OG6HWLK6-B81c8jdJ.js} +1 -1
  81. package/packages/remote-control-server/web/dist/assets/{erDiagram-TEJ5UH35-DdhPUNhs.js → erDiagram-TEJ5UH35-DL-CzHVd.js} +1 -1
  82. package/packages/remote-control-server/web/dist/assets/{flowDiagram-I6XJVG4X-DDoYcc-o.js → flowDiagram-I6XJVG4X-Cl-2EwXo.js} +1 -1
  83. package/packages/remote-control-server/web/dist/assets/{ganttDiagram-6RSMTGT7-mG8bRCFp.js → ganttDiagram-6RSMTGT7-BEUqhgIP.js} +1 -1
  84. package/packages/remote-control-server/web/dist/assets/{gitGraphDiagram-PVQCEYII-r-matTCu.js → gitGraphDiagram-PVQCEYII-DeeVgqUk.js} +1 -1
  85. package/packages/remote-control-server/web/dist/assets/{infoDiagram-5YYISTIA-C9z9HgPv.js → infoDiagram-5YYISTIA-DPqTmZOu.js} +1 -1
  86. package/{dist/rcs-web/assets/ishikawaDiagram-YF4QCWOH-Bqj7zMWp.js → packages/remote-control-server/web/dist/assets/ishikawaDiagram-YF4QCWOH-5YBKCgSx.js} +1 -1
  87. package/packages/remote-control-server/web/dist/assets/{journeyDiagram-JHISSGLW-BatnAUtx.js → journeyDiagram-JHISSGLW-AnSqa6Hq.js} +1 -1
  88. package/packages/remote-control-server/web/dist/assets/{kanban-definition-UN3LZRKU-M5Z4A6zF.js → kanban-definition-UN3LZRKU-W7cAy0RU.js} +1 -1
  89. package/packages/remote-control-server/web/dist/assets/{linear-7g0gh_s4.js → linear-QvmQRsBx.js} +1 -1
  90. package/packages/remote-control-server/web/dist/assets/main-UBLYspes.js +283 -0
  91. package/packages/remote-control-server/web/dist/assets/{mermaid-VLURNSYL-C_e5Vkmm.js → mermaid-VLURNSYL-Dn1LM1yF.js} +4 -4
  92. package/packages/remote-control-server/web/dist/assets/{mermaid.core-BqN6IVxp.js → mermaid.core-C0ceVHNj.js} +5 -5
  93. package/packages/remote-control-server/web/dist/assets/{mindmap-definition-RKZ34NQL-OVu38HYw.js → mindmap-definition-RKZ34NQL-Crj88n-9.js} +1 -1
  94. package/{dist/rcs-web/assets/pieDiagram-4H26LBE5-W3fqeMGS.js → packages/remote-control-server/web/dist/assets/pieDiagram-4H26LBE5-Boh89MZl.js} +1 -1
  95. package/{dist/rcs-web/assets/quadrantDiagram-W4KKPZXB-DAXlPFus.js → packages/remote-control-server/web/dist/assets/quadrantDiagram-W4KKPZXB-B1hrNv25.js} +1 -1
  96. package/packages/remote-control-server/web/dist/assets/{requirementDiagram-4Y6WPE33-DnByCurZ.js → requirementDiagram-4Y6WPE33-B6BlGzlU.js} +1 -1
  97. package/{dist/rcs-web/assets/sankeyDiagram-5OEKKPKP-pRjQ5CvU.js → packages/remote-control-server/web/dist/assets/sankeyDiagram-5OEKKPKP-BdNcjCvy.js} +1 -1
  98. package/packages/remote-control-server/web/dist/assets/{sequenceDiagram-3UESZ5HK-CRNEGhTF.js → sequenceDiagram-3UESZ5HK-J9khnYhK.js} +1 -1
  99. package/packages/remote-control-server/web/dist/assets/{stateDiagram-AJRCARHV-Btaq-01j.js → stateDiagram-AJRCARHV-iaQJb8kI.js} +1 -1
  100. package/packages/remote-control-server/web/dist/assets/{stateDiagram-v2-BHNVJYJU-BIaHdJLR.js → stateDiagram-v2-BHNVJYJU-CZgBPZ4e.js} +1 -1
  101. package/{dist/rcs-web/assets/timeline-definition-PNZ67QCA-dOdpmXck.js → packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-zpFpWKc3.js} +1 -1
  102. package/packages/remote-control-server/web/dist/assets/{vennDiagram-CIIHVFJN-7VD_vmAe.js → vennDiagram-CIIHVFJN-Ld8wzoVI.js} +1 -1
  103. package/{dist/rcs-web/assets/wardleyDiagram-YWT4CUSO-B0kguESu.js → packages/remote-control-server/web/dist/assets/wardleyDiagram-YWT4CUSO-iCj-ntht.js} +1 -1
  104. package/{dist/rcs-web/assets/xychartDiagram-2RQKCTM6-D6clBho1.js → packages/remote-control-server/web/dist/assets/xychartDiagram-2RQKCTM6-DAAD572L.js} +1 -1
  105. package/packages/remote-control-server/web/dist/index.html +1 -1
  106. package/dist/rcs-web/assets/channel-DDF8LJWa.js +0 -1
  107. package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-DrPr7R0m.js +0 -1
  108. package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-DrPr7R0m.js +0 -1
  109. package/dist/rcs-web/assets/main-kYahqh88.js +0 -283
  110. package/packages/remote-control-server/web/dist/assets/channel-DDF8LJWa.js +0 -1
  111. package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-DrPr7R0m.js +0 -1
  112. package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-DrPr7R0m.js +0 -1
  113. package/packages/remote-control-server/web/dist/assets/main-kYahqh88.js +0 -283
@@ -1,2 +1,2 @@
1
- import{j as e,e as a}from"./vendor-DE_-CLIE.js";import{J as v,j as N,B as C,I as w,D as S,e as E,g as T,h as D,f as L,m as W,P as M,N as _,o as F,p as O,M as R,n as B}from"./main-kYahqh88.js";import"./shiki-mEP5vQQu.js";import"./qr-C0jP9HcD.js";import"./motion-BILbV7YQ.js";function I({environments:n,onSelectEnvironment:i}){return!n||n.length===0?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-8 text-center text-text-muted",children:"No active environments"}):e.jsx("div",{className:"space-y-2",children:n.map(o=>{const d=o.worker_type==="acp",c=v(o.worker_type),p=c.fullLabel,t=c.colorClass;return e.jsxs("button",{type:"button",onClick:()=>i==null?void 0:i(o),disabled:d,className:`flex w-full items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 text-left transition-colors ${d?"cursor-default opacity-80":"hover:border-border-light cursor-pointer"}`,children:[e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-text-primary",children:o.machine_name||o.id}),e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${t}`,children:p})]}),e.jsx("div",{className:"text-sm text-text-muted",children:o.directory||""})]})}),e.jsxs("div",{className:"text-right",children:[e.jsx(N,{status:o.status}),e.jsx("div",{className:"mt-1 text-xs text-text-muted",children:o.branch||""})]})]},o.id)})})}function K({sessions:n,environments:i,onSelect:o,onDelete:d}){if(!n||n.length===0)return e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-8 text-center text-text-muted",children:"No sessions"});const c=new Map;for(const t of i??[])t!=null&&t.id&&t.worker_type&&c.set(t.id,t.worker_type);const p=[...n].sort((t,l)=>(l.updated_at||0)-(t.updated_at||0));return e.jsx("div",{className:"space-y-2",children:p.map(t=>e.jsxs("div",{className:"group flex w-full items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 text-left transition-colors hover:border-border-light hover:bg-surface-2",children:[e.jsxs("button",{type:"button",onClick:()=>o(t.id),className:"min-w-0 flex-1 text-left",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate font-medium text-text-primary",children:t.title||t.id}),(()=>{var f;let l=t.source==="acp"?"acp":(f=t.environment)==null?void 0:f.worker_type;!l&&t.environment_id&&(l=c.get(t.environment_id));const b=v(l);return e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${b.colorClass}`,children:b.fullLabel})})()]}),e.jsx("div",{className:"truncate text-xs text-text-muted",children:t.id})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(N,{status:t.status}),e.jsx("span",{className:"text-xs text-text-muted",children:C(t.created_at||t.updated_at)}),d&&e.jsx("button",{type:"button",onClick:l=>{l.stopPropagation(),d(t.id)},className:"rounded p-1 text-text-muted opacity-0 transition-all hover:text-status-error group-hover:opacity-100",title:"Delete session",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]},t.id))})}function $({open:n,environments:i,onClose:o,onCreated:d}){const[c,p]=a.useState(""),[t,l]=a.useState(""),[b,f]=a.useState("same-dir"),[g,j]=a.useState(""),[s,m]=a.useState(""),[u,y]=a.useState(!1);a.useEffect(()=>{n&&(p(""),l(""),f("same-dir"),j(""),m(""))},[n]),a.useEffect(()=>{if(!t){j("");return}const r=w(t);j(r??"")},[t]);const x=async()=>{y(!0),m("");try{const r={};c.trim()&&(r.title=c.trim()),t&&(r.environment_id=t),r.spawn_mode=b,g.trim()&&(r.worker_token=g.trim());const k=await W(r);g.trim()&&t&&M(t,g.trim()),_(k.id,t||k.environment_id),d(k)}catch(r){m(r instanceof Error?r.message:"Failed to create session")}finally{y(!1)}},h=i.find(r=>r.id===t);return e.jsx(S,{open:n,onOpenChange:r=>{r||o()},children:e.jsxs(E,{className:"max-w-md rounded-2xl border-border bg-surface-1 p-6 shadow-2xl",children:[e.jsx(T,{children:e.jsx(D,{className:"font-display text-lg font-semibold text-text-primary",children:"New Session"})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:"Title (optional)"}),e.jsx("input",{type:"text",value:c,onChange:r=>p(r.target.value),placeholder:"My session",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:"Environment"}),e.jsxs("select",{value:t,onChange:r=>l(r.target.value),className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary focus:border-brand focus:outline-none",children:[e.jsx("option",{value:"",children:"-- None --"}),i.map(r=>{const k=v(r.worker_type).shortLabel;return e.jsxs("option",{value:r.id,children:[r.machine_name||r.id," (",r.branch||"no branch",") · ",k,r.has_worker_token?" · protected":""]},r.id)})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:"Workspace Mode"}),e.jsxs("select",{value:b,onChange:r=>f(r.target.value),className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary focus:border-brand focus:outline-none",children:[e.jsx("option",{value:"same-dir",children:"工作区 (same-dir) — sessions share the directory"}),e.jsx("option",{value:"worktree",children:"工作树 (worktree) — each session gets an isolated git worktree"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:"Worker Token"}),e.jsx("input",{type:"password",value:g,onChange:r=>j(r.target.value),placeholder:h!=null&&h.has_worker_token?"RCS_WORKER_TOKENS value":"No token required (open environment)",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none font-mono"}),e.jsx("p",{className:"mt-1 text-xs text-text-muted",children:h!=null&&h.has_worker_token?"该 environment 受 RCS_WORKER_TOKENS 保护。输入后会自动保存,下次创建同 environment 的会话时自动填入。":"该 environment 未设置 worker token,留空即可。"})]}),s&&e.jsx("div",{className:"text-sm text-status-error",children:s})]}),e.jsxs(L,{children:[e.jsx("button",{onClick:o,className:"rounded-lg border border-border px-4 py-2 text-sm text-text-secondary hover:bg-surface-2 transition-colors",children:"Cancel"}),e.jsx("button",{onClick:x,disabled:u,className:"rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white hover:bg-brand-light disabled:opacity-50 transition-colors",children:u?"Creating...":"Create"})]})]})})}function z({onNavigateSession:n}){const[i,o]=a.useState([]),[d,c]=a.useState([]),[p,t]=a.useState(!1),l=a.useCallback(async()=>{try{const[s,m]=await Promise.all([F(),O()]),u=s||[],y=m||[];for(const x of u)_(x.id,x.environment_id);R(u),o(u),c(y)}catch(s){console.error("Dashboard render error:",s)}},[]);a.useEffect(()=>{l();const s=setInterval(l,1e4);return()=>clearInterval(s)},[l]);const b=s=>{t(!1),n(s.id)},f=a.useCallback(s=>{},[]),g=a.useCallback(s=>{n(s)},[n]),j=a.useCallback(async s=>{const m=i.find(x=>x.id===s),u=m==null?void 0:m.environment_id,y=w(u);if(u&&!y){alert(`该会话的 environment 受 worker token 保护,但本地未保存对应 token。
1
+ import{j as e,e as a}from"./vendor-DE_-CLIE.js";import{J as v,j as N,B as C,I as w,D as S,e as E,g as T,h as D,f as L,m as W,P as M,N as _,o as F,p as O,M as R,n as B}from"./main-UBLYspes.js";import"./shiki-mEP5vQQu.js";import"./qr-C0jP9HcD.js";import"./motion-BILbV7YQ.js";function I({environments:n,onSelectEnvironment:i}){return!n||n.length===0?e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-8 text-center text-text-muted",children:"No active environments"}):e.jsx("div",{className:"space-y-2",children:n.map(o=>{const d=o.worker_type==="acp",c=v(o.worker_type),p=c.fullLabel,t=c.colorClass;return e.jsxs("button",{type:"button",onClick:()=>i==null?void 0:i(o),disabled:d,className:`flex w-full items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 text-left transition-colors ${d?"cursor-default opacity-80":"hover:border-border-light cursor-pointer"}`,children:[e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-text-primary",children:o.machine_name||o.id}),e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${t}`,children:p})]}),e.jsx("div",{className:"text-sm text-text-muted",children:o.directory||""})]})}),e.jsxs("div",{className:"text-right",children:[e.jsx(N,{status:o.status}),e.jsx("div",{className:"mt-1 text-xs text-text-muted",children:o.branch||""})]})]},o.id)})})}function K({sessions:n,environments:i,onSelect:o,onDelete:d}){if(!n||n.length===0)return e.jsx("div",{className:"rounded-xl border border-border bg-surface-1 p-8 text-center text-text-muted",children:"No sessions"});const c=new Map;for(const t of i??[])t!=null&&t.id&&t.worker_type&&c.set(t.id,t.worker_type);const p=[...n].sort((t,l)=>(l.updated_at||0)-(t.updated_at||0));return e.jsx("div",{className:"space-y-2",children:p.map(t=>e.jsxs("div",{className:"group flex w-full items-center justify-between rounded-xl border border-border bg-surface-1 px-4 py-3 text-left transition-colors hover:border-border-light hover:bg-surface-2",children:[e.jsxs("button",{type:"button",onClick:()=>o(t.id),className:"min-w-0 flex-1 text-left",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate font-medium text-text-primary",children:t.title||t.id}),(()=>{var f;let l=t.source==="acp"?"acp":(f=t.environment)==null?void 0:f.worker_type;!l&&t.environment_id&&(l=c.get(t.environment_id));const b=v(l);return e.jsx("span",{className:`rounded-full px-2 py-0.5 text-xs font-medium ${b.colorClass}`,children:b.fullLabel})})()]}),e.jsx("div",{className:"truncate text-xs text-text-muted",children:t.id})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(N,{status:t.status}),e.jsx("span",{className:"text-xs text-text-muted",children:C(t.created_at||t.updated_at)}),d&&e.jsx("button",{type:"button",onClick:l=>{l.stopPropagation(),d(t.id)},className:"rounded p-1 text-text-muted opacity-0 transition-all hover:text-status-error group-hover:opacity-100",title:"Delete session",children:e.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]},t.id))})}function $({open:n,environments:i,onClose:o,onCreated:d}){const[c,p]=a.useState(""),[t,l]=a.useState(""),[b,f]=a.useState("same-dir"),[g,j]=a.useState(""),[s,m]=a.useState(""),[u,y]=a.useState(!1);a.useEffect(()=>{n&&(p(""),l(""),f("same-dir"),j(""),m(""))},[n]),a.useEffect(()=>{if(!t){j("");return}const r=w(t);j(r??"")},[t]);const x=async()=>{y(!0),m("");try{const r={};c.trim()&&(r.title=c.trim()),t&&(r.environment_id=t),r.spawn_mode=b,g.trim()&&(r.worker_token=g.trim());const k=await W(r);g.trim()&&t&&M(t,g.trim()),_(k.id,t||k.environment_id),d(k)}catch(r){m(r instanceof Error?r.message:"Failed to create session")}finally{y(!1)}},h=i.find(r=>r.id===t);return e.jsx(S,{open:n,onOpenChange:r=>{r||o()},children:e.jsxs(E,{className:"max-w-md rounded-2xl border-border bg-surface-1 p-6 shadow-2xl",children:[e.jsx(T,{children:e.jsx(D,{className:"font-display text-lg font-semibold text-text-primary",children:"New Session"})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:"Title (optional)"}),e.jsx("input",{type:"text",value:c,onChange:r=>p(r.target.value),placeholder:"My session",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:"Environment"}),e.jsxs("select",{value:t,onChange:r=>l(r.target.value),className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary focus:border-brand focus:outline-none",children:[e.jsx("option",{value:"",children:"-- None --"}),i.map(r=>{const k=v(r.worker_type).shortLabel;return e.jsxs("option",{value:r.id,children:[r.machine_name||r.id," (",r.branch||"no branch",") · ",k,r.has_worker_token?" · protected":""]},r.id)})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:"Workspace Mode"}),e.jsxs("select",{value:b,onChange:r=>f(r.target.value),className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary focus:border-brand focus:outline-none",children:[e.jsx("option",{value:"same-dir",children:"工作区 (same-dir) — sessions share the directory"}),e.jsx("option",{value:"worktree",children:"工作树 (worktree) — each session gets an isolated git worktree"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-sm text-text-secondary",children:"Worker Token"}),e.jsx("input",{type:"password",value:g,onChange:r=>j(r.target.value),placeholder:h!=null&&h.has_worker_token?"RCS_WORKER_TOKENS value":"No token required (open environment)",className:"w-full rounded-lg border border-border bg-surface-2 px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:border-brand focus:outline-none font-mono"}),e.jsx("p",{className:"mt-1 text-xs text-text-muted",children:h!=null&&h.has_worker_token?"该 environment 受 RCS_WORKER_TOKENS 保护。输入后会自动保存,下次创建同 environment 的会话时自动填入。":"该 environment 未设置 worker token,留空即可。"})]}),s&&e.jsx("div",{className:"text-sm text-status-error",children:s})]}),e.jsxs(L,{children:[e.jsx("button",{onClick:o,className:"rounded-lg border border-border px-4 py-2 text-sm text-text-secondary hover:bg-surface-2 transition-colors",children:"Cancel"}),e.jsx("button",{onClick:x,disabled:u,className:"rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white hover:bg-brand-light disabled:opacity-50 transition-colors",children:u?"Creating...":"Create"})]})]})})}function z({onNavigateSession:n}){const[i,o]=a.useState([]),[d,c]=a.useState([]),[p,t]=a.useState(!1),l=a.useCallback(async()=>{try{const[s,m]=await Promise.all([F(),O()]),u=s||[],y=m||[];for(const x of u)_(x.id,x.environment_id);R(u),o(u),c(y)}catch(s){console.error("Dashboard render error:",s)}},[]);a.useEffect(()=>{l();const s=setInterval(l,1e4);return()=>clearInterval(s)},[l]);const b=s=>{t(!1),n(s.id)},f=a.useCallback(s=>{},[]),g=a.useCallback(s=>{n(s)},[n]),j=a.useCallback(async s=>{const m=i.find(x=>x.id===s),u=m==null?void 0:m.environment_id,y=w(u);if(u&&!y){alert(`该会话的 environment 受 worker token 保护,但本地未保存对应 token。
2
2
  请点击导航栏 Token → Worker Tokens 添加该 environment 的 worker token 后再删除。`);return}if(window.confirm(`删除会话 ${s}?此操作不可恢复。`))try{await B(s),o(x=>x.filter(h=>h.id!==s))}catch(x){alert(x instanceof Error?x.message:"Failed to delete session")}},[i]);return e.jsxs("div",{className:"mx-auto max-w-5xl px-4 py-8",children:[e.jsx("h1",{className:"sr-only",children:"Dashboard"}),e.jsxs("section",{className:"mb-10",children:[e.jsx("h2",{className:"mb-4 font-display text-lg font-semibold text-text-primary",children:"Environments"}),e.jsx(I,{environments:d,onSelectEnvironment:f})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("h2",{className:"font-display text-lg font-semibold text-text-primary",children:"Sessions"}),e.jsx("button",{onClick:()=>t(!0),className:"rounded-lg bg-brand px-3 py-1.5 text-sm font-medium text-white hover:bg-brand-light transition-colors",children:"+ New Session"})]}),e.jsx(K,{sessions:i,environments:d,onSelect:g,onDelete:j})]}),e.jsx($,{open:p,environments:d,onClose:()=>t(!1),onCreated:b})]})}export{z as Dashboard};
@@ -1,4 +1,4 @@
1
- var de=Object.defineProperty;var ue=(s,t,n)=>t in s?de(s,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[t]=n;var S=(s,t,n)=>ue(s,typeof t!="symbol"?t+"":t,n);import{e as h,j as e}from"./vendor-DE_-CLIE.js";import{x as A,l as me,r as xe,u as pe,E as he,t as P,s as fe,G as ye,H as B,D as ge,e as be,g as je,h as ke,j as Y,B as G,L as X,k as we,S as Ne,z as $,w as q,d as ve,Q as _e,A as Se,F as Ce,R as Me,y as Ee,I as Te,n as $e,O as Ae,T as Z,c as Ie,C as Re,q as Pe,N as qe,M as De,b as Ue,K as Oe,i as Fe,a as Be,J as We}from"./main-kYahqh88.js";import"./shiki-mEP5vQQu.js";import"./qr-C0jP9HcD.js";import"./motion-BILbV7YQ.js";/**
1
+ var de=Object.defineProperty;var ue=(s,t,n)=>t in s?de(s,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[t]=n;var S=(s,t,n)=>ue(s,typeof t!="symbol"?t+"":t,n);import{e as h,j as e}from"./vendor-DE_-CLIE.js";import{x as A,l as me,r as xe,u as pe,E as he,t as P,s as fe,G as ye,H as B,D as ge,e as be,g as je,h as ke,j as Y,B as G,L as X,k as we,S as Ne,z as $,w as q,d as ve,Q as _e,A as Se,F as Ce,R as Me,y as Ee,I as Te,n as $e,O as Ae,T as Z,c as Ie,C as Re,q as Pe,N as qe,M as De,b as Ue,K as Oe,i as Fe,a as Be,J as We}from"./main-UBLYspes.js";import"./shiki-mEP5vQQu.js";import"./qr-C0jP9HcD.js";import"./motion-BILbV7YQ.js";/**
2
2
  * @license lucide-react v0.555.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{bl as ln,aO as an,H as z,b8 as w,F as G,ah as un,W as y,bd as tn,b9 as J,aI as _,c as rn,m as o,aG as on,j as sn,d as fn}from"./mermaid.core-BqN6IVxp.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,j,I,v,A,H,a){var q=j-l,i=I-h,n=H-v,d=a-A,u=d*q-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*q,h+u*i]}function U(l,h,j,I,v,A,H){var a=l-j,q=h-I,i=(H?A:-A)/J(a*a+q*q),n=i*q,d=-i*a,u=l+n,s=h+d,f=j+n,c=I+d,S=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,D=(g<0?-1:1)*J(on(0,T*T*R-P*P)),E=(P*g-m*D)/R,F=(-P*m-g*D)/R,b=(P*g+m*D)/R,p=(-P*m+g*D)/R,x=E-S,e=F-t,r=b-S,W=p-t;return x*x+e*e>r*r+W*W&&(E=b,F=p),{cx:E,cy:F,x01:-n,y01:-d,x11:E*(v/T-1),y11:F*(v/T-1)}}function hn(){var l=cn,h=yn,j=G(0),I=null,v=gn,A=dn,H=mn,a=null,q=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,S=rn(c-f),t=c>f;if(a||(a=n=q()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(S>tn-y)a.moveTo(s*z(f),s*w(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*w(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=S,D=S,E=H.apply(this,arguments)/2,F=E>y&&(I?+I.apply(this,arguments):J(u*u+s*s)),b=_(rn(s-u)/2,+j.apply(this,arguments)),p=b,x=b,e,r;if(F>y){var W=sn(F/u*w(E)),K=sn(F/s*w(E));(P-=W*2)>y?(W*=t?1:-1,R+=W,T-=W):(P=0,R=T=(f+c)/2),(D-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(D=0,m=g=(f+c)/2)}var B=s*z(m),C=s*w(m),L=u*z(T),M=u*w(T);if(b>y){var N=s*z(g),Q=s*w(g),V=u*z(R),X=u*w(R),O;if(S<an)if(O=pn(B,C,V,X,N,Q,L,M)){var Y=B-O[0],Z=C-O[1],$=N-O[0],k=Q-O[1],nn=1/w(fn((Y*$+Z*k)/(J(Y*Y+Z*Z)*J($*$+k*k)))/2),en=J(O[0]*O[0]+O[1]*O[1]);p=_(b,(u-en)/(nn-1)),x=_(b,(s-en)/(nn+1))}else p=x=0}D>y?x>y?(e=U(V,X,B,C,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<b?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(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(B,C,V,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<b?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,R,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)+ +A.apply(this,arguments))/2-an/2;return[z(d)*n,w(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:G(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:G(+n),i):h},i.cornerRadius=function(n){return arguments.length?(j=typeof n=="function"?n:G(+n),i):j},i.padRadius=function(n){return arguments.length?(I=n==null?null:typeof n=="function"?n:G(+n),i):I},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:G(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:G(+n),i):A},i.padAngle=function(n){return arguments.length?(H=typeof n=="function"?n:G(+n),i):H},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{bl as ln,aO as an,H as z,b8 as w,F as G,ah as un,W as y,bd as tn,b9 as J,aI as _,c as rn,m as o,aG as on,j as sn,d as fn}from"./mermaid.core-C0ceVHNj.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,j,I,v,A,H,a){var q=j-l,i=I-h,n=H-v,d=a-A,u=d*q-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*q,h+u*i]}function U(l,h,j,I,v,A,H){var a=l-j,q=h-I,i=(H?A:-A)/J(a*a+q*q),n=i*q,d=-i*a,u=l+n,s=h+d,f=j+n,c=I+d,S=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,D=(g<0?-1:1)*J(on(0,T*T*R-P*P)),E=(P*g-m*D)/R,F=(-P*m-g*D)/R,b=(P*g+m*D)/R,p=(-P*m+g*D)/R,x=E-S,e=F-t,r=b-S,W=p-t;return x*x+e*e>r*r+W*W&&(E=b,F=p),{cx:E,cy:F,x01:-n,y01:-d,x11:E*(v/T-1),y11:F*(v/T-1)}}function hn(){var l=cn,h=yn,j=G(0),I=null,v=gn,A=dn,H=mn,a=null,q=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,S=rn(c-f),t=c>f;if(a||(a=n=q()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(S>tn-y)a.moveTo(s*z(f),s*w(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*w(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=S,D=S,E=H.apply(this,arguments)/2,F=E>y&&(I?+I.apply(this,arguments):J(u*u+s*s)),b=_(rn(s-u)/2,+j.apply(this,arguments)),p=b,x=b,e,r;if(F>y){var W=sn(F/u*w(E)),K=sn(F/s*w(E));(P-=W*2)>y?(W*=t?1:-1,R+=W,T-=W):(P=0,R=T=(f+c)/2),(D-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(D=0,m=g=(f+c)/2)}var B=s*z(m),C=s*w(m),L=u*z(T),M=u*w(T);if(b>y){var N=s*z(g),Q=s*w(g),V=u*z(R),X=u*w(R),O;if(S<an)if(O=pn(B,C,V,X,N,Q,L,M)){var Y=B-O[0],Z=C-O[1],$=N-O[0],k=Q-O[1],nn=1/w(fn((Y*$+Z*k)/(J(Y*Y+Z*Z)*J($*$+k*k)))/2),en=J(O[0]*O[0]+O[1]*O[1]);p=_(b,(u-en)/(nn-1)),x=_(b,(s-en)/(nn+1))}else p=x=0}D>y?x>y?(e=U(V,X,B,C,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<b?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(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(B,C,V,X,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<b?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,R,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)+ +A.apply(this,arguments))/2-an/2;return[z(d)*n,w(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:G(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:G(+n),i):h},i.cornerRadius=function(n){return arguments.length?(j=typeof n=="function"?n:G(+n),i):j},i.padRadius=function(n){return arguments.length?(I=n==null?null:typeof n=="function"?n:G(+n),i):I},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:G(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:G(+n),i):A},i.padAngle=function(n){return arguments.length?(H=typeof n=="function"?n:G(+n),i):H},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};