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.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +48 -0
- package/README.md +3 -3
- package/package.json +1 -8
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/CLAUDE.md +3 -3
- package/plugin/agents/slm-governance-advisor.md +1 -1
- package/plugin/agents/slm-loop-runner.md +1 -1
- package/plugin/agents/slm-memory-advisor.md +1 -1
- package/plugin/agents/slm-optimize-advisor.md +1 -1
- package/plugin/requirements.txt +1 -1
- package/plugin/skills/slm-cache/SKILL.md +1 -1
- package/plugin/skills/slm-compress/SKILL.md +1 -1
- package/plugin/skills/slm-governance/SKILL.md +1 -1
- package/plugin/skills/slm-graph/SKILL.md +1 -1
- package/plugin/skills/slm-loop/SKILL.md +1 -1
- package/plugin/skills/slm-mesh/SKILL.md +1 -1
- package/plugin/skills/slm-profile/SKILL.md +1 -1
- package/plugin/skills/slm-recall/SKILL.md +1 -1
- package/plugin/skills/slm-remember/SKILL.md +1 -1
- package/plugin/skills/slm-scope/SKILL.md +1 -1
- package/plugin/skills/slm-session/SKILL.md +1 -1
- package/plugin/skills/slm-status/SKILL.md +1 -1
- package/plugin-src/agents/slm-memory-advisor.md +1 -1
- package/plugin-src/agents/slm-optimize-advisor.md +1 -1
- package/plugin-src/rules/AGENTS.md +1 -1
- package/plugin-src/skills/slm-cache/SKILL.md +1 -1
- package/plugin-src/skills/slm-compress/SKILL.md +1 -1
- package/plugin-src/skills/slm-governance/SKILL.md +1 -1
- package/plugin-src/skills/slm-graph/SKILL.md +1 -1
- package/plugin-src/skills/slm-loop/SKILL.md +1 -1
- package/plugin-src/skills/slm-mesh/SKILL.md +1 -1
- package/plugin-src/skills/slm-profile/SKILL.md +1 -1
- package/plugin-src/skills/slm-recall/SKILL.md +1 -1
- package/plugin-src/skills/slm-remember/SKILL.md +1 -1
- package/plugin-src/skills/slm-scope/SKILL.md +1 -1
- package/plugin-src/skills/slm-session/SKILL.md +1 -1
- package/plugin-src/skills/slm-status/SKILL.md +1 -1
- package/scripts/postinstall.js +71 -2
- package/pyproject.toml +0 -250
- package/src/superlocalmemory/__init__.py +0 -82
- package/src/superlocalmemory/access/__init__.py +0 -3
- package/src/superlocalmemory/access/rbac.py +0 -575
- package/src/superlocalmemory/attribution/__init__.py +0 -9
- package/src/superlocalmemory/attribution/signer.py +0 -173
- package/src/superlocalmemory/attribution/watermark.py +0 -189
- package/src/superlocalmemory/brain/__init__.py +0 -5
- package/src/superlocalmemory/brain/truth.py +0 -418
- package/src/superlocalmemory/cli/__init__.py +0 -5
- package/src/superlocalmemory/cli/__main__.py +0 -17
- package/src/superlocalmemory/cli/_lazy_init.py +0 -115
- package/src/superlocalmemory/cli/cache_cmd.py +0 -198
- package/src/superlocalmemory/cli/commands.py +0 -4710
- package/src/superlocalmemory/cli/compress_cmd.py +0 -151
- package/src/superlocalmemory/cli/context_commands.py +0 -193
- package/src/superlocalmemory/cli/daemon.py +0 -909
- package/src/superlocalmemory/cli/db_migrate.py +0 -150
- package/src/superlocalmemory/cli/diagnostics_cmd.py +0 -101
- package/src/superlocalmemory/cli/escape_hatch.py +0 -220
- package/src/superlocalmemory/cli/evidence_cmd.py +0 -103
- package/src/superlocalmemory/cli/gdpr_cmd.py +0 -792
- package/src/superlocalmemory/cli/gdpr_io.py +0 -109
- package/src/superlocalmemory/cli/help_cmd.py +0 -197
- package/src/superlocalmemory/cli/host_upgrades.py +0 -189
- package/src/superlocalmemory/cli/ingest_cmd.py +0 -327
- package/src/superlocalmemory/cli/json_output.py +0 -81
- package/src/superlocalmemory/cli/loop_cmd.py +0 -187
- package/src/superlocalmemory/cli/main.py +0 -1145
- package/src/superlocalmemory/cli/mesh_cmd.py +0 -38
- package/src/superlocalmemory/cli/migrate_cmd.py +0 -55
- package/src/superlocalmemory/cli/ops_cmd.py +0 -281
- package/src/superlocalmemory/cli/optimize_cmd.py +0 -179
- package/src/superlocalmemory/cli/optimize_constants.py +0 -31
- package/src/superlocalmemory/cli/pending_store.py +0 -296
- package/src/superlocalmemory/cli/proxy_cmd.py +0 -108
- package/src/superlocalmemory/cli/scale_engine_cmd.py +0 -56
- package/src/superlocalmemory/cli/service_installer.py +0 -373
- package/src/superlocalmemory/cli/setup_wizard.py +0 -1162
- package/src/superlocalmemory/cli/summary_cmd.py +0 -215
- package/src/superlocalmemory/cli/version_banner.py +0 -202
- package/src/superlocalmemory/cli/wizard_v3426_options.py +0 -129
- package/src/superlocalmemory/code_graph/__init__.py +0 -46
- package/src/superlocalmemory/code_graph/blast_radius.py +0 -177
- package/src/superlocalmemory/code_graph/bridge/__init__.py +0 -36
- package/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -490
- package/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -206
- package/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -159
- package/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -170
- package/src/superlocalmemory/code_graph/bridge/maintenance.py +0 -220
- package/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -152
- package/src/superlocalmemory/code_graph/changes.py +0 -363
- package/src/superlocalmemory/code_graph/communities.py +0 -299
- package/src/superlocalmemory/code_graph/config.py +0 -154
- package/src/superlocalmemory/code_graph/database.py +0 -526
- package/src/superlocalmemory/code_graph/extractors/__init__.py +0 -95
- package/src/superlocalmemory/code_graph/extractors/python.py +0 -413
- package/src/superlocalmemory/code_graph/extractors/typescript.py +0 -556
- package/src/superlocalmemory/code_graph/flows.py +0 -350
- package/src/superlocalmemory/code_graph/git_hooks.py +0 -226
- package/src/superlocalmemory/code_graph/graph_engine.py +0 -295
- package/src/superlocalmemory/code_graph/graph_store.py +0 -335
- package/src/superlocalmemory/code_graph/incremental.py +0 -200
- package/src/superlocalmemory/code_graph/models.py +0 -130
- package/src/superlocalmemory/code_graph/parser.py +0 -687
- package/src/superlocalmemory/code_graph/resolver.py +0 -321
- package/src/superlocalmemory/code_graph/search.py +0 -460
- package/src/superlocalmemory/code_graph/service.py +0 -95
- package/src/superlocalmemory/code_graph/watcher.py +0 -207
- package/src/superlocalmemory/compliance/__init__.py +0 -0
- package/src/superlocalmemory/compliance/abac.py +0 -204
- package/src/superlocalmemory/compliance/audit.py +0 -385
- package/src/superlocalmemory/compliance/eu_ai_act.py +0 -101
- package/src/superlocalmemory/compliance/gdpr.py +0 -1479
- package/src/superlocalmemory/compliance/lifecycle.py +0 -158
- package/src/superlocalmemory/compliance/retention.py +0 -415
- package/src/superlocalmemory/compliance/scheduler.py +0 -217
- package/src/superlocalmemory/contracts/__init__.py +0 -1
- package/src/superlocalmemory/contracts/schemas/agent-experience-v1.schema.json +0 -92
- package/src/superlocalmemory/contracts/schemas/agent-integration-contract-v2.schema.json +0 -46
- package/src/superlocalmemory/contracts/schemas/cognitive-turn-receipt-v1.schema.json +0 -59
- package/src/superlocalmemory/contracts/v402.py +0 -62
- package/src/superlocalmemory/core/__init__.py +0 -0
- package/src/superlocalmemory/core/actor_context.py +0 -166
- package/src/superlocalmemory/core/admission.py +0 -769
- package/src/superlocalmemory/core/backend_orchestrator.py +0 -637
- package/src/superlocalmemory/core/block_hygiene.py +0 -147
- package/src/superlocalmemory/core/community_summary.py +0 -267
- package/src/superlocalmemory/core/component_healer.py +0 -144
- package/src/superlocalmemory/core/component_registry.py +0 -514
- package/src/superlocalmemory/core/config.py +0 -2204
- package/src/superlocalmemory/core/consolidation_engine.py +0 -983
- package/src/superlocalmemory/core/context_cache.py +0 -574
- package/src/superlocalmemory/core/derivation_lineage.py +0 -246
- package/src/superlocalmemory/core/embedding_worker.py +0 -208
- package/src/superlocalmemory/core/embeddings.py +0 -1052
- package/src/superlocalmemory/core/engine.py +0 -1395
- package/src/superlocalmemory/core/engine_capabilities.py +0 -24
- package/src/superlocalmemory/core/engine_ingestion.py +0 -983
- package/src/superlocalmemory/core/engine_lock.py +0 -75
- package/src/superlocalmemory/core/engine_wiring.py +0 -776
- package/src/superlocalmemory/core/entity_community.py +0 -178
- package/src/superlocalmemory/core/error_envelope.py +0 -60
- package/src/superlocalmemory/core/evidence_bundle.py +0 -528
- package/src/superlocalmemory/core/fact_consolidator.py +0 -812
- package/src/superlocalmemory/core/file_lock.py +0 -92
- package/src/superlocalmemory/core/graph_analyzer.py +0 -456
- package/src/superlocalmemory/core/graph_metrics.py +0 -597
- package/src/superlocalmemory/core/graph_pruner.py +0 -939
- package/src/superlocalmemory/core/health_monitor.py +0 -338
- package/src/superlocalmemory/core/hooks.py +0 -65
- package/src/superlocalmemory/core/ingest_gate.py +0 -133
- package/src/superlocalmemory/core/ingest_policy.py +0 -38
- package/src/superlocalmemory/core/ingestion_command.py +0 -1042
- package/src/superlocalmemory/core/injection.py +0 -434
- package/src/superlocalmemory/core/install_detector.py +0 -131
- package/src/superlocalmemory/core/key_expander.py +0 -138
- package/src/superlocalmemory/core/lifecycle_state.py +0 -153
- package/src/superlocalmemory/core/maintenance.py +0 -777
- package/src/superlocalmemory/core/maintenance_scheduler.py +0 -507
- package/src/superlocalmemory/core/materialization_control.py +0 -20
- package/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -89
- package/src/superlocalmemory/core/memory_health.py +0 -266
- package/src/superlocalmemory/core/mode_capability.py +0 -111
- package/src/superlocalmemory/core/modes.py +0 -168
- package/src/superlocalmemory/core/mutations.py +0 -688
- package/src/superlocalmemory/core/ollama_embedder.py +0 -266
- package/src/superlocalmemory/core/ollama_validator.py +0 -315
- package/src/superlocalmemory/core/operation_policy.py +0 -92
- package/src/superlocalmemory/core/operation_policy_registry.py +0 -542
- package/src/superlocalmemory/core/operation_request.py +0 -127
- package/src/superlocalmemory/core/ops_remediation.py +0 -542
- package/src/superlocalmemory/core/pii.py +0 -105
- package/src/superlocalmemory/core/platform_utils.py +0 -138
- package/src/superlocalmemory/core/profiles.py +0 -234
- package/src/superlocalmemory/core/progressive_abstraction.py +0 -208
- package/src/superlocalmemory/core/projection_drain.py +0 -380
- package/src/superlocalmemory/core/queue_consumer.py +0 -168
- package/src/superlocalmemory/core/ram_lock.py +0 -160
- package/src/superlocalmemory/core/rate_limit.py +0 -151
- package/src/superlocalmemory/core/recall_gate.py +0 -95
- package/src/superlocalmemory/core/recall_pipeline.py +0 -1337
- package/src/superlocalmemory/core/recall_queue.py +0 -377
- package/src/superlocalmemory/core/recall_worker.py +0 -414
- package/src/superlocalmemory/core/registry.py +0 -121
- package/src/superlocalmemory/core/remember_admission.py +0 -161
- package/src/superlocalmemory/core/remember_runtime.py +0 -1190
- package/src/superlocalmemory/core/remote_mode.py +0 -214
- package/src/superlocalmemory/core/reranker_worker.py +0 -338
- package/src/superlocalmemory/core/safe_fs.py +0 -108
- package/src/superlocalmemory/core/scale_autopromote.py +0 -196
- package/src/superlocalmemory/core/scale_engine.py +0 -915
- package/src/superlocalmemory/core/score_contract.py +0 -82
- package/src/superlocalmemory/core/security_primitives.py +0 -672
- package/src/superlocalmemory/core/session_identity.py +0 -98
- package/src/superlocalmemory/core/shadow_router.py +0 -319
- package/src/superlocalmemory/core/slm_disabled.py +0 -85
- package/src/superlocalmemory/core/status_contract.py +0 -108
- package/src/superlocalmemory/core/store_pipeline.py +0 -1404
- package/src/superlocalmemory/core/summarizer.py +0 -200
- package/src/superlocalmemory/core/tier_manager.py +0 -461
- package/src/superlocalmemory/core/topic_signature.py +0 -156
- package/src/superlocalmemory/core/transactions/__init__.py +0 -78
- package/src/superlocalmemory/core/transactions/concrete_owners.py +0 -604
- package/src/superlocalmemory/core/transactions/erasure.py +0 -825
- package/src/superlocalmemory/core/transactions/manifest.py +0 -255
- package/src/superlocalmemory/core/transactions/manifest_key.py +0 -155
- package/src/superlocalmemory/core/transactions/obligations.py +0 -272
- package/src/superlocalmemory/core/transactions/owners.py +0 -114
- package/src/superlocalmemory/core/transactions/reconciler.py +0 -285
- package/src/superlocalmemory/core/transactions/service.py +0 -330
- package/src/superlocalmemory/core/worker_pool.py +0 -377
- package/src/superlocalmemory/core/working_memory.py +0 -288
- package/src/superlocalmemory/dynamics/__init__.py +0 -0
- package/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -374
- package/src/superlocalmemory/dynamics/eap_scheduler.py +0 -294
- package/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -171
- package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -227
- package/src/superlocalmemory/encoding/__init__.py +0 -0
- package/src/superlocalmemory/encoding/auto_linker.py +0 -308
- package/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -899
- package/src/superlocalmemory/encoding/consolidator.py +0 -472
- package/src/superlocalmemory/encoding/context_generator.py +0 -175
- package/src/superlocalmemory/encoding/emotional.py +0 -189
- package/src/superlocalmemory/encoding/entity_reflexion.py +0 -200
- package/src/superlocalmemory/encoding/entity_resolver.py +0 -687
- package/src/superlocalmemory/encoding/entropy_gate.py +0 -101
- package/src/superlocalmemory/encoding/fact_extractor.py +0 -877
- package/src/superlocalmemory/encoding/foresight.py +0 -93
- package/src/superlocalmemory/encoding/graph_builder.py +0 -346
- package/src/superlocalmemory/encoding/observation_builder.py +0 -177
- package/src/superlocalmemory/encoding/prospective_markers.py +0 -262
- package/src/superlocalmemory/encoding/scene_builder.py +0 -410
- package/src/superlocalmemory/encoding/signal_inference.py +0 -90
- package/src/superlocalmemory/encoding/temporal_parser.py +0 -432
- package/src/superlocalmemory/encoding/temporal_validator.py +0 -572
- package/src/superlocalmemory/encoding/type_router.py +0 -237
- package/src/superlocalmemory/evaluation/__init__.py +0 -13
- package/src/superlocalmemory/evaluation/calibration.py +0 -308
- package/src/superlocalmemory/evolution/__init__.py +0 -29
- package/src/superlocalmemory/evolution/blind_verifier.py +0 -122
- package/src/superlocalmemory/evolution/budget.py +0 -356
- package/src/superlocalmemory/evolution/evolution_store.py +0 -619
- package/src/superlocalmemory/evolution/llm_dispatch.py +0 -559
- package/src/superlocalmemory/evolution/model_selection.py +0 -175
- package/src/superlocalmemory/evolution/mutation_generator.py +0 -226
- package/src/superlocalmemory/evolution/skill_activator.py +0 -270
- package/src/superlocalmemory/evolution/skill_evolver.py +0 -928
- package/src/superlocalmemory/evolution/triggers.py +0 -376
- package/src/superlocalmemory/evolution/types.py +0 -114
- package/src/superlocalmemory/graph/__init__.py +0 -9
- package/src/superlocalmemory/graph/cozo_adjacency.py +0 -122
- package/src/superlocalmemory/graph/cozo_backend.py +0 -751
- package/src/superlocalmemory/hooks/__init__.py +0 -3
- package/src/superlocalmemory/hooks/_outcome_common.py +0 -523
- package/src/superlocalmemory/hooks/adapter_base.py +0 -347
- package/src/superlocalmemory/hooks/antigravity_adapter.py +0 -171
- package/src/superlocalmemory/hooks/auto_capture.py +0 -133
- package/src/superlocalmemory/hooks/auto_invoker.py +0 -521
- package/src/superlocalmemory/hooks/auto_parameterize.py +0 -147
- package/src/superlocalmemory/hooks/auto_recall.py +0 -191
- package/src/superlocalmemory/hooks/auto_recall_hook.py +0 -251
- package/src/superlocalmemory/hooks/before_web_hook.py +0 -131
- package/src/superlocalmemory/hooks/claude_code_hooks.py +0 -637
- package/src/superlocalmemory/hooks/codex_assets.py +0 -251
- package/src/superlocalmemory/hooks/codex_hooks.py +0 -186
- package/src/superlocalmemory/hooks/context_payload.py +0 -311
- package/src/superlocalmemory/hooks/copilot_adapter.py +0 -208
- package/src/superlocalmemory/hooks/cross_platform_connector.py +0 -90
- package/src/superlocalmemory/hooks/cursor_adapter.py +0 -173
- package/src/superlocalmemory/hooks/hook_daemon.py +0 -295
- package/src/superlocalmemory/hooks/hook_handlers.py +0 -822
- package/src/superlocalmemory/hooks/ide_connector.py +0 -246
- package/src/superlocalmemory/hooks/memory_protocol.py +0 -158
- package/src/superlocalmemory/hooks/portable_kit.py +0 -755
- package/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -183
- package/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -351
- package/src/superlocalmemory/hooks/prewarm_auth.py +0 -187
- package/src/superlocalmemory/hooks/rules_engine.py +0 -99
- package/src/superlocalmemory/hooks/session_registry.py +0 -330
- package/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -138
- package/src/superlocalmemory/hooks/sync_loop.py +0 -114
- package/src/superlocalmemory/hooks/topic_shift_hook.py +0 -302
- package/src/superlocalmemory/hooks/user_prompt_hook.py +0 -131
- package/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -210
- package/src/superlocalmemory/infra/__init__.py +0 -3
- package/src/superlocalmemory/infra/auth_middleware.py +0 -145
- package/src/superlocalmemory/infra/backup.py +0 -974
- package/src/superlocalmemory/infra/backup_obligations.py +0 -423
- package/src/superlocalmemory/infra/cache_manager.py +0 -267
- package/src/superlocalmemory/infra/cloud_backup.py +0 -788
- package/src/superlocalmemory/infra/daemon_identity.py +0 -300
- package/src/superlocalmemory/infra/data_root.py +0 -238
- package/src/superlocalmemory/infra/event_bus.py +0 -637
- package/src/superlocalmemory/infra/local_diagnostics.py +0 -327
- package/src/superlocalmemory/infra/pid_manager.py +0 -193
- package/src/superlocalmemory/infra/process_identity.py +0 -180
- package/src/superlocalmemory/infra/process_reaper.py +0 -624
- package/src/superlocalmemory/infra/rate_limiter.py +0 -228
- package/src/superlocalmemory/infra/self_heal.py +0 -401
- package/src/superlocalmemory/infra/version_integrity.py +0 -229
- package/src/superlocalmemory/ingestion/__init__.py +0 -13
- package/src/superlocalmemory/ingestion/adapter_manager.py +0 -255
- package/src/superlocalmemory/ingestion/base_adapter.py +0 -171
- package/src/superlocalmemory/ingestion/calendar_adapter.py +0 -349
- package/src/superlocalmemory/ingestion/credentials.py +0 -125
- package/src/superlocalmemory/ingestion/gmail_adapter.py +0 -378
- package/src/superlocalmemory/ingestion/parsers.py +0 -100
- package/src/superlocalmemory/ingestion/transcript_adapter.py +0 -161
- package/src/superlocalmemory/integrations/__init__.py +0 -1
- package/src/superlocalmemory/integrations/bounded_loops_mcp.py +0 -431
- package/src/superlocalmemory/integrations/bounded_loops_v051.py +0 -236
- package/src/superlocalmemory/learning/__init__.py +0 -0
- package/src/superlocalmemory/learning/adaptive.py +0 -172
- package/src/superlocalmemory/learning/arm_catalog.py +0 -97
- package/src/superlocalmemory/learning/assertion_miner.py +0 -403
- package/src/superlocalmemory/learning/bandit.py +0 -654
- package/src/superlocalmemory/learning/bandit_cache.py +0 -131
- package/src/superlocalmemory/learning/behavioral.py +0 -542
- package/src/superlocalmemory/learning/bootstrap.py +0 -298
- package/src/superlocalmemory/learning/consolidation_cycle.py +0 -398
- package/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -115
- package/src/superlocalmemory/learning/consolidation_worker.py +0 -261
- package/src/superlocalmemory/learning/cross_project.py +0 -408
- package/src/superlocalmemory/learning/database.py +0 -698
- package/src/superlocalmemory/learning/dedup_hnsw.py +0 -413
- package/src/superlocalmemory/learning/engagement.py +0 -487
- package/src/superlocalmemory/learning/engagement_features.py +0 -279
- package/src/superlocalmemory/learning/ensemble.py +0 -309
- package/src/superlocalmemory/learning/entity_compiler.py +0 -356
- package/src/superlocalmemory/learning/fact_outcome_joins.py +0 -207
- package/src/superlocalmemory/learning/features.py +0 -138
- package/src/superlocalmemory/learning/feedback.py +0 -724
- package/src/superlocalmemory/learning/forgetting_scheduler.py +0 -375
- package/src/superlocalmemory/learning/hnsw_dedup.py +0 -69
- package/src/superlocalmemory/learning/labeler.py +0 -85
- package/src/superlocalmemory/learning/legacy_migration.py +0 -316
- package/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -236
- package/src/superlocalmemory/learning/memory_merge.py +0 -175
- package/src/superlocalmemory/learning/model_cache.py +0 -267
- package/src/superlocalmemory/learning/model_rollback.py +0 -281
- package/src/superlocalmemory/learning/outcome_queue.py +0 -306
- package/src/superlocalmemory/learning/outcomes.py +0 -286
- package/src/superlocalmemory/learning/pattern_miner.py +0 -465
- package/src/superlocalmemory/learning/pattern_miner_constants.py +0 -90
- package/src/superlocalmemory/learning/pcos.py +0 -291
- package/src/superlocalmemory/learning/project_context.py +0 -366
- package/src/superlocalmemory/learning/propensity.py +0 -131
- package/src/superlocalmemory/learning/ranker.py +0 -300
- package/src/superlocalmemory/learning/ranker_common.py +0 -163
- package/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -210
- package/src/superlocalmemory/learning/ranker_retrain_online.py +0 -423
- package/src/superlocalmemory/learning/reward.py +0 -888
- package/src/superlocalmemory/learning/reward_archive.py +0 -223
- package/src/superlocalmemory/learning/reward_boost.py +0 -211
- package/src/superlocalmemory/learning/reward_from_outcomes.py +0 -365
- package/src/superlocalmemory/learning/reward_model.py +0 -144
- package/src/superlocalmemory/learning/reward_proxy.py +0 -578
- package/src/superlocalmemory/learning/shadow_test.py +0 -524
- package/src/superlocalmemory/learning/signal_kinds.py +0 -79
- package/src/superlocalmemory/learning/signal_worker.py +0 -268
- package/src/superlocalmemory/learning/signals.py +0 -646
- package/src/superlocalmemory/learning/skill_performance_miner.py +0 -422
- package/src/superlocalmemory/learning/source_quality.py +0 -828
- package/src/superlocalmemory/learning/trigram_index.py +0 -548
- package/src/superlocalmemory/learning/workflows.py +0 -309
- package/src/superlocalmemory/llm/__init__.py +0 -0
- package/src/superlocalmemory/llm/backbone.py +0 -364
- package/src/superlocalmemory/loops/__init__.py +0 -58
- package/src/superlocalmemory/loops/budget.py +0 -58
- package/src/superlocalmemory/loops/engine.py +0 -174
- package/src/superlocalmemory/loops/ledger.py +0 -298
- package/src/superlocalmemory/loops/models.py +0 -152
- package/src/superlocalmemory/loops/rules.py +0 -52
- package/src/superlocalmemory/math/__init__.py +0 -0
- package/src/superlocalmemory/math/ebbinghaus.py +0 -352
- package/src/superlocalmemory/math/fisher.py +0 -356
- package/src/superlocalmemory/math/fisher_quantized.py +0 -255
- package/src/superlocalmemory/math/hopfield.py +0 -282
- package/src/superlocalmemory/math/langevin.py +0 -411
- package/src/superlocalmemory/math/polar_quant.py +0 -414
- package/src/superlocalmemory/math/qjl.py +0 -115
- package/src/superlocalmemory/math/sheaf.py +0 -261
- package/src/superlocalmemory/math/turbo_quant.py +0 -318
- package/src/superlocalmemory/mcp/__init__.py +0 -0
- package/src/superlocalmemory/mcp/_daemon_proxy.py +0 -203
- package/src/superlocalmemory/mcp/_pool_adapter.py +0 -181
- package/src/superlocalmemory/mcp/_stdin_guard.py +0 -60
- package/src/superlocalmemory/mcp/agent_context.py +0 -115
- package/src/superlocalmemory/mcp/cli_fallback.py +0 -602
- package/src/superlocalmemory/mcp/http_transport.py +0 -85
- package/src/superlocalmemory/mcp/profiles.py +0 -154
- package/src/superlocalmemory/mcp/resources.py +0 -281
- package/src/superlocalmemory/mcp/server.py +0 -480
- package/src/superlocalmemory/mcp/session_binding.py +0 -98
- package/src/superlocalmemory/mcp/shared.py +0 -112
- package/src/superlocalmemory/mcp/tools.py +0 -18
- package/src/superlocalmemory/mcp/tools_active.py +0 -958
- package/src/superlocalmemory/mcp/tools_brain.py +0 -298
- package/src/superlocalmemory/mcp/tools_code_graph.py +0 -1717
- package/src/superlocalmemory/mcp/tools_context.py +0 -239
- package/src/superlocalmemory/mcp/tools_core.py +0 -1112
- package/src/superlocalmemory/mcp/tools_evolution.py +0 -343
- package/src/superlocalmemory/mcp/tools_learning.py +0 -393
- package/src/superlocalmemory/mcp/tools_loops.py +0 -345
- package/src/superlocalmemory/mcp/tools_mesh.py +0 -429
- package/src/superlocalmemory/mcp/tools_ops.py +0 -115
- package/src/superlocalmemory/mcp/tools_optimize.py +0 -322
- package/src/superlocalmemory/mcp/tools_summaries.py +0 -147
- package/src/superlocalmemory/mcp/tools_v28.py +0 -292
- package/src/superlocalmemory/mcp/tools_v3.py +0 -398
- package/src/superlocalmemory/mcp/tools_v33.py +0 -507
- package/src/superlocalmemory/mesh/__init__.py +0 -12
- package/src/superlocalmemory/mesh/broker.py +0 -812
- package/src/superlocalmemory/mesh/broker_security.py +0 -470
- package/src/superlocalmemory/mesh/discovery.py +0 -365
- package/src/superlocalmemory/mesh/lock_protocol.py +0 -313
- package/src/superlocalmemory/mesh/node_identity.py +0 -97
- package/src/superlocalmemory/mesh/outbox_remote.py +0 -429
- package/src/superlocalmemory/mesh/remote_sync.py +0 -829
- package/src/superlocalmemory/mesh/state_sync.py +0 -286
- package/src/superlocalmemory/migrations/__init__.py +0 -5
- package/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -144
- package/src/superlocalmemory/optimize/NOTICE +0 -6
- package/src/superlocalmemory/optimize/__init__.py +0 -0
- package/src/superlocalmemory/optimize/adapters/__init__.py +0 -68
- package/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -120
- package/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -112
- package/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -122
- package/src/superlocalmemory/optimize/adapters/wrap.py +0 -228
- package/src/superlocalmemory/optimize/cache/__init__.py +0 -31
- package/src/superlocalmemory/optimize/cache/boundary_store.py +0 -488
- package/src/superlocalmemory/optimize/cache/centroid_store.py +0 -199
- package/src/superlocalmemory/optimize/cache/context_key.py +0 -67
- package/src/superlocalmemory/optimize/cache/exact.py +0 -88
- package/src/superlocalmemory/optimize/cache/invalidation.py +0 -36
- package/src/superlocalmemory/optimize/cache/key_builder.py +0 -111
- package/src/superlocalmemory/optimize/cache/manager.py +0 -737
- package/src/superlocalmemory/optimize/cache/semantic.py +0 -637
- package/src/superlocalmemory/optimize/cache/stampede.py +0 -50
- package/src/superlocalmemory/optimize/compress/__init__.py +0 -17
- package/src/superlocalmemory/optimize/compress/align.py +0 -159
- package/src/superlocalmemory/optimize/compress/ccr.py +0 -116
- package/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -71
- package/src/superlocalmemory/optimize/compress/router.py +0 -667
- package/src/superlocalmemory/optimize/config/__init__.py +0 -56
- package/src/superlocalmemory/optimize/config/defaults.py +0 -43
- package/src/superlocalmemory/optimize/config/schema.py +0 -327
- package/src/superlocalmemory/optimize/config/store.py +0 -270
- package/src/superlocalmemory/optimize/metrics/__init__.py +0 -8
- package/src/superlocalmemory/optimize/metrics/counters.py +0 -155
- package/src/superlocalmemory/optimize/metrics/estimator.py +0 -87
- package/src/superlocalmemory/optimize/metrics/exporters.py +0 -77
- package/src/superlocalmemory/optimize/metrics/persistence.py +0 -115
- package/src/superlocalmemory/optimize/proxy/__init__.py +0 -28
- package/src/superlocalmemory/optimize/proxy/_helpers.py +0 -730
- package/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -375
- package/src/superlocalmemory/optimize/proxy/capture.py +0 -550
- package/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -528
- package/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -126
- package/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -465
- package/src/superlocalmemory/optimize/proxy/server.py +0 -199
- package/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -246
- package/src/superlocalmemory/optimize/storage/__init__.py +0 -0
- package/src/superlocalmemory/optimize/storage/db.py +0 -1185
- package/src/superlocalmemory/optimize/storage/schema.py +0 -205
- package/src/superlocalmemory/parameterization/__init__.py +0 -47
- package/src/superlocalmemory/parameterization/cross_project.py +0 -12
- package/src/superlocalmemory/parameterization/pattern_extractor.py +0 -584
- package/src/superlocalmemory/parameterization/pii_filter.py +0 -106
- package/src/superlocalmemory/parameterization/prompt_injector.py +0 -219
- package/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -281
- package/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -542
- package/src/superlocalmemory/parameterization/workflow_miner.py +0 -17
- package/src/superlocalmemory/reliability/__init__.py +0 -45
- package/src/superlocalmemory/reliability/join_liveness.py +0 -301
- package/src/superlocalmemory/reliability/prior_distance.py +0 -243
- package/src/superlocalmemory/retrieval/__init__.py +0 -0
- package/src/superlocalmemory/retrieval/agentic.py +0 -367
- package/src/superlocalmemory/retrieval/ann_index.py +0 -235
- package/src/superlocalmemory/retrieval/bm25_channel.py +0 -451
- package/src/superlocalmemory/retrieval/bridge_discovery.py +0 -253
- package/src/superlocalmemory/retrieval/channel_registry.py +0 -154
- package/src/superlocalmemory/retrieval/channel_status.py +0 -117
- package/src/superlocalmemory/retrieval/engine.py +0 -1615
- package/src/superlocalmemory/retrieval/entity_channel.py +0 -994
- package/src/superlocalmemory/retrieval/forgetting_filter.py +0 -160
- package/src/superlocalmemory/retrieval/fusion.py +0 -81
- package/src/superlocalmemory/retrieval/graph_adjacency.py +0 -219
- package/src/superlocalmemory/retrieval/hopfield_channel.py +0 -465
- package/src/superlocalmemory/retrieval/profile_channel.py +0 -105
- package/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -147
- package/src/superlocalmemory/retrieval/remote_reranker.py +0 -758
- package/src/superlocalmemory/retrieval/reranker.py +0 -674
- package/src/superlocalmemory/retrieval/scope_policy.py +0 -126
- package/src/superlocalmemory/retrieval/semantic_channel.py +0 -638
- package/src/superlocalmemory/retrieval/spreading.py +0 -288
- package/src/superlocalmemory/retrieval/spreading_activation.py +0 -616
- package/src/superlocalmemory/retrieval/strategy.py +0 -248
- package/src/superlocalmemory/retrieval/temporal_channel.py +0 -433
- package/src/superlocalmemory/retrieval/temporal_frame.py +0 -102
- package/src/superlocalmemory/retrieval/temporal_utils.py +0 -122
- package/src/superlocalmemory/retrieval/temporal_validity_filter.py +0 -499
- package/src/superlocalmemory/retrieval/time_window.py +0 -181
- package/src/superlocalmemory/retrieval/vector_store.py +0 -863
- package/src/superlocalmemory/server/__init__.py +0 -1
- package/src/superlocalmemory/server/api.py +0 -310
- package/src/superlocalmemory/server/asset_versions.py +0 -171
- package/src/superlocalmemory/server/bandit_loops.py +0 -158
- package/src/superlocalmemory/server/config_file.py +0 -90
- package/src/superlocalmemory/server/consolidation_runner.py +0 -140
- package/src/superlocalmemory/server/egress_policy.py +0 -258
- package/src/superlocalmemory/server/loopback.py +0 -85
- package/src/superlocalmemory/server/middleware/__init__.py +0 -11
- package/src/superlocalmemory/server/middleware/security_headers.py +0 -144
- package/src/superlocalmemory/server/origin.py +0 -55
- package/src/superlocalmemory/server/profile_runtime.py +0 -515
- package/src/superlocalmemory/server/rbac_enforce.py +0 -194
- package/src/superlocalmemory/server/recall_health.py +0 -343
- package/src/superlocalmemory/server/recall_serializer.py +0 -320
- package/src/superlocalmemory/server/route_mutations.py +0 -104
- package/src/superlocalmemory/server/routes/__init__.py +0 -4
- package/src/superlocalmemory/server/routes/abstraction.py +0 -314
- package/src/superlocalmemory/server/routes/adapters.py +0 -63
- package/src/superlocalmemory/server/routes/agents.py +0 -303
- package/src/superlocalmemory/server/routes/backup.py +0 -869
- package/src/superlocalmemory/server/routes/behavioral.py +0 -659
- package/src/superlocalmemory/server/routes/brain.py +0 -1892
- package/src/superlocalmemory/server/routes/chat.py +0 -393
- package/src/superlocalmemory/server/routes/compliance.py +0 -533
- package/src/superlocalmemory/server/routes/config_api.py +0 -703
- package/src/superlocalmemory/server/routes/data_io.py +0 -329
- package/src/superlocalmemory/server/routes/entity.py +0 -237
- package/src/superlocalmemory/server/routes/events.py +0 -214
- package/src/superlocalmemory/server/routes/evolution.py +0 -510
- package/src/superlocalmemory/server/routes/helpers.py +0 -499
- package/src/superlocalmemory/server/routes/ingest.py +0 -137
- package/src/superlocalmemory/server/routes/insights.py +0 -366
- package/src/superlocalmemory/server/routes/learning.py +0 -834
- package/src/superlocalmemory/server/routes/learning_telemetry.py +0 -154
- package/src/superlocalmemory/server/routes/lifecycle.py +0 -184
- package/src/superlocalmemory/server/routes/memories.py +0 -1661
- package/src/superlocalmemory/server/routes/mesh.py +0 -517
- package/src/superlocalmemory/server/routes/mesh_lock.py +0 -54
- package/src/superlocalmemory/server/routes/mesh_state.py +0 -63
- package/src/superlocalmemory/server/routes/optimize.py +0 -197
- package/src/superlocalmemory/server/routes/prewarm.py +0 -173
- package/src/superlocalmemory/server/routes/profiles.py +0 -292
- package/src/superlocalmemory/server/routes/ratelimit.py +0 -132
- package/src/superlocalmemory/server/routes/rbac.py +0 -366
- package/src/superlocalmemory/server/routes/stats.py +0 -385
- package/src/superlocalmemory/server/routes/tiers.py +0 -222
- package/src/superlocalmemory/server/routes/timeline.py +0 -258
- package/src/superlocalmemory/server/routes/token.py +0 -90
- package/src/superlocalmemory/server/routes/v3_api.py +0 -3023
- package/src/superlocalmemory/server/routes/ws.py +0 -171
- package/src/superlocalmemory/server/security_middleware.py +0 -89
- package/src/superlocalmemory/server/ui.py +0 -354
- package/src/superlocalmemory/server/unified_daemon.py +0 -6326
- package/src/superlocalmemory/server/write_identity.py +0 -195
- package/src/superlocalmemory/storage/__init__.py +0 -0
- package/src/superlocalmemory/storage/_migration_internals.py +0 -638
- package/src/superlocalmemory/storage/_schema_version.py +0 -174
- package/src/superlocalmemory/storage/access_log.py +0 -170
- package/src/superlocalmemory/storage/admission_codec.py +0 -129
- package/src/superlocalmemory/storage/admission_journal.py +0 -843
- package/src/superlocalmemory/storage/agent_experience.py +0 -546
- package/src/superlocalmemory/storage/backup.py +0 -531
- package/src/superlocalmemory/storage/correction_cases.py +0 -670
- package/src/superlocalmemory/storage/database.py +0 -3180
- package/src/superlocalmemory/storage/deferred_writes.py +0 -209
- package/src/superlocalmemory/storage/embedding_codec.py +0 -200
- package/src/superlocalmemory/storage/embedding_migrator.py +0 -672
- package/src/superlocalmemory/storage/erasure_fence.py +0 -45
- package/src/superlocalmemory/storage/execution_learning.py +0 -285
- package/src/superlocalmemory/storage/external_evidence.py +0 -359
- package/src/superlocalmemory/storage/generation_fence.py +0 -63
- package/src/superlocalmemory/storage/lineage_retention.py +0 -236
- package/src/superlocalmemory/storage/logical_edges.py +0 -86
- package/src/superlocalmemory/storage/memory_write.py +0 -115
- package/src/superlocalmemory/storage/migration_runner.py +0 -895
- package/src/superlocalmemory/storage/migration_v33.py +0 -140
- package/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -67
- package/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -107
- package/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -38
- package/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -46
- package/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -75
- package/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -75
- package/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -63
- package/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -94
- package/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -80
- package/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -87
- package/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -72
- package/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -55
- package/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -45
- package/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -58
- package/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -120
- package/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -79
- package/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -120
- package/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -54
- package/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -52
- package/src/superlocalmemory/storage/migrations/M021_ingestion_log_profile.py +0 -108
- package/src/superlocalmemory/storage/migrations/M022_entity_aliases_profile.py +0 -86
- package/src/superlocalmemory/storage/migrations/M023_mesh_profile_isolation.py +0 -194
- package/src/superlocalmemory/storage/migrations/M024_rbac_users_roles.py +0 -87
- package/src/superlocalmemory/storage/migrations/M025_perf_indexes.py +0 -90
- package/src/superlocalmemory/storage/migrations/M026_rbac_memberships_fk.py +0 -136
- package/src/superlocalmemory/storage/migrations/M027_transferable_patterns_profile.py +0 -163
- package/src/superlocalmemory/storage/migrations/M028_fact_entity_associations.py +0 -305
- package/src/superlocalmemory/storage/migrations/M029_behavioral_history_indexes.py +0 -137
- package/src/superlocalmemory/storage/migrations/M030_entity_explorer_indexes.py +0 -93
- package/src/superlocalmemory/storage/migrations/M031_dead_letter_operations.py +0 -80
- package/src/superlocalmemory/storage/migrations/M032_write_coordinator_admission.py +0 -188
- package/src/superlocalmemory/storage/migrations/M033_projection_transactions.py +0 -148
- package/src/superlocalmemory/storage/migrations/M034_obligation_integrity.py +0 -58
- package/src/superlocalmemory/storage/migrations/M035_erasure_receipts.py +0 -113
- package/src/superlocalmemory/storage/migrations/M036_vector_row_map.py +0 -107
- package/src/superlocalmemory/storage/migrations/M037_manifest_hmac_version.py +0 -162
- package/src/superlocalmemory/storage/migrations/M038_learning_feedback_channel.py +0 -77
- package/src/superlocalmemory/storage/migrations/M039_scene_fact_members.py +0 -137
- package/src/superlocalmemory/storage/migrations/M040_agent_experience_receipts.py +0 -254
- package/src/superlocalmemory/storage/migrations/M041_external_evidence_receipts.py +0 -189
- package/src/superlocalmemory/storage/migrations/M042_correction_case_ledger.py +0 -245
- package/src/superlocalmemory/storage/migrations/M043_quarantine_display_summaries.py +0 -512
- package/src/superlocalmemory/storage/migrations/M044_play_carries_its_own_evidence.py +0 -127
- package/src/superlocalmemory/storage/migrations/M045_fact_outcome_score.py +0 -158
- package/src/superlocalmemory/storage/migrations/M046_prospective_memory_has_its_own_name.py +0 -620
- package/src/superlocalmemory/storage/migrations/M047_fisher_vectors_are_stored_like_every_other_vector.py +0 -306
- package/src/superlocalmemory/storage/migrations/M048_upcoming_holds_only_what_is_upcoming.py +0 -229
- package/src/superlocalmemory/storage/migrations/M049_a_schema_version_marker_is_one_row.py +0 -201
- package/src/superlocalmemory/storage/migrations/M050_execution_learning_v2.py +0 -70
- package/src/superlocalmemory/storage/migrations/__init__.py +0 -103
- package/src/superlocalmemory/storage/migrations.py +0 -333
- package/src/superlocalmemory/storage/models.py +0 -500
- package/src/superlocalmemory/storage/projection_outbox.py +0 -346
- package/src/superlocalmemory/storage/quantized_store.py +0 -280
- package/src/superlocalmemory/storage/read_connection.py +0 -115
- package/src/superlocalmemory/storage/retention_policy.py +0 -860
- package/src/superlocalmemory/storage/schema.py +0 -1108
- package/src/superlocalmemory/storage/schema_code_graph.py +0 -282
- package/src/superlocalmemory/storage/schema_v32.py +0 -382
- package/src/superlocalmemory/storage/schema_v3410.py +0 -159
- package/src/superlocalmemory/storage/schema_v3411.py +0 -149
- package/src/superlocalmemory/storage/schema_v343.py +0 -315
- package/src/superlocalmemory/storage/schema_v345.py +0 -109
- package/src/superlocalmemory/storage/schema_v347.py +0 -140
- package/src/superlocalmemory/storage/sqlite_vectors.py +0 -169
- package/src/superlocalmemory/storage/v2_migrator.py +0 -466
- package/src/superlocalmemory/storage/write_coordinator.py +0 -949
- package/src/superlocalmemory/storage/write_lock.py +0 -88
- package/src/superlocalmemory/summaries/__init__.py +0 -37
- package/src/superlocalmemory/summaries/base.py +0 -267
- package/src/superlocalmemory/summaries/daily_reflection.py +0 -340
- package/src/superlocalmemory/summaries/non_answer.py +0 -223
- package/src/superlocalmemory/summaries/project_work_log.py +0 -440
- package/src/superlocalmemory/summaries/session_summary.py +0 -311
- package/src/superlocalmemory/trust/__init__.py +0 -0
- package/src/superlocalmemory/trust/gate.py +0 -171
- package/src/superlocalmemory/trust/provenance.py +0 -124
- package/src/superlocalmemory/trust/scorer.py +0 -413
- package/src/superlocalmemory/trust/signals.py +0 -153
- package/src/superlocalmemory/ui/assets/slm-icon-white.svg +0 -64
- package/src/superlocalmemory/ui/assets/slm-icon.svg +0 -36
- package/src/superlocalmemory/ui/css/brain.css +0 -409
- package/src/superlocalmemory/ui/css/design-system.css +0 -696
- package/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -663
- package/src/superlocalmemory/ui/css/neural-glass.css +0 -1599
- package/src/superlocalmemory/ui/css/od-bridge.css +0 -158
- package/src/superlocalmemory/ui/favicon.svg +0 -36
- package/src/superlocalmemory/ui/index.html +0 -1638
- package/src/superlocalmemory/ui/js/agents.js +0 -192
- package/src/superlocalmemory/ui/js/auto-settings.js +0 -624
- package/src/superlocalmemory/ui/js/brain.js +0 -1400
- package/src/superlocalmemory/ui/js/clusters.js +0 -326
- package/src/superlocalmemory/ui/js/compliance.js +0 -307
- package/src/superlocalmemory/ui/js/core.js +0 -566
- package/src/superlocalmemory/ui/js/dashboard.js +0 -503
- package/src/superlocalmemory/ui/js/event-delegation.js +0 -113
- package/src/superlocalmemory/ui/js/events.js +0 -178
- package/src/superlocalmemory/ui/js/fact-detail.js +0 -142
- package/src/superlocalmemory/ui/js/feedback.js +0 -339
- package/src/superlocalmemory/ui/js/graph-event-bus.js +0 -83
- package/src/superlocalmemory/ui/js/graph-filters.js +0 -220
- package/src/superlocalmemory/ui/js/graph-ui.js +0 -214
- package/src/superlocalmemory/ui/js/ide-status.js +0 -115
- package/src/superlocalmemory/ui/js/init.js +0 -54
- package/src/superlocalmemory/ui/js/knowledge-graph.js +0 -945
- package/src/superlocalmemory/ui/js/lifecycle.js +0 -387
- package/src/superlocalmemory/ui/js/math-health.js +0 -114
- package/src/superlocalmemory/ui/js/memories.js +0 -394
- package/src/superlocalmemory/ui/js/memory-chat.js +0 -371
- package/src/superlocalmemory/ui/js/memory-timeline.js +0 -265
- package/src/superlocalmemory/ui/js/modal.js +0 -733
- package/src/superlocalmemory/ui/js/ng-entities.js +0 -298
- package/src/superlocalmemory/ui/js/ng-health.js +0 -208
- package/src/superlocalmemory/ui/js/ng-ingestion.js +0 -203
- package/src/superlocalmemory/ui/js/ng-mesh.js +0 -374
- package/src/superlocalmemory/ui/js/ng-shell.js +0 -524
- package/src/superlocalmemory/ui/js/ng-skills.js +0 -663
- package/src/superlocalmemory/ui/js/od-agents.js +0 -588
- package/src/superlocalmemory/ui/js/od-auth-gate.js +0 -257
- package/src/superlocalmemory/ui/js/od-backup.js +0 -878
- package/src/superlocalmemory/ui/js/od-boundedloops.js +0 -324
- package/src/superlocalmemory/ui/js/od-brain.js +0 -1095
- package/src/superlocalmemory/ui/js/od-compliance-ext.js +0 -301
- package/src/superlocalmemory/ui/js/od-components.js +0 -147
- package/src/superlocalmemory/ui/js/od-entities.js +0 -622
- package/src/superlocalmemory/ui/js/od-graph.js +0 -776
- package/src/superlocalmemory/ui/js/od-health.js +0 -579
- package/src/superlocalmemory/ui/js/od-mcp.js +0 -508
- package/src/superlocalmemory/ui/js/od-memories.js +0 -1499
- package/src/superlocalmemory/ui/js/od-mesh.js +0 -645
- package/src/superlocalmemory/ui/js/od-operations.js +0 -1268
- package/src/superlocalmemory/ui/js/od-ops-health.js +0 -417
- package/src/superlocalmemory/ui/js/od-optimize.js +0 -828
- package/src/superlocalmemory/ui/js/od-settings.js +0 -1275
- package/src/superlocalmemory/ui/js/od-shell.js +0 -819
- package/src/superlocalmemory/ui/js/od-skills.js +0 -600
- package/src/superlocalmemory/ui/js/od-team.js +0 -265
- package/src/superlocalmemory/ui/js/optimize.js +0 -191
- package/src/superlocalmemory/ui/js/profiles.js +0 -362
- package/src/superlocalmemory/ui/js/quick-actions.js +0 -334
- package/src/superlocalmemory/ui/js/recall-lab.js +0 -373
- package/src/superlocalmemory/ui/js/search.js +0 -86
- package/src/superlocalmemory/ui/js/settings.js +0 -556
- package/src/superlocalmemory/ui/js/timeline.js +0 -62
- package/src/superlocalmemory/ui/js/trust-dashboard.js +0 -225
- package/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -2018
- package/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- package/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- package/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -7
- package/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -6
- package/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -2
- package/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -2
- package/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -2
- package/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -8
- package/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- package/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- package/src/superlocalmemory/ui/vendor/sigma.min.js +0 -1
- package/src/superlocalmemory/vector/__init__.py +0 -9
- package/src/superlocalmemory/vector/lancedb_backend.py +0 -366
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
|
|
2
|
-
# Licensed under AGPL-3.0-or-later - see LICENSE file
|
|
3
|
-
# Part of SuperLocalMemory v3.4.22 — LLD-06 §7.2
|
|
4
|
-
|
|
5
|
-
"""CLI handler for ``slm db migrate``.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Thin wrapper over the canonical runner in
|
|
9
|
-
``superlocalmemory.storage.migration_runner``. This module owns only
|
|
10
|
-
the user-facing surface (stdout formatting + exit codes). All DDL +
|
|
11
|
-
runner logic lives in LLD-07 territory — per H15, no migration schema
|
|
12
|
-
is defined or duplicated here.
|
|
13
|
-
"""
|
|
14
|
-
from __future__ import annotations
|
|
15
|
-
|
|
16
|
-
from argparse import Namespace
|
|
17
|
-
from pathlib import Path
|
|
18
|
-
|
|
19
|
-
from superlocalmemory.infra.data_root import DynamicStatePath
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# Canonical paths — match LLD-01 / LLD-07 layout. Callers can override
|
|
23
|
-
# via the ``learning_db_path`` / ``memory_db_path`` attributes on args
|
|
24
|
-
# (tests rely on this to point at fixture DBs).
|
|
25
|
-
DEFAULT_HOME = DynamicStatePath()
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
def _resolve_paths(args: Namespace) -> tuple[Path, Path]:
|
|
29
|
-
learning = getattr(args, "learning_db_path", None)
|
|
30
|
-
memory = getattr(args, "memory_db_path", None)
|
|
31
|
-
if learning is None:
|
|
32
|
-
learning = DEFAULT_HOME / "learning.db"
|
|
33
|
-
if memory is None:
|
|
34
|
-
memory = DEFAULT_HOME / "memory.db"
|
|
35
|
-
return Path(learning), Path(memory)
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def _end_state_disagreements(learning_db, memory_db) -> dict[str, str]:
|
|
39
|
-
"""Migrations recorded complete whose own verification no longer passes.
|
|
40
|
-
|
|
41
|
-
``--status`` reads ``migration_log``, which records what was *done*. The
|
|
42
|
-
daemon re-runs each completed migration's ``verify()`` on every start, which
|
|
43
|
-
checks whether what was done still *holds*. When those two answers differ
|
|
44
|
-
the log says ``complete`` and the health endpoint says the migration failed,
|
|
45
|
-
and until now nothing on any surface showed the two were even asking
|
|
46
|
-
different questions -- so the only available reading was that one of them
|
|
47
|
-
was lying. Reported as #125.
|
|
48
|
-
|
|
49
|
-
Read-only and fail-quiet: this is a diagnostic printed beside a status line,
|
|
50
|
-
and it must never be the reason a status command exits non-zero.
|
|
51
|
-
"""
|
|
52
|
-
import sqlite3
|
|
53
|
-
|
|
54
|
-
from superlocalmemory.storage._migration_internals import _MODULES
|
|
55
|
-
from superlocalmemory.storage.migration_runner import MIGRATIONS
|
|
56
|
-
|
|
57
|
-
try:
|
|
58
|
-
from superlocalmemory.storage.migration_runner import DEFERRED_MIGRATIONS
|
|
59
|
-
except ImportError: # pragma: no cover — older layouts
|
|
60
|
-
DEFERRED_MIGRATIONS = ()
|
|
61
|
-
|
|
62
|
-
out: dict[str, str] = {}
|
|
63
|
-
for migration in list(MIGRATIONS) + list(DEFERRED_MIGRATIONS):
|
|
64
|
-
verify_fn = getattr(_MODULES.get(migration.name), "verify", None)
|
|
65
|
-
if not callable(verify_fn):
|
|
66
|
-
continue
|
|
67
|
-
db_path = memory_db if migration.db_target != "learning" else learning_db
|
|
68
|
-
try:
|
|
69
|
-
conn = sqlite3.connect(f"file:{db_path}?mode=ro", uri=True)
|
|
70
|
-
except sqlite3.Error:
|
|
71
|
-
continue
|
|
72
|
-
try:
|
|
73
|
-
row = conn.execute(
|
|
74
|
-
"SELECT status FROM migration_log WHERE name = ? LIMIT 1",
|
|
75
|
-
(migration.name,),
|
|
76
|
-
).fetchone()
|
|
77
|
-
if not row or row[0] != "complete":
|
|
78
|
-
continue
|
|
79
|
-
if not bool(verify_fn(conn)):
|
|
80
|
-
out[migration.name] = " <- recorded complete, end-state no longer holds"
|
|
81
|
-
except Exception: # noqa: BLE001 — a diagnostic must not break status
|
|
82
|
-
pass
|
|
83
|
-
finally:
|
|
84
|
-
try:
|
|
85
|
-
conn.close()
|
|
86
|
-
except sqlite3.Error: # pragma: no cover
|
|
87
|
-
pass
|
|
88
|
-
return out
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
def cmd_db_migrate(args: Namespace) -> int:
|
|
92
|
-
"""Apply pending migrations or report status.
|
|
93
|
-
|
|
94
|
-
Behaviour:
|
|
95
|
-
- ``--status`` prints the per-migration status recorded in each
|
|
96
|
-
DB's ``migration_log``. Exit 0 unless reading fails.
|
|
97
|
-
- ``--dry-run`` runs the runner in dry-run mode (no writes).
|
|
98
|
-
- Default: runs ``apply_all``.
|
|
99
|
-
|
|
100
|
-
Exit codes (also returned for tests that capture return value):
|
|
101
|
-
- 0 on success (no failed migrations).
|
|
102
|
-
- 1 if any migration is reported as ``failed``.
|
|
103
|
-
"""
|
|
104
|
-
from superlocalmemory.storage.migration_runner import apply_all, status
|
|
105
|
-
|
|
106
|
-
learning_db, memory_db = _resolve_paths(args)
|
|
107
|
-
|
|
108
|
-
if getattr(args, "status", False):
|
|
109
|
-
report = status(learning_db, memory_db)
|
|
110
|
-
if not report:
|
|
111
|
-
print("(no migrations registered)")
|
|
112
|
-
else:
|
|
113
|
-
disagreements = _end_state_disagreements(learning_db, memory_db)
|
|
114
|
-
for name, state in report.items():
|
|
115
|
-
note = disagreements.get(name, "")
|
|
116
|
-
print(f" {name}: {state}{note}")
|
|
117
|
-
if disagreements:
|
|
118
|
-
print()
|
|
119
|
-
print(
|
|
120
|
-
" A migration marked complete is re-checked on every start "
|
|
121
|
-
"by its own\n"
|
|
122
|
-
" verification. The ones flagged above are recorded as done "
|
|
123
|
-
"and their\n"
|
|
124
|
-
" end-state no longer holds, which is what the daemon "
|
|
125
|
-
"reports as a\n"
|
|
126
|
-
" migration failure while this log still reads complete. "
|
|
127
|
-
"Run `slm db\n"
|
|
128
|
-
" migrate` to let each one try to repair itself, and see "
|
|
129
|
-
"`migration_failure_reasons`\n"
|
|
130
|
-
" in `slm health --json` for what specifically did not hold."
|
|
131
|
-
)
|
|
132
|
-
return 0
|
|
133
|
-
|
|
134
|
-
dry_run = bool(getattr(args, "dry_run", False))
|
|
135
|
-
result = apply_all(learning_db, memory_db, dry_run=dry_run)
|
|
136
|
-
applied = result.get("applied", [])
|
|
137
|
-
skipped = result.get("skipped", [])
|
|
138
|
-
failed = result.get("failed", [])
|
|
139
|
-
print(
|
|
140
|
-
f"Applied={len(applied)} Skipped={len(skipped)} Failed={len(failed)}"
|
|
141
|
-
)
|
|
142
|
-
if failed:
|
|
143
|
-
details = result.get("details", {})
|
|
144
|
-
for name in failed:
|
|
145
|
-
print(f" FAILED {name}: {details.get(name, '(no detail)')}")
|
|
146
|
-
return 1
|
|
147
|
-
return 0
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
__all__ = ("cmd_db_migrate", "DEFAULT_HOME")
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
|
|
2
|
-
# Licensed under AGPL-3.0-or-later - see LICENSE file
|
|
3
|
-
|
|
4
|
-
"""Explicit manual export for local aggregate diagnostics."""
|
|
5
|
-
|
|
6
|
-
from __future__ import annotations
|
|
7
|
-
|
|
8
|
-
from argparse import Namespace
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def cmd_diagnostics(args: Namespace) -> None:
|
|
12
|
-
action = getattr(args, "diagnostics_command", None)
|
|
13
|
-
if action == "reliability":
|
|
14
|
-
_cmd_reliability(args)
|
|
15
|
-
return
|
|
16
|
-
if action != "export":
|
|
17
|
-
raise SystemExit("choose a diagnostics subcommand: export, reliability")
|
|
18
|
-
|
|
19
|
-
from superlocalmemory.cli.json_output import json_print
|
|
20
|
-
from superlocalmemory.infra.local_diagnostics import default_diagnostics
|
|
21
|
-
|
|
22
|
-
default_diagnostics().export_json(args.destination)
|
|
23
|
-
data = {"exported": True, "reporting": "manual_export_only"}
|
|
24
|
-
if bool(getattr(args, "json", False)):
|
|
25
|
-
json_print("diagnostics", data=data)
|
|
26
|
-
return
|
|
27
|
-
print("Local aggregate diagnostics exported by explicit request.")
|
|
28
|
-
print("No automatic reporting was enabled.")
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def _cmd_reliability(args: Namespace) -> None:
|
|
32
|
-
"""Report whether wired mechanisms are effective, not merely present.
|
|
33
|
-
|
|
34
|
-
``implemented``, ``reachable`` and ``effective`` are three different
|
|
35
|
-
questions. A grep answers the first and an import answers the second; only
|
|
36
|
-
querying this store answers the third. Both checks are read-only.
|
|
37
|
-
"""
|
|
38
|
-
from superlocalmemory.cli.json_output import json_print
|
|
39
|
-
from superlocalmemory.infra.data_root import state_path
|
|
40
|
-
from superlocalmemory.reliability import (
|
|
41
|
-
DEFAULT_MIN_OBSERVATIONS,
|
|
42
|
-
check_beta_learners,
|
|
43
|
-
check_schema_guards,
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
floor = getattr(args, "min_observations", None) or DEFAULT_MIN_OBSERVATIONS
|
|
47
|
-
learners = check_beta_learners(state_path("learning.db"), min_observations=floor)
|
|
48
|
-
guards = check_schema_guards(state_path("memory.db"))
|
|
49
|
-
|
|
50
|
-
payload = {
|
|
51
|
-
"learners": [
|
|
52
|
-
{
|
|
53
|
-
"table": v.table,
|
|
54
|
-
"verdict": v.verdict,
|
|
55
|
-
"units": v.units,
|
|
56
|
-
"units_at_prior_mean": v.units_at_prior_mean,
|
|
57
|
-
"units_matching_neutral_identity": v.units_matching_neutral_identity,
|
|
58
|
-
"observations": v.observations,
|
|
59
|
-
"detail": v.detail,
|
|
60
|
-
}
|
|
61
|
-
for v in learners
|
|
62
|
-
],
|
|
63
|
-
"schema_guards": [
|
|
64
|
-
{
|
|
65
|
-
"name": g.name,
|
|
66
|
-
"verdict": g.verdict,
|
|
67
|
-
"missing": list(g.missing),
|
|
68
|
-
"found_elsewhere": [
|
|
69
|
-
{
|
|
70
|
-
"table": tbl,
|
|
71
|
-
"column": col,
|
|
72
|
-
"populated_rows": n,
|
|
73
|
-
# -1 when coverage over the guarded table could not be
|
|
74
|
-
# measured. Populated rows alone overstate the remedy.
|
|
75
|
-
"coverage_pct_of_guarded_table": cov,
|
|
76
|
-
}
|
|
77
|
-
for tbl, col, n, cov in g.found_elsewhere
|
|
78
|
-
],
|
|
79
|
-
"detail": g.detail,
|
|
80
|
-
}
|
|
81
|
-
for g in guards
|
|
82
|
-
],
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if bool(getattr(args, "json", False)):
|
|
86
|
-
json_print("diagnostics-reliability", data=payload)
|
|
87
|
-
return
|
|
88
|
-
|
|
89
|
-
if not learners and not guards:
|
|
90
|
-
print("No Bayesian learners or schema-guarded paths found in this store.")
|
|
91
|
-
return
|
|
92
|
-
|
|
93
|
-
for v in learners:
|
|
94
|
-
print(f"[{v.verdict}] {v.table}")
|
|
95
|
-
print(f" {v.detail}")
|
|
96
|
-
for g in guards:
|
|
97
|
-
print(f"[{g.verdict}] {g.name}")
|
|
98
|
-
print(f" {g.detail}")
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
__all__ = ["cmd_diagnostics"]
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
|
|
2
|
-
# Licensed under AGPL-3.0-or-later - see LICENSE file
|
|
3
|
-
# Part of SuperLocalMemory v3.4.22 — Stage 8 SB-5
|
|
4
|
-
|
|
5
|
-
"""CLI escape-hatch commands.
|
|
6
|
-
|
|
7
|
-
Implements the user-facing kill switches and reset commands promised
|
|
8
|
-
by MASTER-PLAN §8 that were previously advertised but missing:
|
|
9
|
-
|
|
10
|
-
- ``slm disable`` — write ``~/.superlocalmemory/.disabled`` marker
|
|
11
|
-
and stop the daemon. Hooks and MCP tools no-op until re-enabled.
|
|
12
|
-
- ``slm enable`` — remove the marker; prompt user to start daemon.
|
|
13
|
-
- ``slm clear-cache`` — wipe cache-only databases (preserves memory.db
|
|
14
|
-
— user memories are NEVER deleted here).
|
|
15
|
-
- ``slm reconfigure`` — invoke the interactive postinstall with the
|
|
16
|
-
``--reconfigure`` flag so users can change profile/knobs safely.
|
|
17
|
-
- ``slm benchmark`` — run the evo-memory benchmark harness against
|
|
18
|
-
an isolated tmp DB (never touches ``~/.superlocalmemory``).
|
|
19
|
-
|
|
20
|
-
All handlers are stdlib-only at the command boundary; import heavier
|
|
21
|
-
modules lazily inside each function so CLI help stays snappy.
|
|
22
|
-
"""
|
|
23
|
-
|
|
24
|
-
from __future__ import annotations
|
|
25
|
-
|
|
26
|
-
import os
|
|
27
|
-
import shutil
|
|
28
|
-
import subprocess
|
|
29
|
-
import sys
|
|
30
|
-
from argparse import Namespace
|
|
31
|
-
from pathlib import Path
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def cmd_disable(args: Namespace) -> None:
|
|
35
|
-
"""Write the ``.disabled`` marker and stop the daemon."""
|
|
36
|
-
from superlocalmemory.core.slm_disabled import write_marker, is_disabled
|
|
37
|
-
|
|
38
|
-
reason = getattr(args, "reason", "") or ""
|
|
39
|
-
marker = write_marker(reason)
|
|
40
|
-
print(f"SLM disabled. Marker: {marker}")
|
|
41
|
-
|
|
42
|
-
# Best-effort daemon stop — non-fatal.
|
|
43
|
-
try:
|
|
44
|
-
from superlocalmemory.cli.daemon import stop_daemon
|
|
45
|
-
if stop_daemon():
|
|
46
|
-
print("Daemon stopped.")
|
|
47
|
-
except Exception as exc: # pragma: no cover — defensive
|
|
48
|
-
print(f"(daemon stop skipped: {exc})", file=sys.stderr)
|
|
49
|
-
|
|
50
|
-
# Sanity check
|
|
51
|
-
if not is_disabled(): # pragma: no cover
|
|
52
|
-
print("warning: disable marker wrote but is_disabled() returned False",
|
|
53
|
-
file=sys.stderr)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
def cmd_enable(args: Namespace) -> None:
|
|
57
|
-
"""Remove the ``.disabled`` marker. Daemon is NOT auto-started —
|
|
58
|
-
print the one-liner so the user can start it when ready."""
|
|
59
|
-
from superlocalmemory.core.slm_disabled import remove_marker, marker_path
|
|
60
|
-
|
|
61
|
-
removed = remove_marker()
|
|
62
|
-
if removed:
|
|
63
|
-
print("SLM enabled. To start the daemon: slm serve start")
|
|
64
|
-
else:
|
|
65
|
-
print(f"SLM was already enabled (no marker at {marker_path()}).")
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
_CACHE_DBS = (
|
|
69
|
-
"active_brain_cache.db",
|
|
70
|
-
"context_cache.db",
|
|
71
|
-
"entity_trigram_cache.db",
|
|
72
|
-
)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def cmd_clear_cache(args: Namespace) -> None:
|
|
76
|
-
"""Delete cache-only DBs. Preserves ``memory.db`` and ``learning.db``.
|
|
77
|
-
|
|
78
|
-
This is an explicitly non-destructive command — user memories live
|
|
79
|
-
in ``memory.db`` which is NEVER touched here. Only regenerable
|
|
80
|
-
caches are wiped so SLM can rebuild them on next daemon start.
|
|
81
|
-
"""
|
|
82
|
-
from superlocalmemory.core.slm_disabled import _slm_home
|
|
83
|
-
|
|
84
|
-
home = _slm_home()
|
|
85
|
-
removed: list[str] = []
|
|
86
|
-
missing: list[str] = []
|
|
87
|
-
protected = {"memory.db", "learning.db", "audit.db", "audit_chain.db",
|
|
88
|
-
"pending.db"}
|
|
89
|
-
for name in _CACHE_DBS:
|
|
90
|
-
if name in protected: # pragma: no cover — defensive belt
|
|
91
|
-
continue
|
|
92
|
-
path = home / name
|
|
93
|
-
try:
|
|
94
|
-
path.unlink()
|
|
95
|
-
removed.append(name)
|
|
96
|
-
except FileNotFoundError:
|
|
97
|
-
missing.append(name)
|
|
98
|
-
except OSError as exc:
|
|
99
|
-
print(f" skip {name}: {exc}", file=sys.stderr)
|
|
100
|
-
|
|
101
|
-
if removed:
|
|
102
|
-
print("Removed cache DBs:")
|
|
103
|
-
for name in removed:
|
|
104
|
-
print(f" - {name}")
|
|
105
|
-
else:
|
|
106
|
-
print("No cache DBs present — nothing to do.")
|
|
107
|
-
print("memory.db / learning.db preserved (user memories are never "
|
|
108
|
-
"touched by clear-cache).")
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
def cmd_reconfigure(args: Namespace) -> None:
|
|
112
|
-
"""Re-run the interactive postinstall with ``--reconfigure``.
|
|
113
|
-
|
|
114
|
-
Backs up the existing ``config.toml`` to ``config.toml.bak`` before
|
|
115
|
-
writing the new one.
|
|
116
|
-
"""
|
|
117
|
-
script = _find_postinstall_script()
|
|
118
|
-
if script is None:
|
|
119
|
-
print("postinstall-interactive.js not found; reinstall the npm "
|
|
120
|
-
"package to run this command.", file=sys.stderr)
|
|
121
|
-
sys.exit(2)
|
|
122
|
-
|
|
123
|
-
cmd = ["node", str(script), "--reconfigure"]
|
|
124
|
-
# Pass through any extra CLI flags untouched.
|
|
125
|
-
extras = getattr(args, "extras", None) or []
|
|
126
|
-
cmd.extend(extras)
|
|
127
|
-
result = subprocess.run(cmd, check=False)
|
|
128
|
-
sys.exit(result.returncode)
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
def _find_postinstall_script() -> Path | None:
|
|
132
|
-
"""Locate ``scripts/postinstall-interactive.js`` next to the package."""
|
|
133
|
-
# 1. Walk up from this file.
|
|
134
|
-
here = Path(__file__).resolve()
|
|
135
|
-
for parent in here.parents:
|
|
136
|
-
candidate = parent / "scripts" / "postinstall-interactive.js"
|
|
137
|
-
if candidate.is_file():
|
|
138
|
-
return candidate
|
|
139
|
-
# 2. npm global-install layout — sibling of the bin dir.
|
|
140
|
-
bin_path = shutil.which("slm")
|
|
141
|
-
if bin_path:
|
|
142
|
-
bin_dir = Path(bin_path).resolve().parent
|
|
143
|
-
candidate = bin_dir.parent / "lib" / "node_modules" / \
|
|
144
|
-
"superlocalmemory" / "scripts" / "postinstall-interactive.js"
|
|
145
|
-
if candidate.is_file():
|
|
146
|
-
return candidate
|
|
147
|
-
return None
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
def cmd_benchmark(args: Namespace) -> None:
|
|
151
|
-
"""Run the evo-memory benchmark harness against an isolated tmp DB.
|
|
152
|
-
|
|
153
|
-
The benchmark refuses to touch the user's ``~/.superlocalmemory`` —
|
|
154
|
-
it spins up its own tmp_path DB, runs day-0 → day-30 simulation,
|
|
155
|
-
prints MRR / Recall / lift tiers, and exits. CI-safe.
|
|
156
|
-
"""
|
|
157
|
-
# Import locally — keeps the CLI top-level light.
|
|
158
|
-
try:
|
|
159
|
-
# The harness lives in the test tree so we add it to sys.path lazily.
|
|
160
|
-
repo_root = Path(__file__).resolve().parents[3]
|
|
161
|
-
tests_dir = repo_root / "tests" / "test_benchmarks"
|
|
162
|
-
if tests_dir.is_dir() and str(tests_dir) not in sys.path:
|
|
163
|
-
sys.path.insert(0, str(tests_dir))
|
|
164
|
-
from evo_memory import EvoMemoryBenchmark # type: ignore
|
|
165
|
-
except ImportError as exc:
|
|
166
|
-
print(f"evo-memory harness not available in this install "
|
|
167
|
-
f"(bench fixture excluded from binary wheels): {exc}",
|
|
168
|
-
file=sys.stderr)
|
|
169
|
-
sys.exit(2)
|
|
170
|
-
|
|
171
|
-
import json
|
|
172
|
-
import tempfile
|
|
173
|
-
as_json = bool(getattr(args, "json", False))
|
|
174
|
-
|
|
175
|
-
with tempfile.TemporaryDirectory(prefix="slm-bench-") as d:
|
|
176
|
-
bench = EvoMemoryBenchmark(profile_id="bench_v1", data_dir=Path(d))
|
|
177
|
-
result = bench.run_full_30_day_simulation()
|
|
178
|
-
|
|
179
|
-
if as_json:
|
|
180
|
-
print(json.dumps(result, default=str))
|
|
181
|
-
return
|
|
182
|
-
|
|
183
|
-
print("== Evo-Memory Benchmark ==")
|
|
184
|
-
print(f"fixture: {result.get('fixture_version', 'v1')}")
|
|
185
|
-
print(f"wall_seconds: {result.get('wall_seconds'):.2f}")
|
|
186
|
-
cmp = result.get("comparison", {})
|
|
187
|
-
print(f"day_1 MRR@10: {cmp.get('day_1_mrr', 0):.4f}")
|
|
188
|
-
print(f"day_30 MRR@10: {cmp.get('day_n_mrr', 0):.4f}")
|
|
189
|
-
print(f"lift: {cmp.get('mrr_lift_pct', 0):.2f}% "
|
|
190
|
-
f"(gate: {'STABLE' if cmp.get('passes_10pct_gate') else 'DRAFT'})")
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
def cmd_rotate_token(args: Namespace) -> None:
|
|
194
|
-
"""S-M07: rotate the install token.
|
|
195
|
-
|
|
196
|
-
Prints the new token's last-4 suffix for operator audit + a line
|
|
197
|
-
reminding the user to restart the daemon so HMAC marker caches
|
|
198
|
-
converge on the new token.
|
|
199
|
-
"""
|
|
200
|
-
from superlocalmemory.core.security_primitives import rotate_install_token
|
|
201
|
-
old, new = rotate_install_token()
|
|
202
|
-
if not new:
|
|
203
|
-
print("install-token rotation failed (check permissions on "
|
|
204
|
-
"~/.superlocalmemory/.install_token)")
|
|
205
|
-
return
|
|
206
|
-
old_tail = old[-4:] if old else "(absent)"
|
|
207
|
-
new_tail = new[-4:]
|
|
208
|
-
print(f"install-token rotated: ...{old_tail} -> ...{new_tail}")
|
|
209
|
-
print("NOTE: restart the daemon so HMAC marker caches pick up "
|
|
210
|
-
"the new token (run: slm restart).")
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
__all__ = (
|
|
214
|
-
"cmd_disable",
|
|
215
|
-
"cmd_enable",
|
|
216
|
-
"cmd_clear_cache",
|
|
217
|
-
"cmd_reconfigure",
|
|
218
|
-
"cmd_benchmark",
|
|
219
|
-
"cmd_rotate_token",
|
|
220
|
-
)
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2026 Varun Pratap Bhardwaj / Qualixar
|
|
2
|
-
# Licensed under AGPL-3.0-or-later - see LICENSE file
|
|
3
|
-
|
|
4
|
-
"""CLI for versioned evidence export, verification, import, and rebuild."""
|
|
5
|
-
|
|
6
|
-
from __future__ import annotations
|
|
7
|
-
|
|
8
|
-
import json
|
|
9
|
-
from argparse import Namespace
|
|
10
|
-
from pathlib import Path
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def _database():
|
|
14
|
-
from superlocalmemory.core.config import SLMConfig
|
|
15
|
-
from superlocalmemory.storage.database import DatabaseManager
|
|
16
|
-
|
|
17
|
-
config = SLMConfig.load()
|
|
18
|
-
return DatabaseManager(config.db_path)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def _emit(value: dict, *, as_json: bool) -> None:
|
|
22
|
-
if as_json:
|
|
23
|
-
print(json.dumps(value, sort_keys=True))
|
|
24
|
-
return
|
|
25
|
-
for key, item in value.items():
|
|
26
|
-
print(f"{key}: {item}")
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def cmd_evidence(args: Namespace) -> None:
|
|
30
|
-
"""Dispatch ``slm evidence`` without implicit destructive behavior."""
|
|
31
|
-
from superlocalmemory.core.evidence_bundle import (
|
|
32
|
-
export_evidence_bundle,
|
|
33
|
-
import_evidence_bundle,
|
|
34
|
-
rebuild_derived_state,
|
|
35
|
-
verify_evidence_bundle,
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
action = getattr(args, "evidence_command", None)
|
|
39
|
-
as_json = bool(getattr(args, "json", False))
|
|
40
|
-
profile = str(getattr(args, "profile", "default") or "default")
|
|
41
|
-
|
|
42
|
-
if action == "verify":
|
|
43
|
-
report = verify_evidence_bundle(args.bundle)
|
|
44
|
-
_emit({
|
|
45
|
-
"valid": report.valid,
|
|
46
|
-
"bundle_id": report.bundle_id,
|
|
47
|
-
"counts": report.counts,
|
|
48
|
-
"errors": list(report.errors),
|
|
49
|
-
"warnings": list(report.warnings),
|
|
50
|
-
}, as_json=as_json)
|
|
51
|
-
if not report.valid:
|
|
52
|
-
raise SystemExit(1)
|
|
53
|
-
return
|
|
54
|
-
|
|
55
|
-
if action == "export":
|
|
56
|
-
db = _database()
|
|
57
|
-
if not Path(db.db_path).is_file():
|
|
58
|
-
raise SystemExit(f"memory database not found: {db.db_path}")
|
|
59
|
-
manifest = export_evidence_bundle(db, profile, args.destination)
|
|
60
|
-
_emit({
|
|
61
|
-
"bundle_id": manifest["bundle_id"],
|
|
62
|
-
"profile_id": profile,
|
|
63
|
-
"destination": str(Path(args.destination).resolve()),
|
|
64
|
-
"unresolved_source_links": manifest["unresolved_source_links"],
|
|
65
|
-
}, as_json=as_json)
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
if action == "import":
|
|
69
|
-
if not bool(getattr(args, "execute", False)):
|
|
70
|
-
print(
|
|
71
|
-
"Dry run only. Verify the bundle, then re-run with --execute; "
|
|
72
|
-
"replacement also requires --rollback-dir."
|
|
73
|
-
)
|
|
74
|
-
return
|
|
75
|
-
report = import_evidence_bundle(
|
|
76
|
-
_database(),
|
|
77
|
-
args.bundle,
|
|
78
|
-
target_profile_id=profile,
|
|
79
|
-
replace=bool(getattr(args, "replace", False)),
|
|
80
|
-
rollback_dir=getattr(args, "rollback_dir", None),
|
|
81
|
-
)
|
|
82
|
-
_emit({
|
|
83
|
-
"valid": report.valid,
|
|
84
|
-
"bundle_id": report.bundle_id,
|
|
85
|
-
"profile_id": profile,
|
|
86
|
-
"counts": report.counts,
|
|
87
|
-
}, as_json=as_json)
|
|
88
|
-
return
|
|
89
|
-
|
|
90
|
-
if action == "rebuild":
|
|
91
|
-
if not bool(getattr(args, "execute", False)):
|
|
92
|
-
print(
|
|
93
|
-
"Dry run only. Re-run with --execute to rebuild derived lexical state."
|
|
94
|
-
)
|
|
95
|
-
return
|
|
96
|
-
result = rebuild_derived_state(_database(), profile)
|
|
97
|
-
_emit({"profile_id": profile, **result}, as_json=as_json)
|
|
98
|
-
return
|
|
99
|
-
|
|
100
|
-
raise SystemExit("choose an evidence subcommand: export, verify, import, or rebuild")
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
__all__ = ["cmd_evidence"]
|