@mavea/mavea 1.1.0 → 1.2.0

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 (177) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/DISCLAIMER.md +2 -1
  3. package/PRIVACY.md +5 -4
  4. package/README.md +20 -15
  5. package/TERMS.md +3 -1
  6. package/dist/.vite/manifest.json +638 -569
  7. package/dist/assets/AnnotationLayer-qV6CIUZv.js +0 -0
  8. package/dist/assets/{AppCommandPalette-Dm3SedPO.js → AppCommandPalette-BHaYBZ5e.js} +1 -1
  9. package/dist/assets/AreaChart-DZGCSEwt.js +1 -0
  10. package/dist/assets/CadenceCard-P4teI7Se.js +1 -0
  11. package/dist/assets/CanvasSkeleton-CRGWlafo.js +1 -0
  12. package/dist/assets/{CheckLogRail-BU_rmAFH.js → CheckLogRail-DkHIHL0E.js} +1 -1
  13. package/dist/assets/{CommandPalette-E3reEqYR.js → CommandPalette-Bs6tpdZl.js} +1 -1
  14. package/dist/assets/{ConversationVideoStudio-DEZBpJUz.js → ConversationVideoStudio-C1sd4k53.js} +1 -1
  15. package/dist/assets/CourseLessonReader-YCcNKEW7.js +2 -0
  16. package/dist/assets/{CourseRail-C8MJG-zf.js → CourseRail-DXt3bzjU.js} +1 -1
  17. package/dist/assets/{CoursesApp-DFVkhP2f.js → CoursesApp-Dz6xjf4V.js} +2 -2
  18. package/dist/assets/{DashPresent-DwWDtjrU.js → DashPresent-5SRScC2i.js} +1 -1
  19. package/dist/assets/DashboardDetail-8J8TsdQg.css +1 -0
  20. package/dist/assets/DashboardDetail-DOfm8UCQ.js +2 -0
  21. package/dist/assets/DashboardLoopGate-Cf0y_HQ7.js +2 -0
  22. package/dist/assets/DashboardLoopRuntime-CnN5VayH.js +1 -0
  23. package/dist/assets/DashboardSettings-CE0B2y2y.js +1 -0
  24. package/dist/assets/DashboardsApp-_gbfdbX6.js +2 -0
  25. package/dist/assets/{DeepZoomApp-CxdcUeFJ.js → DeepZoomApp-BOLEl-kQ.js} +1 -1
  26. package/dist/assets/{DelegatePanel-B0kIu8Et.js → DelegatePanel-CHEB-OZl.js} +1 -1
  27. package/dist/assets/{DemoGallery-B__X0_H3.js → DemoGallery-DBqnu8TR.js} +1 -1
  28. package/dist/assets/{DropSelect-C3uYlej-.js → DropSelect-DjbdVfIR.js} +1 -1
  29. package/dist/assets/{ExportModal-CDGlhpdH.js → ExportModal-CLobMv1F.js} +1 -1
  30. package/dist/assets/{ExtractionPreview-CloJnrQi.js → ExtractionPreview-QZ2VHmsb.js} +2 -2
  31. package/dist/assets/{FeatureUseNotice-CwHstxBh.js → FeatureUseNotice-Dc8joBGM.js} +1 -1
  32. package/dist/assets/{FlagshipCommandPalette-CHsD5BSH.js → FlagshipCommandPalette-DnWuBjYI.js} +1 -1
  33. package/dist/assets/{FlagshipShowcase-D53Q_4m0.js → FlagshipShowcase-3qQDOK6g.js} +1 -1
  34. package/dist/assets/{FlashcardsApp-CnLfEnDH.js → FlashcardsApp-BQGM-Tr1.js} +1 -1
  35. package/dist/assets/{GalleryApp-2Ffc6CY6.js → GalleryApp-BWQ-J450.js} +1 -1
  36. package/dist/assets/{HonestByDesign-5jIu2ZC8.js → HonestByDesign-57LDf-gm.js} +1 -1
  37. package/dist/assets/{HowItWorks-BiJF84EM.js → HowItWorks-DMfPX3GK.js} +1 -1
  38. package/dist/assets/{LegalApp-zC-rvTww.js → LegalApp-CcO5Qq6R.js} +1 -1
  39. package/dist/assets/{LegalMarkdownDocument-CJ-gRHdX.js → LegalMarkdownDocument-Be_fQbZ_.js} +1 -1
  40. package/dist/assets/{LegalPageShell-Dyd4Uh3r.js → LegalPageShell-B-HY1WG7.js} +1 -1
  41. package/dist/assets/{LibraryOverlay-_xpWdhLN.js → LibraryOverlay-BilW6q_z.js} +1 -1
  42. package/dist/assets/LiveApp-C-OPBybd.css +1 -0
  43. package/dist/assets/LiveApp-DH3OxJFV.js +79 -0
  44. package/dist/assets/{LiveSettings-BceODlOb.js → LiveSettings-CuVMy7rZ.js} +3 -3
  45. package/dist/assets/{MindMapViewerDrawer-BuDodC0s.js → MindMapViewerDrawer-DI_S7fRZ.js} +1 -1
  46. package/dist/assets/{MindShape-CBcCC7hP.js → MindShape-C_Bo9hW9.js} +1 -1
  47. package/dist/assets/{PinToDashboard-DBIXvhlF.js → PinToDashboard-Cz5UJCmq.js} +1 -1
  48. package/dist/assets/PlanReview-CmUxzNqL.js +1 -0
  49. package/dist/assets/{Presence-CKSoyuhE.js → Presence-UqXfH4Y-.js} +1 -1
  50. package/dist/assets/{PresentationDeck-C518t9pP.js → PresentationDeck-B_EI33Pp.js} +1 -1
  51. package/dist/assets/{PrismApp-DRLl8841.js → PrismApp-DtLsPiQF.js} +2 -2
  52. package/dist/assets/{PrismAskController-QRwxRP8D.js → PrismAskController-Bt0k9hAA.js} +1 -1
  53. package/dist/assets/{PrismBriefingPlayer-Kyb8Vs_w.js → PrismBriefingPlayer-DzdtnFj4.js} +2 -2
  54. package/dist/assets/{PrismOverlay-Bj7tCu5Q.js → PrismOverlay-D1cDZamt.js} +3 -3
  55. package/dist/assets/{PrismWorkbench-BCnhkp-S.js → PrismWorkbench-BEIp4MiL.js} +1 -1
  56. package/dist/assets/{PrivacyApp-DHSRr8wq.js → PrivacyApp-B4DT2RUz.js} +6 -5
  57. package/dist/assets/{ReplayCard-CKo5reXy.js → ReplayCard-Dx46HCBT.js} +2 -2
  58. package/dist/assets/{ReplayOverlay-DqAwLshS.js → ReplayOverlay-CnJAxf0u.js} +1 -1
  59. package/dist/assets/{RewindOverlay-CkJIETE0.js → RewindOverlay-CousnxXo.js} +1 -1
  60. package/dist/assets/{RippleApp-C76VTaZK.js → RippleApp-D5j2VCt2.js} +2 -2
  61. package/dist/assets/{RippleAskController-CdlMlRH8.js → RippleAskController-9SxpZnHX.js} +1 -1
  62. package/dist/assets/{RippleOverlay-Mvz3CXhD.js → RippleOverlay-zcXAHPuJ.js} +2 -2
  63. package/dist/assets/{SeeDontRead-BkySmnP3.js → SeeDontRead-Dqfzha0V.js} +1 -1
  64. package/dist/assets/{ShareModal-Cl3ryjgK.js → ShareModal-DWxlrJSz.js} +2 -2
  65. package/dist/assets/{ShipCourse-Cy5ldKLE.js → ShipCourse-BavQppkt.js} +1 -1
  66. package/dist/assets/{SignatureLoop-Cdkifjb8.js → SignatureLoop-L8W2h62w.js} +1 -1
  67. package/dist/assets/{SynthesisApp-C5udWwng.js → SynthesisApp-C2O6pFeM.js} +2 -2
  68. package/dist/assets/{SynthesisOverlay-1o-CJsyX.js → SynthesisOverlay-DLvwiSMv.js} +1 -1
  69. package/dist/assets/{TermsApp-DIAESAZs.js → TermsApp-CxY1yorm.js} +4 -2
  70. package/dist/assets/TopicCanvas-LMI0zC7R.js +2 -0
  71. package/dist/assets/{TourPrism-Bxp--s0i.js → TourPrism-CI-iJZil.js} +1 -1
  72. package/dist/assets/TrackerTile-oz6IoG8m.js +2 -0
  73. package/dist/assets/{TwoSurfaces-C_0XBpwA.js → TwoSurfaces-Rnf-_WgY.js} +1 -1
  74. package/dist/assets/{WhyMachineOverlay-QDSZx5Y7.js → WhyMachineOverlay-ks9-rRiL.js} +1 -1
  75. package/dist/assets/WorldOverlay-BaQNNClA.js +2 -0
  76. package/dist/assets/{WorldOverlay-DRdBQMnb.css → WorldOverlay-D7ay5y4D.css} +1 -1
  77. package/dist/assets/{WowFeatures-DNEeO2pr.js → WowFeatures-C4efSbNV.js} +1 -1
  78. package/dist/assets/{ZoomDeck-qdlPe_yl.js → ZoomDeck-CBrr0yfy.js} +1 -1
  79. package/dist/assets/{annotationAuto-BmKrZ3hU.js → annotationAuto-CDv6Es44.js} +1 -1
  80. package/dist/assets/{backup-PaRBwjJy.js → backup-ZrlVatXc.js} +1 -1
  81. package/dist/assets/canvas-Bsx3eSaS.js +1 -0
  82. package/dist/assets/{capture-CL9ENM-c.js → capture-D8uPIcfj.js} +1 -1
  83. package/dist/assets/confirmAdd-DzMO9jKV.js +1 -0
  84. package/dist/assets/{coreIcons-BzqW7Qiz.js → coreIcons-DDTChE1H.js} +1 -1
  85. package/dist/assets/{dashboardEvents-D-wLCp1A.js → dashboardEvents-DKl5rrTD.js} +1 -1
  86. package/dist/assets/{dashboards-CdzGklae.css → dashboards-C1u2ks-d.css} +1 -1
  87. package/dist/assets/dataPending-DGdCvY5Y.js +1 -0
  88. package/dist/assets/display-CAb_PiGv.js +1 -0
  89. package/dist/assets/{engine-2U7mvPIl.js → engine-BiM6INsW.js} +1 -1
  90. package/dist/assets/{engine-BF8FqSbi.css → engine-CTvOaA86.css} +1 -1
  91. package/dist/assets/{explode-qQ7Fzt6V.js → explode-BgZIWY9m.js} +1 -1
  92. package/dist/assets/format-g3dP8OI3.js +1 -0
  93. package/dist/assets/{generate-C9vOL1C2.js → generate-Dl2EJ_SR.js} +1 -1
  94. package/dist/assets/{generateBeats-DpDpBcgV.js → generateBeats-DZHkvFvh.js} +1 -1
  95. package/dist/assets/{generateCourse-DU281tDE.js → generateCourse-C9qvaJRo.js} +1 -1
  96. package/dist/assets/{generateLive-_x2tWkBH.js → generateLive-B6purd69.js} +13 -13
  97. package/dist/assets/index-Dk0QapqQ.js +22 -0
  98. package/dist/assets/{index-D4FIsool.css → index-DmKgC_TJ.css} +1 -1
  99. package/dist/assets/{kokoro-CdL8Kl48.js → kokoro-P_fkcX-A.js} +1 -1
  100. package/dist/assets/lens-ChFJD9il.js +1 -0
  101. package/dist/assets/loader-DKJEcbPm.js +2 -0
  102. package/dist/assets/{model-DxwoIVpo.js → model-BFRTN9Eh.js} +1 -1
  103. package/dist/assets/{notes-CUeZ1cYu.js → notes-B0-EE0FK.js} +1 -1
  104. package/dist/assets/{number-Bmf7DqLj.js → number-zqlPMliA.js} +1 -1
  105. package/dist/assets/{pen-BAEq0JnM.js → pen-DNMslo3e.js} +1 -1
  106. package/dist/assets/{perfProbe-3Ip5n0yx.js → perfProbe-B9zJpjo9.js} +1 -1
  107. package/dist/assets/{pin-BwWjjqmt.js → pin-CZAIlpXt.js} +1 -1
  108. package/dist/assets/{planTracker-BI9z_0gW.js → planTracker-KKAtTBWs.js} +1 -1
  109. package/dist/assets/{portal-BJzn-Tgn.js → portal-Dogggsub.js} +1 -1
  110. package/dist/assets/{prewarm-CheeUP2L.js → prewarm-B4ELBOxf.js} +1 -1
  111. package/dist/assets/{providers-B2OCzEo1.js → providers-BovElgRL.js} +1 -1
  112. package/dist/assets/{quietHours-DCMczU9R.js → quietHours-CeBje_uU.js} +1 -1
  113. package/dist/assets/{ready-DZY1bETr.js → ready-jtAUOb62.js} +1 -1
  114. package/dist/assets/receipts-D7zveV-I.js +1 -0
  115. package/dist/assets/registry-6DGRAB1m.js +1 -0
  116. package/dist/assets/{registry-BRbEINOV.js → registry-6MOD-I7p.js} +1 -1
  117. package/dist/assets/registry-BFrgx1tE.js +1 -0
  118. package/dist/assets/{registry-BM9FDQxO.js → registry-CD1s3eQ-.js} +1 -1
  119. package/dist/assets/{registry-ChQGee7C.js → registry-CqhpLHM7.js} +1 -1
  120. package/dist/assets/registry-Cse2wF7x.css +1 -0
  121. package/dist/assets/registry-DGNSqTxE.js +1 -0
  122. package/dist/assets/{registry-D_4_HlMg.js → registry-GeAC3ZD7.js} +1 -1
  123. package/dist/assets/{relate-BXcg3Ioz.js → relate-BYdM5eiV.js} +1 -1
  124. package/dist/assets/{replay-rSsGKjEc.js → replay-TYXO0Brm.js} +1 -1
  125. package/dist/assets/{run-ndUTOxjM.js → run-Df10YPyB.js} +1 -1
  126. package/dist/assets/{run-CkaYNX89.js → run-DlvA3l28.js} +1 -1
  127. package/dist/assets/{run-aj7robML.js → run-gmqUaxcL.js} +1 -1
  128. package/dist/assets/seed-D_P5jyog.js +1 -0
  129. package/dist/assets/shapes-Cx5SCKgj.js +39 -0
  130. package/dist/assets/store-CsjDEADX.js +1 -0
  131. package/dist/assets/tiles-D-s6v-mA.js +1 -0
  132. package/dist/assets/types-DuEbJpIA.js +1 -0
  133. package/dist/assets/useDashboardLoop-DDqCFJKY.js +5 -0
  134. package/dist/assets/{useDashboards-GafZIADI.js → useDashboards-SRk8LqHe.js} +1 -1
  135. package/dist/assets/{useLiveConfig-DWz7BRdk.js → useLiveConfig-Cpy0_E_-.js} +1 -1
  136. package/dist/assets/{useStudy-CFIuakaM.js → useStudy-GwNcQWtv.js} +1 -1
  137. package/dist/assets/validate-sGUCmPAs.js +4 -0
  138. package/dist/assets/value-Dx7DZob4.js +1 -0
  139. package/dist/assets/{walkSync-AAocUygp.js → walkSync-CPsd-xu7.js} +1 -1
  140. package/dist/index.html +3 -3
  141. package/dist/legal/DISCLAIMER.md +2 -1
  142. package/dist/legal/PRIVACY.md +5 -4
  143. package/dist/legal/TERMS.md +3 -1
  144. package/docs/media/course-lesson.jpg +0 -0
  145. package/docs/media/living-answer.jpg +0 -0
  146. package/package.json +3 -1
  147. package/dist/assets/AnnotationLayer-IiuYsoSa.js +0 -0
  148. package/dist/assets/CanvasSkeleton-CcHXJqdq.js +0 -2
  149. package/dist/assets/CourseLessonReader-Bpt-DkJo.js +0 -2
  150. package/dist/assets/DashboardDetail-D4wkiTux.js +0 -2
  151. package/dist/assets/DashboardLoopGate-B5UBPsvU.js +0 -2
  152. package/dist/assets/DashboardLoopRuntime-CAnZX234.js +0 -1
  153. package/dist/assets/DashboardSettings-eMhHliVh.js +0 -1
  154. package/dist/assets/DashboardsApp-BwFtTdWa.js +0 -2
  155. package/dist/assets/LiveApp-BNae3fDZ.css +0 -1
  156. package/dist/assets/LiveApp-DjcJQURO.js +0 -78
  157. package/dist/assets/PlanReview-DUQ7OMvV.js +0 -1
  158. package/dist/assets/TopicCanvas-DkzJORfl.js +0 -2
  159. package/dist/assets/TrackerTile-CyPD0A6b.js +0 -2
  160. package/dist/assets/WorldOverlay-DorHCLzw.js +0 -1
  161. package/dist/assets/canvas-BlkTFnVo.js +0 -1
  162. package/dist/assets/confirmAdd-CZPBG1xe.js +0 -1
  163. package/dist/assets/dataPending-lZUzUEo6.js +0 -1
  164. package/dist/assets/display-BrieMea1.js +0 -1
  165. package/dist/assets/format-rPI6ZwwH.js +0 -1
  166. package/dist/assets/index-CfcUMOBf.js +0 -22
  167. package/dist/assets/receipts-ClyzFFGD.js +0 -1
  168. package/dist/assets/registry-9QjeHgKs.js +0 -1
  169. package/dist/assets/registry-D4Xdd7dO.js +0 -1
  170. package/dist/assets/registry-DScSjt8p.css +0 -1
  171. package/dist/assets/registry-DuP_q42N.js +0 -1
  172. package/dist/assets/seed-DN4mRJp-.js +0 -1
  173. package/dist/assets/shapes-C5fjibEc.js +0 -42
  174. package/dist/assets/store-B39HvB_l.js +0 -1
  175. package/dist/assets/tiles-pdNi6MGe.js +0 -1
  176. package/dist/assets/useDashboardLoop-B_YA5jLs.js +0 -5
  177. package/dist/assets/validate-CnG23_8J.js +0 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,89 @@ All notable changes to Mavéa are documented here. The format is based on
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.2.0] - 2026-08-17
10
+
11
+ ### Added
12
+
13
+ - The daily search budget is adjustable from any dashboard's Settings, under "Every dashboard" —
14
+ one shared cap across all boards, because what it guards is the total daily spend on your key.
15
+ - **An ordinary answer's figures now prove themselves.** Prove it lists every figure the answer
16
+ printed and what backs it: grounded ones quote the source's own sentence, and the rest are marked
17
+ as the model's own rather than left to look measured. The living answer had refused an unbacked
18
+ number since it shipped; every other answer printed its numbers straight from block props, so the
19
+ rule held on exactly one surface.
20
+ - **A cause can be opened into its parts**, drawn through the component library rather than a fixed
21
+ chart — and a part can be opened in turn. A subject whose parts nothing measured is named in a
22
+ list instead of drawn as a proportion, because a hierarchy figure implies measured shares.
23
+ - The guided walkthrough's living-answer chapter now walks itself, cause by cause. Its line has
24
+ always promised a narration nobody could trigger on a replay.
25
+
26
+ ### Changed
27
+
28
+ - The Terms, Privacy Notice, and Disclaimer now cover tracked readings (stored per tracker in
29
+ IndexedDB, encrypted, deleted with the dashboard) and state plainly that tracked or "live"
30
+ values are best-effort and depend on the model you pick — a completed search can still surface
31
+ out-of-date figures, alerts are never guaranteed to arrive, and every check spends on the key
32
+ you supplied. The dashboards first-use notice says the same in plain words, and the alerts card
33
+ itself now carries the don't-rely-on-this line. The in-app acceptance version was bumped, so
34
+ existing users are shown the updated documents once.
35
+ - The default daily search budget is 25 (was 40), sized from the app's own cadence math: hourly ≈
36
+ up to ~24 checks/day while Mavéa is open, so out of the box the cap covers one always-on hourly
37
+ board. Running more than that is a deliberate spend choice you make by raising the knob; manual
38
+ actions like Refresh now were never counted against it.
39
+
40
+ - **A dashboard check now fetches data, not a rendered card.** Checks used to ask the model to
41
+ rebuild a finished canvas block — exact component type, exact prop names, nested item shapes —
42
+ which made it responsible for Mavéa's rendering contract; any drift discarded a grounded search
43
+ you had already paid for. Data-shaped cards (lists, tables, timelines, charts) now come back in a
44
+ one-line schema and Mavéa builds the component itself. Cards that carry prose keep the old path.
45
+ - **Readings are kept per tracker in IndexedDB**, encrypted with the same device key as the rest of
46
+ a dashboard, instead of being folded into the one blob that was rewritten whole on every write.
47
+ - Only one browser tab runs the refresh loop now. Every extra open tab used to run its own
48
+ scheduler and bill your key again for the same checks.
49
+ - **A living answer is offered on the answer, not the question.** Asking "why" is not the same as
50
+ getting back something with causes in it, so the offer is judged on what the answer actually
51
+ contains — no more opening a causal web onto an answer that has none.
52
+ - **The "show only what is sourced" filter is gone.** Measured across every scenario, not one
53
+ receipt carried a followable link or document anchor, so the control promised a reader something
54
+ it could never show them.
55
+
56
+ ### Fixed
57
+
58
+ - **Dashboard checks asked for live data and accepted an answer from memory.** The search tool was
59
+ offered but never required, so a model could skip it and reply from training data; the reply was
60
+ correctly discarded, after being billed for. Checks now require the search.
61
+ - Creating a tracker no longer waits on its first check. It used to hold the sheet open for the
62
+ length of a real web search — routinely 30-60 seconds — with the finished board invisible behind
63
+ it.
64
+ - **A tracker that cannot complete its first check is kept, not deleted.** A provider hiccup used
65
+ to make a tracker you had just described disappear. It now stays, marked as waiting, and says
66
+ what it is waiting on. Nothing unverified is ever shown either way.
67
+ - Each failure now names its own cause — a rate limit, a rejected key, an unreachable provider, a
68
+ search that grounded nothing — and retries on a schedule that fits it, instead of one message and
69
+ one five-minute retry for all of them.
70
+ - "What happened on the last check?" on a dashboard shows the steps that check actually took, so a
71
+ failure can be diagnosed without a network panel.
72
+ - Check all stops after a whole round fails at the provider, instead of spending the rest of your
73
+ per-minute quota collecting the same error.
74
+ - The dashboards surface scrolls again — content below the fold had become unreachable.
75
+ - An ask-the-user form card can no longer be pinned onto a dashboard; a dashboard's values come
76
+ from live search.
77
+ - **Three places a living answer could state a figure with nothing behind it.** Source excerpts
78
+ never reached it, so every figure failed the verbatim check however good the sources were; an
79
+ arrow's share was drawn without any source stating that share, which sized the ribbons by an
80
+ unproven number; and a date could place a cause on the timeline unproven, where the position
81
+ _is_ the claim.
82
+ - A new turn could leave the answer blank instead of drawing it.
83
+ - A pen mark aimed at a collapsed section landed on empty space, next to nothing.
84
+ - Breaking down a cause that had itself come from a breakdown did nothing at all, and the fold-up
85
+ control on one did nothing either.
86
+ - A cause could be named by a truncated slug ("consumer-switch-to-digit") or, with an invisible
87
+ label, by nothing at all — leaving a nameless card, a nameless lever, and a sentence with no
88
+ subject.
89
+ - Long connector labels in a flow diagram were drawn wider than the gap between the shapes and
90
+ painted over by them, leaving the reader a sliver of each word.
91
+
9
92
  ## [1.1.0] - 2026-08-16
