superlocalmemory 3.6.22 → 3.7.0
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/CHANGELOG.md +52 -0
- package/README.md +275 -72
- package/bin/slm-npm +43 -89
- package/docs/pi-dev-integration.md +43 -0
- package/ide/configs/antigravity-mcp.json +2 -2
- package/ide/configs/chatgpt-desktop-mcp.json +1 -1
- package/ide/configs/claude-desktop-mcp.json +2 -2
- package/ide/configs/windsurf-mcp.json +2 -2
- package/ide/hooks/context-hook.js +6 -2
- package/ide/hooks/post-recall-hook.js +7 -3
- package/ide/hooks/tool-event-hook.sh +2 -1
- package/package.json +19 -10
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/_GENERATED.md +1 -1
- package/plugin/agents/slm-memory-advisor.md +1 -1
- package/plugin/requirements.txt +1 -1
- package/plugin/skills/slm-session/SKILL.md +1 -1
- package/plugin-src/rules/AGENTS.md +1 -1
- package/pyproject.toml +40 -8
- package/scripts/postinstall-interactive.js +17 -94
- package/scripts/postinstall.js +185 -258
- package/scripts/preuninstall.js +9 -50
- package/src/superlocalmemory/__init__.py +2 -2
- package/src/superlocalmemory/attribution/mathematical_dna.py +1 -1
- package/src/superlocalmemory/attribution/signer.py +34 -19
- package/src/superlocalmemory/attribution/watermark.py +1 -1
- package/src/superlocalmemory/cli/_lazy_init.py +3 -5
- package/src/superlocalmemory/cli/commands.py +490 -195
- package/src/superlocalmemory/cli/context_commands.py +5 -4
- package/src/superlocalmemory/cli/daemon.py +282 -187
- package/src/superlocalmemory/cli/db_migrate.py +3 -1
- package/src/superlocalmemory/cli/diagnostics_cmd.py +28 -0
- package/src/superlocalmemory/cli/evidence_cmd.py +103 -0
- package/src/superlocalmemory/cli/ingest_cmd.py +7 -3
- package/src/superlocalmemory/cli/main.py +128 -31
- package/src/superlocalmemory/cli/pending_store.py +54 -38
- package/src/superlocalmemory/cli/scale_engine_cmd.py +37 -0
- package/src/superlocalmemory/cli/service_installer.py +57 -52
- package/src/superlocalmemory/cli/setup_wizard.py +142 -88
- package/src/superlocalmemory/cli/version_banner.py +2 -1
- package/src/superlocalmemory/code_graph/config.py +3 -1
- package/src/superlocalmemory/core/backend_orchestrator.py +81 -21
- package/src/superlocalmemory/core/config.py +65 -20
- package/src/superlocalmemory/core/consolidation_engine.py +9 -7
- package/src/superlocalmemory/core/context_cache.py +56 -8
- package/src/superlocalmemory/core/derivation_lineage.py +246 -0
- package/src/superlocalmemory/core/embedding_worker.py +32 -20
- package/src/superlocalmemory/core/embeddings.py +54 -18
- package/src/superlocalmemory/core/engine.py +150 -104
- package/src/superlocalmemory/core/engine_ingestion.py +513 -0
- package/src/superlocalmemory/core/engine_wiring.py +2 -0
- package/src/superlocalmemory/core/evidence_bundle.py +526 -0
- package/src/superlocalmemory/core/fact_consolidator.py +5 -11
- package/src/superlocalmemory/core/graph_analyzer.py +2 -2
- package/src/superlocalmemory/core/health_monitor.py +4 -2
- package/src/superlocalmemory/core/ingestion_command.py +636 -0
- package/src/superlocalmemory/core/injection.py +69 -18
- package/src/superlocalmemory/core/lifecycle_state.py +153 -0
- package/src/superlocalmemory/core/maintenance.py +23 -22
- package/src/superlocalmemory/core/maintenance_scheduler.py +51 -35
- package/src/superlocalmemory/core/mutations.py +143 -0
- package/src/superlocalmemory/core/platform_utils.py +7 -4
- package/src/superlocalmemory/core/ram_lock.py +16 -5
- package/src/superlocalmemory/core/rate_limit.py +1 -1
- package/src/superlocalmemory/core/recall_pipeline.py +60 -101
- package/src/superlocalmemory/core/recall_worker.py +76 -59
- package/src/superlocalmemory/core/registry.py +1 -1
- package/src/superlocalmemory/core/scale_engine.py +293 -0
- package/src/superlocalmemory/core/score_contract.py +62 -0
- package/src/superlocalmemory/core/security_primitives.py +3 -1
- package/src/superlocalmemory/core/slm_disabled.py +3 -5
- package/src/superlocalmemory/core/store_pipeline.py +172 -40
- package/src/superlocalmemory/core/tier_manager.py +32 -20
- package/src/superlocalmemory/core/worker_pool.py +13 -4
- package/src/superlocalmemory/dynamics/activation_guided_quantization.py +1 -1
- package/src/superlocalmemory/dynamics/eap_scheduler.py +10 -3
- package/src/superlocalmemory/dynamics/ebbinghaus_langevin_coupling.py +1 -1
- package/src/superlocalmemory/dynamics/fisher_langevin_coupling.py +1 -1
- package/src/superlocalmemory/encoding/auto_linker.py +1 -1
- package/src/superlocalmemory/encoding/cognitive_consolidator.py +7 -16
- package/src/superlocalmemory/encoding/consolidator.py +22 -5
- package/src/superlocalmemory/encoding/fact_extractor.py +1 -1
- package/src/superlocalmemory/encoding/foresight.py +2 -0
- package/src/superlocalmemory/encoding/graph_builder.py +1 -1
- package/src/superlocalmemory/encoding/temporal_parser.py +2 -0
- package/src/superlocalmemory/evaluation/__init__.py +13 -0
- package/src/superlocalmemory/evaluation/calibration.py +308 -0
- package/src/superlocalmemory/evolution/skill_evolver.py +2 -1
- package/src/superlocalmemory/graph/cozo_backend.py +256 -23
- package/src/superlocalmemory/hooks/_outcome_common.py +21 -11
- package/src/superlocalmemory/hooks/antigravity_adapter.py +10 -31
- package/src/superlocalmemory/hooks/auto_invoker.py +25 -27
- package/src/superlocalmemory/hooks/auto_recall.py +31 -6
- package/src/superlocalmemory/hooks/auto_recall_hook.py +13 -33
- package/src/superlocalmemory/hooks/before_web_hook.py +9 -7
- package/src/superlocalmemory/hooks/claude_code_hooks.py +126 -39
- package/src/superlocalmemory/hooks/codex_assets.py +59 -0
- package/src/superlocalmemory/hooks/codex_hooks.py +186 -0
- package/src/superlocalmemory/hooks/context_payload.py +1 -1
- package/src/superlocalmemory/hooks/copilot_adapter.py +9 -24
- package/src/superlocalmemory/hooks/cursor_adapter.py +10 -32
- package/src/superlocalmemory/hooks/hook_daemon.py +4 -2
- package/src/superlocalmemory/hooks/hook_handlers.py +241 -55
- package/src/superlocalmemory/hooks/memory_protocol.py +5 -3
- package/src/superlocalmemory/hooks/post_tool_async_hook.py +4 -2
- package/src/superlocalmemory/hooks/session_registry.py +15 -8
- package/src/superlocalmemory/hooks/stop_outcome_hook.py +10 -6
- package/src/superlocalmemory/hooks/topic_shift_hook.py +42 -12
- package/src/superlocalmemory/hooks/user_prompt_hook.py +9 -14
- package/src/superlocalmemory/hooks/user_prompt_rehash_hook.py +19 -11
- package/src/superlocalmemory/infra/auth_middleware.py +38 -5
- package/src/superlocalmemory/infra/backup.py +7 -5
- package/src/superlocalmemory/infra/cloud_backup.py +18 -8
- package/src/superlocalmemory/infra/daemon_identity.py +248 -0
- package/src/superlocalmemory/infra/data_root.py +199 -0
- package/src/superlocalmemory/infra/event_bus.py +3 -1
- package/src/superlocalmemory/infra/local_diagnostics.py +327 -0
- package/src/superlocalmemory/infra/process_reaper.py +23 -0
- package/src/superlocalmemory/ingestion/adapter_manager.py +27 -9
- package/src/superlocalmemory/ingestion/base_adapter.py +25 -31
- package/src/superlocalmemory/ingestion/calendar_adapter.py +13 -4
- package/src/superlocalmemory/ingestion/credentials.py +14 -7
- package/src/superlocalmemory/ingestion/gmail_adapter.py +13 -4
- package/src/superlocalmemory/ingestion/transcript_adapter.py +7 -2
- package/src/superlocalmemory/learning/consolidation_quantization_worker.py +1 -1
- package/src/superlocalmemory/learning/ensemble.py +11 -0
- package/src/superlocalmemory/learning/entity_compiler.py +1 -1
- package/src/superlocalmemory/learning/feedback.py +1 -1
- package/src/superlocalmemory/learning/forgetting_scheduler.py +12 -7
- package/src/superlocalmemory/learning/quantization_scheduler.py +1 -1
- package/src/superlocalmemory/learning/ranker.py +4 -1
- package/src/superlocalmemory/learning/source_quality.py +1 -1
- package/src/superlocalmemory/learning/trigram_index.py +3 -2
- package/src/superlocalmemory/llm/backbone.py +13 -8
- package/src/superlocalmemory/math/ebbinghaus.py +1 -1
- package/src/superlocalmemory/math/fisher.py +1 -1
- package/src/superlocalmemory/math/fisher_quantized.py +1 -1
- package/src/superlocalmemory/math/hopfield.py +1 -1
- package/src/superlocalmemory/math/langevin.py +1 -1
- package/src/superlocalmemory/math/polar_quant.py +3 -4
- package/src/superlocalmemory/math/qjl.py +1 -1
- package/src/superlocalmemory/math/sheaf.py +1 -1
- package/src/superlocalmemory/math/turbo_quant.py +3 -2
- package/src/superlocalmemory/mcp/_daemon_proxy.py +12 -11
- package/src/superlocalmemory/mcp/_pool_adapter.py +27 -0
- package/src/superlocalmemory/mcp/http_transport.py +53 -0
- package/src/superlocalmemory/mcp/server.py +39 -13
- package/src/superlocalmemory/mcp/shared.py +69 -3
- package/src/superlocalmemory/mcp/tools_active.py +141 -31
- package/src/superlocalmemory/mcp/tools_core.py +128 -29
- package/src/superlocalmemory/mcp/tools_evolution.py +5 -7
- package/src/superlocalmemory/mcp/tools_learning.py +42 -2
- package/src/superlocalmemory/mcp/tools_mesh.py +7 -23
- package/src/superlocalmemory/mcp/tools_optimize.py +8 -1
- package/src/superlocalmemory/mcp/tools_v28.py +23 -2
- package/src/superlocalmemory/mcp/tools_v3.py +26 -1
- package/src/superlocalmemory/mcp/tools_v33.py +56 -17
- package/src/superlocalmemory/mesh/broker.py +2 -0
- package/src/superlocalmemory/mesh/remote_sync.py +50 -12
- package/src/superlocalmemory/optimize/cache/manager.py +77 -1
- package/src/superlocalmemory/optimize/cache/semantic.py +23 -3
- package/src/superlocalmemory/optimize/compress/ccr.py +4 -0
- package/src/superlocalmemory/optimize/compress/router.py +6 -1
- package/src/superlocalmemory/optimize/config/__init__.py +5 -0
- package/src/superlocalmemory/optimize/config/store.py +6 -4
- package/src/superlocalmemory/optimize/proxy/_helpers.py +15 -5
- package/src/superlocalmemory/optimize/proxy/capture.py +3 -2
- package/src/superlocalmemory/optimize/proxy/server.py +2 -2
- package/src/superlocalmemory/optimize/storage/db.py +14 -13
- package/src/superlocalmemory/retrieval/agentic.py +1 -1
- package/src/superlocalmemory/retrieval/ann_index.py +1 -1
- package/src/superlocalmemory/retrieval/bm25_channel.py +35 -11
- package/src/superlocalmemory/retrieval/bridge_discovery.py +73 -8
- package/src/superlocalmemory/retrieval/engine.py +169 -79
- package/src/superlocalmemory/retrieval/entity_channel.py +289 -67
- package/src/superlocalmemory/retrieval/forgetting_filter.py +1 -1
- package/src/superlocalmemory/retrieval/fusion.py +1 -1
- package/src/superlocalmemory/retrieval/hopfield_channel.py +118 -30
- package/src/superlocalmemory/retrieval/profile_channel.py +1 -1
- package/src/superlocalmemory/retrieval/quantization_aware_search.py +16 -10
- package/src/superlocalmemory/retrieval/reranker.py +56 -20
- package/src/superlocalmemory/retrieval/scope_policy.py +85 -0
- package/src/superlocalmemory/retrieval/semantic_channel.py +122 -14
- package/src/superlocalmemory/retrieval/spreading_activation.py +141 -25
- package/src/superlocalmemory/retrieval/strategy.py +1 -1
- package/src/superlocalmemory/retrieval/temporal_channel.py +30 -15
- package/src/superlocalmemory/retrieval/vector_store.py +1 -1
- package/src/superlocalmemory/server/api.py +10 -7
- package/src/superlocalmemory/server/bandit_loops.py +4 -2
- package/src/superlocalmemory/server/recall_serializer.py +24 -0
- package/src/superlocalmemory/server/route_mutations.py +84 -0
- package/src/superlocalmemory/server/routes/agents.py +8 -6
- package/src/superlocalmemory/server/routes/brain.py +14 -12
- package/src/superlocalmemory/server/routes/chat.py +29 -12
- package/src/superlocalmemory/server/routes/data_io.py +55 -24
- package/src/superlocalmemory/server/routes/helpers.py +29 -4
- package/src/superlocalmemory/server/routes/ingest.py +53 -36
- package/src/superlocalmemory/server/routes/memories.py +104 -43
- package/src/superlocalmemory/server/routes/mesh.py +31 -0
- package/src/superlocalmemory/server/routes/profiles.py +26 -4
- package/src/superlocalmemory/server/routes/tiers.py +43 -11
- package/src/superlocalmemory/server/routes/timeline.py +5 -1
- package/src/superlocalmemory/server/routes/v3_api.py +76 -21
- package/src/superlocalmemory/server/security_middleware.py +1 -1
- package/src/superlocalmemory/server/ui.py +6 -3
- package/src/superlocalmemory/server/unified_daemon.py +680 -293
- package/src/superlocalmemory/server/write_identity.py +147 -0
- package/src/superlocalmemory/storage/access_log.py +4 -3
- package/src/superlocalmemory/storage/database.py +118 -25
- package/src/superlocalmemory/storage/migration_runner.py +84 -1
- package/src/superlocalmemory/storage/migration_v33.py +1 -1
- package/src/superlocalmemory/storage/migrations/M002_model_state_history.py +6 -60
- package/src/superlocalmemory/storage/migrations/M018_ingestion_operations.py +120 -0
- package/src/superlocalmemory/storage/migrations/M019_derivation_lineage.py +54 -0
- package/src/superlocalmemory/storage/migrations/M020_model_state_integrity.py +52 -0
- package/src/superlocalmemory/storage/migrations/__init__.py +5 -0
- package/src/superlocalmemory/storage/models.py +16 -0
- package/src/superlocalmemory/storage/quantized_store.py +20 -3
- package/src/superlocalmemory/storage/v2_migrator.py +5 -3
- package/src/superlocalmemory/ui/favicon.svg +5 -0
- package/src/superlocalmemory/ui/index.html +1 -0
- package/src/superlocalmemory/ui/js/compliance.js +1 -1
- package/src/superlocalmemory/ui/js/core.js +49 -8
- package/src/superlocalmemory/ui/js/dashboard.js +23 -2
- package/src/superlocalmemory/ui/js/feedback.js +1 -1
- package/src/superlocalmemory/ui/js/graph-filters.js +1 -1
- package/src/superlocalmemory/ui/js/graph-ui.js +1 -1
- package/src/superlocalmemory/ui/js/lifecycle.js +1 -1
- package/src/superlocalmemory/ui/js/ng-mesh.js +15 -49
- package/src/superlocalmemory/ui/js/settings.js +4 -2
- package/src/superlocalmemory/vector/lancedb_backend.py +57 -9
- package/bin/slm +0 -59
- package/bin/slm.bat +0 -77
- package/bin/slm.cmd +0 -5
- package/ide/integrations/langchain/README.md +0 -106
- package/ide/integrations/langchain/langchain_superlocalmemory/__init__.py +0 -9
- package/ide/integrations/langchain/langchain_superlocalmemory/chat_message_history.py +0 -201
- package/ide/integrations/langchain/pyproject.toml +0 -38
- package/ide/integrations/langchain/tests/__init__.py +0 -3
- package/ide/integrations/langchain/tests/test_chat_message_history.py +0 -215
- package/ide/integrations/langchain/tests/test_security.py +0 -117
- package/ide/integrations/llamaindex/README.md +0 -81
- package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/__init__.py +0 -9
- package/ide/integrations/llamaindex/llama_index/storage/chat_store/superlocalmemory/base.py +0 -316
- package/ide/integrations/llamaindex/pyproject.toml +0 -43
- package/ide/integrations/llamaindex/tests/__init__.py +0 -3
- package/ide/integrations/llamaindex/tests/test_chat_store.py +0 -294
- package/ide/integrations/llamaindex/tests/test_security.py +0 -241
- package/plugin-src/.mcp.json +0 -12
- package/plugin-src/agents/slm-memory-advisor.md +0 -44
- package/plugin-src/agents/slm-optimize-advisor.md +0 -38
- package/plugin-src/hooks/.gitkeep +0 -0
- package/plugin-src/hooks/hooks.json +0 -23
- package/plugin-src/manifest.json +0 -25
- package/plugin-src/requirements.txt +0 -1
- package/plugin-src/rules/CLAUDE.md.fragment +0 -44
- package/plugin-src/scripts/ensure-venv.bat +0 -122
- package/plugin-src/scripts/ensure-venv.sh +0 -105
- package/plugin-src/scripts/slm-launch +0 -15
- package/plugin-src/scripts/slm-launch.bat +0 -17
- package/plugin-src/settings.json +0 -16
- package/plugin-src/skills/slm-cache/SKILL.md +0 -140
- package/plugin-src/skills/slm-compress/SKILL.md +0 -143
- package/plugin-src/skills/slm-graph/SKILL.md +0 -300
- package/plugin-src/skills/slm-recall/SKILL.md +0 -204
- package/plugin-src/skills/slm-remember/SKILL.md +0 -194
- package/plugin-src/skills/slm-session/SKILL.md +0 -207
- package/plugin-src/skills/slm-status/SKILL.md +0 -149
- package/scripts/__tests__/build-plugin.test.mjs +0 -613
- package/scripts/_savings_math.py +0 -270
- package/scripts/build-dmg.sh +0 -417
- package/scripts/build-plugin.js +0 -742
- package/scripts/build-slm-hook.ps1 +0 -40
- package/scripts/build-slm-hook.sh +0 -45
- package/scripts/build_entry.py +0 -452
- package/scripts/ci/stage5b_gate.sh +0 -50
- package/scripts/dogfood_savings.py +0 -490
- package/scripts/generate-thumbnails.py +0 -218
- package/scripts/install-skills.ps1 +0 -4
- package/scripts/install-skills.sh +0 -5
- package/scripts/install.ps1 +0 -701
- package/scripts/install.sh +0 -1015
- package/scripts/postinstall_binary.js +0 -287
- package/scripts/prepack.js +0 -33
- package/scripts/release_manifest.py +0 -273
- package/scripts/slm-hook.spec +0 -56
- package/scripts/start-dashboard.ps1 +0 -52
- package/scripts/start-dashboard.sh +0 -41
- package/scripts/sync-wiki.ps1 +0 -127
- package/scripts/sync-wiki.sh +0 -82
- package/scripts/test-dmg.sh +0 -161
- package/scripts/test-npm-package.ps1 +0 -252
- package/scripts/test-npm-package.sh +0 -207
- package/scripts/verify-install.ps1 +0 -294
- package/scripts/verify-install.sh +0 -266
- package/scripts/verify-v27.ps1 +0 -301
- package/scripts/verify-v27.sh +0 -233
- package/src/superlocalmemory.egg-info/PKG-INFO +0 -513
- package/src/superlocalmemory.egg-info/SOURCES.txt +0 -529
- package/src/superlocalmemory.egg-info/dependency_links.txt +0 -1
- package/src/superlocalmemory.egg-info/entry_points.txt +0 -2
- package/src/superlocalmemory.egg-info/requires.txt +0 -71
- package/src/superlocalmemory.egg-info/top_level.txt +0 -1
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# ============================================================================
|
|
3
|
-
# SuperLocalMemory - Installation Verification Script
|
|
4
|
-
# Copyright (c) 2026 Varun Pratap Bhardwaj
|
|
5
|
-
# Licensed under MIT License
|
|
6
|
-
# Repository: https://github.com/qualixar/superlocalmemory
|
|
7
|
-
# ============================================================================
|
|
8
|
-
|
|
9
|
-
set -e
|
|
10
|
-
|
|
11
|
-
INSTALL_DIR="${HOME}/.superlocalmemory"
|
|
12
|
-
|
|
13
|
-
# Print banner
|
|
14
|
-
echo ""
|
|
15
|
-
echo "╔══════════════════════════════════════════════════════════════╗"
|
|
16
|
-
echo "║ SuperLocalMemory - Installation Verification ║"
|
|
17
|
-
echo "║ by Varun Pratap Bhardwaj ║"
|
|
18
|
-
echo "╚══════════════════════════════════════════════════════════════╝"
|
|
19
|
-
echo ""
|
|
20
|
-
|
|
21
|
-
# Track status
|
|
22
|
-
CORE_OK=true
|
|
23
|
-
SEARCH_OK=false
|
|
24
|
-
UI_OK=false
|
|
25
|
-
ERRORS=()
|
|
26
|
-
|
|
27
|
-
# ============================================================================
|
|
28
|
-
# CORE INSTALLATION CHECK
|
|
29
|
-
# ============================================================================
|
|
30
|
-
|
|
31
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
32
|
-
echo "1. Core Installation"
|
|
33
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
34
|
-
echo ""
|
|
35
|
-
|
|
36
|
-
# Check Python version
|
|
37
|
-
echo -n "Python 3.8+ "
|
|
38
|
-
PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
|
|
39
|
-
PYTHON_MAJOR=$(python3 -c 'import sys; print(sys.version_info.major)')
|
|
40
|
-
PYTHON_MINOR=$(python3 -c 'import sys; print(sys.version_info.minor)')
|
|
41
|
-
|
|
42
|
-
if [ "$PYTHON_MAJOR" -lt 3 ] || ([ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -lt 8 ]); then
|
|
43
|
-
echo "✗ FAIL (found $PYTHON_VERSION)"
|
|
44
|
-
CORE_OK=false
|
|
45
|
-
ERRORS+=("Python 3.8+ required")
|
|
46
|
-
else
|
|
47
|
-
echo "✓ OK (v$PYTHON_VERSION)"
|
|
48
|
-
fi
|
|
49
|
-
|
|
50
|
-
# Check installation directory
|
|
51
|
-
echo -n "Installation directory "
|
|
52
|
-
if [ -d "${INSTALL_DIR}" ]; then
|
|
53
|
-
echo "✓ OK (${INSTALL_DIR})"
|
|
54
|
-
else
|
|
55
|
-
echo "✗ FAIL (not found)"
|
|
56
|
-
CORE_OK=false
|
|
57
|
-
ERRORS+=("Installation directory missing")
|
|
58
|
-
fi
|
|
59
|
-
|
|
60
|
-
# Check core files
|
|
61
|
-
echo -n "Core scripts "
|
|
62
|
-
MISSING_FILES=()
|
|
63
|
-
for file in memory_store_v2.py graph_engine.py pattern_learner.py; do
|
|
64
|
-
if [ ! -f "${INSTALL_DIR}/${file}" ]; then
|
|
65
|
-
MISSING_FILES+=("${file}")
|
|
66
|
-
fi
|
|
67
|
-
done
|
|
68
|
-
|
|
69
|
-
if [ ${#MISSING_FILES[@]} -eq 0 ]; then
|
|
70
|
-
echo "✓ OK"
|
|
71
|
-
else
|
|
72
|
-
echo "✗ FAIL (missing: ${MISSING_FILES[*]})"
|
|
73
|
-
CORE_OK=false
|
|
74
|
-
ERRORS+=("Core scripts missing")
|
|
75
|
-
fi
|
|
76
|
-
|
|
77
|
-
# Check CLI wrappers
|
|
78
|
-
echo -n "CLI wrappers "
|
|
79
|
-
if [ -d "${INSTALL_DIR}/bin" ] && [ -x "${INSTALL_DIR}/bin/slm" ]; then
|
|
80
|
-
echo "✓ OK"
|
|
81
|
-
else
|
|
82
|
-
echo "✗ FAIL"
|
|
83
|
-
CORE_OK=false
|
|
84
|
-
ERRORS+=("CLI wrappers missing or not executable")
|
|
85
|
-
fi
|
|
86
|
-
|
|
87
|
-
# Check PATH configuration
|
|
88
|
-
echo -n "PATH configuration "
|
|
89
|
-
if command -v slm &>/dev/null; then
|
|
90
|
-
echo "✓ OK (commands globally available)"
|
|
91
|
-
elif grep -q ".superlocalmemory/bin" "${HOME}/.zshrc" 2>/dev/null || grep -q ".superlocalmemory/bin" "${HOME}/.bashrc" 2>/dev/null || grep -q ".superlocalmemory/bin" "${HOME}/.bash_profile" 2>/dev/null; then
|
|
92
|
-
echo "○ PARTIAL (configured but needs shell restart)"
|
|
93
|
-
else
|
|
94
|
-
echo "⚠️ WARNING (not in PATH)"
|
|
95
|
-
ERRORS+=("PATH not configured - run: source ~/.zshrc (or ~/.bashrc)")
|
|
96
|
-
fi
|
|
97
|
-
|
|
98
|
-
# Check database
|
|
99
|
-
echo -n "Database "
|
|
100
|
-
if [ -f "${INSTALL_DIR}/memory.db" ]; then
|
|
101
|
-
DB_SIZE=$(du -h "${INSTALL_DIR}/memory.db" | cut -f1)
|
|
102
|
-
echo "✓ OK (${DB_SIZE})"
|
|
103
|
-
else
|
|
104
|
-
echo "○ NOT CREATED (will be created on first use)"
|
|
105
|
-
fi
|
|
106
|
-
|
|
107
|
-
# Check config
|
|
108
|
-
echo -n "Configuration "
|
|
109
|
-
if [ -f "${INSTALL_DIR}/config.json" ]; then
|
|
110
|
-
echo "✓ OK"
|
|
111
|
-
else
|
|
112
|
-
echo "⚠️ WARNING (using defaults)"
|
|
113
|
-
fi
|
|
114
|
-
|
|
115
|
-
echo ""
|
|
116
|
-
|
|
117
|
-
# ============================================================================
|
|
118
|
-
# OPTIONAL FEATURES CHECK
|
|
119
|
-
# ============================================================================
|
|
120
|
-
|
|
121
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
122
|
-
echo "2. Optional Features"
|
|
123
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
124
|
-
echo ""
|
|
125
|
-
|
|
126
|
-
# Advanced Search
|
|
127
|
-
echo -n "Advanced Search "
|
|
128
|
-
if python3 -c "import sentence_transformers; import hnswlib" 2>/dev/null; then
|
|
129
|
-
echo "✓ ENABLED"
|
|
130
|
-
SEARCH_OK=true
|
|
131
|
-
else
|
|
132
|
-
echo "○ DISABLED"
|
|
133
|
-
echo " Install: pip3 install -r requirements-search.txt"
|
|
134
|
-
fi
|
|
135
|
-
|
|
136
|
-
# Web Dashboard
|
|
137
|
-
echo -n "Web Dashboard "
|
|
138
|
-
if python3 -c "import fastapi; import uvicorn" 2>/dev/null; then
|
|
139
|
-
echo "✓ ENABLED"
|
|
140
|
-
UI_OK=true
|
|
141
|
-
if [ -f "${INSTALL_DIR}/api_server.py" ]; then
|
|
142
|
-
echo " Start: python3 ~/.superlocalmemory/api_server.py"
|
|
143
|
-
echo " URL: http://127.0.0.1:8000"
|
|
144
|
-
fi
|
|
145
|
-
else
|
|
146
|
-
echo "○ DISABLED"
|
|
147
|
-
echo " Install: pip3 install -r requirements-ui.txt"
|
|
148
|
-
fi
|
|
149
|
-
|
|
150
|
-
echo ""
|
|
151
|
-
|
|
152
|
-
# ============================================================================
|
|
153
|
-
# PERFORMANCE QUICK TEST
|
|
154
|
-
# ============================================================================
|
|
155
|
-
|
|
156
|
-
if $CORE_OK; then
|
|
157
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
158
|
-
echo "3. Performance Quick Test"
|
|
159
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
160
|
-
echo ""
|
|
161
|
-
|
|
162
|
-
# Test memory store initialization
|
|
163
|
-
echo -n "Memory store init "
|
|
164
|
-
if python3 -c "import sys; sys.path.insert(0, '${INSTALL_DIR}'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2()" 2>/dev/null; then
|
|
165
|
-
echo "✓ OK"
|
|
166
|
-
else
|
|
167
|
-
echo "✗ FAIL"
|
|
168
|
-
ERRORS+=("Memory store initialization failed")
|
|
169
|
-
fi
|
|
170
|
-
|
|
171
|
-
# Test database query
|
|
172
|
-
echo -n "Database query "
|
|
173
|
-
START_TIME=$(python3 -c "import time; print(time.time())")
|
|
174
|
-
if python3 -c "import sys; sys.path.insert(0, '${INSTALL_DIR}'); from memory_store_v2 import MemoryStoreV2; store = MemoryStoreV2(); list(store.list_all(limit=1))" 2>/dev/null; then
|
|
175
|
-
END_TIME=$(python3 -c "import time; print(time.time())")
|
|
176
|
-
DURATION=$(python3 -c "print(f'{($END_TIME - $START_TIME) * 1000:.0f}ms')" 2>/dev/null || echo "OK")
|
|
177
|
-
echo "✓ OK ($DURATION)"
|
|
178
|
-
else
|
|
179
|
-
echo "✗ FAIL"
|
|
180
|
-
ERRORS+=("Database query failed")
|
|
181
|
-
fi
|
|
182
|
-
|
|
183
|
-
echo ""
|
|
184
|
-
fi
|
|
185
|
-
|
|
186
|
-
# ============================================================================
|
|
187
|
-
# SUMMARY
|
|
188
|
-
# ============================================================================
|
|
189
|
-
|
|
190
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
191
|
-
echo "4. Summary"
|
|
192
|
-
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
193
|
-
echo ""
|
|
194
|
-
|
|
195
|
-
if $CORE_OK; then
|
|
196
|
-
echo "✓ Core Installation: WORKING"
|
|
197
|
-
else
|
|
198
|
-
echo "✗ Core Installation: FAILED"
|
|
199
|
-
fi
|
|
200
|
-
|
|
201
|
-
if $SEARCH_OK; then
|
|
202
|
-
echo "✓ Advanced Search: ENABLED"
|
|
203
|
-
else
|
|
204
|
-
echo "○ Advanced Search: DISABLED (optional)"
|
|
205
|
-
fi
|
|
206
|
-
|
|
207
|
-
if $UI_OK; then
|
|
208
|
-
echo "✓ Web Dashboard: ENABLED"
|
|
209
|
-
else
|
|
210
|
-
echo "○ Web Dashboard: DISABLED (optional)"
|
|
211
|
-
fi
|
|
212
|
-
|
|
213
|
-
echo ""
|
|
214
|
-
|
|
215
|
-
# Feature Status
|
|
216
|
-
echo "Feature Status:"
|
|
217
|
-
echo " • Basic CLI commands: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
|
|
218
|
-
echo " • MCP Server: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
|
|
219
|
-
echo " • Skills: $(if $CORE_OK; then echo '✓ Available'; else echo '✗ Not available'; fi)"
|
|
220
|
-
echo " • Semantic Search: $(if $SEARCH_OK; then echo '✓ Enabled'; else echo '○ Disabled'; fi)"
|
|
221
|
-
echo " • Web Interface: $(if $UI_OK; then echo '✓ Enabled'; else echo '○ Disabled'; fi)"
|
|
222
|
-
echo ""
|
|
223
|
-
|
|
224
|
-
# Errors
|
|
225
|
-
if [ ${#ERRORS[@]} -gt 0 ]; then
|
|
226
|
-
echo "⚠️ Errors detected:"
|
|
227
|
-
for error in "${ERRORS[@]}"; do
|
|
228
|
-
echo " • $error"
|
|
229
|
-
done
|
|
230
|
-
echo ""
|
|
231
|
-
fi
|
|
232
|
-
|
|
233
|
-
# Next Steps
|
|
234
|
-
echo "Next Steps:"
|
|
235
|
-
echo ""
|
|
236
|
-
|
|
237
|
-
if $CORE_OK; then
|
|
238
|
-
echo " Try it now:"
|
|
239
|
-
echo " slm status"
|
|
240
|
-
echo " slm remember 'My first memory'"
|
|
241
|
-
echo " slm recall 'first'"
|
|
242
|
-
echo ""
|
|
243
|
-
|
|
244
|
-
if ! $SEARCH_OK && ! $UI_OK; then
|
|
245
|
-
echo " Install optional features:"
|
|
246
|
-
echo " pip3 install -r requirements-search.txt # Advanced search"
|
|
247
|
-
echo " pip3 install -r requirements-ui.txt # Web dashboard"
|
|
248
|
-
echo " pip3 install -r requirements-full.txt # Everything"
|
|
249
|
-
echo ""
|
|
250
|
-
fi
|
|
251
|
-
else
|
|
252
|
-
echo " Fix installation issues:"
|
|
253
|
-
echo " ./install.sh"
|
|
254
|
-
echo ""
|
|
255
|
-
fi
|
|
256
|
-
|
|
257
|
-
# Exit code
|
|
258
|
-
if $CORE_OK; then
|
|
259
|
-
echo "✓ Installation verification PASSED"
|
|
260
|
-
echo ""
|
|
261
|
-
exit 0
|
|
262
|
-
else
|
|
263
|
-
echo "✗ Installation verification FAILED"
|
|
264
|
-
echo ""
|
|
265
|
-
exit 1
|
|
266
|
-
fi
|
package/scripts/verify-v27.ps1
DELETED
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
# ============================================================================
|
|
2
|
-
# SuperLocalMemory V2.7 — Quick Verification Script (PowerShell)
|
|
3
|
-
# Copyright (c) 2026 Varun Pratap Bhardwaj
|
|
4
|
-
# Licensed under MIT License
|
|
5
|
-
# Repository: https://github.com/qualixar/superlocalmemory
|
|
6
|
-
#
|
|
7
|
-
# Run this after installation to verify everything works:
|
|
8
|
-
# .\scripts\verify-v27.ps1
|
|
9
|
-
# ============================================================================
|
|
10
|
-
|
|
11
|
-
param()
|
|
12
|
-
|
|
13
|
-
$ErrorActionPreference = "Stop"
|
|
14
|
-
|
|
15
|
-
$INSTALL_DIR = Join-Path $env:USERPROFILE ".superlocalmemory"
|
|
16
|
-
$PASS = 0
|
|
17
|
-
$WARN = 0
|
|
18
|
-
$FAIL = 0
|
|
19
|
-
|
|
20
|
-
Write-Host ""
|
|
21
|
-
Write-Host "SuperLocalMemory v2.7 Verification"
|
|
22
|
-
Write-Host "==================================="
|
|
23
|
-
Write-Host ""
|
|
24
|
-
|
|
25
|
-
# ── Check 1: Installation directory ──────────────────────────────────────────
|
|
26
|
-
if (Test-Path $INSTALL_DIR) {
|
|
27
|
-
Write-Host "[PASS] Installation directory exists: $INSTALL_DIR" -ForegroundColor Green
|
|
28
|
-
$PASS++
|
|
29
|
-
} else {
|
|
30
|
-
Write-Host "[FAIL] Installation directory missing. Run install.ps1 first." -ForegroundColor Red
|
|
31
|
-
$FAIL++
|
|
32
|
-
Write-Host ""
|
|
33
|
-
Write-Host "==================================="
|
|
34
|
-
Write-Host "Result: FAIL — SuperLocalMemory is not installed."
|
|
35
|
-
Write-Host "Run: .\install.ps1"
|
|
36
|
-
exit 1
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
# ── Check 2: Core modules ────────────────────────────────────────────────────
|
|
40
|
-
Write-Host ""
|
|
41
|
-
Write-Host "Core Modules:"
|
|
42
|
-
$coreModules = @("memory_store_v2.py", "graph_engine.py", "pattern_learner.py", "mcp_server.py", "tree_manager.py")
|
|
43
|
-
foreach ($mod in $coreModules) {
|
|
44
|
-
$modPath = Join-Path $INSTALL_DIR $mod
|
|
45
|
-
if (Test-Path $modPath) {
|
|
46
|
-
Write-Host " [PASS] $mod" -ForegroundColor Green
|
|
47
|
-
$PASS++
|
|
48
|
-
} else {
|
|
49
|
-
Write-Host " [FAIL] Missing: $mod" -ForegroundColor Red
|
|
50
|
-
$FAIL++
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
# ── Check 3: v2.5 modules ────────────────────────────────────────────────────
|
|
55
|
-
Write-Host ""
|
|
56
|
-
Write-Host "Event System (v2.5):"
|
|
57
|
-
$v25Modules = @("event_bus.py", "subscription_manager.py", "webhook_dispatcher.py", "agent_registry.py", "provenance_tracker.py", "trust_scorer.py", "db_connection_manager.py")
|
|
58
|
-
foreach ($mod in $v25Modules) {
|
|
59
|
-
$modPath = Join-Path $INSTALL_DIR $mod
|
|
60
|
-
if (Test-Path $modPath) {
|
|
61
|
-
Write-Host " [PASS] $mod" -ForegroundColor Green
|
|
62
|
-
$PASS++
|
|
63
|
-
} else {
|
|
64
|
-
Write-Host " [WARN] Missing: $mod (v2.5 feature)" -ForegroundColor Yellow
|
|
65
|
-
$WARN++
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
# ── Check 4: Learning modules (v2.7) ─────────────────────────────────────────
|
|
70
|
-
Write-Host ""
|
|
71
|
-
Write-Host "Learning System (v2.7):"
|
|
72
|
-
$learningDir = Join-Path $INSTALL_DIR "learning"
|
|
73
|
-
if (Test-Path $learningDir) {
|
|
74
|
-
Write-Host " [PASS] learning/ directory exists" -ForegroundColor Green
|
|
75
|
-
$PASS++
|
|
76
|
-
|
|
77
|
-
$learningModules = @("__init__.py", "learning_db.py", "adaptive_ranker.py", "feedback_collector.py",
|
|
78
|
-
"engagement_tracker.py", "cross_project_aggregator.py", "project_context_manager.py",
|
|
79
|
-
"workflow_pattern_miner.py", "source_quality_scorer.py", "synthetic_bootstrap.py",
|
|
80
|
-
"feature_extractor.py")
|
|
81
|
-
foreach ($mod in $learningModules) {
|
|
82
|
-
$modPath = Join-Path $learningDir $mod
|
|
83
|
-
if (Test-Path $modPath) {
|
|
84
|
-
Write-Host " [PASS] learning/$mod" -ForegroundColor Green
|
|
85
|
-
$PASS++
|
|
86
|
-
} else {
|
|
87
|
-
Write-Host " [WARN] Missing: learning/$mod" -ForegroundColor Yellow
|
|
88
|
-
$WARN++
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
} else {
|
|
92
|
-
Write-Host " [FAIL] learning/ directory missing (v2.7 not fully installed)" -ForegroundColor Red
|
|
93
|
-
$FAIL++
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
# ── Check 5: Learning dependencies ───────────────────────────────────────────
|
|
97
|
-
Write-Host ""
|
|
98
|
-
Write-Host "Learning Dependencies:"
|
|
99
|
-
try {
|
|
100
|
-
python -c "import lightgbm; print(f' [PASS] LightGBM {lightgbm.__version__}')" 2>$null
|
|
101
|
-
if ($LASTEXITCODE -eq 0) {
|
|
102
|
-
$PASS++
|
|
103
|
-
} else {
|
|
104
|
-
throw
|
|
105
|
-
}
|
|
106
|
-
} catch {
|
|
107
|
-
Write-Host " [INFO] LightGBM not installed (optional — rule-based ranking will be used)" -ForegroundColor Yellow
|
|
108
|
-
$WARN++
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
try {
|
|
112
|
-
python -c "import scipy; print(f' [PASS] SciPy {scipy.__version__}')" 2>$null
|
|
113
|
-
if ($LASTEXITCODE -eq 0) {
|
|
114
|
-
$PASS++
|
|
115
|
-
} else {
|
|
116
|
-
throw
|
|
117
|
-
}
|
|
118
|
-
} catch {
|
|
119
|
-
Write-Host " [INFO] SciPy not installed (optional — install for full learning features)" -ForegroundColor Yellow
|
|
120
|
-
$WARN++
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
# ── Check 6: Core dependencies ───────────────────────────────────────────────
|
|
124
|
-
Write-Host ""
|
|
125
|
-
Write-Host "Core Dependencies:"
|
|
126
|
-
try {
|
|
127
|
-
python -c "import sklearn; print(f' [PASS] scikit-learn {sklearn.__version__}')" 2>$null
|
|
128
|
-
if ($LASTEXITCODE -eq 0) {
|
|
129
|
-
$PASS++
|
|
130
|
-
} else {
|
|
131
|
-
throw
|
|
132
|
-
}
|
|
133
|
-
} catch {
|
|
134
|
-
Write-Host " [WARN] scikit-learn not installed (needed for knowledge graph)" -ForegroundColor Yellow
|
|
135
|
-
$WARN++
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
try {
|
|
139
|
-
python -c "import numpy; print(f' [PASS] numpy {numpy.__version__}')" 2>$null
|
|
140
|
-
if ($LASTEXITCODE -eq 0) {
|
|
141
|
-
$PASS++
|
|
142
|
-
} else {
|
|
143
|
-
throw
|
|
144
|
-
}
|
|
145
|
-
} catch {
|
|
146
|
-
Write-Host " [WARN] numpy not installed" -ForegroundColor Yellow
|
|
147
|
-
$WARN++
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
try {
|
|
151
|
-
python -c "import igraph; print(f' [PASS] python-igraph {igraph.__version__}')" 2>$null
|
|
152
|
-
if ($LASTEXITCODE -eq 0) {
|
|
153
|
-
$PASS++
|
|
154
|
-
} else {
|
|
155
|
-
throw
|
|
156
|
-
}
|
|
157
|
-
} catch {
|
|
158
|
-
Write-Host " [WARN] python-igraph not installed (needed for graph clustering)" -ForegroundColor Yellow
|
|
159
|
-
$WARN++
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
# ── Check 7: Database ────────────────────────────────────────────────────────
|
|
163
|
-
Write-Host ""
|
|
164
|
-
Write-Host "Databases:"
|
|
165
|
-
$memoryDb = Join-Path $INSTALL_DIR "memory.db"
|
|
166
|
-
if (Test-Path $memoryDb) {
|
|
167
|
-
try {
|
|
168
|
-
$MEMORY_COUNT = sqlite3 $memoryDb "SELECT COUNT(*) FROM memories;" 2>$null
|
|
169
|
-
$DB_SIZE = [math]::Round((Get-Item $memoryDb).Length / 1KB, 2)
|
|
170
|
-
Write-Host " [PASS] memory.db exists ($MEMORY_COUNT memories, $DB_SIZE KB)" -ForegroundColor Green
|
|
171
|
-
$PASS++
|
|
172
|
-
} catch {
|
|
173
|
-
Write-Host " [INFO] memory.db exists but cannot query (sqlite3 not available)" -ForegroundColor Yellow
|
|
174
|
-
}
|
|
175
|
-
} else {
|
|
176
|
-
Write-Host " [INFO] memory.db not yet created (will auto-create on first use)" -ForegroundColor Yellow
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
$learningDb = Join-Path $INSTALL_DIR "learning.db"
|
|
180
|
-
if (Test-Path $learningDb) {
|
|
181
|
-
try {
|
|
182
|
-
$FEEDBACK_COUNT = sqlite3 $learningDb "SELECT COUNT(*) FROM ranking_feedback;" 2>$null
|
|
183
|
-
Write-Host " [PASS] learning.db exists ($FEEDBACK_COUNT feedback signals)" -ForegroundColor Green
|
|
184
|
-
$PASS++
|
|
185
|
-
} catch {
|
|
186
|
-
Write-Host " [INFO] learning.db exists but cannot query (sqlite3 not available)" -ForegroundColor Yellow
|
|
187
|
-
}
|
|
188
|
-
} else {
|
|
189
|
-
Write-Host " [INFO] learning.db not yet created (will auto-create on first recall)" -ForegroundColor Yellow
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
# ── Check 8: CLI ──────────────────────────────────────────────────────────────
|
|
193
|
-
Write-Host ""
|
|
194
|
-
Write-Host "CLI:"
|
|
195
|
-
$slmCommand = Get-Command slm -ErrorAction SilentlyContinue
|
|
196
|
-
if ($slmCommand) {
|
|
197
|
-
Write-Host " [PASS] slm command available in PATH" -ForegroundColor Green
|
|
198
|
-
$PASS++
|
|
199
|
-
} else {
|
|
200
|
-
$slmBin = Join-Path $INSTALL_DIR "bin\slm"
|
|
201
|
-
if (Test-Path $slmBin) {
|
|
202
|
-
Write-Host " [WARN] slm exists at $slmBin but not in PATH" -ForegroundColor Yellow
|
|
203
|
-
Write-Host " Add to PATH: `$env:PATH = `"`$env:USERPROFILE\.superlocalmemory\bin;`$env:PATH`""
|
|
204
|
-
$WARN++
|
|
205
|
-
} else {
|
|
206
|
-
Write-Host " [FAIL] slm command not found" -ForegroundColor Red
|
|
207
|
-
$FAIL++
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
# ── Check 9: MCP server ──────────────────────────────────────────────────────
|
|
212
|
-
Write-Host ""
|
|
213
|
-
Write-Host "MCP Server:"
|
|
214
|
-
$mcpServer = Join-Path $INSTALL_DIR "mcp_server.py"
|
|
215
|
-
if (Test-Path $mcpServer) {
|
|
216
|
-
Write-Host " [PASS] mcp_server.py installed" -ForegroundColor Green
|
|
217
|
-
$PASS++
|
|
218
|
-
} else {
|
|
219
|
-
Write-Host " [FAIL] mcp_server.py missing" -ForegroundColor Red
|
|
220
|
-
$FAIL++
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
try {
|
|
224
|
-
python -c "from mcp.server.fastmcp import FastMCP" 2>$null
|
|
225
|
-
if ($LASTEXITCODE -eq 0) {
|
|
226
|
-
Write-Host " [PASS] MCP SDK installed" -ForegroundColor Green
|
|
227
|
-
$PASS++
|
|
228
|
-
} else {
|
|
229
|
-
throw
|
|
230
|
-
}
|
|
231
|
-
} catch {
|
|
232
|
-
Write-Host " [WARN] MCP SDK not installed (install: pip install mcp)" -ForegroundColor Yellow
|
|
233
|
-
$WARN++
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
# ── Check 10: Import chain verification ───────────────────────────────────────
|
|
237
|
-
Write-Host ""
|
|
238
|
-
Write-Host "Import Chain:"
|
|
239
|
-
$importTest = @"
|
|
240
|
-
import sys
|
|
241
|
-
sys.path.insert(0, '$($INSTALL_DIR -replace '\\', '\\')')
|
|
242
|
-
try:
|
|
243
|
-
from learning import get_learning_db, get_status, FULL_LEARNING_AVAILABLE, ML_RANKING_AVAILABLE
|
|
244
|
-
status = get_status()
|
|
245
|
-
ml = 'yes' if status['ml_ranking_available'] else 'no'
|
|
246
|
-
full = 'yes' if status['learning_available'] else 'no'
|
|
247
|
-
print(f'OK ml_ranking={ml} full_learning={full}')
|
|
248
|
-
except ImportError as e:
|
|
249
|
-
print(f'IMPORT_ERROR {e}')
|
|
250
|
-
except Exception as e:
|
|
251
|
-
print(f'ERROR {e}')
|
|
252
|
-
"@
|
|
253
|
-
|
|
254
|
-
$IMPORT_RESULT = python -c $importTest 2>&1
|
|
255
|
-
|
|
256
|
-
if ($IMPORT_RESULT -like "OK*") {
|
|
257
|
-
Write-Host " [PASS] Learning system imports successfully" -ForegroundColor Green
|
|
258
|
-
Write-Host " $IMPORT_RESULT"
|
|
259
|
-
$PASS++
|
|
260
|
-
} elseif ($IMPORT_RESULT -like "IMPORT_ERROR*") {
|
|
261
|
-
Write-Host " [WARN] Learning import failed: $($IMPORT_RESULT -replace 'IMPORT_ERROR ', '')" -ForegroundColor Yellow
|
|
262
|
-
Write-Host " This may be normal if learning modules are not yet installed."
|
|
263
|
-
$WARN++
|
|
264
|
-
} else {
|
|
265
|
-
Write-Host " [WARN] Learning check: $IMPORT_RESULT" -ForegroundColor Yellow
|
|
266
|
-
$WARN++
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
# ── Summary ───────────────────────────────────────────────────────────────────
|
|
270
|
-
Write-Host ""
|
|
271
|
-
Write-Host "==================================="
|
|
272
|
-
Write-Host "Verification Summary"
|
|
273
|
-
Write-Host " Passed: $PASS"
|
|
274
|
-
Write-Host " Warnings: $WARN"
|
|
275
|
-
Write-Host " Failed: $FAIL"
|
|
276
|
-
Write-Host "==================================="
|
|
277
|
-
Write-Host ""
|
|
278
|
-
|
|
279
|
-
if ($FAIL -eq 0) {
|
|
280
|
-
Write-Host "Status: READY" -ForegroundColor Green
|
|
281
|
-
Write-Host ""
|
|
282
|
-
Write-Host "Quick start:"
|
|
283
|
-
Write-Host " slm remember `"My first memory`""
|
|
284
|
-
Write-Host " slm recall `"first`""
|
|
285
|
-
Write-Host " slm status"
|
|
286
|
-
Write-Host ""
|
|
287
|
-
if ($WARN -gt 0) {
|
|
288
|
-
Write-Host "Some optional features may not be available."
|
|
289
|
-
Write-Host "Install missing dependencies to enable them:"
|
|
290
|
-
Write-Host " pip install lightgbm scipy # Learning system"
|
|
291
|
-
Write-Host " pip install scikit-learn igraph # Knowledge graph"
|
|
292
|
-
Write-Host ""
|
|
293
|
-
}
|
|
294
|
-
} else {
|
|
295
|
-
Write-Host "Status: INCOMPLETE" -ForegroundColor Red
|
|
296
|
-
Write-Host ""
|
|
297
|
-
Write-Host "Fix the failed checks above, then re-run:"
|
|
298
|
-
Write-Host " .\scripts\verify-v27.ps1"
|
|
299
|
-
Write-Host ""
|
|
300
|
-
exit 1
|
|
301
|
-
}
|