@stackmemoryai/stackmemory 0.5.59 → 0.5.61
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/README.md +105 -1
- package/dist/src/cli/claude-sm.js +130 -50
- package/dist/src/cli/claude-sm.js.map +2 -2
- package/dist/src/cli/index.js +18 -3
- package/dist/src/cli/index.js.map +3 -3
- package/dist/src/core/extensions/custom-tools.js +567 -0
- package/dist/src/core/extensions/custom-tools.js.map +7 -0
- package/dist/src/core/extensions/index.js +55 -0
- package/dist/src/core/extensions/index.js.map +7 -0
- package/dist/src/core/extensions/loader.js +709 -0
- package/dist/src/core/extensions/loader.js.map +7 -0
- package/dist/src/core/extensions/plugin-system.js +506 -0
- package/dist/src/core/extensions/plugin-system.js.map +7 -0
- package/dist/src/core/extensions/provider-adapter.js +617 -0
- package/dist/src/core/extensions/provider-adapter.js.map +7 -0
- package/dist/src/core/extensions/sandbox-runtime.js +664 -0
- package/dist/src/core/extensions/sandbox-runtime.js.map +7 -0
- package/dist/src/core/storage/chromadb-adapter.js +32 -6
- package/dist/src/core/storage/chromadb-adapter.js.map +2 -2
- package/dist/src/skills/repo-ingestion-skill.js +35 -12
- package/dist/src/skills/repo-ingestion-skill.js.map +2 -2
- package/package.json +11 -7
- package/scripts/background-sync-manager.js +145 -83
- package/scripts/claude-sm-autostart.js +17 -12
- package/scripts/gepa/README.md +275 -0
- package/scripts/gepa/config.json +53 -0
- package/scripts/gepa/evals/coding-tasks.jsonl +5 -0
- package/scripts/gepa/evals/fixtures/buggy-loop.js +18 -0
- package/scripts/gepa/evals/fixtures/callback-hell.js +53 -0
- package/scripts/gepa/generations/gen-000/baseline.md +124 -0
- package/scripts/gepa/hooks/auto-optimize.js +494 -0
- package/scripts/gepa/hooks/eval-tracker.js +203 -0
- package/scripts/gepa/hooks/reflect.js +311 -0
- package/scripts/gepa/optimize.js +611 -0
- package/scripts/gepa/state.json +14 -0
- package/scripts/test-pre-publish-quick.sh +1 -1
- package/dist/agents/core/agent-task-manager.js +0 -527
- package/dist/agents/core/agent-task-manager.js.map +0 -7
- package/dist/agents/testing-agent.js +0 -614
- package/dist/agents/testing-agent.js.map +0 -7
- package/dist/agents/verifiers/base-verifier.js +0 -133
- package/dist/agents/verifiers/base-verifier.js.map +0 -7
- package/dist/agents/verifiers/formatter-verifier.js +0 -130
- package/dist/agents/verifiers/formatter-verifier.js.map +0 -7
- package/dist/agents/verifiers/llm-judge.js +0 -252
- package/dist/agents/verifiers/llm-judge.js.map +0 -7
- package/dist/cli/auto-detect.js +0 -321
- package/dist/cli/auto-detect.js.map +0 -7
- package/dist/cli/browser-test.js +0 -33
- package/dist/cli/browser-test.js.map +0 -7
- package/dist/cli/claude-sm-danger.js +0 -21
- package/dist/cli/claude-sm-danger.js.map +0 -7
- package/dist/cli/claude-sm.js +0 -1156
- package/dist/cli/claude-sm.js.map +0 -7
- package/dist/cli/codex-sm-danger.js +0 -21
- package/dist/cli/codex-sm-danger.js.map +0 -7
- package/dist/cli/codex-sm.js +0 -349
- package/dist/cli/codex-sm.js.map +0 -7
- package/dist/cli/commands/api.js +0 -232
- package/dist/cli/commands/api.js.map +0 -7
- package/dist/cli/commands/auto-background.js +0 -180
- package/dist/cli/commands/auto-background.js.map +0 -7
- package/dist/cli/commands/cleanup-processes.js +0 -68
- package/dist/cli/commands/cleanup-processes.js.map +0 -7
- package/dist/cli/commands/clear.js +0 -202
- package/dist/cli/commands/clear.js.map +0 -7
- package/dist/cli/commands/config.js +0 -445
- package/dist/cli/commands/config.js.map +0 -7
- package/dist/cli/commands/context-rehydrate.js +0 -751
- package/dist/cli/commands/context-rehydrate.js.map +0 -7
- package/dist/cli/commands/context.js +0 -343
- package/dist/cli/commands/context.js.map +0 -7
- package/dist/cli/commands/daemon.js +0 -392
- package/dist/cli/commands/daemon.js.map +0 -7
- package/dist/cli/commands/dashboard.js +0 -210
- package/dist/cli/commands/dashboard.js.map +0 -7
- package/dist/cli/commands/db.js +0 -147
- package/dist/cli/commands/db.js.map +0 -7
- package/dist/cli/commands/decision.js +0 -266
- package/dist/cli/commands/decision.js.map +0 -7
- package/dist/cli/commands/discovery.js +0 -279
- package/dist/cli/commands/discovery.js.map +0 -7
- package/dist/cli/commands/handoff.js +0 -624
- package/dist/cli/commands/handoff.js.map +0 -7
- package/dist/cli/commands/hooks.js +0 -298
- package/dist/cli/commands/hooks.js.map +0 -7
- package/dist/cli/commands/linear-unified.js +0 -353
- package/dist/cli/commands/linear-unified.js.map +0 -7
- package/dist/cli/commands/linear.js +0 -529
- package/dist/cli/commands/linear.js.map +0 -7
- package/dist/cli/commands/log.js +0 -169
- package/dist/cli/commands/log.js.map +0 -7
- package/dist/cli/commands/login.js +0 -172
- package/dist/cli/commands/login.js.map +0 -7
- package/dist/cli/commands/migrate.js +0 -240
- package/dist/cli/commands/migrate.js.map +0 -7
- package/dist/cli/commands/model.js +0 -533
- package/dist/cli/commands/model.js.map +0 -7
- package/dist/cli/commands/monitor.js +0 -313
- package/dist/cli/commands/monitor.js.map +0 -7
- package/dist/cli/commands/onboard.js +0 -536
- package/dist/cli/commands/onboard.js.map +0 -7
- package/dist/cli/commands/projects.js +0 -199
- package/dist/cli/commands/projects.js.map +0 -7
- package/dist/cli/commands/quality.js +0 -413
- package/dist/cli/commands/quality.js.map +0 -7
- package/dist/cli/commands/ralph.js +0 -909
- package/dist/cli/commands/ralph.js.map +0 -7
- package/dist/cli/commands/retrieval.js +0 -248
- package/dist/cli/commands/retrieval.js.map +0 -7
- package/dist/cli/commands/search.js +0 -173
- package/dist/cli/commands/search.js.map +0 -7
- package/dist/cli/commands/service.js +0 -749
- package/dist/cli/commands/service.js.map +0 -7
- package/dist/cli/commands/session.js +0 -200
- package/dist/cli/commands/session.js.map +0 -7
- package/dist/cli/commands/settings.js +0 -306
- package/dist/cli/commands/settings.js.map +0 -7
- package/dist/cli/commands/setup.js +0 -701
- package/dist/cli/commands/setup.js.map +0 -7
- package/dist/cli/commands/shell.js +0 -249
- package/dist/cli/commands/shell.js.map +0 -7
- package/dist/cli/commands/signup.js +0 -50
- package/dist/cli/commands/signup.js.map +0 -7
- package/dist/cli/commands/skills.js +0 -470
- package/dist/cli/commands/skills.js.map +0 -7
- package/dist/cli/commands/sms-notify.js +0 -795
- package/dist/cli/commands/sms-notify.js.map +0 -7
- package/dist/cli/commands/storage-tier.js +0 -183
- package/dist/cli/commands/storage-tier.js.map +0 -7
- package/dist/cli/commands/storage.js +0 -360
- package/dist/cli/commands/storage.js.map +0 -7
- package/dist/cli/commands/sweep.js +0 -249
- package/dist/cli/commands/sweep.js.map +0 -7
- package/dist/cli/commands/tasks.js +0 -213
- package/dist/cli/commands/tasks.js.map +0 -7
- package/dist/cli/commands/test.js +0 -286
- package/dist/cli/commands/test.js.map +0 -7
- package/dist/cli/commands/workflow.js +0 -142
- package/dist/cli/commands/workflow.js.map +0 -7
- package/dist/cli/commands/worktree.js +0 -319
- package/dist/cli/commands/worktree.js.map +0 -7
- package/dist/cli/index.js +0 -594
- package/dist/cli/index.js.map +0 -7
- package/dist/cli/opencode-sm.js +0 -448
- package/dist/cli/opencode-sm.js.map +0 -7
- package/dist/cli/utils/viewer.js +0 -96
- package/dist/cli/utils/viewer.js.map +0 -7
- package/dist/core/analytics/team-analytics.js +0 -378
- package/dist/core/analytics/team-analytics.js.map +0 -7
- package/dist/core/config/config-manager.js +0 -398
- package/dist/core/config/config-manager.js.map +0 -7
- package/dist/core/config/feature-flags.js +0 -76
- package/dist/core/config/feature-flags.js.map +0 -7
- package/dist/core/config/storage-config.js +0 -115
- package/dist/core/config/storage-config.js.map +0 -7
- package/dist/core/config/types.js +0 -144
- package/dist/core/config/types.js.map +0 -7
- package/dist/core/context/auto-context.js +0 -80
- package/dist/core/context/auto-context.js.map +0 -7
- package/dist/core/context/dual-stack-manager.js +0 -870
- package/dist/core/context/dual-stack-manager.js.map +0 -7
- package/dist/core/context/enhanced-rehydration.js +0 -994
- package/dist/core/context/enhanced-rehydration.js.map +0 -7
- package/dist/core/context/frame-database.js +0 -479
- package/dist/core/context/frame-database.js.map +0 -7
- package/dist/core/context/frame-digest.js +0 -250
- package/dist/core/context/frame-digest.js.map +0 -7
- package/dist/core/context/frame-handoff-manager.js +0 -778
- package/dist/core/context/frame-handoff-manager.js.map +0 -7
- package/dist/core/context/frame-lifecycle-hooks.js +0 -119
- package/dist/core/context/frame-lifecycle-hooks.js.map +0 -7
- package/dist/core/context/frame-manager.js +0 -1069
- package/dist/core/context/frame-manager.js.map +0 -7
- package/dist/core/context/frame-recovery.js +0 -302
- package/dist/core/context/frame-recovery.js.map +0 -7
- package/dist/core/context/frame-stack.js +0 -314
- package/dist/core/context/frame-stack.js.map +0 -7
- package/dist/core/context/frame-types.js +0 -5
- package/dist/core/context/frame-types.js.map +0 -7
- package/dist/core/context/incremental-gc.js +0 -290
- package/dist/core/context/incremental-gc.js.map +0 -7
- package/dist/core/context/index.js +0 -25
- package/dist/core/context/index.js.map +0 -7
- package/dist/core/context/model-aware-compaction.js +0 -623
- package/dist/core/context/model-aware-compaction.js.map +0 -7
- package/dist/core/context/permission-manager.js +0 -185
- package/dist/core/context/permission-manager.js.map +0 -7
- package/dist/core/context/recursive-context-manager.js +0 -592
- package/dist/core/context/recursive-context-manager.js.map +0 -7
- package/dist/core/context/refactored-frame-manager.js +0 -754
- package/dist/core/context/refactored-frame-manager.js.map +0 -7
- package/dist/core/context/shared-context-layer.js +0 -621
- package/dist/core/context/shared-context-layer.js.map +0 -7
- package/dist/core/context/stack-merge-resolver.js +0 -749
- package/dist/core/context/stack-merge-resolver.js.map +0 -7
- package/dist/core/context/validation.js +0 -130
- package/dist/core/context/validation.js.map +0 -7
- package/dist/core/database/batch-operations.js +0 -384
- package/dist/core/database/batch-operations.js.map +0 -7
- package/dist/core/database/connection-pool.js +0 -330
- package/dist/core/database/connection-pool.js.map +0 -7
- package/dist/core/database/database-adapter.js +0 -60
- package/dist/core/database/database-adapter.js.map +0 -7
- package/dist/core/database/migration-manager.js +0 -614
- package/dist/core/database/migration-manager.js.map +0 -7
- package/dist/core/database/paradedb-adapter.js +0 -990
- package/dist/core/database/paradedb-adapter.js.map +0 -7
- package/dist/core/database/query-cache.js +0 -298
- package/dist/core/database/query-cache.js.map +0 -7
- package/dist/core/database/query-router.js +0 -430
- package/dist/core/database/query-router.js.map +0 -7
- package/dist/core/database/sqlite-adapter.js +0 -738
- package/dist/core/database/sqlite-adapter.js.map +0 -7
- package/dist/core/digest/enhanced-hybrid-digest.js +0 -277
- package/dist/core/digest/enhanced-hybrid-digest.js.map +0 -7
- package/dist/core/digest/frame-digest-integration.js +0 -176
- package/dist/core/digest/frame-digest-integration.js.map +0 -7
- package/dist/core/digest/hybrid-digest-generator.js +0 -553
- package/dist/core/digest/hybrid-digest-generator.js.map +0 -7
- package/dist/core/digest/index.js +0 -9
- package/dist/core/digest/index.js.map +0 -7
- package/dist/core/digest/types.js +0 -25
- package/dist/core/digest/types.js.map +0 -7
- package/dist/core/errors/error-utils.js +0 -208
- package/dist/core/errors/error-utils.js.map +0 -7
- package/dist/core/errors/index.js +0 -521
- package/dist/core/errors/index.js.map +0 -7
- package/dist/core/errors/recovery.js +0 -269
- package/dist/core/errors/recovery.js.map +0 -7
- package/dist/core/execution/parallel-executor.js +0 -258
- package/dist/core/execution/parallel-executor.js.map +0 -7
- package/dist/core/frame/workflow-templates.js +0 -319
- package/dist/core/frame/workflow-templates.js.map +0 -7
- package/dist/core/merge/conflict-detector.js +0 -431
- package/dist/core/merge/conflict-detector.js.map +0 -7
- package/dist/core/merge/index.js +0 -9
- package/dist/core/merge/index.js.map +0 -7
- package/dist/core/merge/resolution-engine.js +0 -558
- package/dist/core/merge/resolution-engine.js.map +0 -7
- package/dist/core/merge/stack-diff.js +0 -532
- package/dist/core/merge/stack-diff.js.map +0 -7
- package/dist/core/merge/unified-merge-resolver.js +0 -303
- package/dist/core/merge/unified-merge-resolver.js.map +0 -7
- package/dist/core/models/fallback-monitor.js +0 -232
- package/dist/core/models/fallback-monitor.js.map +0 -7
- package/dist/core/models/model-router.js +0 -340
- package/dist/core/models/model-router.js.map +0 -7
- package/dist/core/monitoring/error-handler.js +0 -49
- package/dist/core/monitoring/error-handler.js.map +0 -7
- package/dist/core/monitoring/logger.js +0 -202
- package/dist/core/monitoring/logger.js.map +0 -7
- package/dist/core/monitoring/metrics.js +0 -172
- package/dist/core/monitoring/metrics.js.map +0 -7
- package/dist/core/monitoring/progress-tracker.js +0 -189
- package/dist/core/monitoring/progress-tracker.js.map +0 -7
- package/dist/core/monitoring/session-monitor.js +0 -300
- package/dist/core/monitoring/session-monitor.js.map +0 -7
- package/dist/core/performance/context-cache.js +0 -273
- package/dist/core/performance/context-cache.js.map +0 -7
- package/dist/core/performance/index.js +0 -11
- package/dist/core/performance/index.js.map +0 -7
- package/dist/core/performance/lazy-context-loader.js +0 -327
- package/dist/core/performance/lazy-context-loader.js.map +0 -7
- package/dist/core/performance/monitor.js +0 -221
- package/dist/core/performance/monitor.js.map +0 -7
- package/dist/core/performance/optimized-frame-context.js +0 -345
- package/dist/core/performance/optimized-frame-context.js.map +0 -7
- package/dist/core/performance/performance-benchmark.js +0 -277
- package/dist/core/performance/performance-benchmark.js.map +0 -7
- package/dist/core/performance/performance-profiler.js +0 -370
- package/dist/core/performance/performance-profiler.js.map +0 -7
- package/dist/core/performance/streaming-jsonl-parser.js +0 -195
- package/dist/core/performance/streaming-jsonl-parser.js.map +0 -7
- package/dist/core/persistence/postgres-adapter.js +0 -349
- package/dist/core/persistence/postgres-adapter.js.map +0 -7
- package/dist/core/projects/project-isolation.js +0 -201
- package/dist/core/projects/project-isolation.js.map +0 -7
- package/dist/core/projects/project-manager.js +0 -697
- package/dist/core/projects/project-manager.js.map +0 -7
- package/dist/core/query/query-parser.js +0 -370
- package/dist/core/query/query-parser.js.map +0 -7
- package/dist/core/query/query-templates.js +0 -321
- package/dist/core/query/query-templates.js.map +0 -7
- package/dist/core/retrieval/context-retriever.js +0 -479
- package/dist/core/retrieval/context-retriever.js.map +0 -7
- package/dist/core/retrieval/graph-retrieval.js +0 -662
- package/dist/core/retrieval/graph-retrieval.js.map +0 -7
- package/dist/core/retrieval/hierarchical-retrieval.js +0 -656
- package/dist/core/retrieval/hierarchical-retrieval.js.map +0 -7
- package/dist/core/retrieval/index.js +0 -8
- package/dist/core/retrieval/index.js.map +0 -7
- package/dist/core/retrieval/llm-context-retrieval.js +0 -613
- package/dist/core/retrieval/llm-context-retrieval.js.map +0 -7
- package/dist/core/retrieval/llm-provider.js +0 -151
- package/dist/core/retrieval/llm-provider.js.map +0 -7
- package/dist/core/retrieval/retrieval-audit.js +0 -236
- package/dist/core/retrieval/retrieval-audit.js.map +0 -7
- package/dist/core/retrieval/retrieval-benchmarks.js +0 -521
- package/dist/core/retrieval/retrieval-benchmarks.js.map +0 -7
- package/dist/core/retrieval/summary-generator.js +0 -589
- package/dist/core/retrieval/summary-generator.js.map +0 -7
- package/dist/core/retrieval/types.js +0 -21
- package/dist/core/retrieval/types.js.map +0 -7
- package/dist/core/security/index.js +0 -35
- package/dist/core/security/index.js.map +0 -7
- package/dist/core/security/input-sanitizer.js +0 -321
- package/dist/core/security/input-sanitizer.js.map +0 -7
- package/dist/core/session/clear-survival.js +0 -465
- package/dist/core/session/clear-survival.js.map +0 -7
- package/dist/core/session/enhanced-handoff.js +0 -792
- package/dist/core/session/enhanced-handoff.js.map +0 -7
- package/dist/core/session/handoff-generator.js +0 -343
- package/dist/core/session/handoff-generator.js.map +0 -7
- package/dist/core/session/index.js +0 -15
- package/dist/core/session/index.js.map +0 -7
- package/dist/core/session/session-manager.js +0 -347
- package/dist/core/session/session-manager.js.map +0 -7
- package/dist/core/skills/index.js +0 -7
- package/dist/core/skills/index.js.map +0 -7
- package/dist/core/skills/skill-storage.js +0 -764
- package/dist/core/skills/skill-storage.js.map +0 -7
- package/dist/core/skills/types.js +0 -193
- package/dist/core/skills/types.js.map +0 -7
- package/dist/core/storage/chromadb-adapter.js +0 -354
- package/dist/core/storage/chromadb-adapter.js.map +0 -7
- package/dist/core/storage/infinite-storage.js +0 -510
- package/dist/core/storage/infinite-storage.js.map +0 -7
- package/dist/core/storage/railway-optimized-storage.js +0 -591
- package/dist/core/storage/railway-optimized-storage.js.map +0 -7
- package/dist/core/storage/remote-storage.js +0 -489
- package/dist/core/storage/remote-storage.js.map +0 -7
- package/dist/core/storage/two-tier-storage.js +0 -766
- package/dist/core/storage/two-tier-storage.js.map +0 -7
- package/dist/core/trace/cli-trace-wrapper.js +0 -132
- package/dist/core/trace/cli-trace-wrapper.js.map +0 -7
- package/dist/core/trace/db-trace-wrapper.js +0 -247
- package/dist/core/trace/db-trace-wrapper.js.map +0 -7
- package/dist/core/trace/debug-trace.js +0 -417
- package/dist/core/trace/debug-trace.js.map +0 -7
- package/dist/core/trace/index.js +0 -109
- package/dist/core/trace/index.js.map +0 -7
- package/dist/core/trace/linear-api-wrapper.js +0 -178
- package/dist/core/trace/linear-api-wrapper.js.map +0 -7
- package/dist/core/trace/trace-demo.js +0 -154
- package/dist/core/trace/trace-demo.js.map +0 -7
- package/dist/core/trace/trace-detector.demo.js +0 -142
- package/dist/core/trace/trace-detector.demo.js.map +0 -7
- package/dist/core/trace/trace-detector.js +0 -528
- package/dist/core/trace/trace-detector.js.map +0 -7
- package/dist/core/trace/trace-store.js +0 -345
- package/dist/core/trace/trace-store.js.map +0 -7
- package/dist/core/trace/types.js +0 -77
- package/dist/core/trace/types.js.map +0 -7
- package/dist/core/types.js +0 -5
- package/dist/core/types.js.map +0 -7
- package/dist/core/utils/async-mutex.js +0 -114
- package/dist/core/utils/async-mutex.js.map +0 -7
- package/dist/core/utils/compression.js +0 -83
- package/dist/core/utils/compression.js.map +0 -7
- package/dist/core/utils/update-checker.js +0 -218
- package/dist/core/utils/update-checker.js.map +0 -7
- package/dist/core/worktree/worktree-manager.js +0 -465
- package/dist/core/worktree/worktree-manager.js.map +0 -7
- package/dist/daemon/daemon-config.js +0 -149
- package/dist/daemon/daemon-config.js.map +0 -7
- package/dist/daemon/services/context-service.js +0 -122
- package/dist/daemon/services/context-service.js.map +0 -7
- package/dist/daemon/services/linear-service.js +0 -136
- package/dist/daemon/services/linear-service.js.map +0 -7
- package/dist/daemon/session-daemon.js +0 -312
- package/dist/daemon/session-daemon.js.map +0 -7
- package/dist/daemon/unified-daemon.js +0 -276
- package/dist/daemon/unified-daemon.js.map +0 -7
- package/dist/features/analytics/api/analytics-api.js +0 -287
- package/dist/features/analytics/api/analytics-api.js.map +0 -7
- package/dist/features/analytics/core/analytics-service.js +0 -282
- package/dist/features/analytics/core/analytics-service.js.map +0 -7
- package/dist/features/analytics/index.js +0 -18
- package/dist/features/analytics/index.js.map +0 -7
- package/dist/features/analytics/queries/metrics-queries.js +0 -277
- package/dist/features/analytics/queries/metrics-queries.js.map +0 -7
- package/dist/features/analytics/types/metrics.js +0 -5
- package/dist/features/analytics/types/metrics.js.map +0 -7
- package/dist/features/browser/browser-mcp.js +0 -492
- package/dist/features/browser/browser-mcp.js.map +0 -7
- package/dist/features/sweep/index.js +0 -20
- package/dist/features/sweep/index.js.map +0 -7
- package/dist/features/sweep/prediction-client.js +0 -155
- package/dist/features/sweep/prediction-client.js.map +0 -7
- package/dist/features/sweep/prompt-builder.js +0 -85
- package/dist/features/sweep/prompt-builder.js.map +0 -7
- package/dist/features/sweep/pty-wrapper.js +0 -171
- package/dist/features/sweep/pty-wrapper.js.map +0 -7
- package/dist/features/sweep/state-watcher.js +0 -87
- package/dist/features/sweep/state-watcher.js.map +0 -7
- package/dist/features/sweep/status-bar.js +0 -88
- package/dist/features/sweep/status-bar.js.map +0 -7
- package/dist/features/sweep/sweep-server-manager.js +0 -226
- package/dist/features/sweep/sweep-server-manager.js.map +0 -7
- package/dist/features/sweep/tab-interceptor.js +0 -38
- package/dist/features/sweep/tab-interceptor.js.map +0 -7
- package/dist/features/sweep/types.js +0 -18
- package/dist/features/sweep/types.js.map +0 -7
- package/dist/features/tasks/linear-task-manager.js +0 -487
- package/dist/features/tasks/linear-task-manager.js.map +0 -7
- package/dist/features/tasks/task-aware-context.js +0 -410
- package/dist/features/tasks/task-aware-context.js.map +0 -7
- package/dist/features/tui/simple-monitor.js +0 -116
- package/dist/features/tui/simple-monitor.js.map +0 -7
- package/dist/features/tui/swarm-monitor.js +0 -648
- package/dist/features/tui/swarm-monitor.js.map +0 -7
- package/dist/features/web/client/stores/task-store.js +0 -26
- package/dist/features/web/client/stores/task-store.js.map +0 -7
- package/dist/features/web/server/index.js +0 -194
- package/dist/features/web/server/index.js.map +0 -7
- package/dist/hooks/auto-background.js +0 -151
- package/dist/hooks/auto-background.js.map +0 -7
- package/dist/hooks/claude-code-whatsapp-hook.js +0 -197
- package/dist/hooks/claude-code-whatsapp-hook.js.map +0 -7
- package/dist/hooks/config.js +0 -150
- package/dist/hooks/config.js.map +0 -7
- package/dist/hooks/daemon.js +0 -364
- package/dist/hooks/daemon.js.map +0 -7
- package/dist/hooks/events.js +0 -58
- package/dist/hooks/events.js.map +0 -7
- package/dist/hooks/index.js +0 -12
- package/dist/hooks/index.js.map +0 -7
- package/dist/hooks/linear-task-picker.js +0 -186
- package/dist/hooks/linear-task-picker.js.map +0 -7
- package/dist/hooks/schemas.js +0 -197
- package/dist/hooks/schemas.js.map +0 -7
- package/dist/hooks/secure-fs.js +0 -49
- package/dist/hooks/secure-fs.js.map +0 -7
- package/dist/hooks/security-logger.js +0 -155
- package/dist/hooks/security-logger.js.map +0 -7
- package/dist/hooks/session-summary.js +0 -222
- package/dist/hooks/session-summary.js.map +0 -7
- package/dist/hooks/sms-action-runner.js +0 -371
- package/dist/hooks/sms-action-runner.js.map +0 -7
- package/dist/hooks/sms-notify.js +0 -506
- package/dist/hooks/sms-notify.js.map +0 -7
- package/dist/hooks/sms-watcher.js +0 -93
- package/dist/hooks/sms-watcher.js.map +0 -7
- package/dist/hooks/sms-webhook.js +0 -555
- package/dist/hooks/sms-webhook.js.map +0 -7
- package/dist/hooks/whatsapp-commands.js +0 -479
- package/dist/hooks/whatsapp-commands.js.map +0 -7
- package/dist/hooks/whatsapp-scheduler.js +0 -317
- package/dist/hooks/whatsapp-scheduler.js.map +0 -7
- package/dist/hooks/whatsapp-sync.js +0 -409
- package/dist/hooks/whatsapp-sync.js.map +0 -7
- package/dist/index.js +0 -25
- package/dist/index.js.map +0 -7
- package/dist/integrations/anthropic/client.js +0 -263
- package/dist/integrations/anthropic/client.js.map +0 -7
- package/dist/integrations/claude-code/agent-bridge.js +0 -768
- package/dist/integrations/claude-code/agent-bridge.js.map +0 -7
- package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js +0 -459
- package/dist/integrations/claude-code/enhanced-pre-clear-hooks.js.map +0 -7
- package/dist/integrations/claude-code/lifecycle-hooks.js +0 -254
- package/dist/integrations/claude-code/lifecycle-hooks.js.map +0 -7
- package/dist/integrations/claude-code/post-task-hooks.js +0 -545
- package/dist/integrations/claude-code/post-task-hooks.js.map +0 -7
- package/dist/integrations/claude-code/subagent-client-stub.js +0 -20
- package/dist/integrations/claude-code/subagent-client-stub.js.map +0 -7
- package/dist/integrations/claude-code/subagent-client.js +0 -511
- package/dist/integrations/claude-code/subagent-client.js.map +0 -7
- package/dist/integrations/claude-code/task-coordinator.js +0 -360
- package/dist/integrations/claude-code/task-coordinator.js.map +0 -7
- package/dist/integrations/linear/auth.js +0 -337
- package/dist/integrations/linear/auth.js.map +0 -7
- package/dist/integrations/linear/auto-sync.js +0 -258
- package/dist/integrations/linear/auto-sync.js.map +0 -7
- package/dist/integrations/linear/client.js +0 -634
- package/dist/integrations/linear/client.js.map +0 -7
- package/dist/integrations/linear/config.js +0 -130
- package/dist/integrations/linear/config.js.map +0 -7
- package/dist/integrations/linear/migration.js +0 -361
- package/dist/integrations/linear/migration.js.map +0 -7
- package/dist/integrations/linear/oauth-server.js +0 -454
- package/dist/integrations/linear/oauth-server.js.map +0 -7
- package/dist/integrations/linear/rest-client.js +0 -213
- package/dist/integrations/linear/rest-client.js.map +0 -7
- package/dist/integrations/linear/sync-manager.js +0 -236
- package/dist/integrations/linear/sync-manager.js.map +0 -7
- package/dist/integrations/linear/sync-service.js +0 -231
- package/dist/integrations/linear/sync-service.js.map +0 -7
- package/dist/integrations/linear/sync.js +0 -782
- package/dist/integrations/linear/sync.js.map +0 -7
- package/dist/integrations/linear/types.js +0 -5
- package/dist/integrations/linear/types.js.map +0 -7
- package/dist/integrations/linear/unified-sync.js +0 -589
- package/dist/integrations/linear/unified-sync.js.map +0 -7
- package/dist/integrations/linear/webhook-handler.js +0 -219
- package/dist/integrations/linear/webhook-handler.js.map +0 -7
- package/dist/integrations/linear/webhook-server.js +0 -218
- package/dist/integrations/linear/webhook-server.js.map +0 -7
- package/dist/integrations/linear/webhook.js +0 -291
- package/dist/integrations/linear/webhook.js.map +0 -7
- package/dist/integrations/mcp/handlers/code-execution-handlers.js +0 -266
- package/dist/integrations/mcp/handlers/code-execution-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/context-handlers.js +0 -257
- package/dist/integrations/mcp/handlers/context-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/discovery-handlers.js +0 -497
- package/dist/integrations/mcp/handlers/discovery-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/index.js +0 -166
- package/dist/integrations/mcp/handlers/index.js.map +0 -7
- package/dist/integrations/mcp/handlers/linear-handlers.js +0 -247
- package/dist/integrations/mcp/handlers/linear-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/skill-handlers.js +0 -529
- package/dist/integrations/mcp/handlers/skill-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/task-handlers.js +0 -239
- package/dist/integrations/mcp/handlers/task-handlers.js.map +0 -7
- package/dist/integrations/mcp/handlers/trace-handlers.js +0 -308
- package/dist/integrations/mcp/handlers/trace-handlers.js.map +0 -7
- package/dist/integrations/mcp/index.js +0 -23
- package/dist/integrations/mcp/index.js.map +0 -7
- package/dist/integrations/mcp/middleware/tool-scoring.js +0 -356
- package/dist/integrations/mcp/middleware/tool-scoring.js.map +0 -7
- package/dist/integrations/mcp/refactored-server.js +0 -374
- package/dist/integrations/mcp/refactored-server.js.map +0 -7
- package/dist/integrations/mcp/remote-server.js +0 -682
- package/dist/integrations/mcp/remote-server.js.map +0 -7
- package/dist/integrations/mcp/schemas.js +0 -147
- package/dist/integrations/mcp/schemas.js.map +0 -7
- package/dist/integrations/mcp/server.js +0 -1975
- package/dist/integrations/mcp/server.js.map +0 -7
- package/dist/integrations/mcp/tool-definitions-code.js +0 -125
- package/dist/integrations/mcp/tool-definitions-code.js.map +0 -7
- package/dist/integrations/mcp/tool-definitions.js +0 -702
- package/dist/integrations/mcp/tool-definitions.js.map +0 -7
- package/dist/integrations/mcp/trace-test.js +0 -48
- package/dist/integrations/mcp/trace-test.js.map +0 -7
- package/dist/integrations/pg-aiguide/embedding-provider.js +0 -189
- package/dist/integrations/pg-aiguide/embedding-provider.js.map +0 -7
- package/dist/integrations/pg-aiguide/semantic-search.js +0 -187
- package/dist/integrations/pg-aiguide/semantic-search.js.map +0 -7
- package/dist/integrations/pg-aiguide/timescale-analytics.js +0 -224
- package/dist/integrations/pg-aiguide/timescale-analytics.js.map +0 -7
- package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js +0 -860
- package/dist/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +0 -7
- package/dist/integrations/ralph/context/context-budget-manager.js +0 -301
- package/dist/integrations/ralph/context/context-budget-manager.js.map +0 -7
- package/dist/integrations/ralph/context/stackmemory-context-loader.js +0 -360
- package/dist/integrations/ralph/context/stackmemory-context-loader.js.map +0 -7
- package/dist/integrations/ralph/coordination/enhanced-coordination.js +0 -410
- package/dist/integrations/ralph/coordination/enhanced-coordination.js.map +0 -7
- package/dist/integrations/ralph/index.js +0 -18
- package/dist/integrations/ralph/index.js.map +0 -7
- package/dist/integrations/ralph/learning/pattern-learner.js +0 -401
- package/dist/integrations/ralph/learning/pattern-learner.js.map +0 -7
- package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js +0 -448
- package/dist/integrations/ralph/lifecycle/iteration-lifecycle.js.map +0 -7
- package/dist/integrations/ralph/monitoring/swarm-dashboard.js +0 -294
- package/dist/integrations/ralph/monitoring/swarm-dashboard.js.map +0 -7
- package/dist/integrations/ralph/monitoring/swarm-registry.js +0 -108
- package/dist/integrations/ralph/monitoring/swarm-registry.js.map +0 -7
- package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js +0 -463
- package/dist/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +0 -7
- package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js +0 -400
- package/dist/integrations/ralph/patterns/compounding-engineering-pattern.js.map +0 -7
- package/dist/integrations/ralph/patterns/extended-coherence-sessions.js +0 -473
- package/dist/integrations/ralph/patterns/extended-coherence-sessions.js.map +0 -7
- package/dist/integrations/ralph/patterns/oracle-worker-pattern.js +0 -388
- package/dist/integrations/ralph/patterns/oracle-worker-pattern.js.map +0 -7
- package/dist/integrations/ralph/performance/performance-optimizer.js +0 -358
- package/dist/integrations/ralph/performance/performance-optimizer.js.map +0 -7
- package/dist/integrations/ralph/ralph-integration-demo.js +0 -182
- package/dist/integrations/ralph/ralph-integration-demo.js.map +0 -7
- package/dist/integrations/ralph/recovery/crash-recovery.js +0 -462
- package/dist/integrations/ralph/recovery/crash-recovery.js.map +0 -7
- package/dist/integrations/ralph/state/state-reconciler.js +0 -404
- package/dist/integrations/ralph/state/state-reconciler.js.map +0 -7
- package/dist/integrations/ralph/swarm/git-workflow-manager.js +0 -428
- package/dist/integrations/ralph/swarm/git-workflow-manager.js.map +0 -7
- package/dist/integrations/ralph/swarm/swarm-coordinator.js +0 -996
- package/dist/integrations/ralph/swarm/swarm-coordinator.js.map +0 -7
- package/dist/integrations/ralph/types.js +0 -5
- package/dist/integrations/ralph/types.js.map +0 -7
- package/dist/integrations/ralph/visualization/ralph-debugger.js +0 -585
- package/dist/integrations/ralph/visualization/ralph-debugger.js.map +0 -7
- package/dist/mcp/stackmemory-mcp-server.js +0 -554
- package/dist/mcp/stackmemory-mcp-server.js.map +0 -7
- package/dist/middleware/exponential-rate-limiter.js +0 -289
- package/dist/middleware/exponential-rate-limiter.js.map +0 -7
- package/dist/models/user.model.js +0 -358
- package/dist/models/user.model.js.map +0 -7
- package/dist/servers/production/auth-middleware.js +0 -528
- package/dist/servers/production/auth-middleware.js.map +0 -7
- package/dist/servers/railway/config.js +0 -55
- package/dist/servers/railway/config.js.map +0 -7
- package/dist/servers/railway/index-enhanced.js +0 -160
- package/dist/servers/railway/index-enhanced.js.map +0 -7
- package/dist/servers/railway/index.js +0 -1349
- package/dist/servers/railway/index.js.map +0 -7
- package/dist/servers/railway/simple.js +0 -64
- package/dist/servers/railway/simple.js.map +0 -7
- package/dist/servers/railway/storage-test.js +0 -459
- package/dist/servers/railway/storage-test.js.map +0 -7
- package/dist/services/config-service.js +0 -65
- package/dist/services/config-service.js.map +0 -7
- package/dist/services/context-service.js +0 -194
- package/dist/services/context-service.js.map +0 -7
- package/dist/skills/api-discovery.js +0 -354
- package/dist/skills/api-discovery.js.map +0 -7
- package/dist/skills/api-skill.js +0 -475
- package/dist/skills/api-skill.js.map +0 -7
- package/dist/skills/claude-skills.js +0 -1061
- package/dist/skills/claude-skills.js.map +0 -7
- package/dist/skills/dashboard-launcher.js +0 -216
- package/dist/skills/dashboard-launcher.js.map +0 -7
- package/dist/skills/recursive-agent-orchestrator.js +0 -575
- package/dist/skills/recursive-agent-orchestrator.js.map +0 -7
- package/dist/skills/repo-ingestion-skill.js +0 -609
- package/dist/skills/repo-ingestion-skill.js.map +0 -7
- package/dist/skills/security-secrets-scanner.js +0 -284
- package/dist/skills/security-secrets-scanner.js.map +0 -7
- package/dist/skills/unified-rlm-orchestrator.js +0 -404
- package/dist/skills/unified-rlm-orchestrator.js.map +0 -7
- package/dist/types/task.js +0 -5
- package/dist/types/task.js.map +0 -7
- package/dist/utils/env.js +0 -50
- package/dist/utils/env.js.map +0 -7
- package/dist/utils/formatting.js +0 -62
- package/dist/utils/formatting.js.map +0 -7
- package/dist/utils/process-cleanup.js +0 -136
- package/dist/utils/process-cleanup.js.map +0 -7
- package/dist/validation/schemas.js +0 -222
- package/dist/validation/schemas.js.map +0 -7
- /package/dist/{core/merge → src/core/extensions}/types.js +0 -0
- /package/dist/{core/merge → src/core/extensions}/types.js.map +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/core/retrieval/graph-retrieval.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Graph-Based Retrieval with Explicit Semantic Navigation\n * Models documents as nodes with explicit relationships\n * Query traverses edges instead of embedding space\n *\n * The \"nuclear option\" for next-gen RAG\n */\n\nimport Database from 'better-sqlite3';\nimport { logger } from '../monitoring/logger.js';\nimport { Trace, CompressedTrace } from '../trace/types.js';\nimport { Frame, Anchor } from '../context/index.js';\nimport crypto from 'crypto';\n\nexport type NodeType =\n | 'document'\n | 'concept'\n | 'entity'\n | 'event'\n | 'decision'\n | 'constraint'\n | 'topic';\n\nexport type EdgeType =\n | 'citation' // Document cites another\n | 'topic_overlap' // Shares topics\n | 'temporal' // Time sequence\n | 'causal' // Causality chain\n | 'semantic' // Semantic similarity\n | 'structural' // Code structure relation\n | 'dependency' // Depends on\n | 'evolution' // Evolves from\n | 'contradiction' // Contradicts\n | 'implementation'; // Implements concept\n\nexport interface GraphNode {\n id: string;\n type: NodeType;\n label: string;\n content?: string;\n importance: number; // 0-1, affects node size\n metadata: {\n created: number;\n modified: number;\n accessed: number;\n accessCount: number;\n traceIds?: string[];\n frameIds?: string[];\n tags?: string[];\n embeddings?: number[];\n };\n}\n\nexport interface GraphEdge {\n id: string;\n source: string;\n target: string;\n type: EdgeType;\n weight: number; // 0-1, relationship strength\n metadata: {\n created: number;\n evidence?: string[];\n bidirectional?: boolean;\n };\n}\n\nexport interface TraversalPath {\n nodes: GraphNode[];\n edges: GraphEdge[];\n score: number;\n reasoning: string;\n}\n\nexport interface GraphQuery {\n startNodes?: string[]; // Start from specific nodes\n targetNodes?: string[]; // Find paths to targets\n edgeTypes?: EdgeType[]; // Allowed edge types\n maxHops?: number; // Max traversal depth\n minWeight?: number; // Min edge weight\n nodeTypes?: NodeType[]; // Filter node types\n}\n\nexport interface GraphConfig {\n maxNodes: number;\n maxEdges: number;\n minEdgeWeight: number;\n importanceThreshold: number;\n traversalTimeout: number;\n enableBidirectional: boolean;\n}\n\nexport const DEFAULT_GRAPH_CONFIG: GraphConfig = {\n maxNodes: 10000,\n maxEdges: 50000,\n minEdgeWeight: 0.1,\n importanceThreshold: 0.3,\n traversalTimeout: 5000,\n enableBidirectional: true,\n};\n\n/**\n * Graph-based retrieval system with explicit semantic relationships\n */\nexport class GraphRetrieval {\n private db: Database.Database;\n private config: GraphConfig;\n private nodeIndex: Map<string, GraphNode> = new Map();\n private adjacencyList: Map<string, GraphEdge[]> = new Map();\n private reverseAdjacencyList: Map<string, GraphEdge[]> = new Map();\n\n constructor(db: Database.Database, config: Partial<GraphConfig> = {}) {\n this.db = db;\n this.config = { ...DEFAULT_GRAPH_CONFIG, ...config };\n this.initializeSchema();\n }\n\n private initializeSchema(): void {\n // Nodes table\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS graph_nodes (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n label TEXT NOT NULL,\n content TEXT,\n importance REAL DEFAULT 0.5,\n created INTEGER DEFAULT (unixepoch() * 1000),\n modified INTEGER DEFAULT (unixepoch() * 1000),\n accessed INTEGER DEFAULT (unixepoch() * 1000),\n access_count INTEGER DEFAULT 0,\n trace_ids TEXT,\n frame_ids TEXT,\n tags TEXT,\n embeddings BLOB\n )\n `);\n\n // Edges table\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS graph_edges (\n id TEXT PRIMARY KEY,\n source TEXT NOT NULL,\n target TEXT NOT NULL,\n type TEXT NOT NULL,\n weight REAL DEFAULT 0.5,\n created INTEGER DEFAULT (unixepoch() * 1000),\n evidence TEXT,\n bidirectional BOOLEAN DEFAULT 0,\n FOREIGN KEY (source) REFERENCES graph_nodes(id) ON DELETE CASCADE,\n FOREIGN KEY (target) REFERENCES graph_nodes(id) ON DELETE CASCADE,\n UNIQUE(source, target, type)\n )\n `);\n\n // Indexes for efficient traversal\n this.db.exec(`\n CREATE INDEX IF NOT EXISTS idx_graph_nodes_type ON graph_nodes(type);\n CREATE INDEX IF NOT EXISTS idx_graph_nodes_importance ON graph_nodes(importance DESC);\n CREATE INDEX IF NOT EXISTS idx_graph_edges_source ON graph_edges(source);\n CREATE INDEX IF NOT EXISTS idx_graph_edges_target ON graph_edges(target);\n CREATE INDEX IF NOT EXISTS idx_graph_edges_type ON graph_edges(type);\n CREATE INDEX IF NOT EXISTS idx_graph_edges_weight ON graph_edges(weight DESC);\n `);\n }\n\n /**\n * Build graph from traces and frames\n */\n async buildGraph(traces: Trace[], frames: Frame[]): Promise<void> {\n logger.info('Building semantic graph', {\n traceCount: traces.length,\n frameCount: frames.length,\n });\n\n // Create document nodes from traces\n for (const trace of traces) {\n await this.createDocumentNode(trace);\n }\n\n // Create concept nodes from frames\n for (const frame of frames) {\n await this.createConceptNode(frame);\n }\n\n // Establish edges based on relationships\n await this.establishTemporalEdges(traces);\n await this.establishCausalEdges(traces);\n await this.establishSemanticEdges(traces);\n await this.establishTopicEdges(traces);\n\n // Load graph into memory for fast traversal\n await this.loadGraphIntoMemory();\n\n logger.info('Graph built successfully', {\n nodes: this.nodeIndex.size,\n edges: this.adjacencyList.size,\n });\n }\n\n /**\n * Create document node from trace\n */\n private async createDocumentNode(trace: Trace): Promise<GraphNode> {\n const node: GraphNode = {\n id: `doc_${trace.id}`,\n type: 'document',\n label: trace.summary.substring(0, 100),\n content: JSON.stringify(trace),\n importance: trace.score,\n metadata: {\n created: trace.metadata.startTime,\n modified: trace.metadata.endTime,\n accessed: Date.now(),\n accessCount: 0,\n traceIds: [trace.id],\n tags: [trace.type, ...trace.metadata.filesModified.slice(0, 3)],\n },\n };\n\n await this.insertNode(node);\n return node;\n }\n\n /**\n * Create concept node from frame\n */\n private async createConceptNode(frame: Frame): Promise<GraphNode> {\n const node: GraphNode = {\n id: `concept_${frame.id}`,\n type: 'concept',\n label: frame.name,\n importance: frame.score,\n metadata: {\n created: frame.created_at,\n modified: frame.updated_at || frame.created_at,\n accessed: Date.now(),\n accessCount: 0,\n frameIds: [frame.id],\n tags: [frame.type],\n },\n };\n\n await this.insertNode(node);\n return node;\n }\n\n /**\n * Establish temporal edges between traces\n */\n private async establishTemporalEdges(traces: Trace[]): Promise<void> {\n // Sort by time\n const sorted = [...traces].sort(\n (a, b) => a.metadata.startTime - b.metadata.startTime\n );\n\n for (let i = 0; i < sorted.length - 1; i++) {\n const current = sorted[i];\n const next = sorted[i + 1];\n\n // Only link if within reasonable time window (1 hour)\n const timeDiff = next.metadata.startTime - current.metadata.endTime;\n if (timeDiff < 60 * 60 * 1000) {\n const weight = 1 / (1 + timeDiff / (1000 * 60)); // Decay by minutes\n\n await this.createEdge({\n id: this.generateId('edge'),\n source: `doc_${current.id}`,\n target: `doc_${next.id}`,\n type: 'temporal',\n weight,\n metadata: {\n created: Date.now(),\n evidence: [`${timeDiff}ms gap`],\n },\n });\n }\n }\n }\n\n /**\n * Establish causal edges based on trace relationships\n */\n private async establishCausalEdges(traces: Trace[]): Promise<void> {\n for (const trace of traces) {\n if (trace.metadata.causalChain && trace.metadata.causalChain.length > 0) {\n for (const parentId of trace.metadata.causalChain) {\n const parentExists = traces.find((t) => t.id === parentId);\n if (parentExists) {\n await this.createEdge({\n id: this.generateId('edge'),\n source: `doc_${parentId}`,\n target: `doc_${trace.id}`,\n type: 'causal',\n weight: 0.9, // Strong causal relationship\n metadata: {\n created: Date.now(),\n evidence: ['explicit causal chain'],\n },\n });\n }\n }\n }\n }\n }\n\n /**\n * Establish semantic edges based on similarity\n */\n private async establishSemanticEdges(traces: Trace[]): Promise<void> {\n // Compare each pair (expensive but thorough)\n for (let i = 0; i < traces.length - 1; i++) {\n for (let j = i + 1; j < traces.length; j++) {\n const similarity = this.calculateSimilarity(traces[i], traces[j]);\n\n if (similarity > this.config.minEdgeWeight) {\n await this.createEdge({\n id: this.generateId('edge'),\n source: `doc_${traces[i].id}`,\n target: `doc_${traces[j].id}`,\n type: 'semantic',\n weight: similarity,\n metadata: {\n created: Date.now(),\n evidence: [`similarity: ${similarity.toFixed(2)}`],\n bidirectional: true,\n },\n });\n }\n }\n }\n }\n\n /**\n * Establish topic overlap edges\n */\n private async establishTopicEdges(traces: Trace[]): Promise<void> {\n // Group by topic\n const topicGroups: Map<string, Trace[]> = new Map();\n\n for (const trace of traces) {\n const topic = trace.type;\n if (!topicGroups.has(topic)) {\n topicGroups.set(topic, []);\n }\n topicGroups.get(topic)!.push(trace);\n }\n\n // Connect traces within same topic\n for (const [topic, group] of topicGroups) {\n if (group.length < 2) continue;\n\n // Create topic hub node\n const topicNode: GraphNode = {\n id: `topic_${topic}`,\n type: 'topic',\n label: topic,\n importance: 0.7,\n metadata: {\n created: Date.now(),\n modified: Date.now(),\n accessed: Date.now(),\n accessCount: 0,\n tags: [topic],\n },\n };\n\n await this.insertNode(topicNode);\n\n // Connect all traces to topic hub\n for (const trace of group) {\n await this.createEdge({\n id: this.generateId('edge'),\n source: `doc_${trace.id}`,\n target: topicNode.id,\n type: 'topic_overlap',\n weight: 0.6,\n metadata: {\n created: Date.now(),\n bidirectional: true,\n },\n });\n }\n }\n }\n\n /**\n * Traverse graph to find relevant paths\n */\n async traverse(query: string, config?: GraphQuery): Promise<TraversalPath[]> {\n const startTime = Date.now();\n const queryConfig = config || {};\n const maxHops = queryConfig.maxHops || 3;\n const paths: TraversalPath[] = [];\n\n // Find starting nodes based on query\n const startNodes = await this.findStartNodes(query, queryConfig);\n\n if (startNodes.length === 0) {\n logger.warn('No starting nodes found for query', { query });\n return [];\n }\n\n // Perform BFS/DFS traversal from each start node\n for (const startNode of startNodes) {\n const nodePaths = await this.traverseFromNode(\n startNode,\n query,\n maxHops,\n queryConfig\n );\n paths.push(...nodePaths);\n }\n\n // Sort by score and limit results\n paths.sort((a, b) => b.score - a.score);\n const topPaths = paths.slice(0, 10);\n\n logger.info('Graph traversal complete', {\n query: query.substring(0, 50),\n startNodes: startNodes.length,\n pathsFound: paths.length,\n timeMs: Date.now() - startTime,\n });\n\n return topPaths;\n }\n\n /**\n * Find starting nodes for traversal\n */\n private async findStartNodes(\n query: string,\n config: GraphQuery\n ): Promise<GraphNode[]> {\n if (config.startNodes) {\n return config.startNodes\n .map((id) => this.nodeIndex.get(id))\n .filter((n) => n !== undefined) as GraphNode[];\n }\n\n // Find nodes matching query\n const queryWords = query.toLowerCase().split(/\\s+/);\n const candidates: Array<{ node: GraphNode; score: number }> = [];\n\n for (const node of this.nodeIndex.values()) {\n if (config.nodeTypes && !config.nodeTypes.includes(node.type)) {\n continue;\n }\n\n const label = node.label.toLowerCase();\n const tags = (node.metadata.tags || []).join(' ').toLowerCase();\n\n let score = 0;\n for (const word of queryWords) {\n if (label.includes(word)) score += 2;\n if (tags.includes(word)) score += 1;\n }\n\n if (score > 0) {\n score *= node.importance; // Weight by importance\n candidates.push({ node, score });\n }\n }\n\n // Sort and return top candidates\n candidates.sort((a, b) => b.score - a.score);\n return candidates.slice(0, 5).map((c) => c.node);\n }\n\n /**\n * Traverse from a specific node\n */\n private async traverseFromNode(\n startNode: GraphNode,\n query: string,\n maxHops: number,\n config: GraphQuery\n ): Promise<TraversalPath[]> {\n const paths: TraversalPath[] = [];\n const visited = new Set<string>();\n\n // BFS queue: [node, path, depth]\n const queue: Array<{\n node: GraphNode;\n path: TraversalPath;\n depth: number;\n }> = [\n {\n node: startNode,\n path: {\n nodes: [startNode],\n edges: [],\n score: startNode.importance,\n reasoning: `Starting from ${startNode.type}: ${startNode.label}`,\n },\n depth: 0,\n },\n ];\n\n while (queue.length > 0) {\n const current = queue.shift()!;\n\n if (current.depth >= maxHops) {\n paths.push(current.path);\n continue;\n }\n\n if (visited.has(current.node.id)) {\n continue;\n }\n visited.add(current.node.id);\n\n // Get outgoing edges\n const edges = this.adjacencyList.get(current.node.id) || [];\n\n for (const edge of edges) {\n // Filter by edge type if specified\n if (config.edgeTypes && !config.edgeTypes.includes(edge.type)) {\n continue;\n }\n\n // Filter by minimum weight\n if (config.minWeight && edge.weight < config.minWeight) {\n continue;\n }\n\n const targetNode = this.nodeIndex.get(edge.target);\n if (!targetNode) continue;\n\n // Calculate path score\n const pathScore = this.calculatePathScore(\n current.path,\n edge,\n targetNode,\n query\n );\n\n // Create new path\n const newPath: TraversalPath = {\n nodes: [...current.path.nodes, targetNode],\n edges: [...current.path.edges, edge],\n score: pathScore,\n reasoning: `${current.path.reasoning} \u2192 ${edge.type} \u2192 ${targetNode.label}`,\n };\n\n queue.push({\n node: targetNode,\n path: newPath,\n depth: current.depth + 1,\n });\n }\n }\n\n return paths;\n }\n\n /**\n * Calculate path score\n */\n private calculatePathScore(\n currentPath: TraversalPath,\n edge: GraphEdge,\n targetNode: GraphNode,\n query: string\n ): number {\n // Base score from current path\n let score = currentPath.score;\n\n // Edge weight contribution\n score *= edge.weight;\n\n // Target node importance\n score *= targetNode.importance;\n\n // Query relevance\n const queryWords = query.toLowerCase().split(/\\s+/);\n const targetLabel = targetNode.label.toLowerCase();\n let relevance = 0;\n for (const word of queryWords) {\n if (targetLabel.includes(word)) relevance += 1;\n }\n score *= 1 + relevance * 0.2;\n\n // Path length penalty (prefer shorter paths)\n score *= Math.pow(0.9, currentPath.nodes.length);\n\n return score;\n }\n\n /**\n * Calculate similarity between traces\n */\n private calculateSimilarity(a: Trace, b: Trace): number {\n // Type similarity\n const typeSim = a.type === b.type ? 0.3 : 0;\n\n // File overlap\n const filesA = new Set(a.metadata.filesModified);\n const filesB = new Set(b.metadata.filesModified);\n const intersection = new Set([...filesA].filter((x) => filesB.has(x)));\n const union = new Set([...filesA, ...filesB]);\n const fileSim = union.size > 0 ? (intersection.size / union.size) * 0.3 : 0;\n\n // Tool overlap\n const toolsA = new Set(a.tools.map((t) => t.tool));\n const toolsB = new Set(b.tools.map((t) => t.tool));\n const toolIntersection = new Set([...toolsA].filter((x) => toolsB.has(x)));\n const toolUnion = new Set([...toolsA, ...toolsB]);\n const toolSim =\n toolUnion.size > 0 ? (toolIntersection.size / toolUnion.size) * 0.2 : 0;\n\n // Summary text similarity (simple word overlap)\n const wordsA = new Set(a.summary.toLowerCase().split(/\\s+/));\n const wordsB = new Set(b.summary.toLowerCase().split(/\\s+/));\n const wordIntersection = new Set([...wordsA].filter((x) => wordsB.has(x)));\n const wordUnion = new Set([...wordsA, ...wordsB]);\n const textSim =\n wordUnion.size > 0 ? (wordIntersection.size / wordUnion.size) * 0.2 : 0;\n\n return typeSim + fileSim + toolSim + textSim;\n }\n\n /**\n * Insert node into database\n */\n private async insertNode(node: GraphNode): Promise<void> {\n this.db\n .prepare(\n `\n INSERT OR REPLACE INTO graph_nodes (\n id, type, label, content, importance,\n created, modified, accessed, access_count,\n trace_ids, frame_ids, tags, embeddings\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `\n )\n .run(\n node.id,\n node.type,\n node.label,\n node.content || null,\n node.importance,\n node.metadata.created,\n node.metadata.modified,\n node.metadata.accessed,\n node.metadata.accessCount,\n JSON.stringify(node.metadata.traceIds || []),\n JSON.stringify(node.metadata.frameIds || []),\n JSON.stringify(node.metadata.tags || []),\n node.metadata.embeddings ? Buffer.from(node.metadata.embeddings) : null\n );\n }\n\n /**\n * Create edge in database\n */\n private async createEdge(edge: GraphEdge): Promise<void> {\n try {\n this.db\n .prepare(\n `\n INSERT OR IGNORE INTO graph_edges (\n id, source, target, type, weight,\n created, evidence, bidirectional\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n `\n )\n .run(\n edge.id,\n edge.source,\n edge.target,\n edge.type,\n edge.weight,\n edge.metadata.created,\n JSON.stringify(edge.metadata.evidence || []),\n edge.metadata.bidirectional ? 1 : 0\n );\n } catch (error: unknown) {\n // Ignore duplicate edges\n }\n }\n\n /**\n * Load graph into memory for fast traversal\n */\n private async loadGraphIntoMemory(): Promise<void> {\n // Load nodes\n const nodes = this.db.prepare('SELECT * FROM graph_nodes').all() as any[];\n\n for (const row of nodes) {\n const node: GraphNode = {\n id: row.id,\n type: row.type as NodeType,\n label: row.label,\n content: row.content,\n importance: row.importance,\n metadata: {\n created: row.created,\n modified: row.modified,\n accessed: row.accessed,\n accessCount: row.access_count,\n traceIds: JSON.parse(row.trace_ids || '[]'),\n frameIds: JSON.parse(row.frame_ids || '[]'),\n tags: JSON.parse(row.tags || '[]'),\n },\n };\n this.nodeIndex.set(node.id, node);\n }\n\n // Load edges\n const edges = this.db.prepare('SELECT * FROM graph_edges').all() as any[];\n\n for (const row of edges) {\n const edge: GraphEdge = {\n id: row.id,\n source: row.source,\n target: row.target,\n type: row.type as EdgeType,\n weight: row.weight,\n metadata: {\n created: row.created,\n evidence: JSON.parse(row.evidence || '[]'),\n bidirectional: row.bidirectional === 1,\n },\n };\n\n // Add to adjacency list\n if (!this.adjacencyList.has(edge.source)) {\n this.adjacencyList.set(edge.source, []);\n }\n this.adjacencyList.get(edge.source)!.push(edge);\n\n // Add to reverse adjacency list\n if (!this.reverseAdjacencyList.has(edge.target)) {\n this.reverseAdjacencyList.set(edge.target, []);\n }\n this.reverseAdjacencyList.get(edge.target)!.push(edge);\n\n // If bidirectional, add reverse edge\n if (edge.metadata.bidirectional) {\n const reverseEdge = {\n ...edge,\n source: edge.target,\n target: edge.source,\n };\n if (!this.adjacencyList.has(reverseEdge.source)) {\n this.adjacencyList.set(reverseEdge.source, []);\n }\n this.adjacencyList.get(reverseEdge.source)!.push(reverseEdge);\n }\n }\n }\n\n /**\n * Generate unique ID\n */\n private generateId(prefix: string): string {\n return `${prefix}_${crypto.randomBytes(8).toString('hex')}`;\n }\n\n /**\n * Get graph statistics\n */\n getStatistics(): any {\n const nodeStats = this.db\n .prepare(\n `\n SELECT \n type,\n COUNT(*) as count,\n AVG(importance) as avg_importance,\n MAX(importance) as max_importance\n FROM graph_nodes\n GROUP BY type\n `\n )\n .all();\n\n const edgeStats = this.db\n .prepare(\n `\n SELECT \n type,\n COUNT(*) as count,\n AVG(weight) as avg_weight,\n MAX(weight) as max_weight\n FROM graph_edges\n GROUP BY type\n `\n )\n .all();\n\n return {\n nodes: {\n total: this.nodeIndex.size,\n byType: nodeStats,\n inMemory: this.nodeIndex.size,\n },\n edges: {\n total: edgeStats.reduce((sum: number, e: any) => sum + e.count, 0),\n byType: edgeStats,\n adjacencyListSize: this.adjacencyList.size,\n },\n connectivity: {\n avgDegree: this.calculateAverageDegree(),\n maxDegree: this.calculateMaxDegree(),\n },\n };\n }\n\n /**\n * Calculate average node degree\n */\n private calculateAverageDegree(): number {\n if (this.nodeIndex.size === 0) return 0;\n\n let totalDegree = 0;\n for (const nodeId of this.nodeIndex.keys()) {\n const outgoing = this.adjacencyList.get(nodeId)?.length || 0;\n const incoming = this.reverseAdjacencyList.get(nodeId)?.length || 0;\n totalDegree += outgoing + incoming;\n }\n\n return totalDegree / this.nodeIndex.size;\n }\n\n /**\n * Calculate maximum node degree\n */\n private calculateMaxDegree(): number {\n let maxDegree = 0;\n\n for (const nodeId of this.nodeIndex.keys()) {\n const outgoing = this.adjacencyList.get(nodeId)?.length || 0;\n const incoming = this.reverseAdjacencyList.get(nodeId)?.length || 0;\n maxDegree = Math.max(maxDegree, outgoing + incoming);\n }\n\n return maxDegree;\n }\n\n /**\n * Export graph for visualization\n */\n exportForVisualization(): any {\n const nodes = Array.from(this.nodeIndex.values()).map((node) => ({\n id: node.id,\n label: node.label,\n type: node.type,\n size: node.importance * 10,\n color: this.getNodeColor(node.type),\n }));\n\n const edges = [];\n for (const edgeList of this.adjacencyList.values()) {\n for (const edge of edgeList) {\n edges.push({\n source: edge.source,\n target: edge.target,\n type: edge.type,\n weight: edge.weight,\n color: this.getEdgeColor(edge.type),\n });\n }\n }\n\n return { nodes, edges };\n }\n\n /**\n * Get node color for visualization\n */\n private getNodeColor(type: NodeType): string {\n const colors: Record<NodeType, string> = {\n document: '#4A90E2',\n concept: '#7ED321',\n entity: '#F5A623',\n event: '#D0021B',\n decision: '#9013FE',\n constraint: '#50E3C2',\n topic: '#B8E986',\n };\n return colors[type] || '#CCCCCC';\n }\n\n /**\n * Get edge color for visualization\n */\n private getEdgeColor(type: EdgeType): string {\n const colors: Record<EdgeType, string> = {\n citation: '#4A90E2',\n topic_overlap: '#7ED321',\n temporal: '#F5A623',\n causal: '#D0021B',\n semantic: '#9013FE',\n structural: '#50E3C2',\n dependency: '#B8E986',\n evolution: '#417505',\n contradiction: '#FF0000',\n implementation: '#0099FF',\n };\n return colors[type] || '#999999';\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|