@hachej/boring-ui-cli 0.1.35 → 0.1.37

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 (64) hide show
  1. package/dist/server/cli.js +19 -579
  2. package/dist/server/modeApps.js +626 -0
  3. package/dist/server/pluginDiscovery.js +25 -4
  4. package/dist/server/pluginFrontRuntime.js +86 -17
  5. package/package.json +6 -5
  6. package/public/assets/{DebugDrawer-CmfCaxFo.js → DebugDrawer-DnJihn7d.js} +1 -1
  7. package/public/assets/{_baseUniq-C4cssnmI.js → _baseUniq-Css5uykF.js} +1 -1
  8. package/public/assets/{arc-wdyRM9Dj.js → arc-CnfZXaWe.js} +1 -1
  9. package/public/assets/{architectureDiagram-Q4EWVU46-BxGI7D7J.js → architectureDiagram-Q4EWVU46-BANSd98t.js} +1 -1
  10. package/public/assets/{blockDiagram-DXYQGD6D-Dn29DmW4.js → blockDiagram-DXYQGD6D-Cd6iEbZF.js} +1 -1
  11. package/public/assets/{c4Diagram-AHTNJAMY-C1tj_DPA.js → c4Diagram-AHTNJAMY-9WJupXFB.js} +1 -1
  12. package/public/assets/channel-Cn1SBioe.js +1 -0
  13. package/public/assets/{chunk-4BX2VUAB-CHT4yrPF.js → chunk-4BX2VUAB-DEE8UItM.js} +1 -1
  14. package/public/assets/{chunk-4TB4RGXK-DnESVf52.js → chunk-4TB4RGXK-Bf4S3aFF.js} +1 -1
  15. package/public/assets/{chunk-55IACEB6-CMiNXUlN.js → chunk-55IACEB6-rumvIfCQ.js} +1 -1
  16. package/public/assets/{chunk-EDXVE4YY-DdgwYS0K.js → chunk-EDXVE4YY-B41LsR8o.js} +1 -1
  17. package/public/assets/{chunk-FMBD7UC4-BAOIovY_.js → chunk-FMBD7UC4-Cq0MvVHl.js} +1 -1
  18. package/public/assets/{chunk-OYMX7WX6-Cbvpbjce.js → chunk-OYMX7WX6-AEfKb-L7.js} +1 -1
  19. package/public/assets/{chunk-QZHKN3VN-CoKffRLQ.js → chunk-QZHKN3VN-BnF9Mgjw.js} +1 -1
  20. package/public/assets/{chunk-YZCP3GAM-C7-eq7rZ.js → chunk-YZCP3GAM-CVhtG4Yd.js} +1 -1
  21. package/public/assets/classDiagram-6PBFFD2Q-B7iAGzAt.js +1 -0
  22. package/public/assets/classDiagram-v2-HSJHXN6E-B7iAGzAt.js +1 -0
  23. package/public/assets/clone-CKRPa4Cx.js +1 -0
  24. package/public/assets/{cose-bilkent-S5V4N54A-C1S6rZwh.js → cose-bilkent-S5V4N54A-BAlza9SS.js} +1 -1
  25. package/public/assets/{dagre-KV5264BT-Ct0pKZ0k.js → dagre-KV5264BT-DXC-wg6w.js} +1 -1
  26. package/public/assets/{diagram-5BDNPKRD-YH70HUnu.js → diagram-5BDNPKRD-DQ_JZ2v6.js} +1 -1
  27. package/public/assets/{diagram-G4DWMVQ6-C4odz4kl.js → diagram-G4DWMVQ6-BV1_oXdH.js} +1 -1
  28. package/public/assets/{diagram-MMDJMWI5-BmJzg7kb.js → diagram-MMDJMWI5-CBT9iuoD.js} +1 -1
  29. package/public/assets/{diagram-TYMM5635-C3ojF6WX.js → diagram-TYMM5635-2gLQa-5c.js} +1 -1
  30. package/public/assets/{erDiagram-SMLLAGMA-CCv0YvhQ.js → erDiagram-SMLLAGMA-BlACgWIF.js} +1 -1
  31. package/public/assets/{flowDiagram-DWJPFMVM-cOU32gSH.js → flowDiagram-DWJPFMVM-C3a4Cakw.js} +1 -1
  32. package/public/assets/{ganttDiagram-T4ZO3ILL-DBfxNCML.js → ganttDiagram-T4ZO3ILL-BvO6eI9n.js} +1 -1
  33. package/public/assets/{gitGraphDiagram-UUTBAWPF-BpeXvr1_.js → gitGraphDiagram-UUTBAWPF-CNRpcuUc.js} +1 -1
  34. package/public/assets/{graph-nhMaYPvi.js → graph-BGcM9Vra.js} +1 -1
  35. package/public/assets/{highlighted-body-OFNGDK62--BzSfCvR.js → highlighted-body-OFNGDK62-DFAlA8ty.js} +1 -1
  36. package/public/assets/{index-BMuBL8Qv.js → index-DuQz_ooq.js} +476 -471
  37. package/public/assets/index-o6MvaI3V.css +1 -0
  38. package/public/assets/{infoDiagram-42DDH7IO-TgQUdnii.js → infoDiagram-42DDH7IO-tqWZWhv9.js} +1 -1
  39. package/public/assets/{ishikawaDiagram-UXIWVN3A-BTf1ZnbI.js → ishikawaDiagram-UXIWVN3A-BSrhE5rT.js} +1 -1
  40. package/public/assets/{journeyDiagram-VCZTEJTY-CE5ZvQD-.js → journeyDiagram-VCZTEJTY-p4zWU15s.js} +1 -1
  41. package/public/assets/{kanban-definition-6JOO6SKY-DdedFuqF.js → kanban-definition-6JOO6SKY-Bh1g0QjZ.js} +1 -1
  42. package/public/assets/{layout-Cih797KL.js → layout-gyEZgedN.js} +1 -1
  43. package/public/assets/{linear-C5C4CuFZ.js → linear-D_hzHorE.js} +1 -1
  44. package/public/assets/{min-7u-C0OaV.js → min-DuaweV_G.js} +1 -1
  45. package/public/assets/{mindmap-definition-QFDTVHPH-OBZRxcri.js → mindmap-definition-QFDTVHPH-Bd9cPaCZ.js} +1 -1
  46. package/public/assets/{pieDiagram-DEJITSTG-D8ztumiz.js → pieDiagram-DEJITSTG-BtC28nvk.js} +1 -1
  47. package/public/assets/{quadrantDiagram-34T5L4WZ-CNNRXkDc.js → quadrantDiagram-34T5L4WZ-D4l6_MzD.js} +1 -1
  48. package/public/assets/{requirementDiagram-MS252O5E-Cwbaa0Qx.js → requirementDiagram-MS252O5E-C1iUHr18.js} +1 -1
  49. package/public/assets/{sankeyDiagram-XADWPNL6-DBmviVXl.js → sankeyDiagram-XADWPNL6-OVDB_8ZR.js} +1 -1
  50. package/public/assets/{sequenceDiagram-FGHM5R23-ppAZl-uV.js → sequenceDiagram-FGHM5R23-BDavACVC.js} +1 -1
  51. package/public/assets/{stateDiagram-FHFEXIEX-C168rmPR.js → stateDiagram-FHFEXIEX-q8RwQFTP.js} +1 -1
  52. package/public/assets/stateDiagram-v2-QKLJ7IA2-BoiN-2KM.js +1 -0
  53. package/public/assets/{timeline-definition-GMOUNBTQ-CXM9zfSi.js → timeline-definition-GMOUNBTQ-y0_Knxi9.js} +1 -1
  54. package/public/assets/{vennDiagram-DHZGUBPP-GDYdqb9p.js → vennDiagram-DHZGUBPP-DbnSIyoN.js} +1 -1
  55. package/public/assets/{wardley-RL74JXVD-z_pLyMzD.js → wardley-RL74JXVD-CIj9kuqP.js} +1 -1
  56. package/public/assets/{wardleyDiagram-NUSXRM2D-ClQNpAKT.js → wardleyDiagram-NUSXRM2D--fILgFoZ.js} +1 -1
  57. package/public/assets/{xychartDiagram-5P7HB3ND-BThhBVRv.js → xychartDiagram-5P7HB3ND-YFiXEsiS.js} +1 -1
  58. package/public/index.html +2 -2
  59. package/public/assets/channel-zS0VgreV.js +0 -1
  60. package/public/assets/classDiagram-6PBFFD2Q-DF_m3Xeb.js +0 -1
  61. package/public/assets/classDiagram-v2-HSJHXN6E-DF_m3Xeb.js +0 -1
  62. package/public/assets/clone-DcXiz7Vf.js +0 -1
  63. package/public/assets/index-CR04sFQU.css +0 -1
  64. package/public/assets/stateDiagram-v2-QKLJ7IA2-D6wQK0MH.js +0 -1