10
93
 
11
94
  ### Added
package/DISCLAIMER.md CHANGED
@@ -1,12 +1,13 @@
1
1
  # Mavéa Disclaimer
2
2
 
3
- Effective: August 11, 2026
3
+ Effective: August 17, 2026
4
4
 
5
5
  Mavéa uses probabilistic AI systems and can be wrong.
6
6
 
7
7
  - AI-generated text, citations, calculations, classifications, transcriptions, translations, and visualizations may be inaccurate, incomplete, misleading, offensive, or outdated.
8
8
  - A citation, confidence label, validation step, or polished visualization does not guarantee that a claim is correct.
9
9
  - Verify important information with authoritative sources and qualified professionals before relying on it.
10
+ - Results depend heavily on the model and provider you choose. Models differ in whether they search the live web at all, whether they can be required to, how reliably they cite what they used, and how current their training data is. A smaller or cheaper model may answer from memory instead of searching, and may not say that it did. Live, tracked, and refreshed values can therefore be stale, incomplete, or wrong, and a shown source does not prove that the figure beside it came from that source or is correct. Even a completed search can surface figures that were already out of date at the source. Scheduled checks may be delayed, skipped, or missed entirely, and alert and notification features are best-effort — a check that does not run, a closed app, or blocked browser notifications means no alert, so never depend on one arriving. Every check runs on the API key you supply, so the refresh cadence you configure is a spending decision with the provider you pay. Do not rely on tracked dashboards or alerts for anything time-critical or consequential.
10
11
  - Mavéa does not provide medical, legal, financial, tax, accounting, safety, engineering, mental-health, or other professional advice. Do not use it for emergencies or as the sole basis for high-impact decisions.
