superlocalmemory 4.1.13 → 4.1.14

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 (740) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +48 -0
  3. package/README.md +3 -3
  4. package/package.json +1 -8
  5. package/plugin/.claude-plugin/plugin.json +1 -1
  6. package/plugin/CLAUDE.md +3 -3
  7. package/plugin/agents/slm-governance-advisor.md +1 -1
  8. package/plugin/agents/slm-loop-runner.md +1 -1
  9. package/plugin/agents/slm-memory-advisor.md +1 -1
  10. package/plugin/agents/slm-optimize-advisor.md +1 -1
  11. package/plugin/requirements.txt +1 -1
  12. package/plugin/skills/slm-cache/SKILL.md +1 -1
  13. package/plugin/skills/slm-compress/SKILL.md +1 -1
  14. package/plugin/skills/slm-governance/SKILL.md +1 -1
  15. package/plugin/skills/slm-graph/SKILL.md +1 -1
  16. package/plugin/skills/slm-loop/SKILL.md +1 -1
  17. package/plugin/skills/slm-mesh/SKILL.md +1 -1
  18. package/plugin/skills/slm-profile/SKILL.md +1 -1
  19. package/plugin/skills/slm-recall/SKILL.md +1 -1
  20. package/plugin/skills/slm-remember/SKILL.md +1 -1
  21. package/plugin/skills/slm-scope/SKILL.md +1 -1
  22. package/plugin/skills/slm-session/SKILL.md +1 -1
  23. package/plugin/skills/slm-status/SKILL.md +1 -1
  24. package/plugin-src/agents/slm-memory-advisor.md +1 -1
  25. package/plugin-src/agents/slm-optimize-advisor.md +1 -1
  26. package/plugin-src/rules/AGENTS.md +1 -1
  27. package/plugin-src/skills/slm-cache/SKILL.md +1 -1
  28. package/plugin-src/skills/slm-compress/SKILL.md +1 -1
  29. package/plugin-src/skills/slm-governance/SKILL.md +1 -1
  30. package/plugin-src/skills/slm-graph/SKILL.md +1 -1
  31. package/plugin-src/skills/slm-loop/SKILL.md +1 -1
  32. package/plugin-src/skills/slm-mesh/SKILL.md +1 -1
  33. package/plugin-src/skills/slm-profile/SKILL.md +1 -1
  34. package/plugin-src/skills/slm-recall/SKILL.md +1 -1
  35. package/plugin-src/skills/slm-remember/SKILL.md +1 -1
  36. package/plugin-src/skills/slm-scope/SKILL.md +1 -1
  37. package/plugin-src/skills/slm-session/SKILL.md +1 -1
  38. package/plugin-src/skills/slm-status/SKILL.md +1 -1
  39. package/scripts/postinstall.js +71 -2
  40. package/pyproject.toml +0 -250
  41. package/src/superlocalmemory/__init__.py +0 -82
  42. package/src/superlocalmemory/access/__init__.py +0 -3
  43. package/src/superlocalmemory/access/rbac.py +0 -575
  44. package/src/superlocalmemory/attribution/__init__.py +0 -9
  45. package/src/superlocalmemory/attribution/signer.py +0 -173
  46. package/src/superlocalmemory/attribution/watermark.py +0 -189
  47. package/src/superlocalmemory/brain/__init__.py +0 -5
  48. package/src/superlocalmemory/brain/truth.py +0 -418
  49. package/src/superlocalmemory/cli/__init__.py +0 -5
  50. package/src/superlocalmemory/cli/__main__.py +0 -17
  51. package/src/superlocalmemory/cli/_lazy_init.py +0 -115
  52. package/src/superlocalmemory/cli/cache_cmd.py +0 -198
  53. package/src/superlocalmemory/cli/commands.py +0 -4710
  54. package/src/superlocalmemory/cli/compress_cmd.py +0 -151
  55. package/src/superlocalmemory/cli/context_commands.py +0 -193
  56. package/src/superlocalmemory/cli/daemon.py +0 -909
  57. package/src/superlocalmemory/cli/db_migrate.py +0 -150
  58. package/src/superlocalmemory/cli/diagnostics_cmd.py +0 -101
  59. package/src/superlocalmemory/cli/escape_hatch.py +0 -220
  60. package/src/superlocalmemory/cli/evidence_cmd.py +0 -103
  61. package/src/superlocalmemory/cli/gdpr_cmd.py +0 -792
  62. package/src/superlocalmemory/cli/gdpr_io.py +0 -109
  63. package/src/superlocalmemory/cli/help_cmd.py +0 -197
  64. package/src/superlocalmemory/cli/host_upgrades.py +0 -189
  65. package/src/superlocalmemory/cli/ingest_cmd.py +0 -327
  66. package/src/superlocalmemory/cli/json_output.py +0 -81
  67. package/src/superlocalmemory/cli/loop_cmd.py +0 -187
  68. package/src/superlocalmemory/cli/main.py +0 -1145
  69. package/src/superlocalmemory/cli/mesh_cmd.py +0 -38
  70. package/src/superlocalmemory/cli/migrate_cmd.py +0 -55
  71. package/src/superlocalmemory/cli/ops_cmd.py +0 -281
  72. package/src/superlocalmemory/cli/optimize_cmd.py +0 -179
  73. package/src/superlocalmemory/cli/optimize_constants.py +0 -31
  74. package/src/superlocalmemory/cli/pending_store.py +0 -296
  75. package/src/superlocalmemory/cli/proxy_cmd.py +0 -108
  76. package/src/superlocalmemory/cli/scale_engine_cmd.py +0 -56
  77. package/src/superlocalmemory/cli/service_installer.py +0 -373
  78. package/src/superlocalmemory/cli/setup_wizard.py +0 -1162
  79. package/src/superlocalmemory/cli/summary_cmd.py +0 -215
  80. package/src/superlocalmemory/cli/version_banner.py +0 -202
  81. package/src/superlocalmemory/cli/wizard_v3426_options.py +0 -129
  82. package/src/superlocalmemory/code_graph/__init__.py +0 -46
  83. package/src/superlocalmemory/code_graph/blast_radius.py +0 -177
  84. package/src/superlocalmemory/code_graph/bridge/__init__.py +0 -36
  85. package/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -490
  86. package/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -206
  87. package/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -159
  88. package/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -170
  89. package/src/superlocalmemory/code_graph/bridge/maintenance.py +0 -220
  90. package/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -152
  91. package/src/superlocalmemory/code_graph/changes.py +0 -363
  92. package/src/superlocalmemory/code_graph/communities.py +0 -299
  93. package/src/superlocalmemory/code_graph/config.py +0 -154
  94. package/src/superlocalmemory/code_graph/database.py +0 -526
  95. package/src/superlocalmemory/code_graph/extractors/__init__.py +0 -95
  96. package/src/superlocalmemory/code_graph/extractors/python.py +0 -413
  97. package/src/superlocalmemory/code_graph/extractors/typescript.py +0 -556
  98. package/src/superlocalmemory/code_graph/flows.py +0 -350
  99. package/src/superlocalmemory/code_graph/git_hooks.py +0 -226
  100. package/src/superlocalmemory/code_graph/graph_engine.py +0 -295
  101. package/src/superlocalmemory/code_graph/graph_store.py +0 -335
  102. package/src/superlocalmemory/code_graph/incremental.py +0 -200
  103. package/src/superlocalmemory/code_graph/models.py +0 -130
  104. package/src/superlocalmemory/code_graph/parser.py +0 -687
  105. package/src/superlocalmemory/code_graph/resolver.py +0 -321
  106. package/src/superlocalmemory/code_graph/search.py +0 -460
  107. package/src/superlocalmemory/code_graph/service.py +0 -95
  108. package/src/superlocalmemory/code_graph/watcher.py +0 -207
  109. package/src/superlocalmemory/compliance/__init__.py +0 -0
  110. package/src/superlocalmemory/compliance/abac.py +0 -204
  111. package/src/superlocalmemory/compliance/audit.py +0 -385
  112. package/src/superlocalmemory/compliance/eu_ai_act.py +0 -101
  113. package/src/superlocalmemory/compliance/gdpr.py +0 -1479
  114. package/src/superlocalmemory/compliance/lifecycle.py +0 -158
  115. package/src/superlocalmemory/compliance/retention.py +0 -415
  116. package/src/superlocalmemory/compliance/scheduler.py +0 -217
  117. package/src/superlocalmemory/contracts/__init__.py +0 -1
  118. package/src/superlocalmemory/contracts/schemas/agent-experience-v1.schema.json +0 -92
  119. package/src/superlocalmemory/contracts/schemas/agent-integration-contract-v2.schema.json +0 -46
  120. package/src/superlocalmemory/contracts/schemas/cognitive-turn-receipt-v1.schema.json +0 -59
  121. package/src/superlocalmemory/contracts/v402.py +0 -62
  122. package/src/superlocalmemory/core/__init__.py +0 -0
  123. package/src/superlocalmemory/core/actor_context.py +0 -166
  124. package/src/superlocalmemory/core/admission.py +0 -769
  125. package/src/superlocalmemory/core/backend_orchestrator.py +0 -637
  126. package/src/superlocalmemory/core/block_hygiene.py +0 -147
  127. package/src/superlocalmemory/core/community_summary.py +0 -267
  128. package/src/superlocalmemory/core/component_healer.py +0 -144
  129. package/src/superlocalmemory/core/component_registry.py +0 -514
  130. package/src/superlocalmemory/core/config.py +0 -2204
  131. package/src/superlocalmemory/core/consolidation_engine.py +0 -983
  132. package/src/superlocalmemory/core/context_cache.py +0 -574
  133. package/src/superlocalmemory/core/derivation_lineage.py +0 -246
  134. package/src/superlocalmemory/core/embedding_worker.py +0 -208
  135. package/src/superlocalmemory/core/embeddings.py +0 -1052
  136. package/src/superlocalmemory/core/engine.py +0 -1395
  137. package/src/superlocalmemory/core/engine_capabilities.py +0 -24
  138. package/src/superlocalmemory/core/engine_ingestion.py +0 -983
  139. package/src/superlocalmemory/core/engine_lock.py +0 -75
  140. package/src/superlocalmemory/core/engine_wiring.py +0 -776
  141. package/src/superlocalmemory/core/entity_community.py +0 -178
  142. package/src/superlocalmemory/core/error_envelope.py +0 -60
  143. package/src/superlocalmemory/core/evidence_bundle.py +0 -528
  144. package/src/superlocalmemory/core/fact_consolidator.py +0 -812
  145. package/src/superlocalmemory/core/file_lock.py +0 -92
  146. package/src/superlocalmemory/core/graph_analyzer.py +0 -456
  147. package/src/superlocalmemory/core/graph_metrics.py +0 -597
  148. package/src/superlocalmemory/core/graph_pruner.py +0 -939
  149. package/src/superlocalmemory/core/health_monitor.py +0 -338
  150. package/src/superlocalmemory/core/hooks.py +0 -65
  151. package/src/superlocalmemory/core/ingest_gate.py +0 -133
  152. package/src/superlocalmemory/core/ingest_policy.py +0 -38
  153. package/src/superlocalmemory/core/ingestion_command.py +0 -1042
  154. package/src/superlocalmemory/core/injection.py +0 -434
  155. package/src/superlocalmemory/core/install_detector.py +0 -131
  156. package/src/superlocalmemory/core/key_expander.py +0 -138
  157. package/src/superlocalmemory/core/lifecycle_state.py +0 -153
  158. package/src/superlocalmemory/core/maintenance.py +0 -777
  159. package/src/superlocalmemory/core/maintenance_scheduler.py +0 -507
  160. package/src/superlocalmemory/core/materialization_control.py +0 -20
  161. package/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -89
  162. package/src/superlocalmemory/core/memory_health.py +0 -266
  163. package/src/superlocalmemory/core/mode_capability.py +0 -111
  164. package/src/superlocalmemory/core/modes.py +0 -168
  165. package/src/superlocalmemory/core/mutations.py +0 -688
  166. package/src/superlocalmemory/core/ollama_embedder.py +0 -266
  167. package/src/superlocalmemory/core/ollama_validator.py +0 -315
  168. package/src/superlocalmemory/core/operation_policy.py +0 -92
  169. package/src/superlocalmemory/core/operation_policy_registry.py +0 -542
  170. package/src/superlocalmemory/core/operation_request.py +0 -127
  171. package/src/superlocalmemory/core/ops_remediation.py +0 -542
  172. package/src/superlocalmemory/core/pii.py +0 -105
  173. package/src/superlocalmemory/core/platform_utils.py +0 -138
  174. package/src/superlocalmemory/core/profiles.py +0 -234
  175. package/src/superlocalmemory/core/progressive_abstraction.py +0 -208
  176. package/src/superlocalmemory/core/projection_drain.py +0 -380
  177. package/src/superlocalmemory/core/queue_consumer.py +0 -168
  178. package/src/superlocalmemory/core/ram_lock.py +0 -160
  179. package/src/superlocalmemory/core/rate_limit.py +0 -151
  180. package/src/superlocalmemory/core/recall_gate.py +0 -95
  181. package/src/superlocalmemory/core/recall_pipeline.py +0 -1337
  182. package/src/superlocalmemory/core/recall_queue.py +0 -377
  183. package/src/superlocalmemory/core/recall_worker.py +0 -414
  184. package/src/superlocalmemory/core/registry.py +0 -121
  185. package/src/superlocalmemory/core/remember_admission.py +0 -161
  186. package/src/superlocalmemory/core/remember_runtime.py +0 -1190
  187. package/src/superlocalmemory/core/remote_mode.py +0 -214
  188. package/src/superlocalmemory/core/reranker_worker.py +0 -338
  189. package/src/superlocalmemory/core/safe_fs.py +0 -108
  190. package/src/superlocalmemory/core/scale_autopromote.py +0 -196
  191. package/src/superlocalmemory/core/scale_engine.py +0 -915
  192. package/src/superlocalmemory/core/score_contract.py +0 -82
  193. package/src/superlocalmemory/core/security_primitives.py +0 -672
  194. package/src/superlocalmemory/core/session_identity.py +0 -98
  195. package/src/superlocalmemory/core/shadow_router.py +0 -319
  196. package/src/superlocalmemory/core/slm_disabled.py +0 -85
  197. package/src/superlocalmemory/core/status_contract.py +0 -108
  198. package/src/superlocalmemory/core/store_pipeline.py +0 -1404
  199. package/src/superlocalmemory/core/summarizer.py +0 -200
  200. package/src/superlocalmemory/core/tier_manager.py +0 -461
  201. package/src/superlocalmemory/core/topic_signature.py +0 -156
  202. package/src/superlocalmemory/core/transactions/__init__.py +0 -78
  203. package/src/superlocalmemory/core/transactions/concrete_owners.py +0 -604
  204. package/src/superlocalmemory/core/transactions/erasure.py +0 -825
  205. package/src/superlocalmemory/core/transactions/manifest.py +0 -255
  206. package/src/superlocalmemory/core/transactions/manifest_key.py +0 -155
  207. package/src/superlocalmemory/core/transactions/obligations.py +0 -272
  208. package/src/superlocalmemory/core/transactions/owners.py +0 -114
  209. package/src/superlocalmemory/core/transactions/reconciler.py +0 -285
  210. package/src/superlocalmemory/core/transactions/service.py +0 -330
  211. package/src/superlocalmemory/core/worker_pool.py +0 -377
  212. package/src/superlocalmemory/core/working_memory.py +0 -288
  213. package/src/superlocalmemory/dynamics/__init__.py +0 -0
  214. package/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -374
  215. package/src/superlocalmemory/dynamics/eap_scheduler.py +0 -294
  216. package/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -171
  217. package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -227
  218. package/src/superlocalmemory/encoding/__init__.py +0 -0
  219. package/src/superlocalmemory/encoding/auto_linker.py +0 -308
  220. package/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -899
  221. package/src/superlocalmemory/encoding/consolidator.py +0 -472
  222. package/src/superlocalmemory/encoding/context_generator.py +0 -175
  223. package/src/superlocalmemory/encoding/emotional.py +0 -189
  224. package/src/superlocalmemory/encoding/entity_reflexion.py +0 -200
  225. package/src/superlocalmemory/encoding/entity_resolver.py +0 -687
  226. package/src/superlocalmemory/encoding/entropy_gate.py +0 -101
  227. package/src/superlocalmemory/encoding/fact_extractor.py +0 -877
  228. package/src/superlocalmemory/encoding/foresight.py +0 -93
  229. package/src/superlocalmemory/encoding/graph_builder.py +0 -346
  230. package/src/superlocalmemory/encoding/observation_builder.py +0 -177
  231. package/src/superlocalmemory/encoding/prospective_markers.py +0 -262
  232. package/src/superlocalmemory/encoding/scene_builder.py +0 -410
  233. package/src/superlocalmemory/encoding/signal_inference.py +0 -90
  234. package/src/superlocalmemory/encoding/temporal_parser.py +0 -432
  235. package/src/superlocalmemory/encoding/temporal_validator.py +0 -572
  236. package/src/superlocalmemory/encoding/type_router.py +0 -237
  237. package/src/superlocalmemory/evaluation/__init__.py +0 -13
  238. package/src/superlocalmemory/evaluation/calibration.py +0 -308
  239. package/src/superlocalmemory/evolution/__init__.py +0 -29
  240. package/src/superlocalmemory/evolution/blind_verifier.py +0 -122
  241. package/src/superlocalmemory/evolution/budget.py +0 -356
  242. package/src/superlocalmemory/evolution/evolution_store.py +0 -619
  243. package/src/superlocalmemory/evolution/llm_dispatch.py +0 -559
  244. package/src/superlocalmemory/evolution/model_selection.py +0 -175
  245. package/src/superlocalmemory/evolution/mutation_generator.py +0 -226
  246. package/src/superlocalmemory/evolution/skill_activator.py +0 -270
  247. package/src/superlocalmemory/evolution/skill_evolver.py +0 -928
  248. package/src/superlocalmemory/evolution/triggers.py +0 -376
  249. package/src/superlocalmemory/evolution/types.py +0 -114
  250. package/src/superlocalmemory/graph/__init__.py +0 -9
  251. package/src/superlocalmemory/graph/cozo_adjacency.py +0 -122
  252. package/src/superlocalmemory/graph/cozo_backend.py +0 -751
  253. package/src/superlocalmemory/hooks/__init__.py +0 -3
  254. package/src/superlocalmemory/hooks/_outcome_common.py +0 -523
  255. package/src/superlocalmemory/hooks/adapter_base.py +0 -347
  256. package/src/superlocalmemory/hooks/antigravity_adapter.py +0 -171
  257. package/src/superlocalmemory/hooks/auto_capture.py +0 -133
  258. package/src/superlocalmemory/hooks/auto_invoker.py +0 -521
  259. package/src/superlocalmemory/hooks/auto_parameterize.py +0 -147
  260. package/src/superlocalmemory/hooks/auto_recall.py +0 -191
  261. package/src/superlocalmemory/hooks/auto_recall_hook.py +0 -251
  262. package/src/superlocalmemory/hooks/before_web_hook.py +0 -131
  263. package/src/superlocalmemory/hooks/claude_code_hooks.py +0 -637
  264. package/src/superlocalmemory/hooks/codex_assets.py +0 -251
  265. package/src/superlocalmemory/hooks/codex_hooks.py +0 -186
  266. package/src/superlocalmemory/hooks/context_payload.py +0 -311
  267. package/src/superlocalmemory/hooks/copilot_adapter.py +0 -208
  268. package/src/superlocalmemory/hooks/cross_platform_connector.py +0 -90
  269. package/src/superlocalmemory/hooks/cursor_adapter.py +0 -173
  270. package/src/superlocalmemory/hooks/hook_daemon.py +0 -295
  271. package/src/superlocalmemory/hooks/hook_handlers.py +0 -822
  272. package/src/superlocalmemory/hooks/ide_connector.py +0 -246
  273. package/src/superlocalmemory/hooks/memory_protocol.py +0 -158
  274. package/src/superlocalmemory/hooks/portable_kit.py +0 -755
  275. package/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -183
  276. package/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -351
  277. package/src/superlocalmemory/hooks/prewarm_auth.py +0 -187
  278. package/src/superlocalmemory/hooks/rules_engine.py +0 -99
  279. package/src/superlocalmemory/hooks/session_registry.py +0 -330
  280. package/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -138
  281. package/src/superlocalmemory/hooks/sync_loop.py +0 -114
  282. package/src/superlocalmemory/hooks/topic_shift_hook.py +0 -302
  283. package/src/superlocalmemory/hooks/user_prompt_hook.py +0 -131
  284. package/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -210
  285. package/src/superlocalmemory/infra/__init__.py +0 -3
  286. package/src/superlocalmemory/infra/auth_middleware.py +0 -145
  287. package/src/superlocalmemory/infra/backup.py +0 -974
  288. package/src/superlocalmemory/infra/backup_obligations.py +0 -423
  289. package/src/superlocalmemory/infra/cache_manager.py +0 -267
  290. package/src/superlocalmemory/infra/cloud_backup.py +0 -788
  291. package/src/superlocalmemory/infra/daemon_identity.py +0 -300
  292. package/src/superlocalmemory/infra/data_root.py +0 -238
  293. package/src/superlocalmemory/infra/event_bus.py +0 -637
  294. package/src/superlocalmemory/infra/local_diagnostics.py +0 -327
  295. package/src/superlocalmemory/infra/pid_manager.py +0 -193
  296. package/src/superlocalmemory/infra/process_identity.py +0 -180
  297. package/src/superlocalmemory/infra/process_reaper.py +0 -624
  298. package/src/superlocalmemory/infra/rate_limiter.py +0 -228
  299. package/src/superlocalmemory/infra/self_heal.py +0 -401
  300. package/src/superlocalmemory/infra/version_integrity.py +0 -229
  301. package/src/superlocalmemory/ingestion/__init__.py +0 -13
  302. package/src/superlocalmemory/ingestion/adapter_manager.py +0 -255
  303. package/src/superlocalmemory/ingestion/base_adapter.py +0 -171
  304. package/src/superlocalmemory/ingestion/calendar_adapter.py +0 -349
  305. package/src/superlocalmemory/ingestion/credentials.py +0 -125
  306. package/src/superlocalmemory/ingestion/gmail_adapter.py +0 -378
  307. package/src/superlocalmemory/ingestion/parsers.py +0 -100
  308. package/src/superlocalmemory/ingestion/transcript_adapter.py +0 -161
  309. package/src/superlocalmemory/integrations/__init__.py +0 -1
  310. package/src/superlocalmemory/integrations/bounded_loops_mcp.py +0 -431
  311. package/src/superlocalmemory/integrations/bounded_loops_v051.py +0 -236
  312. package/src/superlocalmemory/learning/__init__.py +0 -0
  313. package/src/superlocalmemory/learning/adaptive.py +0 -172
  314. package/src/superlocalmemory/learning/arm_catalog.py +0 -97
  315. package/src/superlocalmemory/learning/assertion_miner.py +0 -403
  316. package/src/superlocalmemory/learning/bandit.py +0 -654
  317. package/src/superlocalmemory/learning/bandit_cache.py +0 -131
  318. package/src/superlocalmemory/learning/behavioral.py +0 -542
  319. package/src/superlocalmemory/learning/bootstrap.py +0 -298
  320. package/src/superlocalmemory/learning/consolidation_cycle.py +0 -398
  321. package/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -115
  322. package/src/superlocalmemory/learning/consolidation_worker.py +0 -261
  323. package/src/superlocalmemory/learning/cross_project.py +0 -408
  324. package/src/superlocalmemory/learning/database.py +0 -698
  325. package/src/superlocalmemory/learning/dedup_hnsw.py +0 -413
  326. package/src/superlocalmemory/learning/engagement.py +0 -487
  327. package/src/superlocalmemory/learning/engagement_features.py +0 -279
  328. package/src/superlocalmemory/learning/ensemble.py +0 -309
  329. package/src/superlocalmemory/learning/entity_compiler.py +0 -356
  330. package/src/superlocalmemory/learning/fact_outcome_joins.py +0 -207
  331. package/src/superlocalmemory/learning/features.py +0 -138
  332. package/src/superlocalmemory/learning/feedback.py +0 -724
  333. package/src/superlocalmemory/learning/forgetting_scheduler.py +0 -375
  334. package/src/superlocalmemory/learning/hnsw_dedup.py +0 -69
  335. package/src/superlocalmemory/learning/labeler.py +0 -85
  336. package/src/superlocalmemory/learning/legacy_migration.py +0 -316
  337. package/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -236
  338. package/src/superlocalmemory/learning/memory_merge.py +0 -175
  339. package/src/superlocalmemory/learning/model_cache.py +0 -267
  340. package/src/superlocalmemory/learning/model_rollback.py +0 -281
  341. package/src/superlocalmemory/learning/outcome_queue.py +0 -306
  342. package/src/superlocalmemory/learning/outcomes.py +0 -286
  343. package/src/superlocalmemory/learning/pattern_miner.py +0 -465
  344. package/src/superlocalmemory/learning/pattern_miner_constants.py +0 -90
  345. package/src/superlocalmemory/learning/pcos.py +0 -291
  346. package/src/superlocalmemory/learning/project_context.py +0 -366
  347. package/src/superlocalmemory/learning/propensity.py +0 -131
  348. package/src/superlocalmemory/learning/ranker.py +0 -300
  349. package/src/superlocalmemory/learning/ranker_common.py +0 -163
  350. package/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -210
  351. package/src/superlocalmemory/learning/ranker_retrain_online.py +0 -423
  352. package/src/superlocalmemory/learning/reward.py +0 -888
  353. package/src/superlocalmemory/learning/reward_archive.py +0 -223
  354. package/src/superlocalmemory/learning/reward_boost.py +0 -211
  355. package/src/superlocalmemory/learning/reward_from_outcomes.py +0 -365
  356. package/src/superlocalmemory/learning/reward_model.py +0 -144
  357. package/src/superlocalmemory/learning/reward_proxy.py +0 -578
  358. package/src/superlocalmemory/learning/shadow_test.py +0 -524
  359. package/src/superlocalmemory/learning/signal_kinds.py +0 -79
  360. package/src/superlocalmemory/learning/signal_worker.py +0 -268
  361. package/src/superlocalmemory/learning/signals.py +0 -646
  362. package/src/superlocalmemory/learning/skill_performance_miner.py +0 -422
  363. package/src/superlocalmemory/learning/source_quality.py +0 -828
  364. package/src/superlocalmemory/learning/trigram_index.py +0 -548
  365. package/src/superlocalmemory/learning/workflows.py +0 -309
  366. package/src/superlocalmemory/llm/__init__.py +0 -0
  367. package/src/superlocalmemory/llm/backbone.py +0 -364
  368. package/src/superlocalmemory/loops/__init__.py +0 -58
  369. package/src/superlocalmemory/loops/budget.py +0 -58
  370. package/src/superlocalmemory/loops/engine.py +0 -174
  371. package/src/superlocalmemory/loops/ledger.py +0 -298
  372. package/src/superlocalmemory/loops/models.py +0 -152
  373. package/src/superlocalmemory/loops/rules.py +0 -52
  374. package/src/superlocalmemory/math/__init__.py +0 -0
  375. package/src/superlocalmemory/math/ebbinghaus.py +0 -352
  376. package/src/superlocalmemory/math/fisher.py +0 -356
  377. package/src/superlocalmemory/math/fisher_quantized.py +0 -255
  378. package/src/superlocalmemory/math/hopfield.py +0 -282
  379. package/src/superlocalmemory/math/langevin.py +0 -411
  380. package/src/superlocalmemory/math/polar_quant.py +0 -414
  381. package/src/superlocalmemory/math/qjl.py +0 -115
  382. package/src/superlocalmemory/math/sheaf.py +0 -261
  383. package/src/superlocalmemory/math/turbo_quant.py +0 -318
  384. package/src/superlocalmemory/mcp/__init__.py +0 -0
  385. package/src/superlocalmemory/mcp/_daemon_proxy.py +0 -203
  386. package/src/superlocalmemory/mcp/_pool_adapter.py +0 -181
  387. package/src/superlocalmemory/mcp/_stdin_guard.py +0 -60
  388. package/src/superlocalmemory/mcp/agent_context.py +0 -115
  389. package/src/superlocalmemory/mcp/cli_fallback.py +0 -602
  390. package/src/superlocalmemory/mcp/http_transport.py +0 -85
  391. package/src/superlocalmemory/mcp/profiles.py +0 -154
  392. package/src/superlocalmemory/mcp/resources.py +0 -281
  393. package/src/superlocalmemory/mcp/server.py +0 -480
  394. package/src/superlocalmemory/mcp/session_binding.py +0 -98
  395. package/src/superlocalmemory/mcp/shared.py +0 -112
  396. package/src/superlocalmemory/mcp/tools.py +0 -18
  397. package/src/superlocalmemory/mcp/tools_active.py +0 -958
  398. package/src/superlocalmemory/mcp/tools_brain.py +0 -298
  399. package/src/superlocalmemory/mcp/tools_code_graph.py +0 -1717
  400. package/src/superlocalmemory/mcp/tools_context.py +0 -239
  401. package/src/superlocalmemory/mcp/tools_core.py +0 -1112
  402. package/src/superlocalmemory/mcp/tools_evolution.py +0 -343
  403. package/src/superlocalmemory/mcp/tools_learning.py +0 -393
  404. package/src/superlocalmemory/mcp/tools_loops.py +0 -345
  405. package/src/superlocalmemory/mcp/tools_mesh.py +0 -429
  406. package/src/superlocalmemory/mcp/tools_ops.py +0 -115
  407. package/src/superlocalmemory/mcp/tools_optimize.py +0 -322
  408. package/src/superlocalmemory/mcp/tools_summaries.py +0 -147
  409. package/src/superlocalmemory/mcp/tools_v28.py +0 -292
  410. package/src/superlocalmemory/mcp/tools_v3.py +0 -398
  411. package/src/superlocalmemory/mcp/tools_v33.py +0 -507
  412. package/src/superlocalmemory/mesh/__init__.py +0 -12
  413. package/src/superlocalmemory/mesh/broker.py +0 -812
  414. package/src/superlocalmemory/mesh/broker_security.py +0 -470
  415. package/src/superlocalmemory/mesh/discovery.py +0 -365
  416. package/src/superlocalmemory/mesh/lock_protocol.py +0 -313
  417. package/src/superlocalmemory/mesh/node_identity.py +0 -97
  418. package/src/superlocalmemory/mesh/outbox_remote.py +0 -429
  419. package/src/superlocalmemory/mesh/remote_sync.py +0 -829
  420. package/src/superlocalmemory/mesh/state_sync.py +0 -286
  421. package/src/superlocalmemory/migrations/__init__.py +0 -5
  422. package/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -144
  423. package/src/superlocalmemory/optimize/NOTICE +0 -6
  424. package/src/superlocalmemory/optimize/__init__.py +0 -0
  425. package/src/superlocalmemory/optimize/adapters/__init__.py +0 -68
  426. package/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -120
  427. package/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -112
  428. package/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -122
  429. package/src/superlocalmemory/optimize/adapters/wrap.py +0 -228
  430. package/src/superlocalmemory/optimize/cache/__init__.py +0 -31
  431. package/src/superlocalmemory/optimize/cache/boundary_store.py +0 -488
  432. package/src/superlocalmemory/optimize/cache/centroid_store.py +0 -199
  433. package/src/superlocalmemory/optimize/cache/context_key.py +0 -67
  434. package/src/superlocalmemory/optimize/cache/exact.py +0 -88
  435. package/src/superlocalmemory/optimize/cache/invalidation.py +0 -36
  436. package/src/superlocalmemory/optimize/cache/key_builder.py +0 -111
  437. package/src/superlocalmemory/optimize/cache/manager.py +0 -737
  438. package/src/superlocalmemory/optimize/cache/semantic.py +0 -637
  439. package/src/superlocalmemory/optimize/cache/stampede.py +0 -50
  440. package/src/superlocalmemory/optimize/compress/__init__.py +0 -17
  441. package/src/superlocalmemory/optimize/compress/align.py +0 -159
  442. package/src/superlocalmemory/optimize/compress/ccr.py +0 -116
  443. package/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -71
  444. package/src/superlocalmemory/optimize/compress/router.py +0 -667
  445. package/src/superlocalmemory/optimize/config/__init__.py +0 -56
  446. package/src/superlocalmemory/optimize/config/defaults.py +0 -43
  447. package/src/superlocalmemory/optimize/config/schema.py +0 -327
  448. package/src/superlocalmemory/optimize/config/store.py +0 -270
  449. package/src/superlocalmemory/optimize/metrics/__init__.py +0 -8
  450. package/src/superlocalmemory/optimize/metrics/counters.py +0 -155
  451. package/src/superlocalmemory/optimize/metrics/estimator.py +0 -87
  452. package/src/superlocalmemory/optimize/metrics/exporters.py +0 -77
  453. package/src/superlocalmemory/optimize/metrics/persistence.py +0 -115
  454. package/src/superlocalmemory/optimize/proxy/__init__.py +0 -28
  455. package/src/superlocalmemory/optimize/proxy/_helpers.py +0 -730
  456. package/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -375
  457. package/src/superlocalmemory/optimize/proxy/capture.py +0 -550
  458. package/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -528
  459. package/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -126
  460. package/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -465
  461. package/src/superlocalmemory/optimize/proxy/server.py +0 -199
  462. package/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -246
  463. package/src/superlocalmemory/optimize/storage/__init__.py +0 -0
  464. package/src/superlocalmemory/optimize/storage/db.py +0 -1185
  465. package/src/superlocalmemory/optimize/storage/schema.py +0 -205
  466. package/src/superlocalmemory/parameterization/__init__.py +0 -47
  467. package/src/superlocalmemory/parameterization/cross_project.py +0 -12
  468. package/src/superlocalmemory/parameterization/pattern_extractor.py +0 -584
  469. package/src/superlocalmemory/parameterization/pii_filter.py +0 -106
  470. package/src/superlocalmemory/parameterization/prompt_injector.py +0 -219
  471. package/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -281
  472. package/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -542
  473. package/src/superlocalmemory/parameterization/workflow_miner.py +0 -17
  474. package/src/superlocalmemory/reliability/__init__.py +0 -45
  475. package/src/superlocalmemory/reliability/join_liveness.py +0 -301
  476. package/src/superlocalmemory/reliability/prior_distance.py +0 -243
  477. package/src/superlocalmemory/retrieval/__init__.py +0 -0
  478. package/src/superlocalmemory/retrieval/agentic.py +0 -367
  479. package/src/superlocalmemory/retrieval/ann_index.py +0 -235
  480. package/src/superlocalmemory/retrieval/bm25_channel.py +0 -451
  481. package/src/superlocalmemory/retrieval/bridge_discovery.py +0 -253
  482. package/src/superlocalmemory/retrieval/channel_registry.py +0 -154
  483. package/src/superlocalmemory/retrieval/channel_status.py +0 -117
  484. package/src/superlocalmemory/retrieval/engine.py +0 -1615
  485. package/src/superlocalmemory/retrieval/entity_channel.py +0 -994
  486. package/src/superlocalmemory/retrieval/forgetting_filter.py +0 -160
  487. package/src/superlocalmemory/retrieval/fusion.py +0 -81
  488. package/src/superlocalmemory/retrieval/graph_adjacency.py +0 -219
  489. package/src/superlocalmemory/retrieval/hopfield_channel.py +0 -465
  490. package/src/superlocalmemory/retrieval/profile_channel.py +0 -105
  491. package/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -147
  492. package/src/superlocalmemory/retrieval/remote_reranker.py +0 -758
  493. package/src/superlocalmemory/retrieval/reranker.py +0 -674
  494. package/src/superlocalmemory/retrieval/scope_policy.py +0 -126
  495. package/src/superlocalmemory/retrieval/semantic_channel.py +0 -638
  496. package/src/superlocalmemory/retrieval/spreading.py +0 -288
  497. package/src/superlocalmemory/retrieval/spreading_activation.py +0 -616
  498. package/src/superlocalmemory/retrieval/strategy.py +0 -248
  499. package/src/superlocalmemory/retrieval/temporal_channel.py +0 -433
  500. package/src/superlocalmemory/retrieval/temporal_frame.py +0 -102
  501. package/src/superlocalmemory/retrieval/temporal_utils.py +0 -122
  502. package/src/superlocalmemory/retrieval/temporal_validity_filter.py +0 -499
  503. package/src/superlocalmemory/retrieval/time_window.py +0 -181
  504. package/src/superlocalmemory/retrieval/vector_store.py +0 -863
  505. package/src/superlocalmemory/server/__init__.py +0 -1
  506. package/src/superlocalmemory/server/api.py +0 -310
  507. package/src/superlocalmemory/server/asset_versions.py +0 -171
  508. package/src/superlocalmemory/server/bandit_loops.py +0 -158
  509. package/src/superlocalmemory/server/config_file.py +0 -90
  510. package/src/superlocalmemory/server/consolidation_runner.py +0 -140
  511. package/src/superlocalmemory/server/egress_policy.py +0 -258
  512. package/src/superlocalmemory/server/loopback.py +0 -85
  513. package/src/superlocalmemory/server/middleware/__init__.py +0 -11
  514. package/src/superlocalmemory/server/middleware/security_headers.py +0 -144
  515. package/src/superlocalmemory/server/origin.py +0 -55
  516. package/src/superlocalmemory/server/profile_runtime.py +0 -515
  517. package/src/superlocalmemory/server/rbac_enforce.py +0 -194
  518. package/src/superlocalmemory/server/recall_health.py +0 -343
  519. package/src/superlocalmemory/server/recall_serializer.py +0 -320
  520. package/src/superlocalmemory/server/route_mutations.py +0 -104
  521. package/src/superlocalmemory/server/routes/__init__.py +0 -4
  522. package/src/superlocalmemory/server/routes/abstraction.py +0 -314
  523. package/src/superlocalmemory/server/routes/adapters.py +0 -63
  524. package/src/superlocalmemory/server/routes/agents.py +0 -303
  525. package/src/superlocalmemory/server/routes/backup.py +0 -869
  526. package/src/superlocalmemory/server/routes/behavioral.py +0 -659
  527. package/src/superlocalmemory/server/routes/brain.py +0 -1892
  528. package/src/superlocalmemory/server/routes/chat.py +0 -393
  529. package/src/superlocalmemory/server/routes/compliance.py +0 -533
  530. package/src/superlocalmemory/server/routes/config_api.py +0 -703
  531. package/src/superlocalmemory/server/routes/data_io.py +0 -329
  532. package/src/superlocalmemory/server/routes/entity.py +0 -237
  533. package/src/superlocalmemory/server/routes/events.py +0 -214
  534. package/src/superlocalmemory/server/routes/evolution.py +0 -510
  535. package/src/superlocalmemory/server/routes/helpers.py +0 -499
  536. package/src/superlocalmemory/server/routes/ingest.py +0 -137
  537. package/src/superlocalmemory/server/routes/insights.py +0 -366
  538. package/src/superlocalmemory/server/routes/learning.py +0 -834
  539. package/src/superlocalmemory/server/routes/learning_telemetry.py +0 -154
  540. package/src/superlocalmemory/server/routes/lifecycle.py +0 -184
  541. package/src/superlocalmemory/server/routes/memories.py +0 -1661
  542. package/src/superlocalmemory/server/routes/mesh.py +0 -517
  543. package/src/superlocalmemory/server/routes/mesh_lock.py +0 -54
  544. package/src/superlocalmemory/server/routes/mesh_state.py +0 -63
  545. package/src/superlocalmemory/server/routes/optimize.py +0 -197
  546. package/src/superlocalmemory/server/routes/prewarm.py +0 -173
  547. package/src/superlocalmemory/server/routes/profiles.py +0 -292
  548. package/src/superlocalmemory/server/routes/ratelimit.py +0 -132
  549. package/src/superlocalmemory/server/routes/rbac.py +0 -366
  550. package/src/superlocalmemory/server/routes/stats.py +0 -385
  551. package/src/superlocalmemory/server/routes/tiers.py +0 -222
  552. package/src/superlocalmemory/server/routes/timeline.py +0 -258
  553. package/src/superlocalmemory/server/routes/token.py +0 -90
  554. package/src/superlocalmemory/server/routes/v3_api.py +0 -3023
  555. package/src/superlocalmemory/server/routes/ws.py +0 -171
  556. package/src/superlocalmemory/server/security_middleware.py +0 -89
  557. package/src/superlocalmemory/server/ui.py +0 -354
  558. package/src/superlocalmemory/server/unified_daemon.py +0 -6326
  559. package/src/superlocalmemory/server/write_identity.py +0 -195
  560. package/src/superlocalmemory/storage/__init__.py +0 -0
  561. package/src/superlocalmemory/storage/_migration_internals.py +0 -638
  562. package/src/superlocalmemory/storage/_schema_version.py +0 -174
  563. package/src/superlocalmemory/storage/access_log.py +0 -170
  564. package/src/superlocalmemory/storage/admission_codec.py +0 -129
  565. package/src/superlocalmemory/storage/admission_journal.py +0 -843
  566. package/src/superlocalmemory/storage/agent_experience.py +0 -546
  567. package/src/superlocalmemory/storage/backup.py +0 -531
  568. package/src/superlocalmemory/storage/correction_cases.py +0 -670
  569. package/src/superlocalmemory/storage/database.py +0 -3180
  570. package/src/superlocalmemory/storage/deferred_writes.py +0 -209
  571. package/src/superlocalmemory/storage/embedding_codec.py +0 -200
  572. package/src/superlocalmemory/storage/embedding_migrator.py +0 -672
  573. package/src/superlocalmemory/storage/erasure_fence.py +0 -45
  574. package/src/superlocalmemory/storage/execution_learning.py +0 -285
  575. package/src/superlocalmemory/storage/external_evidence.py +0 -359
  576. package/src/superlocalmemory/storage/generation_fence.py +0 -63
  577. package/src/superlocalmemory/storage/lineage_retention.py +0 -236
  578. package/src/superlocalmemory/storage/logical_edges.py +0 -86
  579. package/src/superlocalmemory/storage/memory_write.py +0 -115
  580. package/src/superlocalmemory/storage/migration_runner.py +0 -895
  581. package/src/superlocalmemory/storage/migration_v33.py +0 -140
  582. package/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -67
  583. package/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -107
  584. package/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -38
  585. package/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -46
  586. package/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -75
  587. package/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -75
  588. package/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -63
  589. package/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -94
  590. package/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -80
  591. package/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -87
  592. package/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -72
  593. package/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -55
  594. package/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -45
  595. package/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -58
  596. package/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -120
  597. package/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -79
  598. package/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -120
  599. package/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -54
  600. package/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -52
  601. package/src/superlocalmemory/storage/migrations/M021_ingestion_log_profile.py +0 -108
  602. package/src/superlocalmemory/storage/migrations/M022_entity_aliases_profile.py +0 -86
  603. package/src/superlocalmemory/storage/migrations/M023_mesh_profile_isolation.py +0 -194
  604. package/src/superlocalmemory/storage/migrations/M024_rbac_users_roles.py +0 -87
  605. package/src/superlocalmemory/storage/migrations/M025_perf_indexes.py +0 -90
  606. package/src/superlocalmemory/storage/migrations/M026_rbac_memberships_fk.py +0 -136
  607. package/src/superlocalmemory/storage/migrations/M027_transferable_patterns_profile.py +0 -163
  608. package/src/superlocalmemory/storage/migrations/M028_fact_entity_associations.py +0 -305
  609. package/src/superlocalmemory/storage/migrations/M029_behavioral_history_indexes.py +0 -137
  610. package/src/superlocalmemory/storage/migrations/M030_entity_explorer_indexes.py +0 -93
  611. package/src/superlocalmemory/storage/migrations/M031_dead_letter_operations.py +0 -80
  612. package/src/superlocalmemory/storage/migrations/M032_write_coordinator_admission.py +0 -188
  613. package/src/superlocalmemory/storage/migrations/M033_projection_transactions.py +0 -148
  614. package/src/superlocalmemory/storage/migrations/M034_obligation_integrity.py +0 -58
  615. package/src/superlocalmemory/storage/migrations/M035_erasure_receipts.py +0 -113
  616. package/src/superlocalmemory/storage/migrations/M036_vector_row_map.py +0 -107
  617. package/src/superlocalmemory/storage/migrations/M037_manifest_hmac_version.py +0 -162
  618. package/src/superlocalmemory/storage/migrations/M038_learning_feedback_channel.py +0 -77
  619. package/src/superlocalmemory/storage/migrations/M039_scene_fact_members.py +0 -137
  620. package/src/superlocalmemory/storage/migrations/M040_agent_experience_receipts.py +0 -254
  621. package/src/superlocalmemory/storage/migrations/M041_external_evidence_receipts.py +0 -189
  622. package/src/superlocalmemory/storage/migrations/M042_correction_case_ledger.py +0 -245
  623. package/src/superlocalmemory/storage/migrations/M043_quarantine_display_summaries.py +0 -512
  624. package/src/superlocalmemory/storage/migrations/M044_play_carries_its_own_evidence.py +0 -127
  625. package/src/superlocalmemory/storage/migrations/M045_fact_outcome_score.py +0 -158
  626. package/src/superlocalmemory/storage/migrations/M046_prospective_memory_has_its_own_name.py +0 -620
  627. package/src/superlocalmemory/storage/migrations/M047_fisher_vectors_are_stored_like_every_other_vector.py +0 -306
  628. package/src/superlocalmemory/storage/migrations/M048_upcoming_holds_only_what_is_upcoming.py +0 -229
  629. package/src/superlocalmemory/storage/migrations/M049_a_schema_version_marker_is_one_row.py +0 -201
  630. package/src/superlocalmemory/storage/migrations/M050_execution_learning_v2.py +0 -70
  631. package/src/superlocalmemory/storage/migrations/__init__.py +0 -103
  632. package/src/superlocalmemory/storage/migrations.py +0 -333
  633. package/src/superlocalmemory/storage/models.py +0 -500
  634. package/src/superlocalmemory/storage/projection_outbox.py +0 -346
  635. package/src/superlocalmemory/storage/quantized_store.py +0 -280
  636. package/src/superlocalmemory/storage/read_connection.py +0 -115
  637. package/src/superlocalmemory/storage/retention_policy.py +0 -860
  638. package/src/superlocalmemory/storage/schema.py +0 -1108
  639. package/src/superlocalmemory/storage/schema_code_graph.py +0 -282
  640. package/src/superlocalmemory/storage/schema_v32.py +0 -382
  641. package/src/superlocalmemory/storage/schema_v3410.py +0 -159
  642. package/src/superlocalmemory/storage/schema_v3411.py +0 -149
  643. package/src/superlocalmemory/storage/schema_v343.py +0 -315
  644. package/src/superlocalmemory/storage/schema_v345.py +0 -109
  645. package/src/superlocalmemory/storage/schema_v347.py +0 -140
  646. package/src/superlocalmemory/storage/sqlite_vectors.py +0 -169
  647. package/src/superlocalmemory/storage/v2_migrator.py +0 -466
  648. package/src/superlocalmemory/storage/write_coordinator.py +0 -949
  649. package/src/superlocalmemory/storage/write_lock.py +0 -88
  650. package/src/superlocalmemory/summaries/__init__.py +0 -37
  651. package/src/superlocalmemory/summaries/base.py +0 -267
  652. package/src/superlocalmemory/summaries/daily_reflection.py +0 -340
  653. package/src/superlocalmemory/summaries/non_answer.py +0 -223
  654. package/src/superlocalmemory/summaries/project_work_log.py +0 -440
  655. package/src/superlocalmemory/summaries/session_summary.py +0 -311
  656. package/src/superlocalmemory/trust/__init__.py +0 -0
  657. package/src/superlocalmemory/trust/gate.py +0 -171
  658. package/src/superlocalmemory/trust/provenance.py +0 -124
  659. package/src/superlocalmemory/trust/scorer.py +0 -413
  660. package/src/superlocalmemory/trust/signals.py +0 -153
  661. package/src/superlocalmemory/ui/assets/slm-icon-white.svg +0 -64
  662. package/src/superlocalmemory/ui/assets/slm-icon.svg +0 -36
  663. package/src/superlocalmemory/ui/css/brain.css +0 -409
  664. package/src/superlocalmemory/ui/css/design-system.css +0 -696
  665. package/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -663
  666. package/src/superlocalmemory/ui/css/neural-glass.css +0 -1599
  667. package/src/superlocalmemory/ui/css/od-bridge.css +0 -158
  668. package/src/superlocalmemory/ui/favicon.svg +0 -36
  669. package/src/superlocalmemory/ui/index.html +0 -1638
  670. package/src/superlocalmemory/ui/js/agents.js +0 -192
  671. package/src/superlocalmemory/ui/js/auto-settings.js +0 -624
  672. package/src/superlocalmemory/ui/js/brain.js +0 -1400
  673. package/src/superlocalmemory/ui/js/clusters.js +0 -326
  674. package/src/superlocalmemory/ui/js/compliance.js +0 -307
  675. package/src/superlocalmemory/ui/js/core.js +0 -566
  676. package/src/superlocalmemory/ui/js/dashboard.js +0 -503
  677. package/src/superlocalmemory/ui/js/event-delegation.js +0 -113
  678. package/src/superlocalmemory/ui/js/events.js +0 -178
  679. package/src/superlocalmemory/ui/js/fact-detail.js +0 -142
  680. package/src/superlocalmemory/ui/js/feedback.js +0 -339
  681. package/src/superlocalmemory/ui/js/graph-event-bus.js +0 -83
  682. package/src/superlocalmemory/ui/js/graph-filters.js +0 -220
  683. package/src/superlocalmemory/ui/js/graph-ui.js +0 -214
  684. package/src/superlocalmemory/ui/js/ide-status.js +0 -115
  685. package/src/superlocalmemory/ui/js/init.js +0 -54
  686. package/src/superlocalmemory/ui/js/knowledge-graph.js +0 -945
  687. package/src/superlocalmemory/ui/js/lifecycle.js +0 -387
  688. package/src/superlocalmemory/ui/js/math-health.js +0 -114
  689. package/src/superlocalmemory/ui/js/memories.js +0 -394
  690. package/src/superlocalmemory/ui/js/memory-chat.js +0 -371
  691. package/src/superlocalmemory/ui/js/memory-timeline.js +0 -265
  692. package/src/superlocalmemory/ui/js/modal.js +0 -733
  693. package/src/superlocalmemory/ui/js/ng-entities.js +0 -298
  694. package/src/superlocalmemory/ui/js/ng-health.js +0 -208
  695. package/src/superlocalmemory/ui/js/ng-ingestion.js +0 -203
  696. package/src/superlocalmemory/ui/js/ng-mesh.js +0 -374
  697. package/src/superlocalmemory/ui/js/ng-shell.js +0 -524
  698. package/src/superlocalmemory/ui/js/ng-skills.js +0 -663
  699. package/src/superlocalmemory/ui/js/od-agents.js +0 -588
  700. package/src/superlocalmemory/ui/js/od-auth-gate.js +0 -257
  701. package/src/superlocalmemory/ui/js/od-backup.js +0 -878
  702. package/src/superlocalmemory/ui/js/od-boundedloops.js +0 -324
  703. package/src/superlocalmemory/ui/js/od-brain.js +0 -1095
  704. package/src/superlocalmemory/ui/js/od-compliance-ext.js +0 -301
  705. package/src/superlocalmemory/ui/js/od-components.js +0 -147
  706. package/src/superlocalmemory/ui/js/od-entities.js +0 -622
  707. package/src/superlocalmemory/ui/js/od-graph.js +0 -776
  708. package/src/superlocalmemory/ui/js/od-health.js +0 -579
  709. package/src/superlocalmemory/ui/js/od-mcp.js +0 -508
  710. package/src/superlocalmemory/ui/js/od-memories.js +0 -1499
  711. package/src/superlocalmemory/ui/js/od-mesh.js +0 -645
  712. package/src/superlocalmemory/ui/js/od-operations.js +0 -1268
  713. package/src/superlocalmemory/ui/js/od-ops-health.js +0 -417
  714. package/src/superlocalmemory/ui/js/od-optimize.js +0 -828
  715. package/src/superlocalmemory/ui/js/od-settings.js +0 -1275
  716. package/src/superlocalmemory/ui/js/od-shell.js +0 -819
  717. package/src/superlocalmemory/ui/js/od-skills.js +0 -600
  718. package/src/superlocalmemory/ui/js/od-team.js +0 -265
  719. package/src/superlocalmemory/ui/js/optimize.js +0 -191
  720. package/src/superlocalmemory/ui/js/profiles.js +0 -362
  721. package/src/superlocalmemory/ui/js/quick-actions.js +0 -334
  722. package/src/superlocalmemory/ui/js/recall-lab.js +0 -373
  723. package/src/superlocalmemory/ui/js/search.js +0 -86
  724. package/src/superlocalmemory/ui/js/settings.js +0 -556
  725. package/src/superlocalmemory/ui/js/timeline.js +0 -62
  726. package/src/superlocalmemory/ui/js/trust-dashboard.js +0 -225
  727. package/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -2018
  728. package/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  729. package/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  730. package/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -7
  731. package/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -6
  732. package/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -2
  733. package/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -2
  734. package/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -2
  735. package/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -8
  736. package/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
  737. package/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
  738. package/src/superlocalmemory/ui/vendor/sigma.min.js +0 -1
  739. package/src/superlocalmemory/vector/__init__.py +0 -9
  740. package/src/superlocalmemory/vector/lancedb_backend.py +0 -366
