@stackmemoryai/stackmemory 0.5.57 → 0.5.59
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/bin/codex-smd +6 -0
- package/dist/cli/codex-sm-danger.js +21 -0
- package/dist/cli/codex-sm-danger.js.map +7 -0
- package/dist/cli/commands/handoff.js +33 -3
- package/dist/cli/commands/handoff.js.map +2 -2
- package/dist/cli/commands/search.js +20 -3
- package/dist/cli/commands/search.js.map +2 -2
- package/dist/core/database/sqlite-adapter.js +13 -3
- package/dist/core/database/sqlite-adapter.js.map +2 -2
- package/dist/core/errors/error-utils.js +208 -0
- package/dist/core/errors/error-utils.js.map +7 -0
- package/dist/core/errors/index.js +13 -4
- package/dist/core/errors/index.js.map +2 -2
- package/dist/core/merge/unified-merge-resolver.js +303 -0
- package/dist/core/merge/unified-merge-resolver.js.map +7 -0
- package/dist/core/monitoring/logger.js +61 -9
- package/dist/core/monitoring/logger.js.map +2 -2
- package/dist/core/security/index.js +35 -0
- package/dist/core/security/index.js.map +7 -0
- package/dist/core/security/input-sanitizer.js +321 -0
- package/dist/core/security/input-sanitizer.js.map +7 -0
- package/dist/core/session/enhanced-handoff.js +136 -2
- package/dist/core/session/enhanced-handoff.js.map +3 -3
- package/dist/integrations/linear/client.js +5 -1
- package/dist/integrations/linear/client.js.map +2 -2
- package/dist/integrations/mcp/remote-server.js +27 -36
- package/dist/integrations/mcp/remote-server.js.map +2 -2
- package/dist/integrations/mcp/server.js +44 -29
- package/dist/integrations/mcp/server.js.map +3 -3
- package/dist/scripts/benchmark-performance.js +48 -0
- package/dist/scripts/benchmark-performance.js.map +7 -0
- package/dist/scripts/check-redis.js +42 -0
- package/dist/scripts/check-redis.js.map +7 -0
- package/dist/scripts/initialize.js +116 -0
- package/dist/scripts/initialize.js.map +7 -0
- package/dist/scripts/list-linear-tasks.js +124 -0
- package/dist/scripts/list-linear-tasks.js.map +7 -0
- package/dist/scripts/measure-handoff-impact.js +340 -0
- package/dist/scripts/measure-handoff-impact.js.map +7 -0
- package/dist/scripts/query-chromadb.js +160 -0
- package/dist/scripts/query-chromadb.js.map +7 -0
- package/dist/scripts/show-linear-summary.js +119 -0
- package/dist/scripts/show-linear-summary.js.map +7 -0
- package/dist/scripts/simple-swarm-demo.js +90 -0
- package/dist/scripts/simple-swarm-demo.js.map +7 -0
- package/dist/scripts/status.js +155 -0
- package/dist/scripts/status.js.map +7 -0
- package/dist/scripts/test-chromadb-sync.js +192 -0
- package/dist/scripts/test-chromadb-sync.js.map +7 -0
- package/dist/scripts/test-ralph-iteration-fix.js +86 -0
- package/dist/scripts/test-ralph-iteration-fix.js.map +7 -0
- package/dist/scripts/test-ralph-iterations.js +121 -0
- package/dist/scripts/test-ralph-iterations.js.map +7 -0
- package/dist/scripts/test-redis-storage.js +389 -0
- package/dist/scripts/test-redis-storage.js.map +7 -0
- package/dist/scripts/test-simple-ralph-state-sync.js +115 -0
- package/dist/scripts/test-simple-ralph-state-sync.js.map +7 -0
- package/dist/scripts/test-swarm-fixes.js +125 -0
- package/dist/scripts/test-swarm-fixes.js.map +7 -0
- package/dist/scripts/test-swarm-tui.js +23 -0
- package/dist/scripts/test-swarm-tui.js.map +7 -0
- package/dist/scripts/test-tui-shortcuts.js +52 -0
- package/dist/scripts/test-tui-shortcuts.js.map +7 -0
- package/dist/scripts/validate-tui-shortcuts.js +60 -0
- package/dist/scripts/validate-tui-shortcuts.js.map +7 -0
- package/dist/src/agents/core/agent-task-manager.js +527 -0
- package/dist/src/agents/core/agent-task-manager.js.map +7 -0
- package/dist/src/agents/verifiers/base-verifier.js +133 -0
- package/dist/src/agents/verifiers/base-verifier.js.map +7 -0
- package/dist/src/agents/verifiers/formatter-verifier.js +130 -0
- package/dist/src/agents/verifiers/formatter-verifier.js.map +7 -0
- package/dist/src/agents/verifiers/llm-judge.js +252 -0
- package/dist/src/agents/verifiers/llm-judge.js.map +7 -0
- package/dist/src/cli/auto-detect.js +321 -0
- package/dist/src/cli/auto-detect.js.map +7 -0
- package/dist/src/cli/claude-sm-danger.js +21 -0
- package/dist/src/cli/claude-sm-danger.js.map +7 -0
- package/dist/src/cli/claude-sm.js +1156 -0
- package/dist/src/cli/claude-sm.js.map +7 -0
- package/dist/src/cli/codex-sm-danger.js +21 -0
- package/dist/src/cli/codex-sm-danger.js.map +7 -0
- package/dist/src/cli/codex-sm.js +349 -0
- package/dist/src/cli/codex-sm.js.map +7 -0
- package/dist/src/cli/commands/api.js +232 -0
- package/dist/src/cli/commands/api.js.map +7 -0
- package/dist/src/cli/commands/auto-background.js +180 -0
- package/dist/src/cli/commands/auto-background.js.map +7 -0
- package/dist/src/cli/commands/cleanup-processes.js +68 -0
- package/dist/src/cli/commands/cleanup-processes.js.map +7 -0
- package/dist/src/cli/commands/clear.js +202 -0
- package/dist/src/cli/commands/clear.js.map +7 -0
- package/dist/src/cli/commands/config.js +445 -0
- package/dist/src/cli/commands/config.js.map +7 -0
- package/dist/src/cli/commands/context-rehydrate.js +751 -0
- package/dist/src/cli/commands/context-rehydrate.js.map +7 -0
- package/dist/src/cli/commands/context.js +343 -0
- package/dist/src/cli/commands/context.js.map +7 -0
- package/dist/src/cli/commands/daemon.js +392 -0
- package/dist/src/cli/commands/daemon.js.map +7 -0
- package/dist/src/cli/commands/dashboard.js +210 -0
- package/dist/src/cli/commands/dashboard.js.map +7 -0
- package/dist/src/cli/commands/db.js +147 -0
- package/dist/src/cli/commands/db.js.map +7 -0
- package/dist/src/cli/commands/decision.js +266 -0
- package/dist/src/cli/commands/decision.js.map +7 -0
- package/dist/src/cli/commands/discovery.js +279 -0
- package/dist/src/cli/commands/discovery.js.map +7 -0
- package/dist/src/cli/commands/handoff.js +624 -0
- package/dist/src/cli/commands/handoff.js.map +7 -0
- package/dist/src/cli/commands/hooks.js +298 -0
- package/dist/src/cli/commands/hooks.js.map +7 -0
- package/dist/src/cli/commands/linear.js +529 -0
- package/dist/src/cli/commands/linear.js.map +7 -0
- package/dist/src/cli/commands/log.js +169 -0
- package/dist/src/cli/commands/log.js.map +7 -0
- package/dist/src/cli/commands/login.js +172 -0
- package/dist/src/cli/commands/login.js.map +7 -0
- package/dist/src/cli/commands/migrate.js +240 -0
- package/dist/src/cli/commands/migrate.js.map +7 -0
- package/dist/src/cli/commands/model.js +533 -0
- package/dist/src/cli/commands/model.js.map +7 -0
- package/dist/src/cli/commands/onboard.js +536 -0
- package/dist/src/cli/commands/onboard.js.map +7 -0
- package/dist/src/cli/commands/projects.js +199 -0
- package/dist/src/cli/commands/projects.js.map +7 -0
- package/dist/src/cli/commands/ralph.js +909 -0
- package/dist/src/cli/commands/ralph.js.map +7 -0
- package/dist/src/cli/commands/retrieval.js +248 -0
- package/dist/src/cli/commands/retrieval.js.map +7 -0
- package/dist/src/cli/commands/search.js +173 -0
- package/dist/src/cli/commands/search.js.map +7 -0
- package/dist/src/cli/commands/service.js +749 -0
- package/dist/src/cli/commands/service.js.map +7 -0
- package/dist/src/cli/commands/session.js +200 -0
- package/dist/src/cli/commands/session.js.map +7 -0
- package/dist/src/cli/commands/settings.js +306 -0
- package/dist/src/cli/commands/settings.js.map +7 -0
- package/dist/src/cli/commands/setup.js +701 -0
- package/dist/src/cli/commands/setup.js.map +7 -0
- package/dist/src/cli/commands/shell.js +249 -0
- package/dist/src/cli/commands/shell.js.map +7 -0
- package/dist/src/cli/commands/signup.js +50 -0
- package/dist/src/cli/commands/signup.js.map +7 -0
- package/dist/src/cli/commands/skills.js +470 -0
- package/dist/src/cli/commands/skills.js.map +7 -0
- package/dist/src/cli/commands/sms-notify.js +795 -0
- package/dist/src/cli/commands/sms-notify.js.map +7 -0
- package/dist/src/cli/commands/storage-tier.js +183 -0
- package/dist/src/cli/commands/storage-tier.js.map +7 -0
- package/dist/src/cli/commands/sweep.js +249 -0
- package/dist/src/cli/commands/sweep.js.map +7 -0
- package/dist/src/cli/commands/tasks.js +213 -0
- package/dist/src/cli/commands/tasks.js.map +7 -0
- package/dist/src/cli/commands/worktree.js +319 -0
- package/dist/src/cli/commands/worktree.js.map +7 -0
- package/dist/src/cli/index.js +594 -0
- package/dist/src/cli/index.js.map +7 -0
- package/dist/src/cli/opencode-sm.js +448 -0
- package/dist/src/cli/opencode-sm.js.map +7 -0
- package/dist/src/cli/utils/viewer.js +96 -0
- package/dist/src/cli/utils/viewer.js.map +7 -0
- package/dist/src/core/config/config-manager.js +398 -0
- package/dist/src/core/config/config-manager.js.map +7 -0
- package/dist/src/core/config/feature-flags.js +76 -0
- package/dist/src/core/config/feature-flags.js.map +7 -0
- package/dist/src/core/config/storage-config.js +115 -0
- package/dist/src/core/config/storage-config.js.map +7 -0
- package/dist/src/core/config/types.js +144 -0
- package/dist/src/core/config/types.js.map +7 -0
- package/dist/src/core/context/auto-context.js +80 -0
- package/dist/src/core/context/auto-context.js.map +7 -0
- package/dist/src/core/context/dual-stack-manager.js +870 -0
- package/dist/src/core/context/dual-stack-manager.js.map +7 -0
- package/dist/src/core/context/enhanced-rehydration.js +994 -0
- package/dist/src/core/context/enhanced-rehydration.js.map +7 -0
- package/dist/src/core/context/frame-database.js +479 -0
- package/dist/src/core/context/frame-database.js.map +7 -0
- package/dist/src/core/context/frame-digest.js +250 -0
- package/dist/src/core/context/frame-digest.js.map +7 -0
- package/dist/src/core/context/frame-handoff-manager.js +778 -0
- package/dist/src/core/context/frame-handoff-manager.js.map +7 -0
- package/dist/src/core/context/frame-lifecycle-hooks.js +119 -0
- package/dist/src/core/context/frame-lifecycle-hooks.js.map +7 -0
- package/dist/src/core/context/frame-recovery.js +302 -0
- package/dist/src/core/context/frame-recovery.js.map +7 -0
- package/dist/src/core/context/frame-stack.js +314 -0
- package/dist/src/core/context/frame-stack.js.map +7 -0
- package/dist/src/core/context/frame-types.js +5 -0
- package/dist/src/core/context/frame-types.js.map +7 -0
- package/dist/src/core/context/index.js +25 -0
- package/dist/src/core/context/index.js.map +7 -0
- package/dist/src/core/context/permission-manager.js +185 -0
- package/dist/src/core/context/permission-manager.js.map +7 -0
- package/dist/src/core/context/recursive-context-manager.js +592 -0
- package/dist/src/core/context/recursive-context-manager.js.map +7 -0
- package/dist/src/core/context/refactored-frame-manager.js +754 -0
- package/dist/src/core/context/refactored-frame-manager.js.map +7 -0
- package/dist/src/core/context/shared-context-layer.js +621 -0
- package/dist/src/core/context/shared-context-layer.js.map +7 -0
- package/dist/src/core/context/stack-merge-resolver.js +749 -0
- package/dist/src/core/context/stack-merge-resolver.js.map +7 -0
- package/dist/src/core/context/validation.js +130 -0
- package/dist/src/core/context/validation.js.map +7 -0
- package/dist/src/core/database/batch-operations.js +384 -0
- package/dist/src/core/database/batch-operations.js.map +7 -0
- package/dist/src/core/database/connection-pool.js +330 -0
- package/dist/src/core/database/connection-pool.js.map +7 -0
- package/dist/src/core/database/database-adapter.js +60 -0
- package/dist/src/core/database/database-adapter.js.map +7 -0
- package/dist/src/core/database/migration-manager.js +614 -0
- package/dist/src/core/database/migration-manager.js.map +7 -0
- package/dist/src/core/database/query-cache.js +298 -0
- package/dist/src/core/database/query-cache.js.map +7 -0
- package/dist/src/core/database/query-router.js +430 -0
- package/dist/src/core/database/query-router.js.map +7 -0
- package/dist/src/core/database/sqlite-adapter.js +738 -0
- package/dist/src/core/database/sqlite-adapter.js.map +7 -0
- package/dist/src/core/digest/enhanced-hybrid-digest.js +277 -0
- package/dist/src/core/digest/enhanced-hybrid-digest.js.map +7 -0
- package/dist/src/core/digest/frame-digest-integration.js +176 -0
- package/dist/src/core/digest/frame-digest-integration.js.map +7 -0
- package/dist/src/core/digest/hybrid-digest-generator.js +553 -0
- package/dist/src/core/digest/hybrid-digest-generator.js.map +7 -0
- package/dist/src/core/digest/index.js +9 -0
- package/dist/src/core/digest/index.js.map +7 -0
- package/dist/src/core/digest/types.js +25 -0
- package/dist/src/core/digest/types.js.map +7 -0
- package/dist/src/core/errors/error-utils.js +208 -0
- package/dist/src/core/errors/error-utils.js.map +7 -0
- package/dist/src/core/errors/index.js +521 -0
- package/dist/src/core/errors/index.js.map +7 -0
- package/dist/src/core/errors/recovery.js +269 -0
- package/dist/src/core/errors/recovery.js.map +7 -0
- package/dist/src/core/execution/parallel-executor.js +258 -0
- package/dist/src/core/execution/parallel-executor.js.map +7 -0
- package/dist/src/core/frame/workflow-templates.js +319 -0
- package/dist/src/core/frame/workflow-templates.js.map +7 -0
- package/dist/src/core/merge/conflict-detector.js +431 -0
- package/dist/src/core/merge/conflict-detector.js.map +7 -0
- package/dist/src/core/merge/index.js +9 -0
- package/dist/src/core/merge/index.js.map +7 -0
- package/dist/src/core/merge/resolution-engine.js +558 -0
- package/dist/src/core/merge/resolution-engine.js.map +7 -0
- package/dist/src/core/merge/stack-diff.js +532 -0
- package/dist/src/core/merge/stack-diff.js.map +7 -0
- package/dist/src/core/merge/types.js +5 -0
- package/dist/src/core/merge/types.js.map +7 -0
- package/dist/src/core/merge/unified-merge-resolver.js +303 -0
- package/dist/src/core/merge/unified-merge-resolver.js.map +7 -0
- package/dist/src/core/models/fallback-monitor.js +232 -0
- package/dist/src/core/models/fallback-monitor.js.map +7 -0
- package/dist/src/core/models/model-router.js +340 -0
- package/dist/src/core/models/model-router.js.map +7 -0
- package/dist/src/core/monitoring/error-handler.js +49 -0
- package/dist/src/core/monitoring/error-handler.js.map +7 -0
- package/dist/src/core/monitoring/logger.js +202 -0
- package/dist/src/core/monitoring/logger.js.map +7 -0
- package/dist/src/core/monitoring/metrics.js +172 -0
- package/dist/src/core/monitoring/metrics.js.map +7 -0
- package/dist/src/core/monitoring/progress-tracker.js +189 -0
- package/dist/src/core/monitoring/progress-tracker.js.map +7 -0
- package/dist/src/core/monitoring/session-monitor.js +300 -0
- package/dist/src/core/monitoring/session-monitor.js.map +7 -0
- package/dist/src/core/performance/context-cache.js +273 -0
- package/dist/src/core/performance/context-cache.js.map +7 -0
- package/dist/src/core/performance/index.js +11 -0
- package/dist/src/core/performance/index.js.map +7 -0
- package/dist/src/core/performance/lazy-context-loader.js +327 -0
- package/dist/src/core/performance/lazy-context-loader.js.map +7 -0
- package/dist/src/core/performance/monitor.js +221 -0
- package/dist/src/core/performance/monitor.js.map +7 -0
- package/dist/src/core/performance/optimized-frame-context.js +345 -0
- package/dist/src/core/performance/optimized-frame-context.js.map +7 -0
- package/dist/src/core/performance/performance-benchmark.js +277 -0
- package/dist/src/core/performance/performance-benchmark.js.map +7 -0
- package/dist/src/core/performance/performance-profiler.js +370 -0
- package/dist/src/core/performance/performance-profiler.js.map +7 -0
- package/dist/src/core/performance/streaming-jsonl-parser.js +195 -0
- package/dist/src/core/performance/streaming-jsonl-parser.js.map +7 -0
- package/dist/src/core/persistence/postgres-adapter.js +349 -0
- package/dist/src/core/persistence/postgres-adapter.js.map +7 -0
- package/dist/src/core/projects/project-isolation.js +201 -0
- package/dist/src/core/projects/project-isolation.js.map +7 -0
- package/dist/src/core/projects/project-manager.js +697 -0
- package/dist/src/core/projects/project-manager.js.map +7 -0
- package/dist/src/core/query/query-parser.js +370 -0
- package/dist/src/core/query/query-parser.js.map +7 -0
- package/dist/src/core/query/query-templates.js +321 -0
- package/dist/src/core/query/query-templates.js.map +7 -0
- package/dist/src/core/retrieval/context-retriever.js +479 -0
- package/dist/src/core/retrieval/context-retriever.js.map +7 -0
- package/dist/src/core/retrieval/index.js +8 -0
- package/dist/src/core/retrieval/index.js.map +7 -0
- package/dist/src/core/retrieval/llm-context-retrieval.js +613 -0
- package/dist/src/core/retrieval/llm-context-retrieval.js.map +7 -0
- package/dist/src/core/retrieval/llm-provider.js +151 -0
- package/dist/src/core/retrieval/llm-provider.js.map +7 -0
- package/dist/src/core/retrieval/retrieval-audit.js +236 -0
- package/dist/src/core/retrieval/retrieval-audit.js.map +7 -0
- package/dist/src/core/retrieval/summary-generator.js +589 -0
- package/dist/src/core/retrieval/summary-generator.js.map +7 -0
- package/dist/src/core/retrieval/types.js +21 -0
- package/dist/src/core/retrieval/types.js.map +7 -0
- package/dist/src/core/security/index.js +35 -0
- package/dist/src/core/security/index.js.map +7 -0
- package/dist/src/core/security/input-sanitizer.js +321 -0
- package/dist/src/core/security/input-sanitizer.js.map +7 -0
- package/dist/src/core/session/clear-survival.js +465 -0
- package/dist/src/core/session/clear-survival.js.map +7 -0
- package/dist/src/core/session/enhanced-handoff.js +792 -0
- package/dist/src/core/session/enhanced-handoff.js.map +7 -0
- package/dist/src/core/session/handoff-generator.js +343 -0
- package/dist/src/core/session/handoff-generator.js.map +7 -0
- package/dist/src/core/session/index.js +15 -0
- package/dist/src/core/session/index.js.map +7 -0
- package/dist/src/core/session/session-manager.js +347 -0
- package/dist/src/core/session/session-manager.js.map +7 -0
- package/dist/src/core/skills/index.js +7 -0
- package/dist/src/core/skills/index.js.map +7 -0
- package/dist/src/core/skills/skill-storage.js +764 -0
- package/dist/src/core/skills/skill-storage.js.map +7 -0
- package/dist/src/core/skills/types.js +193 -0
- package/dist/src/core/skills/types.js.map +7 -0
- package/dist/src/core/storage/chromadb-adapter.js +354 -0
- package/dist/src/core/storage/chromadb-adapter.js.map +7 -0
- package/dist/src/core/storage/infinite-storage.js +510 -0
- package/dist/src/core/storage/infinite-storage.js.map +7 -0
- package/dist/src/core/storage/remote-storage.js +489 -0
- package/dist/src/core/storage/remote-storage.js.map +7 -0
- package/dist/src/core/storage/two-tier-storage.js +766 -0
- package/dist/src/core/storage/two-tier-storage.js.map +7 -0
- package/dist/src/core/trace/cli-trace-wrapper.js +132 -0
- package/dist/src/core/trace/cli-trace-wrapper.js.map +7 -0
- package/dist/src/core/trace/db-trace-wrapper.js +247 -0
- package/dist/src/core/trace/db-trace-wrapper.js.map +7 -0
- package/dist/src/core/trace/debug-trace.js +417 -0
- package/dist/src/core/trace/debug-trace.js.map +7 -0
- package/dist/src/core/trace/index.js +109 -0
- package/dist/src/core/trace/index.js.map +7 -0
- package/dist/src/core/trace/linear-api-wrapper.js +178 -0
- package/dist/src/core/trace/linear-api-wrapper.js.map +7 -0
- package/dist/src/core/trace/trace-detector.js +528 -0
- package/dist/src/core/trace/trace-detector.js.map +7 -0
- package/dist/src/core/trace/trace-store.js +345 -0
- package/dist/src/core/trace/trace-store.js.map +7 -0
- package/dist/src/core/trace/types.js +77 -0
- package/dist/src/core/trace/types.js.map +7 -0
- package/dist/src/core/types.js +5 -0
- package/dist/src/core/types.js.map +7 -0
- package/dist/src/core/utils/async-mutex.js +114 -0
- package/dist/src/core/utils/async-mutex.js.map +7 -0
- package/dist/src/core/utils/compression.js +83 -0
- package/dist/src/core/utils/compression.js.map +7 -0
- package/dist/src/core/utils/update-checker.js +218 -0
- package/dist/src/core/utils/update-checker.js.map +7 -0
- package/dist/src/core/worktree/worktree-manager.js +465 -0
- package/dist/src/core/worktree/worktree-manager.js.map +7 -0
- package/dist/src/daemon/daemon-config.js +149 -0
- package/dist/src/daemon/daemon-config.js.map +7 -0
- package/dist/src/daemon/services/context-service.js +122 -0
- package/dist/src/daemon/services/context-service.js.map +7 -0
- package/dist/src/daemon/services/linear-service.js +136 -0
- package/dist/src/daemon/services/linear-service.js.map +7 -0
- package/dist/src/daemon/session-daemon.js +312 -0
- package/dist/src/daemon/session-daemon.js.map +7 -0
- package/dist/src/daemon/unified-daemon.js +276 -0
- package/dist/src/daemon/unified-daemon.js.map +7 -0
- package/dist/src/features/analytics/api/analytics-api.js +287 -0
- package/dist/src/features/analytics/api/analytics-api.js.map +7 -0
- package/dist/src/features/analytics/core/analytics-service.js +282 -0
- package/dist/src/features/analytics/core/analytics-service.js.map +7 -0
- package/dist/src/features/analytics/index.js +18 -0
- package/dist/src/features/analytics/index.js.map +7 -0
- package/dist/src/features/analytics/queries/metrics-queries.js +277 -0
- package/dist/src/features/analytics/queries/metrics-queries.js.map +7 -0
- package/dist/src/features/analytics/types/metrics.js +5 -0
- package/dist/src/features/analytics/types/metrics.js.map +7 -0
- package/dist/src/features/browser/browser-mcp.js +492 -0
- package/dist/src/features/browser/browser-mcp.js.map +7 -0
- package/dist/src/features/sweep/index.js +20 -0
- package/dist/src/features/sweep/index.js.map +7 -0
- package/dist/src/features/sweep/prediction-client.js +155 -0
- package/dist/src/features/sweep/prediction-client.js.map +7 -0
- package/dist/src/features/sweep/prompt-builder.js +85 -0
- package/dist/src/features/sweep/prompt-builder.js.map +7 -0
- package/dist/src/features/sweep/pty-wrapper.js +171 -0
- package/dist/src/features/sweep/pty-wrapper.js.map +7 -0
- package/dist/src/features/sweep/state-watcher.js +87 -0
- package/dist/src/features/sweep/state-watcher.js.map +7 -0
- package/dist/src/features/sweep/status-bar.js +88 -0
- package/dist/src/features/sweep/status-bar.js.map +7 -0
- package/dist/src/features/sweep/sweep-server-manager.js +226 -0
- package/dist/src/features/sweep/sweep-server-manager.js.map +7 -0
- package/dist/src/features/sweep/tab-interceptor.js +38 -0
- package/dist/src/features/sweep/tab-interceptor.js.map +7 -0
- package/dist/src/features/sweep/types.js +18 -0
- package/dist/src/features/sweep/types.js.map +7 -0
- package/dist/src/features/tasks/linear-task-manager.js +487 -0
- package/dist/src/features/tasks/linear-task-manager.js.map +7 -0
- package/dist/src/features/tasks/task-aware-context.js +410 -0
- package/dist/src/features/tasks/task-aware-context.js.map +7 -0
- package/dist/src/features/tui/simple-monitor.js +116 -0
- package/dist/src/features/tui/simple-monitor.js.map +7 -0
- package/dist/src/features/tui/swarm-monitor.js +648 -0
- package/dist/src/features/tui/swarm-monitor.js.map +7 -0
- package/dist/src/features/web/client/stores/task-store.js +26 -0
- package/dist/src/features/web/client/stores/task-store.js.map +7 -0
- package/dist/src/features/web/server/index.js +194 -0
- package/dist/src/features/web/server/index.js.map +7 -0
- package/dist/src/hooks/auto-background.js +151 -0
- package/dist/src/hooks/auto-background.js.map +7 -0
- package/dist/src/hooks/claude-code-whatsapp-hook.js +197 -0
- package/dist/src/hooks/claude-code-whatsapp-hook.js.map +7 -0
- package/dist/src/hooks/config.js +150 -0
- package/dist/src/hooks/config.js.map +7 -0
- package/dist/src/hooks/daemon.js +364 -0
- package/dist/src/hooks/daemon.js.map +7 -0
- package/dist/src/hooks/events.js +58 -0
- package/dist/src/hooks/events.js.map +7 -0
- package/dist/src/hooks/index.js +12 -0
- package/dist/src/hooks/index.js.map +7 -0
- package/dist/src/hooks/linear-task-picker.js +186 -0
- package/dist/src/hooks/linear-task-picker.js.map +7 -0
- package/dist/src/hooks/schemas.js +197 -0
- package/dist/src/hooks/schemas.js.map +7 -0
- package/dist/src/hooks/secure-fs.js +49 -0
- package/dist/src/hooks/secure-fs.js.map +7 -0
- package/dist/src/hooks/security-logger.js +155 -0
- package/dist/src/hooks/security-logger.js.map +7 -0
- package/dist/src/hooks/session-summary.js +222 -0
- package/dist/src/hooks/session-summary.js.map +7 -0
- package/dist/src/hooks/sms-action-runner.js +371 -0
- package/dist/src/hooks/sms-action-runner.js.map +7 -0
- package/dist/src/hooks/sms-notify.js +506 -0
- package/dist/src/hooks/sms-notify.js.map +7 -0
- package/dist/src/hooks/sms-watcher.js +93 -0
- package/dist/src/hooks/sms-watcher.js.map +7 -0
- package/dist/src/hooks/sms-webhook.js +555 -0
- package/dist/src/hooks/sms-webhook.js.map +7 -0
- package/dist/src/hooks/whatsapp-commands.js +479 -0
- package/dist/src/hooks/whatsapp-commands.js.map +7 -0
- package/dist/src/hooks/whatsapp-scheduler.js +317 -0
- package/dist/src/hooks/whatsapp-scheduler.js.map +7 -0
- package/dist/src/hooks/whatsapp-sync.js +409 -0
- package/dist/src/hooks/whatsapp-sync.js.map +7 -0
- package/dist/src/index.js +25 -0
- package/dist/src/index.js.map +7 -0
- package/dist/src/integrations/anthropic/client.js +263 -0
- package/dist/src/integrations/anthropic/client.js.map +7 -0
- package/dist/src/integrations/claude-code/agent-bridge.js +768 -0
- package/dist/src/integrations/claude-code/agent-bridge.js.map +7 -0
- package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js +459 -0
- package/dist/src/integrations/claude-code/enhanced-pre-clear-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/lifecycle-hooks.js +254 -0
- package/dist/src/integrations/claude-code/lifecycle-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/post-task-hooks.js +545 -0
- package/dist/src/integrations/claude-code/post-task-hooks.js.map +7 -0
- package/dist/src/integrations/claude-code/subagent-client-stub.js +20 -0
- package/dist/src/integrations/claude-code/subagent-client-stub.js.map +7 -0
- package/dist/src/integrations/claude-code/subagent-client.js +511 -0
- package/dist/src/integrations/claude-code/subagent-client.js.map +7 -0
- package/dist/src/integrations/claude-code/task-coordinator.js +360 -0
- package/dist/src/integrations/claude-code/task-coordinator.js.map +7 -0
- package/dist/src/integrations/linear/auth.js +337 -0
- package/dist/src/integrations/linear/auth.js.map +7 -0
- package/dist/src/integrations/linear/auto-sync.js +258 -0
- package/dist/src/integrations/linear/auto-sync.js.map +7 -0
- package/dist/src/integrations/linear/client.js +634 -0
- package/dist/src/integrations/linear/client.js.map +7 -0
- package/dist/src/integrations/linear/config.js +130 -0
- package/dist/src/integrations/linear/config.js.map +7 -0
- package/dist/src/integrations/linear/migration.js +361 -0
- package/dist/src/integrations/linear/migration.js.map +7 -0
- package/dist/src/integrations/linear/oauth-server.js +454 -0
- package/dist/src/integrations/linear/oauth-server.js.map +7 -0
- package/dist/src/integrations/linear/rest-client.js +213 -0
- package/dist/src/integrations/linear/rest-client.js.map +7 -0
- package/dist/src/integrations/linear/sync-manager.js +236 -0
- package/dist/src/integrations/linear/sync-manager.js.map +7 -0
- package/dist/src/integrations/linear/sync-service.js +231 -0
- package/dist/src/integrations/linear/sync-service.js.map +7 -0
- package/dist/src/integrations/linear/sync.js +782 -0
- package/dist/src/integrations/linear/sync.js.map +7 -0
- package/dist/src/integrations/linear/types.js +5 -0
- package/dist/src/integrations/linear/types.js.map +7 -0
- package/dist/src/integrations/linear/unified-sync.js +589 -0
- package/dist/src/integrations/linear/unified-sync.js.map +7 -0
- package/dist/src/integrations/linear/webhook-handler.js +219 -0
- package/dist/src/integrations/linear/webhook-handler.js.map +7 -0
- package/dist/src/integrations/linear/webhook-server.js +218 -0
- package/dist/src/integrations/linear/webhook-server.js.map +7 -0
- package/dist/src/integrations/linear/webhook.js +291 -0
- package/dist/src/integrations/linear/webhook.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/code-execution-handlers.js +266 -0
- package/dist/src/integrations/mcp/handlers/code-execution-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/context-handlers.js +257 -0
- package/dist/src/integrations/mcp/handlers/context-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/discovery-handlers.js +497 -0
- package/dist/src/integrations/mcp/handlers/discovery-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/index.js +166 -0
- package/dist/src/integrations/mcp/handlers/index.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/linear-handlers.js +247 -0
- package/dist/src/integrations/mcp/handlers/linear-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/skill-handlers.js +529 -0
- package/dist/src/integrations/mcp/handlers/skill-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/task-handlers.js +239 -0
- package/dist/src/integrations/mcp/handlers/task-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/handlers/trace-handlers.js +308 -0
- package/dist/src/integrations/mcp/handlers/trace-handlers.js.map +7 -0
- package/dist/src/integrations/mcp/index.js +23 -0
- package/dist/src/integrations/mcp/index.js.map +7 -0
- package/dist/src/integrations/mcp/middleware/tool-scoring.js +356 -0
- package/dist/src/integrations/mcp/middleware/tool-scoring.js.map +7 -0
- package/dist/src/integrations/mcp/refactored-server.js +374 -0
- package/dist/src/integrations/mcp/refactored-server.js.map +7 -0
- package/dist/src/integrations/mcp/remote-server.js +682 -0
- package/dist/src/integrations/mcp/remote-server.js.map +7 -0
- package/dist/src/integrations/mcp/schemas.js +147 -0
- package/dist/src/integrations/mcp/schemas.js.map +7 -0
- package/dist/src/integrations/mcp/server.js +1975 -0
- package/dist/src/integrations/mcp/server.js.map +7 -0
- package/dist/src/integrations/mcp/tool-definitions-code.js +125 -0
- package/dist/src/integrations/mcp/tool-definitions-code.js.map +7 -0
- package/dist/src/integrations/mcp/tool-definitions.js +702 -0
- package/dist/src/integrations/mcp/tool-definitions.js.map +7 -0
- package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js +860 -0
- package/dist/src/integrations/ralph/bridge/ralph-stackmemory-bridge.js.map +7 -0
- package/dist/src/integrations/ralph/context/context-budget-manager.js +301 -0
- package/dist/src/integrations/ralph/context/context-budget-manager.js.map +7 -0
- package/dist/src/integrations/ralph/context/stackmemory-context-loader.js +360 -0
- package/dist/src/integrations/ralph/context/stackmemory-context-loader.js.map +7 -0
- package/dist/src/integrations/ralph/coordination/enhanced-coordination.js +410 -0
- package/dist/src/integrations/ralph/coordination/enhanced-coordination.js.map +7 -0
- package/dist/src/integrations/ralph/index.js +18 -0
- package/dist/src/integrations/ralph/index.js.map +7 -0
- package/dist/src/integrations/ralph/learning/pattern-learner.js +401 -0
- package/dist/src/integrations/ralph/learning/pattern-learner.js.map +7 -0
- package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js +448 -0
- package/dist/src/integrations/ralph/lifecycle/iteration-lifecycle.js.map +7 -0
- package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js +294 -0
- package/dist/src/integrations/ralph/monitoring/swarm-dashboard.js.map +7 -0
- package/dist/src/integrations/ralph/monitoring/swarm-registry.js +108 -0
- package/dist/src/integrations/ralph/monitoring/swarm-registry.js.map +7 -0
- package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js +463 -0
- package/dist/src/integrations/ralph/orchestration/multi-loop-orchestrator.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js +400 -0
- package/dist/src/integrations/ralph/patterns/compounding-engineering-pattern.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js +473 -0
- package/dist/src/integrations/ralph/patterns/extended-coherence-sessions.js.map +7 -0
- package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js +388 -0
- package/dist/src/integrations/ralph/patterns/oracle-worker-pattern.js.map +7 -0
- package/dist/src/integrations/ralph/performance/performance-optimizer.js +358 -0
- package/dist/src/integrations/ralph/performance/performance-optimizer.js.map +7 -0
- package/dist/src/integrations/ralph/recovery/crash-recovery.js +462 -0
- package/dist/src/integrations/ralph/recovery/crash-recovery.js.map +7 -0
- package/dist/src/integrations/ralph/state/state-reconciler.js +404 -0
- package/dist/src/integrations/ralph/state/state-reconciler.js.map +7 -0
- package/dist/src/integrations/ralph/swarm/git-workflow-manager.js +428 -0
- package/dist/src/integrations/ralph/swarm/git-workflow-manager.js.map +7 -0
- package/dist/src/integrations/ralph/swarm/swarm-coordinator.js +996 -0
- package/dist/src/integrations/ralph/swarm/swarm-coordinator.js.map +7 -0
- package/dist/src/integrations/ralph/types.js +5 -0
- package/dist/src/integrations/ralph/types.js.map +7 -0
- package/dist/src/integrations/ralph/visualization/ralph-debugger.js +585 -0
- package/dist/src/integrations/ralph/visualization/ralph-debugger.js.map +7 -0
- package/dist/src/mcp/stackmemory-mcp-server.js +554 -0
- package/dist/src/mcp/stackmemory-mcp-server.js.map +7 -0
- package/dist/src/middleware/exponential-rate-limiter.js +289 -0
- package/dist/src/middleware/exponential-rate-limiter.js.map +7 -0
- package/dist/src/models/user.model.js +358 -0
- package/dist/src/models/user.model.js.map +7 -0
- package/dist/src/servers/production/auth-middleware.js +528 -0
- package/dist/src/servers/production/auth-middleware.js.map +7 -0
- package/dist/src/services/config-service.js +65 -0
- package/dist/src/services/config-service.js.map +7 -0
- package/dist/src/services/context-service.js +194 -0
- package/dist/src/services/context-service.js.map +7 -0
- package/dist/src/skills/api-discovery.js +354 -0
- package/dist/src/skills/api-discovery.js.map +7 -0
- package/dist/src/skills/api-skill.js +475 -0
- package/dist/src/skills/api-skill.js.map +7 -0
- package/dist/src/skills/claude-skills.js +1061 -0
- package/dist/src/skills/claude-skills.js.map +7 -0
- package/dist/src/skills/dashboard-launcher.js +216 -0
- package/dist/src/skills/dashboard-launcher.js.map +7 -0
- package/dist/src/skills/recursive-agent-orchestrator.js +575 -0
- package/dist/src/skills/recursive-agent-orchestrator.js.map +7 -0
- package/dist/src/skills/repo-ingestion-skill.js +609 -0
- package/dist/src/skills/repo-ingestion-skill.js.map +7 -0
- package/dist/src/skills/unified-rlm-orchestrator.js +404 -0
- package/dist/src/skills/unified-rlm-orchestrator.js.map +7 -0
- package/dist/src/types/task.js +5 -0
- package/dist/src/types/task.js.map +7 -0
- package/dist/src/utils/env.js +50 -0
- package/dist/src/utils/env.js.map +7 -0
- package/dist/src/utils/formatting.js +62 -0
- package/dist/src/utils/formatting.js.map +7 -0
- package/dist/src/utils/process-cleanup.js +136 -0
- package/dist/src/utils/process-cleanup.js.map +7 -0
- package/package.json +4 -3
- package/scripts/create-cleanup-issues.js +302 -0
- package/scripts/demos/browser-test.ts +39 -0
- package/scripts/demos/ralph-integration-demo.ts +244 -0
- package/scripts/demos/trace-demo.ts +214 -0
- package/scripts/demos/trace-detector.demo.ts +171 -0
- package/scripts/demos/trace-test.ts +67 -0
- package/scripts/initialize.ts +16 -7
- package/scripts/install.sh +14 -62
- package/scripts/status.ts +111 -46
- package/scripts/test-claude-config.sh +123 -0
- package/scripts/validate-claude-config.sh +155 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Ralph-StackMemory Integration Demonstration
|
|
4
|
+
* Shows how the integration works with a working example
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { RalphStackMemoryBridge } from './bridge/ralph-stackmemory-bridge.js';
|
|
8
|
+
import { logger } from '../../core/monitoring/logger.js';
|
|
9
|
+
import { RalphStackMemoryConfig } from './types.js';
|
|
10
|
+
|
|
11
|
+
class RalphIntegrationDemo {
|
|
12
|
+
private bridge: RalphStackMemoryBridge;
|
|
13
|
+
|
|
14
|
+
constructor() {
|
|
15
|
+
// Configure the bridge for demo
|
|
16
|
+
const config: Partial<RalphStackMemoryConfig> = {
|
|
17
|
+
contextBudget: {
|
|
18
|
+
maxTokens: 2000, // Smaller budget for demo
|
|
19
|
+
compressionEnabled: true,
|
|
20
|
+
adaptiveBudgeting: true,
|
|
21
|
+
},
|
|
22
|
+
performance: {
|
|
23
|
+
asyncSaves: true,
|
|
24
|
+
batchSize: 5,
|
|
25
|
+
compressionLevel: 1,
|
|
26
|
+
cacheEnabled: true,
|
|
27
|
+
},
|
|
28
|
+
lifecycle: {
|
|
29
|
+
checkpoints: {
|
|
30
|
+
enabled: true,
|
|
31
|
+
frequency: 3, // Checkpoint every 3 iterations
|
|
32
|
+
retentionDays: 1, // Short retention for demo
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
this.bridge = new RalphStackMemoryBridge({
|
|
38
|
+
config,
|
|
39
|
+
debug: true,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Run the integration demo
|
|
45
|
+
*/
|
|
46
|
+
async run(): Promise<void> {
|
|
47
|
+
console.log('\n🤖 Ralph-StackMemory Integration Demo\n');
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
// Phase 1: Initialize
|
|
51
|
+
await this.demonstrateInitialization();
|
|
52
|
+
|
|
53
|
+
// Phase 2: Run iterations
|
|
54
|
+
await this.demonstrateIterations();
|
|
55
|
+
|
|
56
|
+
// Phase 3: Show recovery
|
|
57
|
+
await this.demonstrateRecovery();
|
|
58
|
+
|
|
59
|
+
// Phase 4: Show metrics
|
|
60
|
+
await this.demonstrateMetrics();
|
|
61
|
+
|
|
62
|
+
console.log('\n✅ Demo completed successfully!\n');
|
|
63
|
+
} catch (error: any) {
|
|
64
|
+
console.error('\n❌ Demo failed:', error.message);
|
|
65
|
+
throw error;
|
|
66
|
+
} finally {
|
|
67
|
+
await this.cleanup();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Demonstrate initialization
|
|
73
|
+
*/
|
|
74
|
+
private async demonstrateInitialization(): Promise<void> {
|
|
75
|
+
console.log('📋 Phase 1: Initialization');
|
|
76
|
+
console.log('==========================');
|
|
77
|
+
|
|
78
|
+
// Initialize the bridge
|
|
79
|
+
await this.bridge.initialize();
|
|
80
|
+
|
|
81
|
+
// Create a new loop
|
|
82
|
+
const task = 'Implement user authentication system with JWT';
|
|
83
|
+
const criteria = [
|
|
84
|
+
'- User registration endpoint working',
|
|
85
|
+
'- Login endpoint returns JWT token',
|
|
86
|
+
'- Protected routes validate JWT',
|
|
87
|
+
'- Password hashing implemented',
|
|
88
|
+
'- Tests pass with >80% coverage',
|
|
89
|
+
].join('\n');
|
|
90
|
+
|
|
91
|
+
const loopState = await this.bridge.createNewLoop(task, criteria);
|
|
92
|
+
|
|
93
|
+
console.log(`✓ Created Ralph loop: ${loopState.loopId}`);
|
|
94
|
+
console.log(`✓ Task: ${task.substring(0, 50)}...`);
|
|
95
|
+
console.log(`✓ Status: ${loopState.status}`);
|
|
96
|
+
console.log(`✓ Iteration: ${loopState.iteration}`);
|
|
97
|
+
console.log();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Demonstrate iterations with context management
|
|
102
|
+
*/
|
|
103
|
+
private async demonstrateIterations(): Promise<void> {
|
|
104
|
+
console.log('🔄 Phase 2: Iteration Management');
|
|
105
|
+
console.log('=================================');
|
|
106
|
+
|
|
107
|
+
const maxIterations = 5;
|
|
108
|
+
|
|
109
|
+
for (let i = 0; i < maxIterations; i++) {
|
|
110
|
+
console.log(`\n--- Iteration ${i + 1} ---`);
|
|
111
|
+
|
|
112
|
+
// Run worker iteration
|
|
113
|
+
console.log('🔧 Running worker iteration...');
|
|
114
|
+
const iteration = await this.bridge.runWorkerIteration();
|
|
115
|
+
|
|
116
|
+
console.log(
|
|
117
|
+
`✓ Analysis: ${iteration.analysis.filesCount} files, tests ${iteration.analysis.testsPass ? 'pass' : 'fail'}`
|
|
118
|
+
);
|
|
119
|
+
console.log(`✓ Plan: ${iteration.plan.summary}`);
|
|
120
|
+
console.log(`✓ Changes: ${iteration.changes.length} modifications`);
|
|
121
|
+
console.log(
|
|
122
|
+
`✓ Validation: ${iteration.validation.testsPass ? 'pass' : 'fail'}`
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
// Run reviewer iteration
|
|
126
|
+
console.log('👀 Running reviewer iteration...');
|
|
127
|
+
const review = await this.bridge.runReviewerIteration();
|
|
128
|
+
|
|
129
|
+
if (review.complete) {
|
|
130
|
+
console.log('🎉 Task completed!');
|
|
131
|
+
break;
|
|
132
|
+
} else {
|
|
133
|
+
console.log(`📝 Feedback: ${review.feedback?.substring(0, 100)}...`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Show context budget usage
|
|
137
|
+
const usage = this.bridge.getPerformanceMetrics();
|
|
138
|
+
console.log(
|
|
139
|
+
`📊 Token usage: ${usage.tokenCount} / Context load: ${usage.contextLoadTime}ms`
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
// Create checkpoint every few iterations
|
|
143
|
+
if ((i + 1) % 3 === 0) {
|
|
144
|
+
console.log('💾 Creating checkpoint...');
|
|
145
|
+
const checkpoint = await this.bridge.createCheckpoint();
|
|
146
|
+
console.log(`✓ Checkpoint: ${checkpoint.id}`);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Small delay for demo
|
|
150
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Demonstrate crash recovery
|
|
156
|
+
*/
|
|
157
|
+
private async demonstrateRecovery(): Promise<void> {
|
|
158
|
+
console.log('\n🚑 Phase 3: Crash Recovery');
|
|
159
|
+
console.log('===========================');
|
|
160
|
+
|
|
161
|
+
// Simulate getting session ID
|
|
162
|
+
const sessionId = 'demo-session-123';
|
|
163
|
+
|
|
164
|
+
try {
|
|
165
|
+
console.log('🔄 Simulating session rehydration...');
|
|
166
|
+
|
|
167
|
+
// This would normally rehydrate from a real StackMemory session
|
|
168
|
+
// For demo, we'll show the concept
|
|
169
|
+
console.log('✓ Loading context from StackMemory...');
|
|
170
|
+
console.log('✓ Reconciling state from git, files, and memory...');
|
|
171
|
+
console.log('✓ Applying context budget constraints...');
|
|
172
|
+
console.log('✓ Resuming from last iteration...');
|
|
173
|
+
|
|
174
|
+
// Show recovery metrics
|
|
175
|
+
console.log('📈 Recovery successful!');
|
|
176
|
+
console.log(' - Context loaded: 2.1s');
|
|
177
|
+
console.log(' - State reconciled: 0.3s');
|
|
178
|
+
console.log(' - Memory usage: 45MB');
|
|
179
|
+
console.log(' - Cache hit rate: 78%');
|
|
180
|
+
} catch (error: any) {
|
|
181
|
+
console.log(`⚠️ Recovery simulation: ${error.message}`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Demonstrate performance metrics
|
|
187
|
+
*/
|
|
188
|
+
private async demonstrateMetrics(): Promise<void> {
|
|
189
|
+
console.log('\n📊 Phase 4: Performance Metrics');
|
|
190
|
+
console.log('================================');
|
|
191
|
+
|
|
192
|
+
const metrics = this.bridge.getPerformanceMetrics();
|
|
193
|
+
|
|
194
|
+
console.log('Performance Summary:');
|
|
195
|
+
console.log(` Iteration Time: ${metrics.iterationTime}ms avg`);
|
|
196
|
+
console.log(` Context Load Time: ${metrics.contextLoadTime}ms avg`);
|
|
197
|
+
console.log(` State Save Time: ${metrics.stateSaveTime}ms avg`);
|
|
198
|
+
console.log(
|
|
199
|
+
` Memory Usage: ${Math.round(metrics.memoryUsage / 1024 / 1024)}MB`
|
|
200
|
+
);
|
|
201
|
+
console.log(` Token Count: ${metrics.tokenCount}`);
|
|
202
|
+
console.log(` Cache Hit Rate: ${Math.round(metrics.cacheHitRate * 100)}%`);
|
|
203
|
+
|
|
204
|
+
console.log('\nOptimization Features:');
|
|
205
|
+
console.log(' ✓ Async frame saves with batching');
|
|
206
|
+
console.log(' ✓ Context compression and budget management');
|
|
207
|
+
console.log(' ✓ State reconciliation with conflict resolution');
|
|
208
|
+
console.log(' ✓ Lifecycle hooks for clean integration');
|
|
209
|
+
console.log(' ✓ Checkpoint-based recovery');
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Cleanup resources
|
|
214
|
+
*/
|
|
215
|
+
private async cleanup(): Promise<void> {
|
|
216
|
+
console.log('\n🧹 Cleaning up...');
|
|
217
|
+
await this.bridge.cleanup();
|
|
218
|
+
console.log('✓ Resources cleaned up');
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* CLI interface
|
|
224
|
+
*/
|
|
225
|
+
async function main() {
|
|
226
|
+
const demo = new RalphIntegrationDemo();
|
|
227
|
+
|
|
228
|
+
try {
|
|
229
|
+
await demo.run();
|
|
230
|
+
} catch (error: any) {
|
|
231
|
+
console.error('Demo failed:', error.message);
|
|
232
|
+
if (process.env.DEBUG) {
|
|
233
|
+
console.error(error.stack);
|
|
234
|
+
}
|
|
235
|
+
process.exit(1);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Run if called directly
|
|
240
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
241
|
+
main().catch(console.error);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export { RalphIntegrationDemo };
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Trace Demo - Shows how the debug tracing works
|
|
4
|
+
* Run with: DEBUG_TRACE=true npx tsx src/core/trace/trace-demo.ts
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
trace,
|
|
9
|
+
Trace,
|
|
10
|
+
TraceClass,
|
|
11
|
+
enableVerboseTracing,
|
|
12
|
+
createTracedDatabase,
|
|
13
|
+
traceStep,
|
|
14
|
+
} from './index.js';
|
|
15
|
+
import { logger } from '../monitoring/logger.js';
|
|
16
|
+
// Type-safe environment variable access
|
|
17
|
+
function getEnv(key: string, defaultValue?: string): string {
|
|
18
|
+
const value = process.env[key];
|
|
19
|
+
if (value === undefined) {
|
|
20
|
+
if (defaultValue !== undefined) return defaultValue;
|
|
21
|
+
throw new Error(`Environment variable ${key} is required`);
|
|
22
|
+
}
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function getOptionalEnv(key: string): string | undefined {
|
|
27
|
+
return process.env[key];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Example class with tracing
|
|
31
|
+
// @TraceClass() - decorators not enabled in tsconfig
|
|
32
|
+
class ExampleService {
|
|
33
|
+
private data: Map<string, any> = new Map();
|
|
34
|
+
|
|
35
|
+
async fetchData(id: string): Promise<any> {
|
|
36
|
+
// Simulate API call
|
|
37
|
+
await this.delay(50);
|
|
38
|
+
|
|
39
|
+
if (id === 'error') {
|
|
40
|
+
throw new Error('Simulated API error');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return { id, value: Math.random() };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async processData(data: any): Promise<any> {
|
|
47
|
+
return traceStep('Data validation', async () => {
|
|
48
|
+
await this.delay(20);
|
|
49
|
+
|
|
50
|
+
if (!data.id) {
|
|
51
|
+
throw new Error('Invalid data: missing ID');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return traceStep('Data transformation', async () => {
|
|
55
|
+
await this.delay(30);
|
|
56
|
+
return {
|
|
57
|
+
...data,
|
|
58
|
+
processed: true,
|
|
59
|
+
timestamp: Date.now(),
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
cacheData(key: string, value: any): void {
|
|
66
|
+
trace.traceSync('function', 'cacheData', { key, value }, () => {
|
|
67
|
+
this.data.set(key, value);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
private delay(ms: number): Promise<void> {
|
|
72
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Example with database operations
|
|
77
|
+
async function databaseExample() {
|
|
78
|
+
return trace.step('Database operations example', async () => {
|
|
79
|
+
const db = createTracedDatabase(':memory:');
|
|
80
|
+
|
|
81
|
+
// Create table
|
|
82
|
+
db.exec(`
|
|
83
|
+
CREATE TABLE users (
|
|
84
|
+
id INTEGER PRIMARY KEY,
|
|
85
|
+
name TEXT NOT NULL,
|
|
86
|
+
email TEXT UNIQUE,
|
|
87
|
+
created_at INTEGER DEFAULT (strftime('%s', 'now'))
|
|
88
|
+
)
|
|
89
|
+
`);
|
|
90
|
+
|
|
91
|
+
// Insert data
|
|
92
|
+
const insert = db.prepare('INSERT INTO users (name, email) VALUES (?, ?)');
|
|
93
|
+
insert.run('Alice', 'alice@example.com');
|
|
94
|
+
insert.run('Bob', 'bob@example.com');
|
|
95
|
+
|
|
96
|
+
// Query data
|
|
97
|
+
const select = db.prepare('SELECT * FROM users WHERE name = ?');
|
|
98
|
+
const user = select.get('Alice');
|
|
99
|
+
|
|
100
|
+
// Complex query (will trigger slow query warning if threshold is low)
|
|
101
|
+
const complex = db.prepare(`
|
|
102
|
+
SELECT
|
|
103
|
+
name,
|
|
104
|
+
COUNT(*) as count,
|
|
105
|
+
MAX(created_at) as latest
|
|
106
|
+
FROM users
|
|
107
|
+
GROUP BY name
|
|
108
|
+
HAVING COUNT(*) > 0
|
|
109
|
+
`);
|
|
110
|
+
const results = complex.all();
|
|
111
|
+
|
|
112
|
+
db.close();
|
|
113
|
+
|
|
114
|
+
return { user, results };
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Main demo function
|
|
119
|
+
async function runDemo() {
|
|
120
|
+
console.log('\n' + '='.repeat(80));
|
|
121
|
+
console.log('STACKMEMORY DEBUG TRACE DEMO');
|
|
122
|
+
console.log('='.repeat(80) + '\n');
|
|
123
|
+
|
|
124
|
+
// Enable verbose tracing for the demo
|
|
125
|
+
if (process.env['DEBUG_TRACE'] !== 'true') {
|
|
126
|
+
console.log('Enabling verbose tracing for this demo...\n');
|
|
127
|
+
enableVerboseTracing();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
try {
|
|
131
|
+
// Example 1: Service operations
|
|
132
|
+
await trace.command('demo:service', { example: 'service' }, async () => {
|
|
133
|
+
const service = new ExampleService();
|
|
134
|
+
|
|
135
|
+
console.log('\n--- Example 1: Service Operations ---\n');
|
|
136
|
+
|
|
137
|
+
// Successful operation
|
|
138
|
+
const data = await service.fetchData('test-1');
|
|
139
|
+
const processed = await service.processData(data);
|
|
140
|
+
service.cacheData('test-1', processed);
|
|
141
|
+
|
|
142
|
+
console.log('Service operation completed\n');
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// Example 2: Database operations
|
|
146
|
+
await trace.command('demo:database', { example: 'database' }, async () => {
|
|
147
|
+
console.log('\n--- Example 2: Database Operations ---\n');
|
|
148
|
+
|
|
149
|
+
const results = await databaseExample();
|
|
150
|
+
|
|
151
|
+
console.log('Database operations completed');
|
|
152
|
+
console.log(' Found user:', results.user);
|
|
153
|
+
console.log(' Query results:', results.results);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
// Example 3: Error handling
|
|
157
|
+
await trace.command('demo:errors', { example: 'errors' }, async () => {
|
|
158
|
+
console.log('\n--- Example 3: Error Handling ---\n');
|
|
159
|
+
|
|
160
|
+
const service = new ExampleService();
|
|
161
|
+
|
|
162
|
+
try {
|
|
163
|
+
await service.fetchData('error');
|
|
164
|
+
} catch (error: unknown) {
|
|
165
|
+
console.log('Error properly traced and handled\n');
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
// Example 4: Performance tracking
|
|
170
|
+
await trace.command(
|
|
171
|
+
'demo:performance',
|
|
172
|
+
{ example: 'performance' },
|
|
173
|
+
async () => {
|
|
174
|
+
console.log('\n--- Example 4: Performance Tracking ---\n');
|
|
175
|
+
|
|
176
|
+
// Simulate slow operation
|
|
177
|
+
await trace.step('Slow operation', async () => {
|
|
178
|
+
await new Promise((resolve) => setTimeout(resolve, 150));
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// Simulate fast operations
|
|
182
|
+
for (let i = 0; i < 3; i++) {
|
|
183
|
+
await trace.step(`Fast operation ${i + 1}`, async () => {
|
|
184
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
console.log('Performance tracking completed\n');
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
} catch (error: unknown) {
|
|
192
|
+
console.error('Demo failed:', error);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Show execution summary
|
|
196
|
+
console.log('\n' + trace.getExecutionSummary());
|
|
197
|
+
|
|
198
|
+
// Export traces for analysis
|
|
199
|
+
const traces = trace.exportTraces();
|
|
200
|
+
console.log(`\nTotal traces collected: ${traces.length}`);
|
|
201
|
+
|
|
202
|
+
// Show example trace entry
|
|
203
|
+
if (traces.length > 0) {
|
|
204
|
+
console.log('\nExample trace entry:');
|
|
205
|
+
console.log(JSON.stringify(traces[0], null, 2));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Run the demo
|
|
210
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
211
|
+
runDemo().catch(console.error);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export { runDemo };
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demo script to showcase Trace Detection functionality
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { TraceDetector } from './trace-detector.js';
|
|
6
|
+
import { ToolCall } from './types.js';
|
|
7
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
8
|
+
|
|
9
|
+
// Create a new trace detector
|
|
10
|
+
const detector = new TraceDetector();
|
|
11
|
+
|
|
12
|
+
console.log('Trace Detection Demo\n');
|
|
13
|
+
console.log('='.repeat(50));
|
|
14
|
+
|
|
15
|
+
// Simulate a search-driven modification trace
|
|
16
|
+
console.log('\n📋 Simulating Search-Driven Modification:');
|
|
17
|
+
const baseTime = Date.now();
|
|
18
|
+
|
|
19
|
+
const searchDrivenTools: ToolCall[] = [
|
|
20
|
+
{
|
|
21
|
+
id: uuidv4(),
|
|
22
|
+
tool: 'search',
|
|
23
|
+
timestamp: baseTime,
|
|
24
|
+
arguments: { query: 'authentication bug' },
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: uuidv4(),
|
|
28
|
+
tool: 'grep',
|
|
29
|
+
timestamp: baseTime + 1000,
|
|
30
|
+
arguments: { pattern: 'auth.*error' },
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: uuidv4(),
|
|
34
|
+
tool: 'read',
|
|
35
|
+
timestamp: baseTime + 2000,
|
|
36
|
+
filesAffected: ['/src/auth/login.ts'],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: uuidv4(),
|
|
40
|
+
tool: 'edit',
|
|
41
|
+
timestamp: baseTime + 3000,
|
|
42
|
+
filesAffected: ['/src/auth/login.ts'],
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
searchDrivenTools.forEach((tool) => {
|
|
47
|
+
detector.addToolCall(tool);
|
|
48
|
+
console.log(` Added: ${tool.tool}`);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Simulate an error recovery trace (separate due to time gap)
|
|
52
|
+
console.log('\nSimulating Error Recovery:');
|
|
53
|
+
const errorTime = baseTime + 40000; // 40 seconds later
|
|
54
|
+
|
|
55
|
+
const errorRecoveryTools: ToolCall[] = [
|
|
56
|
+
{
|
|
57
|
+
id: uuidv4(),
|
|
58
|
+
tool: 'bash',
|
|
59
|
+
timestamp: errorTime,
|
|
60
|
+
arguments: { command: 'npm test' },
|
|
61
|
+
error: 'Test failed: TypeError',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: uuidv4(),
|
|
65
|
+
tool: 'edit',
|
|
66
|
+
timestamp: errorTime + 1000,
|
|
67
|
+
filesAffected: ['/src/utils/validator.ts'],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: uuidv4(),
|
|
71
|
+
tool: 'bash',
|
|
72
|
+
timestamp: errorTime + 2000,
|
|
73
|
+
arguments: { command: 'npm test' },
|
|
74
|
+
result: 'All tests passing',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
errorRecoveryTools.forEach((tool) => {
|
|
79
|
+
detector.addToolCall(tool);
|
|
80
|
+
console.log(` Added: ${tool.tool}${tool.error ? ' (with error)' : ''}`);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
// Simulate a feature implementation trace
|
|
84
|
+
console.log('\n✨ Simulating Feature Implementation:');
|
|
85
|
+
const featureTime = baseTime + 80000; // 80 seconds later
|
|
86
|
+
|
|
87
|
+
const featureTools: ToolCall[] = [
|
|
88
|
+
{
|
|
89
|
+
id: uuidv4(),
|
|
90
|
+
tool: 'write',
|
|
91
|
+
timestamp: featureTime,
|
|
92
|
+
filesAffected: ['/src/components/Dashboard.tsx'],
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: uuidv4(),
|
|
96
|
+
tool: 'edit',
|
|
97
|
+
timestamp: featureTime + 1000,
|
|
98
|
+
filesAffected: ['/src/components/Dashboard.tsx'],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: uuidv4(),
|
|
102
|
+
tool: 'test',
|
|
103
|
+
timestamp: featureTime + 2000,
|
|
104
|
+
arguments: { file: 'Dashboard.test.tsx' },
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
featureTools.forEach((tool) => {
|
|
109
|
+
detector.addToolCall(tool);
|
|
110
|
+
console.log(` Added: ${tool.tool}`);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
// Flush any pending traces
|
|
114
|
+
detector.flush();
|
|
115
|
+
|
|
116
|
+
// Get statistics
|
|
117
|
+
console.log('\nTrace Statistics:');
|
|
118
|
+
console.log('='.repeat(50));
|
|
119
|
+
const stats = detector.getStatistics();
|
|
120
|
+
console.log(`Total Traces: ${stats.totalTraces}`);
|
|
121
|
+
console.log(`Average Score: ${stats.averageScore.toFixed(2)}`);
|
|
122
|
+
console.log(`Average Length: ${stats.averageLength.toFixed(1)} tools`);
|
|
123
|
+
console.log(`High Importance (>0.7): ${stats.highImportanceCount}`);
|
|
124
|
+
|
|
125
|
+
console.log('\nTrace Types:');
|
|
126
|
+
Object.entries(stats.tracesByType).forEach(([type, count]) => {
|
|
127
|
+
console.log(` ${type}: ${count}`);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// Display all traces
|
|
131
|
+
console.log('\nDetected Traces:');
|
|
132
|
+
console.log('='.repeat(50));
|
|
133
|
+
const traces = detector.getTraces();
|
|
134
|
+
traces.forEach((trace, index) => {
|
|
135
|
+
console.log(`\nTrace ${index + 1}:`);
|
|
136
|
+
console.log(` Type: ${trace.type}`);
|
|
137
|
+
console.log(` Score: ${trace.score.toFixed(2)}`);
|
|
138
|
+
console.log(` Tools: ${trace.tools.map((t) => t.tool).join(' → ')}`);
|
|
139
|
+
console.log(` Summary: ${trace.summary}`);
|
|
140
|
+
console.log(
|
|
141
|
+
` Duration: ${((trace.metadata.endTime - trace.metadata.startTime) / 1000).toFixed(1)}s`
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
if (trace.metadata.filesModified.length > 0) {
|
|
145
|
+
console.log(` Files Modified: ${trace.metadata.filesModified.join(', ')}`);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (trace.metadata.errorsEncountered.length > 0) {
|
|
149
|
+
console.log(` Errors: ${trace.metadata.errorsEncountered.join(', ')}`);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (trace.metadata.causalChain) {
|
|
153
|
+
console.log(` ✓ Causal Chain Detected (error→fix→verify)`);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// Test high-importance trace filtering
|
|
158
|
+
console.log('\n⭐ High Importance Traces (score > 0.3):');
|
|
159
|
+
const highImportance = detector.getHighImportanceTraces(0.3);
|
|
160
|
+
highImportance.forEach((trace) => {
|
|
161
|
+
console.log(
|
|
162
|
+
` [${trace.type}] Score: ${trace.score.toFixed(2)} - ${trace.summary}`
|
|
163
|
+
);
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
// Export traces as JSON
|
|
167
|
+
console.log('\n💾 Exporting traces to JSON...');
|
|
168
|
+
const exported = detector.exportTraces();
|
|
169
|
+
console.log(`Exported ${exported.length} characters of JSON data`);
|
|
170
|
+
|
|
171
|
+
console.log('\nDemo complete!');
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test the trace detection integration with MCP server
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import LocalStackMemoryMCP from './server';
|
|
6
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
7
|
+
|
|
8
|
+
async function testTraceIntegration() {
|
|
9
|
+
console.log('🧪 Testing Trace Detection in MCP Server\n');
|
|
10
|
+
|
|
11
|
+
// Mock minimal server setup
|
|
12
|
+
const mockServer = {
|
|
13
|
+
setRequestHandler: () => {},
|
|
14
|
+
connect: () => Promise.resolve(),
|
|
15
|
+
} as any;
|
|
16
|
+
|
|
17
|
+
// Access the private methods through prototype
|
|
18
|
+
const MCPClass = LocalStackMemoryMCP as any;
|
|
19
|
+
const mcp = new MCPClass();
|
|
20
|
+
|
|
21
|
+
// Simulate tool calls directly on the trace detector
|
|
22
|
+
console.log('📋 Simulating tool calls:');
|
|
23
|
+
|
|
24
|
+
// Simulate a search-driven trace
|
|
25
|
+
const baseTime = Date.now();
|
|
26
|
+
mcp.traceDetector.addToolCall({
|
|
27
|
+
id: '1',
|
|
28
|
+
tool: 'get_context',
|
|
29
|
+
timestamp: baseTime,
|
|
30
|
+
arguments: { query: 'authentication' },
|
|
31
|
+
});
|
|
32
|
+
console.log(' ✓ Added get_context');
|
|
33
|
+
|
|
34
|
+
mcp.traceDetector.addToolCall({
|
|
35
|
+
id: '2',
|
|
36
|
+
tool: 'add_decision',
|
|
37
|
+
timestamp: baseTime + 1000,
|
|
38
|
+
arguments: { content: 'Use JWT tokens', type: 'decision' },
|
|
39
|
+
});
|
|
40
|
+
console.log(' ✓ Added add_decision');
|
|
41
|
+
|
|
42
|
+
mcp.traceDetector.addToolCall({
|
|
43
|
+
id: '3',
|
|
44
|
+
tool: 'start_frame',
|
|
45
|
+
timestamp: baseTime + 2000,
|
|
46
|
+
arguments: { name: 'implement-auth' },
|
|
47
|
+
});
|
|
48
|
+
console.log(' ✓ Added start_frame');
|
|
49
|
+
|
|
50
|
+
// Flush traces
|
|
51
|
+
mcp.traceDetector.flush();
|
|
52
|
+
|
|
53
|
+
// Get statistics
|
|
54
|
+
const stats = await mcp.handleGetTraceStatistics({});
|
|
55
|
+
console.log('\n📊 Trace Statistics:');
|
|
56
|
+
console.log(stats.content[0].text);
|
|
57
|
+
|
|
58
|
+
// Get traces
|
|
59
|
+
const traces = await mcp.handleGetTraces({ limit: 10 });
|
|
60
|
+
console.log('\n📝 Detected Traces:');
|
|
61
|
+
console.log(traces.content[0].text);
|
|
62
|
+
|
|
63
|
+
console.log('\n✅ MCP Trace Integration Test Complete!');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Run the test
|
|
67
|
+
testTraceIntegration().catch(console.error);
|