@@ -348,12 +348,12 @@ function normalizeRequestSubpath(raw) {
348
348
  return value;
349
349
  }
350
350
  function assertRuntimeFrontEntrySubpath(frontEntrySubpath) {
351
- if (frontEntrySubpath.startsWith("front/")) return;
351
+ if (/(^|\/)front\//.test(frontEntrySubpath)) return;
352
352
  throw new PluginFrontRuntimeError(
353
353
  ErrorCode.enum.PLUGIN_RUNTIME_PRIVATE_FILE,
354
354
  403,
355
355
  "validate",
356
- "native runtime plugin fronts must live under the front/ directory",
356
+ "native runtime plugin fronts must live under a front/ directory",
357
357
  { frontEntrySubpath }
358
358
  );
359
359
  }
@@ -399,16 +399,27 @@ function optimizedDependencySingletonSource(targetPath) {
399
399
  const cleanPath = targetPath.split("?")[0];
400
400
  const normalizedPath = cleanPath.replaceAll("\\", "/");
401
401
  const workspaceSingletonByPath = [
402
+ // Monorepo dev layout.
402
403
  ["/packages/workspace/dist/workspace.js", "@hachej/boring-workspace"],
403
404
  ["/packages/workspace/src/index.ts", "@hachej/boring-workspace"],
404
405
  ["/packages/workspace/dist/plugin.js", "@hachej/boring-workspace/plugin"],
405
406
  ["/packages/workspace/src/plugin.ts", "@hachej/boring-workspace/plugin"],
406
407
  ["/packages/workspace/dist/events.js", "@hachej/boring-workspace/events"],
407
- ["/packages/workspace/src/front/events/index.ts", "@hachej/boring-workspace/events"]
408
+ ["/packages/workspace/src/front/events/index.ts", "@hachej/boring-workspace/events"],
409
+ // Installed layout (npm global / pnpm store): the scoped-package suffix
410
+ // matches both node_modules/@hachej/... and .pnpm/.../@hachej/... paths.
411
+ // Without these, a plugin importing the workspace root in an installed
412
+ // CLI gets a proxied SECOND copy of the workspace bundle — its context
413
+ // hooks (useApiBaseUrl, ...) read the wrong React context, and the
414
+ // proxied app-level graph drags un-interop'd CJS deps that fail to load.
415
+ ["/@hachej/boring-workspace/dist/workspace.js", "@hachej/boring-workspace"],
416
+ ["/@hachej/boring-workspace/dist/plugin.js", "@hachej/boring-workspace/plugin"],
417
+ ["/@hachej/boring-workspace/dist/events.js", "@hachej/boring-workspace/events"]
408
418
  ];
409
419
  for (const [suffix, source] of workspaceSingletonByPath) {
410
420
  if (normalizedPath.endsWith(suffix)) return source;
411
421
  }
422
+ if (!normalizedPath.includes("/.vite/deps/")) return void 0;
412
423
  const fileName = normalizedPath.slice(normalizedPath.lastIndexOf("/") + 1);
413
424
  const sourceByFileName = {
414
425
  "react.js": "react",
@@ -557,7 +568,7 @@ async function resolveFileWithinPlugin(record, subpath) {
557
568
  }
558
569
  return resolvedPath;
559
570
  }
560
- function snapshotRuntimeSourceFiles(pluginRoot) {
571
+ function snapshotRuntimeSourceFiles(pluginRoot, frontRootDir, frontRootRelative) {
561
572
  const snapshot = /* @__PURE__ */ new Map();
562
573
  const visit = (dir, subpathPrefix) => {
563
574
  if (!existsSync(dir)) return;
@@ -593,7 +604,7 @@ function snapshotRuntimeSourceFiles(pluginRoot) {
593
604
  }
594
605
  }
595
606
  };
596
- visit(resolvePath(pluginRoot, "front"), "front");
607
+ visit(frontRootDir, frontRootRelative.split("\\").join("/"));
597
608
  visit(resolvePath(pluginRoot, "shared"), "shared");
598
609
  return snapshot;
599
610
  }
@@ -641,6 +652,42 @@ function parsePluginDependencyVirtualId(id) {
641
652
  resolvedPath: decodeURIComponent(pathParts.join(":"))
642
653
  };
643
654
  }
655
+ const pluginPackageRootsCache = /* @__PURE__ */ new Map();
656
+ async function getPluginPackageRoots(nodeModulesDir) {
657
+ let cached = pluginPackageRootsCache.get(nodeModulesDir);
658
+ if (!cached) {
659
+ cached = buildPluginPackageRoots(nodeModulesDir);
660
+ pluginPackageRootsCache.set(nodeModulesDir, cached);
661
+ }
662
+ return cached;
663
+ }
664
+ async function buildPluginPackageRoots(nodeModulesDir) {
665
+ const roots = /* @__PURE__ */ new Set();
666
+ let entries;
667
+ try {
668
+ entries = readdirSync(nodeModulesDir);
669
+ } catch {
670
+ return roots;
671
+ }
672
+ for (const entry of entries) {
673
+ if (entry.startsWith(".")) continue;
674
+ const entryPath = resolvePath(nodeModulesDir, entry);
675
+ if (entry.startsWith("@")) {
676
+ let scopedEntries;
677
+ try {
678
+ scopedEntries = readdirSync(entryPath);
679
+ } catch {
680
+ continue;
681
+ }
682
+ for (const scopedEntry of scopedEntries) {
683
+ roots.add(await resolveRealLike(resolvePath(entryPath, scopedEntry)));
684
+ }
685
+ } else {
686
+ roots.add(await resolveRealLike(entryPath));
687
+ }
688
+ }
689
+ return roots;
690
+ }
644
691
  async function ensurePluginDependencyPath(record, source, importer, resolvedPath) {
645
692
  const nodeModulesDir = resolvePath(record.rootDir, "node_modules");
646
693
  if (!existsSync(nodeModulesDir)) {
@@ -655,13 +702,19 @@ async function ensurePluginDependencyPath(record, source, importer, resolvedPath
655
702
  const nodeModulesReal = await resolveRealLike(nodeModulesDir);
656
703
  const resolvedReal = await resolveRealLike(resolvedPath);
657
704
  if (!isWithin(nodeModulesReal, resolvedReal)) {
658
- throw new PluginFrontRuntimeError(
659
- ErrorCode.enum.PLUGIN_RUNTIME_UNSAFE_IMPORT,
660
- 400,
661
- "resolve",
662
- "runtime plugin dependency resolved outside the plugin-local node_modules directory",
663
- { source, importer, resolvedPath, pluginNodeModules: nodeModulesDir }
705
+ const packageRoots = await getPluginPackageRoots(nodeModulesDir);
706
+ const isInstalledPackage = Array.from(packageRoots).some(
707
+ (root) => root === resolvedReal || isWithin(root, resolvedReal)
664
708
  );
709
+ if (!isInstalledPackage) {
710
+ throw new PluginFrontRuntimeError(
711
+ ErrorCode.enum.PLUGIN_RUNTIME_UNSAFE_IMPORT,
712
+ 400,
713
+ "resolve",
714
+ "runtime plugin dependency resolved outside the plugin-local node_modules directory",
715
+ { source, importer, resolvedPath, pluginNodeModules: nodeModulesDir }
716
+ );
717
+ }
665
718
  }
666
719
  return resolvedReal;
667
720
  }
@@ -951,7 +1004,24 @@ async function createPluginFrontRuntimeHost(options = {}) {
951
1004
  appType: "custom",
952
1005
  configFile: false,
953
1006
  logLevel: "silent",
1007
+ // Disable the dep optimizer entirely. With discovery on, Vite re-optimizes
1008
+ // mid-session as plugin imports surface new deps; each pass rewrites
1009
+ // node_modules/.vite/deps and bumps the browserHash, invalidating chunk
1010
+ // URLs the browser already holds (ERR_FILE_NOT_FOUND_IN_OPTIMIZED_DEP_DIR)
1011
+ // and stalling in-flight plugin front transforms indefinitely. The runtime
1012
+ // host serves deps through its own proxy/singleton routes, so pre-bundling
1013
+ // buys nothing here.
954
1014
  root: repoRoot,
1015
+ // Skip the dep-optimisation entry scan. Without this, Vite crawls the
1016
+ // entire monorepo looking for import statements and hits files like
1017
+ // App.tsx that import `virtual:boring-front-plugins` — a module that
1018
+ // is not registered in this Vite server. That transform error corrupts
1019
+ // the dep-opt lock, causing any concurrently-starting Vite instance to
1020
+ // hang until the test timeout fires.
1021
+ // noDiscovery disables runtime dep discovery too, so transforming a plugin
1022
+ // module with bare imports (e.g. lucide-react) never triggers Vite's
1023
+ // esbuild pre-bundler, which would hang the request for tens of seconds.
1024
+ optimizeDeps: { entries: [], noDiscovery: true },
955
1025
  plugins: [
956
1026
  react(),
957
1027
  {
@@ -1515,18 +1585,17 @@ async function createPluginFrontRuntimeHost(options = {}) {
1515
1585
  assertRuntimeFrontEntrySubpath(frontEntrySubpath);
1516
1586
  const entryUrl = buildRuntimeUrl(basePath, workspaceId, pluginId, revision, frontEntrySubpath);
1517
1587
  const rootDir = resolvePath(args.plugin.rootDir);
1588
+ const frontRootRelative = frontEntrySubpath === "front" || frontEntrySubpath.startsWith("front/") ? "front" : dirname(frontEntrySubpath);
1589
+ const frontRootDir = resolvePath(rootDir, frontRootRelative);
1518
1590
  storeTrackedPlugin({
1519
1591
  workspaceId,
1520
1592
  pluginId,
1521
1593
  revision,
1522
1594
  rootDir,
1523
1595
  frontEntrySubpath,
1524
- frontRootDir: resolvePath(
1525
- rootDir,
1526
- frontEntrySubpath === "front" || frontEntrySubpath.startsWith("front/") ? "front" : dirname(frontEntrySubpath)
1527
- ),
1596
+ frontRootDir,
1528
1597
  sharedRootDir: resolvePath(rootDir, "shared"),
1529
- sourceSnapshot: snapshotRuntimeSourceFiles(rootDir)
1598
+ sourceSnapshot: snapshotRuntimeSourceFiles(rootDir, frontRootDir, frontRootRelative)
1530
1599
  }, entryUrl);
1531
1600
  return entryUrl;
1532
1601
  }
@@ -1534,7 +1603,7 @@ async function createPluginFrontRuntimeHost(options = {}) {
1534
1603
  return (plugin, context) => {
1535
1604
  if (!plugin.frontPath) return void 0;
1536
1605
  const frontEntrySubpath = normalizeRequestSubpath(context.frontEntrySubpath);
1537
- if (!frontEntrySubpath.startsWith("front/")) return void 0;
1606
+ if (!/(^|\/)front\//.test(frontEntrySubpath)) return void 0;
1538
1607
  return {
1539
1608
  kind: "native",
1540
1609
  entryUrl: trackPlugin({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hachej/boring-ui-cli",
3
- "version": "0.1.35",
3
+ "version": "0.1.37",
4
4
  "description": "Turn an agent into an app",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,10 +19,11 @@
19
19
  "lucide-react": "^1.8.0",
20
20
  "typescript": "^5.8.3",
21
21
  "vite": "^6.0.0",
22
- "@hachej/boring-agent": "0.1.35",
23
- "@hachej/boring-ui-kit": "0.1.35",
24
- "@hachej/boring-ui-plugin-cli": "0.1.35",
25
- "@hachej/boring-workspace": "0.1.35"
22
+ "@hachej/boring-agent": "0.1.37",
23
+ "@hachej/boring-ui-plugin-cli": "0.1.37",
24
+ "@hachej/boring-ui-kit": "0.1.37",
25
+ "@hachej/boring-ask-user": "0.1.37",
26
+ "@hachej/boring-workspace": "0.1.37"
26
27
  },
27
28
  "devDependencies": {
28
29
  "@tailwindcss/vite": "^4.0.0",
@@ -1 +1 @@
1
- import{r as x,j as e,T as C,a as S,b as R,c as v,d as N,I as T,R as E,B as M,C as $,e as I,f as D,g as L,h as _}from"./index-BMuBL8Qv.js";function z({value:n,label:t}){const[o,s]=x.useState(!1),i=x.useCallback(()=>{D(n).then(a=>{a&&(s(!0),window.setTimeout(()=>s(!1),1200))})},[n]);return e.jsx(T,{type:"button",variant:"ghost",size:"icon-xs",onClick:i,className:"text-muted-foreground/60","aria-label":t,title:t,children:o?e.jsx(L,{className:"h-3 w-3"}):e.jsx(_,{className:"h-3 w-3"})})}function w({label:n,value:t}){return e.jsxs("div",{className:"rounded-md border border-border/40 bg-muted/20 p-2",children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-[10px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:n}),e.jsx(z,{value:t,label:`Copy ${n}`})]}),e.jsx("code",{className:"block break-all font-mono text-[11px] leading-relaxed text-foreground dark:text-zinc-100",children:t})]})}function A({sessionId:n}){const t=`pi --session ${n}`;return e.jsxs("div",{className:"flex flex-col gap-3 overflow-auto p-3 text-[11px] text-muted-foreground dark:text-zinc-300",children:[e.jsx("p",{className:"text-muted-foreground dark:text-zinc-300",children:"This web chat is backed by a pi session. Use the id below from the workspace root to resume the same conversation in a terminal."}),e.jsx(w,{label:"Pi session id",value:n}),e.jsx(w,{label:"Resume command",value:t}),e.jsxs("p",{className:"rounded-md border border-border/30 bg-muted/10 p-2 text-[10px] leading-relaxed text-muted-foreground dark:text-zinc-300",children:["Tip: ",e.jsx("code",{className:"font-mono text-foreground/80",children:"pi --continue"})," ","opens the most recent session for the current working directory. The explicit command above targets this session directly."]})]})}const P=2500,y=20;function X({apiBaseUrl:n,fetch:t,sessionId:o,requestHeaders:s,storageScope:i}){const[a,r]=x.useState({kind:"loading"}),[c,u]=x.useState(0),m=x.useRef(0),j=x.useCallback(()=>{m.current=0,u(l=>l+1)},[]);return x.useEffect(()=>{let l=!1,f=null;return r({kind:"loading"}),(t??globalThis.fetch.bind(globalThis))(Y(n,`/api/v1/agent/sessions/${encodeURIComponent(o)}/system-prompt`),{headers:J(s,i)}).then(async d=>{var g;if(l)return;if(d.ok){const b=await d.json();if(typeof b.systemPrompt=="string"){m.current=0,r({kind:"ok",text:b.systemPrompt});return}}const h=await d.json().catch(()=>null),p=((g=h==null?void 0:h.error)==null?void 0:g.message)??`HTTP ${d.status}`;d.status===404&&m.current<y?(r({kind:"empty",reason:p}),f=setTimeout(()=>{l||(m.current++,u(b=>b+1))},P)):r(d.status===404?{kind:"empty",reason:p}:{kind:"error",reason:p})}).catch(d=>{l||r({kind:"error",reason:d instanceof Error?d.message:String(d)})}),()=>{l=!0,f&&clearTimeout(f)}},[n,t,o,s,c,i]),e.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[e.jsxs("div",{className:"shrink-0 flex items-center justify-between px-3 pt-2 pb-1 border-b border-border/40",children:[e.jsx("span",{className:"text-[10px] text-muted-foreground/80 font-mono",children:a.kind==="ok"?`${a.text.length.toLocaleString()} chars`:a.kind==="loading"?"loading…":a.kind==="empty"?`waiting for session · retry ${m.current}/${y}`:"error"}),a.kind!=="loading"&&e.jsx(T,{type:"button",variant:"ghost",size:"icon-xs",onClick:j,className:"text-muted-foreground/60","aria-label":"Refresh system prompt",children:e.jsx(E,{className:"h-3 w-3"})})]}),(a.kind==="loading"||a.kind==="empty")&&e.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:a.kind==="loading"?"Loading…":a.reason}),a.kind==="error"&&e.jsx("p",{className:"text-[11px] text-destructive p-3",children:a.reason}),a.kind==="ok"&&e.jsx("pre",{className:"flex-1 overflow-auto px-3 py-2 font-mono text-[11px] leading-relaxed text-foreground whitespace-pre-wrap break-words",children:a.text})]})}function F(n){const t=n,o=(t==null?void 0:t.type)??"?";if(o==="text"){const s=String(t.text??"");return s.slice(0,80)+(s.length>80?"…":"")}if(o==="tool-invocation"){const s=t.toolInvocation,i=String((s==null?void 0:s.state)??"");return`${(s==null?void 0:s.toolName)??"?"}() · ${i}`}if(o==="reasoning"){const s=String(t.text??t.reasoning??"");return s.slice(0,80)+(s.length>80?"…":"")}return o}function H(n){const t=[];for(let o=0;o<n.length;o++){const s=n[o],i=s,a=i.createdAt?new Date(i.createdAt).toISOString().slice(11,23):null;for(let r=0;r<s.parts.length;r++){const c=s.parts[r];t.push({msgId:s.id,msgIndex:o,role:s.role,time:a,partIndex:r,partType:(c==null?void 0:c.type)??"unknown",part:c})}}return t}function O({messages:n}){const t=H(n),[o,s]=x.useState(null),i=x.useRef(null),a=x.useRef(t.length);return x.useEffect(()=>{var r;t.length!==a.current&&((r=i.current)==null||r.scrollIntoView({behavior:"smooth"}),a.current=t.length)},[t.length]),t.length===0?e.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:"No messages yet."}):e.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[e.jsxs("div",{className:"shrink-0 px-3 pt-2 pb-1 text-[10px] text-muted-foreground/80 font-mono border-b border-border/40",children:[n.length," msg · ",t.length," parts"]}),e.jsxs("div",{className:"flex-1 overflow-auto",children:[t.map(r=>{const c=`${r.msgId}:${r.partIndex}`,u=o===c;return e.jsxs("div",{className:"border-b border-border/30 last:border-0",children:[e.jsxs(M,{type:"button",variant:"ghost",onClick:()=>s(u?null:c),className:"h-auto w-full justify-start gap-1.5 rounded-none px-2 py-1.5 text-left",children:[e.jsx("span",{className:"mt-0.5 shrink-0 text-muted-foreground/40",children:u?e.jsx($,{className:"h-3 w-3"}):e.jsx(I,{className:"h-3 w-3"})}),e.jsx("span",{className:"font-mono text-[10px] shrink-0 w-20",children:r.time?e.jsx("span",{className:"text-muted-foreground/60",children:r.time}):e.jsxs("span",{className:"text-muted-foreground/30",children:["m",r.msgIndex]})}),e.jsx("span",{className:N("shrink-0 font-mono text-[10px] w-14",r.role==="user"?"text-accent":"text-muted-foreground"),children:r.role}),e.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/60 w-24",children:r.partType}),e.jsx("span",{className:"flex-1 min-w-0 font-mono text-[11px] text-foreground truncate",children:F(r.part)})]}),u&&e.jsx("pre",{className:"px-3 pb-2 font-mono text-[10px] leading-relaxed text-foreground/80 whitespace-pre-wrap break-words bg-muted/20",children:JSON.stringify(r.part,null,2)})]},c)}),e.jsx("div",{ref:i})]})]})}const V=[{id:"session",label:"Session"},{id:"prompt",label:"System prompt"},{id:"messages",label:"Messages"}],K=280,W=800;function G({apiBaseUrl:n,fetch:t,sessionId:o,messages:s,requestHeaders:i,storageScope:a,width:r,onWidthChange:c}){const[u,m]=x.useState("session"),j=x.useCallback(l=>{l.preventDefault();const f=l.clientX,k=r,d=p=>{const g=f-p.clientX;c(Math.min(W,Math.max(K,k+g)))},h=()=>{window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",h)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",h)},[r,c]);return e.jsxs(e.Fragment,{children:[e.jsx("div",{onMouseDown:j,className:"w-1 shrink-0 cursor-col-resize hover:bg-accent/40 active:bg-accent/60 transition-colors","aria-hidden":!0}),e.jsx("aside",{style:{width:r},className:N("flex h-full shrink-0 flex-col border-l border-border/60","bg-[oklch(from_var(--background)_calc(l-0.01)_c_h)]"),children:e.jsxs(C,{value:u,onValueChange:l=>m(l),className:"flex flex-col flex-1 min-h-0 overflow-hidden",children:[e.jsx("header",{className:"flex shrink-0 items-center gap-0 border-b border-border/60 px-1",children:e.jsx(S,{variant:"line",className:"h-auto gap-0 p-0 w-full",children:V.map(({id:l,label:f})=>e.jsx(R,{value:l,className:"h-8 flex-none px-3 py-2 text-[11px] font-medium data-[state=active]:after:bg-[color:var(--accent)]",children:f},l))})}),e.jsx(v,{value:"session",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(A,{sessionId:o})}),e.jsx(v,{value:"prompt",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(X,{apiBaseUrl:n,fetch:t,sessionId:o,requestHeaders:i,storageScope:a})}),e.jsx(v,{value:"messages",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(O,{messages:s})})]})})]})}function Y(n,t){return`${(n==null?void 0:n.replace(/\/$/,""))??""}${t}`}function J(n,t){if(!n&&!t)return;const o={...n??{}},s=Object.keys(o).some(i=>i.toLowerCase()==="x-boring-storage-scope");return t&&!s&&(o["x-boring-storage-scope"]=t),o}export{G as DebugDrawer};
1
+ import{r as x,j as e,T as C,a as S,b as R,c as v,d as N,I as T,R as E,B as M,C as $,e as I,f as D,g as L,h as _}from"./index-DuQz_ooq.js";function z({value:n,label:t}){const[o,s]=x.useState(!1),i=x.useCallback(()=>{D(n).then(a=>{a&&(s(!0),window.setTimeout(()=>s(!1),1200))})},[n]);return e.jsx(T,{type:"button",variant:"ghost",size:"icon-xs",onClick:i,className:"text-muted-foreground/60","aria-label":t,title:t,children:o?e.jsx(L,{className:"h-3 w-3"}):e.jsx(_,{className:"h-3 w-3"})})}function w({label:n,value:t}){return e.jsxs("div",{className:"rounded-md border border-border/40 bg-muted/20 p-2",children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-[10px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:n}),e.jsx(z,{value:t,label:`Copy ${n}`})]}),e.jsx("code",{className:"block break-all font-mono text-[11px] leading-relaxed text-foreground dark:text-zinc-100",children:t})]})}function A({sessionId:n}){const t=`pi --session ${n}`;return e.jsxs("div",{className:"flex flex-col gap-3 overflow-auto p-3 text-[11px] text-muted-foreground dark:text-zinc-300",children:[e.jsx("p",{className:"text-muted-foreground dark:text-zinc-300",children:"This web chat is backed by a pi session. Use the id below from the workspace root to resume the same conversation in a terminal."}),e.jsx(w,{label:"Pi session id",value:n}),e.jsx(w,{label:"Resume command",value:t}),e.jsxs("p",{className:"rounded-md border border-border/30 bg-muted/10 p-2 text-[10px] leading-relaxed text-muted-foreground dark:text-zinc-300",children:["Tip: ",e.jsx("code",{className:"font-mono text-foreground/80",children:"pi --continue"})," ","opens the most recent session for the current working directory. The explicit command above targets this session directly."]})]})}const P=2500,y=20;function X({apiBaseUrl:n,fetch:t,sessionId:o,requestHeaders:s,storageScope:i}){const[a,r]=x.useState({kind:"loading"}),[c,u]=x.useState(0),m=x.useRef(0),j=x.useCallback(()=>{m.current=0,u(l=>l+1)},[]);return x.useEffect(()=>{let l=!1,f=null;return r({kind:"loading"}),(t??globalThis.fetch.bind(globalThis))(Y(n,`/api/v1/agent/sessions/${encodeURIComponent(o)}/system-prompt`),{headers:J(s,i)}).then(async d=>{var g;if(l)return;if(d.ok){const b=await d.json();if(typeof b.systemPrompt=="string"){m.current=0,r({kind:"ok",text:b.systemPrompt});return}}const h=await d.json().catch(()=>null),p=((g=h==null?void 0:h.error)==null?void 0:g.message)??`HTTP ${d.status}`;d.status===404&&m.current<y?(r({kind:"empty",reason:p}),f=setTimeout(()=>{l||(m.current++,u(b=>b+1))},P)):r(d.status===404?{kind:"empty",reason:p}:{kind:"error",reason:p})}).catch(d=>{l||r({kind:"error",reason:d instanceof Error?d.message:String(d)})}),()=>{l=!0,f&&clearTimeout(f)}},[n,t,o,s,c,i]),e.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[e.jsxs("div",{className:"shrink-0 flex items-center justify-between px-3 pt-2 pb-1 border-b border-border/40",children:[e.jsx("span",{className:"text-[10px] text-muted-foreground/80 font-mono",children:a.kind==="ok"?`${a.text.length.toLocaleString()} chars`:a.kind==="loading"?"loading…":a.kind==="empty"?`waiting for session · retry ${m.current}/${y}`:"error"}),a.kind!=="loading"&&e.jsx(T,{type:"button",variant:"ghost",size:"icon-xs",onClick:j,className:"text-muted-foreground/60","aria-label":"Refresh system prompt",children:e.jsx(E,{className:"h-3 w-3"})})]}),(a.kind==="loading"||a.kind==="empty")&&e.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:a.kind==="loading"?"Loading…":a.reason}),a.kind==="error"&&e.jsx("p",{className:"text-[11px] text-destructive p-3",children:a.reason}),a.kind==="ok"&&e.jsx("pre",{className:"flex-1 overflow-auto px-3 py-2 font-mono text-[11px] leading-relaxed text-foreground whitespace-pre-wrap break-words",children:a.text})]})}function F(n){const t=n,o=(t==null?void 0:t.type)??"?";if(o==="text"){const s=String(t.text??"");return s.slice(0,80)+(s.length>80?"…":"")}if(o==="tool-invocation"){const s=t.toolInvocation,i=String((s==null?void 0:s.state)??"");return`${(s==null?void 0:s.toolName)??"?"}() · ${i}`}if(o==="reasoning"){const s=String(t.text??t.reasoning??"");return s.slice(0,80)+(s.length>80?"…":"")}return o}function H(n){const t=[];for(let o=0;o<n.length;o++){const s=n[o],i=s,a=i.createdAt?new Date(i.createdAt).toISOString().slice(11,23):null;for(let r=0;r<s.parts.length;r++){const c=s.parts[r];t.push({msgId:s.id,msgIndex:o,role:s.role,time:a,partIndex:r,partType:(c==null?void 0:c.type)??"unknown",part:c})}}return t}function O({messages:n}){const t=H(n),[o,s]=x.useState(null),i=x.useRef(null),a=x.useRef(t.length);return x.useEffect(()=>{var r;t.length!==a.current&&((r=i.current)==null||r.scrollIntoView({behavior:"smooth"}),a.current=t.length)},[t.length]),t.length===0?e.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:"No messages yet."}):e.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[e.jsxs("div",{className:"shrink-0 px-3 pt-2 pb-1 text-[10px] text-muted-foreground/80 font-mono border-b border-border/40",children:[n.length," msg · ",t.length," parts"]}),e.jsxs("div",{className:"flex-1 overflow-auto",children:[t.map(r=>{const c=`${r.msgId}:${r.partIndex}`,u=o===c;return e.jsxs("div",{className:"border-b border-border/30 last:border-0",children:[e.jsxs(M,{type:"button",variant:"ghost",onClick:()=>s(u?null:c),className:"h-auto w-full justify-start gap-1.5 rounded-none px-2 py-1.5 text-left",children:[e.jsx("span",{className:"mt-0.5 shrink-0 text-muted-foreground/40",children:u?e.jsx($,{className:"h-3 w-3"}):e.jsx(I,{className:"h-3 w-3"})}),e.jsx("span",{className:"font-mono text-[10px] shrink-0 w-20",children:r.time?e.jsx("span",{className:"text-muted-foreground/60",children:r.time}):e.jsxs("span",{className:"text-muted-foreground/30",children:["m",r.msgIndex]})}),e.jsx("span",{className:N("shrink-0 font-mono text-[10px] w-14",r.role==="user"?"text-accent":"text-muted-foreground"),children:r.role}),e.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/60 w-24",children:r.partType}),e.jsx("span",{className:"flex-1 min-w-0 font-mono text-[11px] text-foreground truncate",children:F(r.part)})]}),u&&e.jsx("pre",{className:"px-3 pb-2 font-mono text-[10px] leading-relaxed text-foreground/80 whitespace-pre-wrap break-words bg-muted/20",children:JSON.stringify(r.part,null,2)})]},c)}),e.jsx("div",{ref:i})]})]})}const V=[{id:"session",label:"Session"},{id:"prompt",label:"System prompt"},{id:"messages",label:"Messages"}],K=280,W=800;function G({apiBaseUrl:n,fetch:t,sessionId:o,messages:s,requestHeaders:i,storageScope:a,width:r,onWidthChange:c}){const[u,m]=x.useState("session"),j=x.useCallback(l=>{l.preventDefault();const f=l.clientX,k=r,d=p=>{const g=f-p.clientX;c(Math.min(W,Math.max(K,k+g)))},h=()=>{window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",h)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",h)},[r,c]);return e.jsxs(e.Fragment,{children:[e.jsx("div",{onMouseDown:j,className:"w-1 shrink-0 cursor-col-resize hover:bg-accent/40 active:bg-accent/60 transition-colors","aria-hidden":!0}),e.jsx("aside",{style:{width:r},className:N("flex h-full shrink-0 flex-col border-l border-border/60","bg-[oklch(from_var(--background)_calc(l-0.01)_c_h)]"),children:e.jsxs(C,{value:u,onValueChange:l=>m(l),className:"flex flex-col flex-1 min-h-0 overflow-hidden",children:[e.jsx("header",{className:"flex shrink-0 items-center gap-0 border-b border-border/60 px-1",children:e.jsx(S,{variant:"line",className:"h-auto gap-0 p-0 w-full",children:V.map(({id:l,label:f})=>e.jsx(R,{value:l,className:"h-8 flex-none px-3 py-2 text-[11px] font-medium data-[state=active]:after:bg-[color:var(--accent)]",children:f},l))})}),e.jsx(v,{value:"session",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(A,{sessionId:o})}),e.jsx(v,{value:"prompt",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(X,{apiBaseUrl:n,fetch:t,sessionId:o,requestHeaders:i,storageScope:a})}),e.jsx(v,{value:"messages",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(O,{messages:s})})]})})]})}function Y(n,t){return`${(n==null?void 0:n.replace(/\/$/,""))??""}${t}`}function J(n,t){if(!n&&!t)return;const o={...n??{}},s=Object.keys(o).some(i=>i.toLowerCase()==="x-boring-storage-scope");return t&&!s&&(o["x-boring-storage-scope"]=t),o}export{G as DebugDrawer};
@@ -1 +1 @@
1
- import{be as S,bE as ln,aZ as A,bc as P,aY as W,bF as gn,bG as dn,bH as hn,bI as z,bJ as pn,bK as An,bL as N,bf as m,bk as K,bn as T,bM as _n,bi as on,bN as wn,bO as On,a_ as V,bP as bn,bQ as R}from"./index-BMuBL8Qv.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||S(n)&&ln(n)==Pn}function vn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var U=P?P.prototype:void 0,B=U?U.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return vn(n,k)+"";if(x(n))return B?B.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function In(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function Rn(n,r,e){return r===r?In(n,r,e):cn(n,Tn,e)}function Ln(n,r){var e=n==null?0:n.length;return!!e&&Rn(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Sn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Sn.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fn=/\\(\\)?/g,Gn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Fn,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Gn(Dn(n))}function I(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[I(r[e++])];return e&&e==i?n:void 0}function Nn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var H=P?P.isConcatSpreadable:void 0;function mn(n){return A(n)||z(n)||!!(H&&n&&n[H])}function Hr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=mn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Kn(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Un(){return[]}var Bn=Object.prototype,Hn=Bn.propertyIsEnumerable,Z=Object.getOwnPropertySymbols,Zn=Z?function(n){return n==null?[]:(n=Object(n),en(Z(n),function(r){return Hn.call(n,r)}))}:Un;function qn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function q(n){return qn(n,M,Zn)}var Yn="__lodash_hash_undefined__";function Jn(n){return this.__data__.set(n,Yn),this}function Qn(n){return this.__data__.has(n)}function v(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}v.prototype.add=v.prototype.push=Jn;v.prototype.has=Qn;function Xn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new v:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Xn(r,function(O,b){if(!tn(o,b)&&(p===O||f(p,O,e,i,t)))return o.push(b)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",Y=P?P.prototype:void 0,L=Y?Y.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new N(n),new N(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(L)return L.call(n)==L.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=q(n),a=u.length,h=q(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],b=r[d];if(i)var D=s?i(b,O,d,r,n,t):i(O,b,d,n,r,t);if(!(D===void 0?O===b||f(O,b,e,i,t):D)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var y=n.constructor,E=r.constructor;y!=E&&"constructor"in n&&"constructor"in r&&!(typeof y=="function"&&y instanceof y&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,J="[object Arguments]",Q="[object Array]",c="[object Object]",wr=Object.prototype,X=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?Q:m(n),h=u?Q:m(r);a=a==J?c:a,h=h==J?c:h;var g=a==c,l=h==c,d=a==h;if(d&&K(n)){if(!K(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&X.call(n,"__wrapped__"),p=l&&X.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function F(n,r,e,i,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:Or(n,r,e,i,F,f)}var br=1,Pr=2;function vr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?F(h,a,br|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function yr(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=yr(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||vr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=I(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Ir(n,r){return n!=null&&Tr(n,r,cr)}var Rr=1,Lr=2;function Sr(n,r){return $(n)&&sn(r)?un(I(n),r):function(e){var i=Nn(e,n);return i===void 0&&i===r?Ir(e,n):F(r,i,Rr|Lr)}}function xr(n){return function(r){return r==null?void 0:r[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(I(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Sr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&bn(n,r,M)}function Fr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var G=Fr(Cr);function Gr(n){return typeof n=="function"?n:V}function Zr(n,r){var e=A(n)?En:G;return e(n,Gr(r))}function Dr(n,r){var e=[];return G(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function qr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function Nr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Yr(n,r,e){var i=A(n)?Kn:Nr,f=arguments.length<3;return i(n,an(r),e,f,G)}var mr=1/0,Kr=R&&1/C(new R([,-0]))[1]==mr?function(n){return new R(n)}:yn,Ur=200;function Jr(n,r,e){var i=-1,f=Ln,t=n.length,s=!0,u=[],a=u;if(t>=Ur){var h=r?null:Kr(n);if(h)return C(h);s=!1,f=tn,a=new v}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{G as a,Hr as b,an as c,vn as d,rn as e,qn as f,Zn as g,En as h,x as i,q as j,M as k,Jr as l,qr as m,Zr as n,cn as o,Gr as p,Cr as q,Yr as r,Un as s,Tr as t,j as u,I as v,nn as w,Ir as x,Dn as y};
1
+ import{be as S,bE as ln,aZ as A,bc as P,aY as W,bF as gn,bG as dn,bH as hn,bI as z,bJ as pn,bK as An,bL as N,bf as m,bk as K,bn as T,bM as _n,bi as on,bN as wn,bO as On,a_ as V,bP as bn,bQ as R}from"./index-DuQz_ooq.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||S(n)&&ln(n)==Pn}function vn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var U=P?P.prototype:void 0,B=U?U.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return vn(n,k)+"";if(x(n))return B?B.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function In(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function Rn(n,r,e){return r===r?In(n,r,e):cn(n,Tn,e)}function Ln(n,r){var e=n==null?0:n.length;return!!e&&Rn(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Sn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Sn.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fn=/\\(\\)?/g,Gn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Fn,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Gn(Dn(n))}function I(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[I(r[e++])];return e&&e==i?n:void 0}function Nn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var H=P?P.isConcatSpreadable:void 0;function mn(n){return A(n)||z(n)||!!(H&&n&&n[H])}function Hr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=mn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Kn(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Un(){return[]}var Bn=Object.prototype,Hn=Bn.propertyIsEnumerable,Z=Object.getOwnPropertySymbols,Zn=Z?function(n){return n==null?[]:(n=Object(n),en(Z(n),function(r){return Hn.call(n,r)}))}:Un;function qn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function q(n){return qn(n,M,Zn)}var Yn="__lodash_hash_undefined__";function Jn(n){return this.__data__.set(n,Yn),this}function Qn(n){return this.__data__.has(n)}function v(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}v.prototype.add=v.prototype.push=Jn;v.prototype.has=Qn;function Xn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new v:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Xn(r,function(O,b){if(!tn(o,b)&&(p===O||f(p,O,e,i,t)))return o.push(b)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",Y=P?P.prototype:void 0,L=Y?Y.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new N(n),new N(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(L)return L.call(n)==L.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=q(n),a=u.length,h=q(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],b=r[d];if(i)var D=s?i(b,O,d,r,n,t):i(O,b,d,n,r,t);if(!(D===void 0?O===b||f(O,b,e,i,t):D)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var y=n.constructor,E=r.constructor;y!=E&&"constructor"in n&&"constructor"in r&&!(typeof y=="function"&&y instanceof y&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,J="[object Arguments]",Q="[object Array]",c="[object Object]",wr=Object.prototype,X=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?Q:m(n),h=u?Q:m(r);a=a==J?c:a,h=h==J?c:h;var g=a==c,l=h==c,d=a==h;if(d&&K(n)){if(!K(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&X.call(n,"__wrapped__"),p=l&&X.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function F(n,r,e,i,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:Or(n,r,e,i,F,f)}var br=1,Pr=2;function vr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?F(h,a,br|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function yr(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=yr(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||vr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=I(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Ir(n,r){return n!=null&&Tr(n,r,cr)}var Rr=1,Lr=2;function Sr(n,r){return $(n)&&sn(r)?un(I(n),r):function(e){var i=Nn(e,n);return i===void 0&&i===r?Ir(e,n):F(r,i,Rr|Lr)}}function xr(n){return function(r){return r==null?void 0:r[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(I(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Sr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&bn(n,r,M)}function Fr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var G=Fr(Cr);function Gr(n){return typeof n=="function"?n:V}function Zr(n,r){var e=A(n)?En:G;return e(n,Gr(r))}function Dr(n,r){var e=[];return G(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function qr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function Nr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Yr(n,r,e){var i=A(n)?Kn:Nr,f=arguments.length<3;return i(n,an(r),e,f,G)}var mr=1/0,Kr=R&&1/C(new R([,-0]))[1]==mr?function(n){return new R(n)}:yn,Ur=200;function Jr(n,r,e){var i=-1,f=Ln,t=n.length,s=!0,u=[],a=u;if(t>=Ur){var h=r?null:Kr(n);if(h)return C(h);s=!1,f=tn,a=new v}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{G as a,Hr as b,an as c,vn as d,rn as e,qn as f,Zn as g,En as h,x as i,q as j,M as k,Jr as l,qr as m,Zr as n,cn as o,Gr as p,Cr as q,Yr as r,Un as s,Tr as t,j as u,I as v,nn as w,Ir as x,Dn as y};
@@ -1 +1 @@
1
- import{a4 as ln,a5 as an,a6 as H,a7 as q,a8 as B,a9 as un,aa as g,ab as tn,ac as L,ad as _,ae as rn,af as o,ag as on,ah as sn,ai as fn}from"./index-BMuBL8Qv.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<g))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,y=c-s,R=m*m+y*y,T=v-A,P=u*c-f*s,S=(y<0?-1:1)*L(on(0,T*T*R-P*P)),j=(P*y-m*S)/R,z=(-P*m-y*S)/R,w=(P*y+m*S)/R,p=(-P*m+y*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=gn,I=B(0),D=null,v=yn,A=dn,C=mn,a=null,O=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,F=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>g))a.moveTo(0,0);else if(F>tn-g)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>g&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,y=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>g&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>g){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>g?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>g?(M*=t?1:-1,m+=M,y-=M):(S=0,m=y=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>g){var U=s*H(y),V=s*q(y),X=u*H(R),Y=u*q(R),E;if(F<an)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(fn((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>g?x>g?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,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(J,K),a.arc(0,0,s,m,y,!t)):a.moveTo(J,K),!(u>g)||!(P>g)?a.lineTo(N,Q):p>g?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,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,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[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{a4 as ln,a5 as an,a6 as H,a7 as q,a8 as B,a9 as un,aa as g,ab as tn,ac as L,ad as _,ae as rn,af as o,ag as on,ah as sn,ai as fn}from"./index-DuQz_ooq.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<g))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,y=c-s,R=m*m+y*y,T=v-A,P=u*c-f*s,S=(y<0?-1:1)*L(on(0,T*T*R-P*P)),j=(P*y-m*S)/R,z=(-P*m-y*S)/R,w=(P*y+m*S)/R,p=(-P*m+y*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=gn,I=B(0),D=null,v=yn,A=dn,C=mn,a=null,O=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,F=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>g))a.moveTo(0,0);else if(F>tn-g)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>g&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,y=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>g&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>g){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>g?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>g?(M*=t?1:-1,m+=M,y-=M):(S=0,m=y=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>g){var U=s*H(y),V=s*q(y),X=u*H(R),Y=u*q(R),E;if(F<an)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(fn((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>g?x>g?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,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(J,K),a.arc(0,0,s,m,y,!t)):a.moveTo(J,K),!(u>g)||!(P>g)?a.lineTo(N,Q):p>g?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,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,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[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};