dreamcontext 0.13.0 → 0.13.1
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 +10 -10
- package/agents/sleep-product.md +2 -1
- package/agents/sleep-state.md +4 -1
- package/agents/sleep-tasks.md +5 -2
- package/dist/agents/sleep-product.md +2 -1
- package/dist/agents/sleep-state.md +4 -1
- package/dist/agents/sleep-tasks.md +5 -2
- package/dist/dashboard/assets/{BrainCanvas3D-HGYlhYHu.js → BrainCanvas3D-f5Y6PT-1.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-BJZHEXqg.js → _baseUniq-Ta62vsP4.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-CsUNvMuK.js → ar-SA-G6X2FPQ2-jzxJ_ECp.js} +1 -1
- package/dist/dashboard/assets/{arc-DGi0Y1lU.js → arc-D-o-9UoH.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46--otEkB0L.js → architectureDiagram-Q4EWVU46-DiKlGJXZ.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-Bz0oe5Eb.js → az-AZ-76LH7QW2-BL9xCgsH.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-B2v7y12w.js → bg-BG-XCXSNQG7-Ry_R9evo.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-rqdqmHWw.js → blockDiagram-DXYQGD6D-RsaId3-k.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-CLKX1rP5.js → bn-BD-2XOGV67Q-CUgI7mYR.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-B1FQR5jH.js → c4Diagram-AHTNJAMY-DPghs0tx.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-EtsmfF8w.js → ca-ES-6MX7JW3Y-BRaiYGc1.js} +1 -1
- package/dist/dashboard/assets/channel-BxXtm6aL.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-IRT1ScW_.js → chunk-4BX2VUAB-O7GB9cgM.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-BFzkDfpF.js → chunk-4TB4RGXK-BQOhV1JT.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-B9qWiQhd.js → chunk-55IACEB6-DhAIH--W.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-Bs1drGvm.js → chunk-EDXVE4YY-Chs7mD-k.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-BVN6P2JN.js → chunk-FMBD7UC4-BowamHD9.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-CTr0D0a8.js → chunk-OYMX7WX6-D8UJr8j4.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-C9Rr_prw.js → chunk-QZHKN3VN-BOqj47Nb.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-Wqg7FcGi.js → chunk-YZCP3GAM-UDOQPnhm.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-DRDRixtt.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-DRDRixtt.js +1 -0
- package/dist/dashboard/assets/clone-DDdzwqUk.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-CQThsheb.js → cose-bilkent-S5V4N54A-D-2ct0N_.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-37TE-J0W.js → cs-CZ-2BRQDIVT-y64ojEgs.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-kSVC3Nkd.js → da-DK-5WZEPLOC-CuGITxZe.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-DwQlYMS9.js → dagre-KV5264BT-Cl90-nVJ.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-tFaWOW7F.js → de-DE-XR44H4JA-C4yUFwSz.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-D-mv_xpV.js → diagram-5BDNPKRD-CifW537A.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-Dy1lLVzy.js → diagram-G4DWMVQ6-JF8e4CmK.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-Lq7dM5jQ.js → diagram-MMDJMWI5-CYpfsP8h.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-O7EE1hPN.js → diagram-TYMM5635-b9Z_ORTT.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-DsmJjlU5.js → el-GR-BZB4AONW-CgIyu6Mx.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-D45nuaEe.js → erDiagram-SMLLAGMA-HTrqyUnO.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-CYUoNFhc.js → es-ES-U4NZUMDT-g-shI88D.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-D-BQ9iPg.js → eu-ES-A7QVB2H4-DRfvnooC.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-Ba8HlQch.js → fa-IR-HGAKTJCU-KqJ-bb8r.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-jy2n46JY.js → fi-FI-Z5N7JZ37-Ccm3nZmM.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-D1hlk8iz.js → flowDiagram-DWJPFMVM-B27j9wPy.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-Ztaqa9RN.js → fr-FR-RHASNOE6-DvWMfb10.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-B43ghW2j.js → ganttDiagram-T4ZO3ILL-DFbnEWs4.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-Dn3aowvj.js → gitGraphDiagram-UUTBAWPF-Bl-6_fjw.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-CCoIWkgH.js → gl-ES-HMX3MZ6V-CfsSyCvn.js} +1 -1
- package/dist/dashboard/assets/{graph-Auezy0lX.js → graph-BJt4v-K6.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-unURWMzs.js → he-IL-6SHJWFNN-DvCmEeEq.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-CNEe3ZEN.js → hi-IN-IWLTKZ5I-Caxq3QFJ.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-Ca6Xr577.js → hu-HU-A5ZG7DT2-Cak3F0Es.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-Bdsa7Tti.js → id-ID-SAP4L64H-G6xGS3sm.js} +1 -1
- package/dist/dashboard/assets/index-BoxnNYGo.css +32 -0
- package/dist/dashboard/assets/index-CchlcoQO.js +516 -0
- package/dist/dashboard/assets/{index-3i9IQhA8.js → index-CmFgzgpQ.js} +1 -1
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-DCilbU-9.js → infoDiagram-42DDH7IO-CpKMgFKt.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-BAJxl0Ug.js → ishikawaDiagram-UXIWVN3A-RFbi-dXL.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-Cr5M0y6_.js → it-IT-JPQ66NNP-CRMjGfJO.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-BEqL7zMo.js → ja-JP-DBVTYXUO-qKukhnUz.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-DQmJZZcJ.js → journeyDiagram-VCZTEJTY-CTNV9WYX.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-KfGJeBGx.js → kaa-6HZHGXH3-B5jCPUdj.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-Dr1uqdr5.js → kab-KAB-ZGHBKWFO-BlL73uqK.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-DdLliZYp.js → kanban-definition-6JOO6SKY-COgJyhmy.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-D6yUxUhJ.js → kk-KZ-P5N5QNE5-CG0hwSh6.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-CnRtR0Za.js → km-KH-HSX4SM5Z-D7_LIf3_.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-CXL226cS.js → ko-KR-MTYHY66A-DDs6LMMU.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-C5Mg8Jxd.js → ku-TR-6OUDTVRD-AmvNC30P.js} +1 -1
- package/dist/dashboard/assets/{layout-Bwv1hHAc.js → layout-CpLiDGZe.js} +1 -1
- package/dist/dashboard/assets/{linear-D2tYzuND.js → linear-hxRkR_6Y.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-Dt0oW5bo.js → lt-LT-XHIRWOB4-DIZituwF.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-C_lTQrsH.js → lv-LV-5QDEKY6T-BF9ddjMv.js} +1 -1
- package/dist/dashboard/assets/{min-B_45McV4.js → min-BXf0ulcG.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-nNJ4_GXP.js → mindmap-definition-QFDTVHPH-CkrPsGZI.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-CPReJx93.js → mr-IN-CRQNXWMA-DvT8rSdX.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-C77moGfW.js → my-MM-5M5IBNSE-oTzpHZmp.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-4ghV00ST.js → nb-NO-T6EIAALU-mFTc2K9E.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-CcbzZzgt.js → nl-NL-IS3SIHDZ-BvHG6k52.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-DB_SQzQ1.js → nn-NO-6E72VCQL-DlLoXNop.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-BvsfXsQO.js → oc-FR-POXYY2M6-Cxl6Ws6i.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-7OkFfo05.js → pa-IN-N4M65BXN-BWtil7Y8.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-CkHfntSV.js → percentages-BXMCSKIN-CLq2oyzj.js} +7 -7
- package/dist/dashboard/assets/{pica-BeitlDpi.js → pica-CMJDNnKQ.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-BKp7yitG.js → pieDiagram-DEJITSTG-wlxYzLe8.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-BjjKXzUb.js → pl-PL-T2D74RX3-Bmw53sUP.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-C386x9te.js → pt-BR-5N22H2LF-ULX3TBZk.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-DIJSvX7C.js → pt-PT-UZXXM6DQ-DfHyDkUR.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-DsEevBcx.js → quadrantDiagram-34T5L4WZ-BR5iSy7H.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-DhIxdYs7.js → requirementDiagram-MS252O5E-BNuuSVYh.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-DMFIF-bR.js → ro-RO-JPDTUUEW-BC_5xxMm.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-VGg7NKhM.js → ru-RU-B4JR7IUQ-CQPnfmdC.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-Dp3LCgZS.js → sankeyDiagram-XADWPNL6-CwwUGQVB.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-swUgHNs2.js → sequenceDiagram-FGHM5R23-Dida7vc4.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-DBjYc5Qx.js → si-LK-N5RQ5JYF-C53L84xe.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-DOWk199P.js → sk-SK-C5VTKIMK-BcDGWL_O.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-BnuKAqzs.js → sl-SI-NN7IZMDC-FuMpHBk9.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-DsmTM4wV.js → stateDiagram-FHFEXIEX-CNvfKe7v.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-B8F8hUBl.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-BplosoPQ.js → subset-shared.chunk-Do9_AHqy.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-DXMuJCLI.js → subset-worker.chunk-i2BHHQN3.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-BIJOZjT-.js → sv-SE-XGPEYMSR-CAB9zxpi.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-DgJGUpHc.js → ta-IN-2NMHFXQM-yDO7M7xr.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-vQ27qFlk.js → th-TH-HPSO5L25-B1m3C6pX.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-D95a7dUt.js → timeline-definition-GMOUNBTQ-CujUrKzh.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-C6P_M0Ow.js → tr-TR-DEFEU3FU-CL5wc1n8.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-D45e0sU9.js → uk-UA-QMV73CPH-BbweuNSf.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-Da5942K2.js → vennDiagram-DHZGUBPP-ar0AgOfJ.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-DNPoI5eQ.js → vi-VN-M7AON7JQ--lCR5VP0.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-tkLUEbV4.js → wardley-RL74JXVD-DWD-UZhX.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-C7ekmdEZ.js → wardleyDiagram-NUSXRM2D-Et52gtVy.js} +1 -1
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-Bcd5w_DY.js → xychartDiagram-5P7HB3ND-pMHGVahC.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-CBpPP3ui.js → zh-CN-LNUGB5OW-DSVSl5q1.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-k-efdclM.js → zh-HK-E62DVLB3-DxZ5YtvV.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-CwBUPGXd.js → zh-TW-RAJ6MFWO-DlXNVnbL.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +9588 -9663
- package/package.json +1 -1
- package/skill/SKILL.md +2 -2
- package/skill/references/cli-reference.md +3 -2
- package/skill/references/sleep.md +2 -1
- package/skill/references/tasks-and-features.md +5 -4
- package/dist/dashboard/assets/channel-BdaY6sAg.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-BVUdw0mS.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-BVUdw0mS.js +0 -1
- package/dist/dashboard/assets/clone-oohc8oks.js +0 -1
- package/dist/dashboard/assets/index-BPb4OKml.css +0 -32
- package/dist/dashboard/assets/index-WEV7_Uyf.js +0 -516
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-Pg5PgHZB.js +0 -1
package/README.md
CHANGED
|
@@ -169,7 +169,7 @@ curl -fsSL https://cdn.jsdelivr.net/npm/dreamcontext/install.sh | sh
|
|
|
169
169
|
npm install -g dreamcontext
|
|
170
170
|
```
|
|
171
171
|
|
|
172
|
-
> Requires **Node.js >= 18**. Currently supports **Claude Code
|
|
172
|
+
> Requires **Node.js >= 18**. Currently supports **Claude Code**.
|
|
173
173
|
|
|
174
174
|
```bash
|
|
175
175
|
# One-shot setup — scaffolds _dream_context/, installs the skill, agents,
|
|
@@ -177,7 +177,7 @@ npm install -g dreamcontext
|
|
|
177
177
|
dreamcontext setup
|
|
178
178
|
|
|
179
179
|
# Scriptable / non-interactive (explicit platforms, skip all prompts)
|
|
180
|
-
dreamcontext setup --platforms claude
|
|
180
|
+
dreamcontext setup --platforms claude --defaults
|
|
181
181
|
```
|
|
182
182
|
|
|
183
183
|
One command. Next session, the hook fires, context loads, and the agent is ready.
|
|
@@ -193,7 +193,7 @@ dreamcontext init
|
|
|
193
193
|
|
|
194
194
|
# Install platform integration (multi-select prompt; defaults to Claude)
|
|
195
195
|
dreamcontext install-skill
|
|
196
|
-
dreamcontext install-skill --platforms claude
|
|
196
|
+
dreamcontext install-skill --platforms claude
|
|
197
197
|
```
|
|
198
198
|
|
|
199
199
|
`dreamcontext init` on its own leaves you without `.claude/` skills, agents, and hooks — your agent won't load the context until you also run `install-skill` (or just use `setup`). When run interactively, `init` now offers to finish the install for you.
|
|
@@ -263,10 +263,10 @@ your-project/
|
|
|
263
263
|
For projects that want managed root instruction files without installing the full skill + agent bundle:
|
|
264
264
|
|
|
265
265
|
```bash
|
|
266
|
-
dreamcontext install-instructions --platforms claude
|
|
266
|
+
dreamcontext install-instructions --platforms claude
|
|
267
267
|
```
|
|
268
268
|
|
|
269
|
-
This writes managed fenced blocks into `CLAUDE.md`
|
|
269
|
+
This writes managed fenced blocks into `CLAUDE.md` at the project root, preserving existing non-managed content.
|
|
270
270
|
|
|
271
271
|
## Skills
|
|
272
272
|
|
|
@@ -319,7 +319,7 @@ dreamcontext install-skill --list
|
|
|
319
319
|
| **excalidraw** | Lay out images, labels, shapes, arrows, frames, and lanes on an Obsidian Excalidraw board from a small JSON spec — renders deterministically at near-zero token cost |
|
|
320
320
|
| **video-watching** | Turn a video into a time-mapped transcript with on-screen visuals described inline (whisper.cpp + ffmpeg), then reason about it |
|
|
321
321
|
|
|
322
|
-
_Always-on_ packs apply their base principles to every relevant task; the rest load only when the work matches. Packs install to
|
|
322
|
+
_Always-on_ packs apply their base principles to every relevant task; the rest load only when the work matches. Packs install to `.claude/skills/{pack}/` (+ agents in `.claude/agents/`). Cross-pack dependencies are warned at install time.
|
|
323
323
|
|
|
324
324
|
## Staying Up to Date
|
|
325
325
|
|
|
@@ -506,7 +506,7 @@ dreamcontext lab show weekly-active-users --json # cached series only
|
|
|
506
506
|
|
|
507
507
|
- **Insights, not raw dumps.** A hard cap of **62 points per series** is structural — a year of daily data rolls up to monthly buckets, a month may stay daily. Lab delivers curated metrics to agents and dashboards; it is not a BI tool.
|
|
508
508
|
- **Every session sees the latest value.** Cached snapshots live in the brain, so an insight's latest value and staleness ride the SessionStart snapshot and are recallable by meaning — `dreamcontext memory recall "weekly active users" --types insight` — without knowing the slug.
|
|
509
|
-
- **Measured roadmap progress.** Bind an insight to a roadmap objective's Key Result and `lab sync` writes `metric.current` for you, so the [forecast cascade](#roadmap-objectives--the-okr-board) reflects *measured* progress instead of PO-asserted numbers.
|
|
509
|
+
- **Measured roadmap progress.** Bind an insight to a roadmap objective's Key Result — `dreamcontext lab bind <insight> <objective>`, or search-and-connect it right in the dashboard's objective dialogs — and `lab sync` writes `metric.current` for you, so the [forecast cascade](#roadmap-objectives--the-okr-board) reflects *measured* progress instead of PO-asserted numbers. Connecting seeds the current value from the cached snapshot immediately, and an objective has exactly one feeder: binding a new insight unbinds the previous one, loudly.
|
|
510
510
|
- **Credentials are gitignore-first.** API keys and tokens are written only through `lab credentials set`, stored gitignored at mode `0600`, and structurally redacted — never logged, never returned by a route, and never printed by `credentials list` (names only).
|
|
511
511
|
- **Custom scripts run locally, with a tripwire.** A `.mjs` script insight executes on your machine with your credentials — the same trust level as the repo itself — so if the script changes, Lab prints a loud change notice *before* it runs again.
|
|
512
512
|
- **No silent half-sync.** When a fetch fails the prior cached series is kept intact, the error is surfaced loudly, and the sync exits non-zero. **Sleep does not run lab sync** (credential exposure, latency, non-determinism) — a bound insight feeds a Key Result through its own `lab sync` instead.
|
|
@@ -710,6 +710,7 @@ dreamcontext lab show <slug> [--json] # Show one insight's cache
|
|
|
710
710
|
dreamcontext lab sync [slug] [--all] [--force] # Refresh cached snapshots (skips fresh unless --force)
|
|
711
711
|
dreamcontext lab create <slug> --title "..." --render number|line|pie|raw --adapter http|script [--group <g>] [--ttl <min>]
|
|
712
712
|
dreamcontext lab tweak <slug> <key> <value> # Adjust a declared tweak (e.g. a time range)
|
|
713
|
+
dreamcontext lab bind <slug> <objective> [--value latest|series:<n>] [--clear] # Feed an objective's Key Result
|
|
713
714
|
dreamcontext lab credentials set <key> # Store a source credential (hidden prompt or --value)
|
|
714
715
|
dreamcontext lab credentials list # List credential names only — values are never printed
|
|
715
716
|
```
|
|
@@ -905,12 +906,12 @@ dreamcontext upgrade # Upgrade the CLI to the latest publish
|
|
|
905
906
|
dreamcontext upgrade --check # Print current vs latest version, no install
|
|
906
907
|
dreamcontext update # Refresh installed skill/agent/hook files to match the CLI
|
|
907
908
|
dreamcontext install-skill # Install core integration for selected platforms
|
|
908
|
-
dreamcontext install-skill --platforms claude
|
|
909
|
+
dreamcontext install-skill --platforms claude # Explicit platform selection
|
|
909
910
|
dreamcontext install-skill --packs # Interactive skill pack browser
|
|
910
911
|
dreamcontext install-skill --packs engineering design # Install specific packs
|
|
911
912
|
dreamcontext install-skill --skill <name> # Install a single sub-skill
|
|
912
913
|
dreamcontext install-skill --list # Show available skill packs
|
|
913
|
-
dreamcontext install-instructions --platforms claude
|
|
914
|
+
dreamcontext install-instructions --platforms claude # Write managed root instruction blocks
|
|
914
915
|
dreamcontext install-claude-md # Legacy alias: CLAUDE.md only
|
|
915
916
|
```
|
|
916
917
|
|
|
@@ -925,7 +926,6 @@ dreamcontext install-claude-md # Legacy alias: CLAUDE.md only
|
|
|
925
926
|
## Works With
|
|
926
927
|
|
|
927
928
|
- **Claude Code**: full support via skill, core sub-agents (the **initializer** and **curator** skill families, 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)
|
|
928
|
-
- **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)
|
|
929
929
|
- **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`)
|
|
930
930
|
- **Web Dashboard**: local UI with an in-app **Agent surface** (multi-session terminals + ⌘K command palette), a Tasks board with time-axis views (Timeline/Calendar/Activity heatmap), Core editor, Knowledge, Features, Brain graph, Sleep tracker, and Council Hall (ships in the package)
|
|
931
931
|
- **Obsidian**: `_dream_context/` can be opened as an Obsidian vault; the directory is scaffolded with curated vault settings at `dreamcontext init` time
|
package/agents/sleep-product.md
CHANGED
|
@@ -59,6 +59,7 @@ If none apply when you start, no-op cheaply: read the brief, scan for actual sig
|
|
|
59
59
|
| `_dream_context/knowledge/features/*.md` (create + edit, typed knowledge) | changelog, releases (sleep-state owns) |
|
|
60
60
|
| | `core/objectives/*.md` (PO-authored roadmap objectives — never edit) |
|
|
61
61
|
| | `knowledge/roadmap/board.md` (AUTO-GENERATED by `dreamcontext roadmap` — never hand-edit; the orchestrator regenerates it each sleep) |
|
|
62
|
+
| | `_dream_context/lab/**` (Lab insight manifests/cache/credentials — insights are their own recall-indexed entity, not knowledge; never edit, **never run `lab sync`**) |
|
|
62
63
|
| `dreamcontext knowledge create --tags "..."` | |
|
|
63
64
|
| `dreamcontext features create <name>` | |
|
|
64
65
|
| `dreamcontext features insert <name> <section>` | |
|
|
@@ -406,7 +407,7 @@ Dropped-but-load-bearing self-check: <none | list any digest/auto-bookmark/resea
|
|
|
406
407
|
3. **Tick criteria only when verifiable.** Code shipped + tests pass, or user confirmed in session.
|
|
407
408
|
4. **Never set `released_version`.** That's the user's release call.
|
|
408
409
|
5. **Create PRDs for buildable concepts** that don't have one — they will be lost otherwise.
|
|
409
|
-
6. **Single source of truth — feature vs knowledge.** A topic lives in exactly ONE home. A **feature** PRD documents what a capability *is* (user stories, acceptance criteria); **knowledge** holds research/decisions/rationale; a short technical decision belongs in `2.memory.md` (sleep-state's domain). NEVER create a knowledge file for something that is a feature, never keep a knowledge copy of content that lives in a feature (or vice-versa), and never have both a feature and a knowledge doc covering the same topic — one is the home, the other may only *reference* it. When in doubt, the feature is the home for product capabilities.
|
|
410
|
+
6. **Single source of truth — feature vs knowledge vs insight.** A topic lives in exactly ONE home. A **feature** PRD documents what a capability *is* (user stories, acceptance criteria); **knowledge** holds research/decisions/rationale; a short technical decision belongs in `2.memory.md` (sleep-state's domain); a **business/product metric** lives as a Lab insight (`lab/insights/<slug>.md`, recall type `insight`, cache-backed) — never as a knowledge file restating its numbers, which stale instantly. NEVER create a knowledge file for something that is a feature or an insight, never keep a knowledge copy of content that lives in a feature (or vice-versa), and never have both a feature and a knowledge doc covering the same topic — one is the home, the other may only *reference* it (a knowledge/feature file may name an insight by slug, not copy its series). When in doubt, the feature is the home for product capabilities.
|
|
410
411
|
7. **Knowledge file threshold**: ≥3 paragraphs of content, or material that will be re-read in future sessions.
|
|
411
412
|
8. **Fewest files, sharp boundaries (B2 rubric).** Default to extending an existing file. Fold soft distinctions in — same vertical/brand/topic family, a narrower slice, an increment. Create a new file only for a genuinely separate topic whose own tags sharpen discovery. Not super-files, not fragmentation.
|
|
412
413
|
8a. **Keep the store organized (B0).** NEW boards belong in their context folder (`knowledge/<context>/<title>/`); `apply-diagrams` is reserved for folding legacy flat `knowledge/diagrams/` boards into per-title folders (idempotent, any depth). Group clustered top-level knowledge into logical subfolders only at `deep` depth (flag candidates at light/standard). Subfolders are recall-safe — the index globs `**/*.md`. Folder and tags must tell the same story.
|
package/agents/sleep-state.md
CHANGED
|
@@ -35,7 +35,8 @@ Identity is sacred — a fresh session must immediately understand who the agent
|
|
|
35
35
|
| `core/0-4.*`, `core/6.*` files (Edit, surgical) | task files (sleep-tasks owns) |
|
|
36
36
|
| `dreamcontext core changelog add` | knowledge files incl. `knowledge/data-structures/<product>.md` (sleep-product owns + writes; you only flag staleness) |
|
|
37
37
|
| `dreamcontext core releases {add,active,list,show}` | feature PRDs (sleep-product owns) |
|
|
38
|
-
| `dreamcontext trigger add` (context-dependent reminders) | |
|
|
38
|
+
| `dreamcontext trigger add` (context-dependent reminders) | `core/objectives/*.md` (PO-authored roadmap objectives — no sleep-state writes) |
|
|
39
|
+
| | `_dream_context/lab/**` (Lab insight manifests, cache, credentials — never edit; **never run `lab sync`**) |
|
|
39
40
|
|
|
40
41
|
## Inputs
|
|
41
42
|
|
|
@@ -77,6 +78,8 @@ One commit ≠ one changelog entry. Cluster by **scope and intent**:
|
|
|
77
78
|
|
|
78
79
|
Don't skip uncommitted work — sessions often end before commit.
|
|
79
80
|
|
|
81
|
+
**Lab & roadmap signals are diary-worthy too:** a new insight created (`lab create`), a Key-Result binding set or changed (`lab bind` / dashboard objective dialogs), an insight source/tweak change, or a new roadmap objective each earn an entry (scope `lab` / `roadmap`). Routine `lab/cache/*.json` churn from syncs is NOT user-facing — skip it, same as `.sleep.json` updates.
|
|
82
|
+
|
|
80
83
|
Read the latest 5–10 entries in `CHANGELOG.json` first to match voice/length.
|
|
81
84
|
|
|
82
85
|
#### A2. Add entries via CLI
|
package/agents/sleep-tasks.md
CHANGED
|
@@ -215,7 +215,9 @@ dreamcontext tasks list # every non-completed task, with updated dates
|
|
|
215
215
|
|
|
216
216
|
**(d) Objective linking (only when `core/objectives/` is non-empty).** Objectives are the PO's OKR roadmap items; tasks link to them many-to-many via the `objectives:` frontmatter list. For each task you touched (or created) whose `objectives:` is **absent or empty**, judge which objective(s) the work genuinely serves — check `dreamcontext roadmap objective list` for the live set — and set them: `dreamcontext tasks objectives <slug> <a,b>` (multiple slugs when one task lifts several outcomes, e.g. revenue AND retention — that's expected, not double-counting). **HARD RULE: a non-empty `objectives:` list is a PO decision — NEVER change or extend it.** If no objective fits, leave the field empty; do not force a link. You only edit the task-side field; `core/objectives/*.md` prose/title/dates/structure stay PO-authored and off-limits. Rollups/forecasts recompute when the orchestrator runs `dreamcontext roadmap` after your report.
|
|
217
217
|
|
|
218
|
-
**Key Result current — you MAY update it.** When this cycle surfaced a new real observed value for an objective's Key Result metric (e.g. MRR moved to $1,250, active users hit 400) — from the transcript, a file, or a connected system — refresh it: `dreamcontext roadmap objective metric <slug> --current <n>`. This is the ONE write you may make to a `core/objectives/*.md` file, and only through this CLI verb (never hand-edit the frontmatter). Use a value you actually observed — do not invent or estimate a number. The roadmap board regen at the end of sleep will reflect the new progress.
|
|
218
|
+
**Key Result current — you MAY update it, EXCEPT on insight-fed objectives.** When this cycle surfaced a new real observed value for an objective's Key Result metric (e.g. MRR moved to $1,250, active users hit 400) — from the transcript, a file, or a connected system — refresh it: `dreamcontext roadmap objective metric <slug> --current <n>`. This is the ONE write you may make to a `core/objectives/*.md` file, and only through this CLI verb (never hand-edit the frontmatter). Use a value you actually observed — do not invent or estimate a number. The roadmap board regen at the end of sleep will reflect the new progress.
|
|
219
|
+
|
|
220
|
+
**Insight-bound Key Results are hands-off.** Some objectives are *measured*, not asserted: a Lab insight (`_dream_context/lab/insights/<slug>.md`) may carry `binding: {objective: <slug>}`, meaning `lab bind` seeded — and every `lab sync` rewrites — that objective's `metric.current`. Before any metric write, check for a feeder: `dreamcontext lab list --json` and look for a manifest whose `binding.objective` equals the objective's slug (one feeder max per objective). If bound, do NOT write `metric.current` — your number would be overwritten at the next sync and blurs measured-vs-asserted provenance. If the feeding insight's cache looks stale or errored (`dreamcontext lab show <slug>` → old `fetchedAt` / `error` set), say so in your report so the user refreshes it. **Sleep NEVER runs `lab sync`** — that's a standing decision (credential exposure, latency, non-determinism); refreshing is always an explicit user/agent action outside sleep.
|
|
219
221
|
|
|
220
222
|
Never silently delete a task, and never `completed` a task that was never actually done — for superseded/abandoned/obsoleted work, `in_review` with an explicit reason hands the close decision to the user. List every grooming action in your report.
|
|
221
223
|
|
|
@@ -231,6 +233,7 @@ Never silently delete a task, and never `completed` a task that was never actual
|
|
|
231
233
|
- Version readiness: vX.Y.Z — 4/5 tasks ready for review
|
|
232
234
|
- Backlog grooming: <slug> obsoleted by pivot → in_review ("confirm close"), <slug> re-attached v0.8.x→v0.9.0, <slug> tags normalized + facets added, <slug> priority high→medium (untouched 30d), 2 tasks left as-is (genuinely planned)
|
|
233
235
|
- Objective links: <slug> → [retention-20, revenue] (was empty), <slug> left unlinked (no objective fits) | OR: no objectives in this project — skipped
|
|
236
|
+
- KR metrics: <objective> current → <n> (observed in transcript) | <objective> SKIPPED — fed by bound insight <insight-slug> (cache stale since <date>; suggest `lab sync <insight-slug>`) | OR: no metric observations this cycle
|
|
234
237
|
- Cross-domain mentions: <slug> includes a memory-worthy decision about JWT — flagging for sleep-state
|
|
235
238
|
- Skipped: <session_id> had no actionable task signal
|
|
236
239
|
|
|
@@ -247,4 +250,4 @@ Dropped-but-load-bearing self-check: <none | list any digest/auto-bookmark/task
|
|
|
247
250
|
6. **CLI first** for status/log/insert; **Edit** for surgical body reconciliation (including broadening `description:` / `## Why` when scope grows).
|
|
248
251
|
7. **Person attribution is multi-person only.** Read `.config.json` `people` first. If 0 or 1 entry, step 2.5 is a complete NO-OP — never inject `person:` tags on solo projects. Derived multi-person status comes from `people.length > 1`; there is no `multiPerson` key to check.
|
|
249
252
|
8. **Normalize tags via taxonomy vocab.** When writing or updating task frontmatter tags, check `dreamcontext taxonomy vocab` and use canonical forms (faceted or bare standard tags); non-canonical tags degrade recall.
|
|
250
|
-
9. **Objectives: propose for empty, never overwrite non-empty.** An existing `objectives:` value is a PO decision that sticks. You fill blanks with judgment; you never revise the PO's linking. Objective files themselves (`core/objectives/`) are PO-authored — never hand-edit their prose, title, dates, or structure — with the single exception that you may refresh a Key Result's `current` via `dreamcontext roadmap objective metric <slug> --current` when you observed a new real value (see grooming (d)).
|
|
253
|
+
9. **Objectives: propose for empty, never overwrite non-empty.** An existing `objectives:` value is a PO decision that sticks. You fill blanks with judgment; you never revise the PO's linking. Objective files themselves (`core/objectives/`) are PO-authored — never hand-edit their prose, title, dates, or structure — with the single exception that you may refresh a Key Result's `current` via `dreamcontext roadmap objective metric <slug> --current` when you observed a new real value (see grooming (d)) — and NEVER on an objective fed by a bound Lab insight (check `dreamcontext lab list --json` for `binding.objective`; measured values belong to `lab sync`, which sleep never runs).
|
|
@@ -59,6 +59,7 @@ If none apply when you start, no-op cheaply: read the brief, scan for actual sig
|
|
|
59
59
|
| `_dream_context/knowledge/features/*.md` (create + edit, typed knowledge) | changelog, releases (sleep-state owns) |
|
|
60
60
|
| | `core/objectives/*.md` (PO-authored roadmap objectives — never edit) |
|
|
61
61
|
| | `knowledge/roadmap/board.md` (AUTO-GENERATED by `dreamcontext roadmap` — never hand-edit; the orchestrator regenerates it each sleep) |
|
|
62
|
+
| | `_dream_context/lab/**` (Lab insight manifests/cache/credentials — insights are their own recall-indexed entity, not knowledge; never edit, **never run `lab sync`**) |
|
|
62
63
|
| `dreamcontext knowledge create --tags "..."` | |
|
|
63
64
|
| `dreamcontext features create <name>` | |
|
|
64
65
|
| `dreamcontext features insert <name> <section>` | |
|
|
@@ -406,7 +407,7 @@ Dropped-but-load-bearing self-check: <none | list any digest/auto-bookmark/resea
|
|
|
406
407
|
3. **Tick criteria only when verifiable.** Code shipped + tests pass, or user confirmed in session.
|
|
407
408
|
4. **Never set `released_version`.** That's the user's release call.
|
|
408
409
|
5. **Create PRDs for buildable concepts** that don't have one — they will be lost otherwise.
|
|
409
|
-
6. **Single source of truth — feature vs knowledge.** A topic lives in exactly ONE home. A **feature** PRD documents what a capability *is* (user stories, acceptance criteria); **knowledge** holds research/decisions/rationale; a short technical decision belongs in `2.memory.md` (sleep-state's domain). NEVER create a knowledge file for something that is a feature, never keep a knowledge copy of content that lives in a feature (or vice-versa), and never have both a feature and a knowledge doc covering the same topic — one is the home, the other may only *reference* it. When in doubt, the feature is the home for product capabilities.
|
|
410
|
+
6. **Single source of truth — feature vs knowledge vs insight.** A topic lives in exactly ONE home. A **feature** PRD documents what a capability *is* (user stories, acceptance criteria); **knowledge** holds research/decisions/rationale; a short technical decision belongs in `2.memory.md` (sleep-state's domain); a **business/product metric** lives as a Lab insight (`lab/insights/<slug>.md`, recall type `insight`, cache-backed) — never as a knowledge file restating its numbers, which stale instantly. NEVER create a knowledge file for something that is a feature or an insight, never keep a knowledge copy of content that lives in a feature (or vice-versa), and never have both a feature and a knowledge doc covering the same topic — one is the home, the other may only *reference* it (a knowledge/feature file may name an insight by slug, not copy its series). When in doubt, the feature is the home for product capabilities.
|
|
410
411
|
7. **Knowledge file threshold**: ≥3 paragraphs of content, or material that will be re-read in future sessions.
|
|
411
412
|
8. **Fewest files, sharp boundaries (B2 rubric).** Default to extending an existing file. Fold soft distinctions in — same vertical/brand/topic family, a narrower slice, an increment. Create a new file only for a genuinely separate topic whose own tags sharpen discovery. Not super-files, not fragmentation.
|
|
412
413
|
8a. **Keep the store organized (B0).** NEW boards belong in their context folder (`knowledge/<context>/<title>/`); `apply-diagrams` is reserved for folding legacy flat `knowledge/diagrams/` boards into per-title folders (idempotent, any depth). Group clustered top-level knowledge into logical subfolders only at `deep` depth (flag candidates at light/standard). Subfolders are recall-safe — the index globs `**/*.md`. Folder and tags must tell the same story.
|
|
@@ -35,7 +35,8 @@ Identity is sacred — a fresh session must immediately understand who the agent
|
|
|
35
35
|
| `core/0-4.*`, `core/6.*` files (Edit, surgical) | task files (sleep-tasks owns) |
|
|
36
36
|
| `dreamcontext core changelog add` | knowledge files incl. `knowledge/data-structures/<product>.md` (sleep-product owns + writes; you only flag staleness) |
|
|
37
37
|
| `dreamcontext core releases {add,active,list,show}` | feature PRDs (sleep-product owns) |
|
|
38
|
-
| `dreamcontext trigger add` (context-dependent reminders) | |
|
|
38
|
+
| `dreamcontext trigger add` (context-dependent reminders) | `core/objectives/*.md` (PO-authored roadmap objectives — no sleep-state writes) |
|
|
39
|
+
| | `_dream_context/lab/**` (Lab insight manifests, cache, credentials — never edit; **never run `lab sync`**) |
|
|
39
40
|
|
|
40
41
|
## Inputs
|
|
41
42
|
|
|
@@ -77,6 +78,8 @@ One commit ≠ one changelog entry. Cluster by **scope and intent**:
|
|
|
77
78
|
|
|
78
79
|
Don't skip uncommitted work — sessions often end before commit.
|
|
79
80
|
|
|
81
|
+
**Lab & roadmap signals are diary-worthy too:** a new insight created (`lab create`), a Key-Result binding set or changed (`lab bind` / dashboard objective dialogs), an insight source/tweak change, or a new roadmap objective each earn an entry (scope `lab` / `roadmap`). Routine `lab/cache/*.json` churn from syncs is NOT user-facing — skip it, same as `.sleep.json` updates.
|
|
82
|
+
|
|
80
83
|
Read the latest 5–10 entries in `CHANGELOG.json` first to match voice/length.
|
|
81
84
|
|
|
82
85
|
#### A2. Add entries via CLI
|
|
@@ -215,7 +215,9 @@ dreamcontext tasks list # every non-completed task, with updated dates
|
|
|
215
215
|
|
|
216
216
|
**(d) Objective linking (only when `core/objectives/` is non-empty).** Objectives are the PO's OKR roadmap items; tasks link to them many-to-many via the `objectives:` frontmatter list. For each task you touched (or created) whose `objectives:` is **absent or empty**, judge which objective(s) the work genuinely serves — check `dreamcontext roadmap objective list` for the live set — and set them: `dreamcontext tasks objectives <slug> <a,b>` (multiple slugs when one task lifts several outcomes, e.g. revenue AND retention — that's expected, not double-counting). **HARD RULE: a non-empty `objectives:` list is a PO decision — NEVER change or extend it.** If no objective fits, leave the field empty; do not force a link. You only edit the task-side field; `core/objectives/*.md` prose/title/dates/structure stay PO-authored and off-limits. Rollups/forecasts recompute when the orchestrator runs `dreamcontext roadmap` after your report.
|
|
217
217
|
|
|
218
|
-
**Key Result current — you MAY update it.** When this cycle surfaced a new real observed value for an objective's Key Result metric (e.g. MRR moved to $1,250, active users hit 400) — from the transcript, a file, or a connected system — refresh it: `dreamcontext roadmap objective metric <slug> --current <n>`. This is the ONE write you may make to a `core/objectives/*.md` file, and only through this CLI verb (never hand-edit the frontmatter). Use a value you actually observed — do not invent or estimate a number. The roadmap board regen at the end of sleep will reflect the new progress.
|
|
218
|
+
**Key Result current — you MAY update it, EXCEPT on insight-fed objectives.** When this cycle surfaced a new real observed value for an objective's Key Result metric (e.g. MRR moved to $1,250, active users hit 400) — from the transcript, a file, or a connected system — refresh it: `dreamcontext roadmap objective metric <slug> --current <n>`. This is the ONE write you may make to a `core/objectives/*.md` file, and only through this CLI verb (never hand-edit the frontmatter). Use a value you actually observed — do not invent or estimate a number. The roadmap board regen at the end of sleep will reflect the new progress.
|
|
219
|
+
|
|
220
|
+
**Insight-bound Key Results are hands-off.** Some objectives are *measured*, not asserted: a Lab insight (`_dream_context/lab/insights/<slug>.md`) may carry `binding: {objective: <slug>}`, meaning `lab bind` seeded — and every `lab sync` rewrites — that objective's `metric.current`. Before any metric write, check for a feeder: `dreamcontext lab list --json` and look for a manifest whose `binding.objective` equals the objective's slug (one feeder max per objective). If bound, do NOT write `metric.current` — your number would be overwritten at the next sync and blurs measured-vs-asserted provenance. If the feeding insight's cache looks stale or errored (`dreamcontext lab show <slug>` → old `fetchedAt` / `error` set), say so in your report so the user refreshes it. **Sleep NEVER runs `lab sync`** — that's a standing decision (credential exposure, latency, non-determinism); refreshing is always an explicit user/agent action outside sleep.
|
|
219
221
|
|
|
220
222
|
Never silently delete a task, and never `completed` a task that was never actually done — for superseded/abandoned/obsoleted work, `in_review` with an explicit reason hands the close decision to the user. List every grooming action in your report.
|
|
221
223
|
|
|
@@ -231,6 +233,7 @@ Never silently delete a task, and never `completed` a task that was never actual
|
|
|
231
233
|
- Version readiness: vX.Y.Z — 4/5 tasks ready for review
|
|
232
234
|
- Backlog grooming: <slug> obsoleted by pivot → in_review ("confirm close"), <slug> re-attached v0.8.x→v0.9.0, <slug> tags normalized + facets added, <slug> priority high→medium (untouched 30d), 2 tasks left as-is (genuinely planned)
|
|
233
235
|
- Objective links: <slug> → [retention-20, revenue] (was empty), <slug> left unlinked (no objective fits) | OR: no objectives in this project — skipped
|
|
236
|
+
- KR metrics: <objective> current → <n> (observed in transcript) | <objective> SKIPPED — fed by bound insight <insight-slug> (cache stale since <date>; suggest `lab sync <insight-slug>`) | OR: no metric observations this cycle
|
|
234
237
|
- Cross-domain mentions: <slug> includes a memory-worthy decision about JWT — flagging for sleep-state
|
|
235
238
|
- Skipped: <session_id> had no actionable task signal
|
|
236
239
|
|
|
@@ -247,4 +250,4 @@ Dropped-but-load-bearing self-check: <none | list any digest/auto-bookmark/task
|
|
|
247
250
|
6. **CLI first** for status/log/insert; **Edit** for surgical body reconciliation (including broadening `description:` / `## Why` when scope grows).
|
|
248
251
|
7. **Person attribution is multi-person only.** Read `.config.json` `people` first. If 0 or 1 entry, step 2.5 is a complete NO-OP — never inject `person:` tags on solo projects. Derived multi-person status comes from `people.length > 1`; there is no `multiPerson` key to check.
|
|
249
252
|
8. **Normalize tags via taxonomy vocab.** When writing or updating task frontmatter tags, check `dreamcontext taxonomy vocab` and use canonical forms (faceted or bare standard tags); non-canonical tags degrade recall.
|
|
250
|
-
9. **Objectives: propose for empty, never overwrite non-empty.** An existing `objectives:` value is a PO decision that sticks. You fill blanks with judgment; you never revise the PO's linking. Objective files themselves (`core/objectives/`) are PO-authored — never hand-edit their prose, title, dates, or structure — with the single exception that you may refresh a Key Result's `current` via `dreamcontext roadmap objective metric <slug> --current` when you observed a new real value (see grooming (d)).
|
|
253
|
+
9. **Objectives: propose for empty, never overwrite non-empty.** An existing `objectives:` value is a PO decision that sticks. You fill blanks with judgment; you never revise the PO's linking. Objective files themselves (`core/objectives/`) are PO-authored — never hand-edit their prose, title, dates, or structure — with the single exception that you may refresh a Key Result's `current` via `dreamcontext roadmap objective metric <slug> --current` when you observed a new real value (see grooming (d)) — and NEVER on an objective fed by a bound Lab insight (check `dreamcontext lab list --json` for `binding.objective`; measured values belong to `lab sync`, which sleep never runs).
|
|
@@ -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-CchlcoQO.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-CchlcoQO.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-CLq2oyzj.js";import"./index-CchlcoQO.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-CchlcoQO.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};
|