superlocalmemory 4.1.13 → 4.1.15
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 +103 -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,159 +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
|
-
"""SuperLocalMemory V3.4.10 "Fortress" — Schema Extensions.
|
|
6
|
-
|
|
7
|
-
New tables for cloud backup + entity quality:
|
|
8
|
-
- backup_destinations: Cloud backup targets (Google Drive, GitHub, local)
|
|
9
|
-
- entity_blacklist: Stop words and known garbage entity names
|
|
10
|
-
|
|
11
|
-
Design rules (inherited):
|
|
12
|
-
- CREATE IF NOT EXISTS for idempotency
|
|
13
|
-
- profile_id where applicable
|
|
14
|
-
- Never ALTER existing column types
|
|
15
|
-
|
|
16
|
-
Part of Qualixar | Author: Varun Pratap Bhardwaj
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
from __future__ import annotations
|
|
20
|
-
|
|
21
|
-
import logging
|
|
22
|
-
import sqlite3
|
|
23
|
-
|
|
24
|
-
logger = logging.getLogger(__name__)
|
|
25
|
-
|
|
26
|
-
# ---------------------------------------------------------------------------
|
|
27
|
-
# DDL — Backup Destinations
|
|
28
|
-
# ---------------------------------------------------------------------------
|
|
29
|
-
|
|
30
|
-
_BACKUP_DESTINATIONS_DDL = """
|
|
31
|
-
CREATE TABLE IF NOT EXISTS backup_destinations (
|
|
32
|
-
id TEXT PRIMARY KEY,
|
|
33
|
-
profile_id TEXT DEFAULT 'default',
|
|
34
|
-
destination_type TEXT NOT NULL,
|
|
35
|
-
display_name TEXT DEFAULT '',
|
|
36
|
-
credentials_ref TEXT DEFAULT '',
|
|
37
|
-
config TEXT DEFAULT '{}',
|
|
38
|
-
last_sync_at TEXT,
|
|
39
|
-
last_sync_status TEXT DEFAULT 'never',
|
|
40
|
-
last_sync_error TEXT DEFAULT '',
|
|
41
|
-
enabled INTEGER DEFAULT 1,
|
|
42
|
-
created_at TEXT NOT NULL
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
CREATE INDEX IF NOT EXISTS idx_backup_dest_type
|
|
46
|
-
ON backup_destinations(destination_type);
|
|
47
|
-
CREATE INDEX IF NOT EXISTS idx_backup_dest_profile
|
|
48
|
-
ON backup_destinations(profile_id);
|
|
49
|
-
"""
|
|
50
|
-
|
|
51
|
-
# ---------------------------------------------------------------------------
|
|
52
|
-
# DDL — Entity Blacklist
|
|
53
|
-
# ---------------------------------------------------------------------------
|
|
54
|
-
|
|
55
|
-
_ENTITY_BLACKLIST_DDL = """
|
|
56
|
-
CREATE TABLE IF NOT EXISTS entity_blacklist (
|
|
57
|
-
term TEXT PRIMARY KEY,
|
|
58
|
-
reason TEXT DEFAULT 'stop_word',
|
|
59
|
-
added_at TEXT NOT NULL
|
|
60
|
-
);
|
|
61
|
-
"""
|
|
62
|
-
|
|
63
|
-
# ---------------------------------------------------------------------------
|
|
64
|
-
# Default blacklist entries (seeded on first migration)
|
|
65
|
-
# ---------------------------------------------------------------------------
|
|
66
|
-
|
|
67
|
-
_DEFAULT_BLACKLIST = [
|
|
68
|
-
# English stop words that frequently become garbage entities
|
|
69
|
-
"a", "an", "the", "all", "not", "no", "yes", "and", "or", "but",
|
|
70
|
-
"if", "is", "are", "was", "were", "be", "been", "being",
|
|
71
|
-
"have", "has", "had", "do", "does", "did", "will", "would",
|
|
72
|
-
"shall", "should", "can", "could", "just", "also", "only",
|
|
73
|
-
"very", "too", "so", "then", "than", "that", "this",
|
|
74
|
-
"each", "every", "both", "few", "more", "most", "other",
|
|
75
|
-
"some", "such", "any", "many", "much", "own", "same",
|
|
76
|
-
"new", "old", "first", "last", "next", "now",
|
|
77
|
-
# Months (biggest historical source of garbage)
|
|
78
|
-
"january", "february", "march", "april", "may", "june",
|
|
79
|
-
"july", "august", "september", "october", "november", "december",
|
|
80
|
-
# Technical terms commonly misclassified
|
|
81
|
-
"test", "fix", "build", "check", "run", "start", "stop",
|
|
82
|
-
"error", "status", "version", "query", "data", "file",
|
|
83
|
-
"ready", "done", "complete", "pending", "active", "failed",
|
|
84
|
-
"total", "count", "key", "value", "true", "false",
|
|
85
|
-
# Abstract nouns misclassified as people
|
|
86
|
-
"completeness", "correctness", "limitations", "requirements",
|
|
87
|
-
"performance", "security", "quality", "coverage", "progress",
|
|
88
|
-
"analysis", "research", "implementation", "verification",
|
|
89
|
-
]
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
# ---------------------------------------------------------------------------
|
|
93
|
-
# Migration runner
|
|
94
|
-
# ---------------------------------------------------------------------------
|
|
95
|
-
|
|
96
|
-
def apply_v3410_schema(db_path: str | sqlite3.Connection) -> dict:
|
|
97
|
-
"""Apply all v3.4.10 schema changes. Idempotent."""
|
|
98
|
-
result = {"applied": [], "errors": []}
|
|
99
|
-
|
|
100
|
-
if isinstance(db_path, sqlite3.Connection):
|
|
101
|
-
conn = db_path
|
|
102
|
-
own_connection = False
|
|
103
|
-
else:
|
|
104
|
-
conn = sqlite3.connect(str(db_path))
|
|
105
|
-
own_connection = True
|
|
106
|
-
|
|
107
|
-
try:
|
|
108
|
-
# Backup destinations table
|
|
109
|
-
try:
|
|
110
|
-
conn.executescript(_BACKUP_DESTINATIONS_DDL)
|
|
111
|
-
result["applied"].append("backup_destinations table + indexes")
|
|
112
|
-
except sqlite3.OperationalError as e:
|
|
113
|
-
result["errors"].append(f"backup_destinations: {e}")
|
|
114
|
-
|
|
115
|
-
# Entity blacklist table
|
|
116
|
-
try:
|
|
117
|
-
conn.executescript(_ENTITY_BLACKLIST_DDL)
|
|
118
|
-
result["applied"].append("entity_blacklist table")
|
|
119
|
-
except sqlite3.OperationalError as e:
|
|
120
|
-
result["errors"].append(f"entity_blacklist: {e}")
|
|
121
|
-
|
|
122
|
-
# Seed default blacklist (only inserts missing entries)
|
|
123
|
-
now = __import__("datetime").datetime.now().isoformat()
|
|
124
|
-
seeded = 0
|
|
125
|
-
for term in _DEFAULT_BLACKLIST:
|
|
126
|
-
try:
|
|
127
|
-
conn.execute(
|
|
128
|
-
"INSERT OR IGNORE INTO entity_blacklist (term, reason, added_at) "
|
|
129
|
-
"VALUES (?, 'stop_word', ?)",
|
|
130
|
-
(term, now),
|
|
131
|
-
)
|
|
132
|
-
seeded += 1
|
|
133
|
-
except sqlite3.OperationalError:
|
|
134
|
-
pass
|
|
135
|
-
if seeded:
|
|
136
|
-
result["applied"].append(f"entity_blacklist seeded ({len(_DEFAULT_BLACKLIST)} terms)")
|
|
137
|
-
|
|
138
|
-
# Mark version
|
|
139
|
-
try:
|
|
140
|
-
conn.execute(
|
|
141
|
-
"INSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (?, ?)",
|
|
142
|
-
("3.4.10", now),
|
|
143
|
-
)
|
|
144
|
-
except sqlite3.OperationalError:
|
|
145
|
-
pass
|
|
146
|
-
|
|
147
|
-
conn.commit()
|
|
148
|
-
|
|
149
|
-
if result["applied"]:
|
|
150
|
-
logger.info("Schema v3.4.10 applied: %s", ", ".join(result["applied"]))
|
|
151
|
-
|
|
152
|
-
except Exception as e:
|
|
153
|
-
result["errors"].append(f"fatal: {e}")
|
|
154
|
-
logger.error("Schema v3.4.10 migration failed: %s", e)
|
|
155
|
-
finally:
|
|
156
|
-
if own_connection:
|
|
157
|
-
conn.close()
|
|
158
|
-
|
|
159
|
-
return result
|
|
@@ -1,149 +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
|
-
"""SuperLocalMemory V3.4.11 "Scale-Ready" — Schema Extensions.
|
|
6
|
-
|
|
7
|
-
New tables for tiered storage + future backend integrations:
|
|
8
|
-
- pinned_facts: User-pinned facts that stay in hot tier forever
|
|
9
|
-
- backend_status: Tracks initialization state of LanceDB/KùzuDB backends
|
|
10
|
-
- fact_consolidations: History of merged/consolidated facts
|
|
11
|
-
|
|
12
|
-
Design rules (inherited):
|
|
13
|
-
- CREATE IF NOT EXISTS for idempotency
|
|
14
|
-
- profile_id where applicable
|
|
15
|
-
- Never ALTER existing column types
|
|
16
|
-
|
|
17
|
-
Part of Qualixar | Author: Varun Pratap Bhardwaj
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
from __future__ import annotations
|
|
21
|
-
|
|
22
|
-
import logging
|
|
23
|
-
import sqlite3
|
|
24
|
-
|
|
25
|
-
logger = logging.getLogger(__name__)
|
|
26
|
-
|
|
27
|
-
# ---------------------------------------------------------------------------
|
|
28
|
-
# DDL — Pinned Facts (user override on lifecycle demotion)
|
|
29
|
-
# ---------------------------------------------------------------------------
|
|
30
|
-
|
|
31
|
-
_PINNED_FACTS_DDL = """
|
|
32
|
-
CREATE TABLE IF NOT EXISTS pinned_facts (
|
|
33
|
-
fact_id TEXT PRIMARY KEY,
|
|
34
|
-
profile_id TEXT DEFAULT 'default',
|
|
35
|
-
pinned_at TEXT NOT NULL,
|
|
36
|
-
reason TEXT DEFAULT ''
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
CREATE INDEX IF NOT EXISTS idx_pinned_facts_profile
|
|
40
|
-
ON pinned_facts(profile_id);
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
# ---------------------------------------------------------------------------
|
|
44
|
-
# DDL — Backend Status (LanceDB, KùzuDB, sqlite-vec tracking)
|
|
45
|
-
# ---------------------------------------------------------------------------
|
|
46
|
-
|
|
47
|
-
_BACKEND_STATUS_DDL = """
|
|
48
|
-
CREATE TABLE IF NOT EXISTS backend_status (
|
|
49
|
-
backend_name TEXT PRIMARY KEY,
|
|
50
|
-
status TEXT DEFAULT 'not_initialized',
|
|
51
|
-
record_count INTEGER DEFAULT 0,
|
|
52
|
-
last_sync_at TEXT,
|
|
53
|
-
error_message TEXT DEFAULT '',
|
|
54
|
-
config TEXT DEFAULT '{}'
|
|
55
|
-
);
|
|
56
|
-
"""
|
|
57
|
-
|
|
58
|
-
# ---------------------------------------------------------------------------
|
|
59
|
-
# DDL — Fact Consolidations (merge history)
|
|
60
|
-
# ---------------------------------------------------------------------------
|
|
61
|
-
|
|
62
|
-
_FACT_CONSOLIDATIONS_DDL = """
|
|
63
|
-
CREATE TABLE IF NOT EXISTS fact_consolidations (
|
|
64
|
-
consolidation_id TEXT PRIMARY KEY,
|
|
65
|
-
profile_id TEXT DEFAULT 'default',
|
|
66
|
-
consolidated_fact_id TEXT NOT NULL,
|
|
67
|
-
source_fact_ids TEXT NOT NULL,
|
|
68
|
-
strategy TEXT DEFAULT 'entity_cluster',
|
|
69
|
-
created_at TEXT NOT NULL
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
CREATE INDEX IF NOT EXISTS idx_fact_consolidations_profile
|
|
73
|
-
ON fact_consolidations(profile_id);
|
|
74
|
-
CREATE INDEX IF NOT EXISTS idx_fact_consolidations_target
|
|
75
|
-
ON fact_consolidations(consolidated_fact_id);
|
|
76
|
-
"""
|
|
77
|
-
|
|
78
|
-
# ---------------------------------------------------------------------------
|
|
79
|
-
# DDL — Index on lifecycle for fast tier queries
|
|
80
|
-
# ---------------------------------------------------------------------------
|
|
81
|
-
|
|
82
|
-
_LIFECYCLE_INDEX_DDL = """
|
|
83
|
-
CREATE INDEX IF NOT EXISTS idx_atomic_facts_lifecycle
|
|
84
|
-
ON atomic_facts(lifecycle, profile_id);
|
|
85
|
-
"""
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
# ---------------------------------------------------------------------------
|
|
89
|
-
# Migration runner
|
|
90
|
-
# ---------------------------------------------------------------------------
|
|
91
|
-
|
|
92
|
-
def apply_v3411_schema(db_path: str | sqlite3.Connection) -> dict:
|
|
93
|
-
"""Apply all v3.4.11 schema changes. Idempotent."""
|
|
94
|
-
result = {"applied": [], "errors": []}
|
|
95
|
-
|
|
96
|
-
if isinstance(db_path, sqlite3.Connection):
|
|
97
|
-
conn = db_path
|
|
98
|
-
own_connection = False
|
|
99
|
-
else:
|
|
100
|
-
conn = sqlite3.connect(str(db_path))
|
|
101
|
-
own_connection = True
|
|
102
|
-
|
|
103
|
-
try:
|
|
104
|
-
for name, ddl in [
|
|
105
|
-
("pinned_facts", _PINNED_FACTS_DDL),
|
|
106
|
-
("backend_status", _BACKEND_STATUS_DDL),
|
|
107
|
-
("fact_consolidations", _FACT_CONSOLIDATIONS_DDL),
|
|
108
|
-
("lifecycle_index", _LIFECYCLE_INDEX_DDL),
|
|
109
|
-
]:
|
|
110
|
-
try:
|
|
111
|
-
conn.executescript(ddl)
|
|
112
|
-
result["applied"].append(name)
|
|
113
|
-
except sqlite3.OperationalError as e:
|
|
114
|
-
result["errors"].append(f"{name}: {e}")
|
|
115
|
-
|
|
116
|
-
# Seed default backend entries
|
|
117
|
-
now = __import__("datetime").datetime.now().isoformat()
|
|
118
|
-
for backend in ("sqlite_vec", "sqlite_graph", "lancedb", "kuzu"):
|
|
119
|
-
try:
|
|
120
|
-
conn.execute(
|
|
121
|
-
"INSERT OR IGNORE INTO backend_status "
|
|
122
|
-
"(backend_name, status, config) VALUES (?, ?, ?)",
|
|
123
|
-
(backend, "not_initialized" if backend in ("lancedb", "kuzu") else "active", "{}"),
|
|
124
|
-
)
|
|
125
|
-
except sqlite3.OperationalError:
|
|
126
|
-
pass
|
|
127
|
-
|
|
128
|
-
# Mark version
|
|
129
|
-
try:
|
|
130
|
-
conn.execute(
|
|
131
|
-
"INSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (?, ?)",
|
|
132
|
-
("3.4.11", now),
|
|
133
|
-
)
|
|
134
|
-
except sqlite3.OperationalError:
|
|
135
|
-
pass
|
|
136
|
-
|
|
137
|
-
conn.commit()
|
|
138
|
-
|
|
139
|
-
if result["applied"]:
|
|
140
|
-
logger.info("Schema v3.4.11 applied: %s", ", ".join(result["applied"]))
|
|
141
|
-
|
|
142
|
-
except Exception as e:
|
|
143
|
-
result["errors"].append(f"fatal: {e}")
|
|
144
|
-
logger.error("Schema v3.4.11 migration failed: %s", e)
|
|
145
|
-
finally:
|
|
146
|
-
if own_connection:
|
|
147
|
-
conn.close()
|
|
148
|
-
|
|
149
|
-
return result
|
|
@@ -1,315 +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
|
-
"""SuperLocalMemory V3.4.3 "The Unified Brain" — Schema Extensions.
|
|
6
|
-
|
|
7
|
-
All new tables for v3.4.3 features:
|
|
8
|
-
- Phase C: Mesh broker tables (mesh_peers, mesh_messages, mesh_state, mesh_locks, mesh_events)
|
|
9
|
-
- Phase D: Entity compilation (ALTER entity_profiles + new index)
|
|
10
|
-
- Phase E: Ingestion log (ingestion_log)
|
|
11
|
-
|
|
12
|
-
Design rules (inherited from schema_v32.py):
|
|
13
|
-
- CREATE IF NOT EXISTS for idempotency
|
|
14
|
-
- profile_id where applicable
|
|
15
|
-
- Never ALTER existing column types (add new columns only)
|
|
16
|
-
|
|
17
|
-
Part of Qualixar | Author: Varun Pratap Bhardwaj
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
from __future__ import annotations
|
|
21
|
-
|
|
22
|
-
import logging
|
|
23
|
-
import sqlite3
|
|
24
|
-
from typing import Final
|
|
25
|
-
|
|
26
|
-
logger = logging.getLogger(__name__)
|
|
27
|
-
|
|
28
|
-
# ---------------------------------------------------------------------------
|
|
29
|
-
# Table names (for reference and rollback)
|
|
30
|
-
# ---------------------------------------------------------------------------
|
|
31
|
-
|
|
32
|
-
V343_TABLES: Final[tuple[str, ...]] = (
|
|
33
|
-
"mesh_peers",
|
|
34
|
-
"mesh_messages",
|
|
35
|
-
"mesh_state",
|
|
36
|
-
"mesh_locks",
|
|
37
|
-
"mesh_events",
|
|
38
|
-
"ingestion_log",
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
# ---------------------------------------------------------------------------
|
|
42
|
-
# DDL — Phase C: Mesh Broker Tables
|
|
43
|
-
# ---------------------------------------------------------------------------
|
|
44
|
-
|
|
45
|
-
_MESH_DDL = """
|
|
46
|
-
-- Mesh Peers (profile_id = tenant boundary; see M023)
|
|
47
|
-
CREATE TABLE IF NOT EXISTS mesh_peers (
|
|
48
|
-
peer_id TEXT PRIMARY KEY,
|
|
49
|
-
session_id TEXT NOT NULL,
|
|
50
|
-
summary TEXT DEFAULT '',
|
|
51
|
-
status TEXT DEFAULT 'active',
|
|
52
|
-
host TEXT DEFAULT '127.0.0.1',
|
|
53
|
-
port INTEGER DEFAULT 0,
|
|
54
|
-
registered_at TEXT NOT NULL,
|
|
55
|
-
last_heartbeat TEXT NOT NULL,
|
|
56
|
-
profile_id TEXT NOT NULL DEFAULT 'default'
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
-- Mesh Messages
|
|
60
|
-
CREATE TABLE IF NOT EXISTS mesh_messages (
|
|
61
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
62
|
-
from_peer TEXT NOT NULL,
|
|
63
|
-
to_peer TEXT NOT NULL,
|
|
64
|
-
msg_type TEXT DEFAULT 'text',
|
|
65
|
-
content TEXT NOT NULL,
|
|
66
|
-
read INTEGER DEFAULT 0,
|
|
67
|
-
created_at TEXT NOT NULL,
|
|
68
|
-
profile_id TEXT NOT NULL DEFAULT 'default'
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
-- Mesh State (shared key-value store, per tenant)
|
|
72
|
-
CREATE TABLE IF NOT EXISTS mesh_state (
|
|
73
|
-
profile_id TEXT NOT NULL DEFAULT 'default',
|
|
74
|
-
key TEXT NOT NULL,
|
|
75
|
-
value TEXT NOT NULL,
|
|
76
|
-
set_by TEXT NOT NULL,
|
|
77
|
-
updated_at TEXT NOT NULL,
|
|
78
|
-
PRIMARY KEY (profile_id, key)
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
-- Mesh Locks (file-level locks for coordination, per tenant)
|
|
82
|
-
CREATE TABLE IF NOT EXISTS mesh_locks (
|
|
83
|
-
profile_id TEXT NOT NULL DEFAULT 'default',
|
|
84
|
-
file_path TEXT NOT NULL,
|
|
85
|
-
locked_by TEXT NOT NULL,
|
|
86
|
-
locked_at TEXT NOT NULL,
|
|
87
|
-
expires_at TEXT NOT NULL DEFAULT '9999-12-31T23:59:59Z',
|
|
88
|
-
PRIMARY KEY (profile_id, file_path)
|
|
89
|
-
);
|
|
90
|
-
|
|
91
|
-
-- Mesh Events (audit log)
|
|
92
|
-
CREATE TABLE IF NOT EXISTS mesh_events (
|
|
93
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
94
|
-
event_type TEXT NOT NULL,
|
|
95
|
-
payload TEXT DEFAULT '{}',
|
|
96
|
-
emitted_by TEXT NOT NULL,
|
|
97
|
-
created_at TEXT NOT NULL,
|
|
98
|
-
profile_id TEXT NOT NULL DEFAULT 'default'
|
|
99
|
-
);
|
|
100
|
-
|
|
101
|
-
-- NOTE: profile-leading indexes live in migration M023, never here — on an
|
|
102
|
-
-- upgrade the profile_id column does not exist when this DDL runs (the old
|
|
103
|
-
-- table already exists, so CREATE TABLE IF NOT EXISTS no-ops), and a
|
|
104
|
-
-- CREATE INDEX on the missing column would abort engine init.
|
|
105
|
-
CREATE INDEX IF NOT EXISTS idx_mesh_messages_to
|
|
106
|
-
ON mesh_messages(to_peer, read);
|
|
107
|
-
CREATE INDEX IF NOT EXISTS idx_mesh_events_type
|
|
108
|
-
ON mesh_events(event_type, created_at);
|
|
109
|
-
"""
|
|
110
|
-
|
|
111
|
-
# ---------------------------------------------------------------------------
|
|
112
|
-
# DDL — Phase D: Entity Compilation (ALTER entity_profiles)
|
|
113
|
-
# ---------------------------------------------------------------------------
|
|
114
|
-
|
|
115
|
-
_ENTITY_COMPILATION_ALTERS = [
|
|
116
|
-
"ALTER TABLE entity_profiles ADD COLUMN project_name TEXT DEFAULT ''",
|
|
117
|
-
"ALTER TABLE entity_profiles ADD COLUMN compiled_truth TEXT DEFAULT ''",
|
|
118
|
-
"ALTER TABLE entity_profiles ADD COLUMN timeline TEXT DEFAULT '[]'",
|
|
119
|
-
"ALTER TABLE entity_profiles ADD COLUMN compilation_confidence REAL DEFAULT 0.5",
|
|
120
|
-
"ALTER TABLE entity_profiles ADD COLUMN last_compiled_at TEXT DEFAULT NULL",
|
|
121
|
-
]
|
|
122
|
-
|
|
123
|
-
_ENTITY_COMPILATION_INDEX = """
|
|
124
|
-
CREATE UNIQUE INDEX IF NOT EXISTS idx_entity_profiles_compilation
|
|
125
|
-
ON entity_profiles(entity_id, profile_id, project_name);
|
|
126
|
-
CREATE INDEX IF NOT EXISTS idx_entity_profiles_project
|
|
127
|
-
ON entity_profiles(profile_id, project_name);
|
|
128
|
-
"""
|
|
129
|
-
|
|
130
|
-
# ---------------------------------------------------------------------------
|
|
131
|
-
# DDL — Phase E: Ingestion Log
|
|
132
|
-
# ---------------------------------------------------------------------------
|
|
133
|
-
|
|
134
|
-
_INGESTION_DDL = """
|
|
135
|
-
CREATE TABLE IF NOT EXISTS ingestion_log (
|
|
136
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
137
|
-
profile_id TEXT NOT NULL DEFAULT 'default',
|
|
138
|
-
source_type TEXT NOT NULL,
|
|
139
|
-
dedup_key TEXT NOT NULL,
|
|
140
|
-
fact_ids TEXT DEFAULT '[]',
|
|
141
|
-
metadata TEXT DEFAULT '{}',
|
|
142
|
-
status TEXT DEFAULT 'ingested',
|
|
143
|
-
ingested_at TEXT NOT NULL,
|
|
144
|
-
UNIQUE(profile_id, source_type, dedup_key)
|
|
145
|
-
);
|
|
146
|
-
CREATE INDEX IF NOT EXISTS idx_ingestion_dedup
|
|
147
|
-
ON ingestion_log(profile_id, source_type, dedup_key);
|
|
148
|
-
"""
|
|
149
|
-
|
|
150
|
-
# ---------------------------------------------------------------------------
|
|
151
|
-
# Version marker
|
|
152
|
-
# ---------------------------------------------------------------------------
|
|
153
|
-
|
|
154
|
-
_VERSION_DDL = """
|
|
155
|
-
CREATE TABLE IF NOT EXISTS schema_version (
|
|
156
|
-
version TEXT PRIMARY KEY,
|
|
157
|
-
applied_at TEXT NOT NULL
|
|
158
|
-
);
|
|
159
|
-
"""
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
# ---------------------------------------------------------------------------
|
|
163
|
-
# Migration runner
|
|
164
|
-
# ---------------------------------------------------------------------------
|
|
165
|
-
|
|
166
|
-
# ---------------------------------------------------------------------------
|
|
167
|
-
# DDL — v3.4.6: Mesh Connected Brain (broadcast, project routing, offline queue)
|
|
168
|
-
# ---------------------------------------------------------------------------
|
|
169
|
-
|
|
170
|
-
_MESH_V346_ALTERS = [
|
|
171
|
-
"ALTER TABLE mesh_peers ADD COLUMN project_path TEXT DEFAULT ''",
|
|
172
|
-
"ALTER TABLE mesh_peers ADD COLUMN agent_type TEXT DEFAULT 'unknown'",
|
|
173
|
-
"ALTER TABLE mesh_messages ADD COLUMN expires_at TEXT DEFAULT NULL",
|
|
174
|
-
"ALTER TABLE mesh_messages ADD COLUMN target_type TEXT DEFAULT 'peer'",
|
|
175
|
-
"ALTER TABLE mesh_messages ADD COLUMN project_path TEXT DEFAULT ''",
|
|
176
|
-
]
|
|
177
|
-
|
|
178
|
-
_MESH_V346_DDL = """
|
|
179
|
-
-- Read tracking for broadcast/project messages (each peer tracks own reads)
|
|
180
|
-
CREATE TABLE IF NOT EXISTS mesh_reads (
|
|
181
|
-
message_id INTEGER NOT NULL,
|
|
182
|
-
peer_id TEXT NOT NULL,
|
|
183
|
-
read_at TEXT NOT NULL,
|
|
184
|
-
PRIMARY KEY (message_id, peer_id)
|
|
185
|
-
);
|
|
186
|
-
|
|
187
|
-
CREATE INDEX IF NOT EXISTS idx_mesh_messages_target
|
|
188
|
-
ON mesh_messages(target_type, project_path);
|
|
189
|
-
CREATE INDEX IF NOT EXISTS idx_mesh_messages_expires
|
|
190
|
-
ON mesh_messages(expires_at);
|
|
191
|
-
CREATE INDEX IF NOT EXISTS idx_mesh_peers_project
|
|
192
|
-
ON mesh_peers(project_path);
|
|
193
|
-
"""
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
def apply_v346_schema(db_path: str | sqlite3.Connection) -> dict:
|
|
197
|
-
"""Apply v3.4.6 mesh enhancements. Idempotent."""
|
|
198
|
-
result = {"applied": [], "errors": []}
|
|
199
|
-
|
|
200
|
-
if isinstance(db_path, sqlite3.Connection):
|
|
201
|
-
conn = db_path
|
|
202
|
-
own_connection = False
|
|
203
|
-
else:
|
|
204
|
-
conn = sqlite3.connect(str(db_path))
|
|
205
|
-
own_connection = True
|
|
206
|
-
|
|
207
|
-
try:
|
|
208
|
-
for alter_sql in _MESH_V346_ALTERS:
|
|
209
|
-
try:
|
|
210
|
-
conn.execute(alter_sql)
|
|
211
|
-
col_name = alter_sql.split("ADD COLUMN")[1].strip().split()[0]
|
|
212
|
-
result["applied"].append(col_name)
|
|
213
|
-
except sqlite3.OperationalError:
|
|
214
|
-
pass # Column already exists
|
|
215
|
-
|
|
216
|
-
try:
|
|
217
|
-
conn.executescript(_MESH_V346_DDL)
|
|
218
|
-
result["applied"].append("mesh_reads table + indexes")
|
|
219
|
-
except sqlite3.OperationalError as e:
|
|
220
|
-
result["errors"].append(f"mesh_v346: {e}")
|
|
221
|
-
|
|
222
|
-
conn.execute(
|
|
223
|
-
"INSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (?, ?)",
|
|
224
|
-
("3.4.6", __import__("datetime").datetime.now().isoformat()),
|
|
225
|
-
)
|
|
226
|
-
conn.commit()
|
|
227
|
-
|
|
228
|
-
if result["applied"]:
|
|
229
|
-
logger.info("Schema v3.4.6 applied: %s", ", ".join(result["applied"]))
|
|
230
|
-
|
|
231
|
-
except Exception as e:
|
|
232
|
-
result["errors"].append(f"fatal: {e}")
|
|
233
|
-
finally:
|
|
234
|
-
if own_connection:
|
|
235
|
-
conn.close()
|
|
236
|
-
|
|
237
|
-
return result
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
def apply_v343_schema(db_path: str | sqlite3.Connection) -> dict:
|
|
241
|
-
"""Apply all v3.4.3 schema changes. Idempotent — safe to call multiple times.
|
|
242
|
-
|
|
243
|
-
Returns dict with migration status and any errors.
|
|
244
|
-
"""
|
|
245
|
-
result = {"applied": [], "skipped": [], "errors": []}
|
|
246
|
-
|
|
247
|
-
if isinstance(db_path, sqlite3.Connection):
|
|
248
|
-
conn = db_path
|
|
249
|
-
own_connection = False
|
|
250
|
-
else:
|
|
251
|
-
conn = sqlite3.connect(str(db_path))
|
|
252
|
-
own_connection = True
|
|
253
|
-
|
|
254
|
-
try:
|
|
255
|
-
# Check if already applied
|
|
256
|
-
try:
|
|
257
|
-
row = conn.execute(
|
|
258
|
-
"SELECT version FROM schema_version WHERE version = '3.4.3'"
|
|
259
|
-
).fetchone()
|
|
260
|
-
if row:
|
|
261
|
-
result["skipped"].append("v3.4.3 already applied")
|
|
262
|
-
return result
|
|
263
|
-
except sqlite3.OperationalError:
|
|
264
|
-
pass # schema_version table doesn't exist yet
|
|
265
|
-
|
|
266
|
-
# Apply version table
|
|
267
|
-
conn.executescript(_VERSION_DDL)
|
|
268
|
-
|
|
269
|
-
# Phase C: Mesh tables
|
|
270
|
-
try:
|
|
271
|
-
conn.executescript(_MESH_DDL)
|
|
272
|
-
result["applied"].append("mesh tables (5 tables, 2 indexes)")
|
|
273
|
-
except sqlite3.OperationalError as e:
|
|
274
|
-
result["errors"].append(f"mesh: {e}")
|
|
275
|
-
|
|
276
|
-
# Phase D: Entity compilation ALTER TABLE
|
|
277
|
-
for alter_sql in _ENTITY_COMPILATION_ALTERS:
|
|
278
|
-
try:
|
|
279
|
-
conn.execute(alter_sql)
|
|
280
|
-
result["applied"].append(alter_sql.split("ADD COLUMN")[1].strip().split()[0])
|
|
281
|
-
except sqlite3.OperationalError:
|
|
282
|
-
# Column already exists — fine (idempotent)
|
|
283
|
-
pass
|
|
284
|
-
|
|
285
|
-
try:
|
|
286
|
-
conn.executescript(_ENTITY_COMPILATION_INDEX)
|
|
287
|
-
result["applied"].append("entity_profiles indexes")
|
|
288
|
-
except sqlite3.OperationalError as e:
|
|
289
|
-
result["errors"].append(f"entity indexes: {e}")
|
|
290
|
-
|
|
291
|
-
# Phase E: Ingestion log
|
|
292
|
-
try:
|
|
293
|
-
conn.executescript(_INGESTION_DDL)
|
|
294
|
-
result["applied"].append("ingestion_log table")
|
|
295
|
-
except sqlite3.OperationalError as e:
|
|
296
|
-
result["errors"].append(f"ingestion: {e}")
|
|
297
|
-
|
|
298
|
-
# Mark version
|
|
299
|
-
conn.execute(
|
|
300
|
-
"INSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (?, ?)",
|
|
301
|
-
("3.4.3", __import__("datetime").datetime.now().isoformat()),
|
|
302
|
-
)
|
|
303
|
-
conn.commit()
|
|
304
|
-
|
|
305
|
-
if result["applied"]:
|
|
306
|
-
logger.info("Schema v3.4.3 applied: %s", ", ".join(result["applied"]))
|
|
307
|
-
|
|
308
|
-
except Exception as e:
|
|
309
|
-
result["errors"].append(f"fatal: {e}")
|
|
310
|
-
logger.error("Schema v3.4.3 migration failed: %s", e)
|
|
311
|
-
finally:
|
|
312
|
-
if own_connection:
|
|
313
|
-
conn.close()
|
|
314
|
-
|
|
315
|
-
return result
|