@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.
- package/dist/server/cli.js +19 -579
- package/dist/server/modeApps.js +626 -0
- package/dist/server/pluginDiscovery.js +25 -4
- package/dist/server/pluginFrontRuntime.js +86 -17
- package/package.json +6 -5
- package/public/assets/{DebugDrawer-CmfCaxFo.js → DebugDrawer-DnJihn7d.js} +1 -1
- package/public/assets/{_baseUniq-C4cssnmI.js → _baseUniq-Css5uykF.js} +1 -1
- package/public/assets/{arc-wdyRM9Dj.js → arc-CnfZXaWe.js} +1 -1
- package/public/assets/{architectureDiagram-Q4EWVU46-BxGI7D7J.js → architectureDiagram-Q4EWVU46-BANSd98t.js} +1 -1
- package/public/assets/{blockDiagram-DXYQGD6D-Dn29DmW4.js → blockDiagram-DXYQGD6D-Cd6iEbZF.js} +1 -1
- package/public/assets/{c4Diagram-AHTNJAMY-C1tj_DPA.js → c4Diagram-AHTNJAMY-9WJupXFB.js} +1 -1
- package/public/assets/channel-Cn1SBioe.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-CHT4yrPF.js → chunk-4BX2VUAB-DEE8UItM.js} +1 -1
- package/public/assets/{chunk-4TB4RGXK-DnESVf52.js → chunk-4TB4RGXK-Bf4S3aFF.js} +1 -1
- package/public/assets/{chunk-55IACEB6-CMiNXUlN.js → chunk-55IACEB6-rumvIfCQ.js} +1 -1
- package/public/assets/{chunk-EDXVE4YY-DdgwYS0K.js → chunk-EDXVE4YY-B41LsR8o.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-BAOIovY_.js → chunk-FMBD7UC4-Cq0MvVHl.js} +1 -1
- package/public/assets/{chunk-OYMX7WX6-Cbvpbjce.js → chunk-OYMX7WX6-AEfKb-L7.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-CoKffRLQ.js → chunk-QZHKN3VN-BnF9Mgjw.js} +1 -1
- package/public/assets/{chunk-YZCP3GAM-C7-eq7rZ.js → chunk-YZCP3GAM-CVhtG4Yd.js} +1 -1
- package/public/assets/classDiagram-6PBFFD2Q-B7iAGzAt.js +1 -0
- package/public/assets/classDiagram-v2-HSJHXN6E-B7iAGzAt.js +1 -0
- package/public/assets/clone-CKRPa4Cx.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-C1S6rZwh.js → cose-bilkent-S5V4N54A-BAlza9SS.js} +1 -1
- package/public/assets/{dagre-KV5264BT-Ct0pKZ0k.js → dagre-KV5264BT-DXC-wg6w.js} +1 -1
- package/public/assets/{diagram-5BDNPKRD-YH70HUnu.js → diagram-5BDNPKRD-DQ_JZ2v6.js} +1 -1
- package/public/assets/{diagram-G4DWMVQ6-C4odz4kl.js → diagram-G4DWMVQ6-BV1_oXdH.js} +1 -1
- package/public/assets/{diagram-MMDJMWI5-BmJzg7kb.js → diagram-MMDJMWI5-CBT9iuoD.js} +1 -1
- package/public/assets/{diagram-TYMM5635-C3ojF6WX.js → diagram-TYMM5635-2gLQa-5c.js} +1 -1
- package/public/assets/{erDiagram-SMLLAGMA-CCv0YvhQ.js → erDiagram-SMLLAGMA-BlACgWIF.js} +1 -1
- package/public/assets/{flowDiagram-DWJPFMVM-cOU32gSH.js → flowDiagram-DWJPFMVM-C3a4Cakw.js} +1 -1
- package/public/assets/{ganttDiagram-T4ZO3ILL-DBfxNCML.js → ganttDiagram-T4ZO3ILL-BvO6eI9n.js} +1 -1
- package/public/assets/{gitGraphDiagram-UUTBAWPF-BpeXvr1_.js → gitGraphDiagram-UUTBAWPF-CNRpcuUc.js} +1 -1
- package/public/assets/{graph-nhMaYPvi.js → graph-BGcM9Vra.js} +1 -1
- package/public/assets/{highlighted-body-OFNGDK62--BzSfCvR.js → highlighted-body-OFNGDK62-DFAlA8ty.js} +1 -1
- package/public/assets/{index-BMuBL8Qv.js → index-DuQz_ooq.js} +476 -471
- package/public/assets/index-o6MvaI3V.css +1 -0
- package/public/assets/{infoDiagram-42DDH7IO-TgQUdnii.js → infoDiagram-42DDH7IO-tqWZWhv9.js} +1 -1
- package/public/assets/{ishikawaDiagram-UXIWVN3A-BTf1ZnbI.js → ishikawaDiagram-UXIWVN3A-BSrhE5rT.js} +1 -1
- package/public/assets/{journeyDiagram-VCZTEJTY-CE5ZvQD-.js → journeyDiagram-VCZTEJTY-p4zWU15s.js} +1 -1
- package/public/assets/{kanban-definition-6JOO6SKY-DdedFuqF.js → kanban-definition-6JOO6SKY-Bh1g0QjZ.js} +1 -1
- package/public/assets/{layout-Cih797KL.js → layout-gyEZgedN.js} +1 -1
- package/public/assets/{linear-C5C4CuFZ.js → linear-D_hzHorE.js} +1 -1
- package/public/assets/{min-7u-C0OaV.js → min-DuaweV_G.js} +1 -1
- package/public/assets/{mindmap-definition-QFDTVHPH-OBZRxcri.js → mindmap-definition-QFDTVHPH-Bd9cPaCZ.js} +1 -1
- package/public/assets/{pieDiagram-DEJITSTG-D8ztumiz.js → pieDiagram-DEJITSTG-BtC28nvk.js} +1 -1
- package/public/assets/{quadrantDiagram-34T5L4WZ-CNNRXkDc.js → quadrantDiagram-34T5L4WZ-D4l6_MzD.js} +1 -1
- package/public/assets/{requirementDiagram-MS252O5E-Cwbaa0Qx.js → requirementDiagram-MS252O5E-C1iUHr18.js} +1 -1
- package/public/assets/{sankeyDiagram-XADWPNL6-DBmviVXl.js → sankeyDiagram-XADWPNL6-OVDB_8ZR.js} +1 -1
- package/public/assets/{sequenceDiagram-FGHM5R23-ppAZl-uV.js → sequenceDiagram-FGHM5R23-BDavACVC.js} +1 -1
- package/public/assets/{stateDiagram-FHFEXIEX-C168rmPR.js → stateDiagram-FHFEXIEX-q8RwQFTP.js} +1 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-BoiN-2KM.js +1 -0
- package/public/assets/{timeline-definition-GMOUNBTQ-CXM9zfSi.js → timeline-definition-GMOUNBTQ-y0_Knxi9.js} +1 -1
- package/public/assets/{vennDiagram-DHZGUBPP-GDYdqb9p.js → vennDiagram-DHZGUBPP-DbnSIyoN.js} +1 -1
- package/public/assets/{wardley-RL74JXVD-z_pLyMzD.js → wardley-RL74JXVD-CIj9kuqP.js} +1 -1
- package/public/assets/{wardleyDiagram-NUSXRM2D-ClQNpAKT.js → wardleyDiagram-NUSXRM2D--fILgFoZ.js} +1 -1
- package/public/assets/{xychartDiagram-5P7HB3ND-BThhBVRv.js → xychartDiagram-5P7HB3ND-YFiXEsiS.js} +1 -1
- package/public/index.html +2 -2
- package/public/assets/channel-zS0VgreV.js +0 -1
- package/public/assets/classDiagram-6PBFFD2Q-DF_m3Xeb.js +0 -1
- package/public/assets/classDiagram-v2-HSJHXN6E-DF_m3Xeb.js +0 -1
- package/public/assets/clone-DcXiz7Vf.js +0 -1
- package/public/assets/index-CR04sFQU.css +0 -1
- 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 (
|
|
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
|
|
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(
|
|
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
|
-
|
|
659
|
-
|
|
660
|
-
|
|
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
|
|
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 (
|
|
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.
|
|
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.
|
|
23
|
-
"@hachej/boring-ui-
|
|
24
|
-
"@hachej/boring-ui-
|
|
25
|
-
"@hachej/boring-
|
|
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-
|
|
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-
|
|
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-
|
|
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};
|