dreamcontext 0.8.6 → 0.8.8

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.
Files changed (149) hide show
  1. package/agents/dreamcontext-explore.md +7 -3
  2. package/agents/dreamcontext-initializer.md +9 -0
  3. package/agents/sleep-migration.md +18 -10
  4. package/agents/sleep-product.md +6 -6
  5. package/agents/sleep-state.md +3 -3
  6. package/agents/sleep-tasks.md +4 -3
  7. package/dist/agents/dreamcontext-explore.md +7 -3
  8. package/dist/agents/dreamcontext-initializer.md +9 -0
  9. package/dist/agents/sleep-migration.md +18 -10
  10. package/dist/agents/sleep-product.md +6 -6
  11. package/dist/agents/sleep-state.md +3 -3
  12. package/dist/agents/sleep-tasks.md +4 -3
  13. package/dist/dashboard/assets/Assistant-Bold-gm-uSS1B.woff2 +0 -0
  14. package/dist/dashboard/assets/Assistant-Medium-DrcxCXg3.woff2 +0 -0
  15. package/dist/dashboard/assets/Assistant-Regular-DVxZuzxb.woff2 +0 -0
  16. package/dist/dashboard/assets/Assistant-SemiBold-SCI4bEL9.woff2 +0 -0
  17. package/dist/dashboard/assets/{BrainCanvas3D-CAB2im2F.js → BrainCanvas3D-CyuMh6vC.js} +1 -1
  18. package/dist/dashboard/assets/{_baseUniq-dsXhE6Mb.js → _baseUniq-TeXEp9Tn.js} +1 -1
  19. package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-BmAprFYu.js → ar-SA-G6X2FPQ2-Da5wNUeW.js} +1 -1
  20. package/dist/dashboard/assets/{arc-d9gHov8I.js → arc-NQuoeYrp.js} +1 -1
  21. package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-C58hXcUE.js → architectureDiagram-Q4EWVU46-B108azq_.js} +1 -1
  22. package/dist/dashboard/assets/{az-AZ-76LH7QW2-BDUks0et.js → az-AZ-76LH7QW2-cJYSsraO.js} +1 -1
  23. package/dist/dashboard/assets/{bg-BG-XCXSNQG7-Bdi-CLmM.js → bg-BG-XCXSNQG7-Dt4_IvAk.js} +1 -1
  24. package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-yJn6zNZG.js → blockDiagram-DXYQGD6D-HAo6Tqxd.js} +1 -1
  25. package/dist/dashboard/assets/{bn-BD-2XOGV67Q-THuskwuf.js → bn-BD-2XOGV67Q-DE20hZpG.js} +1 -1
  26. package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-fGKTGH97.js → c4Diagram-AHTNJAMY-SHRA5Nk_.js} +1 -1
  27. package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-CWrsv8xQ.js → ca-ES-6MX7JW3Y-9ZUzuDs-.js} +1 -1
  28. package/dist/dashboard/assets/channel-CIQg6WkP.js +1 -0
  29. package/dist/dashboard/assets/{chunk-4BX2VUAB-ZCQicbHU.js → chunk-4BX2VUAB-BlLy4y9z.js} +1 -1
  30. package/dist/dashboard/assets/{chunk-4TB4RGXK-DGTUpfCU.js → chunk-4TB4RGXK-cDLog-pk.js} +1 -1
  31. package/dist/dashboard/assets/{chunk-55IACEB6-BnK0E2R4.js → chunk-55IACEB6-BfLlL9Jv.js} +1 -1
  32. package/dist/dashboard/assets/{chunk-EDXVE4YY-B3YEC9QU.js → chunk-EDXVE4YY-BjKTlHye.js} +1 -1
  33. package/dist/dashboard/assets/{chunk-FMBD7UC4-DIteC6lG.js → chunk-FMBD7UC4-CoMoOB69.js} +1 -1
  34. package/dist/dashboard/assets/{chunk-OYMX7WX6-DC84qLFn.js → chunk-OYMX7WX6-DSYZ4BzO.js} +1 -1
  35. package/dist/dashboard/assets/{chunk-QZHKN3VN-Uc2Uvh7x.js → chunk-QZHKN3VN-hsCUyt37.js} +1 -1
  36. package/dist/dashboard/assets/{chunk-YZCP3GAM--p-GHUD7.js → chunk-YZCP3GAM-CMBEUThQ.js} +1 -1
  37. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-kJkUaIqm.js +1 -0
  38. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-kJkUaIqm.js +1 -0
  39. package/dist/dashboard/assets/clone-COSoK5_M.js +1 -0
  40. package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-DBBUVsxi.js → cose-bilkent-S5V4N54A-Ds3A4r-y.js} +1 -1
  41. package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-B8STDI2F.js → cs-CZ-2BRQDIVT-WgNPbRaT.js} +1 -1
  42. package/dist/dashboard/assets/{da-DK-5WZEPLOC-CWhAB8Gq.js → da-DK-5WZEPLOC-BQPVoqBy.js} +1 -1
  43. package/dist/dashboard/assets/{dagre-KV5264BT-BcS_NAij.js → dagre-KV5264BT-D3AamC0s.js} +1 -1
  44. package/dist/dashboard/assets/{de-DE-XR44H4JA-BULNBnuJ.js → de-DE-XR44H4JA-FOMlLeg-.js} +1 -1
  45. package/dist/dashboard/assets/{diagram-5BDNPKRD-CmCCHnLC.js → diagram-5BDNPKRD-DeAuY_LW.js} +1 -1
  46. package/dist/dashboard/assets/{diagram-G4DWMVQ6-Ba84raDA.js → diagram-G4DWMVQ6-CsPuBl6m.js} +1 -1
  47. package/dist/dashboard/assets/{diagram-MMDJMWI5-xNrgYgGq.js → diagram-MMDJMWI5-Celrp7iZ.js} +1 -1
  48. package/dist/dashboard/assets/{diagram-TYMM5635-CMTfUaO1.js → diagram-TYMM5635-D-Y8kdqj.js} +1 -1
  49. package/dist/dashboard/assets/{el-GR-BZB4AONW-DBD23y9B.js → el-GR-BZB4AONW-DdhrZvUu.js} +1 -1
  50. package/dist/dashboard/assets/{erDiagram-SMLLAGMA-BajnFM-6.js → erDiagram-SMLLAGMA-CyPB81Ul.js} +1 -1
  51. package/dist/dashboard/assets/{es-ES-U4NZUMDT-C71t6ojw.js → es-ES-U4NZUMDT-B-Hbpc6c.js} +1 -1
  52. package/dist/dashboard/assets/{eu-ES-A7QVB2H4-B_ttSuYR.js → eu-ES-A7QVB2H4-CIeXN6PD.js} +1 -1
  53. package/dist/dashboard/assets/{fa-IR-HGAKTJCU-Bq4zIqyT.js → fa-IR-HGAKTJCU-BojqXzkR.js} +1 -1
  54. package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-CsLCTzrZ.js → fi-FI-Z5N7JZ37-Dix2X0V9.js} +1 -1
  55. package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-CwfPSiA0.js → flowDiagram-DWJPFMVM-D7IX0DxI.js} +1 -1
  56. package/dist/dashboard/assets/{fr-FR-RHASNOE6-3XVH-KvN.js → fr-FR-RHASNOE6-B-jqOA6L.js} +1 -1
  57. package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-DttgldaZ.js → ganttDiagram-T4ZO3ILL-CbK6p7_G.js} +1 -1
  58. package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-BD3bGHtr.js → gitGraphDiagram-UUTBAWPF-DWDwNpLK.js} +1 -1
  59. package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-DROoNE8o.js → gl-ES-HMX3MZ6V-B6zmZpsw.js} +1 -1
  60. package/dist/dashboard/assets/{graph-CDuZp5IO.js → graph-CrDZc6w0.js} +1 -1
  61. package/dist/dashboard/assets/{he-IL-6SHJWFNN-BqAkB-H9.js → he-IL-6SHJWFNN-CaSPpOxb.js} +1 -1
  62. package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-Bn1svlpD.js → hi-IN-IWLTKZ5I-n86mXoF4.js} +1 -1
  63. package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-BpbEcSt9.js → hu-HU-A5ZG7DT2-MqIG43UE.js} +1 -1
  64. package/dist/dashboard/assets/{id-ID-SAP4L64H-BFbKSomM.js → id-ID-SAP4L64H-DbrGiOFJ.js} +1 -1
  65. package/dist/dashboard/assets/index-D1nedbBU.css +1 -0
  66. package/dist/dashboard/assets/{index-Di8SAJL6.js → index-DjaqCcd7.js} +106 -104
  67. package/dist/dashboard/assets/{index-cIXUPF7a.js → index-zJ2-S49k.js} +1 -1
  68. package/dist/dashboard/assets/{infoDiagram-42DDH7IO-CrGCfIaU.js → infoDiagram-42DDH7IO-CpAQyAyt.js} +1 -1
  69. package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-DdanP4Cg.js → ishikawaDiagram-UXIWVN3A-DXIwINgb.js} +1 -1
  70. package/dist/dashboard/assets/{it-IT-JPQ66NNP-DElAu1GB.js → it-IT-JPQ66NNP-IX1Td9Wl.js} +1 -1
  71. package/dist/dashboard/assets/{ja-JP-DBVTYXUO-CX5hYCt6.js → ja-JP-DBVTYXUO-Bd8nX8VR.js} +1 -1
  72. package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-BJYoD993.js → journeyDiagram-VCZTEJTY-DZlgujgy.js} +1 -1
  73. package/dist/dashboard/assets/{kaa-6HZHGXH3-Dv86pOJk.js → kaa-6HZHGXH3-D5xD9fsf.js} +1 -1
  74. package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-BdVPAiBC.js → kab-KAB-ZGHBKWFO-xBaAbT-9.js} +1 -1
  75. package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-BCtHyYn3.js → kanban-definition-6JOO6SKY-0klC865z.js} +1 -1
  76. package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-rqy6kPw3.js → kk-KZ-P5N5QNE5-CboXRRre.js} +1 -1
  77. package/dist/dashboard/assets/{km-KH-HSX4SM5Z-W6zLGjnE.js → km-KH-HSX4SM5Z-Clsilmtp.js} +1 -1
  78. package/dist/dashboard/assets/{ko-KR-MTYHY66A-ACtkqDBa.js → ko-KR-MTYHY66A-CIjzZcRO.js} +1 -1
  79. package/dist/dashboard/assets/{ku-TR-6OUDTVRD-D2MiKXrW.js → ku-TR-6OUDTVRD-Bs1RU4e9.js} +1 -1
  80. package/dist/dashboard/assets/{layout-G4fEkmiY.js → layout-fipBctpD.js} +1 -1
  81. package/dist/dashboard/assets/{linear-B2IKexSz.js → linear-DVXXJr0u.js} +1 -1
  82. package/dist/dashboard/assets/{lt-LT-XHIRWOB4-BXUl6qoc.js → lt-LT-XHIRWOB4-CQ-xLU_o.js} +1 -1
  83. package/dist/dashboard/assets/{lv-LV-5QDEKY6T-CbfqRExf.js → lv-LV-5QDEKY6T-C0inT4d9.js} +1 -1
  84. package/dist/dashboard/assets/{min-CGs-EORe.js → min-B_cNy5kS.js} +1 -1
  85. package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-BG5rEg9o.js → mindmap-definition-QFDTVHPH-Cioz1NOY.js} +1 -1
  86. package/dist/dashboard/assets/{mr-IN-CRQNXWMA-BDQS6spB.js → mr-IN-CRQNXWMA-DhEHYUYK.js} +1 -1
  87. package/dist/dashboard/assets/{my-MM-5M5IBNSE-slOXMPAS.js → my-MM-5M5IBNSE-Dj4Iwdrf.js} +1 -1
  88. package/dist/dashboard/assets/{nb-NO-T6EIAALU-DsUSa36i.js → nb-NO-T6EIAALU-CvAPy7iN.js} +1 -1
  89. package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-Bmxt9uv4.js → nl-NL-IS3SIHDZ-DgQc3gPO.js} +1 -1
  90. package/dist/dashboard/assets/{nn-NO-6E72VCQL-B3EKWZ2E.js → nn-NO-6E72VCQL-DORPUv8K.js} +1 -1
  91. package/dist/dashboard/assets/{oc-FR-POXYY2M6-CQ95AKGA.js → oc-FR-POXYY2M6-Cym9O8Me.js} +1 -1
  92. package/dist/dashboard/assets/{pa-IN-N4M65BXN-DlOGvEPy.js → pa-IN-N4M65BXN-BiE5SCOy.js} +1 -1
  93. package/dist/dashboard/assets/percentages-BXMCSKIN-B-_e8Y6s.js +215 -0
  94. package/dist/dashboard/assets/percentages-BXMCSKIN-DnMnD4LF.css +1 -0
  95. package/dist/dashboard/assets/{pica-BElmNROA.js → pica-C5ISA_oR.js} +1 -1
  96. package/dist/dashboard/assets/{pieDiagram-DEJITSTG-CM8vpcY4.js → pieDiagram-DEJITSTG-CD7iu1Mo.js} +1 -1
  97. package/dist/dashboard/assets/{pl-PL-T2D74RX3-ia8QfWiE.js → pl-PL-T2D74RX3-C-29ZIfD.js} +1 -1
  98. package/dist/dashboard/assets/{pt-BR-5N22H2LF-Dk0_mzTj.js → pt-BR-5N22H2LF-CIQq615m.js} +1 -1
  99. package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-DVhHd3sQ.js → pt-PT-UZXXM6DQ-CN7xbXrH.js} +1 -1
  100. package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-DHK8pFQ0.js → quadrantDiagram-34T5L4WZ-DEPkZ_lv.js} +1 -1
  101. package/dist/dashboard/assets/{requirementDiagram-MS252O5E-O5-02BwJ.js → requirementDiagram-MS252O5E-BpAjr03x.js} +1 -1
  102. package/dist/dashboard/assets/{ro-RO-JPDTUUEW-BnsPiMQX.js → ro-RO-JPDTUUEW-DBtenXzw.js} +1 -1
  103. package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-DGg0hVo9.js → ru-RU-B4JR7IUQ-CA_iHOeh.js} +1 -1
  104. package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-CWTRPjWg.js → sankeyDiagram-XADWPNL6-B1zLPVle.js} +1 -1
  105. package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-DgPVR3Bj.js → sequenceDiagram-FGHM5R23-pEX8i9B5.js} +1 -1
  106. package/dist/dashboard/assets/{si-LK-N5RQ5JYF-tYLdyZ7v.js → si-LK-N5RQ5JYF-BTsFn4Rn.js} +1 -1
  107. package/dist/dashboard/assets/{sk-SK-C5VTKIMK-1xA3G05_.js → sk-SK-C5VTKIMK-DGoN-I5B.js} +1 -1
  108. package/dist/dashboard/assets/{sl-SI-NN7IZMDC-DhfNsg9e.js → sl-SI-NN7IZMDC-CwiRr92B.js} +1 -1
  109. package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-Bca5FGdM.js → stateDiagram-FHFEXIEX-W_EdYNVF.js} +1 -1
  110. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-BsdphuJ6.js +1 -0
  111. package/dist/dashboard/assets/{subset-shared.chunk-CGU8uh4H.js → subset-shared.chunk-CAlKIepB.js} +1 -1
  112. package/dist/dashboard/assets/{subset-worker.chunk-y2R5BeoP.js → subset-worker.chunk-YIXEPnjQ.js} +1 -1
  113. package/dist/dashboard/assets/{sv-SE-XGPEYMSR-DfzE39Ps.js → sv-SE-XGPEYMSR-7SNur8Fe.js} +1 -1
  114. package/dist/dashboard/assets/{ta-IN-2NMHFXQM-D7LBIYw1.js → ta-IN-2NMHFXQM-DqQBCB2J.js} +1 -1
  115. package/dist/dashboard/assets/{th-TH-HPSO5L25-Cfm5Dm_a.js → th-TH-HPSO5L25-ClwEsAak.js} +1 -1
  116. package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-C-mJxmUk.js → timeline-definition-GMOUNBTQ-uPtwwnY7.js} +1 -1
  117. package/dist/dashboard/assets/{tr-TR-DEFEU3FU-m5lXhQtR.js → tr-TR-DEFEU3FU-DmCg5qbG.js} +1 -1
  118. package/dist/dashboard/assets/{uk-UA-QMV73CPH-CDhF3uD5.js → uk-UA-QMV73CPH-DixKG8eB.js} +1 -1
  119. package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-EXa8McYU.js → vennDiagram-DHZGUBPP-CAggDlIj.js} +1 -1
  120. package/dist/dashboard/assets/{vi-VN-M7AON7JQ-C67Ii_Ev.js → vi-VN-M7AON7JQ-C15Za2rn.js} +1 -1
  121. package/dist/dashboard/assets/{wardley-RL74JXVD-auY9rf2s.js → wardley-RL74JXVD-D5C_gWsf.js} +1 -1
  122. package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-B8qVq-Ss.js → wardleyDiagram-NUSXRM2D-tqYHOmfO.js} +1 -1
  123. package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-DIfk5B6V.js → xychartDiagram-5P7HB3ND-CsxZKm-V.js} +1 -1
  124. package/dist/dashboard/assets/{zh-CN-LNUGB5OW-8NshHSLl.js → zh-CN-LNUGB5OW-BhlF39b5.js} +1 -1
  125. package/dist/dashboard/assets/{zh-HK-E62DVLB3-D22tHzlZ.js → zh-HK-E62DVLB3-P2FWmB4w.js} +1 -1
  126. package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-BllueYdk.js → zh-TW-RAJ6MFWO-B0yB1dNp.js} +1 -1
  127. package/dist/dashboard/index.html +2 -2
  128. package/dist/index.js +14683 -7833
  129. package/dist/skill-packs/council/SKILL.md +3 -2
  130. package/dist/skill-packs/council/debate-protocol.md +1 -1
  131. package/dist/skill-packs/excalidraw/SKILL.md +47 -22
  132. package/package.json +1 -1
  133. package/skill/SKILL.md +204 -498
  134. package/skill/references/cli-reference.md +200 -0
  135. package/skill/references/improving-dreamcontext.md +39 -0
  136. package/skill/references/integrations.md +200 -0
  137. package/skill/references/knowledge-and-recall.md +151 -0
  138. package/skill/references/sleep.md +88 -0
  139. package/skill/references/tasks-and-features.md +170 -0
  140. package/skill-packs/council/SKILL.md +3 -2
  141. package/skill-packs/council/debate-protocol.md +1 -1
  142. package/skill-packs/excalidraw/SKILL.md +47 -22
  143. package/dist/dashboard/assets/channel-Do_JtUNy.js +0 -1
  144. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-Dj8SIYaT.js +0 -1
  145. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-Dj8SIYaT.js +0 -1
  146. package/dist/dashboard/assets/clone-BpmzOucO.js +0 -1
  147. package/dist/dashboard/assets/index-CgYfjFTP.css +0 -1
  148. package/dist/dashboard/assets/percentages-BXMCSKIN-Cghe4Ak9.js +0 -215
  149. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-DIY7ac6n.js +0 -1