11
12
  - You are responsible for the prompts, files, audio, accounts, credentials, and actions you provide or authorize.
12
13
  - Model, search, speech, hosting, OAuth, media, and connected-action providers are independent third parties. Their terms, privacy practices, availability, and charges apply. All costs are your responsibility.
package/PRIVACY.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Mavéa Privacy Notice
2
2
 
3
- Effective: August 11, 2026
3
+ Effective: August 17, 2026
4
4
 
5
5
  This notice describes the current, unmodified local and self-hosted Mavéa software. It does not describe a future hosted service. Local-first does not mean every feature stays on your device: connected features send data through the deployment to third parties you choose. If a person or organization deploys Mavéa for others, that operator must provide any additional privacy notices and controls required for its deployment.
6
6
 
@@ -20,6 +20,7 @@ Depending on the features you use, browser storage may contain:
20
20
 
21
21
  - conversations, saved canvases, bookmarks, memory items, and session history;
22
22
  - courses, lessons, flashcards, quiz progress, Ripple analyses, and dashboards;
23
+ - the readings a dashboard has fetched over time, kept per tracked item as its own record so a value's history and the sites it came from survive between checks;
23
24
  - preferences such as theme, performance, visual richness, voice, and setup state;
24
25
  - drafts, tracked items, presentation settings, and recent feature state;
