claude-flow-novice 2.0.4 ā 2.0.5
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/dist/src/cli/commands/guidance.js +668 -487
- package/dist/src/cli/commands/index-validate.js +29 -18
- package/dist/src/cli/commands/mcp-troubleshoot.js +282 -230
- package/dist/src/cli/commands/neural-goal-init.js +125 -92
- package/dist/src/cli/commands/swarm-exec.js +393 -317
- package/dist/src/cli/commands/validate-framework.js +1100 -983
- package/dist/src/cli/commands/validate.js +223 -144
- package/dist/src/cli/main.js +1 -1
- package/dist/src/cli/simple-commands/__tests__/agent.test.js +277 -265
- package/dist/src/cli/simple-commands/__tests__/memory.test.js +7 -6
- package/dist/src/cli/simple-commands/__tests__/swarm.test.js +356 -373
- package/dist/src/cli/simple-commands/__tests__/task.test.js +7 -6
- package/dist/src/cli/simple-commands/agent.js +193 -157
- package/dist/src/cli/simple-commands/analysis.js +446 -336
- package/dist/src/cli/simple-commands/automation-executor.js +1339 -1095
- package/dist/src/cli/simple-commands/automation.js +469 -481
- package/dist/src/cli/simple-commands/batch-manager.js +313 -261
- package/dist/src/cli/simple-commands/claude-telemetry.js +267 -241
- package/dist/src/cli/simple-commands/claude-track.js +90 -68
- package/dist/src/cli/simple-commands/concurrent-display.js +320 -266
- package/dist/src/cli/simple-commands/config.js +290 -245
- package/dist/src/cli/simple-commands/coordination.js +234 -182
- package/dist/src/cli/simple-commands/enhanced-ui-views.js +615 -812
- package/dist/src/cli/simple-commands/enhanced-webui-complete.js +981 -922
- package/dist/src/cli/simple-commands/fix-hook-variables.js +294 -274
- package/dist/src/cli/simple-commands/github/gh-coordinator.js +457 -378
- package/dist/src/cli/simple-commands/github/github-api.js +574 -535
- package/dist/src/cli/simple-commands/github/init.js +303 -276
- package/dist/src/cli/simple-commands/github.js +247 -222
- package/dist/src/cli/simple-commands/goal.js +63 -51
- package/dist/src/cli/simple-commands/hive-mind/auto-save-middleware.js +278 -208
- package/dist/src/cli/simple-commands/hive-mind/communication.js +696 -601
- package/dist/src/cli/simple-commands/hive-mind/core.js +979 -907
- package/dist/src/cli/simple-commands/hive-mind/db-optimizer.js +655 -406
- package/dist/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1245 -1125
- package/dist/src/cli/simple-commands/hive-mind/memory.js +1090 -854
- package/dist/src/cli/simple-commands/hive-mind/performance-optimizer.js +574 -459
- package/dist/src/cli/simple-commands/hive-mind/performance-test.js +347 -263
- package/dist/src/cli/simple-commands/hive-mind/queen.js +768 -727
- package/dist/src/cli/simple-commands/hive-mind/session-manager.js +1049 -745
- package/dist/src/cli/simple-commands/hive-mind-optimize.js +283 -227
- package/dist/src/cli/simple-commands/hive-mind-wizard.js +217 -174
- package/dist/src/cli/simple-commands/hive-mind.js +2282 -1841
- package/dist/src/cli/simple-commands/hive.js +79 -90
- package/dist/src/cli/simple-commands/hook-safety.js +521 -431
- package/dist/src/cli/simple-commands/hooks/session-start-soul.js +254 -203
- package/dist/src/cli/simple-commands/hooks.js +1204 -1064
- package/dist/src/cli/simple-commands/init/agent-copier.js +319 -294
- package/dist/src/cli/simple-commands/init/batch-init.js +562 -496
- package/dist/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +19 -13
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +19 -13
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +88 -61
- package/dist/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +150 -125
- package/dist/src/cli/simple-commands/init/claude-commands/slash-commands.js +49 -42
- package/dist/src/cli/simple-commands/init/claude-commands/sparc-commands.js +61 -43
- package/dist/src/cli/simple-commands/init/copy-revised-templates.js +147 -141
- package/dist/src/cli/simple-commands/init/executable-wrapper.js +44 -31
- package/dist/src/cli/simple-commands/init/gitignore-updater.js +90 -64
- package/dist/src/cli/simple-commands/init/help.js +107 -104
- package/dist/src/cli/simple-commands/init/hive-mind-init.js +528 -509
- package/dist/src/cli/simple-commands/init/index.js +1759 -1510
- package/dist/src/cli/simple-commands/init/performance-monitor.js +317 -234
- package/dist/src/cli/simple-commands/init/rollback/backup-manager.js +504 -441
- package/dist/src/cli/simple-commands/init/rollback/index.js +364 -289
- package/dist/src/cli/simple-commands/init/rollback/recovery-manager.js +728 -652
- package/dist/src/cli/simple-commands/init/rollback/rollback-executor.js +481 -416
- package/dist/src/cli/simple-commands/init/rollback/state-tracker.js +448 -369
- package/dist/src/cli/simple-commands/init/sparc/roo-readme.js +2 -1
- package/dist/src/cli/simple-commands/init/sparc/roomodes-config.js +99 -122
- package/dist/src/cli/simple-commands/init/sparc/workflows.js +37 -32
- package/dist/src/cli/simple-commands/init/sparc-structure.js +62 -55
- package/dist/src/cli/simple-commands/init/template-copier.js +533 -421
- package/dist/src/cli/simple-commands/init/templates/coordination-md.js +6 -3
- package/dist/src/cli/simple-commands/init/templates/enhanced-templates.js +318 -344
- package/dist/src/cli/simple-commands/init/templates/github-safe-enhanced.js +218 -173
- package/dist/src/cli/simple-commands/init/templates/github-safe.js +75 -65
- package/dist/src/cli/simple-commands/init/templates/memory-bank-md.js +6 -3
- package/dist/src/cli/simple-commands/init/templates/readme-files.js +4 -2
- package/dist/src/cli/simple-commands/init/templates/safe-hook-patterns.js +230 -187
- package/dist/src/cli/simple-commands/init/templates/sparc-modes.js +80 -53
- package/dist/src/cli/simple-commands/init/templates/verification-claude-md.js +85 -101
- package/dist/src/cli/simple-commands/init/validation/config-validator.js +330 -283
- package/dist/src/cli/simple-commands/init/validation/health-checker.js +561 -495
- package/dist/src/cli/simple-commands/init/validation/index.js +358 -302
- package/dist/src/cli/simple-commands/init/validation/mode-validator.js +359 -308
- package/dist/src/cli/simple-commands/init/validation/post-init-validator.js +366 -389
- package/dist/src/cli/simple-commands/init/validation/pre-init-validator.js +268 -270
- package/dist/src/cli/simple-commands/init/validation/test-runner.js +447 -427
- package/dist/src/cli/simple-commands/init.js +2 -1
- package/dist/src/cli/simple-commands/mcp-health.js +158 -131
- package/dist/src/cli/simple-commands/mcp-integration-layer.js +634 -533
- package/dist/src/cli/simple-commands/mcp.js +400 -345
- package/dist/src/cli/simple-commands/memory-consolidation.js +537 -426
- package/dist/src/cli/simple-commands/memory.js +311 -247
- package/dist/src/cli/simple-commands/migrate-hooks.js +46 -39
- package/dist/src/cli/simple-commands/monitor.js +363 -294
- package/dist/src/cli/simple-commands/neural.js +65 -51
- package/dist/src/cli/simple-commands/pair-autofix-only.js +662 -538
- package/dist/src/cli/simple-commands/pair-basic.js +656 -528
- package/dist/src/cli/simple-commands/pair-old.js +543 -430
- package/dist/src/cli/simple-commands/pair-working.js +751 -615
- package/dist/src/cli/simple-commands/pair.js +751 -615
- package/dist/src/cli/simple-commands/performance-hooks.js +111 -83
- package/dist/src/cli/simple-commands/performance-metrics.js +433 -348
- package/dist/src/cli/simple-commands/process-ui-enhanced.js +787 -708
- package/dist/src/cli/simple-commands/process-ui.js +254 -230
- package/dist/src/cli/simple-commands/realtime-update-system.js +611 -525
- package/dist/src/cli/simple-commands/sparc/architecture.js +1530 -1704
- package/dist/src/cli/simple-commands/sparc/commands.js +516 -438
- package/dist/src/cli/simple-commands/sparc/completion.js +1481 -1224
- package/dist/src/cli/simple-commands/sparc/coordinator.js +978 -913
- package/dist/src/cli/simple-commands/sparc/index.js +298 -241
- package/dist/src/cli/simple-commands/sparc/phase-base.js +390 -314
- package/dist/src/cli/simple-commands/sparc/pseudocode.js +869 -965
- package/dist/src/cli/simple-commands/sparc/refinement.js +1273 -980
- package/dist/src/cli/simple-commands/sparc/specification.js +645 -559
- package/dist/src/cli/simple-commands/sparc-modes/architect.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/ask.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/code.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/debug.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/devops.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/docs-writer.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/generic.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/index.js +55 -47
- package/dist/src/cli/simple-commands/sparc-modes/integration.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/mcp.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/monitoring.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/optimization.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/security-review.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/supabase-admin.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/swarm.js +87 -101
- package/dist/src/cli/simple-commands/sparc-modes/tdd.js +1 -1
- package/dist/src/cli/simple-commands/sparc-modes/tutorial.js +1 -1
- package/dist/src/cli/simple-commands/sparc.js +493 -465
- package/dist/src/cli/simple-commands/start-ui.js +132 -108
- package/dist/src/cli/simple-commands/start-wrapper.js +268 -240
- package/dist/src/cli/simple-commands/start.js +1 -1
- package/dist/src/cli/simple-commands/status.js +275 -254
- package/dist/src/cli/simple-commands/stream-chain-clean.js +171 -128
- package/dist/src/cli/simple-commands/stream-chain-fixed.js +82 -61
- package/dist/src/cli/simple-commands/stream-chain-real.js +331 -267
- package/dist/src/cli/simple-commands/stream-chain-working.js +263 -211
- package/dist/src/cli/simple-commands/stream-chain.js +318 -260
- package/dist/src/cli/simple-commands/stream-processor.js +315 -290
- package/dist/src/cli/simple-commands/swarm-executor.js +222 -189
- package/dist/src/cli/simple-commands/swarm-metrics-integration.js +300 -208
- package/dist/src/cli/simple-commands/swarm-ui.js +703 -623
- package/dist/src/cli/simple-commands/swarm-webui-integration.js +286 -258
- package/dist/src/cli/simple-commands/swarm.js +1082 -887
- package/dist/src/cli/simple-commands/task.js +206 -161
- package/dist/src/cli/simple-commands/timestamp-fix.js +89 -59
- package/dist/src/cli/simple-commands/token-tracker.js +316 -258
- package/dist/src/cli/simple-commands/tool-execution-framework.js +519 -433
- package/dist/src/cli/simple-commands/train-and-stream.js +331 -275
- package/dist/src/cli/simple-commands/training-pipeline.js +725 -619
- package/dist/src/cli/simple-commands/training.js +227 -170
- package/dist/src/cli/simple-commands/verification-hooks.js +284 -261
- package/dist/src/cli/simple-commands/verification-integration.js +417 -389
- package/dist/src/cli/simple-commands/verification-training-integration.js +606 -486
- package/dist/src/cli/simple-commands/verification.js +513 -493
- package/dist/src/cli/simple-commands/web-server.js +836 -766
- package/dist/src/cli/simple-commands/webui-validator.js +124 -106
- package/dist/src/coordination/byzantine-memory-channels.js +25 -1
- package/dist/src/coordination/event-bus/demo-wasm-integration.js +251 -212
- package/dist/src/coordination/event-bus/qe-event-bus.js +748 -608
- package/dist/src/coordination/event-bus/qe-event-bus.test.js +454 -379
- package/dist/src/coordination/iteration-tracker.js +454 -363
- package/dist/src/index.js +384 -35
- package/dist/src/mcp/DEPRECATED.js +60 -46
- package/dist/src/mcp/fixes/mcp-error-fixes.js +134 -115
- package/dist/src/mcp/implementations/agent-tracker.js +128 -114
- package/dist/src/mcp/implementations/daa-tools.js +350 -292
- package/dist/src/mcp/implementations/workflow-tools.js +361 -329
- package/dist/src/mcp/mcp-config-manager.js +1331 -1183
- package/dist/src/mcp/mcp-server-novice-simplified.js +17 -11
- package/dist/src/mcp/mcp-server-novice.js +17 -11
- package/dist/src/mcp/mcp-server-sdk.js +17 -11
- package/dist/src/mcp/mcp-server.js +1484 -1620
- package/dist/src/mcp/ruv-swarm-wrapper.js +239 -209
- package/dist/src/memory/advanced-serializer.js +589 -609
- package/dist/src/memory/enhanced-examples.js +305 -220
- package/dist/src/memory/enhanced-memory.js +336 -295
- package/dist/src/memory/enhanced-session-serializer.js +492 -408
- package/dist/src/memory/fallback-memory-system.js +1021 -900
- package/dist/src/memory/fallback-store.js +131 -93
- package/dist/src/memory/high-performance-serialization.js +730 -592
- package/dist/src/memory/in-memory-store.js +213 -161
- package/dist/src/memory/index.js +157 -123
- package/dist/src/memory/lock-free-structures.js +764 -578
- package/dist/src/memory/memory-mapped-persistence.js +766 -585
- package/dist/src/memory/memory-pressure-manager.js +707 -569
- package/dist/src/memory/migration.js +445 -358
- package/dist/src/memory/shared-memory.js +768 -641
- package/dist/src/memory/sqlite-store.js +325 -245
- package/dist/src/memory/sqlite-wrapper.js +151 -122
- package/dist/src/memory/swarm-memory.js +603 -470
- package/dist/src/memory/test-example.js +134 -126
- package/dist/src/memory/ultra-fast-memory-store.js +821 -622
- package/dist/src/memory/unified-memory-manager.js +437 -356
- package/dist/src/swarm/CodeRefactoringSwarm.js +952 -777
- package/dist/src/utils/__tests__/github-cli-safety-wrapper.test.js +400 -332
- package/dist/src/utils/error-handler.js +2 -36
- package/dist/src/utils/github-cli-safe.js +64 -56
- package/dist/src/utils/github-cli-safety-wrapper.js +546 -451
- package/dist/src/utils/npx-isolated-cache.js +119 -104
- package/dist/src/utils/preference-manager.js +652 -622
- package/dist/src/utils/timezone-utils.js +105 -86
- package/dist/src/web/api/apm-routes.js +353 -0
- package/dist/src/web/api/config/api-config.js +184 -0
- package/dist/src/web/api/middleware/auth.js +203 -0
- package/dist/src/web/api/middleware/cache.js +273 -0
- package/dist/src/web/api/middleware/error-handler.js +257 -0
- package/dist/src/web/api/middleware/request-logger.js +215 -0
- package/dist/src/web/api/middleware/validation.js +323 -0
- package/dist/src/web/api/routes/events.js +463 -0
- package/dist/src/web/api/routes/hierarchy.js +300 -0
- package/dist/src/web/api/routes/index.js +12 -0
- package/dist/src/web/api/routes/metrics.js +559 -0
- package/dist/src/web/api/routes/parallel-status.js +359 -0
- package/dist/src/web/api/routes/status.js +448 -0
- package/dist/src/web/api/server.js +462 -0
- package/dist/src/web/dashboard/hooks/useWebSocket.js +383 -0
- package/dist/src/web/dashboard/index.js +85 -0
- package/dist/src/web/dashboard/realtime/CustomSyncManager.js +439 -0
- package/dist/src/web/dashboard/realtime/NativeWebSocketManager.js +323 -0
- package/dist/src/web/dashboard/realtime/PerformanceBenchmark.js +527 -0
- package/dist/src/web/dashboard/realtime/RealtimeCommunicationManager.js +474 -0
- package/dist/src/web/dashboard/realtime/RealtimeServer.js +666 -0
- package/dist/src/web/dashboard/realtime/SSEManager.js +426 -0
- package/dist/src/web/dashboard/types.js +4 -0
- package/dist/src/web/messaging/agent-status-tracker.js +453 -0
- package/dist/src/web/messaging/human-intervention-system.js +305 -0
- package/dist/src/web/messaging/message-filter.js +302 -0
- package/dist/src/web/messaging/swarm-message-router.js +324 -0
- package/dist/src/web/messaging/transparency-logger.js +421 -0
- package/dist/src/web/portal-server.js +460 -0
- package/dist/src/web/server.js +322 -0
- package/dist/src/web/websocket/apm-websocket-handler.js +453 -0
- package/dist/src/web/websocket/websocket-manager.js +780 -0
- package/package.json +5 -3
- package/dist/src/cli/minimal-main.js +0 -22
- package/dist/src/enterprise/analytics-manager.js +0 -1135
- package/dist/src/enterprise/audit-manager.js +0 -1115
- package/dist/src/enterprise/cloud-manager.js +0 -891
- package/dist/src/enterprise/deployment-manager.js +0 -966
- package/dist/src/enterprise/index.js +0 -6
- package/dist/src/enterprise/project-manager.js +0 -584
- package/dist/src/enterprise/security-manager.js +0 -991
- package/dist/src/migration/index.js +0 -92
- package/dist/src/migration/logger.js +0 -121
- package/dist/src/migration/migration-analyzer.js +0 -268
- package/dist/src/migration/migration-runner.js +0 -522
- package/dist/src/migration/migration-validator.js +0 -285
- package/dist/src/migration/progress-reporter.js +0 -150
- package/dist/src/migration/rollback-manager.js +0 -321
- package/dist/src/migration/tests/migration-system.test.js +0 -7
- package/dist/src/migration/types.js +0 -3
- package/dist/src/swarm/__tests__/integration.test.js +0 -227
- package/dist/src/swarm/__tests__/prompt-copier.test.js +0 -344
- package/dist/src/swarm/advanced-orchestrator.js +0 -1095
- package/dist/src/swarm/claude-code-interface.js +0 -961
- package/dist/src/swarm/claude-flow-executor.js +0 -229
- package/dist/src/swarm/consensus-coordinator.js +0 -475
- package/dist/src/swarm/coordinator.js +0 -2993
- package/dist/src/swarm/direct-executor.js +0 -1180
- package/dist/src/swarm/error-recovery/advanced-error-detection.js +0 -691
- package/dist/src/swarm/error-recovery/automated-recovery-workflows.js +0 -998
- package/dist/src/swarm/error-recovery/error-recovery-coordinator.js +0 -1197
- package/dist/src/swarm/error-recovery/recovery-monitoring.js +0 -772
- package/dist/src/swarm/error-recovery/resilience-architecture.js +0 -714
- package/dist/src/swarm/error-recovery/self-healing-mechanisms.js +0 -1319
- package/dist/src/swarm/error-recovery/test-error-recovery-effectiveness.js +0 -808
- package/dist/src/swarm/executor-v2.js +0 -322
- package/dist/src/swarm/executor.js +0 -815
- package/dist/src/swarm/hive-mind-integration.js +0 -703
- package/dist/src/swarm/index.js +0 -41
- package/dist/src/swarm/json-output-aggregator.js +0 -267
- package/dist/src/swarm/large-scale-coordinator.js +0 -542
- package/dist/src/swarm/mcp-integration-wrapper.js +0 -628
- package/dist/src/swarm/memory.js +0 -1117
- package/dist/src/swarm/optimizations/__tests__/optimization.test.js +0 -348
- package/dist/src/swarm/optimizations/async-file-manager.js +0 -285
- package/dist/src/swarm/optimizations/circular-buffer.js +0 -162
- package/dist/src/swarm/optimizations/connection-pool.js +0 -244
- package/dist/src/swarm/optimizations/index.js +0 -28
- package/dist/src/swarm/optimizations/optimized-executor.js +0 -320
- package/dist/src/swarm/optimizations/ttl-map.js +0 -234
- package/dist/src/swarm/prompt-cli.js +0 -200
- package/dist/src/swarm/prompt-copier-enhanced.js +0 -202
- package/dist/src/swarm/prompt-copier.js +0 -381
- package/dist/src/swarm/prompt-manager.js +0 -295
- package/dist/src/swarm/prompt-utils.js +0 -310
- package/dist/src/swarm/result-aggregator.js +0 -718
- package/dist/src/swarm/sparc-executor.js +0 -1568
- package/dist/src/swarm/strategies/auto.js +0 -758
- package/dist/src/swarm/strategies/base.js +0 -128
- package/dist/src/swarm/strategies/research.js +0 -914
- package/dist/src/swarm/strategies/strategy-metrics-patch.js +0 -2
- package/dist/src/swarm/types.js +0 -52
- package/dist/src/swarm/workers/copy-worker.js +0 -56
- package/dist/src/validators/epic-config-schema.js +0 -214
- package/dist/src/validators/index.js +0 -10
- package/dist/src/validators/swarm-init-validator.js +0 -259
- package/dist/src/validators/todowrite-batching-validator.js +0 -215
- package/dist/src/validators/todowrite-integration.js +0 -187
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/documentSymbols/browser/documentSymbols.js +0 -23
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +0 -57
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +0 -401
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +0 -181
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js +0 -44
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +0 -157
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/edit.js +0 -71
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/editorState/browser/editorState.js +0 -112
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findController.js +0 -990
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findDecorations.js +0 -296
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findModel.js +0 -488
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findOptionsWidget.js +0 -138
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findState.js +0 -243
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findWidget.js +0 -1177
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/folding.js +0 -1093
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +0 -133
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingModel.js +0 -538
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingRanges.js +0 -351
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +0 -49
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/format.js +0 -360
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formatActions.js +0 -263
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formattingEdit.js +0 -54
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +0 -149
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/hover/browser/contentHover.js +0 -874
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commandIds.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commands.js +0 -199
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/linesOperations/browser/copyLinesCommand.js +0 -70
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +0 -26
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +0 -153
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +0 -33
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/smartSelect/browser/bracketSelections.js +0 -146
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/suggest/browser/completionModel.js +0 -224
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +0 -119
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/edcore.main.js +0 -14
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.all.js +0 -63
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.api.js +0 -55
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.main.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.worker.js +0 -25
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/standalone/browser/colorizer.js +0 -118
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/css.worker.js +0 -36869
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/cssMode.js +0 -2035
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/browser/accessibilityService.js +0 -88
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/common/accessibility.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/action.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/actionCommonCategories.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionList.js +0 -276
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionWidget.js +0 -248
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/common/actionWidget.js +0 -5
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actions/common/actions.js +0 -409
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/audioCues/browser/audioCueService.js +0 -176
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/browser/clipboardService.js +0 -141
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/common/clipboardService.js +0 -6
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/commands/common/commands.js +0 -80
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configuration.js +0 -86
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationModels.js +0 -554
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationRegistry.js +0 -317
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurations.js +0 -41
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/browser/contextKeyService.js +0 -432
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkey.js +0 -1547
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkeys.js +0 -18
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuHandler.js +0 -124
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuService.js +0 -101
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextView.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextViewService.js +0 -72
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dialogs/common/dialogs.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dnd/browser/dnd.js +0 -36
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/editor/common/editor.js +0 -17
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/environment/common/environment.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/extensions/common/extensions.js +0 -47
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/files/common/files.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +0 -105
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/descriptors.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/extensions.js +0 -15
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/abstractKeybindingService.js +0 -277
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -53
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/browser/defaultStyles.js +0 -162
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/common/colorRegistry.js +0 -482
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/abap/abap.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/apex/apex.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/azcli/azcli.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bat/bat.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bicep/bicep.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cameligo/cameligo.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/clojure/clojure.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/coffee/coffee.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cpp/cpp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csharp/csharp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csp/csp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/css/css.js +0 -12
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cypher/cypher.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dart/dart.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dockerfile/dockerfile.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/ecl/ecl.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/elixir/elixir.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/flow9/flow9.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.js +0 -745
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.de.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.es.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.fr.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.it.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ja.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ko.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ru.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-cn.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-tw.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssMode.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssWorker.js +0 -81
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/cli.js +0 -64
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/example.js +0 -36
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/index.js +0 -205
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/test.js +0 -260
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.browser.js +0 -34
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.js +0 -35
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.native.js +0 -26
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.browser.js +0 -34
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.js +0 -45
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/nanoid.js +0 -1
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/non-secure/index.js +0 -21
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/url-alphabet/index.js +0 -3
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/bin/nodemon.js +0 -16
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/index.js +0 -49
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/parse.js +0 -230
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/command.js +0 -43
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/defaults.js +0 -34
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/exec.js +0 -234
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/index.js +0 -93
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/load.js +0 -225
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/help/index.js +0 -27
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/index.js +0 -1
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/index.js +0 -4
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/match.js +0 -287
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/run.js +0 -562
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/signals.js +0 -34
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/watch.js +0 -244
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/nodemon.js +0 -317
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/add.js +0 -89
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/index.js +0 -53
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/parse.js +0 -43
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/spawn.js +0 -74
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/bus.js +0 -44
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/clone.js +0 -40
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/colour.js +0 -26
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/index.js +0 -103
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/log.js +0 -82
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/merge.js +0 -47
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/version.js +0 -100
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/brace-expansion/index.js +0 -201
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/has-flag/index.js +0 -8
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/minimatch/minimatch.js +0 -947
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/browser.js +0 -5
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/index.js +0 -131
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/bin/pidtree.js +0 -128
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/index.js +0 -49
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/bin.js +0 -61
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/get.js +0 -45
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/pidtree.js +0 -104
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/ps.js +0 -47
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/wmic.js +0 -49
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/doc.js +0 -1270
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/acorn.js +0 -15
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/angular.js +0 -2
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/babel.js +0 -15
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/estree.js +0 -36
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/flow.js +0 -19
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/glimmer.js +0 -29
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/graphql.js +0 -29
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/html.js +0 -22
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/markdown.js +0 -63
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/meriyah.js +0 -4
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/postcss.js +0 -54
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/typescript.js +0 -20
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/yaml.js +0 -160
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/standalone.js +0 -34
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/bin/react-scripts.js +0 -58
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/env.js +0 -112
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/getHttpsConfig.js +0 -74
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/babelTransform.js +0 -37
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/cssTransform.js +0 -22
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/fileTransform.js +0 -40
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/modules.js +0 -142
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/paths.js +0 -153
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack/persistentCache/createEnvironmentHash.js +0 -9
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack.config.js +0 -796
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpackDevServer.config.js +0 -135
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/build.js +0 -225
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/eject.js +0 -340
|
@@ -1,225 +1,287 @@
|
|
|
1
1
|
// memory-consolidation.js - Database consolidation utility
|
|
2
|
-
import { printSuccess, printError, printWarning, printInfo } from
|
|
3
|
-
import { promises as fs } from
|
|
4
|
-
import path from
|
|
5
|
-
import { existsSync } from
|
|
2
|
+
import { printSuccess, printError, printWarning, printInfo } from '../utils.js';
|
|
3
|
+
import { promises as fs } from 'fs';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { existsSync } from '../node-compat.js';
|
|
6
6
|
// Dynamic imports for optional dependencies
|
|
7
7
|
let sqlite3;
|
|
8
8
|
let sqliteOpen;
|
|
9
|
+
|
|
9
10
|
async function loadSqliteModules() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
try {
|
|
12
|
+
const sqlite3Module = await import('sqlite3');
|
|
13
|
+
sqlite3 = sqlite3Module.default;
|
|
14
|
+
const sqliteModule = await import('sqlite');
|
|
15
|
+
sqliteOpen = sqliteModule.open;
|
|
16
|
+
return true;
|
|
17
|
+
} catch (err) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
19
20
|
}
|
|
21
|
+
|
|
20
22
|
/**
|
|
21
23
|
* Memory database consolidation strategy
|
|
22
24
|
* Consolidates multiple memory storage locations into a unified structure
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
+
*/
|
|
26
|
+
export class MemoryConsolidator {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.primaryLocations = {
|
|
29
|
+
json: './memory/memory-store.json',
|
|
30
|
+
sqlite: './.claude-flow/memory/unified-memory.db',
|
|
31
|
+
backup: './.claude-flow/memory/backups/',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
this.knownLocations = [
|
|
35
|
+
// JSON stores
|
|
36
|
+
'./memory/memory-store.json',
|
|
37
|
+
'./.claude-flow/memory/store.json',
|
|
38
|
+
|
|
39
|
+
// SQLite databases
|
|
40
|
+
'./.swarm/memory.db',
|
|
41
|
+
'./.hive-mind/memory.db',
|
|
42
|
+
'./.hive-mind/hive.db',
|
|
43
|
+
'./.ruv-swarm/swarm.db',
|
|
44
|
+
'./data/hive-mind.db',
|
|
45
|
+
|
|
46
|
+
// Legacy locations
|
|
47
|
+
'./memory.json',
|
|
48
|
+
'./data/memory.json',
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
25
53
|
* Scan for all memory storage locations
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
*/
|
|
55
|
+
async scanMemoryLocations() {
|
|
56
|
+
const found = {
|
|
57
|
+
json: [],
|
|
58
|
+
sqlite: [],
|
|
59
|
+
total: 0,
|
|
60
|
+
sizeBytes: 0,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// Check known locations
|
|
64
|
+
for (const location of this.knownLocations) {
|
|
65
|
+
if (existsSync(location)) {
|
|
66
|
+
const stats = await fs.stat(location);
|
|
67
|
+
const type = location.endsWith('.db') ? 'sqlite' : 'json';
|
|
68
|
+
|
|
69
|
+
found[type].push({
|
|
70
|
+
path: location,
|
|
71
|
+
size: stats.size,
|
|
72
|
+
modified: stats.mtime,
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
found.total++;
|
|
76
|
+
found.sizeBytes += stats.size;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Scan for additional .db files
|
|
81
|
+
try {
|
|
82
|
+
const dbFiles = await this.findDatabaseFiles('.');
|
|
83
|
+
for (const dbFile of dbFiles) {
|
|
84
|
+
if (!this.knownLocations.includes(dbFile)) {
|
|
85
|
+
const stats = await fs.stat(dbFile);
|
|
86
|
+
found.sqlite.push({
|
|
87
|
+
path: dbFile,
|
|
88
|
+
size: stats.size,
|
|
89
|
+
modified: stats.mtime,
|
|
90
|
+
});
|
|
91
|
+
found.total++;
|
|
92
|
+
found.sizeBytes += stats.size;
|
|
64
93
|
}
|
|
65
|
-
|
|
94
|
+
}
|
|
95
|
+
} catch (err) {
|
|
96
|
+
// Ignore scan errors
|
|
66
97
|
}
|
|
67
|
-
|
|
98
|
+
|
|
99
|
+
return found;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
68
103
|
* Find all .db files recursively
|
|
69
|
-
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
|
|
104
|
+
*/
|
|
105
|
+
async findDatabaseFiles(dir, files = []) {
|
|
106
|
+
try {
|
|
107
|
+
const items = await fs.readdir(dir);
|
|
108
|
+
|
|
109
|
+
for (const item of items) {
|
|
110
|
+
// Skip node_modules and hidden directories
|
|
111
|
+
if (item === 'node_modules' || item.startsWith('.git')) continue;
|
|
112
|
+
|
|
113
|
+
const fullPath = path.join(dir, item);
|
|
114
|
+
const stat = await fs.stat(fullPath);
|
|
115
|
+
|
|
116
|
+
if (stat.isDirectory() && item.startsWith('.')) {
|
|
117
|
+
// Check hidden directories for db files
|
|
118
|
+
await this.findDatabaseFiles(fullPath, files);
|
|
119
|
+
} else if (item.endsWith('.db')) {
|
|
120
|
+
files.push(fullPath);
|
|
86
121
|
}
|
|
87
|
-
|
|
122
|
+
}
|
|
123
|
+
} catch (err) {
|
|
124
|
+
// Ignore permission errors
|
|
88
125
|
}
|
|
89
|
-
|
|
126
|
+
|
|
127
|
+
return files;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
90
131
|
* Create consolidation plan
|
|
91
|
-
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
// Step 3: Merge SQLite databases
|
|
122
|
-
if (locations.sqlite.length > 0) {
|
|
123
|
-
plan.steps.push({
|
|
124
|
-
action: 'merge-sqlite',
|
|
125
|
-
description: 'Merge SQLite databases into unified store',
|
|
126
|
-
sources: locations.sqlite.map((l)=>l.path),
|
|
127
|
-
destination: this.primaryLocations.sqlite
|
|
128
|
-
});
|
|
129
|
-
plan.estimatedTime += locations.sqlite.length * 2;
|
|
130
|
-
}
|
|
131
|
-
// Step 4: Create indices for performance
|
|
132
|
-
plan.steps.push({
|
|
133
|
-
action: 'optimize',
|
|
134
|
-
description: 'Create indices and optimize unified database',
|
|
135
|
-
destination: this.primaryLocations.sqlite
|
|
136
|
-
});
|
|
137
|
-
plan.estimatedTime += 1;
|
|
138
|
-
// Step 5: Update configuration
|
|
139
|
-
plan.steps.push({
|
|
140
|
-
action: 'update-config',
|
|
141
|
-
description: 'Update memory configuration to use unified store',
|
|
142
|
-
config: {
|
|
143
|
-
memoryStore: this.primaryLocations.sqlite,
|
|
144
|
-
backupLocation: this.primaryLocations.backup,
|
|
145
|
-
legacySupport: true
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
return plan;
|
|
132
|
+
*/
|
|
133
|
+
async createConsolidationPlan(locations) {
|
|
134
|
+
const plan = {
|
|
135
|
+
steps: [],
|
|
136
|
+
estimatedTime: 0,
|
|
137
|
+
totalData: locations.sizeBytes,
|
|
138
|
+
backupRequired: locations.total > 0,
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
// Step 1: Backup existing data
|
|
142
|
+
if (plan.backupRequired) {
|
|
143
|
+
plan.steps.push({
|
|
144
|
+
action: 'backup',
|
|
145
|
+
description: 'Create backups of all existing memory stores',
|
|
146
|
+
sources: [...locations.json, ...locations.sqlite].map((l) => l.path),
|
|
147
|
+
destination: this.primaryLocations.backup,
|
|
148
|
+
});
|
|
149
|
+
plan.estimatedTime += 2; // seconds
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Step 2: Convert JSON stores to unified format
|
|
153
|
+
if (locations.json.length > 0) {
|
|
154
|
+
plan.steps.push({
|
|
155
|
+
action: 'convert-json',
|
|
156
|
+
description: 'Convert JSON memory stores to unified format',
|
|
157
|
+
sources: locations.json.map((l) => l.path),
|
|
158
|
+
destination: this.primaryLocations.sqlite,
|
|
159
|
+
});
|
|
160
|
+
plan.estimatedTime += locations.json.length * 1;
|
|
149
161
|
}
|
|
150
|
-
|
|
162
|
+
|
|
163
|
+
// Step 3: Merge SQLite databases
|
|
164
|
+
if (locations.sqlite.length > 0) {
|
|
165
|
+
plan.steps.push({
|
|
166
|
+
action: 'merge-sqlite',
|
|
167
|
+
description: 'Merge SQLite databases into unified store',
|
|
168
|
+
sources: locations.sqlite.map((l) => l.path),
|
|
169
|
+
destination: this.primaryLocations.sqlite,
|
|
170
|
+
});
|
|
171
|
+
plan.estimatedTime += locations.sqlite.length * 2;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Step 4: Create indices for performance
|
|
175
|
+
plan.steps.push({
|
|
176
|
+
action: 'optimize',
|
|
177
|
+
description: 'Create indices and optimize unified database',
|
|
178
|
+
destination: this.primaryLocations.sqlite,
|
|
179
|
+
});
|
|
180
|
+
plan.estimatedTime += 1;
|
|
181
|
+
|
|
182
|
+
// Step 5: Update configuration
|
|
183
|
+
plan.steps.push({
|
|
184
|
+
action: 'update-config',
|
|
185
|
+
description: 'Update memory configuration to use unified store',
|
|
186
|
+
config: {
|
|
187
|
+
memoryStore: this.primaryLocations.sqlite,
|
|
188
|
+
backupLocation: this.primaryLocations.backup,
|
|
189
|
+
legacySupport: true,
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
return plan;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
151
197
|
* Execute consolidation plan
|
|
152
|
-
*/
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
results.errors.push(err.message);
|
|
187
|
-
printError(`Failed at step ${results.stepsCompleted + 1}: ${err.message}`);
|
|
198
|
+
*/
|
|
199
|
+
async executeConsolidation(plan, options = {}) {
|
|
200
|
+
const results = {
|
|
201
|
+
success: false,
|
|
202
|
+
stepsCompleted: 0,
|
|
203
|
+
errors: [],
|
|
204
|
+
backupPath: null,
|
|
205
|
+
newStorePath: null,
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
try {
|
|
209
|
+
for (const step of plan.steps) {
|
|
210
|
+
printInfo(`Executing: ${step.description}`);
|
|
211
|
+
|
|
212
|
+
switch (step.action) {
|
|
213
|
+
case 'backup':
|
|
214
|
+
results.backupPath = await this.createBackups(step.sources, step.destination);
|
|
215
|
+
break;
|
|
216
|
+
|
|
217
|
+
case 'convert-json':
|
|
218
|
+
await this.convertJsonToSqlite(step.sources, step.destination);
|
|
219
|
+
break;
|
|
220
|
+
|
|
221
|
+
case 'merge-sqlite':
|
|
222
|
+
await this.mergeSqliteDatabases(step.sources, step.destination);
|
|
223
|
+
break;
|
|
224
|
+
|
|
225
|
+
case 'optimize':
|
|
226
|
+
await this.optimizeDatabase(step.destination);
|
|
227
|
+
break;
|
|
228
|
+
|
|
229
|
+
case 'update-config':
|
|
230
|
+
await this.updateConfiguration(step.config);
|
|
231
|
+
break;
|
|
188
232
|
}
|
|
189
|
-
|
|
233
|
+
|
|
234
|
+
results.stepsCompleted++;
|
|
235
|
+
printSuccess(`ā ${step.description}`);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
results.success = true;
|
|
239
|
+
results.newStorePath = this.primaryLocations.sqlite;
|
|
240
|
+
} catch (err) {
|
|
241
|
+
results.errors.push(err.message);
|
|
242
|
+
printError(`Failed at step ${results.stepsCompleted + 1}: ${err.message}`);
|
|
190
243
|
}
|
|
191
|
-
|
|
244
|
+
|
|
245
|
+
return results;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
192
249
|
* Create backups of all memory stores
|
|
193
|
-
*/
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
return backupPath;
|
|
250
|
+
*/
|
|
251
|
+
async createBackups(sources, backupDir) {
|
|
252
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
253
|
+
const backupPath = path.join(backupDir, `backup-${timestamp}`);
|
|
254
|
+
|
|
255
|
+
await fs.mkdir(backupPath, { recursive: true });
|
|
256
|
+
|
|
257
|
+
for (const source of sources) {
|
|
258
|
+
if (existsSync(source)) {
|
|
259
|
+
const filename = path.basename(source);
|
|
260
|
+
const dest = path.join(backupPath, filename);
|
|
261
|
+
await fs.copyFile(source, dest);
|
|
262
|
+
}
|
|
207
263
|
}
|
|
208
|
-
|
|
264
|
+
|
|
265
|
+
return backupPath;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
209
269
|
* Convert JSON memory stores to SQLite
|
|
210
|
-
*/
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
270
|
+
*/
|
|
271
|
+
async convertJsonToSqlite(jsonFiles, dbPath) {
|
|
272
|
+
if (!sqlite3 || !sqliteOpen) {
|
|
273
|
+
throw new Error('SQLite modules not available. Install sqlite3 and sqlite packages.');
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
await fs.mkdir(path.dirname(dbPath), { recursive: true });
|
|
277
|
+
|
|
278
|
+
const db = await sqliteOpen({
|
|
279
|
+
filename: dbPath,
|
|
280
|
+
driver: sqlite3.Database,
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
// Create unified schema
|
|
284
|
+
await db.exec(`
|
|
223
285
|
CREATE TABLE IF NOT EXISTS memory_entries (
|
|
224
286
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
225
287
|
key TEXT NOT NULL,
|
|
@@ -234,53 +296,72 @@ async function loadSqliteModules() {
|
|
|
234
296
|
CREATE INDEX IF NOT EXISTS idx_timestamp ON memory_entries(timestamp);
|
|
235
297
|
CREATE INDEX IF NOT EXISTS idx_key ON memory_entries(key);
|
|
236
298
|
`);
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
299
|
+
|
|
300
|
+
// Import each JSON file
|
|
301
|
+
for (const jsonFile of jsonFiles) {
|
|
302
|
+
if (!existsSync(jsonFile)) continue;
|
|
303
|
+
|
|
304
|
+
try {
|
|
305
|
+
const content = await fs.readFile(jsonFile, 'utf8');
|
|
306
|
+
const data = JSON.parse(content);
|
|
307
|
+
|
|
308
|
+
const stmt = await db.prepare(`
|
|
244
309
|
INSERT OR REPLACE INTO memory_entries (key, value, namespace, timestamp, source)
|
|
245
310
|
VALUES (?, ?, ?, ?, ?)
|
|
246
311
|
`);
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
312
|
+
|
|
313
|
+
for (const [namespace, entries] of Object.entries(data)) {
|
|
314
|
+
for (const entry of entries) {
|
|
315
|
+
await stmt.run(
|
|
316
|
+
entry.key,
|
|
317
|
+
entry.value,
|
|
318
|
+
entry.namespace || namespace,
|
|
319
|
+
entry.timestamp,
|
|
320
|
+
jsonFile,
|
|
321
|
+
);
|
|
322
|
+
}
|
|
256
323
|
}
|
|
257
|
-
|
|
324
|
+
|
|
325
|
+
await stmt.finalize();
|
|
326
|
+
} catch (err) {
|
|
327
|
+
printWarning(`Failed to import ${jsonFile}: ${err.message}`);
|
|
328
|
+
}
|
|
258
329
|
}
|
|
259
|
-
|
|
330
|
+
|
|
331
|
+
await db.close();
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/**
|
|
260
335
|
* Merge multiple SQLite databases
|
|
261
|
-
*/
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
336
|
+
*/
|
|
337
|
+
async mergeSqliteDatabases(dbFiles, targetDb) {
|
|
338
|
+
if (!sqlite3 || !sqliteOpen) {
|
|
339
|
+
throw new Error('SQLite modules not available. Install sqlite3 and sqlite packages.');
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
const db = await sqliteOpen({
|
|
343
|
+
filename: targetDb,
|
|
344
|
+
driver: sqlite3.Database,
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
for (const dbFile of dbFiles) {
|
|
348
|
+
if (!existsSync(dbFile) || dbFile === targetDb) continue;
|
|
349
|
+
|
|
350
|
+
try {
|
|
351
|
+
// Attach the source database
|
|
352
|
+
const alias = `db_${path.basename(dbFile, '.db')}`;
|
|
353
|
+
await db.exec(`ATTACH DATABASE '${dbFile}' AS ${alias}`);
|
|
354
|
+
|
|
355
|
+
// Get tables from source database
|
|
356
|
+
const tables = await db.all(`
|
|
277
357
|
SELECT name FROM ${alias}.sqlite_master
|
|
278
358
|
WHERE type='table' AND name LIKE '%memory%'
|
|
279
359
|
`);
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
360
|
+
|
|
361
|
+
// Copy data from each memory-related table
|
|
362
|
+
for (const table of tables) {
|
|
363
|
+
try {
|
|
364
|
+
await db.exec(`
|
|
284
365
|
INSERT OR IGNORE INTO memory_entries (key, value, namespace, timestamp, source)
|
|
285
366
|
SELECT
|
|
286
367
|
COALESCE(key, ''),
|
|
@@ -291,29 +372,35 @@ async function loadSqliteModules() {
|
|
|
291
372
|
FROM ${alias}.${table.name}
|
|
292
373
|
WHERE key IS NOT NULL AND value IS NOT NULL
|
|
293
374
|
`);
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
}
|
|
298
|
-
await db.exec(`DETACH DATABASE ${alias}`);
|
|
299
|
-
} catch (err) {
|
|
300
|
-
printWarning(`Failed to merge ${dbFile}: ${err.message}`);
|
|
301
|
-
}
|
|
375
|
+
} catch (err) {
|
|
376
|
+
// Table structure might be different, skip
|
|
377
|
+
}
|
|
302
378
|
}
|
|
303
|
-
|
|
379
|
+
|
|
380
|
+
await db.exec(`DETACH DATABASE ${alias}`);
|
|
381
|
+
} catch (err) {
|
|
382
|
+
printWarning(`Failed to merge ${dbFile}: ${err.message}`);
|
|
383
|
+
}
|
|
304
384
|
}
|
|
305
|
-
|
|
385
|
+
|
|
386
|
+
await db.close();
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
/**
|
|
306
390
|
* Optimize the unified database
|
|
307
|
-
*/
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
391
|
+
*/
|
|
392
|
+
async optimizeDatabase(dbPath) {
|
|
393
|
+
if (!sqlite3 || !sqliteOpen) {
|
|
394
|
+
throw new Error('SQLite modules not available. Install sqlite3 and sqlite packages.');
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
const db = await sqliteOpen({
|
|
398
|
+
filename: dbPath,
|
|
399
|
+
driver: sqlite3.Database,
|
|
400
|
+
});
|
|
401
|
+
|
|
402
|
+
// Add performance optimizations
|
|
403
|
+
await db.exec(`
|
|
317
404
|
-- Enable Write-Ahead Logging for better performance
|
|
318
405
|
PRAGMA journal_mode = WAL;
|
|
319
406
|
PRAGMA synchronous = NORMAL;
|
|
@@ -326,195 +413,219 @@ async function loadSqliteModules() {
|
|
|
326
413
|
CREATE INDEX IF NOT EXISTS idx_key_value ON memory_entries(key, value);
|
|
327
414
|
CREATE INDEX IF NOT EXISTS idx_namespace_timestamp ON memory_entries(namespace, timestamp);
|
|
328
415
|
`);
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
416
|
+
|
|
417
|
+
await db.close();
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/**
|
|
332
421
|
* Update configuration to use unified store
|
|
333
|
-
*/
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
// Note: We don't create actual symlinks to SQLite as JSON/SQLite formats differ
|
|
347
|
-
// Instead, the memory manager will check the config and use the unified store
|
|
348
|
-
} catch (err) {
|
|
349
|
-
// Ignore symlink errors
|
|
350
|
-
}
|
|
422
|
+
*/
|
|
423
|
+
async updateConfiguration(config) {
|
|
424
|
+
const configPath = './.claude-flow/memory-config.json';
|
|
425
|
+
|
|
426
|
+
await fs.mkdir(path.dirname(configPath), { recursive: true });
|
|
427
|
+
await fs.writeFile(configPath, JSON.stringify(config, null, 2));
|
|
428
|
+
|
|
429
|
+
// Create symlinks for backward compatibility
|
|
430
|
+
if (config.legacySupport) {
|
|
431
|
+
try {
|
|
432
|
+
// Create symlink from old JSON location to new
|
|
433
|
+
if (existsSync('./memory/memory-store.json')) {
|
|
434
|
+
await fs.rename('./memory/memory-store.json', './memory/memory-store.json.old');
|
|
351
435
|
}
|
|
436
|
+
// Note: We don't create actual symlinks to SQLite as JSON/SQLite formats differ
|
|
437
|
+
// Instead, the memory manager will check the config and use the unified store
|
|
438
|
+
} catch (err) {
|
|
439
|
+
// Ignore symlink errors
|
|
440
|
+
}
|
|
352
441
|
}
|
|
353
|
-
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
354
445
|
* Generate consolidation report
|
|
355
|
-
*/
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
report.push(` ⢠Success: ${executionResults.success ? 'Yes' : 'No'}`);
|
|
371
|
-
report.push(` ⢠Steps completed: ${executionResults.stepsCompleted}/${plan.steps.length}`);
|
|
372
|
-
if (executionResults.backupPath) {
|
|
373
|
-
report.push(` ⢠Backup location: ${executionResults.backupPath}`);
|
|
374
|
-
}
|
|
375
|
-
if (executionResults.newStorePath) {
|
|
376
|
-
report.push(` ⢠Unified store: ${executionResults.newStorePath}`);
|
|
377
|
-
}
|
|
378
|
-
if (executionResults.errors.length > 0) {
|
|
379
|
-
report.push('\nā Errors:');
|
|
380
|
-
for (const error of executionResults.errors){
|
|
381
|
-
report.push(` ⢠${error}`);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
return report.join('\n');
|
|
446
|
+
*/
|
|
447
|
+
generateReport(scanResults, plan, executionResults) {
|
|
448
|
+
const report = [];
|
|
449
|
+
|
|
450
|
+
report.push('š Memory Consolidation Report');
|
|
451
|
+
report.push('================================\n');
|
|
452
|
+
|
|
453
|
+
report.push('š Discovered Memory Stores:');
|
|
454
|
+
report.push(` ⢠JSON files: ${scanResults.json.length}`);
|
|
455
|
+
report.push(` ⢠SQLite databases: ${scanResults.sqlite.length}`);
|
|
456
|
+
report.push(` ⢠Total size: ${(scanResults.sizeBytes / 1024 / 1024).toFixed(2)} MB\n`);
|
|
457
|
+
|
|
458
|
+
report.push('š Consolidation Plan:');
|
|
459
|
+
for (const step of plan.steps) {
|
|
460
|
+
report.push(` ā ${step.description}`);
|
|
386
461
|
}
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
462
|
+
report.push(` ⢠Estimated time: ${plan.estimatedTime} seconds\n`);
|
|
463
|
+
|
|
464
|
+
if (executionResults) {
|
|
465
|
+
report.push('ā
Execution Results:');
|
|
466
|
+
report.push(` ⢠Success: ${executionResults.success ? 'Yes' : 'No'}`);
|
|
467
|
+
report.push(` ⢠Steps completed: ${executionResults.stepsCompleted}/${plan.steps.length}`);
|
|
468
|
+
|
|
469
|
+
if (executionResults.backupPath) {
|
|
470
|
+
report.push(` ⢠Backup location: ${executionResults.backupPath}`);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
if (executionResults.newStorePath) {
|
|
474
|
+
report.push(` ⢠Unified store: ${executionResults.newStorePath}`);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
if (executionResults.errors.length > 0) {
|
|
478
|
+
report.push('\nā Errors:');
|
|
479
|
+
for (const error of executionResults.errors) {
|
|
480
|
+
report.push(` ⢠${error}`);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
407
483
|
}
|
|
484
|
+
|
|
485
|
+
return report.join('\n');
|
|
486
|
+
}
|
|
408
487
|
}
|
|
488
|
+
|
|
409
489
|
/**
|
|
410
490
|
* Memory consolidation command
|
|
411
|
-
*/
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
491
|
+
*/
|
|
492
|
+
export async function memoryConsolidationCommand(subArgs, flags) {
|
|
493
|
+
// Load SQLite modules if available
|
|
494
|
+
const sqliteAvailable = await loadSqliteModules();
|
|
495
|
+
|
|
496
|
+
const consolidator = new MemoryConsolidator();
|
|
497
|
+
const action = subArgs[0];
|
|
498
|
+
|
|
499
|
+
switch (action) {
|
|
500
|
+
case 'scan':
|
|
501
|
+
await scanMemoryStores(consolidator);
|
|
502
|
+
break;
|
|
503
|
+
|
|
504
|
+
case 'plan':
|
|
505
|
+
await createConsolidationPlan(consolidator);
|
|
506
|
+
break;
|
|
507
|
+
|
|
508
|
+
case 'execute':
|
|
509
|
+
await executeConsolidation(consolidator, flags);
|
|
510
|
+
break;
|
|
511
|
+
|
|
512
|
+
case 'report':
|
|
513
|
+
await generateConsolidationReport(consolidator);
|
|
514
|
+
break;
|
|
515
|
+
|
|
516
|
+
default:
|
|
517
|
+
showConsolidationHelp();
|
|
518
|
+
}
|
|
432
519
|
}
|
|
520
|
+
|
|
433
521
|
async function scanMemoryStores(consolidator) {
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
522
|
+
printInfo('Scanning for memory storage locations...');
|
|
523
|
+
|
|
524
|
+
const results = await consolidator.scanMemoryLocations();
|
|
525
|
+
|
|
526
|
+
printSuccess(`Found ${results.total} memory storage locations:`);
|
|
527
|
+
|
|
528
|
+
if (results.json.length > 0) {
|
|
529
|
+
console.log('\nš JSON Stores:');
|
|
530
|
+
for (const store of results.json) {
|
|
531
|
+
console.log(` ⢠${store.path} (${(store.size / 1024).toFixed(1)} KB)`);
|
|
442
532
|
}
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
if (results.sqlite.length > 0) {
|
|
536
|
+
console.log('\nšļø SQLite Databases:');
|
|
537
|
+
for (const db of results.sqlite) {
|
|
538
|
+
console.log(` ⢠${db.path} (${(db.size / 1024).toFixed(1)} KB)`);
|
|
448
539
|
}
|
|
449
|
-
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
console.log(`\nš¾ Total size: ${(results.sizeBytes / 1024 / 1024).toFixed(2)} MB`);
|
|
450
543
|
}
|
|
544
|
+
|
|
451
545
|
async function createConsolidationPlan(consolidator) {
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
546
|
+
const scanResults = await consolidator.scanMemoryLocations();
|
|
547
|
+
const plan = await consolidator.createConsolidationPlan(scanResults);
|
|
548
|
+
|
|
549
|
+
printSuccess('š Consolidation Plan Created:');
|
|
550
|
+
|
|
551
|
+
for (let i = 0; i < plan.steps.length; i++) {
|
|
552
|
+
const step = plan.steps[i];
|
|
553
|
+
console.log(`\n${i + 1}. ${step.description}`);
|
|
554
|
+
|
|
555
|
+
if (step.sources) {
|
|
556
|
+
console.log(' Sources:');
|
|
557
|
+
for (const source of step.sources) {
|
|
558
|
+
console.log(` ⢠${source}`);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
if (step.destination) {
|
|
563
|
+
console.log(` Destination: ${step.destination}`);
|
|
467
564
|
}
|
|
468
|
-
|
|
469
|
-
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
console.log(`\nā±ļø Estimated time: ${plan.estimatedTime} seconds`);
|
|
568
|
+
console.log('\nRun "memory-consolidate execute" to perform consolidation');
|
|
470
569
|
}
|
|
570
|
+
|
|
471
571
|
async function executeConsolidation(consolidator, flags) {
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
572
|
+
const sqliteAvailable = await loadSqliteModules();
|
|
573
|
+
|
|
574
|
+
if (!sqliteAvailable) {
|
|
575
|
+
printError('SQLite modules not available.');
|
|
576
|
+
printInfo('Install required packages: npm install sqlite3 sqlite');
|
|
577
|
+
return;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
const scanResults = await consolidator.scanMemoryLocations();
|
|
581
|
+
|
|
582
|
+
if (scanResults.total === 0) {
|
|
583
|
+
printWarning('No memory stores found to consolidate');
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
const plan = await consolidator.createConsolidationPlan(scanResults);
|
|
588
|
+
|
|
589
|
+
if (!flags.force) {
|
|
590
|
+
printWarning('This will consolidate all memory stores into a unified database.');
|
|
591
|
+
printWarning('A backup will be created before any changes are made.');
|
|
592
|
+
console.log('\nUse --force flag to proceed without confirmation');
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
printInfo('Starting memory consolidation...');
|
|
597
|
+
const results = await consolidator.executeConsolidation(plan);
|
|
598
|
+
|
|
599
|
+
const report = consolidator.generateReport(scanResults, plan, results);
|
|
600
|
+
console.log('\n' + report);
|
|
601
|
+
|
|
602
|
+
if (results.success) {
|
|
603
|
+
printSuccess('\nā
Memory consolidation completed successfully!');
|
|
604
|
+
console.log(`Unified store location: ${results.newStorePath}`);
|
|
605
|
+
} else {
|
|
606
|
+
printError('\nā Memory consolidation failed');
|
|
607
|
+
console.log('Check the errors above and try again');
|
|
608
|
+
}
|
|
501
609
|
}
|
|
610
|
+
|
|
502
611
|
async function generateConsolidationReport(consolidator) {
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
612
|
+
const scanResults = await consolidator.scanMemoryLocations();
|
|
613
|
+
const plan = await consolidator.createConsolidationPlan(scanResults);
|
|
614
|
+
|
|
615
|
+
const report = consolidator.generateReport(scanResults, plan);
|
|
616
|
+
console.log(report);
|
|
507
617
|
}
|
|
618
|
+
|
|
508
619
|
function showConsolidationHelp() {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
620
|
+
console.log('Memory consolidation commands:');
|
|
621
|
+
console.log(' scan Scan for all memory storage locations');
|
|
622
|
+
console.log(' plan Create a consolidation plan');
|
|
623
|
+
console.log(' execute Execute the consolidation (use --force to skip confirmation)');
|
|
624
|
+
console.log(' report Generate a consolidation report');
|
|
625
|
+
console.log();
|
|
626
|
+
console.log('Examples:');
|
|
627
|
+
console.log(' memory-consolidate scan');
|
|
628
|
+
console.log(' memory-consolidate plan');
|
|
629
|
+
console.log(' memory-consolidate execute --force');
|
|
630
|
+
console.log(' memory-consolidate report');
|
|
520
631
|
}
|