@@ -0,0 +1,88 @@
1
+ # Sleep / Consolidation — full flow
2
+
3
+ Sleep (RemSleep) is how working-session changes get folded back into the durable brain. It mirrors how the brain consolidates memory during sleep. **The main agent runs the orchestration directly** — sub-agents cannot reliably fan out to other sub-agents.
4
+
5
+ ## When to sleep
6
+
7
+ Sleep debt accumulates automatically via hooks (per Write/Edit tool use). Hooks inject directives — honor them.
8
+
9
+ | Debt | Level | Per-change score | Required behavior |
10
+ |------|-------|------------------|-------------------|
11
+ | 0–3 | Alert | 1–3 changes → +1 | No action |
12
+ | 4–6 | Drowsy | 4–8 changes → +2 | After completing a task: **inform user + offer** consolidation |
13
+ | 7–9 | Sleepy | 9+ changes → +3 | At session start: **inform user + recommend** consolidation before new work |
14
+ | 10+ | Must sleep | — | **Consolidate immediately**, before or right after the current task |
15
+
16
+ Also triggers an advisory: a **★★★ bookmark** exists (regardless of debt), or **3+ sessions** since last sleep.
17
+
18
+ Injected directives (SessionStart + every user message via UserPromptSubmit when debt ≥4):
19
+ - Debt ≥10 → "CONSOLIDATION REQUIRED"
20
+ - Debt ≥7 → "CONSOLIDATION RECOMMENDED"
21
+ - Debt ≥4 → offer after the current task
22
+
23
+ **MANDATORY post-task check:** after any task/major implementation, if debt ≥4 tell the user: *"Sleep debt is [N]. I can consolidate now to preserve this work. Want me to run it?"* Never silently finish.
24
+ **Auto-sleep (act without asking):** task completed with debt ≥7; major implementation finished with debt ≥4.
25
+ **Ask first:** debt 4–6 after a task; accumulated small changes; user wrapping up.
26
+
27
+ For non-file-change work (architecture discussion, a decision with no edits): `dreamcontext sleep add <score> "<reason>"`.
28
+
29
+ ---
30
+
31
+ ## The flow (run from the main agent context)
32
+
33
+ 1. **Tell the user** you're consolidating.
34
+ 2. **`dreamcontext sleep start`** — pins the epoch timestamp (safe clearing). Add `--deep` only when you intend to authorize destructive knowledge ops (merges/deletes); a normal sleep is non-destructive.
35
+ 3. **Build the brief inline** (cheap CLI, no transcript content):
36
+ - `cat _dream_context/state/.sleep.json` — session IDs, task slugs, `last_assistant_message`, `knowledge_access`
37
+ - `git status --short` and `git log --oneline --since=$(jq -r '.sleep_started_at // .last_sleep' _dream_context/state/.sleep.json)`
38
+ - `dreamcontext core releases active` — the planning version (create one with `dreamcontext core releases add --ver vX.Y.Z --status planning --summary "<theme>" --yes` if missing)
39
+ 4. **Dispatch specialists in parallel** — one message, multiple Agent tool calls. Each owns a non-overlapping file domain (no stomping):
40
+ - **Always fire:** `sleep-tasks`, `sleep-state`.
41
+ - **Conditionally fire `sleep-product`** if ANY of:
42
+ - `last_assistant_message` mentions research/analysis/decision
43
+ - a `knowledge_access` entry is 30+ days untouched
44
+ - a research bookmark exists
45
+ - a task slug matches an existing feature PRD filename
46
+ - `git status` shows changes under `_dream_context/core/features/`
47
+ - a session advanced ≥1 acceptance criterion, OR introduced a feature concept with ≥2 criteria, OR the user named something "a feature" / "we should add X", OR a task has `feature:` frontmatter pointing to a non-existent PRD
48
+ - the user hint mentions knowledge or a feature
49
+ - When unsure, **over-fire** `sleep-product` — it no-ops cheaply.
50
+ - **Conditionally fire `sleep-migration`** only when `dreamcontext migrations pending` produces output. Contract: structure-only (paths/frontmatter/fences), no body prose changes; writes the ledger via `dreamcontext migrations record` on completion.
51
+ - **Do NOT fire `sleep-federation`.** Copy-based federation is disabled; peers are read live at recall time, not synced at sleep. The specialist is retained but inert.
52
+ - Pass each specialist a small text brief: epoch, session IDs, active task slugs, planning version, the signals relevant to it, optional user hint. Do **not** paste transcript content — specialists call `dreamcontext transcript distill <id>` themselves.
53
+ 5. **Wait for all reports** (each returns a short structured report).
54
+ 6. **`dreamcontext reflect`** — each candidate is a term seen across multiple sessions not yet in soul/user/memory/knowledge. Promote into `2.memory.md` or a knowledge file ONLY if genuinely load-bearing; most are noise — discard. Never auto-promote.
55
+ 7. **Marketing pass** if `_dream_context/marketing/` exists: `dreamcontext mk rem-sleep`.
56
+ 8. **Council promote check:** `dreamcontext council list --unpromoted` — promote if the user engaged positively.
57
+ 9. **`dreamcontext sleep done "<one-paragraph summary stitched from specialist reports>"`** — clears pre-epoch state, resets debt, writes a history entry. (If the ClickUp backend is active and any task pushes failed, this auto-retries once, then errors loudly with the failed slugs.)
58
+ 10. **Report** the consolidated summary to the user.
59
+
60
+ ---
61
+
62
+ ## Specialist ownership (non-overlapping domains)
63
+
64
+ | Specialist | Owns | Notes |
65
+ |---|---|---|
66
+ | `sleep-tasks` | Task files (`state/*.md`) | Reconciles task bodies to truth, bumps statuses, creates tasks for untracked work, attaches to the planning version. |
67
+ | `sleep-state` | Core identity (soul, user, memory, core 3–6), CHANGELOG, RELEASES | Records patterns/decisions/preferences, writes a changelog entry per meaningful change since the epoch, surfaces release readiness, enforces anti-bloat ceilings, flags stale knowledge for `sleep-product`. |
68
+ | `sleep-product` | Knowledge files + feature PRDs | Creates/reconciles `knowledge/*.md` and `core/features/*.md`, processes staleness flags, maintains the knowledge index + taxonomy. |
69
+ | `sleep-migration` | Structure only | Moves/renames folders, normalizes frontmatter, wraps fences. Never alters body prose. |
70
+
71
+ **Consolidation discipline (remind specialists in the brief):** prefer *updating/extending* an existing entity over creating a new one. `sleep-tasks` folds a smaller slice into the task that already covers it (broaden its title + insert sub-items) rather than forking a duplicate. `sleep-product` keeps similar verticals/topics in the fewest knowledge files, splitting only on a sharp topical boundary. Duplicate tasks and fragmented near-duplicate knowledge are the top failure modes — but genuinely separate concerns still get their own task/file.
72
+
73
+ ---
74
+
75
+ ## Epoch safety
76
+
77
+ `sleep start` pins a timestamp epoch. `sleep done` only clears sessions/changes/bookmarks from *before* the epoch — parallel sessions that finish during consolidation are preserved for the next cycle. This is why you always `sleep start` before dispatching and `sleep done` after, never in the reverse order.
78
+
79
+ ## Commands
80
+ ```bash
81
+ dreamcontext sleep status # debt level + history
82
+ dreamcontext sleep start [--deep] # begin epoch
83
+ dreamcontext sleep done "<summary>" # finish, reset debt
84
+ dreamcontext sleep add <score> "<why>" # manual debt for non-file work
85
+ dreamcontext sleep debt # debt number (programmatic)
86
+ dreamcontext sleep history [-n N] # consolidation history
87
+ dreamcontext reflect [--write] # cross-session term candidates
88
+ ```
@@ -0,0 +1,170 @@
1
+ # Tasks & Features — full protocol
2
+
3
+ ## Tasks are your working documents
4
+
5
+ All context, decisions, user stories, acceptance criteria, constraints, technical details, notes, and progress live in the **task body**. Features are retrospective product docs updated only during sleep — never put in-progress context in a feature.
6
+
7
+ The auto-loaded snapshot already lists every non-completed task with status, priority, and last-updated date. Answer "what am I working on?" / "which tasks are active?" directly from it — no tool calls. Only read the full file when you need the body (the **Changelog** section is where the previous session left off).
8
+
9
+ ### Lifecycle
10
+ ```
11
+ todo → in_progress → in_review → completed
12
+ ```
13
+ The sleep agent picks the status that matches reality: `completed` for work that's demonstrably done, low-risk, already validated; `in_review` only when a human genuinely must verify (a behavior change, a design decision, a risky/critical-path change). It does not reflexively park everything in `in_review`, and it closes finished work — so tasks neither rot in `todo` nor rot half-closed in `in_review`.
14
+
15
+ ### Create
16
+ ```bash
17
+ dreamcontext tasks create <name> \
18
+ --description "..." --priority medium --why "What this accomplishes" \
19
+ [--version v0.9.0] [--person "Ada"] [--due 2026-07-01] [--tags backend,api]
20
+ ```
21
+ Defaults: `priority=medium`, `status=todo`. A task created without `--version` auto-attaches to the **active planning version** (see Versioning).
22
+
23
+ ### Enrich (insert into any section during active work)
24
+ ```bash
25
+ dreamcontext tasks insert <name> user_stories "As a user, I want X so that Y"
26
+ dreamcontext tasks insert <name> acceptance_criteria "API returns 200 with paginated results"
27
+ dreamcontext tasks insert <name> constraints "Use native fetch, no axios"
28
+ dreamcontext tasks insert <name> technical_details "Key file: src/api/tasks.ts (Express router)"
29
+ dreamcontext tasks insert <name> notes "Edge case: empty results return [] not null"
30
+ dreamcontext tasks insert <name> changelog "Implemented pagination for /api/tasks"
31
+ ```
32
+ Sections: `why`, `user_stories`, `acceptance_criteria`, `constraints`, `technical_details`, `notes`, `changelog`.
33
+
34
+ ### Lifecycle commands
35
+ ```bash
36
+ dreamcontext tasks log <name> "what was done" # changelog entry — MANDATORY each session
37
+ dreamcontext tasks status <name> in_review "reason" # bump status (logs automatically)
38
+ dreamcontext tasks complete <name> "summary" # mark complete
39
+ dreamcontext tasks delete <name> --yes # delete (propagates to remote on sync)
40
+ ```
41
+
42
+ ### Filtering & discovery
43
+ ```bash
44
+ dreamcontext tasks list --version S5 # one milestone
45
+ dreamcontext tasks list --tag memoryos --tag backend --status todo # --tag repeatable, AND
46
+ dreamcontext tasks list --any-tag lina --any-tag studio # --any-tag repeatable, OR
47
+ dreamcontext tasks list --priority critical
48
+ dreamcontext tasks list --feature recall-engine # match related_feature
49
+ dreamcontext tasks list --group-by version --all # sectioned + counts
50
+ dreamcontext tasks list --tag lina --json # scriptable (use this, not awk/grep)
51
+ dreamcontext tasks tags # distinct tags with counts
52
+ ```
53
+ Filters compose (AND across flags), case-insensitive; version/priority/feature match exactly.
54
+
55
+ ---
56
+
57
+ ## RICE prioritization
58
+
59
+ Optional, additive to priority/urgency; powers the dashboard Scatter view and RICE sort.
60
+ ```bash
61
+ dreamcontext tasks create <name> --reach 5 --impact 3 --confidence 75 --effort 2
62
+ dreamcontext tasks rice <name> # print current values
63
+ dreamcontext tasks rice <name> --effort 4 # update one field, recompute
64
+ dreamcontext tasks rice <name> --clear # remove all RICE values
65
+ ```
66
+ - `--reach` integer 1–10 · `--impact` integer 1–5 · `--confidence` one of 25/50/75/100 (%) · `--effort` person-weeks (>0, ≤52, 0.5 steps).
67
+ - Score = `(reach × impact × confidence/100) / effort`, computed server-side, stored in frontmatter.
68
+
69
+ ## Due dates & urgency
70
+ ```bash
71
+ dreamcontext tasks due <name> 2026-07-01 # set
72
+ dreamcontext tasks due <name> clear # clear
73
+ ```
74
+ `urgency` (critical/high/medium/low) is the second Eisenhower axis (priority × urgency) for the dashboard matrix.
75
+
76
+ ---
77
+
78
+ ## People & assignees (multi-person)
79
+
80
+ Single-person projects ignore all of this. For teams:
81
+ ```bash
82
+ dreamcontext config people "Ada" "Mehmet" # set the roster (syncs ## People in 1.user.md)
83
+ dreamcontext tasks create <name> --person "Ada" # records a person:ada tag
84
+ dreamcontext tasks tag <name> person:mehmet # add another assignee
85
+ dreamcontext tasks tag <name> person:ada --remove # unassign
86
+ ```
87
+ - `person:<slug>` tags are the source of truth for assignment and support **multiple assignees**. The legacy scalar `assignee` field is deprecated (still read, not written).
88
+ - With ClickUp enabled, the full assignee set round-trips to ClickUp's native `assignees[]` bidirectionally; map each person to a member with `dreamcontext config clickup-member <person> <memberId>` (see [integrations.md](integrations.md)).
89
+ - `DREAMCONTEXT_PERSON` env names the current person for attribution.
90
+
91
+ ---
92
+
93
+ ## The Workflow flowchart (keep it in sync)
94
+
95
+ Every task file has a `## Workflow` mermaid block near the top: one node per acceptance criterion, grouped under milestone subgraphs, with status classes `done` / `active` / `todo` / `blocked`. It is the load-bearing summary of the task — drift makes future sessions misread progress.
96
+
97
+ **Whenever** you check off a criterion, start one, add/remove one, or hit a blocker → update that node's `:::class`. Then verify:
98
+ ```bash
99
+ dreamcontext tasks doctor <name> # checks flowchart ⇄ acceptance-criteria sync (all tasks if omitted)
100
+ ```
101
+ And flip the matching `- [ ]` → `- [x]` in the Acceptance Criteria list immediately — don't wait for sleep.
102
+
103
+ ---
104
+
105
+ ## Task file schema (reference)
106
+ ```yaml
107
+ ---
108
+ id: "task_abc123"
109
+ name: "Implement auth middleware"
110
+ description: "Add JWT validation to protected routes"
111
+ priority: "high" # critical | high | medium | low
112
+ urgency: "medium" # critical | high | medium | low (Eisenhower axis)
113
+ status: "todo" # todo | in_progress | in_review | completed
114
+ created_at: "2026-02-25"
115
+ updated_at: "2026-02-25"
116
+ tags: [] # includes person:<slug> for assignees
117
+ version: "v0.9.0" # planning-version association (auto-set to active planning version)
118
+ parent_task: null
119
+ related_feature: null # feature slug for cross-link
120
+ product: null # multi-product scoping (optional)
121
+ due: null # YYYY-MM-DD
122
+ rice: { reach: 5, impact: 3, confidence: 75, effort: 2, score: 5.625 }
123
+ ---
124
+ ```
125
+ Files live at `_dream_context/state/<slug>.md`. Lookup is fuzzy: exact slug → prefix → substring.
126
+
127
+ ---
128
+
129
+ ## Features (PRDs)
130
+
131
+ Retrospective product documentation, **created and updated exclusively by the sleep agent**. During active work, everything goes in the task; sleep consolidates task content into the matching feature.
132
+
133
+ ```bash
134
+ dreamcontext features create <name> -w "Why" -t backend,api -s planning --related-tasks a,b
135
+ dreamcontext features set <name> status active
136
+ dreamcontext features set <name> tags backend,api,topic:recall
137
+ dreamcontext features insert <name> acceptance_criteria "..." # auto-formats as - [ ]
138
+ dreamcontext features doctor # staleness / orphans / dangling refs
139
+ ```
140
+ Status values: `planning | in_progress | in_review | active | shipped | deprecated`. Sections: `changelog`, `notes`, `technical_details`, `constraints`, `user_stories`, `acceptance_criteria`, `why`. PRDs live in `core/features/<name>.md` (flat directory; may carry `product:`).
141
+
142
+ ---
143
+
144
+ ## Versioning & releases
145
+
146
+ Versions and releases are unified in `RELEASES.json`. A "version" is a release entry with `status: planning`; releasing flips it to `released` with a date. Lifecycle: `planning → released`.
147
+
148
+ ```bash
149
+ dreamcontext core releases add --ver v0.9.0 --summary "Dashboard improvements" --status planning
150
+ dreamcontext core releases active # print the active planning version
151
+ dreamcontext core releases active v0.10.0 # switch active planning version
152
+ dreamcontext core releases active --clear # unset
153
+ dreamcontext core releases list -n 10
154
+ dreamcontext core releases show v0.9.0
155
+ ```
156
+ New tasks without `--version` auto-attach to the active planning version, so work is always linked to a milestone. If none exists, the sleep agent creates one. The dashboard Version Manager plans and releases versions; the sleep agent reports release readiness when all of a planning version's tasks are done.
157
+
158
+ ---
159
+
160
+ ## Multi-product (monorepos)
161
+
162
+ `dreamcontext init` asks whether the project is a monorepo with multiple products and records the list in `state/.config.json` under `multiProduct: string[] | false`. When products are configured:
163
+
164
+ - **Per-product data structures**: `knowledge/data-structures/<product>.md` (single-product → `default.md`). Body format is a single ` ```sql ` fenced block with `-- ...` comments (the dashboard highlights it). Recall-indexed, owned by `sleep-product`.
165
+ - **Per-product knowledge**: `knowledge/products/<product>.md`. Cross-cutting knowledge stays at top-level `knowledge/`.
166
+ - **Tasks** may carry `product: <name>` in frontmatter; CLI/dashboard surface a product filter.
167
+ - **Feature PRDs** may carry `product: <name>` (still in the flat `core/features/` directory).
168
+ - **Auto-injection**: the SessionStart hook resolves the active task (override `state/.active-task`, else most-recently-modified `in_progress` task). If its `product:` is in `multiProduct`, the hook injects `knowledge/products/<name>.md` into the snapshot under `## Active Product Knowledge: <name>` (capped ~200 lines). You don't load it manually — it's already in context.
169
+
170
+ If `multiProduct` is `false`/absent, treat the project as single-product and use `data-structures/default.md`.
@@ -119,8 +119,9 @@ the user. Ask:
119
119
 