25
26
  - provider and model configuration;
@@ -27,9 +28,9 @@ Depending on the features you use, browser storage may contain:
27
28
  - temporary in-progress and finished video-export files in origin-private browser storage until the export is consumed or discarded; and
28
29
  - short-lived demo, tour, route, and in-progress session data.
29
30
 
30
- Saved content is encrypted in browser storage only where the relevant feature and browser support it. Course data, mastery and progress, some Ripple data and analysis caches, preferences, metadata, and fallback content can be stored in ordinary local storage or IndexedDB. Anyone who can use your unlocked device or browser profile, and malicious extensions or same-origin code, may be able to access browser data.
31
+ Saved content is encrypted in browser storage only where the relevant feature and browser support it. Dashboards and the readings they fetch are encrypted with the same device key, the readings in IndexedDB with only their routing details — which tracked item, and when — left readable so they can be looked up. Course data, mastery and progress, some Ripple data and analysis caches, preferences, metadata, and fallback content can be stored in ordinary local storage or IndexedDB. Anyone who can use your unlocked device or browser profile, and malicious extensions or same-origin code, may be able to access browser data.
31
32
 
32
- Because this browser data is encrypted to this specific browser, it does not carry over to a different browser, an incognito window, or another device. You can export a backup file of your dashboards, memory, flashcards, saved canvases, map, and courses, and import it elsewhere to move that data. The backup is plain, unencrypted JSON under your control, so store and share it carefully; it deliberately excludes your provider and search keys. Importing a backup merges into existing data and never deletes it, and importing a file you did not create can add content from that file — import only backups you trust.
33
+ Because this browser data is encrypted to this specific browser, it does not carry over to a different browser, an incognito window, or another device. You can export a backup file of your dashboards, memory, flashcards, saved canvases, map, and courses, and import it elsewhere to move that data. A backup carries a dashboard's definition and its latest values, not its fetched reading history, so moving to another browser starts that history fresh. The backup is plain, unencrypted JSON under your control, so store and share it carefully; it deliberately excludes your provider and search keys. Importing a backup merges into existing data and never deletes it, and importing a file you did not create can add content from that file — import only backups you trust.
33
34
 
