dreamcontext 0.9.2 → 0.10.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 +33 -8
- package/agents/dreamcontext-explore.md +10 -0
- package/agents/sleep-product.md +15 -6
- package/dist/agents/dreamcontext-explore.md +10 -0
- package/dist/agents/sleep-product.md +15 -6
- package/dist/dashboard/assets/{BrainCanvas3D-Czb2UCx5.js → BrainCanvas3D-BuhjqMJE.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-C7bhYu5d.js → _baseUniq-BFywhIrF.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-DTj6PSJF.js → ar-SA-G6X2FPQ2-0wtAtjf3.js} +1 -1
- package/dist/dashboard/assets/{arc-CtAwRj-v.js → arc-CbIZg0XW.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-Be8ao9_h.js → architectureDiagram-Q4EWVU46-DcA2m4dL.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-C7yBzi3o.js → az-AZ-76LH7QW2-DypXzn_9.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-D1hJb5wI.js → bg-BG-XCXSNQG7-DqjNOvWi.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-Bn9SXOUb.js → blockDiagram-DXYQGD6D-DGUYSkmu.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-wh2xv6Ti.js → bn-BD-2XOGV67Q-DMT15vLO.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-C_MLGRXa.js → c4Diagram-AHTNJAMY-D0ureHL0.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-DBkrY3p1.js → ca-ES-6MX7JW3Y-BIf8pakY.js} +1 -1
- package/dist/dashboard/assets/channel-C5uBjxRg.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-EMhGJvza.js → chunk-4BX2VUAB-BpMo9p3D.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-_7FEisTX.js → chunk-4TB4RGXK-BjWqEumI.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-Cz4CusRM.js → chunk-55IACEB6-CoREiws2.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-C5yb7Q9H.js → chunk-EDXVE4YY-DWGx8NFS.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-PlFeuiZ_.js → chunk-FMBD7UC4-BPHXOHEi.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-Bv_6NT0F.js → chunk-OYMX7WX6-Cg-AvRQR.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-BrBdsXuW.js → chunk-QZHKN3VN-oNBf0ZAT.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-DGLXUzMF.js → chunk-YZCP3GAM-BWTEULwI.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-MwUwKREr.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-MwUwKREr.js +1 -0
- package/dist/dashboard/assets/clone-CcQlDA5C.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-BCnFo_-v.js → cose-bilkent-S5V4N54A-CQAtltI5.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-B7f7FtE4.js → cs-CZ-2BRQDIVT-sgLhn2uw.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-DGy-rvZb.js → da-DK-5WZEPLOC-56JnY0Ou.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-C-3lRx-i.js → dagre-KV5264BT-Czzd8AFD.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-CaJWHpe0.js → de-DE-XR44H4JA-CLiIEbrn.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-C4YVbDXp.js → diagram-5BDNPKRD-BYQz4Ej0.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-BuW9zfOU.js → diagram-G4DWMVQ6-Bi69CX9y.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-BkMYjNGf.js → diagram-MMDJMWI5-C9rH4USL.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-DrzHjWok.js → diagram-TYMM5635-CtGy_47Q.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-BiJmW-b5.js → el-GR-BZB4AONW-DLKTMVgu.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-G0UEz6JN.js → erDiagram-SMLLAGMA-DYwZiwiF.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-CwBcKV2z.js → es-ES-U4NZUMDT-B8vUZNzj.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-wG_Vz3Mp.js → eu-ES-A7QVB2H4-DOBpB_xM.js} +1 -1
- package/dist/dashboard/assets/event-BbvoZQ5o.js +1 -0
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-5ydvmmyn.js → fa-IR-HGAKTJCU-BSo8AkJw.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-Wo_BEMPx.js → fi-FI-Z5N7JZ37-IXouAsQf.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-UjoFr5FL.js → flowDiagram-DWJPFMVM-BfsdXM27.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-oa5BKaB_.js → fr-FR-RHASNOE6-Bq41-iWY.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-Btdbfhcj.js → ganttDiagram-T4ZO3ILL-YFxSZdBo.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-CEOTwDOS.js → gitGraphDiagram-UUTBAWPF-CzLILfBF.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-CauOTr6H.js → gl-ES-HMX3MZ6V-kuzaTFsC.js} +1 -1
- package/dist/dashboard/assets/{graph-Dm-hvy_w.js → graph-BOf2JBnY.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-COrYIlQr.js → he-IL-6SHJWFNN-RQ2NxAvm.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-J1Y95ZoC.js → hi-IN-IWLTKZ5I-D9xTaaPK.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-ViGh9Ezw.js → hu-HU-A5ZG7DT2-L1HNbSdl.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-DXl8yZED.js → id-ID-SAP4L64H-B33X72Ml.js} +1 -1
- package/dist/dashboard/assets/index--chDvBkZ.css +32 -0
- package/dist/dashboard/assets/{index-Bib6Q7p5.js → index-B-6R-7Ot.js} +1 -1
- package/dist/dashboard/assets/index-CwZ3YweD.js +582 -0
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-uLVxhokj.js → infoDiagram-42DDH7IO-DTWl9Wxm.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-B0NEYz4G.js → ishikawaDiagram-UXIWVN3A-C0CAoNgB.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-D6Y8YA58.js → it-IT-JPQ66NNP-BK_HSf6M.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-khAPtZRR.js → ja-JP-DBVTYXUO-BRVQwLJ-.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-5qv0pqIB.js → journeyDiagram-VCZTEJTY-CADHnY3u.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-Cwcw-Gjy.js → kaa-6HZHGXH3-CYGgpUSe.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-K6vT6Crh.js → kab-KAB-ZGHBKWFO-LMEkvoCj.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-BRnbjFyn.js → kanban-definition-6JOO6SKY-D1ijOIDj.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-CMu1AFuh.js → kk-KZ-P5N5QNE5-JIbh9_iv.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-L_PHDtZJ.js → km-KH-HSX4SM5Z-CrWx5kgt.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-bbZlnVhP.js → ko-KR-MTYHY66A-BQFjXlBC.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-INvmaG95.js → ku-TR-6OUDTVRD-B6u43c-f.js} +1 -1
- package/dist/dashboard/assets/{layout-BVeohT_Z.js → layout-CVIUlzFz.js} +1 -1
- package/dist/dashboard/assets/{linear-CK10qcFf.js → linear-TmytBUBH.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-D7BRQxtO.js → lt-LT-XHIRWOB4-b8AKF48V.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-Ck1JIxzf.js → lv-LV-5QDEKY6T-CRt75m7a.js} +1 -1
- package/dist/dashboard/assets/{min-BEPU0Hcm.js → min-CMOJsVTV.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-CVF8OPn3.js → mindmap-definition-QFDTVHPH-DkzlAkBW.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-Xa1Wim8s.js → mr-IN-CRQNXWMA-Bw3MaxMe.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-BjkcPsy7.js → my-MM-5M5IBNSE-Dw_tWZWl.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-BEEKgrVR.js → nb-NO-T6EIAALU-Ci_2058Y.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-D9OUhxw4.js → nl-NL-IS3SIHDZ-DYyqePg6.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-DVR3J-3K.js → nn-NO-6E72VCQL-NdjykAxN.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-DC9Nung3.js → oc-FR-POXYY2M6-DPEyc6hx.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-OAnX4pD0.js → pa-IN-N4M65BXN-D_4V8i72.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-oaYJtiEf.js → percentages-BXMCSKIN-4Hgy5SgQ.js} +31 -31
- package/dist/dashboard/assets/{pica-C6ShZVuu.js → pica-D6rAZEqu.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-DiVJdP1C.js → pieDiagram-DEJITSTG-BqsalDEv.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-J_DzzF6i.js → pl-PL-T2D74RX3-CArl0OSe.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-CyKqBQxo.js → pt-BR-5N22H2LF-BlA9u7zY.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-Bgz_pc0Y.js → pt-PT-UZXXM6DQ-ByCcYKU2.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-DnxB-MO_.js → quadrantDiagram-34T5L4WZ-BtnExwNB.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-BGbxrkf8.js → requirementDiagram-MS252O5E-jDWYOtpC.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-DieLjGOA.js → ro-RO-JPDTUUEW-CafHxA38.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-_l3ulIXF.js → ru-RU-B4JR7IUQ-BbJGwp-Z.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-C6Tb_y-j.js → sankeyDiagram-XADWPNL6-BSU4w3_8.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-wi9pOwW3.js → sequenceDiagram-FGHM5R23-DBHLScxa.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-BKKA5LJo.js → si-LK-N5RQ5JYF-eDB0s9B0.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-CD8v__My.js → sk-SK-C5VTKIMK-qaYN0zkE.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-BKlPPNwD.js → sl-SI-NN7IZMDC-BQ4pcyGF.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-CdkAZeqA.js → stateDiagram-FHFEXIEX-DqLkK6dC.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-TpuacwBg.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-CGeJ-F5W.js → subset-shared.chunk-Hm_CkSQB.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-BlVR16kU.js → subset-worker.chunk-YczznLkp.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-C2gDWm3p.js → sv-SE-XGPEYMSR-DD7_8pqE.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-u7A0geQC.js → ta-IN-2NMHFXQM-Dd-RFvWz.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-fovs7iJ8.js → th-TH-HPSO5L25-C7x2tZrZ.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-GtnU7ybD.js → timeline-definition-GMOUNBTQ-DILCBtIX.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-C6fJP9sP.js → tr-TR-DEFEU3FU-BXDs1FJQ.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-D_wHjU_A.js → uk-UA-QMV73CPH-Bp-yEHOn.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-BDFvLaix.js → vennDiagram-DHZGUBPP-CnQH3XJu.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-DifjZgdC.js → vi-VN-M7AON7JQ-DQOsitU7.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-DI8xEOY7.js → wardley-RL74JXVD-FdX4RiE_.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-B3GFPGwx.js → wardleyDiagram-NUSXRM2D-CK4rbC5W.js} +1 -1
- package/dist/dashboard/assets/webviewWindow-BbG9Cr7f.js +1 -0
- package/dist/dashboard/assets/window-DmNpeJAL.js +1 -0
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-CfszNsQx.js → xychartDiagram-5P7HB3ND-B6UGr9Rl.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-DbrqBAD6.js → zh-CN-LNUGB5OW-BMYbdc2b.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-1U0sxcfM.js → zh-HK-E62DVLB3-CCcVgqN7.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-B-B3RQ_b.js → zh-TW-RAJ6MFWO-C52SJlwU.js} +1 -1
- package/dist/dashboard/favicon.svg +14 -9
- package/dist/dashboard/index.html +5 -4
- package/dist/dashboard/logo.png +0 -0
- package/dist/index.js +6635 -935
- package/package.json +8 -2
- package/skill/SKILL.md +10 -9
- package/skill/references/cli-reference.md +4 -2
- package/skill/references/integrations.md +8 -3
- package/skill/references/knowledge-and-recall.md +8 -0
- package/skill/references/sleep.md +12 -12
- package/skill-deep-research/SKILL.md +179 -0
- package/dist/dashboard/assets/channel-Cm_3yJBQ.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-CN3Z7CiL.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-CN3Z7CiL.js +0 -1
- package/dist/dashboard/assets/clone-Cq5lwLPz.js +0 -1
- package/dist/dashboard/assets/index-BvNbWm56.js +0 -484
- package/dist/dashboard/assets/index-rpfoKwNa.css +0 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-fASGsrsv.js +0 -1
- package/dist/dashboard/assets/webviewWindow-Dlc9MvRw.js +0 -1
- package/dist/dashboard/assets/window-D0tFurhp.js +0 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="public/
|
|
2
|
+
<img src="dashboard/public/favicon.svg" alt="dreamcontext" width="96" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
<h1 align="center">
|
|
5
|
+
<h1 align="center">dream<span>context</span></h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
dreamcontext is the persistent brain for your AI agents — and for you.<br/>
|
|
@@ -12,12 +12,18 @@
|
|
|
12
12
|
re-discover context it already had.
|
|
13
13
|
</p>
|
|
14
14
|
|
|
15
|
+
<p align="center">
|
|
16
|
+
<strong>Meet Sleepy</strong> — ask your project's brain in plain language, or search it instantly.<br/>
|
|
17
|
+
Ranked hits, grounded answers, jump-to-source. <strong>Local · instant · no tokens.</strong>
|
|
18
|
+
</p>
|
|
19
|
+
|
|
15
20
|
<p align="center">
|
|
16
21
|
<a href="#why">Why</a> ·
|
|
17
22
|
<a href="#how-it-works">How It Works</a> ·
|
|
18
23
|
<a href="#quick-start">Quick Start</a> ·
|
|
19
24
|
<a href="#skills">Skills</a> ·
|
|
20
25
|
<a href="#staying-up-to-date">Updating</a> ·
|
|
26
|
+
<a href="#sleepy--search--ask-your-brain">Sleepy</a> ·
|
|
21
27
|
<a href="#dashboard">Dashboard</a> ·
|
|
22
28
|
<a href="#desktop-app">Desktop App</a> ·
|
|
23
29
|
<a href="#council">Council</a> ·
|
|
@@ -39,6 +45,18 @@
|
|
|
39
45
|
|
|
40
46
|
---
|
|
41
47
|
|
|
48
|
+
## Sleepy — search & ask your brain
|
|
49
|
+
|
|
50
|
+
**Sleepy** is the front door to your project's brain — the first thing you see in the dashboard. It turns the structured context dreamcontext maintains into something you can interrogate directly:
|
|
51
|
+
|
|
52
|
+
- **Search** — type a query and get instantly-ranked hits across your knowledge, features, tasks, core and memory. Each hit shows the most relevant chunk and jumps straight to the source.
|
|
53
|
+
- **Ask** — pose a question in plain language and Sleepy answers from your own brain, with the source documents cited inline.
|
|
54
|
+
- **Chat** — go deeper with a real, multi-turn conversation: Sleepy runs a **Claude Code** session *inside your vault*, streamed live, so it can read across the whole project to answer follow-ups. It's **read-only by design** — planning permission mode plus disallowed action tools and a guard prompt mean it can never write, edit, or run commands — and you pick the depth: **normal** for fast answers, **intelligent** for harder questions.
|
|
55
|
+
|
|
56
|
+
Search and the extractive Ask run on the same field-weighted **BM25** recall engine as `dreamcontext memory recall` — entirely **local, instant, and zero-token**; nothing is sent to an external model and the answer is grounded in your own files. Chat is the one surface that calls a model, and even then it only ever **reads** your project. The idle view shows your context "in orbit" — knowledge, features, tasks, core and memory circling the dream gem — so you can focus a single type or just start typing.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
42
60
|
## Why
|
|
43
61
|
|
|
44
62
|
AI coding agents are powerful, but they make real mistakes. They fetch entire collections instead of filtering at the query level. They write serverless functions with infinite loop potential. They optimize for making the test pass, not making the system correct.
|
|
@@ -213,6 +231,8 @@ your-project/
|
|
|
213
231
|
│ │ └── SKILL.md # Teaches the agent the system
|
|
214
232
|
│ ├── skills/initializer/
|
|
215
233
|
│ │ └── SKILL.md # Interactive brain bootstrap (drives the initializer-* agents)
|
|
234
|
+
│ ├── skills/dreamcontext-deep-research/
|
|
235
|
+
│ │ └── SKILL.md # Iterative corpus synthesis (fans out dreamcontext-explore searchers)
|
|
216
236
|
│ ├── agents/
|
|
217
237
|
│ │ ├── initializer-scout.md # bootstrap: intake → ingestion manifest
|
|
218
238
|
│ │ ├── initializer-ingestor.md # bootstrap: fan-out write into the hierarchy
|
|
@@ -244,10 +264,11 @@ This writes managed fenced blocks into `CLAUDE.md` and/or `AGENTS.md` at the pro
|
|
|
244
264
|
|
|
245
265
|
The core `dreamcontext` skill (installed by `install-skill`) teaches your agent the context system itself. On top of that, dreamcontext ships **curated skill packs and standalone skills** that give your agent domain expertise — loaded on demand, only when the work calls for it, so they cost nothing the rest of the time.
|
|
246
266
|
|
|
247
|
-
|
|
267
|
+
Three more skills install with the core (no pack needed) and run only when the moment calls for them — each drives its own sub-agents:
|
|
248
268
|
|
|
249
269
|
- **`initializer`** — interactive brain **bootstrap**. It recognizes a missing or sparse `_dream_context/` (or that you're migrating notes from another folder, or loading a large docs export into an existing brain) and ingests whatever you have — a docs folder, an Obsidian/Notion export, ADRs, an old wiki, or just the codebase — into the proper knowledge / feature / task hierarchy (scout → confirm → ingest → verify).
|
|
250
270
|
- **`curator`** — interactive brain **refactor**: the periodic re-organization the conservative sleep cycle won't do. It can MOVE, MERGE, SPLIT, RENAME, RE-TYPE, and RETIRE content to conform the whole brain to current conventions — deduping near-duplicate knowledge (`dreamcontext knowledge merge`), enforcing single-source-of-truth, and normalizing tags (audit → confirm plan → execute → verify).
|
|
271
|
+
- **`dreamcontext-deep-research`** — the heavy, iterative counterpart to the fast `dreamcontext-explore` searcher, for **large / multi-project / federated** brains. When one explore pass comes back thin, the main agent fans out parallel `dreamcontext-explore` searchers across the whole curated corpus **and connected peer vaults**, loops to close gaps, **adversarially verifies** the load-bearing claims, and synthesizes a **cited** report — not raw hits (`/dreamcontext-deep-research`). Read-only; it researches *your brain* the way the generic deep-research skill researches the open web.
|
|
251
272
|
|
|
252
273
|
```bash
|
|
253
274
|
# Browse and install interactively (terminal checkbox UI)
|
|
@@ -333,7 +354,7 @@ It also ships a built-in **“What is this?”** explainer page — a full landi
|
|
|
333
354
|
<tr>
|
|
334
355
|
<td width="50%">
|
|
335
356
|
|
|
336
|
-
**
|
|
357
|
+
**Tasks board** — a drag-and-drop Kanban with **saved views** (each carrying its own persisted filter, sort, and grouping), a two-pane **include/exclude filter** menu (status, priority, tags, version, assignee) with type-ahead search, a **Versions popover** to scope to one or more planning versions, toggleable card **Properties** badges (due date, RICE score, assignees), and an **At-Risk alert** surfacing past-due or blocked tasks. View preferences persist two ways — shared and team-versioned in `overrides/board.json`, or private to your machine in `state/board.local.json` — so they survive the desktop app's per-launch port change. A **sprint-aware version filter** distinguishes current, planning, and released sprints, with set-current / mark-complete actions inline. The same tasks also render along the time axis: a **Timeline (Gantt)** of start→due ranges, a **Calendar**, an **Activity heatmap** of completion cadence, an **Eisenhower matrix** for priority-urgency quadrant planning, and a **RICE** prioritization view. Create tasks, update status, edit start/due dates and custom fields, and add changelog entries from a Notion-style detail panel.
|
|
337
358
|
|
|
338
359
|
</td>
|
|
339
360
|
<td width="50%">
|
|
@@ -368,7 +389,7 @@ It also ships a built-in **“What is this?”** explainer page — a full landi
|
|
|
368
389
|
</tr>
|
|
369
390
|
</table>
|
|
370
391
|
|
|
371
|
-
Light and dark mode with system preference detection. Brand palette:
|
|
392
|
+
The sidebar groups every page into four job-based sections — **Workspace**, **Memory**, **Brain**, and **Control Panel** — under a single dream-gem brand lockup. Light and dark mode with system preference detection. Brand palette: violet, anchored by the folded-diamond dream-gem logo and a two-tone wordmark. Visby CF font with system font fallback.
|
|
372
393
|
|
|
373
394
|
## Desktop App
|
|
374
395
|
|
|
@@ -383,7 +404,7 @@ dreamcontext app status # Show installed app version and state
|
|
|
383
404
|
- **Multi-vault launcher.** The app lists every registered [vault](#federation) and opens each project in its **own window** — multi-vault is multi-window over one shared Node server, with each window pinned to its vault via a request header. A per-project status dot (green up-to-date / yellow needs-update / red folder-gone) lets you run `update` from the UI.
|
|
384
405
|
- **Federation network view.** The launcher also renders your projects as an interactive board (Excalidraw-style cards) where you wire a **reads** relationship by clicking source → target: a violet wire means one project reads another's canonical memory **live** during recall (a reference, never a copy), gated by the target being Readable. A node panel and an always-on "Connections" list spell out in plain language who reads whom, each removable with one click. (Copy-based "sync" is parked on the roadmap — federation only reads, live.)
|
|
385
406
|
- **In-app onboarding, no terminal.** A quiz-style wizard creates a brand-new project (native folder picker) or initializes an existing folder, scaffolds `_dream_context/`, runs `setup`, and best-effort installs the global CLI. It's deterministic and LLM-free; the success screen hands you a prompt to paste into Claude Code for the rich enrichment pass.
|
|
386
|
-
- **Sleepy — notch quick-capture _(beta)_.** A global-hotkey companion that drops a transparent notch panel over whatever you're doing, with an animated mascot whose mood follows your sleep debt. Pick a vault, type a thought, and choose a mode:
|
|
407
|
+
- **Sleepy — notch quick-capture _(beta)_.** Off by default — enable it in dashboard Settings → Sleepy. A global-hotkey companion that drops a transparent notch panel over whatever you're doing, with an animated mascot whose mood follows your sleep debt. Pick a vault, type a thought, and choose a mode:
|
|
387
408
|
- **Learn** — saves the note to project memory, then enriches it.
|
|
388
409
|
- **Ask** — one-shot Q&A about the project; nothing is saved.
|
|
389
410
|
- **Sleep** — triggers a full consolidation cycle for that vault from the notch.
|
|
@@ -620,6 +641,10 @@ dreamcontext knowledge index # List all with descriptions + tags
|
|
|
620
641
|
dreamcontext knowledge index --tag api # Filter by tag
|
|
621
642
|
dreamcontext knowledge tags # List standard tags
|
|
622
643
|
dreamcontext knowledge touch <slug> # Record access (staleness tracking)
|
|
644
|
+
|
|
645
|
+
dreamcontext taxonomy vocab # Canonical faceted tag vocabulary
|
|
646
|
+
dreamcontext taxonomy audit # Surface non-canonical / orphan tags (read-only)
|
|
647
|
+
dreamcontext taxonomy audit --fix # Bulk-normalize alias/normalizable tags → canonical (--dry-run to preview)
|
|
623
648
|
```
|
|
624
649
|
|
|
625
650
|
Set `pinned: true` in frontmatter to auto-load a knowledge file in every snapshot. Knowledge files not accessed in 30+ days are flagged as stale. Recently accessed files appear in a "warm knowledge" tier with first-paragraph previews.
|
|
@@ -785,10 +810,10 @@ dreamcontext install-claude-md # Legacy alias: CLAUDE.md only
|
|
|
785
810
|
|
|
786
811
|
## Works With
|
|
787
812
|
|
|
788
|
-
- **Claude Code**: full support via skill, core sub-agents (initializer, explore, the three primary RemSleep specialists — sleep-tasks, sleep-state, sleep-product — plus conditional sleep-federation and sleep-migration specialists), 7 hooks, plus optional pack sub-agents (council persona/synthesizer, multi-review specialists, goal-skill orchestrators)
|
|
813
|
+
- **Claude Code**: full support via skill, core sub-agents (initializer, explore, the iterative `dreamcontext-deep-research` synthesis skill, the three primary RemSleep specialists — sleep-tasks, sleep-state, sleep-product — plus conditional sleep-federation and sleep-migration specialists), 7 hooks, plus optional pack sub-agents (council persona/synthesizer, multi-review specialists, goal-skill orchestrators)
|
|
789
814
|
- **Codex**: project-level skills (`.agents/skills`), managed `AGENTS.md`, native `.codex/agents/*.toml`, and managed `.codex/config.toml` hooks (best-effort parity where event semantics differ)
|
|
790
815
|
- **Desktop app (macOS beta)**: native Tauri 2 multi-vault launcher with in-app onboarding and the Sleepy notch quick-capture companion — wraps the same dashboard server (`dreamcontext app install`)
|
|
791
|
-
- **Web Dashboard**: local UI with
|
|
816
|
+
- **Web Dashboard**: local UI with Sleepy search/ask/chat, Tasks board, Core editor, Knowledge, Features, Brain graph, Sleep tracker, and Council Hall (ships in the package)
|
|
792
817
|
- **Obsidian**: `_dream_context/` can be opened as an Obsidian vault; the directory is scaffolded with curated vault settings at `dreamcontext init` time
|
|
793
818
|
|
|
794
819
|
More agents coming soon.
|
|
@@ -117,6 +117,16 @@ Hard limits on tool calls per thoroughness level. When you hit the cap, return y
|
|
|
117
117
|
|
|
118
118
|
If the caller doesn't specify thoroughness, default to **medium**.
|
|
119
119
|
|
|
120
|
+
### Escalate when one pass isn't enough
|
|
121
|
+
|
|
122
|
+
You are the **fast, single-pass** searcher. If the question genuinely needs *synthesis across many
|
|
123
|
+
files and/or many projects* — "reconcile everything we know about X across my vaults", "pull the
|
|
124
|
+
whole history of Y and cite it" — and you hit your budget cap with only a fragment of the picture,
|
|
125
|
+
**say so and recommend the caller escalate to the `dreamcontext-deep-research` skill**
|
|
126
|
+
(`/dreamcontext-deep-research`). It fans out multiple searchers across the whole corpus + connected
|
|
127
|
+
peers, adversarially verifies, and synthesizes a cited report. Don't silently return a partial
|
|
128
|
+
answer as if it were complete — flag the ceiling.
|
|
129
|
+
|
|
120
130
|
## Output Format
|
|
121
131
|
|
|
122
132
|
Return results as direct, actionable text:
|
package/agents/sleep-product.md
CHANGED
|
@@ -317,22 +317,31 @@ dreamcontext taxonomy init
|
|
|
317
317
|
|
|
318
318
|
This is idempotent — if `core/taxonomy.json` already exists, no change is made.
|
|
319
319
|
|
|
320
|
-
#### C2. Audit the corpus
|
|
320
|
+
#### C2. Audit the corpus, then bulk-heal the safe drift
|
|
321
321
|
|
|
322
322
|
```bash
|
|
323
|
-
dreamcontext taxonomy audit
|
|
323
|
+
dreamcontext taxonomy audit # see the drift
|
|
324
|
+
dreamcontext taxonomy audit --fix --dry-run # preview the exact safe rewrites (writes nothing)
|
|
325
|
+
dreamcontext taxonomy audit --fix # apply: alias/normalizable tags → canonical, corpus-wide
|
|
324
326
|
```
|
|
325
327
|
|
|
326
|
-
|
|
328
|
+
`audit --fix` is the **safe bulk path** — it rewrites ONLY tags whose `normalizeTag → resolveAlias`
|
|
329
|
+
yields a *different canonical* tag (aliases like `db → domain:database`, casing like `Architecture →
|
|
330
|
+
architecture`). It NEVER touches already-canonical tags (so `decisions` is not churned to `decision`)
|
|
331
|
+
and NEVER guesses an orphan — orphans are reported as *"needs a vocab decision"* and left untouched.
|
|
332
|
+
This is what makes corpus-wide normalization safe to run every cycle. Then act on the buckets `--fix`
|
|
333
|
+
deliberately doesn't auto-resolve:
|
|
327
334
|
|
|
328
335
|
| Bucket | Action |
|
|
329
336
|
|--------|--------|
|
|
330
|
-
| `
|
|
331
|
-
| `orphan` tags
|
|
337
|
+
| `alias` / normalizable tags | **Run `taxonomy audit --fix`** — one shot, corpus-wide, idempotent. Don't hand-edit these file by file anymore. |
|
|
338
|
+
| `orphan` tags (a real concept) | **Alias-then-fix:** `dreamcontext taxonomy alias <orphan> <canonical>` (or `taxonomy add <facet:value>` if it's a brand-new canonical), then re-run `taxonomy audit --fix` to apply it everywhere. |
|
|
339
|
+
| `orphan` tags (typo / leftover) | Remove it from the offending file's frontmatter surgically. |
|
|
332
340
|
| `nearDups` in vocab | If two vocab entries are near-duplicates by accident, remove the weaker one by hand-editing `core/taxonomy.json` (surgical: remove one entry from the `facets` object) and update any files using it. |
|
|
333
341
|
| `untagged` docs | Tag them if content is clear; leave them if the doc is a stub. |
|
|
334
342
|
|
|
335
|
-
**
|
|
343
|
+
**The only bulk rewrite you may run is `taxonomy audit --fix`** (it is verified-by-construction against
|
|
344
|
+
the vocabulary). Any OTHER tag edit stays surgical and confirmed against the audit output.
|
|
336
345
|
|
|
337
346
|
#### C3. Grow the Domain Vocabulary
|
|
338
347
|
|
|
@@ -117,6 +117,16 @@ Hard limits on tool calls per thoroughness level. When you hit the cap, return y
|
|
|
117
117
|
|
|
118
118
|
If the caller doesn't specify thoroughness, default to **medium**.
|
|
119
119
|
|
|
120
|
+
### Escalate when one pass isn't enough
|
|
121
|
+
|
|
122
|
+
You are the **fast, single-pass** searcher. If the question genuinely needs *synthesis across many
|
|
123
|
+
files and/or many projects* — "reconcile everything we know about X across my vaults", "pull the
|
|
124
|
+
whole history of Y and cite it" — and you hit your budget cap with only a fragment of the picture,
|
|
125
|
+
**say so and recommend the caller escalate to the `dreamcontext-deep-research` skill**
|
|
126
|
+
(`/dreamcontext-deep-research`). It fans out multiple searchers across the whole corpus + connected
|
|
127
|
+
peers, adversarially verifies, and synthesizes a cited report. Don't silently return a partial
|
|
128
|
+
answer as if it were complete — flag the ceiling.
|
|
129
|
+
|
|
120
130
|
## Output Format
|
|
121
131
|
|
|
122
132
|
Return results as direct, actionable text:
|
|
@@ -317,22 +317,31 @@ dreamcontext taxonomy init
|
|
|
317
317
|
|
|
318
318
|
This is idempotent — if `core/taxonomy.json` already exists, no change is made.
|
|
319
319
|
|
|
320
|
-
#### C2. Audit the corpus
|
|
320
|
+
#### C2. Audit the corpus, then bulk-heal the safe drift
|
|
321
321
|
|
|
322
322
|
```bash
|
|
323
|
-
dreamcontext taxonomy audit
|
|
323
|
+
dreamcontext taxonomy audit # see the drift
|
|
324
|
+
dreamcontext taxonomy audit --fix --dry-run # preview the exact safe rewrites (writes nothing)
|
|
325
|
+
dreamcontext taxonomy audit --fix # apply: alias/normalizable tags → canonical, corpus-wide
|
|
324
326
|
```
|
|
325
327
|
|
|
326
|
-
|
|
328
|
+
`audit --fix` is the **safe bulk path** — it rewrites ONLY tags whose `normalizeTag → resolveAlias`
|
|
329
|
+
yields a *different canonical* tag (aliases like `db → domain:database`, casing like `Architecture →
|
|
330
|
+
architecture`). It NEVER touches already-canonical tags (so `decisions` is not churned to `decision`)
|
|
331
|
+
and NEVER guesses an orphan — orphans are reported as *"needs a vocab decision"* and left untouched.
|
|
332
|
+
This is what makes corpus-wide normalization safe to run every cycle. Then act on the buckets `--fix`
|
|
333
|
+
deliberately doesn't auto-resolve:
|
|
327
334
|
|
|
328
335
|
| Bucket | Action |
|
|
329
336
|
|--------|--------|
|
|
330
|
-
| `
|
|
331
|
-
| `orphan` tags
|
|
337
|
+
| `alias` / normalizable tags | **Run `taxonomy audit --fix`** — one shot, corpus-wide, idempotent. Don't hand-edit these file by file anymore. |
|
|
338
|
+
| `orphan` tags (a real concept) | **Alias-then-fix:** `dreamcontext taxonomy alias <orphan> <canonical>` (or `taxonomy add <facet:value>` if it's a brand-new canonical), then re-run `taxonomy audit --fix` to apply it everywhere. |
|
|
339
|
+
| `orphan` tags (typo / leftover) | Remove it from the offending file's frontmatter surgically. |
|
|
332
340
|
| `nearDups` in vocab | If two vocab entries are near-duplicates by accident, remove the weaker one by hand-editing `core/taxonomy.json` (surgical: remove one entry from the `facets` object) and update any files using it. |
|
|
333
341
|
| `untagged` docs | Tag them if content is clear; leave them if the doc is a stub. |
|
|
334
342
|
|
|
335
|
-
**
|
|
343
|
+
**The only bulk rewrite you may run is `taxonomy audit --fix`** (it is verified-by-construction against
|
|
344
|
+
the vocabulary). Any OTHER tag edit stays surgical and confirmed against the audit output.
|
|
336
345
|
|
|
337
346
|
#### C3. Grow the Domain Vocabulary
|
|
338
347
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{bt as jc,bu as I0,aH as pS,bv as xt,bw as Ip,bx as mS,by as gS,bz as _S,bA as xS,bB as yS,bq as vS,br as bS,bC as B0,aC as SS,bD as TS,bE as MS,bF as ES,bG as xg,bH as yg,bI as AS,bJ as k,bK as $s,bL as wS,bM as RS,bN as CS,bO as NS}from"./index-
|
|
1
|
+
import{bt as jc,bu as I0,aH as pS,bv as xt,bw as Ip,bx as mS,by as gS,bz as _S,bA as xS,bB as yS,bq as vS,br as bS,bC as B0,aC as SS,bD as TS,bE as MS,bF as ES,bG as xg,bH as yg,bI as AS,bJ as k,bK as $s,bL as wS,bM as RS,bN as CS,bO as NS}from"./index-CwZ3YweD.js";import{_ as Bi}from"./extends-CF3RwP-h.js";function PS(r){var e=jc(.1),t,n,i;typeof r!="function"&&(r=jc(r==null?0:+r));function s(a){for(var l=0,c=t.length,u;l<c;++l)u=t[l],u.vz+=(i[l]-u.z)*n[l]*a}function o(){if(t){var a,l=t.length;for(n=new Array(l),i=new Array(l),a=0;a<l;++a)n[a]=isNaN(i[a]=+r(t[a],a,t))?0:+e(t[a],a,t)}}return s.initialize=function(a){t=a,o()},s.strength=function(a){return arguments.length?(e=typeof a=="function"?a:jc(+a),o(),s):e},s.z=function(a){return arguments.length?(r=typeof a=="function"?a:jc(+a),o(),s):r},s}/**
|
|
2
2
|
* @license
|
|
3
3
|
* Copyright 2010-2026 Three.js Authors
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aK as A,aL as S,a_ as P,aJ as W,bY as ln,bZ as gn,b_ as dn,b$ as z,c0 as hn,bT as pn,c1 as G,b1 as N,b6 as m,b9 as R,c2 as An,b0 as U,b4 as _n,c3 as wn,bW as on,aM as V,bU as On,c4 as I}from"./index-
|
|
1
|
+
import{aK as A,aL as S,a_ as P,aJ as W,bY as ln,bZ as gn,b_ as dn,b$ as z,c0 as hn,bT as pn,c1 as G,b1 as N,b6 as m,b9 as R,c2 as An,b0 as U,b4 as _n,c3 as wn,bW as on,aM as V,bU as On,c4 as I}from"./index-CwZ3YweD.js";function vn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var K=P?P.prototype:void 0,B=K?K.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return vn(n,k)+"";if(S(n))return B?B.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Pn(){}function cn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function En(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function yn(n){return n!==n}function Tn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function Rn(n,r,e){return r===r?Tn(n,r,e):En(n,yn,e)}function bn(n,r){var e=n==null?0:n.length;return!!e&&Rn(n,r,0)>-1}function x(n){return W(n)?ln(n):gn(n)}var In=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ln=/^\w*$/;function M(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||S(n)?!0:Ln.test(n)||!In.test(n)||r!=null&&n in Object(r)}var Sn=500;function xn(n){var r=dn(n,function(i){return e.size===Sn&&e.clear(),i}),e=r.cache;return r}var Mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$n=/\\(\\)?/g,Cn=xn(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Mn,function(e,i,f,t){r.push(f?t.replace($n,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:M(n,r)?[n]:Cn(Dn(n))}function b(n){if(typeof n=="string"||S(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[b(r[e++])];return e&&e==i?n:void 0}function Fn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var H=P?P.isConcatSpreadable:void 0;function Gn(n){return A(n)||z(n)||!!(H&&n&&n[H])}function Kr(n,r,e,i,f){var t=-1,u=n.length;for(e||(e=Gn),f||(f=[]);++t<u;){var s=n[t];e(s)?rn(f,s):i||(f[f.length]=s)}return f}function Nn(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var u=n[e];r(u,e,n)&&(t[f++]=u)}return t}function mn(){return[]}var Un=Object.prototype,Kn=Un.propertyIsEnumerable,Z=Object.getOwnPropertySymbols,Bn=Z?function(n){return n==null?[]:(n=Object(n),en(Z(n),function(r){return Kn.call(n,r)}))}:mn;function Hn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function q(n){return Hn(n,x,Bn)}var Zn="__lodash_hash_undefined__";function qn(n){return this.__data__.set(n,Zn),this}function Yn(n){return this.__data__.has(n)}function c(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new hn;++r<e;)this.add(n[r])}c.prototype.add=c.prototype.push=qn;c.prototype.has=Yn;function Jn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Xn=1,Qn=2;function fn(n,r,e,i,f,t){var u=e&Xn,s=n.length,a=r.length;if(s!=a&&!(u&&a>s))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,w=e&Qn?new c:void 0;for(t.set(n,r),t.set(r,n);++l<s;){var p=n[l],_=r[l];if(i)var o=u?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(o!==void 0){if(o)continue;d=!1;break}if(w){if(!Jn(r,function(O,v){if(!tn(w,v)&&(p===O||f(p,O,e,i,t)))return w.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Wn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function $(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var zn=1,Vn=2,kn="[object Boolean]",jn="[object Date]",nr="[object Error]",rr="[object Map]",er="[object Number]",ir="[object RegExp]",tr="[object Set]",fr="[object String]",ur="[object Symbol]",sr="[object ArrayBuffer]",ar="[object DataView]",Y=P?P.prototype:void 0,L=Y?Y.valueOf:void 0;function lr(n,r,e,i,f,t,u){switch(e){case ar:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case sr:return!(n.byteLength!=r.byteLength||!t(new G(n),new G(r)));case kn:case jn:case er:return pn(+n,+r);case nr:return n.name==r.name&&n.message==r.message;case ir:case fr:return n==r+"";case rr:var s=Wn;case tr:var a=i&zn;if(s||(s=$),n.size!=r.size&&!a)return!1;var h=u.get(n);if(h)return h==r;i|=Vn,u.set(n,r);var g=fn(s(n),s(r),i,f,t,u);return u.delete(n),g;case ur:if(L)return L.call(n)==L.call(r)}return!1}var gr=1,dr=Object.prototype,hr=dr.hasOwnProperty;function pr(n,r,e,i,f,t){var u=e&gr,s=q(n),a=s.length,h=q(r),g=h.length;if(a!=g&&!u)return!1;for(var l=a;l--;){var d=s[l];if(!(u?d in r:hr.call(r,d)))return!1}var w=t.get(n),p=t.get(r);if(w&&p)return w==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var o=u;++l<a;){d=s[l];var O=n[d],v=r[d];if(i)var F=u?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(F===void 0?O===v||f(O,v,e,i,t):F)){_=!1;break}o||(o=d=="constructor")}if(_&&!o){var E=n.constructor,y=r.constructor;E!=y&&"constructor"in n&&"constructor"in r&&!(typeof E=="function"&&E instanceof E&&typeof y=="function"&&y instanceof y)&&(_=!1)}return t.delete(n),t.delete(r),_}var Ar=1,J="[object Arguments]",X="[object Array]",T="[object Object]",_r=Object.prototype,Q=_r.hasOwnProperty;function wr(n,r,e,i,f,t){var u=A(n),s=A(r),a=u?X:N(n),h=s?X:N(r);a=a==J?T:a,h=h==J?T:h;var g=a==T,l=h==T,d=a==h;if(d&&m(n)){if(!m(r))return!1;u=!0,g=!1}if(d&&!g)return t||(t=new R),u||An(n)?fn(n,r,e,i,f,t):lr(n,r,a,e,i,f,t);if(!(e&Ar)){var w=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(w||p){var _=w?n.value():n,o=p?r.value():r;return t||(t=new R),f(_,o,e,i,t)}}return d?(t||(t=new R),pr(n,r,e,i,f,t)):!1}function C(n,r,e,i,f){return n===r?!0:n==null||r==null||!U(n)&&!U(r)?n!==n&&r!==r:wr(n,r,e,i,C,f)}var or=1,Or=2;function vr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var u=e[f];if(u[2]?u[1]!==n[u[0]]:!(u[0]in n))return!1}for(;++f<t;){u=e[f];var s=u[0],a=n[s],h=u[1];if(u[2]){if(a===void 0&&!(s in n))return!1}else{var g=new R,l;if(!(l===void 0?C(h,a,or|Or,i,g):l))return!1}}return!0}function un(n){return n===n&&!_n(n)}function Pr(n){for(var r=x(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,un(f)]}return r}function sn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function cr(n){var r=Pr(n);return r.length==1&&r[0][2]?sn(r[0][0],r[0][1]):function(e){return e===n||vr(e,n,r)}}function Er(n,r){return n!=null&&r in Object(n)}function yr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var u=b(r[i]);if(!(t=n!=null&&e(n,u)))break;n=n[u]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&on(u,f)&&(A(n)||z(n)))}function Tr(n,r){return n!=null&&yr(n,r,Er)}var Rr=1,br=2;function Ir(n,r){return M(n)&&un(r)?sn(b(n),r):function(e){var i=Fn(e,n);return i===void 0&&i===r?Tr(e,n):C(r,i,Rr|br)}}function Lr(n){return function(r){return r==null?void 0:r[n]}}function Sr(n){return function(r){return nn(r,n)}}function xr(n){return M(n)?Lr(b(n)):Sr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Ir(n[0],n[1]):cr(n):xr(n)}function Mr(n,r){return n&&On(n,r,x)}function $r(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,u=Object(e);++t<f&&i(u[t],t,u)!==!1;);return e}}var D=$r(Mr);function Cr(n){return typeof n=="function"?n:V}function Br(n,r){var e=A(n)?cn:D;return e(n,Cr(r))}function Dr(n,r){var e=[];return D(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Hr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function Fr(n,r,e,i,f){return f(n,function(t,u,s){e=i?(i=!1,t):r(e,t,u,s)}),e}function Zr(n,r,e){var i=A(n)?Nn:Fr,f=arguments.length<3;return i(n,an(r),e,f,D)}var Gr=1/0,Nr=I&&1/$(new I([,-0]))[1]==Gr?function(n){return new I(n)}:Pn,mr=200;function qr(n,r,e){var i=-1,f=bn,t=n.length,u=!0,s=[],a=s;if(t>=mr){var h=r?null:Nr(n);if(h)return $(h);u=!1,f=tn,a=new c}else a=r?[]:s;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,u&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),s.push(g)}else f(a,l,e)||(a!==s&&a.push(l),s.push(g))}return s}export{D as a,Kr as b,an as c,vn as d,rn as e,Hn as f,Bn as g,cn as h,q as i,qr as j,x as k,Hr as l,Br as m,En as n,Cr as o,Mr as p,yr as q,Zr as r,mn as s,j as t,b as u,nn as v,Tr as w,Dn as x};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./percentages-BXMCSKIN-
|
|
1
|
+
import"./percentages-BXMCSKIN-4Hgy5SgQ.js";import"./index-CwZ3YweD.js";import"./extends-CF3RwP-h.js";var u={paste:"لصق",pasteAsPlaintext:"اللصق كنص عادي",pasteCharts:"لصق الرسوم البيانية",selectAll:"تحديد الكل",multiSelect:"إضافة عنصر للتحديد",moveCanvas:"نقل لوح الرسم",cut:"قص",copy:"نسخ",copyAsPng:"نسخ إلى الحافظة بصيغة PNG",copyAsSvg:"نسخ إلى الحافظة بصيغة SVG",copyText:"نسخ إلى الحافظة كنص",copySource:"",convertToCode:"",bringForward:"جلب للأمام",sendToBack:"أرسل للخلف",bringToFront:"أحضر للأمام",sendBackward:"أرسل للخلف",delete:"حذف",copyStyles:"نسخ الأنماط",pasteStyles:"لصق الأنماط",stroke:"الخط",background:"الخلفية",fill:"التعبئة",strokeWidth:"سُمك الخط",strokeStyle:"نمط الخط",strokeStyle_solid:"متصل",strokeStyle_dashed:"متقطع",strokeStyle_dotted:"منقط",sloppiness:"الإمالة",opacity:"الشفافية",textAlign:"محاذاة النص",edges:"الحواف",sharp:"حادة",round:"دائرية",arrowheads:"رؤوس الأسهم",arrowhead_none:"لا شيء",arrowhead_arrow:"سهم",arrowhead_bar:"شريط",arrowhead_circle:"",arrowhead_circle_outline:"",arrowhead_triangle:"مثلث",arrowhead_triangle_outline:"",arrowhead_diamond:"",arrowhead_diamond_outline:"",fontSize:"حجم الخط",fontFamily:"نوع الخط",addWatermark:'إضافة "مصنوعة بواسطة Excalidraw"',handDrawn:"رسم باليد",normal:"عادي",code:"رمز",small:"صغير",medium:"متوسط",large:"كبير",veryLarge:"كبير جدا",solid:"كامل",hachure:"خطوط",zigzag:"متعرج",crossHatch:"خطوط متقطعة",thin:"نحيف",bold:"داكن",left:"الـيسار",center:"وسط",right:"يمين",extraBold:"عريض",architect:"معماري",artist:"رسام",cartoonist:"كرتوني",fileTitle:"إسم الملف",colorPicker:"منتقي اللون",canvasColors:"تستخدم على القماش",canvasBackground:"خلفية اللوحة",drawingCanvas:"لوحة الرسم",layers:"الطبقات",actions:"الإجراءات",language:"اللغة",liveCollaboration:"التعاون المباشر...",duplicateSelection:"تكرار",untitled:"غير معنون",name:"الاسم",yourName:"اسمك",madeWithExcalidraw:"مصنوعة بواسطة Excalidraw",group:"تحديد مجموعة",ungroup:"إلغاء تحديد مجموعة",collaborators:"المتعاونون",showGrid:"إظهار الشبكة",addToLibrary:"أضف إلى المكتبة",removeFromLibrary:"حذف من المكتبة",libraryLoadingMessage:"جارٍ تحميل المكتبة…",libraries:"تصفح المكتبات",loadingScene:"جاري تحميل المشهد…",align:"محاذاة",alignTop:"محاذاة إلى اﻷعلى",alignBottom:"محاذاة إلى اﻷسفل",alignLeft:"محاذاة إلى اليسار",alignRight:"محاذاة إلى اليمين",centerVertically:"توسيط عمودي",centerHorizontally:"توسيط أفقي",distributeHorizontally:"التوزيع الأفقي",distributeVertically:"التوزيع عمودياً",flipHorizontal:"قلب عامودي",flipVertical:"قلب أفقي",viewMode:"نمط العرض",share:"مشاركة",showStroke:"إظهار منتقي لون الخط",showBackground:"إظهار منتقي لون الخلفية",toggleTheme:"غير النمط",personalLib:"المكتبة الشخصية",excalidrawLib:"مكتبتنا",decreaseFontSize:"تصغير حجم الخط",increaseFontSize:"تكبير حجم الخط",unbindText:"فك ربط النص",bindText:"ربط النص بالحاوية",createContainerFromText:"نص مغلف في حاوية",link:{edit:"تعديل الرابط",editEmbed:"تحرير الرابط وإدراجه",create:"إنشاء رابط",createEmbed:"إنشاء رابط و إدراجه",label:"رابط",labelEmbed:"رابط و إدراج",empty:"لم يتم تعيين رابط"},lineEditor:{edit:"تحرير السطر",exit:"الخروج من المُحرر"},elementLock:{lock:"قفل",unlock:"فتح",lockAll:"قفل الكل",unlockAll:"فتح الكل"},statusPublished:"نُشر",sidebarLock:"إبقاء الشريط الجانبي مفتوح",selectAllElementsInFrame:"تحديد جميع العناصر في الإطار",removeAllElementsFromFrame:"إزالة جميع العناصر من الإطار",eyeDropper:"اختيار اللون من القماش",textToDiagram:"",prompt:""},A={noItems:"لا توجد عناصر أضيفت بعد...",hint_emptyLibrary:"حدد عنصر على القماش لإضافته هنا، أو تثبيت مكتبة من المستودع العام أدناه.",hint_emptyPrivateLibrary:"حدد عنصر على القماش لإضافته هنا."},e={clearReset:"إعادة تعيين اللوحة",exportJSON:"صدر الملف",exportImage:"تصدير الصورة...",export:"حفظ إلى...",copyToClipboard:"نسخ إلى الحافظة",save:"احفظ للملف الحالي",saveAs:"حفظ كـ",load:"فتح",getShareableLink:"احصل على رابط المشاركة",close:"غلق",selectLanguage:"اختر اللغة",scrollBackToContent:"الرجوع إلى المحتوى",zoomIn:"تكبير",zoomOut:"تصغير",resetZoom:"إعادة تعيين الشاشة",menu:"القائمة",done:"تم",edit:"تعديل",undo:"تراجع",redo:"إعادة تنفيذ",resetLibrary:"إعادة ضبط المكتبة",createNewRoom:"إنشاء غرفة جديدة",fullScreen:"شاشة كاملة",darkMode:"الوضع المظلم",lightMode:"الوضع المضيء",zenMode:"وضع التأمل",objectsSnapMode:"التقط إلى العناصر",exitZenMode:"إلغاء الوضع الليلى",cancel:"إلغاء",clear:"مسح",remove:"إزالة",embed:"تبديل الإدراج",publishLibrary:"انشر",submit:"أرسل",confirm:"تأكيد",embeddableInteractionButton:"اضغط للتفاعل"},a={clearReset:"هذا سيُزيل كامل اللوحة. هل أنت متأكد؟",couldNotCreateShareableLink:"تعذر إنشاء رابطة المشاركة.",couldNotCreateShareableLinkTooBig:"تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا",couldNotLoadInvalidFile:"تعذر التحميل، الملف غير صالح",importBackendFailed:"فشل الاستيراد من الخادوم.",cannotExportEmptyCanvas:"لا يمكن تصدير لوحة فارغة.",couldNotCopyToClipboard:"تعذر النسخ إلى الحافظة.",decryptFailed:"تعذر فك تشفير البيانات.",uploadedSecurly:"تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.",loadSceneOverridePrompt:"تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟",collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
|
|
2
2
|
|
|
3
3
|
(إذا كنت ترغب في الاحتفاظ برسمك المخزن داخليا، ببساطة أغلق علامة تبويب المتصفح بدلاً من ذلك.)`,errorAddingToLibrary:"تعذر إضافة العنصر للمكتبة",errorRemovingFromLibrary:"تعذر إزالة العنصر من المكتبة",confirmAddLibrary:"هذا سيضيف {{numShapes}} شكل إلى مكتبتك. هل أنت متأكد؟",imageDoesNotContainScene:"يبدو أن هذه الصورة لا تحتوي على أي بيانات مشهد. هل قمت بتمكين تضمين المشهد أثناء التصدير؟",cannotRestoreFromImage:"تعذر استعادة المشهد من ملف الصورة",invalidSceneUrl:"تعذر استيراد المشهد من عنوان URL المتوفر. إما أنها مشوهة، أو لا تحتوي على بيانات Excalidraw JSON صالحة.",resetLibrary:"هذا سوف يمسح مكتبتك. هل أنت متأكد؟",removeItemsFromsLibrary:"حذف {{count}} عنصر (عناصر) من المكتبة؟",invalidEncryptionKey:"مفتاح التشفير يجب أن يكون من 22 حرفاً. التعاون المباشر معطل.",collabOfflineWarning:`لا يوجد اتصال بالانترنت.
|
|
4
4
|
لن يتم حفظ التغييرات التي قمت بها!`},r={unsupportedFileType:"نوع الملف غير مدعوم.",imageInsertError:"تعذر إدراج الصورة. حاول مرة أخرى لاحقاً...",fileTooBig:"الملف كبير جداً. الحد الأقصى المسموح به للحجم هو {{maxSize}}.",svgImageInsertError:"تعذر إدراج صورة SVG. يبدو أن ترميز SVG غير صحيح.",failedToFetchImage:"",invalidSVGString:"SVG غير صالح.",cannotResolveCollabServer:"تعذر الاتصال بخادم التعاون. الرجاء إعادة تحميل الصفحة والمحاولة مرة أخرى.",importLibraryError:"تعذر تحميل المكتبة",collabSaveFailed:"تعذر الحفظ في قاعدة البيانات. إذا استمرت المشاكل، يفضل أن تحفظ ملفك محليا كي لا تفقد عملك.",collabSaveFailed_sizeExceeded:"تعذر الحفظ في قاعدة البيانات، يبدو أن القماش كبير للغاية، يفضّل حفظ الملف محليا كي لا تفقد عملك.",imageToolNotSupported:"",brave_measure_text_error:{line1:"يبدو أنك تستخدم متصفح Brave مع إعداد <bold>حظر صارم لتتبع البصمة</bold>.",line2:"قد يؤدي هذا إلى كسر <bold>عناصر النص</bold> في الرسومات الخاصة بك.",line3:"من المستحسن إلغاء تفعيل هذا الإعداد. يمكنك اتباع <link>هذه الخطوات</link> لفعل ذلك.",line4:"إذا لم يصلح تعطيل هذا الإعداد طريقة عرض النصوص، الرجاء كتابة <issueLink>بلاغ</issueLink> على حسابنا في GitHub، أو راسلنا على <discordLink>Discord</discordLink>"},libraryElementTypeError:{embeddable:"لا يمكن إضافة العناصر القابلة للتضمين في المكتبة.",iframe:"",image:"سوف يتم دعم إضافة صور إلى المكتبة قريباً!"},asyncPasteFailedOnRead:"",asyncPasteFailedOnParse:"",copyToSystemClipboardFailed:""},o={selection:"تحديد",image:"إدراج صورة",rectangle:"مستطيل",diamond:"مضلع",ellipse:"دائرة",arrow:"سهم",line:"خط",freedraw:"رسم",text:"نص",library:"مكتبة",lock:"الحفاظ على أداة التحديد نشطة بعد الرسم",penMode:"وضع القلم - امنع اللمس",link:"إضافة/تحديث الرابط للشكل المحدد",eraser:"ممحاة",frame:"أداة الإطار",magicframe:"",embeddable:"تضمين ويب",laser:"مؤشر ليزر",hand:"يد (أداة الإزاحة)",extraTools:"المزيد من أﻷدوات",mermaidToExcalidraw:"",magicSettings:""},t={canvasActions:"إجراءات اللوحة",selectedShapeActions:"إجراءات الشكل المحدد",shapes:"الأشكال"},i={canvasPanning:"لتحريك القماش، اضغط على عجلة الفأرة أو مفتاح المسافة أثناء السحب، أو استخدم أداة اليد",linearElement:"انقر لبدء نقاط متعددة، اسحب لخط واحد",freeDraw:"انقر واسحب، افرج عند الانتهاء",text:"نصيحة: يمكنك أيضًا إضافة نص بالنقر المزدوج في أي مكان بأداة الاختيار",embeddable:"اضغط مع السحب لإنشاء موقع ويب مضمّن",text_selected:"انقر نقراً مزدوجاً أو اضغط ادخال لتعديل النص",text_editing:"اضغط على Esc أو (Ctrl أو Cmd) + Enter لإنهاء التعديل",linearElementMulti:"انقر فوق النقطة الأخيرة أو اضغط على Esc أو Enter للإنهاء",lockAngle:"يمكنك تقييد الزاوية بالضغط على SHIFT",resize:`يمكنك تقييد النسب بالضغط على SHIFT أثناء تغيير الحجم،
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./index-
|
|
1
|
+
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./index-CwZ3YweD.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(fn(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)-an,c=A.apply(this,arguments)-an,F=un(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=_(un(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<rn)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(on((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-rn/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};
|