120
120
  - **y** → `dreamcontext council promote <debate_id>` (writes
121
121
  `_dream_context/knowledge/decision-<slug>.md`)
122
- - **n / later** → leave as-is. The rem-sleep agent will pick it up during the next
123
- consolidation cycle and decide based on your engagement signals.
122
+ - **n / later** → leave as-is. The next sleep consolidation will pick it up (the
123
+ main agent runs `dreamcontext council list --unpromoted` during the sleep flow)
124
+ and decide based on your engagement signals.
124
125
 
125
126
  ## Hard rules
126
127
 
@@ -23,7 +23,7 @@ and idempotency notes.
23
23
  | `council synthesize <id>` | Prepare synthesis | Prints manifest. Status → `synthesizing`. |
24
24
  | `council complete <id>` | Finalize | Requires `final-report.md` to exist. |
25
25
  | `council promote <id>` | Copy to knowledge/ | Trims to Verdict + Why + Minority views + Open risks. Skips What-was-debated + Appendix. |
26
- | `council list [--unpromoted\|--all]` | Triage | `--unpromoted` used by rem-sleep agent. |
26
+ | `council list [--unpromoted\|--all]` | Triage | `--unpromoted` used during the sleep consolidation (council-promote check). |
27
27
  | `council show <id>` | Inspection | Prints debate metadata + round-log. |