34
35
  Browser and operating-system caches may retain application assets and optional voice models. The actions gateway may store connected-service credentials and configuration on the deployment operator's machine.
35
36
 
@@ -88,7 +89,7 @@ The unmodified project does not sell personal information or use it for cross-co
88
89
 
89
90
  ## 8. Retention and deletion
90
91
 
91
- Memory-only values disappear on reload. Session storage generally remains until the tab or browser session ends. Local storage and IndexedDB remain until a feature removes the item, you use an available clear, forget, or reset control, you clear site data, or the browser evicts it. Some session history is capped and expires, but many course, progress, dashboard, memory, and Ripple records have no automatic expiration. Clearing all browser site data is the broadest local deletion control. Removing browser data does not delete copies already sent elsewhere.
92
+ Memory-only values disappear on reload. Session storage generally remains until the tab or browser session ends. Local storage and IndexedDB remain until a feature removes the item, you use an available clear, forget, or reset control, you clear site data, or the browser evicts it. Some session history is capped and expires, but many course, progress, dashboard, memory, and Ripple records have no automatic expiration. A dashboard's fetched reading history is capped per tracked item, and deleting a dashboard deletes its readings and its record of recent checks with it. Clearing all browser site data is the broadest local deletion control. Removing browser data does not delete copies already sent elsewhere.
92
93
 
