superlocalmemory 4.1.13 → 4.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +48 -0
- package/README.md +3 -3
- package/package.json +1 -8
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/CLAUDE.md +3 -3
- package/plugin/agents/slm-governance-advisor.md +1 -1
- package/plugin/agents/slm-loop-runner.md +1 -1
- package/plugin/agents/slm-memory-advisor.md +1 -1
- package/plugin/agents/slm-optimize-advisor.md +1 -1
- package/plugin/requirements.txt +1 -1
- package/plugin/skills/slm-cache/SKILL.md +1 -1
- package/plugin/skills/slm-compress/SKILL.md +1 -1
- package/plugin/skills/slm-governance/SKILL.md +1 -1
- package/plugin/skills/slm-graph/SKILL.md +1 -1
- package/plugin/skills/slm-loop/SKILL.md +1 -1
- package/plugin/skills/slm-mesh/SKILL.md +1 -1
- package/plugin/skills/slm-profile/SKILL.md +1 -1
- package/plugin/skills/slm-recall/SKILL.md +1 -1
- package/plugin/skills/slm-remember/SKILL.md +1 -1
- package/plugin/skills/slm-scope/SKILL.md +1 -1
- package/plugin/skills/slm-session/SKILL.md +1 -1
- package/plugin/skills/slm-status/SKILL.md +1 -1
- package/plugin-src/agents/slm-memory-advisor.md +1 -1
- package/plugin-src/agents/slm-optimize-advisor.md +1 -1
- package/plugin-src/rules/AGENTS.md +1 -1
- package/plugin-src/skills/slm-cache/SKILL.md +1 -1
- package/plugin-src/skills/slm-compress/SKILL.md +1 -1
- package/plugin-src/skills/slm-governance/SKILL.md +1 -1
- package/plugin-src/skills/slm-graph/SKILL.md +1 -1
- package/plugin-src/skills/slm-loop/SKILL.md +1 -1
- package/plugin-src/skills/slm-mesh/SKILL.md +1 -1
- package/plugin-src/skills/slm-profile/SKILL.md +1 -1
- package/plugin-src/skills/slm-recall/SKILL.md +1 -1
- package/plugin-src/skills/slm-remember/SKILL.md +1 -1
- package/plugin-src/skills/slm-scope/SKILL.md +1 -1
- package/plugin-src/skills/slm-session/SKILL.md +1 -1
- package/plugin-src/skills/slm-status/SKILL.md +1 -1
- package/scripts/postinstall.js +71 -2
- package/pyproject.toml +0 -250
- package/src/superlocalmemory/__init__.py +0 -82
- package/src/superlocalmemory/access/__init__.py +0 -3
- package/src/superlocalmemory/access/rbac.py +0 -575
- package/src/superlocalmemory/attribution/__init__.py +0 -9
- package/src/superlocalmemory/attribution/signer.py +0 -173
- package/src/superlocalmemory/attribution/watermark.py +0 -189
- package/src/superlocalmemory/brain/__init__.py +0 -5
- package/src/superlocalmemory/brain/truth.py +0 -418
- package/src/superlocalmemory/cli/__init__.py +0 -5
- package/src/superlocalmemory/cli/__main__.py +0 -17
- package/src/superlocalmemory/cli/_lazy_init.py +0 -115
- package/src/superlocalmemory/cli/cache_cmd.py +0 -198
- package/src/superlocalmemory/cli/commands.py +0 -4710
- package/src/superlocalmemory/cli/compress_cmd.py +0 -151
- package/src/superlocalmemory/cli/context_commands.py +0 -193
- package/src/superlocalmemory/cli/daemon.py +0 -909
- package/src/superlocalmemory/cli/db_migrate.py +0 -150
- package/src/superlocalmemory/cli/diagnostics_cmd.py +0 -101
- package/src/superlocalmemory/cli/escape_hatch.py +0 -220
- package/src/superlocalmemory/cli/evidence_cmd.py +0 -103
- package/src/superlocalmemory/cli/gdpr_cmd.py +0 -792
- package/src/superlocalmemory/cli/gdpr_io.py +0 -109
- package/src/superlocalmemory/cli/help_cmd.py +0 -197
- package/src/superlocalmemory/cli/host_upgrades.py +0 -189
- package/src/superlocalmemory/cli/ingest_cmd.py +0 -327
- package/src/superlocalmemory/cli/json_output.py +0 -81
- package/src/superlocalmemory/cli/loop_cmd.py +0 -187
- package/src/superlocalmemory/cli/main.py +0 -1145
- package/src/superlocalmemory/cli/mesh_cmd.py +0 -38
- package/src/superlocalmemory/cli/migrate_cmd.py +0 -55
- package/src/superlocalmemory/cli/ops_cmd.py +0 -281
- package/src/superlocalmemory/cli/optimize_cmd.py +0 -179
- package/src/superlocalmemory/cli/optimize_constants.py +0 -31
- package/src/superlocalmemory/cli/pending_store.py +0 -296
- package/src/superlocalmemory/cli/proxy_cmd.py +0 -108
- package/src/superlocalmemory/cli/scale_engine_cmd.py +0 -56
- package/src/superlocalmemory/cli/service_installer.py +0 -373
- package/src/superlocalmemory/cli/setup_wizard.py +0 -1162
- package/src/superlocalmemory/cli/summary_cmd.py +0 -215
- package/src/superlocalmemory/cli/version_banner.py +0 -202
- package/src/superlocalmemory/cli/wizard_v3426_options.py +0 -129
- package/src/superlocalmemory/code_graph/__init__.py +0 -46
- package/src/superlocalmemory/code_graph/blast_radius.py +0 -177
- package/src/superlocalmemory/code_graph/bridge/__init__.py +0 -36
- package/src/superlocalmemory/code_graph/bridge/entity_resolver.py +0 -490
- package/src/superlocalmemory/code_graph/bridge/event_listeners.py +0 -206
- package/src/superlocalmemory/code_graph/bridge/fact_enricher.py +0 -159
- package/src/superlocalmemory/code_graph/bridge/hebbian_linker.py +0 -170
- package/src/superlocalmemory/code_graph/bridge/maintenance.py +0 -220
- package/src/superlocalmemory/code_graph/bridge/temporal_checker.py +0 -152
- package/src/superlocalmemory/code_graph/changes.py +0 -363
- package/src/superlocalmemory/code_graph/communities.py +0 -299
- package/src/superlocalmemory/code_graph/config.py +0 -154
- package/src/superlocalmemory/code_graph/database.py +0 -526
- package/src/superlocalmemory/code_graph/extractors/__init__.py +0 -95
- package/src/superlocalmemory/code_graph/extractors/python.py +0 -413
- package/src/superlocalmemory/code_graph/extractors/typescript.py +0 -556
- package/src/superlocalmemory/code_graph/flows.py +0 -350
- package/src/superlocalmemory/code_graph/git_hooks.py +0 -226
- package/src/superlocalmemory/code_graph/graph_engine.py +0 -295
- package/src/superlocalmemory/code_graph/graph_store.py +0 -335
- package/src/superlocalmemory/code_graph/incremental.py +0 -200
- package/src/superlocalmemory/code_graph/models.py +0 -130
- package/src/superlocalmemory/code_graph/parser.py +0 -687
- package/src/superlocalmemory/code_graph/resolver.py +0 -321
- package/src/superlocalmemory/code_graph/search.py +0 -460
- package/src/superlocalmemory/code_graph/service.py +0 -95
- package/src/superlocalmemory/code_graph/watcher.py +0 -207
- package/src/superlocalmemory/compliance/__init__.py +0 -0
- package/src/superlocalmemory/compliance/abac.py +0 -204
- package/src/superlocalmemory/compliance/audit.py +0 -385
- package/src/superlocalmemory/compliance/eu_ai_act.py +0 -101
- package/src/superlocalmemory/compliance/gdpr.py +0 -1479
- package/src/superlocalmemory/compliance/lifecycle.py +0 -158
- package/src/superlocalmemory/compliance/retention.py +0 -415
- package/src/superlocalmemory/compliance/scheduler.py +0 -217
- package/src/superlocalmemory/contracts/__init__.py +0 -1
- package/src/superlocalmemory/contracts/schemas/agent-experience-v1.schema.json +0 -92
- package/src/superlocalmemory/contracts/schemas/agent-integration-contract-v2.schema.json +0 -46
- package/src/superlocalmemory/contracts/schemas/cognitive-turn-receipt-v1.schema.json +0 -59
- package/src/superlocalmemory/contracts/v402.py +0 -62
- package/src/superlocalmemory/core/__init__.py +0 -0
- package/src/superlocalmemory/core/actor_context.py +0 -166
- package/src/superlocalmemory/core/admission.py +0 -769
- package/src/superlocalmemory/core/backend_orchestrator.py +0 -637
- package/src/superlocalmemory/core/block_hygiene.py +0 -147
- package/src/superlocalmemory/core/community_summary.py +0 -267
- package/src/superlocalmemory/core/component_healer.py +0 -144
- package/src/superlocalmemory/core/component_registry.py +0 -514
- package/src/superlocalmemory/core/config.py +0 -2204
- package/src/superlocalmemory/core/consolidation_engine.py +0 -983
- package/src/superlocalmemory/core/context_cache.py +0 -574
- package/src/superlocalmemory/core/derivation_lineage.py +0 -246
- package/src/superlocalmemory/core/embedding_worker.py +0 -208
- package/src/superlocalmemory/core/embeddings.py +0 -1052
- package/src/superlocalmemory/core/engine.py +0 -1395
- package/src/superlocalmemory/core/engine_capabilities.py +0 -24
- package/src/superlocalmemory/core/engine_ingestion.py +0 -983
- package/src/superlocalmemory/core/engine_lock.py +0 -75
- package/src/superlocalmemory/core/engine_wiring.py +0 -776
- package/src/superlocalmemory/core/entity_community.py +0 -178
- package/src/superlocalmemory/core/error_envelope.py +0 -60
- package/src/superlocalmemory/core/evidence_bundle.py +0 -528
- package/src/superlocalmemory/core/fact_consolidator.py +0 -812
- package/src/superlocalmemory/core/file_lock.py +0 -92
- package/src/superlocalmemory/core/graph_analyzer.py +0 -456
- package/src/superlocalmemory/core/graph_metrics.py +0 -597
- package/src/superlocalmemory/core/graph_pruner.py +0 -939
- package/src/superlocalmemory/core/health_monitor.py +0 -338
- package/src/superlocalmemory/core/hooks.py +0 -65
- package/src/superlocalmemory/core/ingest_gate.py +0 -133
- package/src/superlocalmemory/core/ingest_policy.py +0 -38
- package/src/superlocalmemory/core/ingestion_command.py +0 -1042
- package/src/superlocalmemory/core/injection.py +0 -434
- package/src/superlocalmemory/core/install_detector.py +0 -131
- package/src/superlocalmemory/core/key_expander.py +0 -138
- package/src/superlocalmemory/core/lifecycle_state.py +0 -153
- package/src/superlocalmemory/core/maintenance.py +0 -777
- package/src/superlocalmemory/core/maintenance_scheduler.py +0 -507
- package/src/superlocalmemory/core/materialization_control.py +0 -20
- package/src/superlocalmemory/core/mcp_embedder_proxy.py +0 -89
- package/src/superlocalmemory/core/memory_health.py +0 -266
- package/src/superlocalmemory/core/mode_capability.py +0 -111
- package/src/superlocalmemory/core/modes.py +0 -168
- package/src/superlocalmemory/core/mutations.py +0 -688
- package/src/superlocalmemory/core/ollama_embedder.py +0 -266
- package/src/superlocalmemory/core/ollama_validator.py +0 -315
- package/src/superlocalmemory/core/operation_policy.py +0 -92
- package/src/superlocalmemory/core/operation_policy_registry.py +0 -542
- package/src/superlocalmemory/core/operation_request.py +0 -127
- package/src/superlocalmemory/core/ops_remediation.py +0 -542
- package/src/superlocalmemory/core/pii.py +0 -105
- package/src/superlocalmemory/core/platform_utils.py +0 -138
- package/src/superlocalmemory/core/profiles.py +0 -234
- package/src/superlocalmemory/core/progressive_abstraction.py +0 -208
- package/src/superlocalmemory/core/projection_drain.py +0 -380
- package/src/superlocalmemory/core/queue_consumer.py +0 -168
- package/src/superlocalmemory/core/ram_lock.py +0 -160
- package/src/superlocalmemory/core/rate_limit.py +0 -151
- package/src/superlocalmemory/core/recall_gate.py +0 -95
- package/src/superlocalmemory/core/recall_pipeline.py +0 -1337
- package/src/superlocalmemory/core/recall_queue.py +0 -377
- package/src/superlocalmemory/core/recall_worker.py +0 -414
- package/src/superlocalmemory/core/registry.py +0 -121
- package/src/superlocalmemory/core/remember_admission.py +0 -161
- package/src/superlocalmemory/core/remember_runtime.py +0 -1190
- package/src/superlocalmemory/core/remote_mode.py +0 -214
- package/src/superlocalmemory/core/reranker_worker.py +0 -338
- package/src/superlocalmemory/core/safe_fs.py +0 -108
- package/src/superlocalmemory/core/scale_autopromote.py +0 -196
- package/src/superlocalmemory/core/scale_engine.py +0 -915
- package/src/superlocalmemory/core/score_contract.py +0 -82
- package/src/superlocalmemory/core/security_primitives.py +0 -672
- package/src/superlocalmemory/core/session_identity.py +0 -98
- package/src/superlocalmemory/core/shadow_router.py +0 -319
- package/src/superlocalmemory/core/slm_disabled.py +0 -85
- package/src/superlocalmemory/core/status_contract.py +0 -108
- package/src/superlocalmemory/core/store_pipeline.py +0 -1404
- package/src/superlocalmemory/core/summarizer.py +0 -200
- package/src/superlocalmemory/core/tier_manager.py +0 -461
- package/src/superlocalmemory/core/topic_signature.py +0 -156
- package/src/superlocalmemory/core/transactions/__init__.py +0 -78
- package/src/superlocalmemory/core/transactions/concrete_owners.py +0 -604
- package/src/superlocalmemory/core/transactions/erasure.py +0 -825
- package/src/superlocalmemory/core/transactions/manifest.py +0 -255
- package/src/superlocalmemory/core/transactions/manifest_key.py +0 -155
- package/src/superlocalmemory/core/transactions/obligations.py +0 -272
- package/src/superlocalmemory/core/transactions/owners.py +0 -114
- package/src/superlocalmemory/core/transactions/reconciler.py +0 -285
- package/src/superlocalmemory/core/transactions/service.py +0 -330
- package/src/superlocalmemory/core/worker_pool.py +0 -377
- package/src/superlocalmemory/core/working_memory.py +0 -288
- package/src/superlocalmemory/dynamics/__init__.py +0 -0
- package/src/superlocalmemory/dynamics/activation_guided_quantization.py +0 -374
- package/src/superlocalmemory/dynamics/eap_scheduler.py +0 -294
- package/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +0 -171
- package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +0 -227
- package/src/superlocalmemory/encoding/__init__.py +0 -0
- package/src/superlocalmemory/encoding/auto_linker.py +0 -308
- package/src/superlocalmemory/encoding/cognitive_consolidator.py +0 -899
- package/src/superlocalmemory/encoding/consolidator.py +0 -472
- package/src/superlocalmemory/encoding/context_generator.py +0 -175
- package/src/superlocalmemory/encoding/emotional.py +0 -189
- package/src/superlocalmemory/encoding/entity_reflexion.py +0 -200
- package/src/superlocalmemory/encoding/entity_resolver.py +0 -687
- package/src/superlocalmemory/encoding/entropy_gate.py +0 -101
- package/src/superlocalmemory/encoding/fact_extractor.py +0 -877
- package/src/superlocalmemory/encoding/foresight.py +0 -93
- package/src/superlocalmemory/encoding/graph_builder.py +0 -346
- package/src/superlocalmemory/encoding/observation_builder.py +0 -177
- package/src/superlocalmemory/encoding/prospective_markers.py +0 -262
- package/src/superlocalmemory/encoding/scene_builder.py +0 -410
- package/src/superlocalmemory/encoding/signal_inference.py +0 -90
- package/src/superlocalmemory/encoding/temporal_parser.py +0 -432
- package/src/superlocalmemory/encoding/temporal_validator.py +0 -572
- package/src/superlocalmemory/encoding/type_router.py +0 -237
- package/src/superlocalmemory/evaluation/__init__.py +0 -13
- package/src/superlocalmemory/evaluation/calibration.py +0 -308
- package/src/superlocalmemory/evolution/__init__.py +0 -29
- package/src/superlocalmemory/evolution/blind_verifier.py +0 -122
- package/src/superlocalmemory/evolution/budget.py +0 -356
- package/src/superlocalmemory/evolution/evolution_store.py +0 -619
- package/src/superlocalmemory/evolution/llm_dispatch.py +0 -559
- package/src/superlocalmemory/evolution/model_selection.py +0 -175
- package/src/superlocalmemory/evolution/mutation_generator.py +0 -226
- package/src/superlocalmemory/evolution/skill_activator.py +0 -270
- package/src/superlocalmemory/evolution/skill_evolver.py +0 -928
- package/src/superlocalmemory/evolution/triggers.py +0 -376
- package/src/superlocalmemory/evolution/types.py +0 -114
- package/src/superlocalmemory/graph/__init__.py +0 -9
- package/src/superlocalmemory/graph/cozo_adjacency.py +0 -122
- package/src/superlocalmemory/graph/cozo_backend.py +0 -751
- package/src/superlocalmemory/hooks/__init__.py +0 -3
- package/src/superlocalmemory/hooks/_outcome_common.py +0 -523
- package/src/superlocalmemory/hooks/adapter_base.py +0 -347
- package/src/superlocalmemory/hooks/antigravity_adapter.py +0 -171
- package/src/superlocalmemory/hooks/auto_capture.py +0 -133
- package/src/superlocalmemory/hooks/auto_invoker.py +0 -521
- package/src/superlocalmemory/hooks/auto_parameterize.py +0 -147
- package/src/superlocalmemory/hooks/auto_recall.py +0 -191
- package/src/superlocalmemory/hooks/auto_recall_hook.py +0 -251
- package/src/superlocalmemory/hooks/before_web_hook.py +0 -131
- package/src/superlocalmemory/hooks/claude_code_hooks.py +0 -637
- package/src/superlocalmemory/hooks/codex_assets.py +0 -251
- package/src/superlocalmemory/hooks/codex_hooks.py +0 -186
- package/src/superlocalmemory/hooks/context_payload.py +0 -311
- package/src/superlocalmemory/hooks/copilot_adapter.py +0 -208
- package/src/superlocalmemory/hooks/cross_platform_connector.py +0 -90
- package/src/superlocalmemory/hooks/cursor_adapter.py +0 -173
- package/src/superlocalmemory/hooks/hook_daemon.py +0 -295
- package/src/superlocalmemory/hooks/hook_handlers.py +0 -822
- package/src/superlocalmemory/hooks/ide_connector.py +0 -246
- package/src/superlocalmemory/hooks/memory_protocol.py +0 -158
- package/src/superlocalmemory/hooks/portable_kit.py +0 -755
- package/src/superlocalmemory/hooks/post_tool_async_hook.py +0 -183
- package/src/superlocalmemory/hooks/post_tool_outcome_hook.py +0 -351
- package/src/superlocalmemory/hooks/prewarm_auth.py +0 -187
- package/src/superlocalmemory/hooks/rules_engine.py +0 -99
- package/src/superlocalmemory/hooks/session_registry.py +0 -330
- package/src/superlocalmemory/hooks/stop_outcome_hook.py +0 -138
- package/src/superlocalmemory/hooks/sync_loop.py +0 -114
- package/src/superlocalmemory/hooks/topic_shift_hook.py +0 -302
- package/src/superlocalmemory/hooks/user_prompt_hook.py +0 -131
- package/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +0 -210
- package/src/superlocalmemory/infra/__init__.py +0 -3
- package/src/superlocalmemory/infra/auth_middleware.py +0 -145
- package/src/superlocalmemory/infra/backup.py +0 -974
- package/src/superlocalmemory/infra/backup_obligations.py +0 -423
- package/src/superlocalmemory/infra/cache_manager.py +0 -267
- package/src/superlocalmemory/infra/cloud_backup.py +0 -788
- package/src/superlocalmemory/infra/daemon_identity.py +0 -300
- package/src/superlocalmemory/infra/data_root.py +0 -238
- package/src/superlocalmemory/infra/event_bus.py +0 -637
- package/src/superlocalmemory/infra/local_diagnostics.py +0 -327
- package/src/superlocalmemory/infra/pid_manager.py +0 -193
- package/src/superlocalmemory/infra/process_identity.py +0 -180
- package/src/superlocalmemory/infra/process_reaper.py +0 -624
- package/src/superlocalmemory/infra/rate_limiter.py +0 -228
- package/src/superlocalmemory/infra/self_heal.py +0 -401
- package/src/superlocalmemory/infra/version_integrity.py +0 -229
- package/src/superlocalmemory/ingestion/__init__.py +0 -13
- package/src/superlocalmemory/ingestion/adapter_manager.py +0 -255
- package/src/superlocalmemory/ingestion/base_adapter.py +0 -171
- package/src/superlocalmemory/ingestion/calendar_adapter.py +0 -349
- package/src/superlocalmemory/ingestion/credentials.py +0 -125
- package/src/superlocalmemory/ingestion/gmail_adapter.py +0 -378
- package/src/superlocalmemory/ingestion/parsers.py +0 -100
- package/src/superlocalmemory/ingestion/transcript_adapter.py +0 -161
- package/src/superlocalmemory/integrations/__init__.py +0 -1
- package/src/superlocalmemory/integrations/bounded_loops_mcp.py +0 -431
- package/src/superlocalmemory/integrations/bounded_loops_v051.py +0 -236
- package/src/superlocalmemory/learning/__init__.py +0 -0
- package/src/superlocalmemory/learning/adaptive.py +0 -172
- package/src/superlocalmemory/learning/arm_catalog.py +0 -97
- package/src/superlocalmemory/learning/assertion_miner.py +0 -403
- package/src/superlocalmemory/learning/bandit.py +0 -654
- package/src/superlocalmemory/learning/bandit_cache.py +0 -131
- package/src/superlocalmemory/learning/behavioral.py +0 -542
- package/src/superlocalmemory/learning/bootstrap.py +0 -298
- package/src/superlocalmemory/learning/consolidation_cycle.py +0 -398
- package/src/superlocalmemory/learning/consolidation_quantization_worker.py +0 -115
- package/src/superlocalmemory/learning/consolidation_worker.py +0 -261
- package/src/superlocalmemory/learning/cross_project.py +0 -408
- package/src/superlocalmemory/learning/database.py +0 -698
- package/src/superlocalmemory/learning/dedup_hnsw.py +0 -413
- package/src/superlocalmemory/learning/engagement.py +0 -487
- package/src/superlocalmemory/learning/engagement_features.py +0 -279
- package/src/superlocalmemory/learning/ensemble.py +0 -309
- package/src/superlocalmemory/learning/entity_compiler.py +0 -356
- package/src/superlocalmemory/learning/fact_outcome_joins.py +0 -207
- package/src/superlocalmemory/learning/features.py +0 -138
- package/src/superlocalmemory/learning/feedback.py +0 -724
- package/src/superlocalmemory/learning/forgetting_scheduler.py +0 -375
- package/src/superlocalmemory/learning/hnsw_dedup.py +0 -69
- package/src/superlocalmemory/learning/labeler.py +0 -85
- package/src/superlocalmemory/learning/legacy_migration.py +0 -316
- package/src/superlocalmemory/learning/lightgbm_subprocess.py +0 -236
- package/src/superlocalmemory/learning/memory_merge.py +0 -175
- package/src/superlocalmemory/learning/model_cache.py +0 -267
- package/src/superlocalmemory/learning/model_rollback.py +0 -281
- package/src/superlocalmemory/learning/outcome_queue.py +0 -306
- package/src/superlocalmemory/learning/outcomes.py +0 -286
- package/src/superlocalmemory/learning/pattern_miner.py +0 -465
- package/src/superlocalmemory/learning/pattern_miner_constants.py +0 -90
- package/src/superlocalmemory/learning/pcos.py +0 -291
- package/src/superlocalmemory/learning/project_context.py +0 -366
- package/src/superlocalmemory/learning/propensity.py +0 -131
- package/src/superlocalmemory/learning/ranker.py +0 -300
- package/src/superlocalmemory/learning/ranker_common.py +0 -163
- package/src/superlocalmemory/learning/ranker_retrain_legacy.py +0 -210
- package/src/superlocalmemory/learning/ranker_retrain_online.py +0 -423
- package/src/superlocalmemory/learning/reward.py +0 -888
- package/src/superlocalmemory/learning/reward_archive.py +0 -223
- package/src/superlocalmemory/learning/reward_boost.py +0 -211
- package/src/superlocalmemory/learning/reward_from_outcomes.py +0 -365
- package/src/superlocalmemory/learning/reward_model.py +0 -144
- package/src/superlocalmemory/learning/reward_proxy.py +0 -578
- package/src/superlocalmemory/learning/shadow_test.py +0 -524
- package/src/superlocalmemory/learning/signal_kinds.py +0 -79
- package/src/superlocalmemory/learning/signal_worker.py +0 -268
- package/src/superlocalmemory/learning/signals.py +0 -646
- package/src/superlocalmemory/learning/skill_performance_miner.py +0 -422
- package/src/superlocalmemory/learning/source_quality.py +0 -828
- package/src/superlocalmemory/learning/trigram_index.py +0 -548
- package/src/superlocalmemory/learning/workflows.py +0 -309
- package/src/superlocalmemory/llm/__init__.py +0 -0
- package/src/superlocalmemory/llm/backbone.py +0 -364
- package/src/superlocalmemory/loops/__init__.py +0 -58
- package/src/superlocalmemory/loops/budget.py +0 -58
- package/src/superlocalmemory/loops/engine.py +0 -174
- package/src/superlocalmemory/loops/ledger.py +0 -298
- package/src/superlocalmemory/loops/models.py +0 -152
- package/src/superlocalmemory/loops/rules.py +0 -52
- package/src/superlocalmemory/math/__init__.py +0 -0
- package/src/superlocalmemory/math/ebbinghaus.py +0 -352
- package/src/superlocalmemory/math/fisher.py +0 -356
- package/src/superlocalmemory/math/fisher_quantized.py +0 -255
- package/src/superlocalmemory/math/hopfield.py +0 -282
- package/src/superlocalmemory/math/langevin.py +0 -411
- package/src/superlocalmemory/math/polar_quant.py +0 -414
- package/src/superlocalmemory/math/qjl.py +0 -115
- package/src/superlocalmemory/math/sheaf.py +0 -261
- package/src/superlocalmemory/math/turbo_quant.py +0 -318
- package/src/superlocalmemory/mcp/__init__.py +0 -0
- package/src/superlocalmemory/mcp/_daemon_proxy.py +0 -203
- package/src/superlocalmemory/mcp/_pool_adapter.py +0 -181
- package/src/superlocalmemory/mcp/_stdin_guard.py +0 -60
- package/src/superlocalmemory/mcp/agent_context.py +0 -115
- package/src/superlocalmemory/mcp/cli_fallback.py +0 -602
- package/src/superlocalmemory/mcp/http_transport.py +0 -85
- package/src/superlocalmemory/mcp/profiles.py +0 -154
- package/src/superlocalmemory/mcp/resources.py +0 -281
- package/src/superlocalmemory/mcp/server.py +0 -480
- package/src/superlocalmemory/mcp/session_binding.py +0 -98
- package/src/superlocalmemory/mcp/shared.py +0 -112
- package/src/superlocalmemory/mcp/tools.py +0 -18
- package/src/superlocalmemory/mcp/tools_active.py +0 -958
- package/src/superlocalmemory/mcp/tools_brain.py +0 -298
- package/src/superlocalmemory/mcp/tools_code_graph.py +0 -1717
- package/src/superlocalmemory/mcp/tools_context.py +0 -239
- package/src/superlocalmemory/mcp/tools_core.py +0 -1112
- package/src/superlocalmemory/mcp/tools_evolution.py +0 -343
- package/src/superlocalmemory/mcp/tools_learning.py +0 -393
- package/src/superlocalmemory/mcp/tools_loops.py +0 -345
- package/src/superlocalmemory/mcp/tools_mesh.py +0 -429
- package/src/superlocalmemory/mcp/tools_ops.py +0 -115
- package/src/superlocalmemory/mcp/tools_optimize.py +0 -322
- package/src/superlocalmemory/mcp/tools_summaries.py +0 -147
- package/src/superlocalmemory/mcp/tools_v28.py +0 -292
- package/src/superlocalmemory/mcp/tools_v3.py +0 -398
- package/src/superlocalmemory/mcp/tools_v33.py +0 -507
- package/src/superlocalmemory/mesh/__init__.py +0 -12
- package/src/superlocalmemory/mesh/broker.py +0 -812
- package/src/superlocalmemory/mesh/broker_security.py +0 -470
- package/src/superlocalmemory/mesh/discovery.py +0 -365
- package/src/superlocalmemory/mesh/lock_protocol.py +0 -313
- package/src/superlocalmemory/mesh/node_identity.py +0 -97
- package/src/superlocalmemory/mesh/outbox_remote.py +0 -429
- package/src/superlocalmemory/mesh/remote_sync.py +0 -829
- package/src/superlocalmemory/mesh/state_sync.py +0 -286
- package/src/superlocalmemory/migrations/__init__.py +0 -5
- package/src/superlocalmemory/migrations/v3_4_25_to_v3_4_26.py +0 -144
- package/src/superlocalmemory/optimize/NOTICE +0 -6
- package/src/superlocalmemory/optimize/__init__.py +0 -0
- package/src/superlocalmemory/optimize/adapters/__init__.py +0 -68
- package/src/superlocalmemory/optimize/adapters/_agent_registry.py +0 -120
- package/src/superlocalmemory/optimize/adapters/anthropic_adapter.py +0 -112
- package/src/superlocalmemory/optimize/adapters/openai_adapter.py +0 -122
- package/src/superlocalmemory/optimize/adapters/wrap.py +0 -228
- package/src/superlocalmemory/optimize/cache/__init__.py +0 -31
- package/src/superlocalmemory/optimize/cache/boundary_store.py +0 -488
- package/src/superlocalmemory/optimize/cache/centroid_store.py +0 -199
- package/src/superlocalmemory/optimize/cache/context_key.py +0 -67
- package/src/superlocalmemory/optimize/cache/exact.py +0 -88
- package/src/superlocalmemory/optimize/cache/invalidation.py +0 -36
- package/src/superlocalmemory/optimize/cache/key_builder.py +0 -111
- package/src/superlocalmemory/optimize/cache/manager.py +0 -737
- package/src/superlocalmemory/optimize/cache/semantic.py +0 -637
- package/src/superlocalmemory/optimize/cache/stampede.py +0 -50
- package/src/superlocalmemory/optimize/compress/__init__.py +0 -17
- package/src/superlocalmemory/optimize/compress/align.py +0 -159
- package/src/superlocalmemory/optimize/compress/ccr.py +0 -116
- package/src/superlocalmemory/optimize/compress/prose_llmlingua.py +0 -71
- package/src/superlocalmemory/optimize/compress/router.py +0 -667
- package/src/superlocalmemory/optimize/config/__init__.py +0 -56
- package/src/superlocalmemory/optimize/config/defaults.py +0 -43
- package/src/superlocalmemory/optimize/config/schema.py +0 -327
- package/src/superlocalmemory/optimize/config/store.py +0 -270
- package/src/superlocalmemory/optimize/metrics/__init__.py +0 -8
- package/src/superlocalmemory/optimize/metrics/counters.py +0 -155
- package/src/superlocalmemory/optimize/metrics/estimator.py +0 -87
- package/src/superlocalmemory/optimize/metrics/exporters.py +0 -77
- package/src/superlocalmemory/optimize/metrics/persistence.py +0 -115
- package/src/superlocalmemory/optimize/proxy/__init__.py +0 -28
- package/src/superlocalmemory/optimize/proxy/_helpers.py +0 -730
- package/src/superlocalmemory/optimize/proxy/anthropic_surface.py +0 -375
- package/src/superlocalmemory/optimize/proxy/capture.py +0 -550
- package/src/superlocalmemory/optimize/proxy/gemini_surface.py +0 -528
- package/src/superlocalmemory/optimize/proxy/lifecycle.py +0 -126
- package/src/superlocalmemory/optimize/proxy/openai_surface.py +0 -465
- package/src/superlocalmemory/optimize/proxy/server.py +0 -199
- package/src/superlocalmemory/optimize/proxy/vertex_surface.py +0 -246
- package/src/superlocalmemory/optimize/storage/__init__.py +0 -0
- package/src/superlocalmemory/optimize/storage/db.py +0 -1185
- package/src/superlocalmemory/optimize/storage/schema.py +0 -205
- package/src/superlocalmemory/parameterization/__init__.py +0 -47
- package/src/superlocalmemory/parameterization/cross_project.py +0 -12
- package/src/superlocalmemory/parameterization/pattern_extractor.py +0 -584
- package/src/superlocalmemory/parameterization/pii_filter.py +0 -106
- package/src/superlocalmemory/parameterization/prompt_injector.py +0 -219
- package/src/superlocalmemory/parameterization/prompt_lifecycle.py +0 -281
- package/src/superlocalmemory/parameterization/soft_prompt_generator.py +0 -542
- package/src/superlocalmemory/parameterization/workflow_miner.py +0 -17
- package/src/superlocalmemory/reliability/__init__.py +0 -45
- package/src/superlocalmemory/reliability/join_liveness.py +0 -301
- package/src/superlocalmemory/reliability/prior_distance.py +0 -243
- package/src/superlocalmemory/retrieval/__init__.py +0 -0
- package/src/superlocalmemory/retrieval/agentic.py +0 -367
- package/src/superlocalmemory/retrieval/ann_index.py +0 -235
- package/src/superlocalmemory/retrieval/bm25_channel.py +0 -451
- package/src/superlocalmemory/retrieval/bridge_discovery.py +0 -253
- package/src/superlocalmemory/retrieval/channel_registry.py +0 -154
- package/src/superlocalmemory/retrieval/channel_status.py +0 -117
- package/src/superlocalmemory/retrieval/engine.py +0 -1615
- package/src/superlocalmemory/retrieval/entity_channel.py +0 -994
- package/src/superlocalmemory/retrieval/forgetting_filter.py +0 -160
- package/src/superlocalmemory/retrieval/fusion.py +0 -81
- package/src/superlocalmemory/retrieval/graph_adjacency.py +0 -219
- package/src/superlocalmemory/retrieval/hopfield_channel.py +0 -465
- package/src/superlocalmemory/retrieval/profile_channel.py +0 -105
- package/src/superlocalmemory/retrieval/quantization_aware_search.py +0 -147
- package/src/superlocalmemory/retrieval/remote_reranker.py +0 -758
- package/src/superlocalmemory/retrieval/reranker.py +0 -674
- package/src/superlocalmemory/retrieval/scope_policy.py +0 -126
- package/src/superlocalmemory/retrieval/semantic_channel.py +0 -638
- package/src/superlocalmemory/retrieval/spreading.py +0 -288
- package/src/superlocalmemory/retrieval/spreading_activation.py +0 -616
- package/src/superlocalmemory/retrieval/strategy.py +0 -248
- package/src/superlocalmemory/retrieval/temporal_channel.py +0 -433
- package/src/superlocalmemory/retrieval/temporal_frame.py +0 -102
- package/src/superlocalmemory/retrieval/temporal_utils.py +0 -122
- package/src/superlocalmemory/retrieval/temporal_validity_filter.py +0 -499
- package/src/superlocalmemory/retrieval/time_window.py +0 -181
- package/src/superlocalmemory/retrieval/vector_store.py +0 -863
- package/src/superlocalmemory/server/__init__.py +0 -1
- package/src/superlocalmemory/server/api.py +0 -310
- package/src/superlocalmemory/server/asset_versions.py +0 -171
- package/src/superlocalmemory/server/bandit_loops.py +0 -158
- package/src/superlocalmemory/server/config_file.py +0 -90
- package/src/superlocalmemory/server/consolidation_runner.py +0 -140
- package/src/superlocalmemory/server/egress_policy.py +0 -258
- package/src/superlocalmemory/server/loopback.py +0 -85
- package/src/superlocalmemory/server/middleware/__init__.py +0 -11
- package/src/superlocalmemory/server/middleware/security_headers.py +0 -144
- package/src/superlocalmemory/server/origin.py +0 -55
- package/src/superlocalmemory/server/profile_runtime.py +0 -515
- package/src/superlocalmemory/server/rbac_enforce.py +0 -194
- package/src/superlocalmemory/server/recall_health.py +0 -343
- package/src/superlocalmemory/server/recall_serializer.py +0 -320
- package/src/superlocalmemory/server/route_mutations.py +0 -104
- package/src/superlocalmemory/server/routes/__init__.py +0 -4
- package/src/superlocalmemory/server/routes/abstraction.py +0 -314
- package/src/superlocalmemory/server/routes/adapters.py +0 -63
- package/src/superlocalmemory/server/routes/agents.py +0 -303
- package/src/superlocalmemory/server/routes/backup.py +0 -869
- package/src/superlocalmemory/server/routes/behavioral.py +0 -659
- package/src/superlocalmemory/server/routes/brain.py +0 -1892
- package/src/superlocalmemory/server/routes/chat.py +0 -393
- package/src/superlocalmemory/server/routes/compliance.py +0 -533
- package/src/superlocalmemory/server/routes/config_api.py +0 -703
- package/src/superlocalmemory/server/routes/data_io.py +0 -329
- package/src/superlocalmemory/server/routes/entity.py +0 -237
- package/src/superlocalmemory/server/routes/events.py +0 -214
- package/src/superlocalmemory/server/routes/evolution.py +0 -510
- package/src/superlocalmemory/server/routes/helpers.py +0 -499
- package/src/superlocalmemory/server/routes/ingest.py +0 -137
- package/src/superlocalmemory/server/routes/insights.py +0 -366
- package/src/superlocalmemory/server/routes/learning.py +0 -834
- package/src/superlocalmemory/server/routes/learning_telemetry.py +0 -154
- package/src/superlocalmemory/server/routes/lifecycle.py +0 -184
- package/src/superlocalmemory/server/routes/memories.py +0 -1661
- package/src/superlocalmemory/server/routes/mesh.py +0 -517
- package/src/superlocalmemory/server/routes/mesh_lock.py +0 -54
- package/src/superlocalmemory/server/routes/mesh_state.py +0 -63
- package/src/superlocalmemory/server/routes/optimize.py +0 -197
- package/src/superlocalmemory/server/routes/prewarm.py +0 -173
- package/src/superlocalmemory/server/routes/profiles.py +0 -292
- package/src/superlocalmemory/server/routes/ratelimit.py +0 -132
- package/src/superlocalmemory/server/routes/rbac.py +0 -366
- package/src/superlocalmemory/server/routes/stats.py +0 -385
- package/src/superlocalmemory/server/routes/tiers.py +0 -222
- package/src/superlocalmemory/server/routes/timeline.py +0 -258
- package/src/superlocalmemory/server/routes/token.py +0 -90
- package/src/superlocalmemory/server/routes/v3_api.py +0 -3023
- package/src/superlocalmemory/server/routes/ws.py +0 -171
- package/src/superlocalmemory/server/security_middleware.py +0 -89
- package/src/superlocalmemory/server/ui.py +0 -354
- package/src/superlocalmemory/server/unified_daemon.py +0 -6326
- package/src/superlocalmemory/server/write_identity.py +0 -195
- package/src/superlocalmemory/storage/__init__.py +0 -0
- package/src/superlocalmemory/storage/_migration_internals.py +0 -638
- package/src/superlocalmemory/storage/_schema_version.py +0 -174
- package/src/superlocalmemory/storage/access_log.py +0 -170
- package/src/superlocalmemory/storage/admission_codec.py +0 -129
- package/src/superlocalmemory/storage/admission_journal.py +0 -843
- package/src/superlocalmemory/storage/agent_experience.py +0 -546
- package/src/superlocalmemory/storage/backup.py +0 -531
- package/src/superlocalmemory/storage/correction_cases.py +0 -670
- package/src/superlocalmemory/storage/database.py +0 -3180
- package/src/superlocalmemory/storage/deferred_writes.py +0 -209
- package/src/superlocalmemory/storage/embedding_codec.py +0 -200
- package/src/superlocalmemory/storage/embedding_migrator.py +0 -672
- package/src/superlocalmemory/storage/erasure_fence.py +0 -45
- package/src/superlocalmemory/storage/execution_learning.py +0 -285
- package/src/superlocalmemory/storage/external_evidence.py +0 -359
- package/src/superlocalmemory/storage/generation_fence.py +0 -63
- package/src/superlocalmemory/storage/lineage_retention.py +0 -236
- package/src/superlocalmemory/storage/logical_edges.py +0 -86
- package/src/superlocalmemory/storage/memory_write.py +0 -115
- package/src/superlocalmemory/storage/migration_runner.py +0 -895
- package/src/superlocalmemory/storage/migration_v33.py +0 -140
- package/src/superlocalmemory/storage/migrations/M001_add_signal_features_columns.py +0 -67
- package/src/superlocalmemory/storage/migrations/M002_model_state_history.py +0 -107
- package/src/superlocalmemory/storage/migrations/M003_migration_log.py +0 -38
- package/src/superlocalmemory/storage/migrations/M004_cross_platform_sync_log.py +0 -46
- package/src/superlocalmemory/storage/migrations/M005_bandit_tables.py +0 -75
- package/src/superlocalmemory/storage/migrations/M006_action_outcomes_reward.py +0 -75
- package/src/superlocalmemory/storage/migrations/M007_pending_outcomes.py +0 -63
- package/src/superlocalmemory/storage/migrations/M009_model_lineage.py +0 -94
- package/src/superlocalmemory/storage/migrations/M010_evolution_config.py +0 -80
- package/src/superlocalmemory/storage/migrations/M011_archive_and_merge.py +0 -87
- package/src/superlocalmemory/storage/migrations/M012_shadow_observations.py +0 -72
- package/src/superlocalmemory/storage/migrations/M013_bi_temporal_columns.py +0 -55
- package/src/superlocalmemory/storage/migrations/M014_v345_scale_ready.py +0 -45
- package/src/superlocalmemory/storage/migrations/M015_add_pinned_column.py +0 -58
- package/src/superlocalmemory/storage/migrations/M016_add_scope_support.py +0 -120
- package/src/superlocalmemory/storage/migrations/M017_ccq_scope_column.py +0 -79
- package/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +0 -120
- package/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +0 -54
- package/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +0 -52
- package/src/superlocalmemory/storage/migrations/M021_ingestion_log_profile.py +0 -108
- package/src/superlocalmemory/storage/migrations/M022_entity_aliases_profile.py +0 -86
- package/src/superlocalmemory/storage/migrations/M023_mesh_profile_isolation.py +0 -194
- package/src/superlocalmemory/storage/migrations/M024_rbac_users_roles.py +0 -87
- package/src/superlocalmemory/storage/migrations/M025_perf_indexes.py +0 -90
- package/src/superlocalmemory/storage/migrations/M026_rbac_memberships_fk.py +0 -136
- package/src/superlocalmemory/storage/migrations/M027_transferable_patterns_profile.py +0 -163
- package/src/superlocalmemory/storage/migrations/M028_fact_entity_associations.py +0 -305
- package/src/superlocalmemory/storage/migrations/M029_behavioral_history_indexes.py +0 -137
- package/src/superlocalmemory/storage/migrations/M030_entity_explorer_indexes.py +0 -93
- package/src/superlocalmemory/storage/migrations/M031_dead_letter_operations.py +0 -80
- package/src/superlocalmemory/storage/migrations/M032_write_coordinator_admission.py +0 -188
- package/src/superlocalmemory/storage/migrations/M033_projection_transactions.py +0 -148
- package/src/superlocalmemory/storage/migrations/M034_obligation_integrity.py +0 -58
- package/src/superlocalmemory/storage/migrations/M035_erasure_receipts.py +0 -113
- package/src/superlocalmemory/storage/migrations/M036_vector_row_map.py +0 -107
- package/src/superlocalmemory/storage/migrations/M037_manifest_hmac_version.py +0 -162
- package/src/superlocalmemory/storage/migrations/M038_learning_feedback_channel.py +0 -77
- package/src/superlocalmemory/storage/migrations/M039_scene_fact_members.py +0 -137
- package/src/superlocalmemory/storage/migrations/M040_agent_experience_receipts.py +0 -254
- package/src/superlocalmemory/storage/migrations/M041_external_evidence_receipts.py +0 -189
- package/src/superlocalmemory/storage/migrations/M042_correction_case_ledger.py +0 -245
- package/src/superlocalmemory/storage/migrations/M043_quarantine_display_summaries.py +0 -512
- package/src/superlocalmemory/storage/migrations/M044_play_carries_its_own_evidence.py +0 -127
- package/src/superlocalmemory/storage/migrations/M045_fact_outcome_score.py +0 -158
- package/src/superlocalmemory/storage/migrations/M046_prospective_memory_has_its_own_name.py +0 -620
- package/src/superlocalmemory/storage/migrations/M047_fisher_vectors_are_stored_like_every_other_vector.py +0 -306
- package/src/superlocalmemory/storage/migrations/M048_upcoming_holds_only_what_is_upcoming.py +0 -229
- package/src/superlocalmemory/storage/migrations/M049_a_schema_version_marker_is_one_row.py +0 -201
- package/src/superlocalmemory/storage/migrations/M050_execution_learning_v2.py +0 -70
- package/src/superlocalmemory/storage/migrations/__init__.py +0 -103
- package/src/superlocalmemory/storage/migrations.py +0 -333
- package/src/superlocalmemory/storage/models.py +0 -500
- package/src/superlocalmemory/storage/projection_outbox.py +0 -346
- package/src/superlocalmemory/storage/quantized_store.py +0 -280
- package/src/superlocalmemory/storage/read_connection.py +0 -115
- package/src/superlocalmemory/storage/retention_policy.py +0 -860
- package/src/superlocalmemory/storage/schema.py +0 -1108
- package/src/superlocalmemory/storage/schema_code_graph.py +0 -282
- package/src/superlocalmemory/storage/schema_v32.py +0 -382
- package/src/superlocalmemory/storage/schema_v3410.py +0 -159
- package/src/superlocalmemory/storage/schema_v3411.py +0 -149
- package/src/superlocalmemory/storage/schema_v343.py +0 -315
- package/src/superlocalmemory/storage/schema_v345.py +0 -109
- package/src/superlocalmemory/storage/schema_v347.py +0 -140
- package/src/superlocalmemory/storage/sqlite_vectors.py +0 -169
- package/src/superlocalmemory/storage/v2_migrator.py +0 -466
- package/src/superlocalmemory/storage/write_coordinator.py +0 -949
- package/src/superlocalmemory/storage/write_lock.py +0 -88
- package/src/superlocalmemory/summaries/__init__.py +0 -37
- package/src/superlocalmemory/summaries/base.py +0 -267
- package/src/superlocalmemory/summaries/daily_reflection.py +0 -340
- package/src/superlocalmemory/summaries/non_answer.py +0 -223
- package/src/superlocalmemory/summaries/project_work_log.py +0 -440
- package/src/superlocalmemory/summaries/session_summary.py +0 -311
- package/src/superlocalmemory/trust/__init__.py +0 -0
- package/src/superlocalmemory/trust/gate.py +0 -171
- package/src/superlocalmemory/trust/provenance.py +0 -124
- package/src/superlocalmemory/trust/scorer.py +0 -413
- package/src/superlocalmemory/trust/signals.py +0 -153
- package/src/superlocalmemory/ui/assets/slm-icon-white.svg +0 -64
- package/src/superlocalmemory/ui/assets/slm-icon.svg +0 -36
- package/src/superlocalmemory/ui/css/brain.css +0 -409
- package/src/superlocalmemory/ui/css/design-system.css +0 -696
- package/src/superlocalmemory/ui/css/legacy-dashboard.css +0 -663
- package/src/superlocalmemory/ui/css/neural-glass.css +0 -1599
- package/src/superlocalmemory/ui/css/od-bridge.css +0 -158
- package/src/superlocalmemory/ui/favicon.svg +0 -36
- package/src/superlocalmemory/ui/index.html +0 -1638
- package/src/superlocalmemory/ui/js/agents.js +0 -192
- package/src/superlocalmemory/ui/js/auto-settings.js +0 -624
- package/src/superlocalmemory/ui/js/brain.js +0 -1400
- package/src/superlocalmemory/ui/js/clusters.js +0 -326
- package/src/superlocalmemory/ui/js/compliance.js +0 -307
- package/src/superlocalmemory/ui/js/core.js +0 -566
- package/src/superlocalmemory/ui/js/dashboard.js +0 -503
- package/src/superlocalmemory/ui/js/event-delegation.js +0 -113
- package/src/superlocalmemory/ui/js/events.js +0 -178
- package/src/superlocalmemory/ui/js/fact-detail.js +0 -142
- package/src/superlocalmemory/ui/js/feedback.js +0 -339
- package/src/superlocalmemory/ui/js/graph-event-bus.js +0 -83
- package/src/superlocalmemory/ui/js/graph-filters.js +0 -220
- package/src/superlocalmemory/ui/js/graph-ui.js +0 -214
- package/src/superlocalmemory/ui/js/ide-status.js +0 -115
- package/src/superlocalmemory/ui/js/init.js +0 -54
- package/src/superlocalmemory/ui/js/knowledge-graph.js +0 -945
- package/src/superlocalmemory/ui/js/lifecycle.js +0 -387
- package/src/superlocalmemory/ui/js/math-health.js +0 -114
- package/src/superlocalmemory/ui/js/memories.js +0 -394
- package/src/superlocalmemory/ui/js/memory-chat.js +0 -371
- package/src/superlocalmemory/ui/js/memory-timeline.js +0 -265
- package/src/superlocalmemory/ui/js/modal.js +0 -733
- package/src/superlocalmemory/ui/js/ng-entities.js +0 -298
- package/src/superlocalmemory/ui/js/ng-health.js +0 -208
- package/src/superlocalmemory/ui/js/ng-ingestion.js +0 -203
- package/src/superlocalmemory/ui/js/ng-mesh.js +0 -374
- package/src/superlocalmemory/ui/js/ng-shell.js +0 -524
- package/src/superlocalmemory/ui/js/ng-skills.js +0 -663
- package/src/superlocalmemory/ui/js/od-agents.js +0 -588
- package/src/superlocalmemory/ui/js/od-auth-gate.js +0 -257
- package/src/superlocalmemory/ui/js/od-backup.js +0 -878
- package/src/superlocalmemory/ui/js/od-boundedloops.js +0 -324
- package/src/superlocalmemory/ui/js/od-brain.js +0 -1095
- package/src/superlocalmemory/ui/js/od-compliance-ext.js +0 -301
- package/src/superlocalmemory/ui/js/od-components.js +0 -147
- package/src/superlocalmemory/ui/js/od-entities.js +0 -622
- package/src/superlocalmemory/ui/js/od-graph.js +0 -776
- package/src/superlocalmemory/ui/js/od-health.js +0 -579
- package/src/superlocalmemory/ui/js/od-mcp.js +0 -508
- package/src/superlocalmemory/ui/js/od-memories.js +0 -1499
- package/src/superlocalmemory/ui/js/od-mesh.js +0 -645
- package/src/superlocalmemory/ui/js/od-operations.js +0 -1268
- package/src/superlocalmemory/ui/js/od-ops-health.js +0 -417
- package/src/superlocalmemory/ui/js/od-optimize.js +0 -828
- package/src/superlocalmemory/ui/js/od-settings.js +0 -1275
- package/src/superlocalmemory/ui/js/od-shell.js +0 -819
- package/src/superlocalmemory/ui/js/od-skills.js +0 -600
- package/src/superlocalmemory/ui/js/od-team.js +0 -265
- package/src/superlocalmemory/ui/js/optimize.js +0 -191
- package/src/superlocalmemory/ui/js/profiles.js +0 -362
- package/src/superlocalmemory/ui/js/quick-actions.js +0 -334
- package/src/superlocalmemory/ui/js/recall-lab.js +0 -373
- package/src/superlocalmemory/ui/js/search.js +0 -86
- package/src/superlocalmemory/ui/js/settings.js +0 -556
- package/src/superlocalmemory/ui/js/timeline.js +0 -62
- package/src/superlocalmemory/ui/js/trust-dashboard.js +0 -225
- package/src/superlocalmemory/ui/vendor/bootstrap-icons/bootstrap-icons.css +0 -2018
- package/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- package/src/superlocalmemory/ui/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- package/src/superlocalmemory/ui/vendor/bootstrap.bundle.min.js +0 -7
- package/src/superlocalmemory/ui/vendor/bootstrap.min.css +0 -6
- package/src/superlocalmemory/ui/vendor/d3.v7.min.js +0 -2
- package/src/superlocalmemory/ui/vendor/graphology-library.min.js +0 -2
- package/src/superlocalmemory/ui/vendor/graphology.umd.min.js +0 -2
- package/src/superlocalmemory/ui/vendor/inter-ui/inter-variable.min.css +0 -8
- package/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable-Italic.woff2 +0 -0
- package/src/superlocalmemory/ui/vendor/inter-ui/variable/InterVariable.woff2 +0 -0
- package/src/superlocalmemory/ui/vendor/sigma.min.js +0 -1
- package/src/superlocalmemory/vector/__init__.py +0 -9
- package/src/superlocalmemory/vector/lancedb_backend.py +0 -366
|
@@ -1,109 +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 V4 | https://qualixar.com | https://varunpratap.com
|
|
4
|
-
|
|
5
|
-
"""Shared I/O helpers and compliance constants for ``slm gdpr`` subcommands.
|
|
6
|
-
|
|
7
|
-
Separated from gdpr_cmd.py to honour the 800-line file cap (coding-style.md).
|
|
8
|
-
All symbols here are internal (prefixed ``_``) or ALL_CAPS constants.
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
from __future__ import annotations
|
|
12
|
-
|
|
13
|
-
import json as _json
|
|
14
|
-
import sys
|
|
15
|
-
from pathlib import Path
|
|
16
|
-
from typing import Any
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
# ─────────────────────────────────────────────────────────────────────────────
|
|
20
|
-
# Output helpers
|
|
21
|
-
# ─────────────────────────────────────────────────────────────────────────────
|
|
22
|
-
|
|
23
|
-
def _die(message: str, code: int = 1) -> None:
|
|
24
|
-
"""Print an actionable error to stderr and exit non-zero."""
|
|
25
|
-
print(f"error: {message}", file=sys.stderr)
|
|
26
|
-
sys.exit(code)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def _print_json(data: Any) -> None:
|
|
30
|
-
"""Emit pretty-printed JSON to stdout (evidence-pipeline format)."""
|
|
31
|
-
print(_json.dumps(data, indent=2, default=str))
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def _json_envelope(
|
|
35
|
-
command: str, *, data: dict | None = None, error: dict | None = None
|
|
36
|
-
) -> dict:
|
|
37
|
-
"""Build the standard agent-native JSON envelope used across all SLM CLIs."""
|
|
38
|
-
from superlocalmemory.cli.json_output import _get_version
|
|
39
|
-
|
|
40
|
-
env: dict = {
|
|
41
|
-
"success": error is None,
|
|
42
|
-
"command": command,
|
|
43
|
-
"version": _get_version(),
|
|
44
|
-
}
|
|
45
|
-
if error is not None:
|
|
46
|
-
env["error"] = error
|
|
47
|
-
else:
|
|
48
|
-
env["data"] = data if data is not None else {}
|
|
49
|
-
return env
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
# ─────────────────────────────────────────────────────────────────────────────
|
|
53
|
-
# Path helpers
|
|
54
|
-
# ─────────────────────────────────────────────────────────────────────────────
|
|
55
|
-
|
|
56
|
-
def _data_root() -> Path:
|
|
57
|
-
"""Resolve the canonical SLM data root (honours SLM_DATA_DIR env var)."""
|
|
58
|
-
from superlocalmemory.infra.data_root import canonical_data_root
|
|
59
|
-
|
|
60
|
-
return canonical_data_root()
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
def _db_path() -> Path:
|
|
64
|
-
return _data_root() / "memory.db"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
def _audit_chain_path() -> Path:
|
|
68
|
-
return _data_root() / "audit_chain.db"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
# ─────────────────────────────────────────────────────────────────────────────
|
|
72
|
-
# GDPR compliance constants (DPO-facing, surfaced in ``status`` output)
|
|
73
|
-
# ─────────────────────────────────────────────────────────────────────────────
|
|
74
|
-
|
|
75
|
-
# Known gaps in this release — reported honestly so a DPO can plan remediation.
|
|
76
|
-
# Gaps C1 and C2 (cross-device erase verification and audit-log replay) remain open.
|
|
77
|
-
KNOWN_GAPS = [
|
|
78
|
-
{
|
|
79
|
-
"ref": "C1",
|
|
80
|
-
"summary": "backups/ directory is outside erasure scope",
|
|
81
|
-
"detail": (
|
|
82
|
-
"Up to 10 rotating snapshots of memory.db, learning.db and "
|
|
83
|
-
"related DB files survive an Art.17 erasure. The erasure receipt "
|
|
84
|
-
"records a 'backup_obligation' so the obligation is tracked, but "
|
|
85
|
-
"the snapshots are not automatically purged. Snapshots are "
|
|
86
|
-
"re-erased on restore."
|
|
87
|
-
),
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"ref": "C2",
|
|
91
|
-
"summary": "code_graph.db is not in erasure scope",
|
|
92
|
-
"detail": (
|
|
93
|
-
"Repository paths, file names and symbol names (identifying data "
|
|
94
|
-
"in a work context) are stored in code_graph.db. This file is "
|
|
95
|
-
"covered by compliance/gdpr.py but the per-table discovery "
|
|
96
|
-
"operates on the main memory.db only."
|
|
97
|
-
),
|
|
98
|
-
},
|
|
99
|
-
]
|
|
100
|
-
|
|
101
|
-
# Art. coverage flags that compliance/gdpr.py actively implements.
|
|
102
|
-
ART_COVERAGE = {
|
|
103
|
-
"art15_right_to_access": True,
|
|
104
|
-
"art17_right_to_erasure": True,
|
|
105
|
-
"art20_right_to_portability": True,
|
|
106
|
-
"backup_scope": "outstanding_obligation_recorded_on_receipt",
|
|
107
|
-
"audit_chain": "HMAC-chained tamper-evident",
|
|
108
|
-
"erasure_fails_closed": True,
|
|
109
|
-
}
|
|
@@ -1,197 +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
|
-
"""Handler for ``slm help-optimize``."""
|
|
6
|
-
|
|
7
|
-
from __future__ import annotations
|
|
8
|
-
|
|
9
|
-
import sys
|
|
10
|
-
from argparse import Namespace
|
|
11
|
-
|
|
12
|
-
_HELP_SECTIONS: dict[str, str] = {
|
|
13
|
-
"header": """\
|
|
14
|
-
SLM v3.6 Optimize — Developer Reference
|
|
15
|
-
========================================
|
|
16
|
-
Every feature is configurable via CLI. UI provides the same controls for
|
|
17
|
-
non-technical users. All CLI commands write config at runtime — daemon
|
|
18
|
-
hot-reloads within 2 seconds. No restart required.
|
|
19
|
-
""",
|
|
20
|
-
"optimize": """\
|
|
21
|
-
slm optimize — Optimize module control
|
|
22
|
-
---------------------------------------
|
|
23
|
-
slm optimize status Show all Optimize settings
|
|
24
|
-
slm optimize on Enable cache + compress
|
|
25
|
-
slm optimize off Disable cache + compress (proxy keeps running)
|
|
26
|
-
slm optimize savings [--since N] Token/cost savings report (default: 7 days)
|
|
27
|
-
--since N Days to look back (integer, default 7)
|
|
28
|
-
--provider P Filter by: anthropic|openai|gemini
|
|
29
|
-
All: --json Machine-readable JSON output
|
|
30
|
-
""",
|
|
31
|
-
"cache": """\
|
|
32
|
-
slm cache — Cache control
|
|
33
|
-
--------------------------
|
|
34
|
-
slm cache status Entry count, DB size, TTLs, hit rate
|
|
35
|
-
slm cache clear Delete all entries for this tenant
|
|
36
|
-
slm cache invalidate --tag <t> Delete entries whose tag array contains <t>
|
|
37
|
-
slm cache ttl --set <s> Set exact-cache TTL (seconds)
|
|
38
|
-
--semantic <s> Set semantic-cache TTL (seconds)
|
|
39
|
-
slm cache semantic on|off Enable/disable semantic cache
|
|
40
|
-
All: --json --tenant <id>
|
|
41
|
-
|
|
42
|
-
TTL examples:
|
|
43
|
-
slm cache ttl --set 3600 # 1 hour exact cache
|
|
44
|
-
slm cache ttl --set 86400 # 24 hour exact cache (default)
|
|
45
|
-
slm cache ttl --semantic 7200 # 2 hour semantic cache
|
|
46
|
-
""",
|
|
47
|
-
"compress": """\
|
|
48
|
-
slm compress — Compression control
|
|
49
|
-
-----------------------------------
|
|
50
|
-
slm compress status Show compression mode, per-channel state
|
|
51
|
-
slm compress mode safe|aggressive Set compression aggressiveness
|
|
52
|
-
slm compress code on|off Enable/disable code/JSON compression
|
|
53
|
-
slm compress prose on|off Enable/disable prose compression
|
|
54
|
-
slm compress ccr on|off Enable/disable Compressed Context Retrieval
|
|
55
|
-
All: --json
|
|
56
|
-
""",
|
|
57
|
-
"safety": """\
|
|
58
|
-
COMPRESSION SAFETY WARNING
|
|
59
|
-
---------------------------
|
|
60
|
-
Safe mode (default):
|
|
61
|
-
- Code/JSON compression: extractive, structure-preserving, lossless.
|
|
62
|
-
- Prose compression: DISABLED in safe mode. Enable manually.
|
|
63
|
-
- CCR: DISABLED by default. Originals stored for reversible retrieval.
|
|
64
|
-
- This mode is production-safe for all use cases.
|
|
65
|
-
|
|
66
|
-
Aggressive mode:
|
|
67
|
-
!! RISK: May reduce output fidelity. Use with caution. !!
|
|
68
|
-
- Prose compression: LLMLingua-2-style extractive summarization.
|
|
69
|
-
- May omit nuance, hedges, or low-salience context.
|
|
70
|
-
- DO NOT use for:
|
|
71
|
-
- Code generation or code review
|
|
72
|
-
- Legal, compliance, or regulatory text
|
|
73
|
-
- Math, formulas, or structured data generation
|
|
74
|
-
- Any task requiring exact reproduction of input
|
|
75
|
-
- Suitable for:
|
|
76
|
-
- Open-ended brainstorming
|
|
77
|
-
- Summarization of long documents
|
|
78
|
-
- Casual conversation and exploration
|
|
79
|
-
- To revert: slm compress mode safe
|
|
80
|
-
""",
|
|
81
|
-
"proxy": """\
|
|
82
|
-
slm proxy — Optimization proxy
|
|
83
|
-
--------------------------------
|
|
84
|
-
slm proxy [--port P] [--provider anthropic|openai|gemini]
|
|
85
|
-
[--no-compress] [--semantic] [--json]
|
|
86
|
-
|
|
87
|
-
Starts the SLM proxy (or reports existing). Proxy intercepts LLM calls,
|
|
88
|
-
applies cache lookup, and optionally compresses context before forwarding.
|
|
89
|
-
|
|
90
|
-
Default port: 8765
|
|
91
|
-
Anthropic surface: http://127.0.0.1:8765
|
|
92
|
-
OpenAI surface: http://127.0.0.1:8765/v1
|
|
93
|
-
""",
|
|
94
|
-
"agents": """\
|
|
95
|
-
PER-AGENT SETUP RECIPES
|
|
96
|
-
------------------------
|
|
97
|
-
|
|
98
|
-
--- Claude Code (ANTHROPIC_BASE_URL) ---
|
|
99
|
-
The simplest redirect. Set this env var before launching Claude Code.
|
|
100
|
-
|
|
101
|
-
Option A — environment variable (per-session):
|
|
102
|
-
export ANTHROPIC_BASE_URL=http://127.0.0.1:8765
|
|
103
|
-
claude # Claude Code picks up the env var
|
|
104
|
-
|
|
105
|
-
Option B — slm wrap (one command, recommended):
|
|
106
|
-
slm wrap claude # starts proxy + sets env + launches claude
|
|
107
|
-
|
|
108
|
-
Option C — permanent (add to ~/.zshrc or ~/.bashrc):
|
|
109
|
-
echo 'export ANTHROPIC_BASE_URL=http://127.0.0.1:8765' >> ~/.zshrc
|
|
110
|
-
source ~/.zshrc
|
|
111
|
-
|
|
112
|
-
Verify: slm optimize status -> look for "proxy: running on :8765"
|
|
113
|
-
|
|
114
|
-
--- Antigravity (config.toml base_url) ---
|
|
115
|
-
Antigravity reads base_url from its config.toml.
|
|
116
|
-
Default config location: ~/.config/antigravity/config.toml
|
|
117
|
-
|
|
118
|
-
Add or update this line under the [api] section:
|
|
119
|
-
[api]
|
|
120
|
-
base_url = "http://127.0.0.1:8765"
|
|
121
|
-
|
|
122
|
-
Or use slm wrap (if supported in your version):
|
|
123
|
-
slm wrap antigravity
|
|
124
|
-
|
|
125
|
-
Verify: antigravity --debug -> look for "base_url: http://127.0.0.1:8765"
|
|
126
|
-
|
|
127
|
-
--- Generic OpenAI-compatible clients (Cline, Cursor, Aider, OpenCode) ---
|
|
128
|
-
Any client that accepts an OpenAI base_url can use the /v1 surface:
|
|
129
|
-
base_url = http://127.0.0.1:8765/v1
|
|
130
|
-
api_key = (use your real provider key — proxy forwards it)
|
|
131
|
-
|
|
132
|
-
Aider:
|
|
133
|
-
aider --openai-api-base http://127.0.0.1:8765/v1
|
|
134
|
-
|
|
135
|
-
Cline (VS Code settings.json):
|
|
136
|
-
"cline.openAiBaseUrl": "http://127.0.0.1:8765/v1"
|
|
137
|
-
|
|
138
|
-
Cursor (Settings > Models > Base URL):
|
|
139
|
-
http://127.0.0.1:8765/v1
|
|
140
|
-
|
|
141
|
-
OpenCode / other CLI tools:
|
|
142
|
-
OPENAI_BASE_URL=http://127.0.0.1:8765/v1 opencode
|
|
143
|
-
|
|
144
|
-
Or use slm wrap:
|
|
145
|
-
slm wrap aider [-- <aider args>]
|
|
146
|
-
slm wrap cursor
|
|
147
|
-
slm wrap opencode
|
|
148
|
-
|
|
149
|
-
--- SDK adapters (Python) ---
|
|
150
|
-
from superlocalmemory.optimize.adapters.openai_adapter import withSLM
|
|
151
|
-
from openai import OpenAI
|
|
152
|
-
client = withSLM(OpenAI()) # same interface as OpenAI() — zero API change
|
|
153
|
-
|
|
154
|
-
from superlocalmemory.optimize.adapters.anthropic_adapter import withSLM
|
|
155
|
-
from anthropic import Anthropic
|
|
156
|
-
client = withSLM(Anthropic())
|
|
157
|
-
|
|
158
|
-
NOTE: withSLM() is a pass-through when optimize is OFF.
|
|
159
|
-
No behavioral change until you run: slm optimize on
|
|
160
|
-
""",
|
|
161
|
-
"footer": """\
|
|
162
|
-
More commands:
|
|
163
|
-
slm help-optimize cache Cache subcommand reference
|
|
164
|
-
slm help-optimize compress Compress reference + safety warning
|
|
165
|
-
slm help-optimize agents Per-agent setup recipes
|
|
166
|
-
slm help-optimize safety Compression safety warning only
|
|
167
|
-
|
|
168
|
-
Documentation: https://superlocalmemory.com
|
|
169
|
-
GitHub: https://github.com/qualixar/superlocalmemory
|
|
170
|
-
AI Reliability Engineering by @varunPbhardwaj — https://qualixar.com
|
|
171
|
-
""",
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
def cmd_help_optimize(args: Namespace) -> None:
|
|
176
|
-
"""Print the full slm help-optimize page or a topic-specific section."""
|
|
177
|
-
topic = getattr(args, "topic", None)
|
|
178
|
-
no_pager = getattr(args, "no_pager", False)
|
|
179
|
-
|
|
180
|
-
if topic and topic not in _HELP_SECTIONS:
|
|
181
|
-
print(f"Unknown topic: {topic}."
|
|
182
|
-
f" Topics: {' '.join(k for k in _HELP_SECTIONS if k != 'footer')}")
|
|
183
|
-
sys.exit(1)
|
|
184
|
-
|
|
185
|
-
if topic:
|
|
186
|
-
text = _HELP_SECTIONS[topic]
|
|
187
|
-
else:
|
|
188
|
-
text = "\n".join(_HELP_SECTIONS.values())
|
|
189
|
-
|
|
190
|
-
if no_pager or not sys.stdout.isatty():
|
|
191
|
-
print(text)
|
|
192
|
-
else:
|
|
193
|
-
try:
|
|
194
|
-
import pydoc
|
|
195
|
-
pydoc.pager(text)
|
|
196
|
-
except Exception:
|
|
197
|
-
print(text)
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
"""Consented, non-destructive upgrades for existing host integrations.
|
|
2
|
-
|
|
3
|
-
Package installation owns the SLM executable. This module owns the separate
|
|
4
|
-
operator-approved step that refreshes SLM-owned integration assets. It never
|
|
5
|
-
discovers a host and edits it implicitly: preview is the default and apply
|
|
6
|
-
requires either explicit hosts or an explicit all-detected acknowledgement.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from __future__ import annotations
|
|
10
|
-
|
|
11
|
-
from argparse import Namespace
|
|
12
|
-
from pathlib import Path
|
|
13
|
-
from typing import Any
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
def validate_upgrade_request(*, apply: bool, hosts: list[str], all_detected: bool) -> None:
|
|
17
|
-
"""Reject unbounded mutations before any host filesystem access."""
|
|
18
|
-
if apply and not hosts and not all_detected:
|
|
19
|
-
raise ValueError("--apply requires at least one --host or --all-detected")
|
|
20
|
-
if hosts and all_detected:
|
|
21
|
-
raise ValueError("choose explicit --host values or --all-detected, not both")
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def cmd_upgrade_hosts(args: Namespace) -> None:
|
|
25
|
-
"""Preview or explicitly apply host integration refreshes."""
|
|
26
|
-
hosts = list(getattr(args, "hosts", []) or [])
|
|
27
|
-
apply = bool(getattr(args, "apply", False))
|
|
28
|
-
all_detected = bool(getattr(args, "all_detected", False))
|
|
29
|
-
try:
|
|
30
|
-
validate_upgrade_request(apply=apply, hosts=hosts, all_detected=all_detected)
|
|
31
|
-
except ValueError as exc:
|
|
32
|
-
print(f"Error: {exc}")
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
from superlocalmemory.hooks.portable_kit import supported_ides
|
|
36
|
-
|
|
37
|
-
detected = set(_detected_hosts())
|
|
38
|
-
targets = sorted(detected) if all_detected else (hosts or sorted(detected))
|
|
39
|
-
managed_hosts = set(supported_ides()) | {"claude-code", "hermes"}
|
|
40
|
-
unknown = sorted(set(targets) - managed_hosts)
|
|
41
|
-
if unknown:
|
|
42
|
-
print(f"Error: unsupported host(s): {', '.join(unknown)}")
|
|
43
|
-
return
|
|
44
|
-
if not targets:
|
|
45
|
-
print("No existing SLM host integrations were detected.")
|
|
46
|
-
print("Run `slm setup` for first-time setup, or use `--host <name>` to target one host.")
|
|
47
|
-
return
|
|
48
|
-
|
|
49
|
-
operation = "Applying" if apply else "Previewing"
|
|
50
|
-
print(f"{operation} SLM host upgrades: {', '.join(targets)}")
|
|
51
|
-
if not apply:
|
|
52
|
-
print("No host files will be changed. Re-run with --apply and explicit targets to proceed.")
|
|
53
|
-
|
|
54
|
-
for host in targets:
|
|
55
|
-
result = _upgrade_host(host, apply=apply, already_integrated=host in detected)
|
|
56
|
-
status = result.get("status", "error")
|
|
57
|
-
detail = result.get("detail", "")
|
|
58
|
-
print(f" [{status}] {host}: {detail}")
|
|
59
|
-
|
|
60
|
-
if apply:
|
|
61
|
-
print("Restart affected host applications, then run `slm doctor` to verify SLM itself.")
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def _detected_hosts(home: Path | None = None) -> list[str]:
|
|
65
|
-
"""Return only hosts already containing an SLM-owned integration block."""
|
|
66
|
-
from superlocalmemory.hooks.portable_kit import (
|
|
67
|
-
IDE_MATRIX,
|
|
68
|
-
_load_config,
|
|
69
|
-
_ParseError,
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
effective_home = home or Path.home()
|
|
73
|
-
detected: list[str] = []
|
|
74
|
-
for host, desc in IDE_MATRIX.items():
|
|
75
|
-
if not desc.fmt:
|
|
76
|
-
continue
|
|
77
|
-
path = effective_home / desc.mcp_path_global
|
|
78
|
-
try:
|
|
79
|
-
data = _load_config(path, desc.fmt)
|
|
80
|
-
except _ParseError:
|
|
81
|
-
continue
|
|
82
|
-
if _contains_slm_block(data, desc):
|
|
83
|
-
detected.append(host)
|
|
84
|
-
|
|
85
|
-
# Claude Code's plugin is host-managed. A local SLM hook installation is
|
|
86
|
-
# the durable evidence that its SLM integration exists; upgrading the
|
|
87
|
-
# plugin remains an explicit Claude Code marketplace action.
|
|
88
|
-
try:
|
|
89
|
-
from superlocalmemory.hooks.claude_code_hooks import check_status
|
|
90
|
-
|
|
91
|
-
if check_status().get("installed"):
|
|
92
|
-
detected.append("claude-code")
|
|
93
|
-
except Exception:
|
|
94
|
-
pass
|
|
95
|
-
|
|
96
|
-
# Hermes has a native YAML mapping rather than the portable-kit schema.
|
|
97
|
-
# Detect it for reporting, but never overwrite it with an invented format.
|
|
98
|
-
hermes_path = effective_home / ".hermes" / "config.yaml"
|
|
99
|
-
try:
|
|
100
|
-
hermes = _load_config(hermes_path, "yaml")
|
|
101
|
-
servers = hermes.get("mcp_servers", {})
|
|
102
|
-
if isinstance(servers, dict) and "superlocalmemory" in servers:
|
|
103
|
-
detected.append("hermes")
|
|
104
|
-
except _ParseError:
|
|
105
|
-
pass
|
|
106
|
-
return sorted(set(detected))
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
def _contains_slm_block(data: dict[str, Any], desc: Any) -> bool:
|
|
110
|
-
if desc.fmt == "yaml":
|
|
111
|
-
providers = data.get(desc.server_key, [])
|
|
112
|
-
return isinstance(providers, list) and any(
|
|
113
|
-
isinstance(item, dict)
|
|
114
|
-
and item.get("params", {}).get("serverName") == "superlocalmemory"
|
|
115
|
-
for item in providers
|
|
116
|
-
)
|
|
117
|
-
servers = data.get(desc.server_key, {})
|
|
118
|
-
return isinstance(servers, dict) and "superlocalmemory" in servers
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
def _upgrade_host(host: str, *, apply: bool, already_integrated: bool) -> dict[str, str]:
|
|
122
|
-
"""Refresh assets without degrading a working, host-specific MCP block."""
|
|
123
|
-
if host == "claude-code":
|
|
124
|
-
return {
|
|
125
|
-
"status": "plugin-managed",
|
|
126
|
-
"detail": "run `claude plugin update superlocalmemory@qualixar` in Claude Code",
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
if host == "hermes":
|
|
130
|
-
if already_integrated:
|
|
131
|
-
return {
|
|
132
|
-
"status": "verified",
|
|
133
|
-
"detail": "existing native Hermes SLM mapping preserved",
|
|
134
|
-
}
|
|
135
|
-
return {
|
|
136
|
-
"status": "blocked",
|
|
137
|
-
"detail": "Hermes is not connected; follow docs/ide-setup.md before retrying",
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if host == "codex" and already_integrated:
|
|
141
|
-
from superlocalmemory.hooks.codex_assets import install_assets
|
|
142
|
-
from superlocalmemory.hooks.codex_hooks import install_hooks
|
|
143
|
-
|
|
144
|
-
assets, hooks = install_assets(dry_run=not apply), install_hooks(dry_run=not apply)
|
|
145
|
-
if not assets.get("success") or not hooks.get("success"):
|
|
146
|
-
return {"status": "blocked", "detail": "could not refresh SLM-owned Codex assets"}
|
|
147
|
-
action = "would refresh" if not apply else "refreshed"
|
|
148
|
-
# Name what is actually written. Saying "refreshed skills" while the
|
|
149
|
-
# copies under ~/.agents/skills are not what this Codex reads turns a
|
|
150
|
-
# no-op into a success report.
|
|
151
|
-
written = assets.get("skills_written") or []
|
|
152
|
-
agents_written = assets.get("agents_written") or []
|
|
153
|
-
preserved = assets.get("agents_preserved") or []
|
|
154
|
-
elsewhere = assets.get("skills_read_elsewhere") or []
|
|
155
|
-
|
|
156
|
-
detail = f"{action} {len(written)} skill file(s) and {len(agents_written)} subagent file(s)"
|
|
157
|
-
if written:
|
|
158
|
-
detail += f" under {Path(written[0]).parent.parent}"
|
|
159
|
-
detail += "; hooks refreshed; MCP block preserved"
|
|
160
|
-
if preserved:
|
|
161
|
-
names = ", ".join(Path(x).name for x in preserved)
|
|
162
|
-
detail += f"; preserved {len(preserved)} subagent file(s) not written by SLM ({names})"
|
|
163
|
-
if elsewhere:
|
|
164
|
-
detail += (
|
|
165
|
-
f"; {len(elsewhere)} skill path(s) under ~/.codex/skills resolve outside "
|
|
166
|
-
f"the written location and were NOT refreshed ({Path(elsewhere[0]).parent})"
|
|
167
|
-
)
|
|
168
|
-
return {"status": "updated" if apply else "preview", "detail": detail}
|
|
169
|
-
|
|
170
|
-
if already_integrated:
|
|
171
|
-
return {
|
|
172
|
-
"status": "verified",
|
|
173
|
-
"detail": "existing SLM MCP block preserved; no portable host assets require refresh",
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
# An explicitly named, not-yet-connected host is a first-time connection.
|
|
177
|
-
# This branch is never reached by --all-detected.
|
|
178
|
-
from superlocalmemory.hooks.portable_kit import connect_ide
|
|
179
|
-
|
|
180
|
-
result = connect_ide(host, dry_run=not apply)
|
|
181
|
-
if result.get("error"):
|
|
182
|
-
return {"status": "blocked", "detail": str(result["error"])}
|
|
183
|
-
action = result.get("mcp_config", "unknown")
|
|
184
|
-
if not apply:
|
|
185
|
-
return {"status": "preview", "detail": f"would refresh SLM MCP block ({action})"}
|
|
186
|
-
return {"status": "updated", "detail": f"SLM MCP block {action}"}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
__all__ = ("cmd_upgrade_hosts", "validate_upgrade_request")
|