28
28
 
29
29
  ### Sub-agent commands
@@ -205,9 +205,13 @@ See `reference/format.md` for the exact `.excalidraw.md` anatomy reverse-enginee
205
205
 
206
206
  ## Boards as first-class knowledge in dreamcontext
207
207
 
208
- When the project uses dreamcontext, Excalidraw boards belong in `_dream_context/knowledge/diagrams/`.
209
- They are indexed and recalled just like any knowledge file — but memory extracts ONLY the
210
- `## Text Elements` section (never the scene JSON).
208
+ When the project uses dreamcontext, an Excalidraw board belongs **inside the context folder it
209
+ documents** co-located with that context's knowledge, e.g.
210
+ `_dream_context/knowledge/<context>/<title>/<title>.excalidraw.md`. Diagrams are NOT a segregated
211
+ top-level dump; they live with the context they illustrate (`knowledge/**/*.md` is indexed
212
+ recursively, so a board in a context subfolder is fully recalled). Boards are indexed and recalled
213
+ like any knowledge file — but memory extracts ONLY the `## Text Elements` section (never the scene
214
+ JSON).
211
215
 
212
216
  ### Required frontmatter
213
217
 
@@ -225,22 +229,41 @@ excalidraw-plugin: parsed
225
229
 
226
230
  ### Folder convention (preferred)