93
94
  Gateway tokens remain until disconnected or removed by the gateway operator. Server, proxy, infrastructure, and provider retention depends on the relevant operator, logs, backups, account settings, and third-party policy. Contact those parties for deletion of data they control and revoke credentials at the issuing service.
94
95
 
package/README.md CHANGED
@@ -77,11 +77,12 @@ A few specific things worth trying:
77
77
  surface from what you actually said — never fixed buckets — with the tensions between them.
78
78
  - **The Blank Space.** When an answer needs a number only you have, Mavéa leaves a hole to fill —
79
79
  by voice, type, or a dragged card — instead of quietly guessing.
80
- - **View any "why" as a world.** The answer opens into the causal web behind it: press
80
+ - **View any "why" as a living answer.** The answer opens into the causal web behind it: press
81
81
  _Walk me through it_ and the camera flies cause to cause while Mavéa narrates, or read the same
82
- web as contribution ribbons, a timeline, or a chart. Every figure on it can prove itself, every
83
- arrow says what it does _not_ claim, and pulling a what-if lever re-weights the world in words —
84
- never in invented numbers.
82
+ web as contribution ribbons, a timeline, or a chart. Break a cause open and its parts are drawn by
83
+ whichever component the library has for that shape or simply named, where nothing measured them.
84
+ Every figure on it can prove itself, every arrow says what it does _not_ claim, and pulling a
85
+ what-if lever re-weights the world in words — never in invented numbers.
85
86
 
