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,140 +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 | https://qualixar.com | https://varunpratap.com
|
|
4
|
-
|
|
5
|
-
"""SLM 3.2.3 -> 3.3 migration: idempotent schema upgrade.
|
|
6
|
-
|
|
7
|
-
Detects a 3.2.3 database (missing 3.3 tables) and creates
|
|
8
|
-
new tables via CREATE TABLE IF NOT EXISTS. Safe to call on
|
|
9
|
-
any DB version — existing tables are never altered.
|
|
10
|
-
|
|
11
|
-
New tables in 3.3 (all from Phases A-G):
|
|
12
|
-
- fact_retention (Phase A: Ebbinghaus forgetting)
|
|
13
|
-
- polar_embeddings (Phase B: PolarQuant quantization)
|
|
14
|
-
- embedding_quantization_metadata (Phase B: EAP bit-width tracking)
|
|
15
|
-
- ccq_consolidated_blocks (Phase E: Cognitive Consolidation)
|
|
16
|
-
- ccq_audit_log (Phase E: CCQ audit trail)
|
|
17
|
-
- soft_prompt_templates (Phase F: Learning Brain)
|
|
18
|
-
|
|
19
|
-
All six are already defined in schema_v32.py V32_DDL and created
|
|
20
|
-
by create_all_tables(). This migration module detects their absence
|
|
21
|
-
and creates them for databases that were created before SLM 3.3.
|
|
22
|
-
|
|
23
|
-
Part of Qualixar | Author: Varun Pratap Bhardwaj
|
|
24
|
-
License: AGPL-3.0-or-later
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
from __future__ import annotations
|
|
28
|
-
|
|
29
|
-
import logging
|
|
30
|
-
import sqlite3
|
|
31
|
-
from dataclasses import dataclass, field
|
|
32
|
-
from typing import Final
|
|
33
|
-
|
|
34
|
-
logger = logging.getLogger(__name__)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
# Tables introduced or required by SLM 3.3 phases
|
|
38
|
-
_V33_TABLES: Final[tuple[str, ...]] = (
|
|
39
|
-
"fact_retention",
|
|
40
|
-
"polar_embeddings",
|
|
41
|
-
"embedding_quantization_metadata",
|
|
42
|
-
"ccq_consolidated_blocks",
|
|
43
|
-
"ccq_audit_log",
|
|
44
|
-
"soft_prompt_templates",
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
@dataclass(frozen=True)
|
|
49
|
-
class MigrationReport:
|
|
50
|
-
"""Report of migration actions taken."""
|
|
51
|
-
|
|
52
|
-
tables_checked: int = 0
|
|
53
|
-
tables_created: tuple[str, ...] = ()
|
|
54
|
-
tables_existed: tuple[str, ...] = ()
|
|
55
|
-
errors: tuple[str, ...] = ()
|
|
56
|
-
|
|
57
|
-
@property
|
|
58
|
-
def is_clean(self) -> bool:
|
|
59
|
-
return len(self.errors) == 0
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
def _get_existing_tables(conn: sqlite3.Connection) -> frozenset[str]:
|
|
63
|
-
"""Return set of all table names in the database."""
|
|
64
|
-
rows = conn.execute(
|
|
65
|
-
"SELECT name FROM sqlite_master WHERE type='table'"
|
|
66
|
-
).fetchall()
|
|
67
|
-
return frozenset(row[0] for row in rows)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def detect_v323_database(conn: sqlite3.Connection) -> bool:
|
|
71
|
-
"""Detect if this is a pre-3.3 database missing new tables.
|
|
72
|
-
|
|
73
|
-
Returns True if at least one V33 table is missing.
|
|
74
|
-
"""
|
|
75
|
-
existing = _get_existing_tables(conn)
|
|
76
|
-
return any(table not in existing for table in _V33_TABLES)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
def migrate_v323_to_v33(conn: sqlite3.Connection) -> MigrationReport:
|
|
80
|
-
"""Idempotent migration from SLM 3.2.3 to 3.3.
|
|
81
|
-
|
|
82
|
-
Creates missing 3.3 tables via the canonical DDL from schema_v32.py.
|
|
83
|
-
Uses CREATE TABLE IF NOT EXISTS — safe to run on any DB version.
|
|
84
|
-
|
|
85
|
-
Args:
|
|
86
|
-
conn: Open SQLite connection. Caller manages commit.
|
|
87
|
-
|
|
88
|
-
Returns:
|
|
89
|
-
MigrationReport with details of actions taken.
|
|
90
|
-
"""
|
|
91
|
-
from superlocalmemory.storage.schema_v32 import V32_DDL
|
|
92
|
-
|
|
93
|
-
existing = _get_existing_tables(conn)
|
|
94
|
-
created: list[str] = []
|
|
95
|
-
existed: list[str] = []
|
|
96
|
-
errors: list[str] = []
|
|
97
|
-
|
|
98
|
-
for table in _V33_TABLES:
|
|
99
|
-
if table in existing:
|
|
100
|
-
existed.append(table)
|
|
101
|
-
logger.debug("Table %s already exists — skipping", table)
|
|
102
|
-
continue
|
|
103
|
-
|
|
104
|
-
# Find the DDL statement that creates this table
|
|
105
|
-
ddl_found = False
|
|
106
|
-
for ddl in V32_DDL:
|
|
107
|
-
if f"CREATE TABLE IF NOT EXISTS {table}" in ddl:
|
|
108
|
-
try:
|
|
109
|
-
conn.executescript(ddl)
|
|
110
|
-
created.append(table)
|
|
111
|
-
ddl_found = True
|
|
112
|
-
logger.info("Created table: %s", table)
|
|
113
|
-
except sqlite3.Error as exc:
|
|
114
|
-
msg = f"Failed to create {table}: {exc}"
|
|
115
|
-
errors.append(msg)
|
|
116
|
-
logger.error(msg)
|
|
117
|
-
ddl_found = True
|
|
118
|
-
break
|
|
119
|
-
|
|
120
|
-
if not ddl_found:
|
|
121
|
-
msg = f"No DDL found for table: {table}"
|
|
122
|
-
errors.append(msg)
|
|
123
|
-
logger.warning(msg)
|
|
124
|
-
|
|
125
|
-
report = MigrationReport(
|
|
126
|
-
tables_checked=len(_V33_TABLES),
|
|
127
|
-
tables_created=tuple(created),
|
|
128
|
-
tables_existed=tuple(existed),
|
|
129
|
-
errors=tuple(errors),
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
logger.info(
|
|
133
|
-
"Migration report: checked=%d, created=%d, existed=%d, errors=%d",
|
|
134
|
-
report.tables_checked,
|
|
135
|
-
len(report.tables_created),
|
|
136
|
-
len(report.tables_existed),
|
|
137
|
-
len(report.errors),
|
|
138
|
-
)
|
|
139
|
-
|
|
140
|
-
return report
|
|
@@ -1,67 +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-07 §3.1
|
|
4
|
-
|
|
5
|
-
"""M001 — add rich-signal columns to learning_signals + learning_features.
|
|
6
|
-
|
|
7
|
-
Additive only — uses ``ALTER TABLE ADD COLUMN``. No data loss, no type
|
|
8
|
-
changes. Every ADD is guarded by the runner's idempotency check against
|
|
9
|
-
``migration_log``; on rerun the migration is skipped outright so duplicate
|
|
10
|
-
ALTER errors never surface.
|
|
11
|
-
|
|
12
|
-
The runner wraps this DDL in ``BEGIN IMMEDIATE`` / ``COMMIT`` when needed.
|
|
13
|
-
SQLite DDL is transactional except for schema-version bumps, so the BEGIN
|
|
14
|
-
here is defense-in-depth against partial application on crash.
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
from __future__ import annotations
|
|
18
|
-
|
|
19
|
-
import sqlite3
|
|
20
|
-
|
|
21
|
-
NAME = "M001_add_signal_features_columns"
|
|
22
|
-
DB_TARGET = "learning"
|
|
23
|
-
|
|
24
|
-
_REQUIRED_SIGNAL_COLS = frozenset({
|
|
25
|
-
"query_id", "query_text_hash", "position", "channel_scores", "cross_encoder",
|
|
26
|
-
})
|
|
27
|
-
_REQUIRED_FEATURE_COLS = frozenset({"signal_id", "is_synthetic"})
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def verify(conn: sqlite3.Connection) -> bool:
|
|
31
|
-
"""Return True if the migration's end-state is already present."""
|
|
32
|
-
try:
|
|
33
|
-
sig_cols = {r[1] for r in conn.execute(
|
|
34
|
-
"PRAGMA table_info(learning_signals)"
|
|
35
|
-
).fetchall()}
|
|
36
|
-
feat_cols = {r[1] for r in conn.execute(
|
|
37
|
-
"PRAGMA table_info(learning_features)"
|
|
38
|
-
).fetchall()}
|
|
39
|
-
except sqlite3.Error:
|
|
40
|
-
return False
|
|
41
|
-
return (_REQUIRED_SIGNAL_COLS <= sig_cols
|
|
42
|
-
and _REQUIRED_FEATURE_COLS <= feat_cols)
|
|
43
|
-
|
|
44
|
-
DDL = """
|
|
45
|
-
BEGIN IMMEDIATE;
|
|
46
|
-
|
|
47
|
-
ALTER TABLE learning_signals ADD COLUMN query_id TEXT DEFAULT '';
|
|
48
|
-
ALTER TABLE learning_signals ADD COLUMN query_text_hash TEXT DEFAULT '';
|
|
49
|
-
ALTER TABLE learning_signals ADD COLUMN position INTEGER DEFAULT 0;
|
|
50
|
-
ALTER TABLE learning_signals ADD COLUMN channel_scores TEXT DEFAULT '{}';
|
|
51
|
-
ALTER TABLE learning_signals ADD COLUMN cross_encoder REAL;
|
|
52
|
-
|
|
53
|
-
CREATE INDEX IF NOT EXISTS idx_signals_profile_time
|
|
54
|
-
ON learning_signals(profile_id, created_at);
|
|
55
|
-
CREATE INDEX IF NOT EXISTS idx_signals_query_id
|
|
56
|
-
ON learning_signals(query_id);
|
|
57
|
-
|
|
58
|
-
ALTER TABLE learning_features ADD COLUMN signal_id INTEGER DEFAULT 0;
|
|
59
|
-
ALTER TABLE learning_features ADD COLUMN is_synthetic INTEGER NOT NULL DEFAULT 0;
|
|
60
|
-
|
|
61
|
-
CREATE INDEX IF NOT EXISTS idx_features_signal
|
|
62
|
-
ON learning_features(signal_id);
|
|
63
|
-
CREATE INDEX IF NOT EXISTS idx_features_synthetic
|
|
64
|
-
ON learning_features(is_synthetic) WHERE is_synthetic = 0;
|
|
65
|
-
|
|
66
|
-
COMMIT;
|
|
67
|
-
"""
|
|
@@ -1,107 +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-07 §3.2
|
|
4
|
-
|
|
5
|
-
"""M002 — rebuild learning_model_state without UNIQUE(profile_id).
|
|
6
|
-
|
|
7
|
-
Enables shadow testing (old + new model live side-by-side). SQLite cannot
|
|
8
|
-
drop a UNIQUE constraint directly, so we use the new-table-rename pattern
|
|
9
|
-
wrapped in a single transaction. Existing rows are copied forward and
|
|
10
|
-
marked ``is_active = 1``.
|
|
11
|
-
|
|
12
|
-
SEC-02-02: ``bytes_sha256`` integrity column added. The daemon will
|
|
13
|
-
compute and verify this on every load to block corrupted model BLOBs from
|
|
14
|
-
reaching the LightGBM deserialiser.
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
from __future__ import annotations
|
|
18
|
-
|
|
19
|
-
import sqlite3
|
|
20
|
-
|
|
21
|
-
NAME = "M002_model_state_history"
|
|
22
|
-
DB_TARGET = "learning"
|
|
23
|
-
|
|
24
|
-
_REQUIRED_COLS = frozenset({
|
|
25
|
-
"model_version", "bytes_sha256", "trained_on_count",
|
|
26
|
-
"feature_names", "metrics_json", "is_active",
|
|
27
|
-
"trained_at", "updated_at",
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def verify(conn: sqlite3.Connection) -> bool:
|
|
32
|
-
"""Verify columns plus both indexes promised by this migration."""
|
|
33
|
-
try:
|
|
34
|
-
cols = {r[1]: r for r in conn.execute(
|
|
35
|
-
"PRAGMA table_info(learning_model_state)"
|
|
36
|
-
).fetchall()}
|
|
37
|
-
index_rows = conn.execute(
|
|
38
|
-
"PRAGMA index_list(learning_model_state)"
|
|
39
|
-
).fetchall()
|
|
40
|
-
except sqlite3.Error:
|
|
41
|
-
return False
|
|
42
|
-
if not _REQUIRED_COLS <= set(cols):
|
|
43
|
-
return False
|
|
44
|
-
|
|
45
|
-
indexes = {row[1]: row for row in index_rows}
|
|
46
|
-
active = indexes.get("idx_model_active")
|
|
47
|
-
profile_time = indexes.get("idx_model_profile_time")
|
|
48
|
-
if active is None or profile_time is None:
|
|
49
|
-
return False
|
|
50
|
-
# idx_model_active must remain a UNIQUE partial index.
|
|
51
|
-
if int(active[2]) != 1 or int(active[4]) != 1:
|
|
52
|
-
return False
|
|
53
|
-
active_cols = [row[2] for row in conn.execute(
|
|
54
|
-
"PRAGMA index_info(idx_model_active)"
|
|
55
|
-
).fetchall()]
|
|
56
|
-
time_cols = [row[2] for row in conn.execute(
|
|
57
|
-
"PRAGMA index_info(idx_model_profile_time)"
|
|
58
|
-
).fetchall()]
|
|
59
|
-
if active_cols != ["profile_id"]:
|
|
60
|
-
return False
|
|
61
|
-
if time_cols != ["profile_id", "trained_at"]:
|
|
62
|
-
return False
|
|
63
|
-
sql_row = conn.execute(
|
|
64
|
-
"SELECT sql FROM sqlite_master WHERE type='index' AND name=?",
|
|
65
|
-
("idx_model_active",),
|
|
66
|
-
).fetchone()
|
|
67
|
-
normalized = " ".join(str(sql_row[0] if sql_row else "").lower().split())
|
|
68
|
-
return "where is_active = 1" in normalized
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
# IMPORTANT: this DDL shipped in V3.4.21. Migration hashes are immutable
|
|
72
|
-
# upgrade contracts, so later improvements belong in a new forward migration
|
|
73
|
-
# (M020), never in this historical definition.
|
|
74
|
-
DDL = """
|
|
75
|
-
BEGIN IMMEDIATE;
|
|
76
|
-
|
|
77
|
-
CREATE TABLE learning_model_state_new (
|
|
78
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
79
|
-
profile_id TEXT NOT NULL,
|
|
80
|
-
model_version TEXT NOT NULL DEFAULT '3.4.21',
|
|
81
|
-
state_bytes BLOB NOT NULL,
|
|
82
|
-
bytes_sha256 TEXT NOT NULL DEFAULT '',
|
|
83
|
-
trained_on_count INTEGER NOT NULL DEFAULT 0,
|
|
84
|
-
feature_names TEXT NOT NULL DEFAULT '[]',
|
|
85
|
-
metrics_json TEXT NOT NULL DEFAULT '{}',
|
|
86
|
-
is_active INTEGER NOT NULL DEFAULT 0,
|
|
87
|
-
trained_at TEXT NOT NULL,
|
|
88
|
-
updated_at TEXT NOT NULL
|
|
89
|
-
);
|
|
90
|
-
|
|
91
|
-
INSERT INTO learning_model_state_new
|
|
92
|
-
(profile_id, state_bytes, is_active, trained_at, updated_at)
|
|
93
|
-
SELECT profile_id, state_bytes, 1, updated_at, updated_at
|
|
94
|
-
FROM learning_model_state;
|
|
95
|
-
|
|
96
|
-
DROP TABLE learning_model_state;
|
|
97
|
-
ALTER TABLE learning_model_state_new RENAME TO learning_model_state;
|
|
98
|
-
|
|
99
|
-
CREATE UNIQUE INDEX idx_model_active
|
|
100
|
-
ON learning_model_state(profile_id)
|
|
101
|
-
WHERE is_active = 1;
|
|
102
|
-
|
|
103
|
-
CREATE INDEX idx_model_profile_time
|
|
104
|
-
ON learning_model_state(profile_id, trained_at);
|
|
105
|
-
|
|
106
|
-
COMMIT;
|
|
107
|
-
"""
|
|
@@ -1,38 +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-07 §3.3
|
|
4
|
-
|
|
5
|
-
"""M003 — bootstrap migration_log table.
|
|
6
|
-
|
|
7
|
-
Runs FIRST on both DBs. Purely idempotent ``CREATE TABLE IF NOT EXISTS``.
|
|
8
|
-
No transaction needed — a single DDL statement on SQLite is atomic.
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
from __future__ import annotations
|
|
12
|
-
|
|
13
|
-
import sqlite3
|
|
14
|
-
|
|
15
|
-
NAME = "M003_migration_log"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def verify(conn: sqlite3.Connection) -> bool:
|
|
19
|
-
"""Return True if migration_log already exists with expected columns."""
|
|
20
|
-
try:
|
|
21
|
-
cols = {r[1] for r in conn.execute(
|
|
22
|
-
"PRAGMA table_info(migration_log)"
|
|
23
|
-
).fetchall()}
|
|
24
|
-
except sqlite3.Error:
|
|
25
|
-
return False
|
|
26
|
-
return {"name", "applied_at", "ddl_sha256",
|
|
27
|
-
"rows_affected", "status"} <= cols
|
|
28
|
-
DB_TARGET = "learning" # Also gets replicated to memory DB by the runner.
|
|
29
|
-
|
|
30
|
-
DDL = """
|
|
31
|
-
CREATE TABLE IF NOT EXISTS migration_log (
|
|
32
|
-
name TEXT PRIMARY KEY,
|
|
33
|
-
applied_at TEXT NOT NULL,
|
|
34
|
-
ddl_sha256 TEXT NOT NULL,
|
|
35
|
-
rows_affected INTEGER NOT NULL DEFAULT 0,
|
|
36
|
-
status TEXT NOT NULL
|
|
37
|
-
);
|
|
38
|
-
"""
|
|
@@ -1,46 +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-07 §3.4
|
|
4
|
-
|
|
5
|
-
"""M004 — cross-platform adapter sync log (memory.db).
|
|
6
|
-
|
|
7
|
-
LLD-05 requirement. SEC-05-04: stores target paths as SHA-256 digests, not
|
|
8
|
-
raw strings — keeps plaintext filesystem paths out of the DB. A separate
|
|
9
|
-
``target_basename`` column keeps the last path segment for the dashboard
|
|
10
|
-
without exposing the full path.
|
|
11
|
-
"""
|
|
12
|
-
|
|
13
|
-
from __future__ import annotations
|
|
14
|
-
|
|
15
|
-
import sqlite3
|
|
16
|
-
|
|
17
|
-
NAME = "M004_cross_platform_sync_log"
|
|
18
|
-
DB_TARGET = "memory"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def verify(conn: sqlite3.Connection) -> bool:
|
|
22
|
-
"""Return True if cross_platform_sync_log table is in place."""
|
|
23
|
-
try:
|
|
24
|
-
cols = {r[1] for r in conn.execute(
|
|
25
|
-
"PRAGMA table_info(cross_platform_sync_log)"
|
|
26
|
-
).fetchall()}
|
|
27
|
-
except sqlite3.Error:
|
|
28
|
-
return False
|
|
29
|
-
return {"adapter_name", "profile_id", "target_path_sha256",
|
|
30
|
-
"target_basename", "last_sync_at", "bytes_written",
|
|
31
|
-
"content_sha256", "success"} <= cols
|
|
32
|
-
|
|
33
|
-
DDL = """
|
|
34
|
-
CREATE TABLE IF NOT EXISTS cross_platform_sync_log (
|
|
35
|
-
adapter_name TEXT NOT NULL,
|
|
36
|
-
profile_id TEXT NOT NULL,
|
|
37
|
-
target_path_sha256 TEXT NOT NULL,
|
|
38
|
-
target_basename TEXT NOT NULL,
|
|
39
|
-
last_sync_at TEXT NOT NULL,
|
|
40
|
-
bytes_written INTEGER NOT NULL,
|
|
41
|
-
content_sha256 TEXT NOT NULL,
|
|
42
|
-
success INTEGER NOT NULL,
|
|
43
|
-
error_msg TEXT,
|
|
44
|
-
PRIMARY KEY (adapter_name, target_path_sha256)
|
|
45
|
-
);
|
|
46
|
-
"""
|
|
@@ -1,75 +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-07 §3.5
|
|
4
|
-
|
|
5
|
-
"""M005 — Thompson-sampling bandit tables (learning.db, LLD-03).
|
|
6
|
-
|
|
7
|
-
Two tables:
|
|
8
|
-
- ``bandit_arms`` — per (profile, stratum, arm) Beta-distribution state.
|
|
9
|
-
``WITHOUT ROWID`` since primary key is a natural composite.
|
|
10
|
-
- ``bandit_plays`` — individual play events with delayed-reward settlement.
|
|
11
|
-
|
|
12
|
-
All indexes are ``IF NOT EXISTS`` so reapply is a no-op.
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
from __future__ import annotations
|
|
16
|
-
|
|
17
|
-
import sqlite3
|
|
18
|
-
|
|
19
|
-
NAME = "M005_bandit_tables"
|
|
20
|
-
DB_TARGET = "learning"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def verify(conn: sqlite3.Connection) -> bool:
|
|
24
|
-
"""Return True if bandit tables exist with expected columns."""
|
|
25
|
-
try:
|
|
26
|
-
arms_cols = {r[1] for r in conn.execute(
|
|
27
|
-
"PRAGMA table_info(bandit_arms)"
|
|
28
|
-
).fetchall()}
|
|
29
|
-
plays_cols = {r[1] for r in conn.execute(
|
|
30
|
-
"PRAGMA table_info(bandit_plays)"
|
|
31
|
-
).fetchall()}
|
|
32
|
-
except sqlite3.Error:
|
|
33
|
-
return False
|
|
34
|
-
return (
|
|
35
|
-
{"profile_id", "stratum", "arm_id", "alpha",
|
|
36
|
-
"beta", "plays"} <= arms_cols
|
|
37
|
-
and {"play_id", "profile_id", "query_id", "stratum",
|
|
38
|
-
"arm_id", "played_at"} <= plays_cols
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
DDL = """
|
|
42
|
-
CREATE TABLE IF NOT EXISTS bandit_arms (
|
|
43
|
-
profile_id TEXT NOT NULL,
|
|
44
|
-
stratum TEXT NOT NULL,
|
|
45
|
-
arm_id TEXT NOT NULL,
|
|
46
|
-
alpha REAL NOT NULL DEFAULT 1.0,
|
|
47
|
-
beta REAL NOT NULL DEFAULT 1.0,
|
|
48
|
-
plays INTEGER NOT NULL DEFAULT 0,
|
|
49
|
-
last_played_at TEXT,
|
|
50
|
-
PRIMARY KEY (profile_id, stratum, arm_id)
|
|
51
|
-
) WITHOUT ROWID;
|
|
52
|
-
|
|
53
|
-
CREATE INDEX IF NOT EXISTS idx_bandit_profile_strat
|
|
54
|
-
ON bandit_arms(profile_id, stratum);
|
|
55
|
-
|
|
56
|
-
CREATE TABLE IF NOT EXISTS bandit_plays (
|
|
57
|
-
play_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
58
|
-
profile_id TEXT NOT NULL,
|
|
59
|
-
query_id TEXT NOT NULL,
|
|
60
|
-
stratum TEXT NOT NULL,
|
|
61
|
-
arm_id TEXT NOT NULL,
|
|
62
|
-
played_at TEXT NOT NULL,
|
|
63
|
-
reward REAL,
|
|
64
|
-
settled_at TEXT,
|
|
65
|
-
settlement_type TEXT
|
|
66
|
-
);
|
|
67
|
-
|
|
68
|
-
CREATE INDEX IF NOT EXISTS idx_plays_query
|
|
69
|
-
ON bandit_plays(query_id);
|
|
70
|
-
CREATE INDEX IF NOT EXISTS idx_plays_unsettled
|
|
71
|
-
ON bandit_plays(profile_id, played_at)
|
|
72
|
-
WHERE settled_at IS NULL;
|
|
73
|
-
CREATE INDEX IF NOT EXISTS idx_plays_retention
|
|
74
|
-
ON bandit_plays(settled_at);
|
|
75
|
-
"""
|
|
@@ -1,75 +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-07 §3.6
|
|
4
|
-
|
|
5
|
-
"""M006 — action_outcomes reward + settlement columns (memory.db).
|
|
6
|
-
|
|
7
|
-
Extends ``action_outcomes`` with the four columns the learning trainer
|
|
8
|
-
needs in order to swap off the position proxy onto the real reward
|
|
9
|
-
label:
|
|
10
|
-
|
|
11
|
-
* ``reward REAL`` — numeric reward (usually in [-1, 1]).
|
|
12
|
-
* ``settled INTEGER DEFAULT 0`` — 1 when the outcome has been settled.
|
|
13
|
-
* ``settled_at TEXT`` — ISO-8601 timestamp of settlement.
|
|
14
|
-
* ``recall_query_id TEXT`` — links the outcome back to the recall that
|
|
15
|
-
produced the candidate facts (so the trainer can join against
|
|
16
|
-
``learning_signals.query_id``).
|
|
17
|
-
|
|
18
|
-
The gate in ``learning.database.fetch_training_examples``
|
|
19
|
-
(``_migration_applied("M006_action_outcomes_reward")``) already falls
|
|
20
|
-
back to the position proxy when this migration hasn't completed, so a
|
|
21
|
-
skipped/failed apply never crashes the trainer.
|
|
22
|
-
|
|
23
|
-
Deferred: this migration is NOT in ``MIGRATIONS``. It ships via
|
|
24
|
-
``DEFERRED_MIGRATIONS`` and runs from the daemon lifespan immediately
|
|
25
|
-
after ``MemoryEngine.initialize()`` has bootstrapped the
|
|
26
|
-
``action_outcomes`` table. Idempotent — ``verify(conn)`` returns True
|
|
27
|
-
once all four columns are present, so reapply is a no-op.
|
|
28
|
-
"""
|
|
29
|
-
|
|
30
|
-
from __future__ import annotations
|
|
31
|
-
|
|
32
|
-
import sqlite3
|
|
33
|
-
|
|
34
|
-
NAME = "M006_action_outcomes_reward"
|
|
35
|
-
# action_outcomes lives in memory.db (see storage.schema).
|
|
36
|
-
DB_TARGET = "memory"
|
|
37
|
-
|
|
38
|
-
_REQUIRED_COLS = frozenset({"reward", "settled", "settled_at", "recall_query_id"})
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
def verify(conn: sqlite3.Connection) -> bool:
|
|
42
|
-
"""Return True once every M006 column is present on ``action_outcomes``.
|
|
43
|
-
|
|
44
|
-
Lets the migration runner detect "already applied" state when a retry
|
|
45
|
-
would otherwise hit a duplicate-column error mid-script.
|
|
46
|
-
"""
|
|
47
|
-
try:
|
|
48
|
-
cols = {
|
|
49
|
-
r[1]
|
|
50
|
-
for r in conn.execute("PRAGMA table_info(action_outcomes)").fetchall()
|
|
51
|
-
}
|
|
52
|
-
except sqlite3.Error:
|
|
53
|
-
return False
|
|
54
|
-
return _REQUIRED_COLS.issubset(cols)
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
# DDL. Runs inside an explicit transaction opened by the migration runner.
|
|
58
|
-
# SQLite doesn't support ``ALTER TABLE IF EXISTS`` — if the table is missing
|
|
59
|
-
# this raises sqlite3.OperationalError which the runner catches and records
|
|
60
|
-
# as ``failed``; the gate in ``fetch_training_examples`` keeps the trainer
|
|
61
|
-
# on the position proxy in that case, so the daemon is still healthy.
|
|
62
|
-
DDL = """
|
|
63
|
-
ALTER TABLE action_outcomes ADD COLUMN reward REAL;
|
|
64
|
-
ALTER TABLE action_outcomes ADD COLUMN settled INTEGER NOT NULL DEFAULT 0;
|
|
65
|
-
ALTER TABLE action_outcomes ADD COLUMN settled_at TEXT;
|
|
66
|
-
ALTER TABLE action_outcomes ADD COLUMN recall_query_id TEXT;
|
|
67
|
-
|
|
68
|
-
CREATE INDEX IF NOT EXISTS idx_action_outcomes_settled_reward
|
|
69
|
-
ON action_outcomes(settled, settled_at)
|
|
70
|
-
WHERE reward IS NOT NULL;
|
|
71
|
-
|
|
72
|
-
CREATE INDEX IF NOT EXISTS idx_action_outcomes_recall_query
|
|
73
|
-
ON action_outcomes(recall_query_id)
|
|
74
|
-
WHERE recall_query_id IS NOT NULL;
|
|
75
|
-
"""
|
|
@@ -1,63 +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-00 §1.2 + LLD-08
|
|
4
|
-
|
|
5
|
-
"""M007 — pending_outcomes table (memory.db).
|
|
6
|
-
|
|
7
|
-
LLD-00 §1.2 makes ``pending_outcomes`` the single source of truth for
|
|
8
|
-
in-flight recall outcomes awaiting reward settlement. An earlier draft
|
|
9
|
-
split pending state across a cache.db table which has been retired
|
|
10
|
-
(see LLD-00 §1.2 for the name of the predecessor). All pending rows
|
|
11
|
-
are now crash-safe, profile-scoped, and one-row-per-recall — signals
|
|
12
|
-
live in the ``signals_json`` blob, not separate rows.
|
|
13
|
-
|
|
14
|
-
Target DB: memory.db. Schema follows LLD-00 §1.2 verbatim. Idempotent:
|
|
15
|
-
``verify(conn)`` returns True once every required column is present on
|
|
16
|
-
the ``pending_outcomes`` table.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
from __future__ import annotations
|
|
20
|
-
|
|
21
|
-
import sqlite3
|
|
22
|
-
|
|
23
|
-
NAME = "M007_pending_outcomes"
|
|
24
|
-
DB_TARGET = "memory"
|
|
25
|
-
|
|
26
|
-
_REQUIRED_COLS = frozenset({
|
|
27
|
-
"outcome_id", "profile_id", "session_id", "recall_query_id",
|
|
28
|
-
"fact_ids_json", "query_text_hash", "created_at_ms", "expires_at_ms",
|
|
29
|
-
"signals_json", "status",
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def verify(conn: sqlite3.Connection) -> bool:
|
|
34
|
-
try:
|
|
35
|
-
cols = {
|
|
36
|
-
r[1]
|
|
37
|
-
for r in conn.execute(
|
|
38
|
-
"PRAGMA table_info(pending_outcomes)"
|
|
39
|
-
).fetchall()
|
|
40
|
-
}
|
|
41
|
-
except sqlite3.Error:
|
|
42
|
-
return False
|
|
43
|
-
return _REQUIRED_COLS.issubset(cols)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
DDL = """
|
|
47
|
-
CREATE TABLE IF NOT EXISTS pending_outcomes (
|
|
48
|
-
outcome_id TEXT PRIMARY KEY,
|
|
49
|
-
profile_id TEXT NOT NULL,
|
|
50
|
-
session_id TEXT NOT NULL,
|
|
51
|
-
recall_query_id TEXT NOT NULL,
|
|
52
|
-
fact_ids_json TEXT NOT NULL,
|
|
53
|
-
query_text_hash TEXT NOT NULL,
|
|
54
|
-
created_at_ms INTEGER NOT NULL,
|
|
55
|
-
expires_at_ms INTEGER NOT NULL,
|
|
56
|
-
signals_json TEXT NOT NULL DEFAULT '{}',
|
|
57
|
-
status TEXT NOT NULL DEFAULT 'pending'
|
|
58
|
-
);
|
|
59
|
-
CREATE INDEX IF NOT EXISTS idx_pending_profile_expires
|
|
60
|
-
ON pending_outcomes(profile_id, expires_at_ms);
|
|
61
|
-
CREATE INDEX IF NOT EXISTS idx_pending_status
|
|
62
|
-
ON pending_outcomes(status, expires_at_ms);
|
|
63
|
-
"""
|