227
231
 
232
+ A board lives in its own `<title>/` wrapper folder, INSIDE the context it documents:
233
+
228
234
  ```
229
- _dream_context/knowledge/diagrams/
230
- ├── my-board/
231
- │ ├── my-board.excalidraw.md ← generated board (do NOT hand-edit scene JSON)
232
- ├── my-board.board.cjs ← generator (dark sibling — excluded from index/recall)
233
- └── my-board.json spec / source of truth (dark sibling — excluded)
234
- └── legacy-flat.excalidraw.md flat layout still works; no forced migration
235
+ _dream_context/knowledge/
236
+ ├── recall/ ← a context folder (its knowledge + its diagram)
237
+ │ ├── recall-engine-v2.md
238
+ └── recall/
239
+ ├── recall.excalidraw.md generated board (do NOT hand-edit scene JSON)
240
+ │ ├── recall.board.cjs generator (dark sibling excluded from index/recall)
241
+ │ └── recall.json ← spec / source of truth (dark sibling — excluded)
242
+ ├── system/
243
+ │ └── architecture/
244
+ │ └── architecture.excalidraw.md
245
+ └── diagrams/ ← LEGACY top-level tree still works (apply-diagrams maintains it)
246
+ └── legacy-flat.excalidraw.md
235
247
  ```
