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,282 +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 — CodeGraph Module
|
|
4
|
-
|
|
5
|
-
"""DDL for the code_graph.db database.
|
|
6
|
-
|
|
7
|
-
Single source of truth for all CodeGraph tables.
|
|
8
|
-
No other module should contain CREATE TABLE statements.
|
|
9
|
-
|
|
10
|
-
Tables:
|
|
11
|
-
1. graph_nodes — Code entities (functions, classes, files, modules)
|
|
12
|
-
2. graph_edges — Relationships (calls, imports, inherits, contains, tested_by)
|
|
13
|
-
3. graph_files — File tracking for incremental updates
|
|
14
|
-
4. graph_metadata — Key-value store for graph-level config
|
|
15
|
-
5. code_memory_links — Bridge table linking code nodes to SLM memory facts
|
|
16
|
-
6. code_node_embeddings — vec0 virtual table for semantic search (optional)
|
|
17
|
-
7. graph_nodes_fts — FTS5 virtual table for text search
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
from __future__ import annotations
|
|
21
|
-
|
|
22
|
-
import logging
|
|
23
|
-
import sqlite3
|
|
24
|
-
|
|
25
|
-
logger = logging.getLogger(__name__)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
# ---------------------------------------------------------------------------
|
|
29
|
-
# DDL Statements (executed in order)
|
|
30
|
-
# ---------------------------------------------------------------------------
|
|
31
|
-
|
|
32
|
-
_DDL_STATEMENTS: tuple[str, ...] = (
|
|
33
|
-
# ── Table 1: graph_nodes ──────────────────────────────────────────
|
|
34
|
-
"""
|
|
35
|
-
CREATE TABLE IF NOT EXISTS graph_nodes (
|
|
36
|
-
node_id TEXT PRIMARY KEY,
|
|
37
|
-
kind TEXT NOT NULL CHECK (kind IN ('file', 'class', 'function', 'method', 'module')),
|
|
38
|
-
name TEXT NOT NULL,
|
|
39
|
-
qualified_name TEXT NOT NULL UNIQUE,
|
|
40
|
-
file_path TEXT NOT NULL,
|
|
41
|
-
line_start INTEGER NOT NULL DEFAULT 0,
|
|
42
|
-
line_end INTEGER NOT NULL DEFAULT 0,
|
|
43
|
-
language TEXT NOT NULL DEFAULT '',
|
|
44
|
-
parent_name TEXT,
|
|
45
|
-
signature TEXT,
|
|
46
|
-
docstring TEXT,
|
|
47
|
-
is_test INTEGER NOT NULL DEFAULT 0,
|
|
48
|
-
content_hash TEXT,
|
|
49
|
-
community_id INTEGER,
|
|
50
|
-
extra_json TEXT NOT NULL DEFAULT '{}',
|
|
51
|
-
created_at REAL NOT NULL,
|
|
52
|
-
updated_at REAL NOT NULL
|
|
53
|
-
)
|
|
54
|
-
""",
|
|
55
|
-
|
|
56
|
-
# ── Table 2: graph_edges ──────────────────────────────────────────
|
|
57
|
-
"""
|
|
58
|
-
CREATE TABLE IF NOT EXISTS graph_edges (
|
|
59
|
-
edge_id TEXT PRIMARY KEY,
|
|
60
|
-
kind TEXT NOT NULL CHECK (kind IN ('calls', 'imports', 'inherits', 'contains', 'tested_by', 'depends_on')),
|
|
61
|
-
source_node_id TEXT NOT NULL REFERENCES graph_nodes(node_id) ON DELETE CASCADE,
|
|
62
|
-
target_node_id TEXT NOT NULL REFERENCES graph_nodes(node_id) ON DELETE CASCADE,
|
|
63
|
-
file_path TEXT NOT NULL,
|
|
64
|
-
line INTEGER NOT NULL DEFAULT 0,
|
|
65
|
-
confidence REAL NOT NULL DEFAULT 1.0 CHECK (confidence >= 0.0 AND confidence <= 1.0),
|
|
66
|
-
extra_json TEXT NOT NULL DEFAULT '{}',
|
|
67
|
-
created_at REAL NOT NULL,
|
|
68
|
-
updated_at REAL NOT NULL
|
|
69
|
-
)
|
|
70
|
-
""",
|
|
71
|
-
|
|
72
|
-
# ── Table 3: graph_files ──────────────────────────────────────────
|
|
73
|
-
"""
|
|
74
|
-
CREATE TABLE IF NOT EXISTS graph_files (
|
|
75
|
-
file_path TEXT PRIMARY KEY,
|
|
76
|
-
content_hash TEXT NOT NULL,
|
|
77
|
-
mtime REAL NOT NULL,
|
|
78
|
-
language TEXT NOT NULL,
|
|
79
|
-
node_count INTEGER NOT NULL DEFAULT 0,
|
|
80
|
-
edge_count INTEGER NOT NULL DEFAULT 0,
|
|
81
|
-
last_indexed REAL NOT NULL
|
|
82
|
-
)
|
|
83
|
-
""",
|
|
84
|
-
|
|
85
|
-
# ── Table 4: graph_metadata ───────────────────────────────────────
|
|
86
|
-
"""
|
|
87
|
-
CREATE TABLE IF NOT EXISTS graph_metadata (
|
|
88
|
-
key TEXT PRIMARY KEY,
|
|
89
|
-
value TEXT NOT NULL,
|
|
90
|
-
updated_at REAL NOT NULL
|
|
91
|
-
)
|
|
92
|
-
""",
|
|
93
|
-
|
|
94
|
-
# ── Table 5: code_memory_links ────────────────────────────────────
|
|
95
|
-
"""
|
|
96
|
-
CREATE TABLE IF NOT EXISTS code_memory_links (
|
|
97
|
-
link_id TEXT PRIMARY KEY,
|
|
98
|
-
code_node_id TEXT NOT NULL REFERENCES graph_nodes(node_id) ON DELETE CASCADE,
|
|
99
|
-
slm_fact_id TEXT NOT NULL,
|
|
100
|
-
slm_entity_id TEXT,
|
|
101
|
-
link_type TEXT NOT NULL CHECK (link_type IN (
|
|
102
|
-
'mentions', 'decision_about', 'bug_fix', 'refactor', 'design_rationale'
|
|
103
|
-
)),
|
|
104
|
-
confidence REAL NOT NULL DEFAULT 0.8 CHECK (confidence >= 0.0 AND confidence <= 1.0),
|
|
105
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
106
|
-
last_verified TEXT,
|
|
107
|
-
is_stale INTEGER NOT NULL DEFAULT 0,
|
|
108
|
-
enriched_description TEXT
|
|
109
|
-
)
|
|
110
|
-
""",
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
#: Columns added to existing tables after their first release.
|
|
114
|
-
#:
|
|
115
|
-
#: This file's DDL is all ``CREATE TABLE IF NOT EXISTS`` and code_graph.db has
|
|
116
|
-
#: no migration framework, so appending a column to a _DDL_STATEMENTS block
|
|
117
|
-
#: reaches NEW databases only — every database created by an earlier version
|
|
118
|
-
#: skips the statement entirely and never gains the column. That silent
|
|
119
|
-
#: divergence is what this list exists to close.
|
|
120
|
-
#:
|
|
121
|
-
#: ADDITIVE ONLY: ``ALTER TABLE ... ADD COLUMN`` with no NOT NULL and no
|
|
122
|
-
#: default, so it cannot fail on a populated table and cannot rewrite a row.
|
|
123
|
-
#: Never put a DROP, a RENAME, or a type change here.
|
|
124
|
-
_ADDITIVE_COLUMNS: tuple[tuple[str, str, str], ...] = (
|
|
125
|
-
# (table, column, type) — enrichment text for a code↔memory link. Lives
|
|
126
|
-
# here rather than in memory.db so the user's own fact wording is never
|
|
127
|
-
# overwritten, and so recall (which never opens code_graph.db) is unaffected.
|
|
128
|
-
("code_memory_links", "enriched_description", "TEXT"),
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
def _apply_additive_columns(cursor: sqlite3.Cursor) -> None:
|
|
133
|
-
"""Add any missing column from _ADDITIVE_COLUMNS. Idempotent."""
|
|
134
|
-
for table, column, coltype in _ADDITIVE_COLUMNS:
|
|
135
|
-
try:
|
|
136
|
-
existing = {row[1] for row in cursor.execute(f"PRAGMA table_info({table})")}
|
|
137
|
-
except sqlite3.Error as exc: # table absent on a partial database
|
|
138
|
-
logger.debug("additive column probe skipped for %s: %s", table, exc)
|
|
139
|
-
continue
|
|
140
|
-
if not existing or column in existing:
|
|
141
|
-
continue
|
|
142
|
-
try:
|
|
143
|
-
cursor.execute(f"ALTER TABLE {table} ADD COLUMN {column} {coltype}")
|
|
144
|
-
logger.info("code_graph schema: added %s.%s", table, column)
|
|
145
|
-
except sqlite3.OperationalError as exc:
|
|
146
|
-
# Concurrent initialiser won the race, or the column appeared
|
|
147
|
-
# between the probe and the ALTER. Both are benign.
|
|
148
|
-
logger.debug("additive column %s.%s not applied: %s", table, column, exc)
|
|
149
|
-
|
|
150
|
-
# Indexes (separate from tables for clarity)
|
|
151
|
-
_INDEX_STATEMENTS: tuple[str, ...] = (
|
|
152
|
-
# graph_nodes indexes
|
|
153
|
-
"CREATE INDEX IF NOT EXISTS idx_gn_file_path ON graph_nodes(file_path)",
|
|
154
|
-
"CREATE INDEX IF NOT EXISTS idx_gn_kind ON graph_nodes(kind)",
|
|
155
|
-
"CREATE INDEX IF NOT EXISTS idx_gn_name ON graph_nodes(name)",
|
|
156
|
-
"CREATE INDEX IF NOT EXISTS idx_gn_qualified ON graph_nodes(qualified_name)",
|
|
157
|
-
"CREATE INDEX IF NOT EXISTS idx_gn_parent ON graph_nodes(parent_name)",
|
|
158
|
-
"CREATE INDEX IF NOT EXISTS idx_gn_language ON graph_nodes(language)",
|
|
159
|
-
"CREATE INDEX IF NOT EXISTS idx_gn_community ON graph_nodes(community_id)",
|
|
160
|
-
# graph_edges indexes
|
|
161
|
-
"CREATE INDEX IF NOT EXISTS idx_ge_source ON graph_edges(source_node_id)",
|
|
162
|
-
"CREATE INDEX IF NOT EXISTS idx_ge_target ON graph_edges(target_node_id)",
|
|
163
|
-
"CREATE INDEX IF NOT EXISTS idx_ge_kind ON graph_edges(kind)",
|
|
164
|
-
"CREATE INDEX IF NOT EXISTS idx_ge_file ON graph_edges(file_path)",
|
|
165
|
-
"CREATE INDEX IF NOT EXISTS idx_ge_source_kind ON graph_edges(source_node_id, kind)",
|
|
166
|
-
"CREATE INDEX IF NOT EXISTS idx_ge_target_kind ON graph_edges(target_node_id, kind)",
|
|
167
|
-
# code_memory_links indexes
|
|
168
|
-
"CREATE INDEX IF NOT EXISTS idx_cml_node ON code_memory_links(code_node_id)",
|
|
169
|
-
"CREATE INDEX IF NOT EXISTS idx_cml_fact ON code_memory_links(slm_fact_id)",
|
|
170
|
-
"CREATE INDEX IF NOT EXISTS idx_cml_entity ON code_memory_links(slm_entity_id)",
|
|
171
|
-
"CREATE INDEX IF NOT EXISTS idx_cml_type ON code_memory_links(link_type)",
|
|
172
|
-
"CREATE INDEX IF NOT EXISTS idx_cml_stale ON code_memory_links(is_stale)",
|
|
173
|
-
)
|
|
174
|
-
|
|
175
|
-
# FTS5 virtual table + sync triggers
|
|
176
|
-
_FTS5_STATEMENTS: tuple[str, ...] = (
|
|
177
|
-
"""
|
|
178
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS graph_nodes_fts USING fts5(
|
|
179
|
-
name,
|
|
180
|
-
qualified_name,
|
|
181
|
-
file_path,
|
|
182
|
-
signature,
|
|
183
|
-
content='graph_nodes',
|
|
184
|
-
content_rowid='rowid',
|
|
185
|
-
tokenize='porter unicode61'
|
|
186
|
-
)
|
|
187
|
-
""",
|
|
188
|
-
# Auto-sync trigger: INSERT
|
|
189
|
-
"""
|
|
190
|
-
CREATE TRIGGER IF NOT EXISTS trg_gn_fts_insert AFTER INSERT ON graph_nodes
|
|
191
|
-
BEGIN
|
|
192
|
-
INSERT INTO graph_nodes_fts(rowid, name, qualified_name, file_path, signature)
|
|
193
|
-
VALUES (NEW.rowid, NEW.name, NEW.qualified_name, NEW.file_path, NEW.signature);
|
|
194
|
-
END
|
|
195
|
-
""",
|
|
196
|
-
# Auto-sync trigger: DELETE
|
|
197
|
-
"""
|
|
198
|
-
CREATE TRIGGER IF NOT EXISTS trg_gn_fts_delete AFTER DELETE ON graph_nodes
|
|
199
|
-
BEGIN
|
|
200
|
-
INSERT INTO graph_nodes_fts(graph_nodes_fts, rowid, name, qualified_name, file_path, signature)
|
|
201
|
-
VALUES ('delete', OLD.rowid, OLD.name, OLD.qualified_name, OLD.file_path, OLD.signature);
|
|
202
|
-
END
|
|
203
|
-
""",
|
|
204
|
-
# Auto-sync trigger: UPDATE
|
|
205
|
-
"""
|
|
206
|
-
CREATE TRIGGER IF NOT EXISTS trg_gn_fts_update AFTER UPDATE ON graph_nodes
|
|
207
|
-
BEGIN
|
|
208
|
-
INSERT INTO graph_nodes_fts(graph_nodes_fts, rowid, name, qualified_name, file_path, signature)
|
|
209
|
-
VALUES ('delete', OLD.rowid, OLD.name, OLD.qualified_name, OLD.file_path, OLD.signature);
|
|
210
|
-
INSERT INTO graph_nodes_fts(rowid, name, qualified_name, file_path, signature)
|
|
211
|
-
VALUES (NEW.rowid, NEW.name, NEW.qualified_name, NEW.file_path, NEW.signature);
|
|
212
|
-
END
|
|
213
|
-
""",
|
|
214
|
-
)
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
# ---------------------------------------------------------------------------
|
|
218
|
-
# Public API (matches SLM's schema.py pattern)
|
|
219
|
-
# ---------------------------------------------------------------------------
|
|
220
|
-
|
|
221
|
-
def create_all_tables(conn: sqlite3.Connection) -> None:
|
|
222
|
-
"""Create all CodeGraph tables, indexes, and triggers.
|
|
223
|
-
|
|
224
|
-
Idempotent — safe to call multiple times (all DDL uses IF NOT EXISTS).
|
|
225
|
-
"""
|
|
226
|
-
cursor = conn.cursor()
|
|
227
|
-
|
|
228
|
-
# Enable foreign keys
|
|
229
|
-
cursor.execute("PRAGMA foreign_keys = ON")
|
|
230
|
-
|
|
231
|
-
# Core tables
|
|
232
|
-
for ddl in _DDL_STATEMENTS:
|
|
233
|
-
cursor.execute(ddl)
|
|
234
|
-
|
|
235
|
-
# Columns added after a table's first release. Must run AFTER the CREATEs
|
|
236
|
-
# (so a fresh database already has them and this is a no-op) and BEFORE the
|
|
237
|
-
# indexes (in case one is ever declared on an added column).
|
|
238
|
-
_apply_additive_columns(cursor)
|
|
239
|
-
|
|
240
|
-
# Indexes
|
|
241
|
-
for idx in _INDEX_STATEMENTS:
|
|
242
|
-
cursor.execute(idx)
|
|
243
|
-
|
|
244
|
-
# FTS5 + triggers (may fail if SQLite lacks FTS5 — non-fatal)
|
|
245
|
-
for stmt in _FTS5_STATEMENTS:
|
|
246
|
-
try:
|
|
247
|
-
cursor.execute(stmt)
|
|
248
|
-
except sqlite3.OperationalError as exc:
|
|
249
|
-
logger.warning("FTS5 setup failed (non-fatal): %s", exc)
|
|
250
|
-
|
|
251
|
-
# vec0 virtual table for embeddings (may fail if sqlite-vec not loaded)
|
|
252
|
-
try:
|
|
253
|
-
cursor.execute("""
|
|
254
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS code_node_embeddings USING vec0(
|
|
255
|
-
node_id TEXT PRIMARY KEY,
|
|
256
|
-
embedding float[768] distance_metric=cosine
|
|
257
|
-
)
|
|
258
|
-
""")
|
|
259
|
-
except sqlite3.OperationalError as exc:
|
|
260
|
-
logger.warning("vec0 setup failed (non-fatal, embeddings disabled): %s", exc)
|
|
261
|
-
|
|
262
|
-
conn.commit()
|
|
263
|
-
logger.info("CodeGraph schema initialized (%d tables, %d indexes)",
|
|
264
|
-
len(_DDL_STATEMENTS), len(_INDEX_STATEMENTS))
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
def drop_all_tables(conn: sqlite3.Connection) -> None:
|
|
268
|
-
"""Drop all CodeGraph tables. Used in tests only."""
|
|
269
|
-
cursor = conn.cursor()
|
|
270
|
-
for table in (
|
|
271
|
-
"graph_nodes_fts", "code_node_embeddings",
|
|
272
|
-
"code_memory_links", "graph_metadata",
|
|
273
|
-
"graph_files", "graph_edges", "graph_nodes",
|
|
274
|
-
):
|
|
275
|
-
try:
|
|
276
|
-
cursor.execute(f"DROP TABLE IF EXISTS {table}")
|
|
277
|
-
except sqlite3.OperationalError:
|
|
278
|
-
pass
|
|
279
|
-
# Drop triggers
|
|
280
|
-
for trigger in ("trg_gn_fts_insert", "trg_gn_fts_delete", "trg_gn_fts_update"):
|
|
281
|
-
cursor.execute(f"DROP TRIGGER IF EXISTS {trigger}")
|
|
282
|
-
conn.commit()
|
|
@@ -1,382 +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
|
-
|
|
5
|
-
"""SuperLocalMemory V3.2 -- Schema Extensions (Associative Memory).
|
|
6
|
-
|
|
7
|
-
Phase 0.5 creates this file with EMPTY V32_DDL.
|
|
8
|
-
Each implementing phase OWNS its DDL and appends here:
|
|
9
|
-
- Phase 1 adds: fact_access_log, fact_embeddings (vec0), embedding_metadata
|
|
10
|
-
- Phase 2 adds: fact_context
|
|
11
|
-
- Phase 3 adds: association_edges, activation_cache, fact_importance
|
|
12
|
-
- Phase 4 adds: fact_temporal_validity
|
|
13
|
-
- Phase 5 adds: core_memory_blocks
|
|
14
|
-
|
|
15
|
-
Design rules:
|
|
16
|
-
- profile_id + FK CASCADE on every table (Rule 01)
|
|
17
|
-
- CREATE IF NOT EXISTS for idempotency (Rule 02)
|
|
18
|
-
- Rollback SQL in V32_ROLLBACK (Rule 20)
|
|
19
|
-
- Never ALTER existing tables (Rule 02)
|
|
20
|
-
|
|
21
|
-
Part of Qualixar | Author: Varun Pratap Bhardwaj
|
|
22
|
-
"""
|
|
23
|
-
|
|
24
|
-
from __future__ import annotations
|
|
25
|
-
|
|
26
|
-
from typing import Final
|
|
27
|
-
|
|
28
|
-
# ---------------------------------------------------------------------------
|
|
29
|
-
# Table names (for drop_all parity -- Rule 20)
|
|
30
|
-
# All 9 names listed upfront. DDL added by each phase.
|
|
31
|
-
# ---------------------------------------------------------------------------
|
|
32
|
-
|
|
33
|
-
V32_TABLES: Final[tuple[str, ...]] = (
|
|
34
|
-
"fact_retention",
|
|
35
|
-
"polar_embeddings",
|
|
36
|
-
"embedding_quantization_metadata",
|
|
37
|
-
"fact_access_log",
|
|
38
|
-
"fact_embeddings",
|
|
39
|
-
"embedding_metadata",
|
|
40
|
-
"fact_context",
|
|
41
|
-
"association_edges",
|
|
42
|
-
"activation_cache",
|
|
43
|
-
"fact_importance",
|
|
44
|
-
"fact_temporal_validity",
|
|
45
|
-
"core_memory_blocks",
|
|
46
|
-
"ccq_consolidated_blocks",
|
|
47
|
-
"ccq_audit_log",
|
|
48
|
-
"soft_prompt_templates",
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
# ---------------------------------------------------------------------------
|
|
52
|
-
# DDL Statements -- EMPTY at Phase 0.5. Each phase appends its DDL.
|
|
53
|
-
# Phase LLDs are AUTHORITATIVE for column names and constraints.
|
|
54
|
-
# ---------------------------------------------------------------------------
|
|
55
|
-
|
|
56
|
-
V32_DDL: list[str] = [
|
|
57
|
-
# --- Phase A: Forgetting Brain (fact_retention) ---
|
|
58
|
-
"""
|
|
59
|
-
CREATE TABLE IF NOT EXISTS fact_retention (
|
|
60
|
-
fact_id TEXT PRIMARY KEY,
|
|
61
|
-
profile_id TEXT NOT NULL,
|
|
62
|
-
retention_score REAL NOT NULL DEFAULT 1.0,
|
|
63
|
-
memory_strength REAL NOT NULL DEFAULT 1.0,
|
|
64
|
-
access_count INTEGER NOT NULL DEFAULT 0,
|
|
65
|
-
last_accessed_at TEXT,
|
|
66
|
-
last_computed_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
67
|
-
lifecycle_zone TEXT NOT NULL DEFAULT 'active'
|
|
68
|
-
CHECK (lifecycle_zone IN ('active', 'warm', 'cold', 'archive', 'forgotten')),
|
|
69
|
-
|
|
70
|
-
FOREIGN KEY (fact_id) REFERENCES atomic_facts (fact_id) ON DELETE CASCADE,
|
|
71
|
-
FOREIGN KEY (profile_id) REFERENCES profiles (profile_id) ON DELETE CASCADE
|
|
72
|
-
);
|
|
73
|
-
CREATE INDEX IF NOT EXISTS idx_retention_profile
|
|
74
|
-
ON fact_retention (profile_id, lifecycle_zone);
|
|
75
|
-
CREATE INDEX IF NOT EXISTS idx_retention_score
|
|
76
|
-
ON fact_retention (profile_id, retention_score DESC);
|
|
77
|
-
""",
|
|
78
|
-
# --- Phase B: PolarQuant Embedding Quantization ---
|
|
79
|
-
"""
|
|
80
|
-
CREATE TABLE IF NOT EXISTS polar_embeddings (
|
|
81
|
-
fact_id TEXT PRIMARY KEY,
|
|
82
|
-
profile_id TEXT NOT NULL,
|
|
83
|
-
radius REAL NOT NULL,
|
|
84
|
-
angle_indices BLOB NOT NULL,
|
|
85
|
-
qjl_bits BLOB,
|
|
86
|
-
bit_width INTEGER NOT NULL DEFAULT 4,
|
|
87
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
88
|
-
|
|
89
|
-
FOREIGN KEY (fact_id) REFERENCES atomic_facts (fact_id) ON DELETE CASCADE,
|
|
90
|
-
FOREIGN KEY (profile_id) REFERENCES profiles (profile_id) ON DELETE CASCADE
|
|
91
|
-
);
|
|
92
|
-
CREATE INDEX IF NOT EXISTS idx_polar_profile
|
|
93
|
-
ON polar_embeddings (profile_id);
|
|
94
|
-
""",
|
|
95
|
-
"""
|
|
96
|
-
CREATE TABLE IF NOT EXISTS embedding_quantization_metadata (
|
|
97
|
-
fact_id TEXT PRIMARY KEY,
|
|
98
|
-
profile_id TEXT NOT NULL,
|
|
99
|
-
quantization_level TEXT NOT NULL DEFAULT 'float32'
|
|
100
|
-
CHECK (quantization_level IN ('float32', 'int8', 'polar4', 'polar2', 'deleted')),
|
|
101
|
-
bit_width INTEGER NOT NULL DEFAULT 32,
|
|
102
|
-
compressed_size_bytes INTEGER,
|
|
103
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
104
|
-
|
|
105
|
-
FOREIGN KEY (fact_id) REFERENCES atomic_facts (fact_id) ON DELETE CASCADE,
|
|
106
|
-
FOREIGN KEY (profile_id) REFERENCES profiles (profile_id) ON DELETE CASCADE
|
|
107
|
-
);
|
|
108
|
-
CREATE INDEX IF NOT EXISTS idx_eqm_profile_level
|
|
109
|
-
ON embedding_quantization_metadata (profile_id, quantization_level);
|
|
110
|
-
""",
|
|
111
|
-
# --- Phase 1: Vector Foundation ---
|
|
112
|
-
"""
|
|
113
|
-
CREATE TABLE IF NOT EXISTS fact_access_log (
|
|
114
|
-
log_id TEXT PRIMARY KEY,
|
|
115
|
-
fact_id TEXT NOT NULL,
|
|
116
|
-
profile_id TEXT NOT NULL DEFAULT 'default',
|
|
117
|
-
accessed_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
118
|
-
access_type TEXT NOT NULL DEFAULT 'recall'
|
|
119
|
-
CHECK (access_type IN ('recall', 'auto_invoke', 'search', 'consolidation')),
|
|
120
|
-
session_id TEXT NOT NULL DEFAULT '',
|
|
121
|
-
|
|
122
|
-
FOREIGN KEY (fact_id) REFERENCES atomic_facts (fact_id)
|
|
123
|
-
ON DELETE CASCADE,
|
|
124
|
-
FOREIGN KEY (profile_id) REFERENCES profiles (profile_id)
|
|
125
|
-
ON DELETE CASCADE
|
|
126
|
-
);
|
|
127
|
-
CREATE INDEX IF NOT EXISTS idx_access_log_fact
|
|
128
|
-
ON fact_access_log (fact_id, accessed_at DESC);
|
|
129
|
-
CREATE INDEX IF NOT EXISTS idx_access_log_profile
|
|
130
|
-
ON fact_access_log (profile_id, accessed_at DESC);
|
|
131
|
-
CREATE INDEX IF NOT EXISTS idx_access_log_profile_fact
|
|
132
|
-
ON fact_access_log (profile_id, fact_id);
|
|
133
|
-
""",
|
|
134
|
-
"""
|
|
135
|
-
CREATE TABLE IF NOT EXISTS embedding_metadata (
|
|
136
|
-
vec_rowid INTEGER PRIMARY KEY,
|
|
137
|
-
fact_id TEXT NOT NULL UNIQUE,
|
|
138
|
-
profile_id TEXT NOT NULL DEFAULT 'default',
|
|
139
|
-
model_name TEXT NOT NULL DEFAULT '',
|
|
140
|
-
dimension INTEGER NOT NULL DEFAULT 768,
|
|
141
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
142
|
-
|
|
143
|
-
FOREIGN KEY (fact_id) REFERENCES atomic_facts (fact_id)
|
|
144
|
-
ON DELETE CASCADE,
|
|
145
|
-
FOREIGN KEY (profile_id) REFERENCES profiles (profile_id)
|
|
146
|
-
ON DELETE CASCADE
|
|
147
|
-
);
|
|
148
|
-
CREATE INDEX IF NOT EXISTS idx_embmeta_fact
|
|
149
|
-
ON embedding_metadata (fact_id);
|
|
150
|
-
CREATE INDEX IF NOT EXISTS idx_embmeta_profile
|
|
151
|
-
ON embedding_metadata (profile_id);
|
|
152
|
-
""",
|
|
153
|
-
# --- Phase 2: Auto-Invoke Engine ---
|
|
154
|
-
"""
|
|
155
|
-
CREATE TABLE IF NOT EXISTS fact_context (
|
|
156
|
-
fact_id TEXT PRIMARY KEY,
|
|
157
|
-
profile_id TEXT NOT NULL,
|
|
158
|
-
contextual_description TEXT NOT NULL,
|
|
159
|
-
keywords TEXT,
|
|
160
|
-
generated_by TEXT NOT NULL DEFAULT 'rules',
|
|
161
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
162
|
-
|
|
163
|
-
FOREIGN KEY (fact_id) REFERENCES atomic_facts (fact_id)
|
|
164
|
-
ON DELETE CASCADE,
|
|
165
|
-
FOREIGN KEY (profile_id) REFERENCES profiles (profile_id)
|
|
166
|
-
ON DELETE CASCADE
|
|
167
|
-
);
|
|
168
|
-
CREATE INDEX IF NOT EXISTS idx_fact_context_profile
|
|
169
|
-
ON fact_context (profile_id);
|
|
170
|
-
""",
|
|
171
|
-
# Phase 4 will add: fact_temporal_validity
|
|
172
|
-
# Phase 5 will add: core_memory_blocks
|
|
173
|
-
|
|
174
|
-
# --- Phase 3: Association Graph ---
|
|
175
|
-
"""
|
|
176
|
-
CREATE TABLE IF NOT EXISTS association_edges (
|
|
177
|
-
edge_id TEXT PRIMARY KEY,
|
|
178
|
-
profile_id TEXT NOT NULL,
|
|
179
|
-
source_fact_id TEXT NOT NULL,
|
|
180
|
-
target_fact_id TEXT NOT NULL,
|
|
181
|
-
association_type TEXT NOT NULL CHECK(association_type IN (
|
|
182
|
-
'auto_link', 'hebbian', 'consolidation', 'user_defined'
|
|
183
|
-
)),
|
|
184
|
-
weight REAL NOT NULL DEFAULT 0.5,
|
|
185
|
-
co_access_count INTEGER NOT NULL DEFAULT 0,
|
|
186
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
187
|
-
last_strengthened TEXT,
|
|
188
|
-
FOREIGN KEY (source_fact_id) REFERENCES atomic_facts(fact_id) ON DELETE CASCADE,
|
|
189
|
-
FOREIGN KEY (target_fact_id) REFERENCES atomic_facts(fact_id) ON DELETE CASCADE,
|
|
190
|
-
FOREIGN KEY (profile_id) REFERENCES profiles(profile_id) ON DELETE CASCADE
|
|
191
|
-
);
|
|
192
|
-
CREATE INDEX IF NOT EXISTS idx_assoc_source
|
|
193
|
-
ON association_edges(source_fact_id, profile_id);
|
|
194
|
-
CREATE INDEX IF NOT EXISTS idx_assoc_target
|
|
195
|
-
ON association_edges(target_fact_id, profile_id);
|
|
196
|
-
CREATE INDEX IF NOT EXISTS idx_assoc_profile
|
|
197
|
-
ON association_edges(profile_id);
|
|
198
|
-
CREATE UNIQUE INDEX IF NOT EXISTS idx_assoc_unique_pair
|
|
199
|
-
ON association_edges(profile_id, source_fact_id, target_fact_id, association_type);
|
|
200
|
-
""",
|
|
201
|
-
"""
|
|
202
|
-
CREATE TABLE IF NOT EXISTS activation_cache (
|
|
203
|
-
cache_id TEXT PRIMARY KEY,
|
|
204
|
-
profile_id TEXT NOT NULL,
|
|
205
|
-
query_hash TEXT NOT NULL,
|
|
206
|
-
node_id TEXT NOT NULL,
|
|
207
|
-
activation_value REAL NOT NULL,
|
|
208
|
-
iteration INTEGER NOT NULL,
|
|
209
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
210
|
-
expires_at TEXT NOT NULL DEFAULT (datetime('now', '+1 hour')),
|
|
211
|
-
FOREIGN KEY (profile_id) REFERENCES profiles(profile_id) ON DELETE CASCADE
|
|
212
|
-
);
|
|
213
|
-
CREATE INDEX IF NOT EXISTS idx_actcache_profile_query
|
|
214
|
-
ON activation_cache(profile_id, query_hash);
|
|
215
|
-
CREATE INDEX IF NOT EXISTS idx_actcache_expires
|
|
216
|
-
ON activation_cache(expires_at);
|
|
217
|
-
""",
|
|
218
|
-
"""
|
|
219
|
-
CREATE TABLE IF NOT EXISTS fact_importance (
|
|
220
|
-
fact_id TEXT PRIMARY KEY,
|
|
221
|
-
profile_id TEXT NOT NULL,
|
|
222
|
-
pagerank_score REAL NOT NULL DEFAULT 0.0,
|
|
223
|
-
community_id INTEGER,
|
|
224
|
-
degree_centrality REAL DEFAULT 0.0,
|
|
225
|
-
computed_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
226
|
-
FOREIGN KEY (fact_id) REFERENCES atomic_facts(fact_id) ON DELETE CASCADE,
|
|
227
|
-
FOREIGN KEY (profile_id) REFERENCES profiles(profile_id) ON DELETE CASCADE
|
|
228
|
-
);
|
|
229
|
-
CREATE INDEX IF NOT EXISTS idx_fact_importance_profile
|
|
230
|
-
ON fact_importance(profile_id);
|
|
231
|
-
CREATE INDEX IF NOT EXISTS idx_fact_importance_pagerank
|
|
232
|
-
ON fact_importance(profile_id, pagerank_score DESC);
|
|
233
|
-
CREATE INDEX IF NOT EXISTS idx_fact_importance_community
|
|
234
|
-
ON fact_importance(profile_id, community_id);
|
|
235
|
-
""",
|
|
236
|
-
# --- Phase 5: Core Memory Blocks (Sleep-Time Consolidation) ---
|
|
237
|
-
"""
|
|
238
|
-
CREATE TABLE IF NOT EXISTS core_memory_blocks (
|
|
239
|
-
block_id TEXT PRIMARY KEY,
|
|
240
|
-
profile_id TEXT NOT NULL,
|
|
241
|
-
block_type TEXT NOT NULL CHECK(block_type IN (
|
|
242
|
-
'user_profile', 'project_context', 'behavioral_patterns',
|
|
243
|
-
'active_decisions', 'learned_preferences', 'custom'
|
|
244
|
-
)),
|
|
245
|
-
content TEXT NOT NULL,
|
|
246
|
-
source_fact_ids TEXT NOT NULL DEFAULT '[]',
|
|
247
|
-
char_count INTEGER NOT NULL DEFAULT 0,
|
|
248
|
-
version INTEGER NOT NULL DEFAULT 1,
|
|
249
|
-
compiled_by TEXT NOT NULL DEFAULT 'rules',
|
|
250
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
251
|
-
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
252
|
-
FOREIGN KEY (profile_id) REFERENCES profiles(profile_id) ON DELETE CASCADE
|
|
253
|
-
);
|
|
254
|
-
CREATE INDEX IF NOT EXISTS idx_core_blocks_profile
|
|
255
|
-
ON core_memory_blocks(profile_id);
|
|
256
|
-
CREATE INDEX IF NOT EXISTS idx_core_blocks_type
|
|
257
|
-
ON core_memory_blocks(profile_id, block_type);
|
|
258
|
-
CREATE UNIQUE INDEX IF NOT EXISTS idx_core_blocks_unique
|
|
259
|
-
ON core_memory_blocks(profile_id, block_type);
|
|
260
|
-
""",
|
|
261
|
-
# --- Phase E: CCQ Consolidated Blocks (dedicated table, many-per-profile) ---
|
|
262
|
-
"""
|
|
263
|
-
CREATE TABLE IF NOT EXISTS ccq_consolidated_blocks (
|
|
264
|
-
block_id TEXT PRIMARY KEY,
|
|
265
|
-
profile_id TEXT NOT NULL,
|
|
266
|
-
content TEXT NOT NULL,
|
|
267
|
-
source_fact_ids TEXT NOT NULL DEFAULT '[]',
|
|
268
|
-
gist_embedding_rowid INTEGER,
|
|
269
|
-
char_count INTEGER NOT NULL DEFAULT 0,
|
|
270
|
-
compiled_by TEXT NOT NULL DEFAULT 'ccq',
|
|
271
|
-
cluster_id TEXT NOT NULL,
|
|
272
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
273
|
-
|
|
274
|
-
FOREIGN KEY (profile_id) REFERENCES profiles (profile_id) ON DELETE CASCADE
|
|
275
|
-
);
|
|
276
|
-
CREATE INDEX IF NOT EXISTS idx_ccq_blocks_profile
|
|
277
|
-
ON ccq_consolidated_blocks (profile_id);
|
|
278
|
-
CREATE INDEX IF NOT EXISTS idx_ccq_blocks_cluster
|
|
279
|
-
ON ccq_consolidated_blocks (cluster_id);
|
|
280
|
-
""",
|
|
281
|
-
# --- Phase E: CCQ Audit Log ---
|
|
282
|
-
"""
|
|
283
|
-
CREATE TABLE IF NOT EXISTS ccq_audit_log (
|
|
284
|
-
audit_id TEXT PRIMARY KEY,
|
|
285
|
-
profile_id TEXT NOT NULL,
|
|
286
|
-
cluster_id TEXT NOT NULL,
|
|
287
|
-
block_id TEXT NOT NULL,
|
|
288
|
-
fact_ids TEXT NOT NULL DEFAULT '[]',
|
|
289
|
-
fact_count INTEGER NOT NULL DEFAULT 0,
|
|
290
|
-
gist_text TEXT NOT NULL,
|
|
291
|
-
extraction_mode TEXT NOT NULL DEFAULT 'rules'
|
|
292
|
-
CHECK (extraction_mode IN ('rules', 'llm')),
|
|
293
|
-
bytes_before INTEGER NOT NULL DEFAULT 0,
|
|
294
|
-
bytes_after INTEGER NOT NULL DEFAULT 0,
|
|
295
|
-
compression_ratio REAL NOT NULL DEFAULT 0.0,
|
|
296
|
-
shared_entities TEXT NOT NULL DEFAULT '[]',
|
|
297
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
298
|
-
|
|
299
|
-
FOREIGN KEY (profile_id) REFERENCES profiles (profile_id) ON DELETE CASCADE,
|
|
300
|
-
FOREIGN KEY (block_id) REFERENCES ccq_consolidated_blocks (block_id) ON DELETE CASCADE
|
|
301
|
-
);
|
|
302
|
-
CREATE INDEX IF NOT EXISTS idx_ccq_audit_profile
|
|
303
|
-
ON ccq_audit_log (profile_id, created_at DESC);
|
|
304
|
-
CREATE INDEX IF NOT EXISTS idx_ccq_audit_block
|
|
305
|
-
ON ccq_audit_log (block_id);
|
|
306
|
-
""",
|
|
307
|
-
# --- Phase 4: Temporal Intelligence ---
|
|
308
|
-
"""
|
|
309
|
-
CREATE TABLE IF NOT EXISTS fact_temporal_validity (
|
|
310
|
-
fact_id TEXT PRIMARY KEY,
|
|
311
|
-
profile_id TEXT NOT NULL,
|
|
312
|
-
|
|
313
|
-
-- Event Time (when was this fact true in the real world?)
|
|
314
|
-
valid_from TEXT,
|
|
315
|
-
valid_until TEXT,
|
|
316
|
-
|
|
317
|
-
-- Transaction Time (when did the system learn/invalidate?)
|
|
318
|
-
system_created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
319
|
-
system_expired_at TEXT,
|
|
320
|
-
|
|
321
|
-
-- Invalidation metadata
|
|
322
|
-
invalidated_by TEXT,
|
|
323
|
-
invalidation_reason TEXT,
|
|
324
|
-
|
|
325
|
-
FOREIGN KEY (fact_id) REFERENCES atomic_facts(fact_id) ON DELETE CASCADE,
|
|
326
|
-
FOREIGN KEY (profile_id) REFERENCES profiles(profile_id) ON DELETE CASCADE
|
|
327
|
-
);
|
|
328
|
-
CREATE INDEX IF NOT EXISTS idx_temporal_valid
|
|
329
|
-
ON fact_temporal_validity(profile_id, valid_until);
|
|
330
|
-
CREATE INDEX IF NOT EXISTS idx_temporal_system_expired
|
|
331
|
-
ON fact_temporal_validity(profile_id, system_expired_at);
|
|
332
|
-
CREATE INDEX IF NOT EXISTS idx_temporal_invalidated_by
|
|
333
|
-
ON fact_temporal_validity(invalidated_by);
|
|
334
|
-
""",
|
|
335
|
-
# --- Phase F: The Learning Brain (Memory Parameterization) ---
|
|
336
|
-
"""
|
|
337
|
-
CREATE TABLE IF NOT EXISTS soft_prompt_templates (
|
|
338
|
-
prompt_id TEXT PRIMARY KEY,
|
|
339
|
-
profile_id TEXT NOT NULL,
|
|
340
|
-
category TEXT NOT NULL CHECK (category IN (
|
|
341
|
-
'identity', 'tech_preference', 'communication_style',
|
|
342
|
-
'workflow_pattern', 'project_context', 'decision_history',
|
|
343
|
-
'avoidance', 'custom'
|
|
344
|
-
)),
|
|
345
|
-
content TEXT NOT NULL,
|
|
346
|
-
source_pattern_ids TEXT NOT NULL DEFAULT '[]',
|
|
347
|
-
confidence REAL NOT NULL DEFAULT 0.0,
|
|
348
|
-
effectiveness REAL NOT NULL DEFAULT 0.5,
|
|
349
|
-
token_count INTEGER NOT NULL DEFAULT 0,
|
|
350
|
-
retention_score REAL NOT NULL DEFAULT 1.0,
|
|
351
|
-
active INTEGER NOT NULL DEFAULT 1,
|
|
352
|
-
version INTEGER NOT NULL DEFAULT 1,
|
|
353
|
-
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
354
|
-
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
355
|
-
|
|
356
|
-
FOREIGN KEY (profile_id) REFERENCES profiles(profile_id) ON DELETE CASCADE
|
|
357
|
-
);
|
|
358
|
-
CREATE INDEX IF NOT EXISTS idx_soft_prompt_profile
|
|
359
|
-
ON soft_prompt_templates(profile_id, active);
|
|
360
|
-
CREATE INDEX IF NOT EXISTS idx_soft_prompt_category
|
|
361
|
-
ON soft_prompt_templates(profile_id, category);
|
|
362
|
-
CREATE INDEX IF NOT EXISTS idx_soft_prompts_profile_active_category
|
|
363
|
-
ON soft_prompt_templates(profile_id, active, category, prompt_id);
|
|
364
|
-
CREATE UNIQUE INDEX IF NOT EXISTS idx_soft_prompt_unique_cat
|
|
365
|
-
ON soft_prompt_templates(profile_id, category)
|
|
366
|
-
WHERE active = 1;
|
|
367
|
-
""",
|
|
368
|
-
]
|
|
369
|
-
|
|
370
|
-
# ---------------------------------------------------------------------------
|
|
371
|
-
# Rollback DDL (reverse FK order -- Rule 20)
|
|
372
|
-
# ---------------------------------------------------------------------------
|
|
373
|
-
|
|
374
|
-
V32_ROLLBACK: Final[tuple[str, ...]] = tuple(
|
|
375
|
-
f"DROP TABLE IF EXISTS {table}" for table in reversed(V32_TABLES)
|
|
376
|
-
)
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
def rollback_v32(conn) -> None:
|
|
380
|
-
"""Drop all V32 tables in reverse FK order. For testing/rollback only."""
|
|
381
|
-
for sql in V32_ROLLBACK:
|
|
382
|
-
conn.execute(sql)
|