superlocalmemory 2.3.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.
Files changed (100) hide show
  1. package/ATTRIBUTION.md +140 -0
  2. package/CHANGELOG.md +1749 -0
  3. package/LICENSE +21 -0
  4. package/README.md +600 -0
  5. package/bin/aider-smart +72 -0
  6. package/bin/slm +202 -0
  7. package/bin/slm-npm +73 -0
  8. package/bin/slm.bat +195 -0
  9. package/bin/slm.cmd +10 -0
  10. package/bin/superlocalmemoryv2:list +3 -0
  11. package/bin/superlocalmemoryv2:profile +3 -0
  12. package/bin/superlocalmemoryv2:recall +3 -0
  13. package/bin/superlocalmemoryv2:remember +3 -0
  14. package/bin/superlocalmemoryv2:reset +3 -0
  15. package/bin/superlocalmemoryv2:status +3 -0
  16. package/completions/slm.bash +58 -0
  17. package/completions/slm.zsh +76 -0
  18. package/configs/antigravity-mcp.json +13 -0
  19. package/configs/chatgpt-desktop-mcp.json +7 -0
  20. package/configs/claude-desktop-mcp.json +15 -0
  21. package/configs/codex-mcp.toml +13 -0
  22. package/configs/cody-commands.json +29 -0
  23. package/configs/continue-mcp.yaml +14 -0
  24. package/configs/continue-skills.yaml +26 -0
  25. package/configs/cursor-mcp.json +15 -0
  26. package/configs/gemini-cli-mcp.json +11 -0
  27. package/configs/jetbrains-mcp.json +11 -0
  28. package/configs/opencode-mcp.json +12 -0
  29. package/configs/perplexity-mcp.json +9 -0
  30. package/configs/vscode-copilot-mcp.json +12 -0
  31. package/configs/windsurf-mcp.json +16 -0
  32. package/configs/zed-mcp.json +12 -0
  33. package/docs/ARCHITECTURE.md +877 -0
  34. package/docs/CLI-COMMANDS-REFERENCE.md +425 -0
  35. package/docs/COMPETITIVE-ANALYSIS.md +210 -0
  36. package/docs/COMPRESSION-README.md +390 -0
  37. package/docs/GRAPH-ENGINE.md +503 -0
  38. package/docs/MCP-MANUAL-SETUP.md +720 -0
  39. package/docs/MCP-TROUBLESHOOTING.md +787 -0
  40. package/docs/PATTERN-LEARNING.md +363 -0
  41. package/docs/PROFILES-GUIDE.md +453 -0
  42. package/docs/RESET-GUIDE.md +353 -0
  43. package/docs/SEARCH-ENGINE-V2.2.0.md +748 -0
  44. package/docs/SEARCH-INTEGRATION-GUIDE.md +502 -0
  45. package/docs/UI-SERVER.md +254 -0
  46. package/docs/UNIVERSAL-INTEGRATION.md +432 -0
  47. package/docs/V2.2.0-OPTIONAL-SEARCH.md +666 -0
  48. package/docs/WINDOWS-INSTALL-README.txt +34 -0
  49. package/docs/WINDOWS-POST-INSTALL.txt +45 -0
  50. package/docs/example_graph_usage.py +148 -0
  51. package/hooks/memory-list-skill.js +130 -0
  52. package/hooks/memory-profile-skill.js +284 -0
  53. package/hooks/memory-recall-skill.js +109 -0
  54. package/hooks/memory-remember-skill.js +127 -0
  55. package/hooks/memory-reset-skill.js +274 -0
  56. package/install-skills.sh +436 -0
  57. package/install.ps1 +417 -0
  58. package/install.sh +755 -0
  59. package/mcp_server.py +585 -0
  60. package/package.json +94 -0
  61. package/requirements-core.txt +24 -0
  62. package/requirements.txt +10 -0
  63. package/scripts/postinstall.js +126 -0
  64. package/scripts/preuninstall.js +57 -0
  65. package/skills/slm-build-graph/SKILL.md +423 -0
  66. package/skills/slm-list-recent/SKILL.md +348 -0
  67. package/skills/slm-recall/SKILL.md +325 -0
  68. package/skills/slm-remember/SKILL.md +194 -0
  69. package/skills/slm-status/SKILL.md +363 -0
  70. package/skills/slm-switch-profile/SKILL.md +442 -0
  71. package/src/__pycache__/cache_manager.cpython-312.pyc +0 -0
  72. package/src/__pycache__/embedding_engine.cpython-312.pyc +0 -0
  73. package/src/__pycache__/graph_engine.cpython-312.pyc +0 -0
  74. package/src/__pycache__/hnsw_index.cpython-312.pyc +0 -0
  75. package/src/__pycache__/hybrid_search.cpython-312.pyc +0 -0
  76. package/src/__pycache__/memory-profiles.cpython-312.pyc +0 -0
  77. package/src/__pycache__/memory-reset.cpython-312.pyc +0 -0
  78. package/src/__pycache__/memory_compression.cpython-312.pyc +0 -0
  79. package/src/__pycache__/memory_store_v2.cpython-312.pyc +0 -0
  80. package/src/__pycache__/migrate_v1_to_v2.cpython-312.pyc +0 -0
  81. package/src/__pycache__/pattern_learner.cpython-312.pyc +0 -0
  82. package/src/__pycache__/query_optimizer.cpython-312.pyc +0 -0
  83. package/src/__pycache__/search_engine_v2.cpython-312.pyc +0 -0
  84. package/src/__pycache__/setup_validator.cpython-312.pyc +0 -0
  85. package/src/__pycache__/tree_manager.cpython-312.pyc +0 -0
  86. package/src/cache_manager.py +520 -0
  87. package/src/embedding_engine.py +671 -0
  88. package/src/graph_engine.py +970 -0
  89. package/src/hnsw_index.py +626 -0
  90. package/src/hybrid_search.py +693 -0
  91. package/src/memory-profiles.py +518 -0
  92. package/src/memory-reset.py +485 -0
  93. package/src/memory_compression.py +999 -0
  94. package/src/memory_store_v2.py +1088 -0
  95. package/src/migrate_v1_to_v2.py +638 -0
  96. package/src/pattern_learner.py +898 -0
  97. package/src/query_optimizer.py +513 -0
  98. package/src/search_engine_v2.py +403 -0
  99. package/src/setup_validator.py +479 -0
  100. package/src/tree_manager.py +720 -0
