superlocalmemory 3.7.8 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/ATTRIBUTION.md +1 -3
- package/CHANGELOG.md +129 -0
- package/README.md +205 -123
- package/package.json +12 -3
- package/plugin/.claude-plugin/plugin.json +2 -3
- package/plugin/CLAUDE.md +8 -8
- package/plugin/agents/slm-governance-advisor.md +80 -0
- package/plugin/agents/slm-loop-runner.md +71 -0
- package/plugin/agents/slm-memory-advisor.md +10 -5
- package/plugin/agents/slm-optimize-advisor.md +9 -3
- package/plugin/commands/slm-loop.md +31 -0
- package/plugin/hooks/hooks.json +79 -0
- package/plugin/requirements.txt +1 -1
- package/plugin/scripts/slm-launch +46 -7
- package/plugin/settings.json +9 -0
- package/plugin/skills/slm-cache/SKILL.md +9 -1
- package/plugin/skills/slm-compress/SKILL.md +8 -1
- package/plugin/skills/slm-governance/SKILL.md +248 -0
- package/plugin/skills/slm-graph/SKILL.md +17 -3
- package/plugin/skills/slm-loop/SKILL.md +99 -0
- package/plugin/skills/slm-mesh/SKILL.md +282 -0
- package/plugin/skills/slm-profile/SKILL.md +148 -0
- package/plugin/skills/slm-recall/SKILL.md +46 -10
- package/plugin/skills/slm-remember/SKILL.md +48 -1
- package/plugin/skills/slm-scope/SKILL.md +176 -0
- package/plugin/skills/slm-session/SKILL.md +24 -1
- package/plugin/skills/slm-status/SKILL.md +18 -1
- package/plugin-src/rules/AGENTS.md +57 -18
- package/plugin-src/skills/slm-cache/SKILL.md +9 -1
- package/plugin-src/skills/slm-compress/SKILL.md +8 -1
- package/plugin-src/skills/slm-graph/SKILL.md +17 -3
- package/plugin-src/skills/slm-recall/SKILL.md +46 -10
- package/plugin-src/skills/slm-remember/SKILL.md +48 -1
- package/plugin-src/skills/slm-session/SKILL.md +24 -1
- package/plugin-src/skills/slm-status/SKILL.md +18 -1
- package/pyproject.toml +2 -1
- package/scripts/postinstall/validation.js +2 -0
- package/scripts/postinstall-interactive.js +74 -2
- package/src/superlocalmemory/__init__.py +1 -1
- package/src/superlocalmemory/access/__init__.py +3 -0
- package/src/superlocalmemory/access/rbac.py +477 -0
- package/src/superlocalmemory/cli/commands.py +228 -17
- package/src/superlocalmemory/cli/compress_cmd.py +17 -7
- package/src/superlocalmemory/cli/daemon.py +7 -0
- package/src/superlocalmemory/cli/loop_cmd.py +187 -0
- package/src/superlocalmemory/cli/main.py +49 -8
- package/src/superlocalmemory/cli/mesh_cmd.py +38 -0
- package/src/superlocalmemory/cli/optimize_cmd.py +3 -0
- package/src/superlocalmemory/cli/pending_store.py +49 -13
- package/src/superlocalmemory/cli/proxy_cmd.py +4 -0
- package/src/superlocalmemory/cli/scale_engine_cmd.py +6 -0
- package/src/superlocalmemory/cli/setup_wizard.py +22 -13
- package/src/superlocalmemory/cli/version_banner.py +17 -3
- package/src/superlocalmemory/compliance/audit.py +6 -0
- package/src/superlocalmemory/compliance/gdpr.py +128 -138
- package/src/superlocalmemory/compliance/retention.py +176 -45
- package/src/superlocalmemory/core/backend_orchestrator.py +23 -59
- package/src/superlocalmemory/core/community_summary.py +267 -0
- package/src/superlocalmemory/core/config.py +216 -3
- package/src/superlocalmemory/core/consolidation_engine.py +95 -22
- package/src/superlocalmemory/core/context_cache.py +61 -18
- package/src/superlocalmemory/core/embedding_worker.py +21 -7
- package/src/superlocalmemory/core/embeddings.py +131 -46
- package/src/superlocalmemory/core/engine.py +41 -22
- package/src/superlocalmemory/core/engine_ingestion.py +359 -43
- package/src/superlocalmemory/core/engine_wiring.py +13 -0
- package/src/superlocalmemory/core/entity_community.py +178 -0
- package/src/superlocalmemory/core/graph_analyzer.py +39 -2
- package/src/superlocalmemory/core/graph_pruner.py +13 -8
- package/src/superlocalmemory/core/ingestion_command.py +134 -25
- package/src/superlocalmemory/core/injection.py +12 -7
- package/src/superlocalmemory/core/key_expander.py +138 -0
- package/src/superlocalmemory/core/maintenance.py +23 -0
- package/src/superlocalmemory/core/maintenance_scheduler.py +17 -7
- package/src/superlocalmemory/core/modes.py +1 -1
- package/src/superlocalmemory/core/mutations.py +2 -2
- package/src/superlocalmemory/core/pii.py +105 -0
- package/src/superlocalmemory/core/progressive_abstraction.py +208 -0
- package/src/superlocalmemory/core/recall_pipeline.py +7 -3
- package/src/superlocalmemory/core/recall_worker.py +20 -6
- package/src/superlocalmemory/core/scale_engine.py +60 -1
- package/src/superlocalmemory/core/security_primitives.py +40 -2
- package/src/superlocalmemory/core/store_pipeline.py +186 -29
- package/src/superlocalmemory/core/worker_pool.py +21 -6
- package/src/superlocalmemory/encoding/entity_reflexion.py +200 -0
- package/src/superlocalmemory/encoding/entity_resolver.py +34 -24
- package/src/superlocalmemory/encoding/fact_extractor.py +26 -1
- package/src/superlocalmemory/encoding/temporal_validator.py +64 -1
- package/src/superlocalmemory/evolution/evolution_store.py +122 -45
- package/src/superlocalmemory/evolution/llm_dispatch.py +12 -1
- package/src/superlocalmemory/evolution/model_selection.py +160 -0
- package/src/superlocalmemory/evolution/mutation_generator.py +16 -0
- package/src/superlocalmemory/evolution/skill_evolver.py +127 -42
- package/src/superlocalmemory/evolution/triggers.py +22 -13
- package/src/superlocalmemory/graph/cozo_backend.py +43 -20
- package/src/superlocalmemory/hooks/adapter_base.py +5 -1
- package/src/superlocalmemory/hooks/auto_recall.py +13 -1
- package/src/superlocalmemory/hooks/claude_code_hooks.py +11 -0
- package/src/superlocalmemory/hooks/codex_assets.py +64 -5
- package/src/superlocalmemory/hooks/hook_daemon.py +20 -3
- package/src/superlocalmemory/hooks/hook_handlers.py +6 -1
- package/src/superlocalmemory/hooks/memory_protocol.py +54 -0
- package/src/superlocalmemory/hooks/portable_kit.py +148 -3
- package/src/superlocalmemory/infra/backup.py +12 -1
- package/src/superlocalmemory/infra/daemon_identity.py +40 -4
- package/src/superlocalmemory/infra/data_root.py +43 -4
- package/src/superlocalmemory/infra/event_bus.py +107 -24
- package/src/superlocalmemory/infra/rate_limiter.py +93 -0
- package/src/superlocalmemory/ingestion/adapter_manager.py +4 -1
- package/src/superlocalmemory/ingestion/credentials.py +1 -1
- package/src/superlocalmemory/learning/cross_project.py +28 -19
- package/src/superlocalmemory/learning/model_rollback.py +3 -0
- package/src/superlocalmemory/learning/ranker_retrain_online.py +2 -0
- package/src/superlocalmemory/learning/reward.py +50 -0
- package/src/superlocalmemory/learning/reward_proxy.py +42 -9
- package/src/superlocalmemory/learning/source_quality.py +523 -1
- package/src/superlocalmemory/loops/__init__.py +56 -0
- package/src/superlocalmemory/loops/budget.py +58 -0
- package/src/superlocalmemory/loops/engine.py +164 -0
- package/src/superlocalmemory/loops/ledger.py +263 -0
- package/src/superlocalmemory/loops/models.py +152 -0
- package/src/superlocalmemory/loops/rules.py +52 -0
- package/src/superlocalmemory/mcp/_daemon_proxy.py +3 -0
- package/src/superlocalmemory/mcp/_pool_adapter.py +2 -0
- package/src/superlocalmemory/mcp/profiles.py +103 -0
- package/src/superlocalmemory/mcp/server.py +32 -79
- package/src/superlocalmemory/mcp/tools_active.py +4 -7
- package/src/superlocalmemory/mcp/tools_code_graph.py +51 -5
- package/src/superlocalmemory/mcp/tools_core.py +12 -4
- package/src/superlocalmemory/mcp/tools_evolution.py +6 -3
- package/src/superlocalmemory/mcp/tools_learning.py +2 -2
- package/src/superlocalmemory/mcp/tools_loops.py +300 -0
- package/src/superlocalmemory/mcp/tools_mesh.py +140 -4
- package/src/superlocalmemory/mcp/tools_optimize.py +15 -8
- package/src/superlocalmemory/mesh/broker.py +237 -129
- package/src/superlocalmemory/mesh/remote_sync.py +50 -8
- package/src/superlocalmemory/optimize/NOTICE +1 -6
- package/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +1 -4
- package/src/superlocalmemory/optimize/adapters/openai_adapter.py +1 -4
- package/src/superlocalmemory/optimize/cache/semantic.py +27 -19
- package/src/superlocalmemory/optimize/compress/align.py +32 -26
- package/src/superlocalmemory/optimize/compress/ccr.py +14 -71
- package/src/superlocalmemory/optimize/compress/router.py +105 -22
- package/src/superlocalmemory/optimize/config/defaults.py +1 -1
- package/src/superlocalmemory/optimize/config/schema.py +87 -4
- package/src/superlocalmemory/optimize/metrics/counters.py +13 -4
- package/src/superlocalmemory/optimize/metrics/estimator.py +0 -3
- package/src/superlocalmemory/optimize/proxy/_helpers.py +31 -4
- package/src/superlocalmemory/optimize/storage/db.py +38 -9
- package/src/superlocalmemory/optimize/storage/schema.py +10 -0
- package/src/superlocalmemory/parameterization/pattern_extractor.py +6 -3
- package/src/superlocalmemory/retrieval/agentic.py +1 -1
- package/src/superlocalmemory/retrieval/bm25_channel.py +68 -10
- package/src/superlocalmemory/retrieval/engine.py +221 -47
- package/src/superlocalmemory/retrieval/entity_channel.py +7 -5
- package/src/superlocalmemory/retrieval/hopfield_channel.py +9 -2
- package/src/superlocalmemory/retrieval/reranker.py +3 -4
- package/src/superlocalmemory/retrieval/semantic_channel.py +114 -21
- package/src/superlocalmemory/retrieval/spreading_activation.py +11 -2
- package/src/superlocalmemory/retrieval/temporal_channel.py +48 -9
- package/src/superlocalmemory/retrieval/temporal_frame.py +102 -0
- package/src/superlocalmemory/retrieval/temporal_validity_filter.py +135 -0
- package/src/superlocalmemory/retrieval/time_window.py +181 -0
- package/src/superlocalmemory/server/api.py +4 -4
- package/src/superlocalmemory/server/config_file.py +90 -0
- package/src/superlocalmemory/server/origin.py +50 -0
- package/src/superlocalmemory/server/profile_runtime.py +125 -8
- package/src/superlocalmemory/server/rbac_enforce.py +142 -0
- package/src/superlocalmemory/server/recall_health.py +24 -3
- package/src/superlocalmemory/server/recall_serializer.py +19 -1
- package/src/superlocalmemory/server/routes/abstraction.py +115 -0
- package/src/superlocalmemory/server/routes/agents.py +128 -38
- package/src/superlocalmemory/server/routes/backup.py +317 -70
- package/src/superlocalmemory/server/routes/behavioral.py +349 -71
- package/src/superlocalmemory/server/routes/brain.py +69 -12
- package/src/superlocalmemory/server/routes/chat.py +10 -5
- package/src/superlocalmemory/server/routes/compliance.py +171 -21
- package/src/superlocalmemory/server/routes/config_api.py +438 -0
- package/src/superlocalmemory/server/routes/data_io.py +30 -8
- package/src/superlocalmemory/server/routes/entity.py +108 -26
- package/src/superlocalmemory/server/routes/events.py +24 -8
- package/src/superlocalmemory/server/routes/evolution.py +189 -68
- package/src/superlocalmemory/server/routes/helpers.py +16 -1
- package/src/superlocalmemory/server/routes/ingest.py +7 -4
- package/src/superlocalmemory/server/routes/insights.py +3 -3
- package/src/superlocalmemory/server/routes/learning.py +289 -118
- package/src/superlocalmemory/server/routes/learning_telemetry.py +153 -0
- package/src/superlocalmemory/server/routes/lifecycle.py +59 -8
- package/src/superlocalmemory/server/routes/memories.py +182 -57
- package/src/superlocalmemory/server/routes/mesh.py +200 -31
- package/src/superlocalmemory/server/routes/optimize.py +33 -1
- package/src/superlocalmemory/server/routes/prewarm.py +2 -0
- package/src/superlocalmemory/server/routes/profiles.py +63 -17
- package/src/superlocalmemory/server/routes/ratelimit.py +132 -0
- package/src/superlocalmemory/server/routes/rbac.py +367 -0
- package/src/superlocalmemory/server/routes/stats.py +103 -158
- package/src/superlocalmemory/server/routes/tiers.py +11 -9
- package/src/superlocalmemory/server/routes/token.py +3 -13
- package/src/superlocalmemory/server/routes/v3_api.py +247 -89
- package/src/superlocalmemory/server/routes/ws.py +5 -2
- package/src/superlocalmemory/server/security_middleware.py +12 -5
- package/src/superlocalmemory/server/ui.py +20 -5
- package/src/superlocalmemory/server/unified_daemon.py +827 -72
- package/src/superlocalmemory/server/write_identity.py +38 -8
- package/src/superlocalmemory/storage/database.py +265 -53
- package/src/superlocalmemory/storage/migration_runner.py +132 -1
- package/src/superlocalmemory/storage/migrations/M010_evolution_config.py +5 -0
- package/src/superlocalmemory/storage/migrations/M021_ingestion_log_profile.py +108 -0
- package/src/superlocalmemory/storage/migrations/M022_entity_aliases_profile.py +86 -0
- package/src/superlocalmemory/storage/migrations/M023_mesh_profile_isolation.py +194 -0
- package/src/superlocalmemory/storage/migrations/M024_rbac_users_roles.py +87 -0
- package/src/superlocalmemory/storage/migrations/M025_perf_indexes.py +90 -0
- package/src/superlocalmemory/storage/migrations/M026_rbac_memberships_fk.py +136 -0
- package/src/superlocalmemory/storage/migrations/M027_transferable_patterns_profile.py +163 -0
- package/src/superlocalmemory/storage/migrations/M028_fact_entity_associations.py +270 -0
- package/src/superlocalmemory/storage/migrations/M029_behavioral_history_indexes.py +137 -0
- package/src/superlocalmemory/storage/migrations/M030_entity_explorer_indexes.py +93 -0
- package/src/superlocalmemory/storage/migrations/__init__.py +4 -0
- package/src/superlocalmemory/storage/models.py +4 -0
- package/src/superlocalmemory/storage/schema.py +136 -1
- package/src/superlocalmemory/storage/schema_v32.py +2 -0
- package/src/superlocalmemory/storage/schema_v343.py +24 -12
- package/src/superlocalmemory/storage/schema_v347.py +4 -0
- package/src/superlocalmemory/trust/gate.py +49 -8
- package/src/superlocalmemory/ui/assets/slm-icon-white.svg +64 -0
- package/src/superlocalmemory/ui/assets/slm-icon.svg +36 -0
- package/src/superlocalmemory/ui/css/design-system.css +621 -0
- package/src/superlocalmemory/ui/css/neural-glass.css +6 -0
- package/src/superlocalmemory/ui/css/od-bridge.css +158 -0
- package/src/superlocalmemory/ui/favicon.svg +35 -4
- package/src/superlocalmemory/ui/index.html +303 -173
- package/src/superlocalmemory/ui/js/brain.js +5 -20
- package/src/superlocalmemory/ui/js/core.js +100 -41
- package/src/superlocalmemory/ui/js/dashboard.js +403 -65
- package/src/superlocalmemory/ui/js/event-delegation.js +102 -0
- package/src/superlocalmemory/ui/js/knowledge-graph.js +11 -11
- package/src/superlocalmemory/ui/js/math-health.js +1 -1
- package/src/superlocalmemory/ui/js/memories.js +15 -4
- package/src/superlocalmemory/ui/js/memory-chat.js +7 -7
- package/src/superlocalmemory/ui/js/ng-entities.js +6 -8
- package/src/superlocalmemory/ui/js/ng-ingestion.js +4 -4
- package/src/superlocalmemory/ui/js/ng-mesh.js +4 -9
- package/src/superlocalmemory/ui/js/ng-shell.js +8 -8
- package/src/superlocalmemory/ui/js/ng-skills.js +54 -2
- package/src/superlocalmemory/ui/js/od-agents.js +544 -0
- package/src/superlocalmemory/ui/js/od-auth-gate.js +257 -0
- package/src/superlocalmemory/ui/js/od-backup.js +871 -0
- package/src/superlocalmemory/ui/js/od-brain.js +816 -0
- package/src/superlocalmemory/ui/js/od-entities.js +579 -0
- package/src/superlocalmemory/ui/js/od-graph.js +600 -0
- package/src/superlocalmemory/ui/js/od-health.js +539 -0
- package/src/superlocalmemory/ui/js/od-mcp.js +508 -0
- package/src/superlocalmemory/ui/js/od-memories.js +929 -0
- package/src/superlocalmemory/ui/js/od-mesh.js +553 -0
- package/src/superlocalmemory/ui/js/od-operations.js +1250 -0
- package/src/superlocalmemory/ui/js/od-optimize.js +787 -0
- package/src/superlocalmemory/ui/js/od-settings.js +1107 -0
- package/src/superlocalmemory/ui/js/od-shell.js +809 -0
- package/src/superlocalmemory/ui/js/od-skills.js +600 -0
- package/src/superlocalmemory/ui/js/od-team.js +258 -0
- package/src/superlocalmemory/ui/js/profiles.js +159 -46
- package/src/superlocalmemory/ui/js/settings.js +17 -3
- package/src/superlocalmemory/ui/js/timeline.js +34 -5
- package/src/superlocalmemory/ui/js/trust-dashboard.js +2 -2
- package/src/superlocalmemory/vector/lancedb_backend.py +8 -6
- package/plugin-src/.mcp.json +0 -12
- package/plugin-src/agents/slm-memory-advisor.md +0 -44
- package/plugin-src/agents/slm-optimize-advisor.md +0 -38
- package/plugin-src/hooks/.gitkeep +0 -0
- package/plugin-src/hooks/hooks.json +0 -23
- package/plugin-src/manifest.json +0 -25
- package/plugin-src/requirements.txt +0 -1
- package/plugin-src/rules/CLAUDE.md.fragment +0 -44
- package/plugin-src/scripts/ensure-venv.bat +0 -122
- package/plugin-src/scripts/ensure-venv.sh +0 -105
- package/plugin-src/scripts/slm-launch +0 -23
- package/plugin-src/scripts/slm-launch.bat +0 -23
- package/plugin-src/settings.json +0 -16
- package/src/superlocalmemory/learning/behavioral_listener.py +0 -94
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/* od-bridge.css — OD ↔ Bootstrap integration shims (minimal)
|
|
2
|
+
* Loaded after design-system.css in index.html.
|
|
3
|
+
*
|
|
4
|
+
* What this file does (ONLY things design-system.css does not cover):
|
|
5
|
+
* 1. Bootstrap .tab-content/.tab-pane show/hide — design-system.css does not
|
|
6
|
+
* know about Bootstrap's tab system. Without this, ALL panes are visible.
|
|
7
|
+
* 2. .content overflow-y so the inner content area scrolls while topbar/sidebar
|
|
8
|
+
* stay sticky (design-system.css sets padding+max-width but not overflow).
|
|
9
|
+
* 3. html { overflow-x: hidden } — horizontal scroll guard (Playwright check).
|
|
10
|
+
* 4. Scoped OD card styles for #dashboard-pane only.
|
|
11
|
+
* Bootstrap .card in all other panes keeps neural-glass.css styles unchanged.
|
|
12
|
+
*
|
|
13
|
+
* What this file deliberately does NOT do:
|
|
14
|
+
* - Override .topbar, .sidebar, .nav-link, .star-cta, .site-foot, .kpi, .feed-item
|
|
15
|
+
* → design-system.css owns those; they are already correct and fully responsive.
|
|
16
|
+
* - Change Bootstrap form/input/button primitives → neural-glass.css owns those.
|
|
17
|
+
* - Set colours → design-system.css token layer owns all vars.
|
|
18
|
+
*
|
|
19
|
+
* Mobile sidebar mechanism: design-system.css uses transform: translateX(-100%)
|
|
20
|
+
* (not left: -260px). The od-shell.js toggles .open class; design-system.css
|
|
21
|
+
* handles the animation. Do NOT add conflicting left/position overrides here.
|
|
22
|
+
*
|
|
23
|
+
* Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar — AGPL-3.0
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/* ================================================================
|
|
27
|
+
1. Bootstrap .tab-content / .tab-pane visibility
|
|
28
|
+
Bootstrap normally sets this via js/bootstrap.min.css.
|
|
29
|
+
We replicate the key rules here as a safety guarantee so the
|
|
30
|
+
SPA hide/show works even if Bootstrap's CSS rule order shifts.
|
|
31
|
+
================================================================ */
|
|
32
|
+
.tab-content > .tab-pane {
|
|
33
|
+
display: none;
|
|
34
|
+
}
|
|
35
|
+
.tab-content > .active {
|
|
36
|
+
display: block;
|
|
37
|
+
}
|
|
38
|
+
/* Fade transition (Bootstrap .fade + .show) */
|
|
39
|
+
.tab-content > .tab-pane.fade {
|
|
40
|
+
transition: opacity 0.1s linear;
|
|
41
|
+
}
|
|
42
|
+
.tab-content > .tab-pane.fade:not(.show) {
|
|
43
|
+
opacity: 0;
|
|
44
|
+
}
|
|
45
|
+
.tab-content > .tab-pane.fade.show {
|
|
46
|
+
opacity: 1;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* ================================================================
|
|
50
|
+
2. Content area overflow — make inner column scroll while topbar
|
|
51
|
+
and sidebar stay sticky (design-system.css sets padding/max-width
|
|
52
|
+
but does not set overflow-y).
|
|
53
|
+
================================================================ */
|
|
54
|
+
.content {
|
|
55
|
+
overflow-y: auto;
|
|
56
|
+
flex: 1 1 auto;
|
|
57
|
+
min-height: 0;
|
|
58
|
+
-webkit-overflow-scrolling: touch;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* ================================================================
|
|
62
|
+
3. Horizontal scroll guard
|
|
63
|
+
Prevents content wider than viewport from causing x-scroll.
|
|
64
|
+
Playwright check: document.documentElement.scrollWidth <= clientWidth + 4
|
|
65
|
+
================================================================ */
|
|
66
|
+
html {
|
|
67
|
+
overflow-x: hidden;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* ================================================================
|
|
71
|
+
4. #dashboard-pane scoped OD card styles
|
|
72
|
+
ONLY inside the dashboard pane. All other panes keep Bootstrap
|
|
73
|
+
.card styles from neural-glass.css unmodified.
|
|
74
|
+
|
|
75
|
+
Why scoped? design-system.css defines .card globally with OD
|
|
76
|
+
tokens. Bootstrap's .card in non-OD panes uses its own bg/border.
|
|
77
|
+
Neural-glass.css has already patched those with ng-* vars.
|
|
78
|
+
Scoping to #dashboard-pane lets OD .card win there without
|
|
79
|
+
touching graph-pane, settings-pane, etc.
|
|
80
|
+
================================================================ */
|
|
81
|
+
|
|
82
|
+
/* Override Bootstrap's .card inside the dashboard pane only */
|
|
83
|
+
#dashboard-pane .card {
|
|
84
|
+
background: var(--card, #1a1f2e);
|
|
85
|
+
border: 1px solid var(--border, rgba(255,255,255,0.07));
|
|
86
|
+
border-radius: var(--radius, 12px);
|
|
87
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.12);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Ensure .card-head flex layout works (Bootstrap overrides flex) */
|
|
91
|
+
#dashboard-pane .card-head {
|
|
92
|
+
display: flex !important;
|
|
93
|
+
align-items: center;
|
|
94
|
+
gap: 8px;
|
|
95
|
+
padding: 14px 18px 10px;
|
|
96
|
+
border-bottom: 1px solid var(--border, rgba(255,255,255,0.07));
|
|
97
|
+
flex-wrap: wrap;
|
|
98
|
+
}
|
|
99
|
+
#dashboard-pane .card-head h3 {
|
|
100
|
+
margin: 0;
|
|
101
|
+
font-size: 0.9375rem;
|
|
102
|
+
font-weight: 600;
|
|
103
|
+
color: var(--fg);
|
|
104
|
+
}
|
|
105
|
+
#dashboard-pane .card-head .sub {
|
|
106
|
+
font-size: 0.75rem;
|
|
107
|
+
color: var(--fg-3);
|
|
108
|
+
}
|
|
109
|
+
#dashboard-pane .card-pad {
|
|
110
|
+
padding: 14px 18px;
|
|
111
|
+
}
|
|
112
|
+
/* Bootstrap overrides .spacer if it has a .flex-grow-1 sibling;
|
|
113
|
+
protect the OD spacer element */
|
|
114
|
+
#dashboard-pane .card-head .spacer {
|
|
115
|
+
flex: 1 !important;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* list-row: design-system.css defines it globally but Bootstrap .card-body
|
|
119
|
+
might reset font size; reinforce inside dashboard */
|
|
120
|
+
#dashboard-pane .list-row {
|
|
121
|
+
font-size: 0.8125rem;
|
|
122
|
+
padding: 5px 0;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* .muted inside dashboard → use the OD fg-3 token */
|
|
126
|
+
#dashboard-pane .muted {
|
|
127
|
+
color: var(--fg-3);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* ================================================================
|
|
131
|
+
5. Light-mode adaptation for dashboard OD tokens
|
|
132
|
+
design-system.css [data-theme="light"] overrides --page, --card
|
|
133
|
+
etc. These selectors make the dashboard system-card readable in
|
|
134
|
+
light mode without any ng-glass interference.
|
|
135
|
+
================================================================ */
|
|
136
|
+
[data-theme="light"] #dashboard-pane .page-head h2 {
|
|
137
|
+
color: var(--fg);
|
|
138
|
+
}
|
|
139
|
+
[data-theme="light"] #dashboard-pane .card {
|
|
140
|
+
box-shadow: 0 1px 4px rgba(0,0,0,0.08);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* ================================================================
|
|
144
|
+
6. Bootstrap conflict fix — the OD tables use <tr class="row"> for the
|
|
145
|
+
hover style, but Bootstrap's .row { display:flex } hijacks the row and
|
|
146
|
+
makes every <td> stack vertically. Restore proper table layout.
|
|
147
|
+
================================================================ */
|
|
148
|
+
.tbl tr.row { display: table-row; }
|
|
149
|
+
.tbl tr.row > td { display: table-cell; }
|
|
150
|
+
|
|
151
|
+
/* ================================================================
|
|
152
|
+
7. Bootstrap conflict fix — .nav { display:flex; flex-wrap:wrap } turned
|
|
153
|
+
the vertical sidebar into a horizontal wrap (group labels beside items,
|
|
154
|
+
Health beside Operations). Restore the design's vertical column.
|
|
155
|
+
================================================================ */
|
|
156
|
+
.sidebar .nav { display: block; }
|
|
157
|
+
.sidebar .nav-link { display: flex; width: 100%; }
|
|
158
|
+
.sidebar .nav-group-label { display: block; width: 100%; }
|
|
@@ -1,5 +1,36 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">SuperLocalMemory mark</title>
|
|
3
|
+
<desc id="desc">A local memory core represented by connected evidence nodes in a cyan and violet ring.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="slm-ring" x1="18" y1="18" x2="110" y2="110" gradientUnits="userSpaceOnUse">
|
|
6
|
+
<stop stop-color="#22d3ee"/>
|
|
7
|
+
<stop offset=".52" stop-color="#60a5fa"/>
|
|
8
|
+
<stop offset="1" stop-color="#a78bfa"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
<linearGradient id="slm-core" x1="39" y1="37" x2="91" y2="91" gradientUnits="userSpaceOnUse">
|
|
11
|
+
<stop stop-color="#d9fbff"/>
|
|
12
|
+
<stop offset="1" stop-color="#c4b5fd"/>
|
|
13
|
+
</linearGradient>
|
|
14
|
+
</defs>
|
|
15
|
+
<circle cx="64" cy="64" r="58" fill="#07111f" stroke="url(#slm-ring)" stroke-width="4"/>
|
|
16
|
+
<path d="M33 51c4-15 16-25 31-25 20 0 35 16 35 36 0 17-12 31-28 35" fill="none" stroke="url(#slm-ring)" stroke-linecap="round" stroke-width="4"/>
|
|
17
|
+
<path d="M35 78c6 15 22 24 38 20 9-2 16-8 20-16" fill="none" stroke="url(#slm-ring)" stroke-linecap="round" stroke-width="4" opacity=".82"/>
|
|
18
|
+
<g fill="none" stroke="url(#slm-ring)" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.5">
|
|
19
|
+
<path d="M43 55 58 45l14 10 13-8"/>
|
|
20
|
+
<path d="M43 55v18l15 9 14-9 13 8"/>
|
|
21
|
+
<path d="M58 45v37"/>
|
|
22
|
+
<path d="M72 55v18"/>
|
|
23
|
+
</g>
|
|
24
|
+
<g fill="url(#slm-core)" stroke="#07111f" stroke-width="2">
|
|
25
|
+
<circle cx="43" cy="55" r="6"/>
|
|
26
|
+
<circle cx="58" cy="45" r="6"/>
|
|
27
|
+
<circle cx="72" cy="55" r="6"/>
|
|
28
|
+
<circle cx="85" cy="47" r="6"/>
|
|
29
|
+
<circle cx="43" cy="73" r="6"/>
|
|
30
|
+
<circle cx="58" cy="82" r="6"/>
|
|
31
|
+
<circle cx="72" cy="73" r="6"/>
|
|
32
|
+
<circle cx="85" cy="81" r="6"/>
|
|
33
|
+
</g>
|
|
34
|
+
<circle cx="64" cy="64" r="8" fill="url(#slm-ring)"/>
|
|
35
|
+
<circle cx="64" cy="64" r="3" fill="#f8fafc"/>
|
|
5
36
|
</svg>
|