dreamcontext 0.8.5 → 0.8.7
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 +16 -13
- package/agents/dreamcontext-explore.md +7 -2
- package/agents/sleep-federation.md +28 -2
- package/dist/agents/dreamcontext-explore.md +7 -2
- package/dist/agents/sleep-federation.md +28 -2
- package/dist/dashboard/assets/Assistant-Bold-gm-uSS1B.woff2 +0 -0
- package/dist/dashboard/assets/Assistant-Medium-DrcxCXg3.woff2 +0 -0
- package/dist/dashboard/assets/Assistant-Regular-DVxZuzxb.woff2 +0 -0
- package/dist/dashboard/assets/Assistant-SemiBold-SCI4bEL9.woff2 +0 -0
- package/dist/dashboard/assets/{BrainCanvas3D-D8PjCqhM.js → BrainCanvas3D-CyuMh6vC.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-Bh1FtvZ1.js → _baseUniq-TeXEp9Tn.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-B2U2zDyG.js → ar-SA-G6X2FPQ2-Da5wNUeW.js} +1 -1
- package/dist/dashboard/assets/{arc-CjP2r6kV.js → arc-NQuoeYrp.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-NKSTolLw.js → architectureDiagram-Q4EWVU46-B108azq_.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-DVg6avJ2.js → az-AZ-76LH7QW2-cJYSsraO.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-DGe9j5k-.js → bg-BG-XCXSNQG7-Dt4_IvAk.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-9TIN16so.js → blockDiagram-DXYQGD6D-HAo6Tqxd.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-gu4ZPvYK.js → bn-BD-2XOGV67Q-DE20hZpG.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-CnCRm_Qw.js → c4Diagram-AHTNJAMY-SHRA5Nk_.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-DkBWO2rb.js → ca-ES-6MX7JW3Y-9ZUzuDs-.js} +1 -1
- package/dist/dashboard/assets/channel-CIQg6WkP.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-DWsjDEg5.js → chunk-4BX2VUAB-BlLy4y9z.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-BsxBp2-h.js → chunk-4TB4RGXK-cDLog-pk.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-DSTYhHTs.js → chunk-55IACEB6-BfLlL9Jv.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-9RDG5so7.js → chunk-EDXVE4YY-BjKTlHye.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-BQQGv7tV.js → chunk-FMBD7UC4-CoMoOB69.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-B62jTGjc.js → chunk-OYMX7WX6-DSYZ4BzO.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-CgTBTZrW.js → chunk-QZHKN3VN-hsCUyt37.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-3Dg1saYb.js → chunk-YZCP3GAM-CMBEUThQ.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-kJkUaIqm.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-kJkUaIqm.js +1 -0
- package/dist/dashboard/assets/clone-COSoK5_M.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-B3idOsw5.js → cose-bilkent-S5V4N54A-Ds3A4r-y.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-xyFkB9a5.js → cs-CZ-2BRQDIVT-WgNPbRaT.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-B3hFYjJY.js → da-DK-5WZEPLOC-BQPVoqBy.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-BoSSN-hv.js → dagre-KV5264BT-D3AamC0s.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-Bkx00nEq.js → de-DE-XR44H4JA-FOMlLeg-.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-Buj8iksu.js → diagram-5BDNPKRD-DeAuY_LW.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-DRBYjDWl.js → diagram-G4DWMVQ6-CsPuBl6m.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-DdlofmeO.js → diagram-MMDJMWI5-Celrp7iZ.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-C8y8IvnA.js → diagram-TYMM5635-D-Y8kdqj.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-SsFgxQNu.js → el-GR-BZB4AONW-DdhrZvUu.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-OZ3J3PG9.js → erDiagram-SMLLAGMA-CyPB81Ul.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-BInO41Bx.js → es-ES-U4NZUMDT-B-Hbpc6c.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-DjjnJ8cU.js → eu-ES-A7QVB2H4-CIeXN6PD.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-BjCsO05-.js → fa-IR-HGAKTJCU-BojqXzkR.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-kAJ6_O9R.js → fi-FI-Z5N7JZ37-Dix2X0V9.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-BvvULyyH.js → flowDiagram-DWJPFMVM-D7IX0DxI.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-CrZukXCy.js → fr-FR-RHASNOE6-B-jqOA6L.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-Sv7sneaT.js → ganttDiagram-T4ZO3ILL-CbK6p7_G.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-BWplv5am.js → gitGraphDiagram-UUTBAWPF-DWDwNpLK.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-CY3NLwyQ.js → gl-ES-HMX3MZ6V-B6zmZpsw.js} +1 -1
- package/dist/dashboard/assets/{graph-DU5PqGxo.js → graph-CrDZc6w0.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-DcuQngSU.js → he-IL-6SHJWFNN-CaSPpOxb.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-DKr_uuss.js → hi-IN-IWLTKZ5I-n86mXoF4.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-CgZklxQN.js → hu-HU-A5ZG7DT2-MqIG43UE.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-BFYAclqc.js → id-ID-SAP4L64H-DbrGiOFJ.js} +1 -1
- package/dist/dashboard/assets/index-D1nedbBU.css +1 -0
- package/dist/dashboard/assets/index-DjaqCcd7.js +482 -0
- package/dist/dashboard/assets/{index-DhbH7HLB.js → index-zJ2-S49k.js} +1 -1
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-DcL21hYD.js → infoDiagram-42DDH7IO-CpAQyAyt.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-CP4-Ha6a.js → ishikawaDiagram-UXIWVN3A-DXIwINgb.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-DgbO8z_0.js → it-IT-JPQ66NNP-IX1Td9Wl.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-2nM4bVbo.js → ja-JP-DBVTYXUO-Bd8nX8VR.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-CZV9JSbl.js → journeyDiagram-VCZTEJTY-DZlgujgy.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-DyVkacqp.js → kaa-6HZHGXH3-D5xD9fsf.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-CqnQNV46.js → kab-KAB-ZGHBKWFO-xBaAbT-9.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-CMFYpVon.js → kanban-definition-6JOO6SKY-0klC865z.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-CKaF_obh.js → kk-KZ-P5N5QNE5-CboXRRre.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-DX5TUZuC.js → km-KH-HSX4SM5Z-Clsilmtp.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-DX2Igsee.js → ko-KR-MTYHY66A-CIjzZcRO.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-B0tZGs6G.js → ku-TR-6OUDTVRD-Bs1RU4e9.js} +1 -1
- package/dist/dashboard/assets/{layout-3g_7BoW1.js → layout-fipBctpD.js} +1 -1
- package/dist/dashboard/assets/{linear-CXZ_mpWm.js → linear-DVXXJr0u.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-BzCZwLwu.js → lt-LT-XHIRWOB4-CQ-xLU_o.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-Dn-Fj6_V.js → lv-LV-5QDEKY6T-C0inT4d9.js} +1 -1
- package/dist/dashboard/assets/{min-bJtV9AiD.js → min-B_cNy5kS.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-Dz61NELW.js → mindmap-definition-QFDTVHPH-Cioz1NOY.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-D8KTtR8X.js → mr-IN-CRQNXWMA-DhEHYUYK.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-BbCYwFaj.js → my-MM-5M5IBNSE-Dj4Iwdrf.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-DEJxZlzk.js → nb-NO-T6EIAALU-CvAPy7iN.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-DTQekKhh.js → nl-NL-IS3SIHDZ-DgQc3gPO.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-Otz1_Q7Y.js → nn-NO-6E72VCQL-DORPUv8K.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-BO1pOtcy.js → oc-FR-POXYY2M6-Cym9O8Me.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-o_zcafD8.js → pa-IN-N4M65BXN-BiE5SCOy.js} +1 -1
- package/dist/dashboard/assets/percentages-BXMCSKIN-B-_e8Y6s.js +215 -0
- package/dist/dashboard/assets/percentages-BXMCSKIN-DnMnD4LF.css +1 -0
- package/dist/dashboard/assets/{pica-B0_4dS6Q.js → pica-C5ISA_oR.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-CMwhT31D.js → pieDiagram-DEJITSTG-CD7iu1Mo.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-CvJKdZLx.js → pl-PL-T2D74RX3-C-29ZIfD.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-DH69aomh.js → pt-BR-5N22H2LF-CIQq615m.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-Bt_HMT7S.js → pt-PT-UZXXM6DQ-CN7xbXrH.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-BdXgbSGH.js → quadrantDiagram-34T5L4WZ-DEPkZ_lv.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-Bq0YQege.js → requirementDiagram-MS252O5E-BpAjr03x.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-DetQ1m4p.js → ro-RO-JPDTUUEW-DBtenXzw.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-B744z7Cd.js → ru-RU-B4JR7IUQ-CA_iHOeh.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-CTYt5Kku.js → sankeyDiagram-XADWPNL6-B1zLPVle.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-BbPhy9K6.js → sequenceDiagram-FGHM5R23-pEX8i9B5.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-DueeMRG5.js → si-LK-N5RQ5JYF-BTsFn4Rn.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-BivWC8UI.js → sk-SK-C5VTKIMK-DGoN-I5B.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-CHxsSSJQ.js → sl-SI-NN7IZMDC-CwiRr92B.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-DAPXkQkR.js → stateDiagram-FHFEXIEX-W_EdYNVF.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-BsdphuJ6.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-CxWeBga7.js → subset-shared.chunk-CAlKIepB.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-V3gpxiYs.js → subset-worker.chunk-YIXEPnjQ.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-C-EJgqb-.js → sv-SE-XGPEYMSR-7SNur8Fe.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-DAjiKKkH.js → ta-IN-2NMHFXQM-DqQBCB2J.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-Bq7BADtY.js → th-TH-HPSO5L25-ClwEsAak.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-BJhY_iVV.js → timeline-definition-GMOUNBTQ-uPtwwnY7.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU--adx_Tct.js → tr-TR-DEFEU3FU-DmCg5qbG.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-DfnkGhht.js → uk-UA-QMV73CPH-DixKG8eB.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-BpuWdXIB.js → vennDiagram-DHZGUBPP-CAggDlIj.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-RQSwYL0s.js → vi-VN-M7AON7JQ-C15Za2rn.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-BuB77QmE.js → wardley-RL74JXVD-D5C_gWsf.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-BomUXaGE.js → wardleyDiagram-NUSXRM2D-tqYHOmfO.js} +1 -1
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-BueWOzBo.js → xychartDiagram-5P7HB3ND-CsxZKm-V.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-Bq_CyCdn.js → zh-CN-LNUGB5OW-BhlF39b5.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-dhMk2wl1.js → zh-HK-E62DVLB3-P2FWmB4w.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-BTBKc5WB.js → zh-TW-RAJ6MFWO-B0yB1dNp.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +12112 -5241
- package/dist/skill-packs/excalidraw/SKILL.md +19 -4
- package/package.json +1 -1
- package/skill/SKILL.md +34 -16
- package/skill-packs/excalidraw/SKILL.md +19 -4
- package/dist/dashboard/assets/channel-CvynutAQ.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-DWhdz8wj.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-DWhdz8wj.js +0 -1
- package/dist/dashboard/assets/clone-DJK7V3ll.js +0 -1
- package/dist/dashboard/assets/index-CPZ-rEGO.js +0 -480
- package/dist/dashboard/assets/index-DrwAz5zg.css +0 -1
- package/dist/dashboard/assets/percentages-BXMCSKIN-C9aZbplb.js +0 -215
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-ZA5uLv7f.js +0 -1
package/README.md
CHANGED
|
@@ -217,7 +217,7 @@ your-project/
|
|
|
217
217
|
│ │ ├── sleep-tasks.md # RemSleep specialists —
|
|
218
218
|
│ │ ├── sleep-state.md # the agent fans out to
|
|
219
219
|
│ │ ├── sleep-product.md # these three in parallel
|
|
220
|
-
│ │ ├── sleep-federation.md #
|
|
220
|
+
│ │ ├── sleep-federation.md # disabled (read-only federation; copy-sync parked on roadmap)
|
|
221
221
|
│ │ └── sleep-migration.md # conditional: when a migration is pending
|
|
222
222
|
│ └── settings.json # 7 hooks (see Commands → System)
|
|
223
223
|
```
|
|
@@ -372,7 +372,7 @@ dreamcontext app status # Show installed app version and state
|
|
|
372
372
|
```
|
|
373
373
|
|
|
374
374
|
- **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.
|
|
375
|
-
- **Federation network view.** The launcher also renders your projects as an interactive board (Excalidraw-style cards) where you wire
|
|
375
|
+
- **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.)
|
|
376
376
|
- **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.
|
|
377
377
|
- **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:
|
|
378
378
|
- **Learn** — saves the note to project memory, then enriches it.
|
|
@@ -453,7 +453,7 @@ Hook injection is **ON by default**: top hits are auto-surfaced to the agent on
|
|
|
453
453
|
|
|
454
454
|
## Federation
|
|
455
455
|
|
|
456
|
-
Most people end up with more than one dreamcontext project. **Federation** lets those projects discover each other
|
|
456
|
+
Most people end up with more than one dreamcontext project. **Federation** lets those projects discover each other and recall across each other **live** — each vault stays the single source of truth for its own knowledge, and sees its peers' canonical knowledge by reference at query time. All opt-in, all local, no server in the middle, and **nothing is ever copied between vaults**.
|
|
457
457
|
|
|
458
458
|
It starts with a **global vault registry** — every project you register is a *vault* the CLI (and the [desktop app](#desktop-app)) can address by name.
|
|
459
459
|
|
|
@@ -474,18 +474,20 @@ dreamcontext memory recall "<query>" --connected # Span this vault +
|
|
|
474
474
|
dreamcontext memory recall "<query>" --all-vaults # Span this vault + every shareable vault
|
|
475
475
|
```
|
|
476
476
|
|
|
477
|
-
**Connections
|
|
477
|
+
**Connections = a live read edge.** Connect to a peer and your recall (and the per-prompt recall hook) surfaces that peer's **canonical** docs live — a reference, never a copy. A decision made in one repo shows up in a sibling repo's recall *as it is in the source*, always current, with no stale duplicate left behind.
|
|
478
478
|
|
|
479
479
|
```bash
|
|
480
|
-
dreamcontext connect <vault> --direction
|
|
480
|
+
dreamcontext connect <vault> --direction out --topics api,auth # Connect to read a peer (out = read)
|
|
481
481
|
dreamcontext connections # Inspect this vault's federation connections
|
|
482
482
|
dreamcontext disconnect <vault> # Remove a connection
|
|
483
|
-
dreamcontext federation
|
|
484
|
-
dreamcontext federation
|
|
485
|
-
dreamcontext federation
|
|
483
|
+
dreamcontext federation peers # Compact summary of readable peers (ambient awareness)
|
|
484
|
+
dreamcontext federation status # Connections + any leftover federated copies
|
|
485
|
+
dreamcontext federation purge --all # Remove leftover federated:true copies from the old sync path
|
|
486
486
|
```
|
|
487
487
|
|
|
488
|
-
|
|
488
|
+
A peer is readable when your connection to it is `out`/`both`, it isn't stale, **and** it has opted in with `config shareable on`. Reads happen live at recall time; the transitive-leak guard keeps a third vault from seeing what merely passed through this one.
|
|
489
|
+
|
|
490
|
+
> **Note — copy-based sync is parked on the roadmap.** Earlier builds pushed a lossy, truncated *digest* into peers at sleep (`federation sync`) and ingested it as `federated: true` copies (`federation drain`). That broke single-source-of-truth: copies went stale the moment the source changed and re-edits bred duplicates. Those verbs are now **inert no-ops** and the `sleep-federation` specialist is no longer dispatched. If a vault still holds old copies, clear them with `federation purge`. A redesigned opt-in offline-mirror mode may return later — its one genuine advantage is surviving a peer going offline, which live read can't.
|
|
489
491
|
|
|
490
492
|
## Commands
|
|
491
493
|
|
|
@@ -681,12 +683,13 @@ dreamcontext vaults discover [root] --register # …and register the new ones
|
|
|
681
683
|
dreamcontext vaults list # List registered vaults
|
|
682
684
|
dreamcontext vaults remove <name> # Unregister a vault
|
|
683
685
|
dreamcontext config shareable <on|off> # Allow/deny this vault being recalled by peers
|
|
684
|
-
dreamcontext connect <vault> [--direction out|in|both] [--topics a,b] # Connect to a peer
|
|
686
|
+
dreamcontext connect <vault> [--direction out|in|both] [--topics a,b] # Connect to read a peer (out = read)
|
|
685
687
|
dreamcontext connections # Inspect federation connections
|
|
686
688
|
dreamcontext disconnect <vault> # Remove a connection
|
|
687
|
-
dreamcontext federation
|
|
688
|
-
dreamcontext federation
|
|
689
|
-
dreamcontext federation
|
|
689
|
+
dreamcontext federation peers # Compact summary of readable peers
|
|
690
|
+
dreamcontext federation status # Connections + any leftover federated copies
|
|
691
|
+
dreamcontext federation purge --all # Remove leftover federated:true copies (old sync path)
|
|
692
|
+
# federation sync / drain are inert no-ops — copy-based sync is parked on the roadmap
|
|
690
693
|
```
|
|
691
694
|
|
|
692
695
|
See the [Federation](#federation) section above for the full workflow.
|
|
@@ -44,7 +44,7 @@ always beats blind exploration.
|
|
|
44
44
|
|
|
45
45
|
**Protocol:**
|
|
46
46
|
|
|
47
|
-
1. Run `dreamcontext memory recall "<query>" --top
|
|
47
|
+
1. Run `dreamcontext memory recall "<query>" --top 10 --plain` via Bash.
|
|
48
48
|
2. If the top hit has **score ≥ 5**, Read the top-1 (and top-2 if related)
|
|
49
49
|
files immediately — that's almost certainly your answer.
|
|
50
50
|
3. If hits exist but all scores are **< 2**, treat them as weak signal and
|
|
@@ -54,6 +54,11 @@ always beats blind exploration.
|
|
|
54
54
|
`--json` instead of `--plain` for a machine-readable payload, and
|
|
55
55
|
`--types knowledge,feature,task,memory,changelog` to scope by corpus type.
|
|
56
56
|
|
|
57
|
+
**Cross-vault hits are normal and useful.** Results tagged `<vault>::<type>/<slug>` come
|
|
58
|
+
from connected readable peer projects — this is expected behavior, not noise. If the
|
|
59
|
+
answer likely lives in a specific peer, scope the search with `--vault <name>` to
|
|
60
|
+
search current + that one peer directly.
|
|
61
|
+
|
|
57
62
|
Recall is appropriate for Track A (Documented Knowledge) and for Track B when
|
|
58
63
|
the query is about a documented concept. It is NOT a substitute for Glob/Grep
|
|
59
64
|
on raw code symbols — for "find the function that does X" go straight to
|
|
@@ -127,7 +132,7 @@ NEVER use Bash for any command that modifies files or system state.
|
|
|
127
132
|
## Rules
|
|
128
133
|
|
|
129
134
|
1. **Briefing is pre-loaded.** Never re-read files already summarized in your Sub-agent Briefing.
|
|
130
|
-
2. **Recall before grep.** For any "where/why/what-do-we-know" query, try `dreamcontext memory recall "<query>" --top
|
|
135
|
+
2. **Recall before grep.** For any "where/why/what-do-we-know" query, try `dreamcontext memory recall "<query>" --top 10 --plain` BEFORE Glob/Grep. Read top hits if score ≥ 5; fall back to Glob/Grep only when recall is empty or weak (<2). Results tagged `<vault>::<type>/<slug>` are cross-vault hits from connected peers — expected and useful.
|
|
131
136
|
3. **Hypothesize first.** No blind searching. Use what you know to target your search.
|
|
132
137
|
4. **Parallel everything.** Multiple independent tool calls go in one turn.
|
|
133
138
|
5. **Cheapest tool first.** Glob -> Grep -> Read. Skip steps when you can.
|
|
@@ -15,6 +15,17 @@ skills:
|
|
|
15
15
|
|
|
16
16
|
# Sleep — Federation Specialist
|
|
17
17
|
|
|
18
|
+
> **⛔ DISABLED — DO NOT DISPATCH (read-only federation, copy-sync parked on roadmap).**
|
|
19
|
+
> Federation is now a *live reference*: connected, shareable peers are read at
|
|
20
|
+
> recall time and **nothing is ever copied** across a vault boundary. The
|
|
21
|
+
> copy-based drain/distribute path below broke single-source-of-truth (lossy,
|
|
22
|
+
> write-once-stale copies + duplicate/conflict noise on edit), so it is disabled:
|
|
23
|
+
> `dreamcontext federation drain` / `sync` are inert no-ops, and the sleep flow no
|
|
24
|
+
> longer fires this specialist. The contract below is retained for reference only,
|
|
25
|
+
> pending a proper redesign of an opt-in offline-mirror mode. To clean up old
|
|
26
|
+
> `federated:true` copies a previous sync wrote, run `dreamcontext federation purge
|
|
27
|
+
> --all` (a deliberate, user-run action — not a sleep step).
|
|
28
|
+
|
|
18
29
|
## Scope and ownership
|
|
19
30
|
|
|
20
31
|
| You touch | You NEVER touch |
|
|
@@ -69,8 +80,23 @@ The whole job is two idempotent commands, ALWAYS in this order:
|
|
|
69
80
|
To inspect WITHOUT writing, use `dreamcontext federation sync --dry-run`
|
|
70
81
|
(computes + prints, writes nothing, watermark not advanced).
|
|
71
82
|
|
|
72
|
-
3. **
|
|
73
|
-
|
|
83
|
+
3. **Then refresh peer summaries** — rebuild the ambient READ-awareness cache so
|
|
84
|
+
the next session's snapshot "Connected projects" section reflects current
|
|
85
|
+
peer state (what each readable peer IS + what was last done there):
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
dreamcontext federation peers
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
- Resolves readable peers (out/both ∩ not-stale ∩ shareable), reads each
|
|
92
|
+
peer's core files (READ-ONLY), and writes the local cache
|
|
93
|
+
`state/.peer-summaries.json` that the snapshot hot path reads cheaply.
|
|
94
|
+
- Never touches a peer's files; never resolves a peer in the snapshot itself.
|
|
95
|
+
- Idempotent — re-running just rewrites the cache.
|
|
96
|
+
|
|
97
|
+
4. **Report** counts: ingested / collisions / conflicts surfaced / quarantined /
|
|
98
|
+
peers synced / peers summarised. Surface any conflict-note to the user
|
|
99
|
+
explicitly.
|
|
74
100
|
|
|
75
101
|
## Gotchas
|
|
76
102
|
|
|
@@ -44,7 +44,7 @@ always beats blind exploration.
|
|
|
44
44
|
|
|
45
45
|
**Protocol:**
|
|
46
46
|
|
|
47
|
-
1. Run `dreamcontext memory recall "<query>" --top
|
|
47
|
+
1. Run `dreamcontext memory recall "<query>" --top 10 --plain` via Bash.
|
|
48
48
|
2. If the top hit has **score ≥ 5**, Read the top-1 (and top-2 if related)
|
|
49
49
|
files immediately — that's almost certainly your answer.
|
|
50
50
|
3. If hits exist but all scores are **< 2**, treat them as weak signal and
|
|
@@ -54,6 +54,11 @@ always beats blind exploration.
|
|
|
54
54
|
`--json` instead of `--plain` for a machine-readable payload, and
|
|
55
55
|
`--types knowledge,feature,task,memory,changelog` to scope by corpus type.
|
|
56
56
|
|
|
57
|
+
**Cross-vault hits are normal and useful.** Results tagged `<vault>::<type>/<slug>` come
|
|
58
|
+
from connected readable peer projects — this is expected behavior, not noise. If the
|
|
59
|
+
answer likely lives in a specific peer, scope the search with `--vault <name>` to
|
|
60
|
+
search current + that one peer directly.
|
|
61
|
+
|
|
57
62
|
Recall is appropriate for Track A (Documented Knowledge) and for Track B when
|
|
58
63
|
the query is about a documented concept. It is NOT a substitute for Glob/Grep
|
|
59
64
|
on raw code symbols — for "find the function that does X" go straight to
|
|
@@ -127,7 +132,7 @@ NEVER use Bash for any command that modifies files or system state.
|
|
|
127
132
|
## Rules
|
|
128
133
|
|
|
129
134
|
1. **Briefing is pre-loaded.** Never re-read files already summarized in your Sub-agent Briefing.
|
|
130
|
-
2. **Recall before grep.** For any "where/why/what-do-we-know" query, try `dreamcontext memory recall "<query>" --top
|
|
135
|
+
2. **Recall before grep.** For any "where/why/what-do-we-know" query, try `dreamcontext memory recall "<query>" --top 10 --plain` BEFORE Glob/Grep. Read top hits if score ≥ 5; fall back to Glob/Grep only when recall is empty or weak (<2). Results tagged `<vault>::<type>/<slug>` are cross-vault hits from connected peers — expected and useful.
|
|
131
136
|
3. **Hypothesize first.** No blind searching. Use what you know to target your search.
|
|
132
137
|
4. **Parallel everything.** Multiple independent tool calls go in one turn.
|
|
133
138
|
5. **Cheapest tool first.** Glob -> Grep -> Read. Skip steps when you can.
|
|
@@ -15,6 +15,17 @@ skills:
|
|
|
15
15
|
|
|
16
16
|
# Sleep — Federation Specialist
|
|
17
17
|
|
|
18
|
+
> **⛔ DISABLED — DO NOT DISPATCH (read-only federation, copy-sync parked on roadmap).**
|
|
19
|
+
> Federation is now a *live reference*: connected, shareable peers are read at
|
|
20
|
+
> recall time and **nothing is ever copied** across a vault boundary. The
|
|
21
|
+
> copy-based drain/distribute path below broke single-source-of-truth (lossy,
|
|
22
|
+
> write-once-stale copies + duplicate/conflict noise on edit), so it is disabled:
|
|
23
|
+
> `dreamcontext federation drain` / `sync` are inert no-ops, and the sleep flow no
|
|
24
|
+
> longer fires this specialist. The contract below is retained for reference only,
|
|
25
|
+
> pending a proper redesign of an opt-in offline-mirror mode. To clean up old
|
|
26
|
+
> `federated:true` copies a previous sync wrote, run `dreamcontext federation purge
|
|
27
|
+
> --all` (a deliberate, user-run action — not a sleep step).
|
|
28
|
+
|
|
18
29
|
## Scope and ownership
|
|
19
30
|
|
|
20
31
|
| You touch | You NEVER touch |
|
|
@@ -69,8 +80,23 @@ The whole job is two idempotent commands, ALWAYS in this order:
|
|
|
69
80
|
To inspect WITHOUT writing, use `dreamcontext federation sync --dry-run`
|
|
70
81
|
(computes + prints, writes nothing, watermark not advanced).
|
|
71
82
|
|
|
72
|
-
3. **
|
|
73
|
-
|
|
83
|
+
3. **Then refresh peer summaries** — rebuild the ambient READ-awareness cache so
|
|
84
|
+
the next session's snapshot "Connected projects" section reflects current
|
|
85
|
+
peer state (what each readable peer IS + what was last done there):
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
dreamcontext federation peers
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
- Resolves readable peers (out/both ∩ not-stale ∩ shareable), reads each
|
|
92
|
+
peer's core files (READ-ONLY), and writes the local cache
|
|
93
|
+
`state/.peer-summaries.json` that the snapshot hot path reads cheaply.
|
|
94
|
+
- Never touches a peer's files; never resolves a peer in the snapshot itself.
|
|
95
|
+
- Idempotent — re-running just rewrites the cache.
|
|
96
|
+
|
|
97
|
+
4. **Report** counts: ingested / collisions / conflicts surfaced / quarantined /
|
|
98
|
+
peers synced / peers summarised. Surface any conflict-note to the user
|
|
99
|
+
explicitly.
|
|
74
100
|
|
|
75
101
|
## Gotchas
|
|
76
102
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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-DjaqCcd7.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-DjaqCcd7.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-B-_e8Y6s.js";import"./index-DjaqCcd7.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-DjaqCcd7.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};
|