86
87
  The full tour — Atlas, the Rehearsal, living dashboards, Ripple, selective Conversation video,
87
88
  Mavéa Reels, and ~30 more —
@@ -89,7 +90,7 @@ is in [docs/FEATURES.md](docs/FEATURES.md). In the app, press **⌘K**.
89
90
 
90
91
  ## What it looks like
91
92
 
92
- Ten moments from the walkthrough and the recorded sessions. Every one replays with no key via
93
+ Twelve moments from the walkthrough and the recorded sessions. Every one replays with no key via
93
94
  `npx @mavea/mavea` — except the thought map, whose threads need a live model to draw.
94
95
 
95
96
  <!-- Generated, never hand-captured: `pnpm gen:media` re-shoots these against the current build
@@ -99,18 +100,22 @@ Ten moments from the walkthrough and the recorded sessions. Every one replays wi
99
100
  it is the only markup GitHub and npm both keep on one row. -->
100
101
  <table>
101
102
  <tr>
102
- <td width="20%" valign="top"><img width="168" src="docs/media/answer-ink.jpg" alt="A token-exchange request on the canvas, underlined and highlighted by Mavéa's pen as it narrates" /><br /><sub><b>It marks what it's saying.</b> The pen lands on the exact line as the sentence is spoken.</sub></td>
103
- <td width="20%" valign="top"><img width="168" src="docs/media/canvas-view.jpg" alt="The same answer opened as a spatial canvas, cards connected by drawn links" /><br /><sub><b>The same answer as a board.</b> Laid out in space, with the relationships drawn between them.</sub></td>
104
- <td width="20%" valign="top"><img width="168" src="docs/media/trip-plan.jpg" alt="A day trip drawn as a route map with numbered stops beside an hour-by-hour plan" /><br /><sub><b>It picks the right form.</b> A route becomes a map; a day becomes an hour-by-hour plan.</sub></td>
105
- <td width="20%" valign="top"><img width="168" src="docs/media/think-map.jpg" alt="Thoughts spoken out loud, sorted into themes and threads with the tension between two of them named" /><br /><sub><b>Think out loud first.</b> A ramble sorts itself into themes and it names the tension you missed.</sub></td>
106
- <td width="20%" valign="top"><img width="168" src="docs/media/voice-scrub.jpg" alt="A settled answer with its spoken track drawn as a waveform, above the card being narrated" /><br /><sub><b>Scrub the voice.</b> Drag the spoken track and the canvas un-builds to what had been said.</sub></td>
103
+ <td width="25%" valign="top"><img width="168" src="docs/media/answer-ink.jpg" alt="A token-exchange request on the canvas, underlined and highlighted by Mavéa's pen as it narrates" /><br /><sub><b>It marks what it's saying.</b> The pen lands on the exact line as the sentence is spoken.</sub></td>
104
+ <td width="25%" valign="top"><img width="168" src="docs/media/canvas-view.jpg" alt="The same answer opened as a spatial canvas, cards connected by drawn links" /><br /><sub><b>The same answer as a board.</b> Laid out in space, with the relationships drawn between them.</sub></td>
105
+ <td width="25%" valign="top"><img width="168" src="docs/media/think-map.jpg" alt="Thoughts spoken out loud, sorted into themes and threads with the tension between two of them named" /><br /><sub><b>Think out loud first.</b> A ramble sorts itself into themes and it names the tension you missed.</sub></td>
106
+ <td width="25%" valign="top"><img width="168" src="docs/media/voice-scrub.jpg" alt="A settled answer with its spoken track drawn as a waveform, above the card being narrated" /><br /><sub><b>Scrub the voice.</b> Drag the spoken track and the canvas un-builds to what had been said.</sub></td>
107
107
  </tr>
108
108
  <tr>