236
248
 
237
- **Dark siblings**: any file inside a `diagrams/<title>/` folder that is NOT the board itself
238
- is automatically excluded from the index, recall corpus, snapshot, and dashboard list.
239
- This includes generator scripts (`.board.cjs`), spec JSON, and any helper `.md` notes.
240
- They are tooling they do not pollute memory.
249
+ Nesting is free-form, any depth the dashboard Knowledge view renders the whole `knowledge/` tree
250
+ as a nested, collapsible folder tree (each board shows a sketch icon), so a large diagram set stays
251
+ navigable. A board's own `<title>/` folder is always its innermost folder. Note: a `.board.cjs`
252
+ that `require()`s shared helpers by relative path must use a depth that matches its actual location.
253
+
254
+ **Dark siblings**: tooling files inside a board's `<title>/` folder are automatically excluded
255
+ from the index, recall corpus, snapshot, and dashboard list — generator scripts (`.board.cjs`),
256
+ spec JSON, and frontmatter-less helper `.md` notes. They are tooling — they do not pollute memory.
257
+
258
+ **Companion knowledge is the exception**: a `.md` beside a board that carries `name:` frontmatter
259
+ is indexed as first-class knowledge (not a dark sibling). This lets you co-locate a board with its
260
+ detailed write-up — e.g. `acme/acme.excalidraw.md` next to `acme/acme.teardown.md` — and have the
261
+ teardown recall normally. Only frontmatter-less notes stay dark, so good organization no longer
262
+ costs you recall.
241
263
 