package/install.ps1 ADDED
@@ -0,0 +1,417 @@
1
+ # ============================================================================
2
+ # SuperLocalMemory V2.2.0 - Windows Installation Script (PowerShell)
3
+ # Copyright (c) 2026 Varun Pratap Bhardwaj
4
+ # Licensed under MIT License
5
+ # Repository: https://github.com/varun369/SuperLocalMemoryV2
6
+ # ============================================================================
7
+
8
+ $ErrorActionPreference = "Stop"
9
+
10
+ $INSTALL_DIR = Join-Path $env:USERPROFILE ".claude-memory"
11
+ $REPO_DIR = Split-Path -Parent $MyInvocation.MyCommand.Path
12
+
13
+ # Auto-detect non-interactive environment
14
+ $NON_INTERACTIVE = $false
15
+ if (-not [Environment]::UserInteractive) {
16
+ $NON_INTERACTIVE = $true
17
+ }
18
+
19
+ # Parse command line arguments
20
+ param(
21
+ [switch]$NonInteractive,
22
+ [switch]$Auto,
23
+ [switch]$Yes,
24
+ [switch]$y
25
+ )
26
+
27
+ if ($NonInteractive -or $Auto -or $Yes -or $y) {
28
+ $NON_INTERACTIVE = $true
29
+ }
30
+
31
+ # Print banner
32
+ Write-Host ""
33
+ Write-Host "=================================================================="
34
+ Write-Host " SuperLocalMemory V2.2.0 - Windows Installation "
35
+ Write-Host " by Varun Pratap Bhardwaj "
36
+ Write-Host " https://github.com/varun369/SuperLocalMemoryV2 "
37
+ Write-Host "=================================================================="
38
+ Write-Host ""
39
+
40
+ # Show mode if non-interactive
41
+ if ($NON_INTERACTIVE) {
42
+ Write-Host "🤖 Running in non-interactive mode" -ForegroundColor Cyan
43
+ Write-Host " Skipping optional prompts, using defaults" -ForegroundColor Cyan
44
+ Write-Host ""
45
+ }
46
+
47
+ # Check Python version
48
+ Write-Host "Checking Python version..."
49
+ try {
50
+ $PYTHON_VERSION = & python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')" 2>&1
51
+ $PYTHON_MAJOR = & python -c "import sys; print(sys.version_info.major)" 2>&1
52
+ $PYTHON_MINOR = & python -c "import sys; print(sys.version_info.minor)" 2>&1
53
+
54
+ if ([int]$PYTHON_MAJOR -lt 3 -or ([int]$PYTHON_MAJOR -eq 3 -and [int]$PYTHON_MINOR -lt 8)) {
55
+ Write-Host "ERROR: Python 3.8+ required (found $PYTHON_VERSION)" -ForegroundColor Red
56
+ exit 1
57
+ }
58
+ Write-Host "OK Python $PYTHON_VERSION" -ForegroundColor Green
59
+ } catch {
60
+ Write-Host "ERROR: Python not found in PATH" -ForegroundColor Red
61
+ Write-Host "Install Python 3.8+ from https://www.python.org/downloads/" -ForegroundColor Yellow
62
+ Write-Host "Make sure to check 'Add Python to PATH' during installation" -ForegroundColor Yellow
63
+ exit 1
64
+ }
65
+
66
+ # Create installation directory
67
+ Write-Host ""
68
+ Write-Host "Creating installation directory..."
69
+ if (-not (Test-Path $INSTALL_DIR)) {
70
+ New-Item -ItemType Directory -Path $INSTALL_DIR -Force | Out-Null
71
+ }
72
+ Write-Host "OK Directory: $INSTALL_DIR" -ForegroundColor Green
73
+
74
+ # Copy source files
75
+ Write-Host ""
76
+ Write-Host "Copying source files..."
77
+ $srcDir = Join-Path $REPO_DIR "src"
78
+ if (Test-Path $srcDir) {
79
+ Copy-Item -Path (Join-Path $srcDir "*") -Destination $INSTALL_DIR -Recurse -Force
80
+ Write-Host "OK Source files copied" -ForegroundColor Green
81
+ } else {
82
+ Write-Host "WARNING: Source directory not found, skipping" -ForegroundColor Yellow
83
+ }
84
+
85
+ # Copy hooks
86
+ Write-Host "Copying hooks..."
87
+ $hooksDir = Join-Path $REPO_DIR "hooks"
88
+ $installHooksDir = Join-Path $INSTALL_DIR "hooks"
89
+ if (-not (Test-Path $installHooksDir)) {
90
+ New-Item -ItemType Directory -Path $installHooksDir -Force | Out-Null
91
+ }
92
+ if (Test-Path $hooksDir) {
93
+ Copy-Item -Path (Join-Path $hooksDir "*") -Destination $installHooksDir -Recurse -Force
94
+ Write-Host "OK Hooks copied" -ForegroundColor Green
95
+ } else {
96
+ Write-Host "INFO: No hooks to copy" -ForegroundColor Yellow
97
+ }
98
+
99
+ # Copy CLI wrappers
100
+ Write-Host "Copying CLI wrappers..."
101
+ $binDir = Join-Path $REPO_DIR "bin"
102
+ $installBinDir = Join-Path $INSTALL_DIR "bin"
103
+ if (-not (Test-Path $installBinDir)) {
104
+ New-Item -ItemType Directory -Path $installBinDir -Force | Out-Null
105
+ }
106
+ if (Test-Path $binDir) {
107
+ Copy-Item -Path (Join-Path $binDir "*") -Destination $installBinDir -Recurse -Force
108
+ Write-Host "OK CLI wrappers installed" -ForegroundColor Green
109
+ }
110
+
111
+ # Copy API server
112
+ $apiServerPath = Join-Path $REPO_DIR "api_server.py"
113
+ if (Test-Path $apiServerPath) {
114
+ Copy-Item -Path $apiServerPath -Destination $INSTALL_DIR -Force
115
+ Write-Host "OK API server copied" -ForegroundColor Green
116
+ }
117
+
118
+ # Copy UI server
119
+ $uiServerPath = Join-Path $REPO_DIR "ui_server.py"
120
+ if (Test-Path $uiServerPath) {
121
+ Copy-Item -Path $uiServerPath -Destination $INSTALL_DIR -Force
122
+ Write-Host "OK UI server copied" -ForegroundColor Green
123
+ }
124
+
125
+ # Copy MCP server
126
+ $mcpServerPath = Join-Path $REPO_DIR "mcp_server.py"
127
+ if (Test-Path $mcpServerPath) {
128
+ Copy-Item -Path $mcpServerPath -Destination $INSTALL_DIR -Force
129
+ Write-Host "OK MCP Server installed" -ForegroundColor Green
130
+ }
131
+
132
+ # Copy config if not exists
133
+ $configPath = Join-Path $INSTALL_DIR "config.json"
134
+ if (-not (Test-Path $configPath)) {
135
+ Write-Host "Creating default config..."
136
+ $repoConfigPath = Join-Path $REPO_DIR "config.json"
137
+ if (Test-Path $repoConfigPath) {
138
+ Copy-Item -Path $repoConfigPath -Destination $configPath -Force
139
+ Write-Host "OK Config created" -ForegroundColor Green
140
+ } else {
141
+ Write-Host "WARNING: config.json not found, using defaults" -ForegroundColor Yellow
142
+ }
143
+ } else {
144
+ Write-Host "INFO: Config exists (keeping existing)" -ForegroundColor Yellow
145
+ }
146
+
147
+ # Create necessary directories
148
+ Write-Host ""
149
+ Write-Host "Creating directories..."
150
+ $directories = @("backups", "profiles", "vectors", "cold-storage", "jobs")
151
+ foreach ($dir in $directories) {
152
+ $dirPath = Join-Path $INSTALL_DIR $dir
153
+ if (-not (Test-Path $dirPath)) {
154
+ New-Item -ItemType Directory -Path $dirPath -Force | Out-Null
155
+ }
156
+ }
157
+ Write-Host "OK Directories created" -ForegroundColor Green
158
+
159
+ # Initialize database
160
+ Write-Host ""
161
+ Write-Host "Initializing database..."
162
+ $setupValidatorPath = Join-Path $INSTALL_DIR "setup_validator.py"
163
+ if (Test-Path $setupValidatorPath) {
164
+ try {
165
+ & python $setupValidatorPath --init 2>$null | Out-Null
166
+ Write-Host "OK Database initialized" -ForegroundColor Green
167
+ } catch {
168
+ Write-Host "WARNING: Database init failed, creating basic schema..." -ForegroundColor Yellow
169
+ # Fallback: create basic database
170
+ & python -c @"
171
+ import sqlite3
172
+ from pathlib import Path
173
+ db_path = Path.home() / '.claude-memory' / 'memory.db'
174
+ conn = sqlite3.connect(db_path)
175
+ cursor = conn.cursor()
176
+ cursor.execute('''CREATE TABLE IF NOT EXISTS memories (
177
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
178
+ content TEXT NOT NULL,
179
+ summary TEXT,
180
+ project_path TEXT,
181
+ project_name TEXT,
182
+ tags TEXT DEFAULT '[]',
183
+ category TEXT,
184
+ parent_id INTEGER,
185
+ tree_path TEXT DEFAULT '/',
186
+ depth INTEGER DEFAULT 0,
187
+ memory_type TEXT DEFAULT 'session',
188
+ importance INTEGER DEFAULT 5,
189
+ content_hash TEXT,
190
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
191
+ last_accessed TIMESTAMP,
192
+ access_count INTEGER DEFAULT 0,
193
+ cluster_id INTEGER
194
+ )''')
195
+ cursor.execute('CREATE TABLE IF NOT EXISTS sessions (id INTEGER PRIMARY KEY AUTOINCREMENT, session_id TEXT UNIQUE, project_path TEXT, started_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, ended_at TIMESTAMP, summary TEXT)')
196
+ conn.commit()
197
+ conn.close()
198
+ print('Database ready')
199
+ "@
200
+ Write-Host "OK Database initialized (fallback)" -ForegroundColor Green
201
+ }
202
+ } else {
203
+ Write-Host "WARNING: setup_validator.py not found, skipping database init" -ForegroundColor Yellow
204
+ }
205
+
206
+ # Install core dependencies (required for graph & dashboard)
207
+ Write-Host ""
208
+ Write-Host "Installing core dependencies..."
209
+ Write-Host "INFO: This ensures graph visualization and patterns work out-of-box" -ForegroundColor Yellow
210
+
211
+ $coreRequirements = Join-Path $REPO_DIR "requirements-core.txt"
212
+ if (Test-Path $coreRequirements) {
213
+ try {
214
+ & python -m pip install -q -r $coreRequirements 2>$null
215
+ Write-Host "OK Core dependencies installed (graph, dashboard, patterns)" -ForegroundColor Green
216
+ } catch {
217
+ Write-Host "WARNING: Core dependency installation failed. Some features may not work." -ForegroundColor Yellow
218
+ Write-Host " Install manually: python -m pip install -r $coreRequirements" -ForegroundColor Yellow
219
+ }
220
+ } else {
221
+ Write-Host "WARNING: requirements-core.txt not found, skipping dependency installation" -ForegroundColor Yellow
222
+ }
223
+
224
+ # Initialize knowledge graph and pattern learning
225
+ Write-Host ""
226
+ Write-Host "Initializing advanced features..."
227
+
228
+ # Add sample memories if database is empty (for first-time users)
229
+ $memoryCount = & python -c @"
230
+ import sqlite3
231
+ from pathlib import Path
232
+ db_path = Path.home() / '.claude-memory' / 'memory.db'
233
+ conn = sqlite3.connect(db_path)
234
+ cursor = conn.cursor()
235
+ cursor.execute('SELECT COUNT(*) FROM memories')
236
+ print(cursor.fetchone()[0])
237
+ conn.close()
238
+ "@ 2>$null
239
+
240
+ if (-not $memoryCount) { $memoryCount = 0 }
241
+
242
+ if ([int]$memoryCount -eq 0) {
243
+ Write-Host "INFO: Adding sample memories for demonstration..." -ForegroundColor Yellow
244
+ & python "$INSTALL_DIR\memory_store_v2.py" add "SuperLocalMemory V2 is a local-first, privacy-focused memory system for AI assistants. All data stays on your machine." --tags "supermemory,system,intro" --importance 8 2>$null | Out-Null
245
+ & python "$INSTALL_DIR\memory_store_v2.py" add "Knowledge graph uses TF-IDF for entity extraction and Leiden clustering for community detection." --tags "architecture,graph" --importance 7 2>$null | Out-Null
246
+ & python "$INSTALL_DIR\memory_store_v2.py" add "Pattern learning analyzes your coding preferences, style, and terminology to provide better context." --tags "architecture,patterns" --importance 7 2>$null | Out-Null
247
+ }
248
+
249
+ # Build knowledge graph (Layer 3)
250
+ Write-Host "INFO: Building knowledge graph..." -ForegroundColor Yellow
251
+ try {
252
+ & python "$INSTALL_DIR\graph_engine.py" build 2>$null | Out-Null
253
+ Write-Host " OK Knowledge graph initialized" -ForegroundColor Green
254
+ } catch {
255
+ Write-Host " WARNING: Graph build skipped (dependencies not installed)" -ForegroundColor Yellow
256
+ }
257
+
258
+ # Run pattern learning (Layer 4)
259
+ Write-Host "INFO: Learning patterns..." -ForegroundColor Yellow
260
+ try {
261
+ & python "$INSTALL_DIR\pattern_learner.py" update 2>$null | Out-Null
262
+ $patternCount = & python -c @"
263
+ import sqlite3
264
+ from pathlib import Path
265
+ db_path = Path.home() / '.claude-memory' / 'memory.db'
266
+ conn = sqlite3.connect(db_path)
267
+ cursor = conn.cursor()
268
+ cursor.execute('SELECT COUNT(*) FROM identity_patterns')
269
+ count = cursor.fetchone()[0]
270
+ conn.close()
271
+ print(count)
272
+ "@ 2>$null
273
+ if (-not $patternCount) { $patternCount = 0 }
274
+ Write-Host " OK Pattern learning complete ($patternCount patterns found)" -ForegroundColor Green
275
+ } catch {
276
+ Write-Host " WARNING: Pattern learning skipped (dependencies not installed)" -ForegroundColor Yellow
277
+ }
278
+
279
+ # Check optional dependencies
280
+ Write-Host ""
281
+ Write-Host "Checking optional dependencies..."
282
+ $dependencies = @{
283
+ "sklearn" = "scikit-learn (Knowledge Graph)"
284
+ "numpy" = "numpy (Vector Operations)"
285
+ "igraph" = "python-igraph (Clustering)"
286
+ "fastapi" = "fastapi (UI Server)"
287
+ }
288
+
289
+ foreach ($module in $dependencies.Keys) {
290
+ try {
291
+ & python -c "import $module" 2>$null
292
+ Write-Host "OK $($dependencies[$module])" -ForegroundColor Green
293
+ } catch {
294
+ Write-Host "INFO: $($dependencies[$module]) not installed (optional)" -ForegroundColor Yellow
295
+ }
296
+ }
297
+
298
+ # Configure PATH
299
+ Write-Host ""
300
+ Write-Host "Configuring PATH..."
301
+ $userPath = [Environment]::GetEnvironmentVariable("PATH", "User")
302
+ if ($userPath -notlike "*$installBinDir*") {
303
+ $newPath = "$installBinDir;$userPath"
304
+ [Environment]::SetEnvironmentVariable("PATH", $newPath, "User")
305
+ Write-Host "OK PATH configured (restart terminal to use commands)" -ForegroundColor Green
306
+ $env:PATH = "$installBinDir;$env:PATH"
307
+ } else {
308
+ Write-Host "INFO: PATH already configured" -ForegroundColor Yellow
309
+ }
310
+
311
+ # Summary
312
+ Write-Host ""
313
+ Write-Host "=================================================================="
314
+ Write-Host " Installation Complete! "
315
+ Write-Host "=================================================================="
316
+ Write-Host ""
317
+ Write-Host "OK Commands available after terminal restart!" -ForegroundColor Green
318
+ Write-Host ""
319
+ Write-Host "Quick start (restart terminal first):"
320
+ Write-Host " python $INSTALL_DIR\memory_store_v2.py"
321
+ Write-Host ""
322
+
323
+ # Optional: Offer to install optional features
324
+ Write-Host ""
325
+ Write-Host "=================================================================="
326
+ Write-Host " Optional Features Available "
327
+ Write-Host "=================================================================="
328
+ Write-Host ""
329
+ Write-Host "SuperLocalMemory V2.2.0 includes optional features:"
330
+ Write-Host ""
331
+ Write-Host " 1) Advanced Search (~1.5GB, 5-10 min)"
332
+ Write-Host " - Semantic search with sentence transformers"
333
+ Write-Host " - Vector similarity with HNSWLIB"
334
+ Write-Host ""
335
+ Write-Host " 2) Web Dashboard (~50MB, 1-2 min)"
336
+ Write-Host " - Graph visualization"
337
+ Write-Host " - API server (FastAPI)"
338
+ Write-Host ""
339
+ Write-Host " 3) Full Package (~1.5GB, 5-10 min)"
340
+ Write-Host " - Everything: Search + Dashboard"
341
+ Write-Host ""
342
+ Write-Host " N) Skip (install later)"
343
+ Write-Host ""
344
+
345
+ # Handle interactive vs non-interactive mode
346
+ if ($NON_INTERACTIVE) {
347
+ $INSTALL_CHOICE = "N"
348
+ Write-Host "Auto-selecting: N (Skip)" -ForegroundColor Cyan
349
+ } else {
350
+ $INSTALL_CHOICE = Read-Host "Choose option [1/2/3/N]"
351
+ }
352
+
353
+ $requirementsDir = $REPO_DIR
354
+ switch ($INSTALL_CHOICE) {
355
+ "1" {
356
+ Write-Host ""
357
+ Write-Host "Installing Advanced Search features..."
358
+ Write-Host "Downloading ~1.5GB (ML models)..." -ForegroundColor Yellow
359
+ $searchReqPath = Join-Path $requirementsDir "requirements-search.txt"
360
+ if (Test-Path $searchReqPath) {
361
+ & pip install -r $searchReqPath
362
+ Write-Host "OK Advanced Search installed successfully" -ForegroundColor Green
363
+ } else {
364
+ Write-Host "ERROR: requirements-search.txt not found" -ForegroundColor Red
365
+ }
366
+ }
367
+ "2" {
368
+ Write-Host ""
369
+ Write-Host "Installing Web Dashboard..."
370
+ Write-Host "Downloading ~50MB..." -ForegroundColor Yellow
371
+ $uiReqPath = Join-Path $requirementsDir "requirements-ui.txt"
372
+ if (Test-Path $uiReqPath) {
373
+ & pip install -r $uiReqPath
374
+ Write-Host "OK Web Dashboard installed successfully" -ForegroundColor Green
375
+ Write-Host ""
376
+ Write-Host "Start Web UI:"
377
+ Write-Host " python $INSTALL_DIR\api_server.py"
378
+ Write-Host " Then open: http://127.0.0.1:8000"
379
+ } else {
380
+ Write-Host "ERROR: requirements-ui.txt not found" -ForegroundColor Red
381
+ }
382
+ }
383
+ "3" {
384
+ Write-Host ""
385
+ Write-Host "Installing Full Package (Search + Dashboard)..."
386
+ Write-Host "Downloading ~1.5GB..." -ForegroundColor Yellow
387
+ $fullReqPath = Join-Path $requirementsDir "requirements-full.txt"
388
+ if (Test-Path $fullReqPath) {
389
+ & pip install -r $fullReqPath
390
+ Write-Host "OK Full package installed successfully" -ForegroundColor Green
391
+ Write-Host ""
392
+ Write-Host "All features enabled!"
393
+ } else {
394
+ Write-Host "ERROR: requirements-full.txt not found" -ForegroundColor Red
395
+ }
396
+ }
397
+ default {
398
+ Write-Host ""
399
+ Write-Host "Skipping optional features."
400
+ Write-Host ""
401
+ Write-Host "To install later:"
402
+ Write-Host " Advanced Search: pip install -r requirements-search.txt"
403
+ Write-Host " Web Dashboard: pip install -r requirements-ui.txt"
404
+ Write-Host " Full Package: pip install -r requirements-full.txt"
405
+ }
406
+ }
407
+
408
+ Write-Host ""
409
+ Write-Host "=================================================================="
410
+ Write-Host " ATTRIBUTION NOTICE (REQUIRED BY MIT LICENSE) "
411
+ Write-Host "=================================================================="
412
+ Write-Host " Created by: Varun Pratap Bhardwaj "
413
+ Write-Host " Role: Solution Architect & Original Creator "
414
+ Write-Host " Repository: github.com/varun369/SuperLocalMemoryV2 "
415
+ Write-Host " License: MIT (attribution must be preserved) "
416
+ Write-Host "=================================================================="
417
+ Write-Host ""