@@ -1,1599 +0,0 @@
1
- /* ============================================
2
- Neural Glass Design System v1.0
3
- SuperLocalMemory Dashboard V2 "Neural Glass"
4
- Linear darkness + Raycast glass + Claude warmth
5
- Brand accent: Qualixar Cyan #00D4AA
6
- ============================================ */
7
-
8
- /* ============================================
9
- 1. CUSTOM PROPERTIES (Design Tokens)
10
- ============================================ */
11
-
12
- :root {
13
- /* --- Background Surfaces (Linear luminance stacking) --- */
14
- --ng-bg-void: #0a0a0c;
15
- --ng-bg-base: #0f1012;
16
- --ng-bg-surface: #161719;
17
- --ng-bg-elevated: #1c1d20;
18
- --ng-bg-hover: #222326;
19
-
20
- /* --- Glass Surfaces (Raycast macOS glass) --- */
21
- --ng-bg-glass: rgba(255, 255, 255, 0.03);
22
- --ng-bg-glass-hover: rgba(255, 255, 255, 0.06);
23
- --ng-bg-glass-active: rgba(255, 255, 255, 0.08);
24
- --ng-bg-glass-strong: rgba(255, 255, 255, 0.10);
25
-
26
- /* --- Text (Claude warm neutrals — no cold blue-grays) --- */
27
- --ng-text-primary: #f0eeeb;
28
- --ng-text-secondary: #b8b5af;
29
- --ng-text-tertiary: #7d7a74;
30
- --ng-text-quaternary: #545250;
31
- --ng-text-on-accent: #ffffff;
32
-
33
- /* --- SLM Purple Accent (original #667eea → #764ba2 gradient) --- */
34
- --ng-accent: #7C6AEF;
35
- --ng-accent-hover: #9182F3;
36
- --ng-accent-muted: rgba(124, 106, 239, 0.10);
37
- --ng-accent-glow: rgba(124, 106, 239, 0.18);
38
- --ng-accent-strong: rgba(124, 106, 239, 0.28);
39
- --ng-accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
40
-
41
- /* --- Status Colors --- */
42
- --ng-status-success: #10b981;
43
- --ng-status-success-bg: rgba(16, 185, 129, 0.10);
44
- --ng-status-warning: #f59e0b;
45
- --ng-status-warning-bg: rgba(245, 158, 11, 0.10);
46
- --ng-status-error: #ef4444;
47
- --ng-status-error-bg: rgba(239, 68, 68, 0.10);
48
- --ng-status-info: #3b82f6;
49
- --ng-status-info-bg: rgba(59, 130, 246, 0.10);
50
-
51
- /* --- Borders (Linear semi-transparent white) --- */
52
- --ng-border-subtle: rgba(255, 255, 255, 0.06);
53
- --ng-border-default: rgba(255, 255, 255, 0.10);
54
- --ng-border-prominent: rgba(255, 255, 255, 0.15);
55
- --ng-border-accent: rgba(0, 212, 170, 0.30);
56
-
57
- /* --- Shadows (Raycast macOS glass depth) --- */
58
- --ng-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.3);
59
- --ng-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
60
- --ng-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.3);
61
- --ng-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.4);
62
- --ng-shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.5);
63
-
64
- /* Glass panel shadow (Raycast inset + outer) */
65
- --ng-shadow-glass:
66
- inset 0 1px 0 0 rgba(255, 255, 255, 0.06),
67
- 0 1px 3px rgba(0, 0, 0, 0.3),
68
- 0 4px 12px rgba(0, 0, 0, 0.2);
69
-
70
- /* Elevated glass shadow */
71
- --ng-shadow-glass-elevated:
72
- inset 0 1px 0 0 rgba(255, 255, 255, 0.08),
73
- 0 4px 16px rgba(0, 0, 0, 0.3),
74
- 0 12px 40px rgba(0, 0, 0, 0.25);
75
-
76
- /* Accent glow */
77
- --ng-shadow-glow: 0 0 20px var(--ng-accent-glow), 0 0 40px rgba(124, 106, 239, 0.06);
78
-
79
- /* --- Typography (Linear: Inter Variable + cv01/ss03) --- */
80
- --ng-font-sans: 'Inter Variable', 'Inter', -apple-system, system-ui, 'Segoe UI', sans-serif;
81
- --ng-font-mono: 'GeistMono', 'Berkeley Mono', ui-monospace, 'SF Mono', 'Menlo', monospace;
82
- --ng-font-feature: "cv01", "ss03";
83
-
84
- /* Weight scale (Linear: 400=read, 510=emphasis, 590=strong) */
85
- --ng-weight-normal: 400;
86
- --ng-weight-medium: 510;
87
- --ng-weight-semibold: 590;
88
-
89
- /* --- Spacing (8px grid) --- */
90
- --ng-space-1: 4px;
91
- --ng-space-2: 8px;
92
- --ng-space-3: 12px;
93
- --ng-space-4: 16px;
94
- --ng-space-5: 20px;
95
- --ng-space-6: 24px;
96
- --ng-space-8: 32px;
97
- --ng-space-10: 40px;
98
- --ng-space-12: 48px;
99
-
100
- /* --- Border Radius --- */
101
- --ng-radius-sm: 4px;
102
- --ng-radius-md: 8px;
103
- --ng-radius-lg: 12px;
104
- --ng-radius-xl: 16px;
105
- --ng-radius-2xl: 20px;
106
- --ng-radius-pill: 9999px;
107
-
108
- /* --- Sidebar --- */
109
- --ng-sidebar-width: 240px;
110
- --ng-sidebar-collapsed: 56px;
111
-
112
- /* --- Transitions --- */
113
- --ng-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
114
- --ng-transition-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1);
115
- --ng-transition-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);
116
- --ng-transition-spring: 500ms cubic-bezier(0.34, 1.56, 0.64, 1);
117
-
118
- /* --- Z-Index Scale --- */
119
- --ng-z-sidebar: 100;
120
- --ng-z-header: 90;
121
- --ng-z-overlay: 200;
122
- --ng-z-modal: 300;
123
- --ng-z-tooltip: 400;
124
- }
125
-
126
-
127
- /* ============================================
128
- 2. RESET & BASE
129
- ============================================ */
130
-
131
- .ng-dark {
132
- background: var(--ng-bg-void);
133
- color: var(--ng-text-primary);
134
- font-family: var(--ng-font-sans);
135
- font-feature-settings: var(--ng-font-feature);
136
- font-weight: var(--ng-weight-normal);
137
- -webkit-font-smoothing: antialiased;
138
- -moz-osx-font-smoothing: grayscale;
139
- text-rendering: optimizeLegibility;
140
- line-height: 1.5;
141
- }
142
-
143
- .ng-dark *,
144
- .ng-dark *::before,
145
- .ng-dark *::after {
146
- border-color: var(--ng-border-subtle);
147
- }
148
-
149
- .ng-dark ::selection {
150
- background: var(--ng-accent-strong);
151
- color: var(--ng-text-primary);
152
- }
153
-
154
- .ng-dark ::-webkit-scrollbar {
155
- width: 6px;
156
- height: 6px;
157
- }
158
-
159
- .ng-dark ::-webkit-scrollbar-track {
160
- background: transparent;
161
- }
162
-
163
- .ng-dark ::-webkit-scrollbar-thumb {
164
- background: rgba(255, 255, 255, 0.12);
165
- border-radius: var(--ng-radius-pill);
166
- }
167
-
168
- .ng-dark ::-webkit-scrollbar-thumb:hover {
169
- background: rgba(255, 255, 255, 0.20);
170
- }
171
-
172
-
173
- /* ============================================
174
- 3. TYPOGRAPHY
175
- ============================================ */
176
-
177
- .ng-dark h1, .ng-dark h2, .ng-dark h3,
178
- .ng-dark h4, .ng-dark h5, .ng-dark h6 {
179
- color: var(--ng-text-primary);
180
- font-weight: var(--ng-weight-medium);
181
- letter-spacing: -0.02em;
182
- line-height: 1.2;
183
- }
184
-
185
- .ng-dark h1 { font-size: 2rem; letter-spacing: -0.04em; }
186
- .ng-dark h2 { font-size: 1.5rem; letter-spacing: -0.03em; }
187
- .ng-dark h3 { font-size: 1.25rem; }
188
- .ng-dark h4 { font-size: 1.125rem; }
189
- .ng-dark h5 { font-size: 1rem; }
190
- .ng-dark h6 { font-size: 0.875rem; font-weight: var(--ng-weight-semibold); text-transform: uppercase; letter-spacing: 0.04em; }
191
-
192
- .ng-dark p { color: var(--ng-text-secondary); }
193
- .ng-dark small, .ng-dark .text-muted { color: var(--ng-text-tertiary) !important; }
194
- .ng-dark code, .ng-dark pre { font-family: var(--ng-font-mono); }
195
-
196
- .ng-dark code {
197
- background: var(--ng-bg-glass-active);
198
- padding: 2px 6px;
199
- border-radius: var(--ng-radius-sm);
200
- font-size: 0.875em;
201
- color: var(--ng-accent);
202
- }
203
-
204
- .ng-dark a {
205
- color: var(--ng-accent);
206
- text-decoration: none;
207
- transition: color var(--ng-transition-fast);
208
- }
209
-
210
- .ng-dark a:hover {
211
- color: var(--ng-accent-hover);
212
- }
213
-
214
- /* Stat value — Linear-style glow */
215
- .ng-stat-value {
216
- font-size: 2rem;
217
- font-weight: var(--ng-weight-semibold);
218
- letter-spacing: -0.04em;
219
- color: var(--ng-text-primary);
220
- line-height: 1;
221
- }
222
-
223
- .ng-stat-label {
224
- font-size: 0.75rem;
225
- font-weight: var(--ng-weight-medium);
226
- color: var(--ng-text-tertiary);
227
- text-transform: uppercase;
228
- letter-spacing: 0.06em;
229
- }
230
-
231
-
232
- /* ============================================
233
- 4. GLASS EFFECTS
234
- ============================================ */
235
-
236
- .ng-glass {
237
- background: var(--ng-bg-glass);
238
- border: 1px solid var(--ng-border-subtle);
239
- border-radius: var(--ng-radius-lg);
240
- box-shadow: var(--ng-shadow-glass);
241
- backdrop-filter: blur(12px);
242
- -webkit-backdrop-filter: blur(12px);
243
- }
244
-
245
- /* B2 (v3.7.9): CSP-safe hover border — replaces inline onmouseover/onmouseout
246
- on entity cards (which forced script-src 'unsafe-inline'). */
247
- .ng-hover-border:hover {
248
- border-color: var(--ng-border-prominent);
249
- }
250
-
251
- .ng-glass-elevated {
252
- background: var(--ng-bg-glass-hover);
253
- border: 1px solid var(--ng-border-default);
254
- border-radius: var(--ng-radius-lg);
255
- box-shadow: var(--ng-shadow-glass-elevated);
256
- backdrop-filter: blur(16px);
257
- -webkit-backdrop-filter: blur(16px);
258
- }
259
-
260
- .ng-glass-surface {
261
- background: var(--ng-bg-surface);
262
- border: 1px solid var(--ng-border-subtle);
263
- border-radius: var(--ng-radius-lg);
264
- box-shadow: var(--ng-shadow-sm);
265
- }
266
-
267
- .ng-glass-accent {
268
- background: var(--ng-accent-muted);
269
- border: 1px solid var(--ng-border-accent);
270
- border-radius: var(--ng-radius-lg);
271
- box-shadow: var(--ng-shadow-glow);
272
- }
273
-
274
- /* Inset glass (Raycast sunken panels) */
275
- .ng-glass-inset {
276
- background: rgba(0, 0, 0, 0.2);
277
- border: 1px solid rgba(255, 255, 255, 0.04);
278
- border-radius: var(--ng-radius-md);
279
- box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
280
- }
281
-
282
-
283
- /* ============================================
284
- 5. LAYOUT: APP SHELL + SIDEBAR
285
- ============================================ */
286
-
287
- .ng-shell {
288
- display: flex;
289
- min-height: 100vh;
290
- overflow: hidden;
291
- }
292
-
293
- /* Sidebar */
294
- .ng-sidebar {
295
- width: var(--ng-sidebar-width);
296
- min-width: var(--ng-sidebar-width);
297
- height: 100vh;
298
- position: fixed;
299
- top: 0;
300
- left: 0;
301
- z-index: var(--ng-z-sidebar);
302
- display: flex;
303
- flex-direction: column;
304
- background: var(--ng-bg-base);
305
- border-right: 1px solid var(--ng-border-subtle);
306
- overflow-y: auto;
307
- overflow-x: hidden;
308
- transition: width var(--ng-transition-normal), min-width var(--ng-transition-normal);
309
- }
310
-
311
- .ng-sidebar-header {
312
- padding: var(--ng-space-4) var(--ng-space-4) var(--ng-space-3);
313
- border-bottom: 1px solid var(--ng-border-subtle);
314
- flex-shrink: 0;
315
- }
316
-
317
- .ng-sidebar-brand {
318
- display: flex;
319
- align-items: center;
320
- gap: var(--ng-space-3);
321
- text-decoration: none;
322
- }
323
-
324
- .ng-sidebar-brand-icon {
325
- width: 32px;
326
- height: 32px;
327
- border-radius: var(--ng-radius-md);
328
- background: var(--ng-accent-gradient);
329
- display: flex;
330
- align-items: center;
331
- justify-content: center;
332
- font-size: 1rem;
333
- color: var(--ng-text-on-accent);
334
- flex-shrink: 0;
335
- box-shadow: var(--ng-shadow-glow);
336
- }
337
-
338
- .ng-sidebar-brand-text {
339
- font-size: 0.9375rem;
340
- font-weight: var(--ng-weight-semibold);
341
- color: var(--ng-text-primary);
342
- letter-spacing: -0.02em;
343
- line-height: 1.2;
344
- }
345
-
346
- .ng-sidebar-brand-version {
347
- font-size: 0.6875rem;
348
- color: var(--ng-text-quaternary);
349
- font-weight: var(--ng-weight-normal);
350
- }
351
-
352
- /* Sidebar nav sections */
353
- .ng-sidebar-nav {
354
- flex: 1;
355
- padding: var(--ng-space-2) var(--ng-space-2);
356
- overflow-y: auto;
357
- }
358
-
359
- .ng-sidebar-section {
360
- margin-bottom: var(--ng-space-2);
361
- }
362
-
363
- .ng-sidebar-section-label {
364
- font-size: 0.6875rem;
365
- font-weight: var(--ng-weight-semibold);
366
- color: var(--ng-text-quaternary);
367
- text-transform: uppercase;
368
- letter-spacing: 0.08em;
369
- padding: var(--ng-space-3) var(--ng-space-3) var(--ng-space-1);
370
- }
371
-
372
- .ng-sidebar-item {
373
- display: flex;
374
- align-items: center;
375
- gap: var(--ng-space-3);
376
- padding: 7px var(--ng-space-3);
377
- border-radius: var(--ng-radius-md);
378
- color: var(--ng-text-secondary);
379
- font-size: 0.8125rem;
380
- font-weight: var(--ng-weight-medium);
381
- cursor: pointer;
382
- transition:
383
- background var(--ng-transition-fast),
384
- color var(--ng-transition-fast);
385
- text-decoration: none;
386
- border: 1px solid transparent;
387
- user-select: none;
388
- }
389
-
390
- .ng-sidebar-item:hover {
391
- background: var(--ng-bg-glass-hover);
392
- color: var(--ng-text-primary);
393
- }
394
-
395
- .ng-sidebar-item.active {
396
- background: var(--ng-accent-muted);
397
- color: var(--ng-accent);
398
- border-color: var(--ng-border-accent);
399
- box-shadow: var(--ng-shadow-glow);
400
- }
401
-
402
- .ng-sidebar-item.active .ng-sidebar-icon {
403
- color: var(--ng-accent);
404
- }
405
-
406
- .ng-sidebar-icon {
407
- font-size: 1rem;
408
- width: 20px;
409
- text-align: center;
410
- flex-shrink: 0;
411
- color: var(--ng-text-tertiary);
412
- transition: color var(--ng-transition-fast);
413
- }
414
-
415
- .ng-sidebar-item:hover .ng-sidebar-icon {
416
- color: var(--ng-text-secondary);
417
- }
418
-
419
- .ng-sidebar-badge {
420
- margin-left: auto;
421
- font-size: 0.625rem;
422
- font-weight: var(--ng-weight-semibold);
423
- padding: 1px 6px;
424
- border-radius: var(--ng-radius-pill);
425
- background: var(--ng-accent-muted);
426
- color: var(--ng-accent);
427
- }
428
-
429
- /* Sidebar footer */
430
- .ng-sidebar-footer {
431
- padding: var(--ng-space-3) var(--ng-space-4);
432
- border-top: 1px solid var(--ng-border-subtle);
433
- flex-shrink: 0;
434
- }
435
-
436
- /* Main content area */
437
- .ng-content {
438
- flex: 1;
439
- margin-left: var(--ng-sidebar-width);
440
- min-height: 100vh;
441
- background: var(--ng-bg-void);
442
- overflow-x: hidden;
443
- }
444
-
445
- .ng-content-inner {
446
- max-width: 1400px;
447
- margin: 0 auto;
448
- padding: var(--ng-space-6);
449
- }
450
-
451
- /* Content header */
452
- .ng-content-header {
453
- display: flex;
454
- align-items: center;
455
- justify-content: space-between;
456
- margin-bottom: var(--ng-space-6);
457
- padding-bottom: var(--ng-space-4);
458
- border-bottom: 1px solid var(--ng-border-subtle);
459
- }
460
-
461
- .ng-content-title {
462
- font-size: 1.375rem;
463
- font-weight: var(--ng-weight-medium);
464
- letter-spacing: -0.03em;
465
- color: var(--ng-text-primary);
466
- }
467
-
468
- .ng-content-subtitle {
469
- font-size: 0.8125rem;
470
- color: var(--ng-text-tertiary);
471
- margin-top: 2px;
472
- }
473
-
474
-
475
- /* ============================================
476
- 6. CARDS & PANELS
477
- ============================================ */
478
-
479
- .ng-dark .card,
480
- .ng-card {
481
- background: var(--ng-bg-glass);
482
- border: 1px solid var(--ng-border-subtle);
483
- border-radius: var(--ng-radius-lg);
484
- box-shadow: var(--ng-shadow-glass);
485
- color: var(--ng-text-primary);
486
- transition: border-color var(--ng-transition-fast), box-shadow var(--ng-transition-fast);
487
- }
488
-
489
- .ng-dark .card:hover,
490
- .ng-card:hover {
491
- border-color: var(--ng-border-default);
492
- }
493
-
494
- .ng-dark .card-header {
495
- background: var(--ng-bg-glass-hover) !important;
496
- border-bottom: 1px solid var(--ng-border-subtle);
497
- color: var(--ng-text-primary) !important;
498
- }
499
-
500
- .ng-dark .card-body {
501
- color: var(--ng-text-primary);
502
- }
503
-
504
- /* Stat cards */
505
- .ng-dark .stat-card {
506
- background: var(--ng-bg-glass);
507
- border: 1px solid var(--ng-border-subtle);
508
- box-shadow: var(--ng-shadow-glass);
509
- }
510
-
511
- .ng-dark .stat-card:hover {
512
- border-color: var(--ng-border-default);
513
- box-shadow: var(--ng-shadow-glass-elevated);
514
- transform: translateY(-2px);
515
- }
516
-
517
- .ng-dark .stat-card .stat-bg {
518
- display: none; /* Remove old gradient backgrounds */
519
- }
520
-
521
- .ng-dark .stat-card .stat-icon {
522
- color: var(--ng-accent) !important;
523
- opacity: 0.7;
524
- }
525
-
526
- .ng-dark .stat-card .stat-value {
527
- color: var(--ng-text-primary);
528
- font-weight: var(--ng-weight-semibold);
529
- letter-spacing: -0.03em;
530
- }
531
-
532
-
533
- /* ============================================
534
- 7. BUTTONS
535
- ============================================ */
536
-
537
- /* Ghost button (Linear default) */
538
- .ng-btn {
539
- display: inline-flex;
540
- align-items: center;
541
- gap: var(--ng-space-2);
542
- padding: 6px 12px;
543
- border-radius: var(--ng-radius-md);
544
- font-size: 0.8125rem;
545
- font-weight: var(--ng-weight-medium);
546
- font-family: inherit;
547
- font-feature-settings: var(--ng-font-feature);
548
- cursor: pointer;
549
- transition:
550
- background var(--ng-transition-fast),
551
- border-color var(--ng-transition-fast),
552
- opacity var(--ng-transition-fast);
553
- border: 1px solid var(--ng-border-default);
554
- background: var(--ng-bg-glass);
555
- color: var(--ng-text-secondary);
556
- }
557
-
558
- .ng-btn:hover {
559
- background: var(--ng-bg-glass-hover);
560
- color: var(--ng-text-primary);
561
- border-color: var(--ng-border-prominent);
562
- }
563
-
564
- /* Primary accent button */
565
- .ng-btn-accent {
566
- background: var(--ng-accent);
567
- color: var(--ng-text-on-accent);
568
- border-color: transparent;
569
- font-weight: var(--ng-weight-semibold);
570
- }
571
-
572
- .ng-btn-accent:hover {
573
- background: var(--ng-accent-hover);
574
- color: var(--ng-text-on-accent);
575
- border-color: transparent;
576
- box-shadow: var(--ng-shadow-glow);
577
- }
578
-
579
- /* Bootstrap button overrides */
580
- .ng-dark .btn-primary {
581
- background: var(--ng-accent) !important;
582
- border-color: var(--ng-accent) !important;
583
- color: var(--ng-text-on-accent) !important;
584
- }
585
-
586
- .ng-dark .btn-primary:hover {
587
- background: var(--ng-accent-hover) !important;
588
- border-color: var(--ng-accent-hover) !important;
589
- box-shadow: var(--ng-shadow-glow);
590
- }
591
-
592
- .ng-dark .btn-outline-primary {
593
- color: var(--ng-accent) !important;
594
- border-color: var(--ng-accent) !important;
595
- }
596
-
597
- .ng-dark .btn-outline-primary:hover {
598
- background: var(--ng-accent-muted) !important;
599
- color: var(--ng-accent) !important;
600
- border-color: var(--ng-accent) !important;
601
- }
602
-
603
- .ng-dark .btn-success { background: var(--ng-status-success) !important; border-color: var(--ng-status-success) !important; }
604
- .ng-dark .btn-outline-success { color: var(--ng-status-success) !important; border-color: var(--ng-status-success) !important; }
605
- .ng-dark .btn-outline-secondary {
606
- color: var(--ng-text-secondary) !important;
607
- border-color: var(--ng-border-default) !important;
608
- background: var(--ng-bg-glass) !important;
609
- }
610
- .ng-dark .btn-outline-secondary:hover {
611
- background: var(--ng-bg-glass-hover) !important;
612
- color: var(--ng-text-primary) !important;
613
- }
614
- .ng-dark .btn-outline-light {
615
- color: var(--ng-text-secondary) !important;
616
- border-color: var(--ng-border-default) !important;
617
- }
618
- .ng-dark .btn-outline-light:hover {
619
- background: var(--ng-bg-glass-hover) !important;
620
- color: var(--ng-text-primary) !important;
621
- }
622
- .ng-dark .btn-outline-danger {
623
- color: var(--ng-status-error) !important;
624
- border-color: var(--ng-status-error) !important;
625
- }
626
- .ng-dark .btn-outline-info {
627
- color: var(--ng-status-info) !important;
628
- border-color: var(--ng-status-info) !important;
629
- }
630
-
631
-
632
- /* ============================================
633
- 8. INPUTS & FORMS
634
- ============================================ */
635
-
636
- .ng-dark .form-control,
637
- .ng-dark .form-select {
638
- background: var(--ng-bg-glass) !important;
639
- border: 1px solid var(--ng-border-default) !important;
640
- color: var(--ng-text-primary) !important;
641
- border-radius: var(--ng-radius-md);
642
- font-feature-settings: var(--ng-font-feature);
643
- transition: border-color var(--ng-transition-fast), box-shadow var(--ng-transition-fast);
644
- }
645
-
646
- .ng-dark .form-control:focus,
647
- .ng-dark .form-select:focus {
648
- border-color: var(--ng-accent) !important;
649
- box-shadow: 0 0 0 2px var(--ng-accent-glow) !important;
650
- outline: none;
651
- }
652
-
653
- .ng-dark .form-control::placeholder {
654
- color: var(--ng-text-quaternary) !important;
655
- }
656
-
657
- .ng-dark .input-group-text {
658
- background: var(--ng-bg-glass-hover) !important;
659
- border: 1px solid var(--ng-border-default) !important;
660
- color: var(--ng-text-tertiary) !important;
661
- }
662
-
663
- .ng-dark .form-check-input {
664
- background-color: var(--ng-bg-glass-strong) !important;
665
- border-color: var(--ng-border-default) !important;
666
- }
667
-
668
- .ng-dark .form-check-input:checked {
669
- background-color: var(--ng-accent) !important;
670
- border-color: var(--ng-accent) !important;
671
- }
672
-
673
- .ng-dark .form-label {
674
- color: var(--ng-text-secondary);
675
- font-weight: var(--ng-weight-medium);
676
- font-size: 0.8125rem;
677
- }
678
-
679
- .ng-dark .form-range::-webkit-slider-thumb {
680
- background: var(--ng-accent);
681
- }
682
-
683
-
684
- /* ============================================
685
- 9. TABLES
686
- ============================================ */
687
-
688
- .ng-dark .table {
689
- color: var(--ng-text-primary);
690
- --bs-table-bg: transparent;
691
- --bs-table-hover-bg: var(--ng-bg-glass-hover);
692
- --bs-table-striped-bg: var(--ng-bg-glass);
693
- border-color: var(--ng-border-subtle);
694
- }
695
-
696
- .ng-dark .table thead th {
697
- color: var(--ng-text-tertiary);
698
- font-weight: var(--ng-weight-semibold);
699
- font-size: 0.75rem;
700
- text-transform: uppercase;
701
- letter-spacing: 0.06em;
702
- border-bottom: 1px solid var(--ng-border-default);
703
- padding: var(--ng-space-3) var(--ng-space-3);
704
- }
705
-
706
- .ng-dark .table tbody td {
707
- border-bottom: 1px solid var(--ng-border-subtle);
708
- padding: var(--ng-space-3) var(--ng-space-3);
709
- font-size: 0.8125rem;
710
- }
711
-
712
- .ng-dark .table tbody tr:hover {
713
- background: var(--ng-bg-glass-hover) !important;
714
- }
715
-
716
- .ng-dark .table-responsive {
717
- border-radius: var(--ng-radius-lg);
718
- border: 1px solid var(--ng-border-subtle);
719
- }
720
-
721
- /* Sortable headers */
722
- .ng-dark .sortable:hover {
723
- background: var(--ng-bg-glass-hover);
724
- }
725
-
726
-
727
- /* ============================================
728
- 10. STATUS & BADGES
729
- ============================================ */
730
-
731
- .ng-badge {
732
- display: inline-flex;
733
- align-items: center;
734
- gap: 4px;
735
- padding: 2px 8px;
736
- border-radius: var(--ng-radius-pill);
737
- font-size: 0.6875rem;
738
- font-weight: var(--ng-weight-semibold);
739
- letter-spacing: 0.02em;
740
- }
741
-
742
- .ng-badge-success { background: var(--ng-status-success-bg); color: var(--ng-status-success); }
743
- .ng-badge-warning { background: var(--ng-status-warning-bg); color: var(--ng-status-warning); }
744
- .ng-badge-error { background: var(--ng-status-error-bg); color: var(--ng-status-error); }
745
- .ng-badge-info { background: var(--ng-status-info-bg); color: var(--ng-status-info); }
746
- .ng-badge-accent { background: var(--ng-accent-muted); color: var(--ng-accent); }
747
- .ng-badge-neutral { background: var(--ng-bg-glass-active); color: var(--ng-text-secondary); }
748
-
749
- /* Status dot */
750
- .ng-status-dot {
751
- width: 8px;
752
- height: 8px;
753
- border-radius: 50%;
754
- flex-shrink: 0;
755
- }
756
-
757
- .ng-status-dot-success { background: var(--ng-status-success); box-shadow: 0 0 6px var(--ng-status-success); }
758
- .ng-status-dot-warning { background: var(--ng-status-warning); box-shadow: 0 0 6px var(--ng-status-warning); }
759
- .ng-status-dot-error { background: var(--ng-status-error); box-shadow: 0 0 6px var(--ng-status-error); }
760
- .ng-status-dot-info { background: var(--ng-status-info); box-shadow: 0 0 6px var(--ng-status-info); }
761
-
762
- /* Pulse animation for status */
763
- .ng-pulse {
764
- animation: ng-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
765
- }
766
-
767
- /* Bootstrap badge overrides */
768
- .ng-dark .badge.bg-primary { background: var(--ng-accent-muted) !important; color: var(--ng-accent) !important; }
769
- .ng-dark .badge.bg-success { background: var(--ng-status-success-bg) !important; color: var(--ng-status-success) !important; }
770
- .ng-dark .badge.bg-warning { background: var(--ng-status-warning-bg) !important; color: var(--ng-status-warning) !important; }
771
- .ng-dark .badge.bg-danger { background: var(--ng-status-error-bg) !important; color: var(--ng-status-error) !important; }
772
- .ng-dark .badge.bg-info { background: var(--ng-status-info-bg) !important; color: var(--ng-status-info) !important; }
773
- .ng-dark .badge.bg-light { background: var(--ng-bg-glass-active) !important; color: var(--ng-text-primary) !important; }
774
- .ng-dark .badge.bg-dark { background: var(--ng-bg-glass) !important; color: var(--ng-text-secondary) !important; }
775
-
776
-
777
- /* ============================================
778
- 11. PROGRESS & GAUGES
779
- ============================================ */
780
-
781
- .ng-progress-bar {
782
- height: 6px;
783
- border-radius: var(--ng-radius-pill);
784
- background: var(--ng-bg-glass-active);
785
- overflow: hidden;
786
- }
787
-
788
- .ng-progress-fill {
789
- height: 100%;
790
- border-radius: var(--ng-radius-pill);
791
- background: var(--ng-accent);
792
- transition: width var(--ng-transition-slow);
793
- }
794
-
795
- .ng-progress-fill-success { background: var(--ng-status-success); }
796
- .ng-progress-fill-warning { background: var(--ng-status-warning); }
797
- .ng-progress-fill-error { background: var(--ng-status-error); }
798
-
799
- /* Score/confidence bars */
800
- .ng-dark .score-bar { background: var(--ng-bg-glass-active); }
801
- .ng-dark .confidence-bar { background: var(--ng-bg-glass-active); }
802
-
803
-
804
- /* ============================================
805
- 12. MODALS & OVERLAYS
806
- ============================================ */
807
-
808
- .ng-dark .modal-content {
809
- background: var(--ng-bg-surface) !important;
810
- border: 1px solid var(--ng-border-default) !important;
811
- border-radius: var(--ng-radius-xl) !important;
812
- box-shadow: var(--ng-shadow-xl) !important;
813
- color: var(--ng-text-primary);
814
- }
815
-
816
- .ng-dark .modal-header {
817
- border-bottom-color: var(--ng-border-subtle) !important;
818
- }
819
-
820
- .ng-dark .modal-footer {
821
- border-top-color: var(--ng-border-subtle) !important;
822
- }
823
-
824
- .ng-dark .modal-backdrop {
825
- background: rgba(0, 0, 0, 0.75) !important;
826
- backdrop-filter: blur(4px);
827
- }
828
-
829
- .ng-dark .btn-close {
830
- filter: invert(1) grayscale(100%) brightness(0.8);
831
- }
832
-
833
-
834
- /* ============================================
835
- 13. ALERTS & NOTICES
836
- ============================================ */
837
-
838
- .ng-dark .alert {
839
- border-radius: var(--ng-radius-md);
840
- }
841
-
842
- .ng-dark .alert-info {
843
- background: var(--ng-status-info-bg) !important;
844
- border-color: rgba(59, 130, 246, 0.2) !important;
845
- color: var(--ng-text-primary) !important;
846
- }
847
-
848
- .ng-dark .alert-success {
849
- background: var(--ng-status-success-bg) !important;
850
- border-color: rgba(16, 185, 129, 0.2) !important;
851
- color: var(--ng-text-primary) !important;
852
- }
853
-
854
- .ng-dark .alert-warning {
855
- background: var(--ng-status-warning-bg) !important;
856
- border-color: rgba(245, 158, 11, 0.2) !important;
857
- color: var(--ng-text-primary) !important;
858
- }
859
-
860
- .ng-dark .alert-danger {
861
- background: var(--ng-status-error-bg) !important;
862
- border-color: rgba(239, 68, 68, 0.2) !important;
863
- color: var(--ng-text-primary) !important;
864
- }
865
-
866
-
867
- /* ============================================
868
- 14. ANIMATIONS
869
- ============================================ */
870
-
871
- @keyframes ng-pulse {
872
- 0%, 100% { opacity: 1; }
873
- 50% { opacity: 0.5; }
874
- }
875
-
876
- @keyframes ng-fade-in {
877
- from { opacity: 0; transform: translateY(8px); }
878
- to { opacity: 1; transform: translateY(0); }
879
- }
880
-
881
- @keyframes ng-slide-in-left {
882
- from { opacity: 0; transform: translateX(-12px); }
883
- to { opacity: 1; transform: translateX(0); }
884
- }
885
-
886
- @keyframes ng-glow-pulse {
887
- 0%, 100% { box-shadow: 0 0 8px var(--ng-accent-glow); }
888
- 50% { box-shadow: 0 0 20px var(--ng-accent-glow), 0 0 40px rgba(0, 212, 170, 0.05); }
889
- }
890
-
891
- /* Tab pane entrance */
892
- .ng-dark .tab-pane.active {
893
- animation: ng-fade-in 300ms ease-out;
894
- }
895
-
896
-
897
- /* ============================================
898
- 15. ACCESSIBILITY
899
- ============================================ */
900
-
901
- @media (prefers-reduced-motion: reduce) {
902
- .ng-dark *,
903
- .ng-dark *::before,
904
- .ng-dark *::after {
905
- animation-duration: 0.01ms !important;
906
- animation-iteration-count: 1 !important;
907
- transition-duration: 0.01ms !important;
908
- }
909
-
910
- .ng-pulse { animation: none; }
911
- .ng-dark .tab-pane.active { animation: none; }
912
- .ng-dark .stat-card:hover { transform: none; }
913
- }
914
-
915
- @media (prefers-reduced-transparency) {
916
- .ng-glass,
917
- .ng-glass-elevated {
918
- backdrop-filter: none;
919
- -webkit-backdrop-filter: none;
920
- background: var(--ng-bg-surface);
921
- }
922
- }
923
-
924
- /* Focus visible for keyboard navigation */
925
- .ng-dark :focus-visible {
926
- outline: 2px solid var(--ng-accent);
927
- outline-offset: 2px;
928
- }
929
-
930
- .ng-sidebar-item:focus-visible {
931
- outline: 2px solid var(--ng-accent);
932
- outline-offset: -2px;
933
- }
934
-
935
-
936
- /* ============================================
937
- 16. BOOTSTRAP DARK OVERRIDES
938
- ============================================ */
939
-
940
- /* Ensure Bootstrap dark theme uses our colors */
941
- .ng-dark,
942
- .ng-dark [data-bs-theme="dark"] {
943
- --bs-body-bg: var(--ng-bg-void);
944
- --bs-body-color: var(--ng-text-primary);
945
- --bs-border-color: var(--ng-border-subtle);
946
- --bs-secondary-color: var(--ng-text-tertiary);
947
- --bs-tertiary-bg: var(--ng-bg-glass);
948
- --bs-emphasis-color: var(--ng-text-primary);
949
- --bs-primary: var(--ng-accent);
950
- --bs-primary-rgb: 124, 106, 239;
951
- }
952
-
953
- /* Override navbar — we use sidebar now, but keep it in light mode for now */
954
- .ng-dark .navbar { display: none !important; }
955
- [data-bs-theme="light"] .navbar { display: none !important; }
956
-
957
- /* Override Bootstrap nav tabs — hidden, sidebar drives navigation */
958
- .ng-dark #mainTabs { display: none !important; }
959
- [data-bs-theme="light"] #mainTabs { display: none !important; }
960
-
961
- /* Override stats container — only show on dashboard */
962
- .ng-dark #stats-container {
963
- margin-bottom: var(--ng-space-6);
964
- }
965
-
966
- /* Dashboard-only elements — hidden via JS data attribute */
967
- .ng-dark [data-ng-hide="true"] {
968
- display: none !important;
969
- }
970
-
971
- /* Override footer */
972
- .ng-dark footer {
973
- border-top-color: var(--ng-border-subtle);
974
- color: var(--ng-text-quaternary);
975
- padding: var(--ng-space-6);
976
- margin-top: var(--ng-space-8);
977
- }
978
-
979
- .ng-dark footer a {
980
- color: var(--ng-accent);
981
- }
982
-
983
- /* Memory detail content */
984
- .ng-dark .memory-detail-content {
985
- background: var(--ng-bg-glass);
986
- border: 1px solid var(--ng-border-subtle);
987
- color: var(--ng-text-secondary);
988
- }
989
-
990
- /* Loading spinner */
991
- .ng-dark .loading { color: var(--ng-text-tertiary); }
992
- .ng-dark .spinner-border { color: var(--ng-accent) !important; }
993
- .ng-dark .empty-state { color: var(--ng-text-tertiary); }
994
-
995
- /* Graph container — override inline style with !important + specificity boost */
996
- .ng-dark #graph-pane #graph-container,
997
- body.ng-dark #graph-container {
998
- background: #0f1012 !important;
999
- background-color: #0f1012 !important;
1000
- border: 1px solid rgba(255, 255, 255, 0.06) !important;
1001
- border-radius: var(--ng-radius-lg);
1002
- box-shadow: var(--ng-shadow-glass);
1003
- }
1004
-
1005
- /* Timeline chart in dark mode */
1006
- .ng-dark #memory-timeline-chart,
1007
- body.ng-dark #memory-timeline-chart {
1008
- background: #0f1012 !important;
1009
- background-color: #0f1012 !important;
1010
- border-color: rgba(255, 255, 255, 0.06) !important;
1011
- }
1012
-
1013
- /* Left/right panels in graph view */
1014
- .ng-dark #graph-left-panel .card,
1015
- .ng-dark #graph-right-panel .card,
1016
- .ng-dark #sigma-detail-panel {
1017
- background: var(--ng-bg-surface) !important;
1018
- border-color: var(--ng-border-subtle) !important;
1019
- color: var(--ng-text-primary);
1020
- }
1021
-
1022
- /* Tab content area */
1023
- .ng-dark .tab-content {
1024
- min-height: auto;
1025
- }
1026
-
1027
- /* Mode buttons */
1028
- .ng-dark .mode-btn {
1029
- color: var(--ng-text-secondary) !important;
1030
- border-color: var(--ng-border-default) !important;
1031
- }
1032
-
1033
- .ng-dark .mode-btn.active,
1034
- .ng-dark .mode-btn:hover {
1035
- background: var(--ng-accent-muted) !important;
1036
- color: var(--ng-accent) !important;
1037
- border-color: var(--ng-accent) !important;
1038
- }
1039
-
1040
- /* Tooltip */
1041
- .ng-dark .tooltip-custom {
1042
- background: var(--ng-bg-elevated);
1043
- border: 1px solid var(--ng-border-default);
1044
- border-radius: var(--ng-radius-md);
1045
- box-shadow: var(--ng-shadow-lg);
1046
- color: var(--ng-text-primary);
1047
- }
1048
-
1049
- /* Profile select in sidebar footer */
1050
- .ng-dark .profile-select {
1051
- background: var(--ng-bg-glass);
1052
- border-color: var(--ng-border-default);
1053
- color: var(--ng-text-primary);
1054
- border-radius: var(--ng-radius-md);
1055
- font-size: 0.8125rem;
1056
- }
1057
-
1058
- .ng-dark .profile-select option {
1059
- background: var(--ng-bg-surface);
1060
- color: var(--ng-text-primary);
1061
- }
1062
-
1063
- /* Cluster cards */
1064
- .ng-dark .cluster-card {
1065
- background: var(--ng-bg-glass);
1066
- border: 1px solid var(--ng-border-subtle);
1067
- border-radius: var(--ng-radius-md);
1068
- }
1069
-
1070
- /* Dropdown menus */
1071
- .ng-dark .dropdown-menu {
1072
- background: var(--ng-bg-elevated) !important;
1073
- border: 1px solid var(--ng-border-default) !important;
1074
- border-radius: var(--ng-radius-lg) !important;
1075
- box-shadow: var(--ng-shadow-lg) !important;
1076
- }
1077
-
1078
- .ng-dark .dropdown-item {
1079
- color: var(--ng-text-secondary) !important;
1080
- border-radius: var(--ng-radius-sm);
1081
- }
1082
-
1083
- .ng-dark .dropdown-item:hover {
1084
- background: var(--ng-bg-glass-hover) !important;
1085
- color: var(--ng-text-primary) !important;
1086
- }
1087
-
1088
-
1089
- /* ============================================
1090
- 17. LIGHT MODE OVERRIDES
1091
- ============================================ */
1092
-
1093
- [data-bs-theme="light"] .ng-sidebar {
1094
- background: #f7f8fa;
1095
- border-right-color: #e5e7eb;
1096
- }
1097
-
1098
- [data-bs-theme="light"] .ng-sidebar-brand-text { color: #1a1a2e; }
1099
- [data-bs-theme="light"] .ng-sidebar-section-label { color: #9ca3af; }
1100
-
1101
- [data-bs-theme="light"] .ng-sidebar-item {
1102
- color: #4b5563;
1103
- }
1104
-
1105
- [data-bs-theme="light"] .ng-sidebar-item:hover {
1106
- background: rgba(124, 106, 239, 0.06);
1107
- color: #1a1a2e;
1108
- }
1109
-
1110
- [data-bs-theme="light"] .ng-sidebar-item.active {
1111
- background: rgba(124, 106, 239, 0.10);
1112
- color: #667eea;
1113
- border-color: rgba(124, 106, 239, 0.25);
1114
- }
1115
-
1116
- [data-bs-theme="light"] .ng-sidebar-item.active .ng-sidebar-icon { color: #667eea; }
1117
- [data-bs-theme="light"] .ng-sidebar-icon { color: #9ca3af; }
1118
- [data-bs-theme="light"] .ng-sidebar-footer { border-top-color: #e5e7eb; }
1119
-
1120
- [data-bs-theme="light"] .ng-content {
1121
- background: #f8f9fa;
1122
- }
1123
-
1124
- [data-bs-theme="light"] .ng-glass {
1125
- background: rgba(255, 255, 255, 0.8);
1126
- border-color: #e5e7eb;
1127
- box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.04);
1128
- backdrop-filter: blur(8px);
1129
- }
1130
-
1131
- [data-bs-theme="light"] .ng-content-title { color: #111827; }
1132
- [data-bs-theme="light"] .ng-content-subtitle { color: #4b5563; }
1133
- [data-bs-theme="light"] .ng-stat-value { color: #111827; }
1134
- [data-bs-theme="light"] .ng-stat-label { color: #6b7280; }
1135
-
1136
- /* Light mode: ensure ALL text is readable (dark text on light bg) */
1137
- [data-bs-theme="light"] h1,
1138
- [data-bs-theme="light"] h2,
1139
- [data-bs-theme="light"] h3,
1140
- [data-bs-theme="light"] h4,
1141
- [data-bs-theme="light"] h5,
1142
- [data-bs-theme="light"] h6 {
1143
- color: #111827 !important;
1144
- }
1145
-
1146
- [data-bs-theme="light"] p,
1147
- [data-bs-theme="light"] span,
1148
- [data-bs-theme="light"] div,
1149
- [data-bs-theme="light"] label,
1150
- [data-bs-theme="light"] td,
1151
- [data-bs-theme="light"] th {
1152
- color: inherit;
1153
- }
1154
-
1155
- [data-bs-theme="light"] .text-muted {
1156
- color: #6b7280 !important;
1157
- }
1158
-
1159
- [data-bs-theme="light"] small {
1160
- color: #6b7280;
1161
- }
1162
-
1163
- [data-bs-theme="light"] .card {
1164
- background: #fff;
1165
- border-color: #e5e7eb;
1166
- color: #111827;
1167
- box-shadow: 0 1px 3px rgba(0,0,0,0.06);
1168
- }
1169
-
1170
- [data-bs-theme="light"] .card-body {
1171
- color: #111827;
1172
- }
1173
-
1174
- [data-bs-theme="light"] .card-subtitle,
1175
- [data-bs-theme="light"] .card h6 {
1176
- color: #374151 !important;
1177
- }
1178
-
1179
- [data-bs-theme="light"] .stat-card .stat-value {
1180
- color: #111827 !important;
1181
- }
1182
-
1183
- [data-bs-theme="light"] .stat-card .stat-icon {
1184
- color: #667eea !important;
1185
- }
1186
-
1187
- [data-bs-theme="light"] .table {
1188
- color: #111827;
1189
- }
1190
-
1191
- [data-bs-theme="light"] .table thead th {
1192
- color: #374151;
1193
- }
1194
-
1195
- [data-bs-theme="light"] .form-control,
1196
- [data-bs-theme="light"] .form-select {
1197
- color: #111827 !important;
1198
- background: #fff !important;
1199
- border-color: #d1d5db !important;
1200
- }
1201
-
1202
- [data-bs-theme="light"] .form-control::placeholder {
1203
- color: #9ca3af !important;
1204
- }
1205
-
1206
- [data-bs-theme="light"] .form-control:focus,
1207
- [data-bs-theme="light"] .form-select:focus {
1208
- border-color: #667eea !important;
1209
- box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.15) !important;
1210
- }
1211
-
1212
- [data-bs-theme="light"] .input-group-text {
1213
- background: #f3f4f6 !important;
1214
- border-color: #d1d5db !important;
1215
- color: #6b7280 !important;
1216
- }
1217
-
1218
- [data-bs-theme="light"] .alert {
1219
- color: #111827 !important;
1220
- }
1221
-
1222
- [data-bs-theme="light"] .btn-primary {
1223
- background: #667eea !important;
1224
- border-color: #667eea !important;
1225
- color: #fff !important;
1226
- }
1227
-
1228
- [data-bs-theme="light"] .btn-success {
1229
- background: #10b981 !important;
1230
- border-color: #10b981 !important;
1231
- }
1232
-
1233
- [data-bs-theme="light"] .btn-outline-primary {
1234
- color: #667eea !important;
1235
- border-color: #667eea !important;
1236
- }
1237
-
1238
- [data-bs-theme="light"] .btn-outline-secondary {
1239
- color: #374151 !important;
1240
- border-color: #d1d5db !important;
1241
- }
1242
-
1243
- [data-bs-theme="light"] .modal-content {
1244
- background: #fff !important;
1245
- color: #111827;
1246
- }
1247
-
1248
- [data-bs-theme="light"] .dropdown-menu {
1249
- background: #fff !important;
1250
- border-color: #e5e7eb !important;
1251
- }
1252
-
1253
- [data-bs-theme="light"] .dropdown-item {
1254
- color: #374151 !important;
1255
- }
1256
-
1257
- [data-bs-theme="light"] .badge.bg-light {
1258
- background: #f3f4f6 !important;
1259
- color: #111827 !important;
1260
- }
1261
-
1262
- [data-bs-theme="light"] .score-bar { background: #e5e7eb; }
1263
- [data-bs-theme="light"] .confidence-bar { background: #e5e7eb; }
1264
-
1265
- [data-bs-theme="light"] .memory-detail-content {
1266
- background: #f9fafb;
1267
- color: #111827;
1268
- }
1269
-
1270
- [data-bs-theme="light"] #graph-container {
1271
- background: #fff;
1272
- border-color: #e5e7eb;
1273
- }
1274
-
1275
- [data-bs-theme="light"] #event-stream {
1276
- background: #f9fafb !important;
1277
- border-color: #e5e7eb !important;
1278
- color: #111827;
1279
- }
1280
-
1281
- [data-bs-theme="light"] footer {
1282
- color: #6b7280;
1283
- border-top-color: #e5e7eb;
1284
- }
1285
-
1286
- [data-bs-theme="light"] footer a { color: #667eea; }
1287
-
1288
- /* Light mode: sidebar profile select */
1289
- [data-bs-theme="light"] .profile-select {
1290
- background: #fff;
1291
- border-color: #d1d5db;
1292
- color: #111827;
1293
- }
1294
-
1295
- [data-bs-theme="light"] .ng-btn {
1296
- background: #fff;
1297
- border-color: #d1d5db;
1298
- color: #374151;
1299
- }
1300
-
1301
- [data-bs-theme="light"] .ng-btn:hover {
1302
- background: #f9fafb;
1303
- border-color: #9ca3af;
1304
- color: #111827;
1305
- }
1306
-
1307
- [data-bs-theme="light"] .ng-sidebar-badge {
1308
- background: rgba(102, 126, 234, 0.12);
1309
- color: #667eea;
1310
- }
1311
-
1312
- [data-bs-theme="light"] .ng-badge-accent {
1313
- background: rgba(102, 126, 234, 0.10);
1314
- color: #667eea;
1315
- }
1316
-
1317
- [data-bs-theme="light"] .ng-progress-bar {
1318
- background: #e5e7eb;
1319
- }
1320
-
1321
- [data-bs-theme="light"] .ng-glass {
1322
- background: #fff;
1323
- border-color: #e5e7eb;
1324
- box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.04);
1325
- backdrop-filter: none;
1326
- }
1327
-
1328
- /* Light mode scrollbar */
1329
- [data-bs-theme="light"] ::-webkit-scrollbar-thumb {
1330
- background: rgba(0, 0, 0, 0.12);
1331
- }
1332
- [data-bs-theme="light"] ::-webkit-scrollbar-thumb:hover {
1333
- background: rgba(0, 0, 0, 0.22);
1334
- }
1335
-
1336
- /* Light mode text visibility fixes */
1337
- [data-bs-theme="light"] .stat-value,
1338
- [data-bs-theme="light"] .ng-stat-value,
1339
- [data-bs-theme="light"] h3,
1340
- [data-bs-theme="light"] .card-body h3,
1341
- [data-bs-theme="light"] .card-body .stat-value {
1342
- color: #1a1a2e !important;
1343
- }
1344
-
1345
- [data-bs-theme="light"] .card-body h6,
1346
- [data-bs-theme="light"] .card-subtitle {
1347
- color: #4b5563 !important;
1348
- }
1349
-
1350
- [data-bs-theme="light"] .card-body p,
1351
- [data-bs-theme="light"] .card-body .text-muted,
1352
- [data-bs-theme="light"] .card-body small {
1353
- color: #6b7280 !important;
1354
- }
1355
-
1356
- [data-bs-theme="light"] .card,
1357
- [data-bs-theme="light"] .stat-card {
1358
- color: #1a1a2e;
1359
- }
1360
-
1361
- [data-bs-theme="light"] .stat-icon {
1362
- color: #667eea !important;
1363
- }
1364
-
1365
- [data-bs-theme="light"] .form-control,
1366
- [data-bs-theme="light"] .form-select {
1367
- background: #fff !important;
1368
- border-color: #d1d5db !important;
1369
- color: #1a1a2e !important;
1370
- }
1371
-
1372
- [data-bs-theme="light"] .form-control::placeholder {
1373
- color: #9ca3af !important;
1374
- }
1375
-
1376
- [data-bs-theme="light"] .alert-info {
1377
- background: rgba(124, 106, 239, 0.06) !important;
1378
- border-color: rgba(124, 106, 239, 0.15) !important;
1379
- color: #1a1a2e !important;
1380
- }
1381
-
1382
- [data-bs-theme="light"] .btn-primary {
1383
- background: #667eea !important;
1384
- border-color: #667eea !important;
1385
- color: #fff !important;
1386
- }
1387
-
1388
- [data-bs-theme="light"] .btn-success {
1389
- background: #10b981 !important;
1390
- border-color: #10b981 !important;
1391
- color: #fff !important;
1392
- }
1393
-
1394
- [data-bs-theme="light"] .badge.bg-light {
1395
- background: rgba(124, 106, 239, 0.10) !important;
1396
- color: #667eea !important;
1397
- }
1398
-
1399
- [data-bs-theme="light"] footer {
1400
- color: #6b7280;
1401
- border-top-color: #e5e7eb;
1402
- }
1403
-
1404
- [data-bs-theme="light"] footer a {
1405
- color: #667eea;
1406
- }
1407
-
1408
-
1409
- /* ============================================
1410
- 18. PRIVACY BLUR MODE (Screen Recording)
1411
- Blurs memory text content while keeping UI structure visible.
1412
- Toggle via: Privacy button in sidebar footer or URL ?blur=1
1413
- ============================================ */
1414
-
1415
- body.ng-privacy-blur .memory-content,
1416
- body.ng-privacy-blur .memory-detail-content,
1417
- body.ng-privacy-blur #chat-messages,
1418
- body.ng-privacy-blur #quick-recall-results,
1419
- body.ng-privacy-blur #sigma-detail-content,
1420
- body.ng-privacy-blur #recall-lab-results,
1421
- body.ng-privacy-blur #insight-results,
1422
- body.ng-privacy-blur .cluster-card p,
1423
- body.ng-privacy-blur .cluster-card .badge,
1424
- body.ng-privacy-blur #event-stream,
1425
- body.ng-privacy-blur #compliance-audit-content,
1426
- body.ng-privacy-blur #behavioral-outcomes-content,
1427
- body.ng-privacy-blur #behavioral-patterns-content,
1428
- body.ng-privacy-blur #what-we-learned-content,
1429
- body.ng-privacy-blur #lifecycle-transitions-content,
1430
- body.ng-privacy-blur #ingestion-log,
1431
- body.ng-privacy-blur .ng-glass .summary-preview {
1432
- filter: blur(5px);
1433
- user-select: none;
1434
- transition: filter 0.3s ease;
1435
- }
1436
-
1437
- /* Blur table cell text (memory content columns) */
1438
- body.ng-privacy-blur .memory-table td:nth-child(2),
1439
- body.ng-privacy-blur .memory-table td:nth-child(3),
1440
- body.ng-privacy-blur .table tbody td:first-child,
1441
- body.ng-privacy-blur .table tbody td:nth-child(4) {
1442
- filter: blur(4px);
1443
- user-select: none;
1444
- }
1445
-
1446
- /* Blur entity cards content but keep names visible */
1447
- body.ng-privacy-blur .ng-glass > div:nth-child(2) {
1448
- filter: blur(4px);
1449
- }
1450
-
1451
- /* Blur graph node labels */
1452
- body.ng-privacy-blur #graph-container canvas + div,
1453
- body.ng-privacy-blur .sigma-label {
1454
- filter: blur(6px);
1455
- }
1456
-
1457
- /* Keep UI chrome sharp — headings, stats, buttons, nav */
1458
- body.ng-privacy-blur h1,
1459
- body.ng-privacy-blur h2,
1460
- body.ng-privacy-blur h3,
1461
- body.ng-privacy-blur h4,
1462
- body.ng-privacy-blur h5,
1463
- body.ng-privacy-blur h6,
1464
- body.ng-privacy-blur .ng-stat-value,
1465
- body.ng-privacy-blur .ng-stat-label,
1466
- body.ng-privacy-blur .ng-sidebar,
1467
- body.ng-privacy-blur .ng-content-header,
1468
- body.ng-privacy-blur .ng-btn,
1469
- body.ng-privacy-blur .btn,
1470
- body.ng-privacy-blur .badge,
1471
- body.ng-privacy-blur .nav-link,
1472
- body.ng-privacy-blur footer,
1473
- body.ng-privacy-blur .form-control,
1474
- body.ng-privacy-blur .form-select {
1475
- filter: none !important;
1476
- }
1477
-
1478
- /* Privacy blur indicator bar */
1479
- body.ng-privacy-blur::before {
1480
- content: "PRIVACY BLUR ON — Memory content hidden for recording";
1481
- display: block;
1482
- position: fixed;
1483
- top: 0;
1484
- left: 240px;
1485
- right: 0;
1486
- z-index: 9999;
1487
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1488
- color: #fff;
1489
- text-align: center;
1490
- padding: 4px 16px;
1491
- font-size: 0.75rem;
1492
- font-weight: 600;
1493
- letter-spacing: 0.05em;
1494
- }
1495
-
1496
- @media (max-width: 768px) {
1497
- body.ng-privacy-blur::before {
1498
- left: 0;
1499
- }
1500
- }
1501
-
1502
-
1503
- /* ============================================
1504
- 19. RESPONSIVE
1505
- ============================================ */
1506
-
1507
- /* Mobile: sidebar collapses to bottom bar */
1508
- @media (max-width: 768px) {
1509
- .ng-sidebar {
1510
- position: fixed;
1511
- top: auto;
1512
- bottom: 0;
1513
- left: 0;
1514
- right: 0;
1515
- width: 100%;
1516
- min-width: 100%;
1517
- height: auto;
1518
- max-height: 60px;
1519
- flex-direction: row;
1520
- border-right: none;
1521
- border-top: 1px solid var(--ng-border-subtle);
1522
- overflow-x: auto;
1523
- overflow-y: hidden;
1524
- z-index: var(--ng-z-sidebar);
1525
- }
1526
-
1527
- .ng-sidebar-header,
1528
- .ng-sidebar-section-label,
1529
- .ng-sidebar-footer {
1530
- display: none;
1531
- }
1532
-
1533
- .ng-sidebar-nav {
1534
- display: flex;
1535
- flex-direction: row;
1536
- padding: var(--ng-space-1);
1537
- gap: 2px;
1538
- overflow-x: auto;
1539
- -webkit-overflow-scrolling: touch;
1540
- }
1541
-
1542
- .ng-sidebar-section {
1543
- display: contents;
1544
- margin: 0;
1545
- }
1546
-
1547
- .ng-sidebar-item {
1548
- flex-direction: column;
1549
- padding: 6px 10px;
1550
- font-size: 0.625rem;
1551
- gap: 2px;
1552
- min-width: 56px;
1553
- text-align: center;
1554
- white-space: nowrap;
1555
- }
1556
-
1557
- .ng-sidebar-icon {
1558
- font-size: 1.125rem;
1559
- }
1560
-
1561
- .ng-sidebar-badge { display: none; }
1562
-
1563
- .ng-content {
1564
- margin-left: 0;
1565
- padding-bottom: 68px;
1566
- }
1567
-
1568
- .ng-content-inner {
1569
- padding: var(--ng-space-4);
1570
- }
1571
- }
1572
-
1573
- /* Tablet: narrower sidebar */
1574
- @media (min-width: 769px) and (max-width: 1024px) {
1575
- :root {
1576
- --ng-sidebar-width: 200px;
1577
- }
1578
-
1579
- .ng-sidebar-item {
1580
- font-size: 0.75rem;
1581
- padding: 6px var(--ng-space-2);
1582
- }
1583
-
1584
- .ng-content-inner {
1585
- padding: var(--ng-space-4);
1586
- }
1587
- }
1588
-
1589
- /* Large desktop */
1590
- @media (min-width: 1600px) {
1591
- .ng-content-inner {
1592
- max-width: 1600px;
1593
- }
1594
- }
1595
-
1596
- /* pane-error dark-mode override */
1597
- .ng-dark .pane-error {
1598
- color: var(--ng-status-error);
1599
- }