@prismshadow/penguin-server 0.2.17 → 0.2.18
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/api/types.d.ts +181 -17
- package/dist/api/types.js +9 -1
- package/dist/auth-token.js +1 -1
- package/dist/{chunk-HPOHMZCH.js → chunk-5YLLSHY3.js} +61 -2
- package/dist/chunk-5YLLSHY3.js.map +1 -0
- package/dist/{chunk-D3JNA6ZI.js → chunk-B3PSKR3D.js} +2 -2
- package/dist/chunk-B3PSKR3D.js.map +1 -0
- package/dist/{chunk-HDBZRVA5.js → chunk-BRMNPLU6.js} +9 -1
- package/dist/chunk-BRMNPLU6.js.map +1 -0
- package/dist/index.js +8331 -6769
- package/dist/index.js.map +1 -1
- package/dist/machine-status.js +1 -1
- package/dist/plugin/index.d.ts +57 -16
- package/dist/reset-admin-password.js +2 -2
- package/package.json +4 -4
- package/web-dist/assets/{abnfDiagram-VCTEODGH-DMzkb4l4.js → abnfDiagram-VCTEODGH-C_Ej4MyZ.js} +1 -1
- package/web-dist/assets/{addon-clipboard-BtD2BVSi.js → addon-clipboard-eONBCa8x.js} +1 -1
- package/web-dist/assets/{addon-fit-Dr6HWsi_.js → addon-fit-Dk6bkT8u.js} +1 -1
- package/web-dist/assets/{addon-web-links-VEE3YLzQ.js → addon-web-links-e0JpGvGv.js} +1 -1
- package/web-dist/assets/{arc-CvMPOU_B.js → arc-ytwqobEL.js} +1 -1
- package/web-dist/assets/{architectureDiagram-5GKGNRK7-Bk65mIBz.js → architectureDiagram-5GKGNRK7-oxT9SNOE.js} +1 -1
- package/web-dist/assets/{blockDiagram-I7D4REHJ-D54-XSNs.js → blockDiagram-I7D4REHJ-D8OXfpb9.js} +1 -1
- package/web-dist/assets/{c4Diagram-7LVT6UL2-Dm954LSt.js → c4Diagram-7LVT6UL2-BNYNzSWK.js} +1 -1
- package/web-dist/assets/channel-7Be_pU-b.js +1 -0
- package/web-dist/assets/{chunk-2Q5K7J3B-D_LJ_7Cn.js → chunk-2Q5K7J3B-C2yNhFmh.js} +1 -1
- package/web-dist/assets/{chunk-5VM5RSS4-B8RI4tl3.js → chunk-5VM5RSS4-CAeuhwbB.js} +1 -1
- package/web-dist/assets/{chunk-F27PBJKO-aVSYH9JV.js → chunk-F27PBJKO-DSuRiLxP.js} +1 -1
- package/web-dist/assets/{chunk-IMKFNOWR-DnkdWeq2.js → chunk-IMKFNOWR-MStar4cf.js} +1 -1
- package/web-dist/assets/{chunk-JWPE2WC7-C2pJzKuW.js → chunk-JWPE2WC7-CIgQwRv4.js} +1 -1
- package/web-dist/assets/{chunk-POPQ4Y6H-Bx7Iikzx.js → chunk-POPQ4Y6H-CA8evx9g.js} +1 -1
- package/web-dist/assets/{chunk-SVP7TREG-qJC2SMqr.js → chunk-SVP7TREG-bR7-FT1W.js} +1 -1
- package/web-dist/assets/{chunk-TICWLB2K-Crl_BgKI.js → chunk-TICWLB2K-C0ZdCnvI.js} +1 -1
- package/web-dist/assets/{chunk-XXDRQBXY-BFFemuGm.js → chunk-XXDRQBXY-CzozFLFI.js} +1 -1
- package/web-dist/assets/classDiagram-ZZMXUADV-BjVhvDIH.js +1 -0
- package/web-dist/assets/classDiagram-v2-VYDZK3BY-BjVhvDIH.js +1 -0
- package/web-dist/assets/{cose-bilkent-JH36ORCC-Bmh2Kx7h.js → cose-bilkent-JH36ORCC-nkjrY6eI.js} +1 -1
- package/web-dist/assets/{cynefin-OW5HDTMX-BveNWnUV.js → cynefin-OW5HDTMX-D2A0h062.js} +1 -1
- package/web-dist/assets/{cynefinDiagram-5FMLGOSQ-85itazbJ.js → cynefinDiagram-5FMLGOSQ-DFZQ7d_T.js} +1 -1
- package/web-dist/assets/{dagre-GXQ25YYZ-DIZT-KY_.js → dagre-GXQ25YYZ-DPYLLARd.js} +1 -1
- package/web-dist/assets/{diagram-S7CK7UJ4-Dum-g63f.js → diagram-S7CK7UJ4-B204Nrur.js} +1 -1
- package/web-dist/assets/{diagram-UQ7AKVKN-DallMKJl.js → diagram-UQ7AKVKN-DWORCZlS.js} +1 -1
- package/web-dist/assets/{diagram-VSXAHHWV-DWELqxfN.js → diagram-VSXAHHWV-Su6Bzm4Z.js} +1 -1
- package/web-dist/assets/{diagram-VX7I27RA-BNs0gB9E.js → diagram-VX7I27RA-B4p8ssYj.js} +1 -1
- package/web-dist/assets/{diagram-Z3DM3KII-C9mF9xAd.js → diagram-Z3DM3KII-BgMz7jjW.js} +1 -1
- package/web-dist/assets/{ebnfDiagram-PWID7BFC-D_Diy9HH.js → ebnfDiagram-PWID7BFC-DBCS3Cwc.js} +1 -1
- package/web-dist/assets/{erDiagram-RLTQ6QDP-4QTS5VIh.js → erDiagram-RLTQ6QDP-DEm39S5C.js} +1 -1
- package/web-dist/assets/{flowDiagram-HODETNUW-CliTRrtV.js → flowDiagram-HODETNUW-CEUQGUza.js} +1 -1
- package/web-dist/assets/{ganttDiagram-EL5Y4UJY-DCRd-Ss4.js → ganttDiagram-EL5Y4UJY-myYTgwFp.js} +1 -1
- package/web-dist/assets/{gitGraphDiagram-WWUBYQGX-CTz13GjS.js → gitGraphDiagram-WWUBYQGX-BAQ0Kl1C.js} +1 -1
- package/web-dist/assets/{highlighter-BScH1Ud3.js → highlighter-DRTMVWxI.js} +2 -2
- package/web-dist/assets/{highlighter-core-DKz8Z6-I.js → highlighter-core-DgISzHrX.js} +1 -1
- package/web-dist/assets/index-PA-IFoA6.js +1300 -0
- package/web-dist/assets/index-oCEyg9BT.css +1 -0
- package/web-dist/assets/{infoDiagram-27XIBGKW-DNfTEPAV.js → infoDiagram-27XIBGKW-B2WDMvX9.js} +1 -1
- package/web-dist/assets/{ishikawaDiagram-5VMMS53U-B7aCjjG1.js → ishikawaDiagram-5VMMS53U-8qHTttjq.js} +1 -1
- package/web-dist/assets/{journeyDiagram-3NMN7TZE-COmDALVr.js → journeyDiagram-3NMN7TZE-DKE_xRCO.js} +1 -1
- package/web-dist/assets/{kanban-definition-UXKFOSKX-BzUfPINh.js → kanban-definition-UXKFOSKX-EnJbHEmV.js} +1 -1
- package/web-dist/assets/{layout-BwzuPU4M.js → layout-BlhCFmEZ.js} +1 -1
- package/web-dist/assets/{linear-WPZTYjz3.js → linear-Dw2VzU-D.js} +1 -1
- package/web-dist/assets/{mermaid.core-zKzlwpkw.js → mermaid.core-CaXNMz57.js} +6 -6
- package/web-dist/assets/{mindmap-definition-YA3MSWOX-DCRg7eAx.js → mindmap-definition-YA3MSWOX-DnTTfqbu.js} +1 -1
- package/web-dist/assets/{pegDiagram-XKGWAZYB-DyphzDLU.js → pegDiagram-XKGWAZYB-C3SArVd6.js} +1 -1
- package/web-dist/assets/{pieDiagram-E7YTZNPT-BI5DueGA.js → pieDiagram-E7YTZNPT-CTOmO6ke.js} +1 -1
- package/web-dist/assets/{quadrantDiagram-AXDQQJYC-GZxSMY2Z.js → quadrantDiagram-AXDQQJYC-CbUsMwzO.js} +1 -1
- package/web-dist/assets/{railroadDiagram-O6MQD6OU-DEFCigBf.js → railroadDiagram-O6MQD6OU-Co2hsvaZ.js} +1 -1
- package/web-dist/assets/{requirementDiagram-BXWQKSXE-Br0thc4j.js → requirementDiagram-BXWQKSXE-BqFG0eYQ.js} +1 -1
- package/web-dist/assets/{sankeyDiagram-P5KCCOFB-DYf0pY67.js → sankeyDiagram-P5KCCOFB-YgQHJlB7.js} +1 -1
- package/web-dist/assets/{sequenceDiagram-WJ2MYXX4-1EFMboX4.js → sequenceDiagram-WJ2MYXX4-CdDrP6O2.js} +1 -1
- package/web-dist/assets/{sizeCapture-INFHLROL-BuOFv-5q.js → sizeCapture-INFHLROL-CKwbEVhU.js} +1 -1
- package/web-dist/assets/{stateDiagram-D77RDMKH-Bg3H1tjX.js → stateDiagram-D77RDMKH-kTJR3t2p.js} +1 -1
- package/web-dist/assets/stateDiagram-v2-MP3YSRHH-DzaSnZwj.js +1 -0
- package/web-dist/assets/{swimlanes-42K2YHIH-BuOa6Osb.js → swimlanes-42K2YHIH-DCAO3rCQ.js} +1 -1
- package/web-dist/assets/swimlanesDiagram-VR7AAH4N-DNfCLejq.js +8 -0
- package/web-dist/assets/{timeline-definition-24CTP7MA-BDekfdDT.js → timeline-definition-24CTP7MA-DEjnyzKw.js} +1 -1
- package/web-dist/assets/{vennDiagram-4TSXK5OY-DnC09UI4.js → vennDiagram-4TSXK5OY-DSihUvCq.js} +1 -1
- package/web-dist/assets/{wardleyDiagram-VM6X3IG4-BXKvxuZQ.js → wardleyDiagram-VM6X3IG4-CnAoMeCH.js} +1 -1
- package/web-dist/assets/{xterm-oY4DYg5s.js → xterm-3JwPT74G.js} +1 -1
- package/web-dist/assets/{xychartDiagram-S5SC5T6Z-DdDC1VLb.js → xychartDiagram-S5SC5T6Z-43dHqZTr.js} +1 -1
- package/web-dist/index.html +2 -2
- package/web-dist/workbench-ui.css +164 -34
- package/dist/chunk-D3JNA6ZI.js.map +0 -1
- package/dist/chunk-HDBZRVA5.js.map +0 -1
- package/dist/chunk-HPOHMZCH.js.map +0 -1
- package/web-dist/assets/channel-CVHI75kz.js +0 -1
- package/web-dist/assets/classDiagram-ZZMXUADV-CBdzAPFu.js +0 -1
- package/web-dist/assets/classDiagram-v2-VYDZK3BY-CBdzAPFu.js +0 -1
- package/web-dist/assets/index-BUvJ5Ctt.js +0 -1299
- package/web-dist/assets/index-DRj7nvPY.css +0 -1
- package/web-dist/assets/stateDiagram-v2-MP3YSRHH-DfaDaPAd.js +0 -1
- package/web-dist/assets/swimlanesDiagram-VR7AAH4N-BopAC7b8.js +0 -8
package/dist/machine-status.js
CHANGED
package/dist/plugin/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SpawnConfiner, AmspRecord, ThinkingLevelName, ToolCallPayload, ApprovalDecision, ProjectConfig, ModelRef, PluginTables, ListEndpointModelsOptions, ModelRequestContext, ProxyEnvPolicy, ControlEnvContext, AgentAssembly, ApproveFn, StopReason, CompactAvailability, SessionTitleResult, BackgroundCommandInfo, ToolDetachResult, BackgroundSubagentInfo, SubagentMessageOptions, SubagentMessageOutcome } from '@prismshadow/penguin-core';
|
|
2
2
|
import { SandboxProviderSource, SandboxSettings, SandboxDimension, SandboxLimit } from '@prismshadow/penguin-core/plugin';
|
|
3
|
-
import { Slot, Opaque } from '@prismshadow/penguin-core/kernel';
|
|
4
|
-
import { ApprovalMode, ModelRefDto, ChatDefaultsDto, CommandPolicyDto, ModelVisionDetectRequest, ModelVisionDetectResponse, ModelTestRequest, ModelTestResponse, ModelProtocolDetectRequest, ModelProtocolDetectResponse, EndpointModelListRequest, EndpointModelListResponse, ModelsResponse, ModelsUpdateRequest, ProviderConnectionUpdate, PresetSyncMode, PresetSyncResponse, ServerEvent, MessagingChannel, UnavailableSandboxBackend, SessionSandboxPreset, SessionSandbox, SessionInfo, SessionCategory, SessionCategoryCounts, ModelScopeAuthFlowStatusResponse, SessionStatus, PendingSteeringInfo, SessionBackgroundTasks, PendingFollowUpInfo, AgentConfigDto, AgentConfigUpdateRequest, AgentKernelUpdateResponse, VaultResponse, VaultUpdateRequest, PluginUpdateRef, MessagingRuntimeStatus, PluginConfiguration, ContributionsResponse, RendererRef } from '../api/types.js';
|
|
3
|
+
import { Slot, Opaque, ClassCtx } from '@prismshadow/penguin-core/kernel';
|
|
4
|
+
import { ApprovalMode, ModelRefDto, ChatDefaultsDto, CommandPolicyDto, ModelVisionDetectRequest, ModelVisionDetectResponse, ModelTestRequest, ModelTestResponse, ModelProtocolDetectRequest, ModelProtocolDetectResponse, EndpointModelListRequest, EndpointModelListResponse, ModelsResponse, ModelsUpdateRequest, ProviderConnectionUpdate, PresetSyncMode, PresetSyncResponse, ServerEvent, MessagingChannel, UnavailableSandboxBackend, SessionSandboxPreset, SessionSandbox, SessionInfo, SessionCategory, SessionCategoryCounts, ModelScopeAuthFlowStatusResponse, SessionStatus, PendingSteeringInfo, SessionBackgroundTasks, PendingFollowUpInfo, AgentConfigDto, AgentConfigUpdateRequest, AgentKernelUpdateResponse, VaultResponse, VaultUpdateRequest, AgentDeletionInfo, PluginUpdateRef, MessagingRuntimeStatus, PluginConfiguration, ContributionsResponse, RendererRef } from '../api/types.js';
|
|
5
5
|
export { PluginConfigField } from '../api/types.js';
|
|
6
6
|
import { ThinkingLevelName as ThinkingLevelName$1 } from '@prismshadow/penguin-core/interfaces';
|
|
7
7
|
import { SessionSource } from '@prismshadow/amsp';
|
|
@@ -23,12 +23,13 @@ interface UserRow {
|
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* "desktop" and "setup" may set a password without the old one (theirs is random and was never
|
|
26
|
-
* shown); desktop-only routes open to "desktop" alone. "
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
26
|
+
* shown); desktop-only routes open to "desktop" alone. "remote" is the one-hour browser session
|
|
27
|
+
* Penguin Remote exchanges the local API token for: it counts as the person wherever a check
|
|
28
|
+
* tells a person from the token (human-only writes, identity claims, who drives a run), opens
|
|
29
|
+
* no desktop-only route, and changes the password only with the old one. "token" is the local
|
|
30
|
+
* API token presented as a Bearer header, and nothing else. Anything else reads as "password".
|
|
30
31
|
*/
|
|
31
|
-
type SessionVia = "password" | "desktop" | "setup" | "token";
|
|
32
|
+
type SessionVia = "password" | "desktop" | "setup" | "remote" | "token";
|
|
32
33
|
|
|
33
34
|
declare class SandboxService {
|
|
34
35
|
private mounted;
|
|
@@ -2376,7 +2377,17 @@ declare abstract class AgentLifecycle {
|
|
|
2376
2377
|
abstract listAgents(projectId: string): Promise<AgentListItem[]>;
|
|
2377
2378
|
/** Every id `createAgent` refuses as taken, as names only, including a folder that does not list. */
|
|
2378
2379
|
abstract takenAgentIds(projectId: string): Promise<string[]>;
|
|
2379
|
-
|
|
2380
|
+
/**
|
|
2381
|
+
* Moves the Agent's folder out of the agents directory in one rename and drops its index row,
|
|
2382
|
+
* so it is gone from every list and route at once; its files are then removed in the
|
|
2383
|
+
* background, as the returned deletion reports. Refuses a built-in Agent, and a folder another
|
|
2384
|
+
* program holds open (409 `agent_folder_busy`, nothing deleted).
|
|
2385
|
+
*/
|
|
2386
|
+
abstract deleteAgent(projectId: string, agentId: string): Promise<AgentDeletionInfo>;
|
|
2387
|
+
/** Where one deletion stands; null once it is unknown here (finished long ago, or never was). */
|
|
2388
|
+
abstract agentDeletion(projectId: string, deletionId: string): AgentDeletionInfo | null;
|
|
2389
|
+
/** Removes whatever deleted Agents left behind when the server last stopped mid-removal. */
|
|
2390
|
+
abstract resumeDeletions(): Promise<void>;
|
|
2380
2391
|
abstract createAgent(projectId: string, agentId: string, name?: string, description?: string, skillNames?: readonly string[], directory?: {
|
|
2381
2392
|
path: string;
|
|
2382
2393
|
names: readonly string[];
|
|
@@ -2422,7 +2433,19 @@ declare class AgentService implements AgentLifecycle {
|
|
|
2422
2433
|
private readonly agents;
|
|
2423
2434
|
private readonly agentConfig;
|
|
2424
2435
|
private readonly snapshots;
|
|
2425
|
-
/**
|
|
2436
|
+
/** Deletions this process knows, by `${projectId}/${deletionId}`. */
|
|
2437
|
+
private readonly deletions;
|
|
2438
|
+
/** The removals in flight, by the same key. */
|
|
2439
|
+
private readonly running;
|
|
2440
|
+
/** Shared by every removal, so two deletions at once still hold only PURGE_SLOTS calls. */
|
|
2441
|
+
private readonly limiter;
|
|
2442
|
+
/** Ends this generation's removals when it is disposed; the next one resumes them from disk. */
|
|
2443
|
+
private readonly stopping;
|
|
2444
|
+
setup(ctx: ClassCtx): void;
|
|
2445
|
+
/**
|
|
2446
|
+
* Union of DB index ∪ directory scan; unmanaged directory Agents are backfilled into the DB.
|
|
2447
|
+
* Only what `AgentConfig.exists` accepts is listed — the rule every route checks.
|
|
2448
|
+
*/
|
|
2426
2449
|
listAgents(projectId: string): Promise<AgentListItem[]>;
|
|
2427
2450
|
/** Count installed folders without compiling or walking their UI/runtime assets. */
|
|
2428
2451
|
private workbenchCount;
|
|
@@ -2495,14 +2518,32 @@ declare class AgentService implements AgentLifecycle {
|
|
|
2495
2518
|
/** Last config modification time: the later of system_config.yaml and AGENTS.md mtime; omitted if neither is readable. */
|
|
2496
2519
|
private configUpdatedAt;
|
|
2497
2520
|
/**
|
|
2498
|
-
* Delete an Agent: the
|
|
2499
|
-
*
|
|
2500
|
-
*
|
|
2501
|
-
* The
|
|
2502
|
-
* agents
|
|
2503
|
-
*
|
|
2521
|
+
* Delete an Agent: the built-in Agents cannot be deleted; callers must first drain any active
|
|
2522
|
+
* run (the session manager's `beginAgentDeletion`) and let go of what holds the folder open.
|
|
2523
|
+
*
|
|
2524
|
+
* The folder (Agent State, Traces, scratchpads, temporary Workspaces) is moved to
|
|
2525
|
+
* `agents/.deleting/<id>-<time>` in one rename and the index row dropped: from then on no list
|
|
2526
|
+
* shows the Agent and no route accepts it, and a new Agent may take its id. The move is the
|
|
2527
|
+
* whole of what the caller waits for — the contents are removed in the background, reported by
|
|
2528
|
+
* the deletion returned (and by `agentDeletion` as it goes). A folder that cannot be moved is
|
|
2529
|
+
* refused with nothing deleted (409 `agent_folder_busy`). Usage records are kept (historical
|
|
2530
|
+
* stats are unaffected); the caller drops the Agent's other index rows.
|
|
2531
|
+
*/
|
|
2532
|
+
deleteAgent(projectId: string, agentId: string): Promise<AgentDeletionInfo>;
|
|
2533
|
+
agentDeletion(projectId: string, deletionId: string): AgentDeletionInfo | null;
|
|
2534
|
+
/**
|
|
2535
|
+
* Every folder left under a Project's `agents/.deleting/` — a deletion the last process did
|
|
2536
|
+
* not finish, or one that met an entry it could not remove — is removed again, one after
|
|
2537
|
+
* another. Folders a deletion of this process is already removing are left to it.
|
|
2538
|
+
*/
|
|
2539
|
+
resumeDeletions(): Promise<void>;
|
|
2540
|
+
/**
|
|
2541
|
+
* Renames the Agent's folder into `.deleting/`. Null when there was no folder to move; a
|
|
2542
|
+
* folder a program keeps holding is refused with nothing moved.
|
|
2504
2543
|
*/
|
|
2505
|
-
|
|
2544
|
+
private moveAside;
|
|
2545
|
+
/** Starts removing `.deleting/<deletionId>` in the background; answers its first reading. */
|
|
2546
|
+
private startPurge;
|
|
2506
2547
|
/**
|
|
2507
2548
|
* Create an Agent: the id is chosen by the creator (a semantic id, checked for
|
|
2508
2549
|
* duplicates against both the DB and the directory within the Project — a 409
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
ADMIN_USER_ID,
|
|
3
3
|
generateInitialAdminPassword,
|
|
4
4
|
hashPassword
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-B3PSKR3D.js";
|
|
6
6
|
import {
|
|
7
7
|
liveServerLock
|
|
8
8
|
} from "./chunk-GOO5VUAB.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-G7GY7PJU.js";
|
|
16
16
|
import {
|
|
17
17
|
openDatabase
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-5YLLSHY3.js";
|
|
19
19
|
import "./chunk-B5IP37ZQ.js";
|
|
20
20
|
|
|
21
21
|
// src/reset-admin-password.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prismshadow/penguin-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.18",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "PenguinHarness web server: multi-user authentication and authorization, Session execution with SSE streaming, and usage accounting, built on @prismshadow/penguin-core.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"unified": "^11.0.5",
|
|
83
83
|
"ws": "^8.18.3",
|
|
84
84
|
"yaml": "^2.5.0",
|
|
85
|
-
"@prismshadow/penguin-core": "0.2.
|
|
86
|
-
"@prismshadow/amsp": "0.2.
|
|
85
|
+
"@prismshadow/penguin-core": "0.2.18",
|
|
86
|
+
"@prismshadow/amsp": "0.2.18"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
89
|
"@types/mdast": "^4.0.4",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"tsup": "^8.3.0",
|
|
94
94
|
"tsx": "^4.20.0",
|
|
95
95
|
"vitest": "^4.1.12",
|
|
96
|
-
"@prismshadow/penguin-hmr": "0.2.
|
|
96
|
+
"@prismshadow/penguin-hmr": "0.2.18"
|
|
97
97
|
},
|
|
98
98
|
"files": [
|
|
99
99
|
"dist",
|
package/web-dist/assets/{abnfDiagram-VCTEODGH-DMzkb4l4.js → abnfDiagram-VCTEODGH-C_Ej4MyZ.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-SVP7TREG-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-SVP7TREG-bR7-FT1W.js";import{p as f}from"./chunk-JWPE2WC7-CIgQwRv4.js";import{_ as n,l as o}from"./mermaid.core-CaXNMz57.js";import{M as c,b as d}from"./cynefin-OW5HDTMX-D2A0h062.js";import"./index-PA-IFoA6.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as nr}from"./index-
|
|
1
|
+
import{g as nr}from"./index-PA-IFoA6.js";function or(v,F){for(var y=0;y<F.length;y++){const c=F[y];if(typeof c!="string"&&!Array.isArray(c)){for(const f in c)if(f!=="default"&&!(f in v)){const x=Object.getOwnPropertyDescriptor(c,f);x&&Object.defineProperty(v,f,x.get?x:{enumerable:!0,get:()=>c[f]})}}}return Object.freeze(Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}))}var R={exports:{}},Q;function ir(){return Q||(Q=1,(function(v,F){(function(y,c){v.exports=c()})(self,(()=>(()=>{var y={575:function(i,l,s){typeof self<"u"||typeof window<"u"||s.g!==void 0&&s.g,i.exports=(function(){var g,u="3.7.7",t=u,n=typeof Buffer=="function",C=typeof TextDecoder=="function"?new TextDecoder:void 0,B=typeof TextEncoder=="function"?new TextEncoder:void 0,p=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),h=(g={},p.forEach((function(r,e){return g[r]=e})),g),U=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,o=String.fromCharCode.bind(String),D=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):function(r){return new Uint8Array(Array.prototype.slice.call(r,0))},z=function(r){return r.replace(/=/g,"").replace(/[+\/]/g,(function(e){return e=="+"?"-":"_"}))},Z=function(r){return r.replace(/[^A-Za-z0-9\+\/]/g,"")},$=function(r){for(var e,a,b,m,d="",E=r.length%3,T=0;T<r.length;){if((a=r.charCodeAt(T++))>255||(b=r.charCodeAt(T++))>255||(m=r.charCodeAt(T++))>255)throw new TypeError("invalid character found");d+=p[(e=a<<16|b<<8|m)>>18&63]+p[e>>12&63]+p[e>>6&63]+p[63&e]}return E?d.slice(0,E-3)+"===".substring(E):d},P=typeof btoa=="function"?function(r){return btoa(r)}:n?function(r){return Buffer.from(r,"binary").toString("base64")}:$,O=n?function(r){return Buffer.from(r).toString("base64")}:function(r){for(var e=[],a=0,b=r.length;a<b;a+=4096)e.push(o.apply(null,r.subarray(a,a+4096)));return P(e.join(""))},w=function(r,e){return e===void 0&&(e=!1),e?z(O(r)):O(r)},X=function(r){if(r.length<2)return(e=r.charCodeAt(0))<128?r:e<2048?o(192|e>>>6)+o(128|63&e):o(224|e>>>12&15)+o(128|e>>>6&63)+o(128|63&e);var e=65536+1024*(r.charCodeAt(0)-55296)+(r.charCodeAt(1)-56320);return o(240|e>>>18&7)+o(128|e>>>12&63)+o(128|e>>>6&63)+o(128|63&e)},Y=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,I=function(r){return r.replace(Y,X)},L=n?function(r){return Buffer.from(r,"utf8").toString("base64")}:B?function(r){return O(B.encode(r))}:function(r){return P(I(r))},A=function(r,e){return e===void 0&&(e=!1),e?z(L(r)):L(r)},V=function(r){return A(r,!0)},rr=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,er=function(r){switch(r.length){case 4:var e=((7&r.charCodeAt(0))<<18|(63&r.charCodeAt(1))<<12|(63&r.charCodeAt(2))<<6|63&r.charCodeAt(3))-65536;return o(55296+(e>>>10))+o(56320+(1023&e));case 3:return o((15&r.charCodeAt(0))<<12|(63&r.charCodeAt(1))<<6|63&r.charCodeAt(2));default:return o((31&r.charCodeAt(0))<<6|63&r.charCodeAt(1))}},k=function(r){return r.replace(rr,er)},q=function(r){if(r=r.replace(/\s+/g,""),!U.test(r))throw new TypeError("malformed base64.");r+="==".slice(2-(3&r.length));for(var e,a,b,m="",d=0;d<r.length;)e=h[r.charAt(d++)]<<18|h[r.charAt(d++)]<<12|(a=h[r.charAt(d++)])<<6|(b=h[r.charAt(d++)]),m+=a===64?o(e>>16&255):b===64?o(e>>16&255,e>>8&255):o(e>>16&255,e>>8&255,255&e);return m},j=typeof atob=="function"?function(r){return atob(Z(r))}:n?function(r){return Buffer.from(r,"base64").toString("binary")}:q,M=n?function(r){return D(Buffer.from(r,"base64"))}:function(r){return D(j(r).split("").map((function(e){return e.charCodeAt(0)})))},N=function(r){return M(H(r))},tr=n?function(r){return Buffer.from(r,"base64").toString("utf8")}:C?function(r){return C.decode(M(r))}:function(r){return k(j(r))},H=function(r){return Z(r.replace(/[-_]/g,(function(e){return e=="-"?"+":"/"})))},S=function(r){return tr(H(r))},G=function(r){return{value:r,enumerable:!1,writable:!0,configurable:!0}},J=function(){var r=function(e,a){return Object.defineProperty(String.prototype,e,G(a))};r("fromBase64",(function(){return S(this)})),r("toBase64",(function(e){return A(this,e)})),r("toBase64URI",(function(){return A(this,!0)})),r("toBase64URL",(function(){return A(this,!0)})),r("toUint8Array",(function(){return N(this)}))},K=function(){var r=function(e,a){return Object.defineProperty(Uint8Array.prototype,e,G(a))};r("toBase64",(function(e){return w(this,e)})),r("toBase64URI",(function(){return w(this,!0)})),r("toBase64URL",(function(){return w(this,!0)}))},_={version:u,VERSION:t,atob:j,atobPolyfill:q,btoa:P,btoaPolyfill:$,fromBase64:S,toBase64:A,encode:A,encodeURI:V,encodeURL:V,utob:I,btou:k,decode:S,isValid:function(r){if(typeof r!="string")return!1;var e=r.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},fromUint8Array:w,toUint8Array:N,extendString:J,extendUint8Array:K,extendBuiltins:function(){J(),K()},Base64:{}};return Object.keys(_).forEach((function(r){return _.Base64[r]=_[r]})),_})()}},c={};function f(i){var l=c[i];if(l!==void 0)return l.exports;var s=c[i]={exports:{}};return y[i].call(s.exports,s,s.exports,f),s.exports}f.g=(function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}})();var x={};return(()=>{var i=x;Object.defineProperty(i,"__esModule",{value:!0}),i.Base64=i.BrowserClipboardProvider=i.ClipboardAddon=void 0;const l=f(575);i.ClipboardAddon=class{constructor(u=new g,t=new s){this._base64=u,this._provider=t}activate(u){this._terminal=u,this._disposable=u.parser.registerOscHandler(52,(t=>this._setOrReportClipboard(t)))}dispose(){return this._disposable?.dispose()}_readText(u,t){const n=this._base64.encodeText(t);this._terminal?.input(`\x1B]52;${u};${n}\x07`,!1)}_setOrReportClipboard(u){const t=u.split(";");if(t.length<2)return!0;const n=t[0],C=t[1];if(C==="?"){const h=this._provider.readText(n);return h instanceof Promise?h.then((U=>(this._readText(n,U),!0))):(this._readText(n,h),!0)}let B="";try{B=this._base64.decodeText(C)}catch{}const p=this._provider.writeText(n,B);return!(p instanceof Promise)||p.then((()=>!0))}};class s{async readText(t){return t!=="c"?Promise.resolve(""):navigator.clipboard.readText()}async writeText(t,n){return t!=="c"?Promise.resolve():navigator.clipboard.writeText(n)}}i.BrowserClipboardProvider=s;class g{encodeText(t){return l.Base64.encode(t)}decodeText(t){const n=l.Base64.decode(t);return l.Base64.isValid(t)&&l.Base64.encode(n)===t?n:""}}i.Base64=g})(),x})()))})(R)),R.exports}var W=ir();const ar=nr(W),cr=or({__proto__:null,default:ar},[W]);export{cr as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g}from"./index-
|
|
1
|
+
import{g}from"./index-PA-IFoA6.js";function _(i,s){for(var o=0;o<s.length;o++){const t=s[o];if(typeof t!="string"&&!Array.isArray(t)){for(const e in t)if(e!=="default"&&!(e in i)){const r=Object.getOwnPropertyDescriptor(t,e);r&&Object.defineProperty(i,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var a={exports:{}},d;function y(){return d||(d=1,(function(i,s){(function(o,t){i.exports=t()})(self,(()=>(()=>{var o={};return(()=>{var t=o;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const r=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(r._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core,r=e._renderService.dimensions;if(r.css.cell.width===0||r.css.cell.height===0)return;const c=this._terminal.options.scrollback===0?0:e.viewport.scrollBarWidth,l=window.getComputedStyle(this._terminal.element.parentElement),m=parseInt(l.getPropertyValue("height")),u=Math.max(0,parseInt(l.getPropertyValue("width"))),n=window.getComputedStyle(this._terminal.element),h=m-(parseInt(n.getPropertyValue("padding-top"))+parseInt(n.getPropertyValue("padding-bottom"))),f=u-(parseInt(n.getPropertyValue("padding-right"))+parseInt(n.getPropertyValue("padding-left")))-c;return{cols:Math.max(2,Math.floor(f/r.css.cell.width)),rows:Math.max(1,Math.floor(h/r.css.cell.height))}}}})(),o})()))})(a)),a.exports}var p=y();const w=g(p),x=_({__proto__:null,default:w},[p]);export{x as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as O}from"./index-
|
|
1
|
+
import{g as O}from"./index-PA-IFoA6.js";function j(b,k){for(var _=0;_<k.length;_++){const l=k[_];if(typeof l!="string"&&!Array.isArray(l)){for(const u in l)if(u!=="default"&&!(u in b)){const L=Object.getOwnPropertyDescriptor(l,u);L&&Object.defineProperty(b,u,L.get?L:{enumerable:!0,get:()=>l[u]})}}}return Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}var w={exports:{}},C;function A(){return C||(C=1,(function(b,k){(function(_,l){b.exports=l()})(self,(()=>(()=>{var _={6:(p,d)=>{function h(s){try{const e=new URL(s),t=e.password&&e.username?`${e.protocol}//${e.username}:${e.password}@${e.host}`:e.username?`${e.protocol}//${e.username}@${e.host}`:`${e.protocol}//${e.host}`;return s.toLocaleLowerCase().startsWith(t.toLocaleLowerCase())}catch{return!1}}Object.defineProperty(d,"__esModule",{value:!0}),d.LinkComputer=d.WebLinkProvider=void 0,d.WebLinkProvider=class{constructor(s,e,t,r={}){this._terminal=s,this._regex=e,this._handler=t,this._options=r}provideLinks(s,e){const t=f.computeLink(s,this._regex,this._terminal,this._handler);e(this._addCallbacks(t))}_addCallbacks(s){return s.map((e=>(e.leave=this._options.leave,e.hover=(t,r)=>{if(this._options.hover){const{range:c}=e;this._options.hover(t,r,c)}},e)))}};class f{static computeLink(e,t,r,c){const g=new RegExp(t.source,(t.flags||"")+"g"),[n,o]=f._getWindowedLineStrings(e-1,r),i=n.join("");let a;const x=[];for(;a=g.exec(i);){const v=a[0];if(!h(v))continue;const[m,W]=f._mapStrIdx(r,o,0,a.index),[y,P]=f._mapStrIdx(r,m,W,v.length);if(m===-1||W===-1||y===-1||P===-1)continue;const $={start:{x:W+1,y:m+1},end:{x:P,y:y+1}};x.push({range:$,text:v,activate:c})}return x}static _getWindowedLineStrings(e,t){let r,c=e,g=e,n=0,o="";const i=[];if(r=t.buffer.active.getLine(e)){const a=r.translateToString(!0);if(r.isWrapped&&a[0]!==" "){for(n=0;(r=t.buffer.active.getLine(--c))&&n<2048&&(o=r.translateToString(!0),n+=o.length,i.push(o),r.isWrapped&&o.indexOf(" ")===-1););i.reverse()}for(i.push(a),n=0;(r=t.buffer.active.getLine(++g))&&r.isWrapped&&n<2048&&(o=r.translateToString(!0),n+=o.length,i.push(o),o.indexOf(" ")===-1););}return[i,c]}static _mapStrIdx(e,t,r,c){const g=e.buffer.active,n=g.getNullCell();let o=r;for(;c;){const i=g.getLine(t);if(!i)return[-1,-1];for(let a=o;a<i.length;++a){i.getCell(a,n);const x=n.getChars();if(n.getWidth()&&(c-=x.length||1,a===i.length-1&&x==="")){const v=g.getLine(t+1);v&&v.isWrapped&&(v.getCell(0,n),n.getWidth()===2&&(c+=1))}if(c<0)return[t,a]}t++,o=0}return[t,o]}}d.LinkComputer=f}},l={};function u(p){var d=l[p];if(d!==void 0)return d.exports;var h=l[p]={exports:{}};return _[p](h,h.exports,u),h.exports}var L={};return(()=>{var p=L;Object.defineProperty(p,"__esModule",{value:!0}),p.WebLinksAddon=void 0;const d=u(6),h=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function f(s,e){const t=window.open();if(t){try{t.opener=null}catch{}t.location.href=e}else console.warn("Opening link blocked as opener could not be cleared")}p.WebLinksAddon=class{constructor(s=f,e={}){this._handler=s,this._options=e}activate(s){this._terminal=s;const e=this._options,t=e.urlRegex||h;this._linkProvider=this._terminal.registerLinkProvider(new d.WebLinkProvider(this._terminal,t,this._handler,e))}dispose(){this._linkProvider?.dispose()}}})(),L})()))})(w)),w.exports}var S=A();const T=O(S),E=j({__proto__:null,default:T},[S]);export{E as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{H as ln,I as un,J as Q,K as I,L as K,M as an,N as y,O as tn,P as j,Q as _,R as rn,S as o,T as on,V as sn,W as fn}from"./mermaid.core-
|
|
1
|
+
import{H as ln,I as un,J as Q,K as I,L as K,M as an,N as y,O as tn,P as j,Q as _,R as rn,S as o,T as on,V as sn,W as fn}from"./mermaid.core-CaXNMz57.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,q,O,v,R,L,u){var D=q-l,i=O-h,n=L-v,d=u-R,a=d*D-n*i;if(!(a*a<y))return a=(n*(h-R)-d*(l-v))/a,[l+a*D,h+a*i]}function U(l,h,q,O,v,R,L){var u=l-q,D=h-O,i=(L?R:-R)/j(u*u+D*D),n=i*D,d=-i*u,a=l+n,s=h+d,f=q+n,c=O+d,M=(a+f)/2,t=(s+c)/2,m=f-a,g=c-s,A=m*m+g*g,T=v-R,P=a*c-f*s,E=(g<0?-1:1)*j(on(0,T*T*A-P*P)),H=(P*g-m*E)/A,J=(-P*m-g*E)/A,w=(P*g+m*E)/A,p=(-P*m+g*E)/A,x=H-M,e=J-t,r=w-M,N=p-t;return x*x+e*e>r*r+N*N&&(H=w,J=p),{cx:H,cy:J,x01:-n,y01:-d,x11:H*(v/T-1),y11:J*(v/T-1)}}function hn(){var l=cn,h=yn,q=K(0),O=null,v=gn,R=dn,L=mn,u=null,D=ln(i);function i(){var n,d,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=R.apply(this,arguments)-an,M=rn(c-f),t=c>f;if(u||(u=n=D()),s<a&&(d=s,s=a,a=d),!(s>y))u.moveTo(0,0);else if(M>tn-y)u.moveTo(s*Q(f),s*I(f)),u.arc(0,0,s,f,c,!t),a>y&&(u.moveTo(a*Q(c),a*I(c)),u.arc(0,0,a,c,f,t));else{var m=f,g=c,A=f,T=c,P=M,E=M,H=L.apply(this,arguments)/2,J=H>y&&(O?+O.apply(this,arguments):j(a*a+s*s)),w=_(rn(s-a)/2,+q.apply(this,arguments)),p=w,x=w,e,r;if(J>y){var N=sn(J/a*I(H)),z=sn(J/s*I(H));(P-=N*2)>y?(N*=t?1:-1,A+=N,T-=N):(P=0,A=T=(f+c)/2),(E-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(E=0,m=g=(f+c)/2)}var V=s*Q(m),W=s*I(m),B=a*Q(T),C=a*I(T);if(w>y){var F=s*Q(g),G=s*I(g),X=a*Q(A),Y=a*I(A),S;if(M<un)if(S=pn(V,W,X,Y,F,G,B,C)){var Z=V-S[0],$=W-S[1],k=F-S[0],b=G-S[1],nn=1/I(fn((Z*k+$*b)/(j(Z*Z+$*$)*j(k*k+b*b)))/2),en=j(S[0]*S[0]+S[1]*S[1]);p=_(w,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}E>y?x>y?(e=U(X,Y,V,W,s,x,t),r=U(F,G,B,C,s,x,t),u.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),u.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(u.moveTo(V,W),u.arc(0,0,s,m,g,!t)):u.moveTo(V,W),!(a>y)||!(P>y)?u.lineTo(B,C):p>y?(e=U(B,C,F,G,a,-p,t),r=U(V,W,X,Y,a,-p,t),u.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?u.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(u.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),u.arc(0,0,a,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),u.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):u.arc(0,0,a,T,A,t)}if(u.closePath(),n)return u=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +R.apply(this,arguments))/2-un/2;return[Q(d)*n,I(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:K(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:K(+n),i):h},i.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:K(+n),i):q},i.padRadius=function(n){return arguments.length?(O=n==null?null:typeof n=="function"?n:K(+n),i):O},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:K(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:K(+n),i):R},i.padAngle=function(n){return arguments.length?(L=typeof n=="function"?n:K(+n),i):L},i.context=function(n){return arguments.length?(u=n??null,i):u},i}export{hn as d};
|