242
- **Flat layout** (`diagrams/<title>.excalidraw.md`) works without any migration. Use the
243
- per-title folder when you want to keep the board + generator + spec together cleanly.
264
+ **Flat legacy layout** (`diagrams/<title>.excalidraw.md`) still works without migration, but new
265
+ boards belong in their context folder (above); use a per-title `<title>/` folder to keep the
266
+ board + generator + spec together cleanly.
244
267
 
245
268
  ### Memory contract
246
269
 
@@ -255,18 +278,20 @@ per-title folder when you want to keep the board + generator + spec together cle
255
278
 
256
279
  | Board nature | Location | Indexed? |
257
280
  |---|---|---|
258
- | Canonical / source-of-truth (architecture, system flows, roadmaps, durable plans the agent should recall in future sessions) | `_dream_context/knowledge/diagrams/<title>/` | Yes — indexed, recalled |
281
+ | Canonical / source-of-truth (architecture, system flows, roadmaps, durable plans the agent should recall in future sessions) | inside its `knowledge/<context>/<title>/` folder | Yes — indexed, recalled |
259
282
  | Temporary / scratch / exploratory / in-progress | `inbox/` or `workspace/` (dark by location) | No — not indexed, will not pollute recall |
260
283
 
261
- **Decision rule**: "Will a future session need to know this? → `knowledge/diagrams/`. Throwaway/working? → `inbox/` or `workspace/`."
284
+ **Decision rule**: "Will a future session need to know this? → its context folder under `knowledge/`. Throwaway/working? → `inbox/` or `workspace/`."
262
285
 
