syntaur 0.4.0 → 0.4.2
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/README.md +218 -54
- package/dashboard/dist/assets/{_basePickBy-BhaCV7eH.js → _basePickBy-CWivToyi.js} +1 -1
- package/dashboard/dist/assets/{_baseUniq-CDPcqrs2.js → _baseUniq-C-qj6E4l.js} +1 -1
- package/dashboard/dist/assets/{arc-BP0RxLwl.js → arc-Dn5BIqMa.js} +1 -1
- package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-BDzvaeJp.js → architectureDiagram-2XIMDMQ5-D5D0K7rY.js} +1 -1
- package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-ZeL9mROo.js → blockDiagram-WCTKOSBZ-DVmYPMbu.js} +1 -1
- package/dashboard/dist/assets/{c4Diagram-IC4MRINW-7S5bvFLp.js → c4Diagram-IC4MRINW-BEasxbnl.js} +1 -1
- package/dashboard/dist/assets/channel-DqU_8tiy.js +1 -0
- package/dashboard/dist/assets/{chunk-4BX2VUAB-Ca7R4nv5.js → chunk-4BX2VUAB-LDIrtI5E.js} +1 -1
- package/dashboard/dist/assets/{chunk-55IACEB6-flEv13FB.js → chunk-55IACEB6-CaEBUJYu.js} +1 -1
- package/dashboard/dist/assets/{chunk-FMBD7UC4-CfcYWBM6.js → chunk-FMBD7UC4-B-GjCpdr.js} +1 -1
- package/dashboard/dist/assets/{chunk-JSJVCQXG-Dw4yL0VS.js → chunk-JSJVCQXG-BLVVcezm.js} +1 -1
- package/dashboard/dist/assets/{chunk-KX2RTZJC-B2cDe40G.js → chunk-KX2RTZJC-DqCNEw4h.js} +1 -1
- package/dashboard/dist/assets/{chunk-NQ4KR5QH-LZVm0IWg.js → chunk-NQ4KR5QH-BCPbFf5I.js} +1 -1
- package/dashboard/dist/assets/{chunk-QZHKN3VN-Dg0EeHNI.js → chunk-QZHKN3VN-Ci0C85q_.js} +1 -1
- package/dashboard/dist/assets/{chunk-WL4C6EOR-v3rXNwXc.js → chunk-WL4C6EOR-VVhAMMYU.js} +1 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-D29Eeoe8.js +1 -0
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-D29Eeoe8.js +1 -0
- package/dashboard/dist/assets/clone-Bok8Q3Jj.js +1 -0
- package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-D-3JzLoS.js → cose-bilkent-S5V4N54A-CO9uwgYO.js} +1 -1
- package/dashboard/dist/assets/{dagre-KLK3FWXG-d_mbczhU.js → dagre-KLK3FWXG-bwLLXcL4.js} +1 -1
- package/dashboard/dist/assets/{diagram-E7M64L7V-BUyAp8pW.js → diagram-E7M64L7V-RuS5R6V1.js} +1 -1
- package/dashboard/dist/assets/{diagram-IFDJBPK2-C8doXcyQ.js → diagram-IFDJBPK2-BQDJAHQd.js} +1 -1
- package/dashboard/dist/assets/{diagram-P4PSJMXO-BUSmHa55.js → diagram-P4PSJMXO-yLEsgzE5.js} +1 -1
- package/dashboard/dist/assets/{erDiagram-INFDFZHY-Bn5_0LPU.js → erDiagram-INFDFZHY-na6dUhY0.js} +1 -1
- package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-CnEjerQM.js → flowDiagram-PKNHOUZH-BIcrzwJR.js} +1 -1
- package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-CL94fbyy.js → ganttDiagram-A5KZAMGK-DHWRJn-D.js} +1 -1
- package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-4i_PeG8V.js → gitGraphDiagram-K3NZZRJ6-LGxDjL71.js} +1 -1
- package/dashboard/dist/assets/{graph-BtoFhoAd.js → graph-BUqNu277.js} +1 -1
- package/dashboard/dist/assets/{index-Dv_-SxuL.js → index-D-fepllQ.js} +3 -3
- package/dashboard/dist/assets/index-DnHyQJJH.css +1 -0
- package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-CdUsuNgZ.js → infoDiagram-LFFYTUFH-DidoA2hb.js} +1 -1
- package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-BjggRlUx.js → ishikawaDiagram-PHBUUO56-CdlZkbhV.js} +1 -1
- package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-V4AgexlR.js → journeyDiagram-4ABVD52K-luhcz_gn.js} +1 -1
- package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-ChlylQRf.js → kanban-definition-K7BYSVSG-Coidw9XE.js} +1 -1
- package/dashboard/dist/assets/{layout-DLcz9AmA.js → layout-_aBAAleE.js} +1 -1
- package/dashboard/dist/assets/{linear-l2xnSHze.js → linear-D8mFnDSx.js} +1 -1
- package/dashboard/dist/assets/{mermaid.core-DKO1ytRW.js → mermaid.core-BpP2keU-.js} +4 -4
- package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-DTmTPHrT.js → mindmap-definition-YRQLILUH-LjvrTe2z.js} +1 -1
- package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-CwK80y8Y.js → pieDiagram-SKSYHLDU-CkA2iU6e.js} +1 -1
- package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-Be1xqW_w.js → quadrantDiagram-337W2JSQ-BRmhKHQG.js} +1 -1
- package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-JcspXCs0.js → requirementDiagram-Z7DCOOCP-BYCQ4uFX.js} +1 -1
- package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-nJb1BInq.js → sankeyDiagram-WA2Y5GQK-C8SVk50M.js} +1 -1
- package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-DUrclEgA.js → sequenceDiagram-2WXFIKYE-CbA_2lnP.js} +1 -1
- package/dashboard/dist/assets/{stateDiagram-RAJIS63D-CjinnNtF.js → stateDiagram-RAJIS63D-D6ZtjAHE.js} +1 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-DeYN4wV6.js +1 -0
- package/dashboard/dist/assets/{timeline-definition-YZTLITO2-kM-oVLNz.js → timeline-definition-YZTLITO2-B2Uf-emK.js} +1 -1
- package/dashboard/dist/assets/{treemap-KZPCXAKY-CYziFlrQ.js → treemap-KZPCXAKY-CYnFKsuJ.js} +1 -1
- package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-DX0DbxBN.js → vennDiagram-LZ73GAT5-Cnj0qiDO.js} +1 -1
- package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-BGqM42ZM.js → xychartDiagram-JWTSCODW-BJy2mbL9.js} +1 -1
- package/dashboard/dist/index.html +4 -4
- package/dist/index.js +380 -149
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/scripts/postinstall-submodules.mjs +40 -0
- package/statusline/statusline.sh +166 -46
- package/dashboard/dist/assets/channel-CcB_wcgb.js +0 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-BJr38z2g.js +0 -1
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-BJr38z2g.js +0 -1
- package/dashboard/dist/assets/clone-Cfs2GUGt.js +0 -1
- package/dashboard/dist/assets/index-DZUGYrvE.css +0 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-yfclw-nM.js +0 -1
package/README.md
CHANGED
|
@@ -1,128 +1,292 @@
|
|
|
1
1
|
# Syntaur
|
|
2
2
|
|
|
3
|
-
Syntaur is a local
|
|
3
|
+
Syntaur is a local project and assignment workflow for coding agents. It ships a CLI, a dashboard, a Claude Code plugin, and a Codex plugin.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
Requirements:
|
|
5
|
+
## Requirements
|
|
8
6
|
|
|
9
7
|
- Node.js 20+
|
|
10
|
-
- `npx`
|
|
8
|
+
- `npm` 7+ (ships with Node 20); `npx` is used for zero-install runs
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
Two supported install styles. Both pull the same package from npm; the only difference is whether the `syntaur` binary lives on your `$PATH` or inside npm's cache.
|
|
15
|
+
|
|
16
|
+
### Option A — `npx` (no global install)
|
|
11
17
|
|
|
12
|
-
|
|
18
|
+
Best for trying Syntaur once, or for users who don't want anything on their `$PATH`.
|
|
13
19
|
|
|
14
20
|
```bash
|
|
15
|
-
npx syntaur@latest
|
|
21
|
+
npx syntaur@latest # first run: initializes ~/.syntaur/ and walks setup
|
|
22
|
+
npx syntaur@latest dashboard
|
|
23
|
+
npx syntaur@latest doctor
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Every `npx syntaur@latest <cmd>` resolves against the npm registry (so you stay up to date), then runs from the cache at `~/.npm/_npx/<hash>/`. The CLI is not on your `$PATH` — you must type `npx syntaur@latest ...` each time.
|
|
27
|
+
|
|
28
|
+
### Option B — Global install
|
|
29
|
+
|
|
30
|
+
Best for day-to-day use. You can run `syntaur ...` directly.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install -g syntaur
|
|
34
|
+
syntaur # first run: initializes ~/.syntaur/ and walks setup
|
|
35
|
+
syntaur dashboard
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
To upgrade: `npm install -g syntaur@latest`.
|
|
39
|
+
|
|
40
|
+
### Option C — Upgrade from `npx` to global
|
|
41
|
+
|
|
42
|
+
If you start on `npx`, the CLI notices and offers to install globally on the first interactive run:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
You're running syntaur via npx. Install it globally for faster startup?
|
|
46
|
+
1) Yes — install now
|
|
47
|
+
2) Maybe later — just start it for now
|
|
48
|
+
3) Never — don't ask again
|
|
16
49
|
```
|
|
17
50
|
|
|
18
|
-
|
|
51
|
+
- **1** runs `npm install -g syntaur` for you and records the decision in `~/.syntaur/npx-install.json`.
|
|
52
|
+
- **2** does nothing permanent; you'll be asked again on the next `npx` run.
|
|
53
|
+
- **3** writes `decision: never` to that same state file so the prompt never reappears.
|
|
19
54
|
|
|
20
|
-
|
|
55
|
+
The prompt is automatically suppressed when:
|
|
21
56
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
57
|
+
- stdin or stdout isn't a TTY (piped commands, CI)
|
|
58
|
+
- the invocation is a meta command (`--help`, `--version`, `help`)
|
|
59
|
+
- `SYNTAUR_SKIP_INSTALL_PROMPT=1` is set
|
|
60
|
+
- `~/.syntaur/npx-install.json` already records a decision
|
|
61
|
+
|
|
62
|
+
To re-trigger the prompt after you've dismissed it, delete the state file:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
rm ~/.syntaur/npx-install.json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
If you're already globally installed and later run a newer `npx syntaur@latest`, the CLI instead offers to upgrade your global install to match.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## First-Run Setup
|
|
73
|
+
|
|
74
|
+
The first time you run `syntaur` or `npx syntaur@latest`, it walks through:
|
|
75
|
+
|
|
76
|
+
1. Initialize `~/.syntaur/` (config, SQLite session registry, playbooks dir)
|
|
77
|
+
2. Offer to install the Claude Code plugin (copies vendored protocol skills into `~/.claude/skills/` too)
|
|
78
|
+
3. Offer to install the Codex plugin (copies vendored protocol skills into `~/.codex/skills/` too)
|
|
79
|
+
4. Ask where those plugins should live, with sensible defaults based on your machine
|
|
26
80
|
5. Offer to launch the dashboard
|
|
27
81
|
|
|
28
|
-
|
|
82
|
+
Run setup explicitly any time:
|
|
29
83
|
|
|
30
84
|
```bash
|
|
31
|
-
npx syntaur@latest setup
|
|
85
|
+
syntaur setup # or: npx syntaur@latest setup
|
|
32
86
|
```
|
|
33
87
|
|
|
34
|
-
Non-interactive setup:
|
|
88
|
+
Non-interactive setup (useful in dotfile bootstrap scripts):
|
|
35
89
|
|
|
36
90
|
```bash
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
91
|
+
syntaur setup --yes
|
|
92
|
+
syntaur setup --yes --claude
|
|
93
|
+
syntaur setup --yes --codex
|
|
94
|
+
syntaur setup --yes --dashboard
|
|
41
95
|
```
|
|
42
96
|
|
|
43
|
-
|
|
97
|
+
---
|
|
44
98
|
|
|
45
|
-
|
|
99
|
+
## What Gets Installed Where
|
|
46
100
|
|
|
47
|
-
|
|
101
|
+
A full install (CLI + both plugins + skills) touches the following locations:
|
|
48
102
|
|
|
49
|
-
|
|
103
|
+
| Location | What lives there | Managed by |
|
|
104
|
+
|---|---|---|
|
|
105
|
+
| `~/.syntaur/` | Your data: `projects/`, `assignments/`, `playbooks/`, `config.md`, `syntaur.db` | You (via CLI). Never deleted by `syntaur uninstall` unless `--all` is passed. |
|
|
106
|
+
| `~/.syntaur/npx-install.json` | Remembers your answer to the "install globally?" prompt | CLI |
|
|
107
|
+
| `~/.npm/_npx/<hash>/` | npx-cached copy of the `syntaur` package | npm |
|
|
108
|
+
| `$(npm root -g)/syntaur/` | Globally-installed copy of the `syntaur` package | `npm install -g` |
|
|
109
|
+
| `~/.claude/plugins/.../syntaur/` | Claude Code plugin directory (slash commands, hooks, agent, marketplace entry) | `syntaur install-plugin` |
|
|
110
|
+
| `~/.claude/skills/<skill>/` | Protocol skills (six of them) | `syntaur install-plugin` copies from the vendored `syntaur-skills` |
|
|
111
|
+
| `~/.codex/plugins/syntaur/` (or chosen dir) | Codex plugin directory (`track-session` skill, hooks) | `syntaur install-codex-plugin` |
|
|
112
|
+
| `~/.codex/skills/<skill>/` | Protocol skills (same six) | `syntaur install-codex-plugin` copies from the vendored `syntaur-skills` |
|
|
113
|
+
| `~/.agents/plugins/marketplace.json` | Codex marketplace entry | `syntaur install-codex-plugin` |
|
|
114
|
+
| `<repo>/.syntaur/context.json` | Per-workspace agent context (current assignment, session id, transcript path) | Written by the `grab-assignment` skill and SessionStart hooks |
|
|
115
|
+
|
|
116
|
+
### Plugin install paths
|
|
117
|
+
|
|
118
|
+
Syntaur remembers the plugin install locations you choose in `~/.syntaur/config.md`. For Claude Code, Syntaur will detect the machine's local plugin marketplace when one exists and recommend installing into that marketplace's `plugins/` directory.
|
|
119
|
+
|
|
120
|
+
Interactive install (prompts for paths):
|
|
50
121
|
|
|
51
122
|
```bash
|
|
52
|
-
|
|
53
|
-
|
|
123
|
+
syntaur install-plugin
|
|
124
|
+
syntaur install-codex-plugin
|
|
54
125
|
```
|
|
55
126
|
|
|
56
|
-
|
|
127
|
+
Explicit paths:
|
|
57
128
|
|
|
58
129
|
```bash
|
|
59
|
-
|
|
60
|
-
|
|
130
|
+
syntaur install-plugin --target-dir ~/.claude/plugins/marketplaces/user-plugins/plugins/syntaur
|
|
131
|
+
syntaur install-codex-plugin \
|
|
61
132
|
--target-dir ~/plugins/syntaur \
|
|
62
133
|
--marketplace-path ~/.agents/plugins/marketplace.json
|
|
63
134
|
```
|
|
64
135
|
|
|
65
|
-
Setup
|
|
136
|
+
Setup accepts the same overrides:
|
|
66
137
|
|
|
67
138
|
```bash
|
|
68
|
-
|
|
69
|
-
--claude \
|
|
70
|
-
--
|
|
71
|
-
--codex \
|
|
72
|
-
--codex-dir ~/plugins/syntaur \
|
|
139
|
+
syntaur setup \
|
|
140
|
+
--claude --claude-dir ~/.claude/plugins/marketplaces/user-plugins/plugins/syntaur \
|
|
141
|
+
--codex --codex-dir ~/plugins/syntaur \
|
|
73
142
|
--codex-marketplace-path ~/.agents/plugins/marketplace.json
|
|
74
143
|
```
|
|
75
144
|
|
|
145
|
+
---
|
|
146
|
+
|
|
76
147
|
## Common Commands
|
|
77
148
|
|
|
78
149
|
```bash
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
150
|
+
syntaur dashboard
|
|
151
|
+
syntaur create-project "My First Project"
|
|
152
|
+
syntaur create-assignment "Implement feature" --project my-first-project
|
|
153
|
+
syntaur doctor
|
|
154
|
+
syntaur uninstall
|
|
155
|
+
syntaur uninstall --all
|
|
85
156
|
```
|
|
86
157
|
|
|
158
|
+
Any of these can be prefixed with `npx syntaur@latest` if you chose not to install globally.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
87
162
|
## Protocol Skills
|
|
88
163
|
|
|
89
164
|
The six protocol skills (`syntaur-protocol`, `grab-assignment`, `plan-assignment`, `complete-assignment`, `create-assignment`, `create-project`) are maintained in a separate agent-agnostic repo — [`prong-horn/syntaur-skills`](https://github.com/prong-horn/syntaur-skills) — and vendored into this repo as a git submodule at `vendor/syntaur-skills/`.
|
|
90
165
|
|
|
91
|
-
`syntaur install-plugin` and `syntaur install-codex-plugin` automatically copy them into `~/.claude/skills/` or `~/.codex/skills
|
|
166
|
+
`syntaur install-plugin` and `syntaur install-codex-plugin` automatically copy them into `~/.claude/skills/` or `~/.codex/skills/`. Per-skill copy behavior:
|
|
167
|
+
|
|
168
|
+
- **Target absent** → skill is installed.
|
|
169
|
+
- **Target matches the vendored version byte-for-byte** → no-op.
|
|
170
|
+
- **Target differs (you edited it)** → skill is preserved and you get a warning. Pass `--force-skills` to overwrite.
|
|
92
171
|
|
|
93
|
-
To
|
|
172
|
+
To manage the skills without touching the plugin:
|
|
94
173
|
|
|
95
174
|
```bash
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
175
|
+
syntaur install-plugin --skip-skills # install plugin, leave ~/.claude/skills alone
|
|
176
|
+
syntaur install-plugin --force-skills # overwrite any user-edited skills
|
|
177
|
+
syntaur uninstall-skills --all # remove the 6 skills from both dirs
|
|
178
|
+
syntaur uninstall-skills --claude # only ~/.claude/skills
|
|
179
|
+
syntaur uninstall-skills --codex # only ~/.codex/skills
|
|
99
180
|
```
|
|
100
181
|
|
|
101
|
-
|
|
182
|
+
`uninstall-skills` is safe: it only removes a skill directory if its `SKILL.md` `name:` field matches one of the six protocol skills we ship. A user-authored skill that happens to share a directory name is left alone.
|
|
183
|
+
|
|
184
|
+
For non-Claude, non-Codex agents (Cursor, OpenCode, etc.), install the skills directly from the standalone repo:
|
|
102
185
|
|
|
103
186
|
```bash
|
|
104
187
|
npx skills add prong-horn/syntaur-skills
|
|
105
188
|
```
|
|
106
189
|
|
|
107
|
-
|
|
190
|
+
Installing both the `syntaur` plugin AND `npx skills add prong-horn/syntaur-skills` on the same machine is safe — the names match exactly, and per-file detection prevents double-install.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Upgrade
|
|
195
|
+
|
|
196
|
+
| Install style | Command |
|
|
197
|
+
|---|---|
|
|
198
|
+
| Global | `npm install -g syntaur@latest` |
|
|
199
|
+
| npx | Nothing to do — `npx syntaur@latest ...` always consults the registry. To force a refetch: `rm -rf ~/.npm/_npx` |
|
|
200
|
+
| Mixed | `syntaur` (global) stays pinned; `npx syntaur@latest` uses whatever's live. The CLI will prompt to upgrade the global install when the npx version is newer. |
|
|
108
201
|
|
|
109
|
-
|
|
202
|
+
When you upgrade, the vendored skills under `~/.claude/skills/` and `~/.codex/skills/` are NOT automatically re-copied. Run `syntaur install-plugin` / `syntaur install-codex-plugin` again to refresh them (it'll skip any you've edited unless you pass `--force-skills`).
|
|
203
|
+
|
|
204
|
+
---
|
|
110
205
|
|
|
111
206
|
## Uninstall
|
|
112
207
|
|
|
113
|
-
|
|
208
|
+
Two levels, matching the install. **Neither deletes your projects or assignments unless you explicitly pass `--all`.**
|
|
209
|
+
|
|
210
|
+
### Standard uninstall — keep your data
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
syntaur uninstall
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Removes:
|
|
217
|
+
|
|
218
|
+
- Claude Code plugin directory + marketplace entry
|
|
219
|
+
- Codex plugin directory + marketplace entry
|
|
220
|
+
- Pointers to those locations in `~/.syntaur/config.md`
|
|
221
|
+
|
|
222
|
+
Preserves: `~/.syntaur/` (projects, assignments, syntaur.db, playbooks, config), all skills under `~/.claude/skills/` and `~/.codex/skills/`, and the `syntaur` CLI itself.
|
|
223
|
+
|
|
224
|
+
To also remove the installed protocol skills:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
syntaur uninstall-skills --all
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
To also uninstall the CLI:
|
|
114
231
|
|
|
115
232
|
```bash
|
|
116
|
-
|
|
233
|
+
npm uninstall -g syntaur # if globally installed
|
|
234
|
+
rm -rf ~/.npm/_npx # if you want to clear npx cache too
|
|
117
235
|
```
|
|
118
236
|
|
|
119
|
-
|
|
237
|
+
### Full uninstall — delete everything including data
|
|
120
238
|
|
|
121
239
|
```bash
|
|
122
|
-
|
|
240
|
+
syntaur uninstall --all
|
|
123
241
|
```
|
|
124
242
|
|
|
125
|
-
If your config points
|
|
243
|
+
Removes everything above **plus** `~/.syntaur/` (projects, assignments, database, playbooks, config). If your config points project storage somewhere outside `~/.syntaur`, Syntaur will warn and leave that external directory alone — you're responsible for removing it yourself.
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Fresh Reinstall Without Losing Data
|
|
248
|
+
|
|
249
|
+
If you want to completely reset the installation while keeping all projects and assignments:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
# 1. Safety backup (optional but recommended)
|
|
253
|
+
cp -a ~/.syntaur ~/.syntaur.backup-$(date +%Y%m%d)
|
|
254
|
+
# or: syntaur backup (if you've configured the GitHub backup)
|
|
255
|
+
|
|
256
|
+
# 2. Remove skills from both agent dirs
|
|
257
|
+
syntaur uninstall-skills --all
|
|
258
|
+
|
|
259
|
+
# 3. Remove plugins + marketplace entries (but keep ~/.syntaur/)
|
|
260
|
+
syntaur uninstall
|
|
261
|
+
|
|
262
|
+
# 4. Remove the CLI
|
|
263
|
+
npm uninstall -g syntaur # global install path
|
|
264
|
+
rm -f ~/.syntaur/npx-install.json # lets the "install globally?" prompt re-fire
|
|
265
|
+
|
|
266
|
+
# 5. Fresh install
|
|
267
|
+
npm install -g syntaur@latest # or stay on npx and skip this
|
|
268
|
+
|
|
269
|
+
# 6. Reinstall plugins + skills
|
|
270
|
+
syntaur install-plugin
|
|
271
|
+
syntaur install-codex-plugin
|
|
272
|
+
syntaur doctor
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Your projects, assignments, syntaur.db, playbooks, and config.md all survive the cycle. Live agent sessions won't get the new SessionStart hook until you close and reopen them.
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Troubleshooting
|
|
280
|
+
|
|
281
|
+
Run `syntaur doctor` to diagnose inconsistent state (missing files, stale manifests, hook block, schema drift). Pass `--json` for structured output suitable for agents. The `/doctor-syntaur` slash command in the Claude Code plugin wraps it with interactive remediation.
|
|
282
|
+
|
|
283
|
+
Common issues:
|
|
284
|
+
|
|
285
|
+
- **"Error: no such column: project_slug"** — pre-v0.2.0 database. Upgrade to the latest `syntaur` (0.3.1+) — the auto-migration runs on next init.
|
|
286
|
+
- **Plugin installed but Claude Code doesn't see slash commands** — re-run `syntaur install-plugin` and restart Claude Code. Check `~/.claude/plugins/marketplaces/` has a `user-plugins` (or equivalent) marketplace entry.
|
|
287
|
+
- **Skills missing in Claude Code after plugin install** — verify `ls ~/.claude/skills/` shows the six protocol skills. If empty, re-run `syntaur install-plugin --force-skills`.
|
|
288
|
+
- **`npx syntaur` keeps asking to install globally** — choose "3) Never", or `export SYNTAUR_SKIP_INSTALL_PROMPT=1`.
|
|
289
|
+
- **Want to revert the global install to the published version** — `npm run untry` in the syntaur repo, which runs `npm unlink -g syntaur && npm install -g syntaur@latest`.
|
|
126
290
|
|
|
127
291
|
## Development
|
|
128
292
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as x,c as O,g as m,k as P,h as p,j as w,l as c,m as A,n as I,t as N,o as _}from"./_baseUniq-
|
|
1
|
+
import{e as x,c as O,g as m,k as P,h as p,j as w,l as c,m as A,n as I,t as N,o as _}from"./_baseUniq-C-qj6E4l.js";import{aT as g,aC as $,aU as E,aV as F,aW as M,aX as l,aY as T,aZ as B,a_ as y,a$ as S}from"./mermaid.core-BpP2keU-.js";var C=/\s/;function G(n){for(var r=n.length;r--&&C.test(n.charAt(r)););return r}var H=/^\s+/;function L(n){return n&&n.slice(0,G(n)+1).replace(H,"")}var o=NaN,R=/^[-+]0x[0-9a-f]+$/i,W=/^0b[01]+$/i,X=/^0o[0-7]+$/i,Y=parseInt;function q(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=L(n);var t=W.test(n);return t||X.test(n)?Y(n.slice(2),t?2:8):R.test(n)?o:+n}var v=1/0,z=17976931348623157e292;function K(n){if(!n)return n===0?n:0;if(n=q(n),n===v||n===-v){var r=n<0?-1:1;return r*z}return n===n?n:0}function U(n){var r=K(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?O(n):[]}var b=Object.prototype,Z=b.hasOwnProperty,dn=$(function(n,r){n=Object(n);var t=-1,i=r.length,a=i>2?r[2]:void 0;for(a&&E(r[0],r[1],a)&&(i=1);++t<i;)for(var f=r[t],e=F(f),s=-1,d=e.length;++s<d;){var u=e[s],h=n[u];(h===void 0||M(h,b[u])&&!Z.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function D(n){return function(r,t,i){var a=Object(r);if(!l(r)){var f=m(t);r=P(r),t=function(s){return f(a[s],s,a)}}var e=n(r,t,i);return e>-1?a[f?r[e]:e]:void 0}}var J=Math.max;function Q(n,r,t){var i=n==null?0:n.length;if(!i)return-1;var a=t==null?0:U(t);return a<0&&(a=J(i+a,0)),p(n,m(r),a)}var hn=D(Q);function V(n,r){var t=-1,i=l(n)?Array(n.length):[];return w(n,function(a,f,e){i[++t]=r(a,f,e)}),i}function gn(n,r){var t=T(n)?c:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var i=-1,a=n.length;++i<a;){var f=n[i],e=r(f);if(e!=null&&(s===void 0?e===e&&!x(e):t(e,s)))var s=e,d=f}return d}function on(n){return n&&n.length?tn(n,B,rn):void 0}function an(n,r,t,i){if(!g(n))return n;r=I(r,n);for(var a=-1,f=r.length,e=f-1,s=n;s!=null&&++a<f;){var d=N(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=e){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:y(r[a+1])?[]:{})}S(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var i=-1,a=r.length,f={};++i<a;){var e=r[i],s=_(n,e);t(s,e)&&an(f,I(e,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,U as j,un as l,gn as m,K as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bg as S,bh as Rn,aY as T,bi as w,aX as sn,bj as xn,bk as mn,bl as Cn,bm as un,bn as x,aV as B,bo as Mn,bp as on,bq as Fn,br as E,be as gn,bs as R,aT as ln,bt as Dn,bu as D,bv as Gn,bw as Bn,bx as _,a$ as Un,by as Nn,aW as Kn,bz as X,bA as jn,bB as Hn,a_ as qn,aZ as cn,bc as Yn,bC as C}from"./mermaid.core-DKO1ytRW.js";var Zn="[object Symbol]";function U(n){return typeof n=="symbol"||S(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(U(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||U(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Cn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||U(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,B(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Mn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,B,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Cr="[object ArrayBuffer]",Mr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Br="[object Int16Array]",Ur="[object Int32Array]",Nr="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function qr(n,r,e){var t=n.constructor;switch(r){case Cr:return on(n);case Er:case Ir:return new t(+n);case Mr:return Or(n,e);case Fr:case Dr:case Gr:case Br:case Ur:case Nr:case Kr:case jr:case Hr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Sr(n)}}var Yr="[object Map]";function Zr(n){return S(n)&&E(n)==Yr}var nn=R&&R.isMap,Xr=nn?gn(nn):Zr,Jr="[object Set]";function Qr(n){return S(n)&&E(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function M(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!f){if(a=u||c?{}:Bn(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=qr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(M(d,r,e,d,n,i))}):Xr(n)&&n.forEach(function(d,p){a.set(p,M(d,r,e,p,n,i))});var A=b?u?yr:G:u?B:$,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Un(a,p,M(d,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Nn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,f,i){var a=e&Pe,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Ie(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Ce="[object Date]",Me="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Be="[object Set]",Ue="[object String]",Ne="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case me:case Ce:case De:return Kn(+n,+r);case Me:return n.name==r.name&&n.message==r.message;case Ge:case Ue:return n==r+"";case Fe:var s=Le;case Be:var u=tℜif(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=In(s(n),s(r),t,f,i,a);return a.delete(n),l;case Ne:if(F)return F.call(n)==F.call(r)}return!1}var qe=1,Ye=Object.prototype,Ze=Ye.hasOwnProperty;function Xe(n,r,e,t,f,i){var a=e&qe,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Je=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Qe=Object.prototype,an=Qe.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),b=s?fn:E(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?In(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Je)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new _),f(y,d,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,f,i)):!1}function q(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,q,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?q(b,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,Pn(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&qn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return N(n)&&Pn(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):q(r,t,ft|at)}}function ut(n){return function(r){return r==null?void 0:r[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return N(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Yn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Y=ct(lt);function bt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Y;return e(n,bt(r))}function dt(n,r){var e=[];return Y(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,$(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function It(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Y)}var yt=1/0,Tt=C&&1/H(new C([,-0]))[1]==yt?function(n){return new C(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Ie as C,Xn as D,I as S,Pt as a,M as b,Ot as c,$t as d,U as e,_t as f,Ln as g,Jn as h,Et as i,Y as j,$ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,It as r,it as s,m as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
|
|
1
|
+
import{bg as S,bh as Rn,aY as T,bi as w,aX as sn,bj as xn,bk as mn,bl as Cn,bm as un,bn as x,aV as B,bo as Mn,bp as on,bq as Fn,br as E,be as gn,bs as R,aT as ln,bt as Dn,bu as D,bv as Gn,bw as Bn,bx as _,a$ as Un,by as Nn,aW as Kn,bz as X,bA as jn,bB as Hn,a_ as qn,aZ as cn,bc as Yn,bC as C}from"./mermaid.core-BpP2keU-.js";var Zn="[object Symbol]";function U(n){return typeof n=="symbol"||S(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var J=w?w.prototype:void 0,Q=J?J.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(U(n))return Q?Q.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Jn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Qn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Jn(n,Qn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||U(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Cn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||U(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,B(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Mn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,B,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Cr="[object ArrayBuffer]",Mr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Br="[object Int16Array]",Ur="[object Int32Array]",Nr="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function qr(n,r,e){var t=n.constructor;switch(r){case Cr:return on(n);case Er:case Ir:return new t(+n);case Mr:return Or(n,e);case Fr:case Dr:case Gr:case Br:case Ur:case Nr:case Kr:case jr:case Hr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Sr(n)}}var Yr="[object Map]";function Zr(n){return S(n)&&E(n)==Yr}var nn=R&&R.isMap,Xr=nn?gn(nn):Zr,Jr="[object Set]";function Qr(n){return S(n)&&E(n)==Jr}var rn=R&&R.isSet,Wr=rn?gn(rn):Qr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function M(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!f){if(a=u||c?{}:Bn(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=qr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(M(d,r,e,d,n,i))}):Xr(n)&&n.forEach(function(d,p){a.set(p,M(d,r,e,p,n,i))});var A=b?u?yr:G:u?B:$,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Un(a,p,M(d,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Nn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,f,i){var a=e&Pe,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Ie(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Ce="[object Date]",Me="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Be="[object Set]",Ue="[object String]",Ne="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case me:case Ce:case De:return Kn(+n,+r);case Me:return n.name==r.name&&n.message==r.message;case Ge:case Ue:return n==r+"";case Fe:var s=Le;case Be:var u=tℜif(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=In(s(n),s(r),t,f,i,a);return a.delete(n),l;case Ne:if(F)return F.call(n)==F.call(r)}return!1}var qe=1,Ye=Object.prototype,Ze=Ye.hasOwnProperty;function Xe(n,r,e,t,f,i){var a=e&qe,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Je=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Qe=Object.prototype,an=Qe.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),b=s?fn:E(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?In(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Je)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new _),f(y,d,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,f,i)):!1}function q(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,q,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?q(b,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,Pn(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&qn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return N(n)&&Pn(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):q(r,t,ft|at)}}function ut(n){return function(r){return r==null?void 0:r[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return N(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Yn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Y=ct(lt);function bt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Y;return e(n,bt(r))}function dt(n,r){var e=[];return Y(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,$(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function It(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Y)}var yt=1/0,Tt=C&&1/H(new C([,-0]))[1]==yt?function(n){return new C(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Ie as C,Xn as D,I as S,Pt as a,M as b,Ot as c,$t as d,U as e,_t as f,Ln as g,Jn as h,Et as i,Y as j,$ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,It as r,it as s,m as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-
|
|
1
|
+
import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-BpP2keU-.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,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<y))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,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(on(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*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=yn,I=B(0),D=null,v=gn,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>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(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>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),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>y?x>y?(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,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(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};
|