109
- <td width="20%" valign="top"><img width="168" src="docs/media/doc-prism.jpg" alt="A NASA technical report read claim by claim, each finding highlighted on the real scanned page" /><br /><sub><b>A document, claim by claim.</b> Every finding highlighted on the real page it came from.</sub></td>
110
- <td width="20%" valign="top"><img width="168" src="docs/media/repo-course.jpg" alt="A GitHub repository turned into a beginner-to-expert curriculum with lessons, files to read and a checkpoint" /><br /><sub><b>A repository, taught.</b> Beginner to expert, built from the code, with real files.</sub></td>
111
- <td width="20%" valign="top"><img width="168" src="docs/media/deep-zoom.jpg" alt="Deep Zoom descending through a leaf, from the whole plant down toward a photon" /><br /><sub><b>A topic, in powers of ten.</b> Telescope from the big picture to the finest mechanism.</sub></td>
112
- <td width="20%" valign="top"><img width="168" src="docs/media/deck-export.jpg" alt="The export studio previewing a generated slide, with PDF and PPTX downloads" /><br /><sub><b>Out as a deck.</b> Ten skins, a live preview, PDF or PowerPoint.</sub></td>
113
- <td width="20%" valign="top"><img width="168" src="docs/media/doc-export.jpg" alt="The export studio previewing a generated document page in an editorial template" /><br /><sub><b>Or as a document.</b> The same answer set as a paper, ready to print or send.</sub></td>
109
+ <td width="25%" valign="top"><img width="168" src="docs/media/living-answer.jpg" alt="A causal web explaining why the 2008 financial crisis happened, nodes connected by weighted arrows showing what led to what" /><br /><sub><b>Walk the why.</b> A "why" answer opens into the causal web behind it every cause traceable to a real quote.</sub></td>
110
+ <td width="25%" valign="top"><img width="168" src="docs/media/course-lesson.jpg" alt="A course lesson titled 'The learning loop', showing lesson 1 of 5 with learning objectives, a checkpoint, and a diagram of a neural network's training cycle" /><br /><sub><b>It builds you a course.</b> Ask to master something and get real lessons — objectives, a checkpoint, next steps.</sub></td>
111
+ <td width="25%" valign="top"><img width="168" src="docs/media/deep-zoom.jpg" alt="Deep Zoom descending through a leaf, from the whole plant down toward a photon" /><br /><sub><b>A topic, in powers of ten.</b> Telescope from the big picture to the finest mechanism.</sub></td>
112
+ <td width="25%" valign="top"><img width="168" src="docs/media/doc-prism.jpg" alt="A NASA technical report read claim by claim, each finding highlighted on the real scanned page" /><br /><sub><b>A document, claim by claim.</b> Every finding highlighted on the real page it came from.</sub></td>
113
+ </tr>
114
+ <tr>
115
+ <td width="25%" valign="top"><img width="168" src="docs/media/trip-plan.jpg" alt="A day trip drawn as a route map with numbered stops beside an hour-by-hour plan" /><br /><sub><b>It picks the right form.</b> A route becomes a map; a day becomes an hour-by-hour plan.</sub></td>
116
+ <td width="25%" valign="top"><img width="168" src="docs/media/repo-course.jpg" alt="A GitHub repository turned into a beginner-to-expert curriculum with lessons, files to read and a checkpoint" /><br /><sub><b>A repository, taught.</b> Beginner to expert, built from the code, with real files.</sub></td>
117
+ <td width="25%" valign="top"><img width="168" src="docs/media/deck-export.jpg" alt="The export studio previewing a generated slide, with PDF and PPTX downloads" /><br /><sub><b>Out as a deck.</b> Ten skins, a live preview, PDF or PowerPoint.</sub></td>
118
+ <td width="25%" valign="top"><img width="168" src="docs/media/doc-export.jpg" alt="The export studio previewing a generated document page in an editorial template" /><br /><sub><b>Or as a document.</b> The same answer set as a paper, ready to print or send.</sub></td>
114
119
  </tr>
115
120
  </table>
116
121
 
package/TERMS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Mavéa Terms of Use
2
2
 
3
- Effective: August 11, 2026
3
+ Effective: August 17, 2026
4
4
 
5
5
  These Terms of Use (the **Terms**) govern your use of the Mavéa application, command-line package, demos, documentation, and related materials (collectively, the **Service**). **Licensor** means each applicable copyright holder offering software under the PolyForm license. **Maintainers** means the people who publish or contribute to Mavéa; a Maintainer is not necessarily a Licensor. **Deployment operator** means the person or organization hosting the copy you use. **Responsible Party** means the applicable Licensor, Maintainer, or deployment operator responsible for a statement, obligation, service, or claim. In these Terms, **we**, **us**, or **our** means the relevant Responsible Party or Parties in context. A separately operated deployment remains independent from the Licensors and Maintainers unless the same person or organization serves both roles.
6
6
 
@@ -30,6 +30,8 @@ You are responsible for selecting, configuring, operating, and securing your dev
30
30
 
31
31
  The Service uses probabilistic artificial-intelligence systems. Outputs, citations, calculations, classifications, summaries, transcriptions, translations, confidence labels, and visualizations may be false, fabricated, inaccurate, incomplete, misleading, biased, offensive, unsafe, or outdated. A polished presentation, citation, calculation, validation check, or natural voice does not guarantee accuracy, originality, legality, quality, or fitness for a particular purpose.
32
32
 
33
+ Output quality depends on the model, provider, and settings you select, and those are your choices. Models differ in whether they retrieve live information at all, whether the Service can compel them to, whether they disclose what they used, and how current their training data is; a smaller or cheaper model may answer from memory rather than searching, and may not say so. Features that display tracked, refreshed, or "live" values are therefore best-effort only: a value may be stale, incomplete, absent, or wrong, a check may be delayed, skipped, or silently unsuccessful, a figure obtained from a genuine live search may already be out of date at its source, and a source shown beside a figure does not establish that the figure came from that source or is accurate. Alert and notification features are likewise best-effort; no alert is guaranteed to fire or to be delivered. Scheduled checks run on credentials you supply and can incur third-party charges at whatever cadence you configure. Do not treat any displayed value as real-time, authoritative, monitored, or verified, and do not rely on tracking or alerts as your means of watching anything consequential.
34
+
33
35
  You must independently review and verify important output against qualified professionals and original sources before relying on, publishing, sharing, or acting on it. The Service is not a substitute for qualified professional judgment and does not provide medical, legal, financial, tax, accounting, safety, engineering, mental-health, or other professional advice. Do not use it for emergencies or as the sole basis for decisions that may affect a person's rights, health, safety, finances, employment, education, housing, insurance, or access to essential services. You remain responsible for deciding whether and how to use every output.
34
36
 
35
37
  ## 5. Third-party services, credentials, and costs