@seele00/seele 0.1.62 → 0.1.64
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 +5 -3
- package/bin/seele-codex +1 -1
- package/libexec/seele-server +0 -0
- package/libexec/seele-worker +0 -0
- package/package.json +1 -4
- package/scripts/deploy/bootstrap.sh +14 -3
- package/scripts/deploy/start.sh +14 -9
- package/web/dist/assets/{abnfDiagram-VRR7QNED-C27SRgYn.js → abnfDiagram-VRR7QNED-BB7DT0BN.js} +1 -1
- package/web/dist/assets/{arc-BLFRhUaz.js → arc-BlEU_mit.js} +1 -1
- package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-BRpQ8Ba3.js → architectureDiagram-ZJ3FMSHR-Dy9cu2Mg.js} +1 -1
- package/web/dist/assets/{blockDiagram-677ZJIJ3-DtsQ29xK.js → blockDiagram-677ZJIJ3-DP4jMSfo.js} +1 -1
- package/web/dist/assets/{c4Diagram-LMCZKHZV-CZaNmUNL.js → c4Diagram-LMCZKHZV-BtqFzX1w.js} +1 -1
- package/web/dist/assets/channel-mhSuRKJT.js +1 -0
- package/web/dist/assets/{chunk-2Q5K7J3B-cQiQ-E1I.js → chunk-2Q5K7J3B-BK9F5a0L.js} +1 -1
- package/web/dist/assets/{chunk-32BRIVSS-CPDxlAQv.js → chunk-32BRIVSS-nuQI6gtU.js} +1 -1
- package/web/dist/assets/{chunk-5VM5RSS4-DTn8bn6H.js → chunk-5VM5RSS4-D4IT05bt.js} +1 -1
- package/web/dist/assets/{chunk-EX3LRPZG-CGTMVwvK.js → chunk-EX3LRPZG-CrOtgxcr.js} +1 -1
- package/web/dist/assets/{chunk-JWPE2WC7-B8lN39tq.js → chunk-JWPE2WC7-Dn9JHm4W.js} +1 -1
- package/web/dist/assets/{chunk-MOJQB5TN-r5Giok6q.js → chunk-MOJQB5TN-VtD0_fGF.js} +1 -1
- package/web/dist/assets/{chunk-RYQCIY6F-B9eR4Leb.js → chunk-RYQCIY6F-TqRYsCot.js} +1 -1
- package/web/dist/assets/{chunk-V7JOEXUC-oERI0iwz.js → chunk-V7JOEXUC-U9b5a7vL.js} +1 -1
- package/web/dist/assets/{chunk-VR4S4FIN-Cyss78sW.js → chunk-VR4S4FIN-B3qLfeNJ.js} +1 -1
- package/web/dist/assets/{chunk-XXDRQBXY-C-hnVjcO.js → chunk-XXDRQBXY-DazVAZe-.js} +1 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-DYQSxD4g.js +1 -0
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-DYQSxD4g.js +1 -0
- package/web/dist/assets/{core-DUCVYIny.js → core-2RdBW0rZ.js} +1 -1
- package/web/dist/assets/{cose-bilkent-JH36ORCC-Cp5rFhN_.js → cose-bilkent-JH36ORCC-vvKttQXU.js} +1 -1
- package/web/dist/assets/{cynefin-VYW2F7L2-C_n3xUj_.js → cynefin-VYW2F7L2-BKMZmA-n.js} +1 -1
- package/web/dist/assets/{cynefinDiagram-TSTJHNR4-rYMMhgyb.js → cynefinDiagram-TSTJHNR4-ckdzxzlr.js} +1 -1
- package/web/dist/assets/{dagre-VKFMJZFB-HtKt2FwL.js → dagre-VKFMJZFB-CZw8DTb1.js} +1 -1
- package/web/dist/assets/{diagram-FQU43EPY-C1zpKI-f.js → diagram-FQU43EPY-C06X0Kru.js} +1 -1
- package/web/dist/assets/{diagram-G47NLZAW-CY9j5lGI.js → diagram-G47NLZAW-HX9CdauD.js} +1 -1
- package/web/dist/assets/{diagram-NH7WQ7WH-DjCOnwak.js → diagram-NH7WQ7WH-Dlo1tIod.js} +1 -1
- package/web/dist/assets/{diagram-OA4YK3LP-Cql-rffP.js → diagram-OA4YK3LP-C9GXFhgw.js} +1 -1
- package/web/dist/assets/{diagram-WEI45ONY-rRly0vVm.js → diagram-WEI45ONY-Ch1Xx234.js} +1 -1
- package/web/dist/assets/{ebnfDiagram-CCIWWBDH-BAYZWZqr.js → ebnfDiagram-CCIWWBDH-Q0_rEUgk.js} +1 -1
- package/web/dist/assets/{erDiagram-Q63AITRT-C7iO875g.js → erDiagram-Q63AITRT-BsDRdpx6.js} +1 -1
- package/web/dist/assets/{flowDiagram-23GEKE2U-DFKMsCRA.js → flowDiagram-23GEKE2U-DDFuMRJN.js} +1 -1
- package/web/dist/assets/{ganttDiagram-NO4QXBWP-Mev75LwN.js → ganttDiagram-NO4QXBWP-Cjpm08-d.js} +1 -1
- package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-5b8yO7Hv.js → gitGraphDiagram-IHSO6WYX-CnIosh2K.js} +1 -1
- package/web/dist/assets/index-C3hMCVKa.css +1 -0
- package/web/dist/assets/index-eN6ddNRA.js +111 -0
- package/web/dist/assets/{infoDiagram-FWYZ7A6U-DF7cz4Bb.js → infoDiagram-FWYZ7A6U-CH163HyC.js} +1 -1
- package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-_-HcRRFu.js → ishikawaDiagram-FXEZZL3T-DkT-3n3D.js} +1 -1
- package/web/dist/assets/{journeyDiagram-5HDEW3XC-C5S0d80U.js → journeyDiagram-5HDEW3XC-34TnH3wG.js} +1 -1
- package/web/dist/assets/{kanban-definition-HUTT4EX6-x0ZKsvs1.js → kanban-definition-HUTT4EX6-CJbOm0lN.js} +1 -1
- package/web/dist/assets/{linear-BxdXHQta.js → linear-CTKXTLwe.js} +1 -1
- package/web/dist/assets/{mermaid.core-0jGtM-Ax.js → mermaid.core-CAVP16_-.js} +4 -4
- package/web/dist/assets/{mindmap-definition-LN4V7U3C-CXtIJ6rh.js → mindmap-definition-LN4V7U3C-rlppHZj_.js} +1 -1
- package/web/dist/assets/{pegDiagram-2B236MQR-Bba722y-.js → pegDiagram-2B236MQR-MbcWBNJi.js} +1 -1
- package/web/dist/assets/{pieDiagram-ENE6RG2P-Dw9hDQva.js → pieDiagram-ENE6RG2P-DKU7a4tv.js} +1 -1
- package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-BXyxqO5i.js → quadrantDiagram-ABIIQ3AL-DpDsJVLi.js} +1 -1
- package/web/dist/assets/{railroadDiagram-RFXS5EU6-DsSRZk_N.js → railroadDiagram-RFXS5EU6-DrPM3aKC.js} +1 -1
- package/web/dist/assets/{requirementDiagram-TGXJPOKE-BoTFfiBB.js → requirementDiagram-TGXJPOKE-ZzS_iVag.js} +1 -1
- package/web/dist/assets/{sankeyDiagram-HTMAVEWB-DQnuwyRU.js → sankeyDiagram-HTMAVEWB-DrRrN0Lc.js} +1 -1
- package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-Bcg4IJ37.js → sequenceDiagram-DBY2YBRQ-CP8GBGZM.js} +1 -1
- package/web/dist/assets/{sizeCapture-X5ZJPWSS-B0oCnnaA.js → sizeCapture-X5ZJPWSS-BYVg_dQd.js} +1 -1
- package/web/dist/assets/{stateDiagram-2N3HPSRC-IQLfeYrV.js → stateDiagram-2N3HPSRC-CsJ3M80-.js} +1 -1
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-CaFOY1Xb.js +1 -0
- package/web/dist/assets/{swimlanes-5IMT3BWC-D7rUiyaJ.js → swimlanes-5IMT3BWC-XgRKQ20Q.js} +2 -2
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-DaKP_iDy.js +8 -0
- package/web/dist/assets/{timeline-definition-FHXFAJF6-B74HbTfz.js → timeline-definition-FHXFAJF6-CU_Cq10d.js} +1 -1
- package/web/dist/assets/{vennDiagram-L72KCM5P-ClgXw411.js → vennDiagram-L72KCM5P-CLSDbg6o.js} +1 -1
- package/web/dist/assets/{wardleyDiagram-EHGQE667-BrdBwQVz.js → wardleyDiagram-EHGQE667-DnAOuvzv.js} +1 -1
- package/web/dist/assets/{xychartDiagram-FW5EYKEG-CbJCOgwj.js → xychartDiagram-FW5EYKEG-CyC6V11l.js} +1 -1
- package/web/dist/index.html +2 -2
- package/codex/dist/app-server.js +0 -63
- package/codex/dist/errors.js +0 -16
- package/codex/dist/index.js +0 -4
- package/codex/dist/rpc-client.js +0 -96
- package/codex/dist/transports/stdio.js +0 -81
- package/codex/dist/types.js +0 -1
- package/codex/package.json +0 -12
- package/scripts/deploy/npm/postinstall.mjs +0 -10
- package/server/dist/auth/session.js +0 -71
- package/server/dist/auth/users.js +0 -276
- package/server/dist/codex-runtime/run-streamed-turn.js +0 -587
- package/server/dist/config/config.js +0 -71
- package/server/dist/contracts/artifact-rendering.js +0 -14
- package/server/dist/contracts/global-environment.js +0 -23
- package/server/dist/contracts/index.js +0 -114
- package/server/dist/contracts/managed-assets.js +0 -13
- package/server/dist/contracts/response-style.js +0 -23
- package/server/dist/contracts/task-clarification.js +0 -13
- package/server/dist/contracts/types.js +0 -1
- package/server/dist/contracts/wakeup.js +0 -13
- package/server/dist/contracts/workspace-boundary.js +0 -20
- package/server/dist/contracts/workspace-knowledge.js +0 -48
- package/server/dist/contracts/workspace-memory.js +0 -32
- package/server/dist/contracts/workspace-responsibility.js +0 -23
- package/server/dist/contracts/workspace-transcript.js +0 -26
- package/server/dist/conversations/knowledge.js +0 -380
- package/server/dist/conversations/store.js +0 -2376
- package/server/dist/doctor.js +0 -105
- package/server/dist/realtime/sse.js +0 -12
- package/server/dist/runtime-worker/client.js +0 -405
- package/server/dist/runtime-worker/process.js +0 -216
- package/server/dist/runtime-worker/protocol.js +0 -1
- package/server/dist/server.js +0 -4579
- package/server/dist/storage/sqlite.js +0 -39
- package/web/dist/assets/channel-CJkDcalu.js +0 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-eUFTtX--.js +0 -1
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-eUFTtX--.js +0 -1
- package/web/dist/assets/index-B04o0cQL.css +0 -1
- package/web/dist/assets/index-rTGpFn5F.js +0 -111
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-D4f8IYjw.js +0 -1
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-DP_Y6cFW.js +0 -8
package/README.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Seele Codex npm Package
|
|
2
2
|
|
|
3
|
-
This package is the prebuilt Linux x64 Seele service.
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
This package is the prebuilt Linux x64 Seele service. Its backend is the Rust
|
|
4
|
+
`seele-server`/`seele-worker` runtime, statically linked against musl so it does
|
|
5
|
+
not depend on the target host's glibc version. Node.js 24 LTS and npm are
|
|
6
|
+
retained for installing and updating the Seele-managed Codex CLI; the target
|
|
7
|
+
host does not need Rust, pnpm, TypeScript, or Vite.
|
|
6
8
|
|
|
7
9
|
The web output is path-independent. `SEELE_PUBLIC_BASE_PATH` selects the public
|
|
8
10
|
path when the service starts; changing it does not require another build.
|
package/bin/seele-codex
CHANGED
|
@@ -39,7 +39,7 @@ case "$COMMAND" in
|
|
|
39
39
|
;;
|
|
40
40
|
doctor)
|
|
41
41
|
export SEELE_CODEX_WEB_DIST="${SEELE_CODEX_WEB_DIST:-$PACKAGE_ROOT/web/dist}"
|
|
42
|
-
exec
|
|
42
|
+
exec "$PACKAGE_ROOT/libexec/seele-server" doctor "$@"
|
|
43
43
|
;;
|
|
44
44
|
env-example)
|
|
45
45
|
printf '%s\n' "$PACKAGE_ROOT/scripts/deploy/seele.env.example"
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seele00/seele",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.64",
|
|
4
4
|
"description": "Browser UI and server runtime for Seele Codex",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -17,8 +17,5 @@
|
|
|
17
17
|
"bin": {
|
|
18
18
|
"seele": "bin/seele-codex",
|
|
19
19
|
"seele-codex": "bin/seele-codex"
|
|
20
|
-
},
|
|
21
|
-
"scripts": {
|
|
22
|
-
"postinstall": "node scripts/deploy/npm/postinstall.mjs"
|
|
23
20
|
}
|
|
24
21
|
}
|
|
@@ -102,9 +102,12 @@ write_codex_config
|
|
|
102
102
|
authenticate_codex "$AUTH_MODE"
|
|
103
103
|
|
|
104
104
|
if [ "$SKIP_BUILD" -eq 0 ]; then
|
|
105
|
+
ensure_rust
|
|
105
106
|
ensure_pnpm
|
|
106
107
|
pnpm install --frozen-lockfile
|
|
107
|
-
pnpm build
|
|
108
|
+
pnpm --filter @seele-codex/web build
|
|
109
|
+
cargo build --locked --release --manifest-path "$ROOT_DIR/Cargo.toml" \
|
|
110
|
+
-p seele-server -p seele-worker
|
|
108
111
|
fi
|
|
109
112
|
|
|
110
113
|
cat <<EOF
|
|
@@ -167,6 +170,13 @@ ensure_node() {
|
|
|
167
170
|
node -e 'const major = Number(process.versions.node.split(".")[0]); if (major !== 24) { console.error(`Node.js 24 LTS is required. Current: ${process.version}`); process.exit(1); }'
|
|
168
171
|
}
|
|
169
172
|
|
|
173
|
+
ensure_rust() {
|
|
174
|
+
if ! command -v cargo >/dev/null 2>&1; then
|
|
175
|
+
echo "Rust/Cargo is required to build Seele from source." >&2
|
|
176
|
+
exit 1
|
|
177
|
+
fi
|
|
178
|
+
}
|
|
179
|
+
|
|
170
180
|
ensure_pnpm() {
|
|
171
181
|
if command -v pnpm >/dev/null 2>&1; then
|
|
172
182
|
return
|
|
@@ -233,7 +243,8 @@ ensure_codex_cli() {
|
|
|
233
243
|
local architecture
|
|
234
244
|
platform="$(node -p 'process.platform')"
|
|
235
245
|
architecture="$(node -p 'process.arch')"
|
|
236
|
-
local
|
|
246
|
+
local version_key="$version-$platform-$architecture"
|
|
247
|
+
local version_dir="$versions_dir/$version_key"
|
|
237
248
|
if [ -e "$version_dir" ]; then
|
|
238
249
|
if [ ! -x "$version_dir/bin/codex" ] || [ "$("$version_dir/bin/codex" --version)" != "$version_output" ]; then
|
|
239
250
|
echo "Existing Codex CLI version directory is invalid: $version_dir" >&2
|
|
@@ -246,7 +257,7 @@ ensure_codex_cli() {
|
|
|
246
257
|
|
|
247
258
|
local current_next="$codex_root/current.next-$$"
|
|
248
259
|
local launcher_next="$CODEX_INSTALL_DIR/codex.next-$$"
|
|
249
|
-
ln -s "versions/$
|
|
260
|
+
ln -s "versions/$version_key" "$current_next"
|
|
250
261
|
replace_path_atomically "$current_next" "$codex_root/current"
|
|
251
262
|
ln -s "../codex/current/bin/codex" "$launcher_next"
|
|
252
263
|
replace_path_atomically "$launcher_next" "$CODEX_INSTALL_DIR/codex"
|
package/scripts/deploy/start.sh
CHANGED
|
@@ -4,12 +4,6 @@ set -euo pipefail
|
|
|
4
4
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
5
5
|
cd "$ROOT_DIR"
|
|
6
6
|
|
|
7
|
-
if ! command -v node >/dev/null 2>&1; then
|
|
8
|
-
echo "node is required. Install Node.js 24 LTS before starting Seele." >&2
|
|
9
|
-
exit 1
|
|
10
|
-
fi
|
|
11
|
-
node -e 'const major = Number(process.versions.node.split(".")[0]); if (major !== 24) { console.error(`Node.js 24 LTS is required. Current: ${process.version}`); process.exit(1); }'
|
|
12
|
-
|
|
13
7
|
ENV_FILE=""
|
|
14
8
|
|
|
15
9
|
while [ "$#" -gt 0 ]; do
|
|
@@ -65,10 +59,19 @@ if [ ! -x "$CODEX_INSTALL_DIR/codex" ]; then
|
|
|
65
59
|
exit 1
|
|
66
60
|
fi
|
|
67
61
|
|
|
68
|
-
|
|
62
|
+
SERVER_BIN="${SEELE_SERVER_BIN:-$ROOT_DIR/libexec/seele-server}"
|
|
63
|
+
WORKER_BIN="${SEELE_WORKER_BIN:-$ROOT_DIR/libexec/seele-worker}"
|
|
64
|
+
if [ ! -x "$SERVER_BIN" ] && [ -x "$ROOT_DIR/target/release/seele-server" ]; then
|
|
65
|
+
SERVER_BIN="$ROOT_DIR/target/release/seele-server"
|
|
66
|
+
fi
|
|
67
|
+
if [ ! -x "$WORKER_BIN" ] && [ -x "$ROOT_DIR/target/release/seele-worker" ]; then
|
|
68
|
+
WORKER_BIN="$ROOT_DIR/target/release/seele-worker"
|
|
69
|
+
fi
|
|
70
|
+
if [ ! -x "$SERVER_BIN" ] || [ ! -x "$WORKER_BIN" ] || [ ! -f "$SEELE_CODEX_WEB_DIST/index.html" ]; then
|
|
69
71
|
echo "Build output is missing. Run ./scripts/deploy/bootstrap.sh first." >&2
|
|
70
72
|
exit 1
|
|
71
73
|
fi
|
|
74
|
+
export SEELE_WORKER_BIN="$WORKER_BIN"
|
|
72
75
|
|
|
73
76
|
# Prepare the local no-auth proxy entrypoint when an upstream proxy with
|
|
74
77
|
# credentials is configured. Codex's models-refresh / MCP HTTP clients send a
|
|
@@ -94,8 +97,10 @@ fi
|
|
|
94
97
|
mkdir -p "$CODEX_HOME"
|
|
95
98
|
mkdir -p "$SEELE_CODEX_WORKSPACE_ROOT"
|
|
96
99
|
|
|
97
|
-
echo "Starting Seele
|
|
100
|
+
echo "Starting Seele on http://$SEELE_CODEX_HOST:$SEELE_CODEX_PORT"
|
|
98
101
|
echo "Codex home: $CODEX_HOME"
|
|
99
102
|
echo "Workspace root: $SEELE_CODEX_WORKSPACE_ROOT"
|
|
103
|
+
echo "Server runtime: $SERVER_BIN"
|
|
104
|
+
echo "Worker runtime: $SEELE_WORKER_BIN"
|
|
100
105
|
|
|
101
|
-
exec
|
|
106
|
+
exec "$SERVER_BIN"
|
package/web/dist/assets/{abnfDiagram-VRR7QNED-C27SRgYn.js → abnfDiagram-VRR7QNED-BB7DT0BN.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-VtD0_fGF.js";import{p as f}from"./chunk-JWPE2WC7-Dn9JHm4W.js";import{_ as n,l as o}from"./mermaid.core-CAVP16_-.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-BKMZmA-n.js";import"./index-eN6ddNRA.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 ln,H as un,I as N,J as I,K as J,L as an,M as y,N as tn,O as j,P as _,Q as rn,R as o,S as on,T as sn,V as fn}from"./mermaid.core-
|
|
1
|
+
import{G as ln,H as un,I as N,J as I,K as J,L as an,M as y,N as tn,O as j,P as _,Q as rn,R as o,S as on,T as sn,V as fn}from"./mermaid.core-CAVP16_-.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,K,u){var D=q-l,i=O-h,n=K-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 W(l,h,q,O,v,R,K){var u=l-q,D=h-O,i=(K?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,L=(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)),G=(P*g-m*E)/A,H=(-P*m-g*E)/A,w=(P*g+m*E)/A,p=(-P*m+g*E)/A,x=G-L,e=H-t,r=w-L,M=p-t;return x*x+e*e>r*r+M*M&&(G=w,H=p),{cx:G,cy:H,x01:-n,y01:-d,x11:G*(v/T-1),y11:H*(v/T-1)}}function hn(){var l=cn,h=yn,q=J(0),O=null,v=gn,R=dn,K=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,L=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(L>tn-y)u.moveTo(s*N(f),s*I(f)),u.arc(0,0,s,f,c,!t),a>y&&(u.moveTo(a*N(c),a*I(c)),u.arc(0,0,a,c,f,t));else{var m=f,g=c,A=f,T=c,P=L,E=L,G=K.apply(this,arguments)/2,H=G>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(H>y){var M=sn(H/a*I(G)),z=sn(H/s*I(G));(P-=M*2)>y?(M*=t?1:-1,A+=M,T-=M):(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 Q=s*N(m),V=s*I(m),B=a*N(T),C=a*I(T);if(w>y){var F=s*N(g),U=s*I(g),X=a*N(A),Y=a*I(A),S;if(L<un)if(S=pn(Q,V,X,Y,F,U,B,C)){var Z=Q-S[0],$=V-S[1],k=F-S[0],b=U-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=W(X,Y,Q,V,s,x,t),r=W(F,U,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(Q,V),u.arc(0,0,s,m,g,!t)):u.moveTo(Q,V),!(a>y)||!(P>y)?u.lineTo(B,C):p>y?(e=W(B,C,F,U,a,-p,t),r=W(Q,V,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[N(d)*n,I(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:J(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:J(+n),i):h},i.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:J(+n),i):q},i.padRadius=function(n){return arguments.length?(O=n==null?null:typeof n=="function"?n:J(+n),i):O},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:J(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:J(+n),i):R},i.padAngle=function(n){return arguments.length?(K=typeof n=="function"?n:J(+n),i):K},i.context=function(n){return arguments.length?(u=n??null,i):u},i}export{hn as d};
|