263
- Promote a board from inbox/workspace to `knowledge/diagrams/` only once it becomes canonical.
286
+ Promote a board from inbox/workspace into its context folder only once it becomes canonical.
264
287
 
265
- ### Migration
288
+ ### Legacy `knowledge/diagrams/` + migration
266
289
 
267
- Flat boards in `knowledge/diagrams/` do NOT auto-migrate.
290
+ Older projects kept all boards under a single top-level `knowledge/diagrams/` tree. That still
291
+ indexes and renders, and `sleep-product` keeps the store organized over time — but new boards
292
+ should go in their **context folder** (above), not the segregated dump.
268
293
 
269
- - `dreamcontext migrations pending` — see pending migration task instructions (including 0.7.2 diagrams-folder-convention).
270
- - `dreamcontext migrations apply-diagrams` — opt-in: moves flat `knowledge/diagrams/*.excalidraw.md` boards into per-title folders AND rewrites all inbound [[wikilinks]] atomically. Safe to re-run. Do NOT hand-edit wikilinks manually.
294
+ - `dreamcontext migrations pending` — see pending migration task instructions (incl. 0.7.2 diagrams-folder-convention).
295
+ - `dreamcontext migrations apply-diagrams` — structural/legacy: folds flat `knowledge/diagrams/*.excalidraw.md` boards into per-title folders AND rewrites inbound [[wikilinks]] atomically. Safe to re-run. Do NOT hand-edit wikilinks manually.
271
296
 
272
297
  Only organize boards you confirm are canonical knowledge. Temp/scratch boards stay in inbox/workspace.
@@ -1 +0,0 @@
1
- import{aq as o,ar as n}from"./index-Di8SAJL6.js";const t=(r,a)=>o.lang.round(n.parse(r)[a]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-DGTUpfCU.js";import{_ as i}from"./index-Di8SAJL6.js";import"./chunk-FMBD7UC4-DIteC6lG.js";import"./chunk-YZCP3GAM--p-GHUD7.js";import"./chunk-55IACEB6-BnK0E2R4.js";import"./chunk-EDXVE4YY-B3YEC9QU.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-DGTUpfCU.js";import{_ as i}from"./index-Di8SAJL6.js";import"./chunk-FMBD7UC4-DIteC6lG.js";import"./chunk-YZCP3GAM--p-GHUD7.js";import"./chunk-55IACEB6-BnK0E2R4.js";import"./chunk-EDXVE4YY-B3YEC9QU.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./graph-CDuZp5IO.js";var e=4;function a(o){return r(o,e)}export{a as c};