@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/integrations/mcp/remote-server.ts"],
|
|
4
|
-
"sourcesContent": ["#!/usr/bin/env node\n/**\n * StackMemory Remote MCP Server\n * HTTP/SSE transport for Claude.ai web connector and other remote clients\n */\n\nimport express from 'express';\nimport cors from 'cors';\nimport { Server } from '@modelcontextprotocol/sdk/server/index.js';\nimport { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';\nimport { z } from 'zod';\nimport Database from 'better-sqlite3';\nimport { validateInput, StartFrameSchema, AddAnchorSchema } from './schemas.js';\nimport { readFileSync, existsSync, mkdirSync } from 'fs';\nimport { randomUUID } from 'crypto';\nimport { join, dirname } from 'path';\nimport { execSync } from 'child_process';\nimport { FrameManager, FrameType } from '../../core/context/index.js';\nimport { logger } from '../../core/monitoring/logger.js';\nimport { isFeatureEnabled } from '../../core/config/feature-flags.js';\n\n// Type imports for optional Linear integration\ntype LinearTaskManager =\n import('../../features/tasks/linear-task-manager.js').LinearTaskManager;\ntype LinearAuthManager = import('../linear/auth.js').LinearAuthManager;\ntype LinearSyncEngine = import('../linear/sync.js').LinearSyncEngine;\n\nconst DEFAULT_PORT = 3847;\n\nclass RemoteStackMemoryMCP {\n private server: Server;\n private db: Database.Database;\n private projectRoot: string;\n private frameManager: FrameManager;\n private taskStore: LinearTaskManager | null = null;\n private linearAuthManager: LinearAuthManager | null = null;\n private linearSync: LinearSyncEngine | null = null;\n private projectId: string;\n private contexts: Map<string, any> = new Map();\n private transport: StreamableHTTPServerTransport | null = null;\n\n constructor(projectRoot?: string) {\n this.projectRoot = projectRoot || this.findProjectRoot();\n this.projectId = this.getProjectId();\n\n // Ensure .stackmemory directory exists\n const dbDir = join(this.projectRoot, '.stackmemory');\n if (!existsSync(dbDir)) {\n mkdirSync(dbDir, { recursive: true });\n }\n\n // Initialize database\n const dbPath = join(dbDir, 'context.db');\n this.db = new Database(dbPath);\n this.initDB();\n\n // Initialize frame manager\n this.frameManager = new FrameManager(this.db, this.projectId);\n\n // Initialize Linear integration\n this.initLinearIfEnabled();\n\n // Initialize MCP server\n this.server = new Server(\n {\n name: 'stackmemory-remote',\n version: '0.1.0',\n },\n {\n capabilities: {\n tools: {},\n },\n }\n );\n\n this.setupHandlers();\n this.loadInitialContext();\n\n logger.info('StackMemory Remote MCP Server initialized', {\n projectRoot: this.projectRoot,\n projectId: this.projectId,\n });\n }\n\n private findProjectRoot(): string {\n let dir = process.cwd();\n while (dir !== '/') {\n if (existsSync(join(dir, '.git'))) {\n return dir;\n }\n dir = dirname(dir);\n }\n return process.cwd();\n }\n\n private async initLinearIfEnabled(): Promise<void> {\n if (!isFeatureEnabled('linear')) {\n return;\n }\n\n try {\n const { LinearTaskManager } =\n await import('../../features/tasks/linear-task-manager.js');\n const { LinearAuthManager } = await import('../linear/auth.js');\n const { LinearSyncEngine, DEFAULT_SYNC_CONFIG } =\n await import('../linear/sync.js');\n\n this.taskStore = new LinearTaskManager(this.projectRoot, this.db);\n this.linearAuthManager = new LinearAuthManager(this.projectRoot);\n this.linearSync = new LinearSyncEngine(\n this.taskStore,\n this.linearAuthManager,\n DEFAULT_SYNC_CONFIG\n );\n } catch (error) {\n logger.warn('Failed to initialize Linear integration', { error });\n }\n }\n\n private initDB() {\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS contexts (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n content TEXT NOT NULL,\n importance REAL DEFAULT 0.5,\n created_at INTEGER DEFAULT (unixepoch()),\n last_accessed INTEGER DEFAULT (unixepoch()),\n access_count INTEGER DEFAULT 1\n );\n\n CREATE TABLE IF NOT EXISTS attention_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n context_id TEXT,\n query TEXT,\n response TEXT,\n influence_score REAL,\n timestamp INTEGER DEFAULT (unixepoch())\n );\n `);\n }\n\n private loadInitialContext() {\n const projectInfo = this.getProjectInfo();\n this.addContext(\n 'project',\n `Project: ${projectInfo.name}\\nPath: ${projectInfo.path}`,\n 0.9\n );\n\n try {\n const recentCommits = execSync('git log --oneline -10', {\n cwd: this.projectRoot,\n }).toString();\n this.addContext('git_history', `Recent commits:\\n${recentCommits}`, 0.6);\n } catch {\n // Not a git repo\n }\n\n const readmePath = join(this.projectRoot, 'README.md');\n if (existsSync(readmePath)) {\n const readme = readFileSync(readmePath, 'utf-8');\n const summary = readme.substring(0, 500);\n this.addContext('readme', `Project README:\\n${summary}...`, 0.8);\n }\n\n this.loadStoredContexts();\n }\n\n private getProjectId(): string {\n let identifier: string;\n try {\n identifier = execSync('git config --get remote.origin.url', {\n cwd: this.projectRoot,\n stdio: 'pipe',\n timeout: 5000,\n })\n .toString()\n .trim();\n } catch {\n identifier = this.projectRoot;\n }\n\n const cleaned = identifier\n .replace(/\\.git$/, '')\n .replace(/[^a-zA-Z0-9-]/g, '-')\n .toLowerCase();\n\n return cleaned.substring(cleaned.length - 50) || 'unknown';\n }\n\n private getProjectInfo() {\n const packageJsonPath = join(this.projectRoot, 'package.json');\n if (existsSync(packageJsonPath)) {\n const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n return {\n name: pkg.name || 'unknown',\n path: this.projectRoot,\n };\n }\n return {\n name: this.projectRoot.split('/').pop() || 'unknown',\n path: this.projectRoot,\n };\n }\n\n private addContext(type: string, content: string, importance: number = 0.5) {\n const id = `${type}_${Date.now()}`;\n\n this.db\n .prepare(\n `\n INSERT OR REPLACE INTO contexts (id, type, content, importance)\n VALUES (?, ?, ?, ?)\n `\n )\n .run(id, type, content, importance);\n\n this.contexts.set(id, { type, content, importance });\n return id;\n }\n\n private loadStoredContexts() {\n const stored = this.db\n .prepare(\n `\n SELECT * FROM contexts\n ORDER BY importance DESC, last_accessed DESC\n LIMIT 50\n `\n )\n .all() as any[];\n\n stored.forEach((ctx) => {\n this.contexts.set(ctx.id, ctx);\n });\n }\n\n private setupHandlers() {\n // Tool listing\n this.server.setRequestHandler(\n z.object({\n method: z.literal('tools/list'),\n }),\n async () => {\n return {\n tools: [\n {\n name: 'get_context',\n description: 'Get current project context',\n inputSchema: {\n type: 'object',\n properties: {\n query: {\n type: 'string',\n description: 'What you want to know',\n },\n limit: {\n type: 'number',\n description: 'Max contexts to return',\n },\n },\n },\n },\n {\n name: 'add_decision',\n description: 'Record a decision or important information',\n inputSchema: {\n type: 'object',\n properties: {\n content: {\n type: 'string',\n description: 'The decision or information',\n },\n type: {\n type: 'string',\n enum: ['decision', 'constraint', 'learning'],\n },\n },\n required: ['content', 'type'],\n },\n },\n {\n name: 'start_frame',\n description: 'Start a new frame (task/subtask) on the call stack',\n inputSchema: {\n type: 'object',\n properties: {\n name: { type: 'string', description: 'Frame name/goal' },\n type: {\n type: 'string',\n enum: [\n 'task',\n 'subtask',\n 'tool_scope',\n 'review',\n 'write',\n 'debug',\n ],\n description: 'Frame type',\n },\n constraints: {\n type: 'array',\n items: { type: 'string' },\n description: 'Constraints for this frame',\n },\n },\n required: ['name', 'type'],\n },\n },\n {\n name: 'close_frame',\n description: 'Close current frame and generate digest',\n inputSchema: {\n type: 'object',\n properties: {\n result: {\n type: 'string',\n description: 'Frame completion result',\n },\n outputs: {\n type: 'object',\n description: 'Final outputs from frame',\n },\n },\n },\n },\n {\n name: 'add_anchor',\n description:\n 'Add anchored fact/decision/constraint to current frame',\n inputSchema: {\n type: 'object',\n properties: {\n type: {\n type: 'string',\n enum: [\n 'FACT',\n 'DECISION',\n 'CONSTRAINT',\n 'INTERFACE_CONTRACT',\n 'TODO',\n 'RISK',\n ],\n description: 'Anchor type',\n },\n text: { type: 'string', description: 'Anchor content' },\n priority: {\n type: 'number',\n description: 'Priority (0-10)',\n minimum: 0,\n maximum: 10,\n },\n },\n required: ['type', 'text'],\n },\n },\n {\n name: 'get_hot_stack',\n description: 'Get current active frames and context',\n inputSchema: {\n type: 'object',\n properties: {\n maxEvents: {\n type: 'number',\n description: 'Max recent events per frame',\n default: 20,\n },\n },\n },\n },\n {\n name: 'sm_search',\n description:\n 'Search across StackMemory - frames, events, decisions, tasks',\n inputSchema: {\n type: 'object',\n properties: {\n query: { type: 'string', description: 'Search query' },\n scope: {\n type: 'string',\n enum: ['all', 'frames', 'events', 'decisions', 'tasks'],\n description: 'Scope of search',\n },\n limit: { type: 'number', description: 'Maximum results' },\n },\n required: ['query'],\n },\n },\n ],\n };\n }\n );\n\n // Tool execution\n this.server.setRequestHandler(\n z.object({\n method: z.literal('tools/call'),\n params: z.object({\n name: z.string(),\n arguments: z.record(z.unknown()),\n }),\n }),\n async (request) => {\n const { name, arguments: args } = request.params;\n\n try {\n switch (name) {\n case 'get_context':\n return this.handleGetContext(args);\n case 'add_decision':\n return this.handleAddDecision(args);\n case 'start_frame':\n return this.handleStartFrame(args);\n case 'close_frame':\n return this.handleCloseFrame(args);\n case 'add_anchor':\n return this.handleAddAnchor(args);\n case 'get_hot_stack':\n return this.handleGetHotStack(args);\n case 'sm_search':\n return this.handleSmSearch(args);\n default:\n throw new Error(`Unknown tool: ${name}`);\n }\n } catch (error: any) {\n return {\n content: [{ type: 'text', text: `Error: ${error.message}` }],\n };\n }\n }\n );\n }\n\n private async handleGetContext(args: any) {\n const { query = '', limit = 10 } = args;\n\n const contexts = Array.from(this.contexts.values())\n .sort((a, b) => b.importance - a.importance)\n .slice(0, limit);\n\n const response = contexts\n .map(\n (ctx) =>\n `[${ctx.type.toUpperCase()}] (importance: ${ctx.importance.toFixed(2)})\\n${ctx.content}`\n )\n .join('\\n\\n---\\n\\n');\n\n return {\n content: [\n {\n type: 'text',\n text: response || 'No context available yet.',\n },\n ],\n };\n }\n\n private async handleAddDecision(args: any) {\n const { content, type = 'decision' } = args;\n const id = this.addContext(type, content, 0.8);\n\n return {\n content: [\n {\n type: 'text',\n text: `Added ${type}: ${content}\\nID: ${id}`,\n },\n ],\n };\n }\n\n private async handleStartFrame(args: unknown) {\n const { name, type, constraints } = validateInput(\n StartFrameSchema,\n args,\n 'start_frame'\n );\n\n const inputs: Record<string, any> = {};\n if (constraints) {\n inputs.constraints = constraints;\n }\n\n const frameId = this.frameManager.createFrame({\n type: type as FrameType,\n name,\n inputs,\n });\n\n this.addContext('active_frame', `Active frame: ${name} (${type})`, 0.9);\n\n return {\n content: [\n {\n type: 'text',\n text: `Started ${type}: ${name}\\nFrame ID: ${frameId}\\nStack depth: ${this.frameManager.getStackDepth()}`,\n },\n ],\n };\n }\n\n private async handleCloseFrame(args: any) {\n const { result, outputs } = args;\n const currentFrameId = this.frameManager.getCurrentFrameId();\n\n if (!currentFrameId) {\n return {\n content: [{ type: 'text', text: 'No active frame to close' }],\n };\n }\n\n this.frameManager.closeFrame(currentFrameId, outputs);\n\n return {\n content: [\n {\n type: 'text',\n text: `Closed frame: ${result || 'completed'}\\nStack depth: ${this.frameManager.getStackDepth()}`,\n },\n ],\n };\n }\n\n private async handleAddAnchor(args: unknown) {\n const { type, text, priority } = validateInput(\n AddAnchorSchema,\n args,\n 'add_anchor'\n );\n\n const anchorId = this.frameManager.addAnchor(type, text, priority);\n\n return {\n content: [\n {\n type: 'text',\n text: `Added ${type}: ${text}\\nAnchor ID: ${anchorId}`,\n },\n ],\n };\n }\n\n private async handleGetHotStack(args: any) {\n const { maxEvents = 20 } = args;\n\n const hotStack = this.frameManager.getHotStackContext(maxEvents);\n const activePath = this.frameManager.getActiveFramePath();\n\n if (hotStack.length === 0) {\n return {\n content: [\n {\n type: 'text',\n text: 'No active frames. Start a frame with start_frame tool.',\n },\n ],\n };\n }\n\n let response = 'Active Call Stack:\\n\\n';\n\n activePath.forEach((frame, index) => {\n const indent = ' '.repeat(index);\n const context = hotStack[index];\n\n response += `${indent}${index + 1}. ${frame.name} (${frame.type})\\n`;\n\n if (context?.anchors?.length > 0) {\n response += `${indent} Anchors: ${context.anchors.length}\\n`;\n }\n\n if (context?.recentEvents?.length > 0) {\n response += `${indent} Events: ${context.recentEvents.length}\\n`;\n }\n\n response += '\\n';\n });\n\n response += `Total stack depth: ${hotStack.length}`;\n\n return {\n content: [{ type: 'text', text: response }],\n };\n }\n\n private async handleSmSearch(args: any) {\n const { query, scope = 'all', limit = 20 } = args;\n\n if (!query) {\n throw new Error('Query is required');\n }\n\n const results: any[] = [];\n\n if (scope === 'all' || scope === 'frames') {\n const frames = this.db\n .prepare(\n `\n SELECT frame_id, name, type, created_at\n FROM frames\n WHERE project_id = ? AND (name LIKE ? OR inputs LIKE ? OR outputs LIKE ?)\n ORDER BY created_at DESC\n LIMIT ?\n `\n )\n .all(\n this.projectId,\n `%${query}%`,\n `%${query}%`,\n `%${query}%`,\n limit\n ) as any[];\n\n frames.forEach((f) => {\n results.push({\n type: 'frame',\n id: f.frame_id,\n name: f.name,\n frameType: f.type,\n });\n });\n }\n\n if (scope === 'all' || scope === 'decisions') {\n const anchors = this.db\n .prepare(\n `\n SELECT a.anchor_id, a.type, a.text, f.name as frame_name\n FROM anchors a\n JOIN frames f ON a.frame_id = f.frame_id\n WHERE f.project_id = ? AND a.text LIKE ?\n ORDER BY a.created_at DESC\n LIMIT ?\n `\n )\n .all(this.projectId, `%${query}%`, limit) as any[];\n\n anchors.forEach((a) => {\n results.push({\n type: 'decision',\n id: a.anchor_id,\n decisionType: a.type,\n text: a.text,\n frame: a.frame_name,\n });\n });\n }\n\n let response = `Search Results for \"${query}\"\\n\\n`;\n response += `Found ${results.length} results\\n\\n`;\n\n results.slice(0, 10).forEach((r) => {\n if (r.type === 'frame') {\n response += `[Frame] ${r.name} (${r.frameType})\\n`;\n } else if (r.type === 'decision') {\n response += `[${r.decisionType}] ${r.text.slice(0, 60)}...\\n`;\n }\n });\n\n return {\n content: [{ type: 'text', text: response }],\n };\n }\n\n /**\n * Start the HTTP/SSE server\n */\n async startHttpServer(port: number = DEFAULT_PORT): Promise<void> {\n const app = express();\n\n // CORS configuration for Claude.ai\n app.use(\n cors({\n origin: [\n 'https://claude.ai',\n 'https://console.anthropic.com',\n /^http:\\/\\/localhost:\\d+$/,\n ],\n credentials: true,\n })\n );\n\n app.use(express.json());\n\n // Health check endpoint\n app.get('/health', (req, res) => {\n res.json({\n status: 'ok',\n server: 'stackmemory-remote',\n projectId: this.projectId,\n projectRoot: this.projectRoot,\n });\n });\n\n // Create StreamableHTTP transport (replaces SSE)\n this.transport = new StreamableHTTPServerTransport({\n sessionIdGenerator: () => randomUUID(),\n });\n\n // Connect server to transport\n await this.server.connect(this.transport);\n\n // MCP endpoint - handles all MCP requests (GET for SSE, POST for messages)\n app.all('/mcp', async (req, res) => {\n logger.info('MCP request', { method: req.method });\n try {\n await this.transport!.handleRequest(req, res, req.body);\n } catch (error) {\n logger.error('MCP request error', { error });\n if (!res.headersSent) {\n res.status(500).json({ error: 'Internal server error' });\n }\n }\n });\n\n // Legacy SSE endpoint - redirect to /mcp\n app.get('/sse', (req, res) => {\n res.redirect(307, '/mcp');\n });\n\n // Legacy message endpoint - redirect to /mcp\n app.post('/message', (req, res) => {\n res.redirect(307, '/mcp');\n });\n\n // Server info endpoint\n app.get('/info', (req, res) => {\n res.json({\n name: 'stackmemory-remote',\n version: '0.2.0',\n protocol: 'mcp',\n transport: 'streamable-http',\n endpoints: {\n mcp: '/mcp',\n health: '/health',\n info: '/info',\n },\n project: {\n id: this.projectId,\n root: this.projectRoot,\n name: this.getProjectInfo().name,\n },\n });\n });\n\n return new Promise((resolve) => {\n app.listen(port, () => {\n console.log(\n `StackMemory Remote MCP Server running on http://localhost:${port}`\n );\n console.log(`\\nEndpoints:`);\n console.log(` MCP: http://localhost:${port}/mcp`);\n console.log(` Health: http://localhost:${port}/health`);\n console.log(` Info: http://localhost:${port}/info`);\n console.log(\n `\\nProject: ${this.getProjectInfo().name} (${this.projectId})`\n );\n console.log(\n `\\nFor Claude.ai connector, use: http://localhost:${port}/sse`\n );\n resolve();\n });\n });\n }\n}\n\n// Export the class\nexport default RemoteStackMemoryMCP;\n\n// Export function to run the server\nexport async function runRemoteMCPServer(\n port: number = DEFAULT_PORT,\n projectRoot?: string\n): Promise<void> {\n const server = new RemoteStackMemoryMCP(projectRoot);\n await server.startHttpServer(port);\n}\n\n// CLI entry point\nif (import.meta.url === `file://${process.argv[1]}`) {\n const port = parseInt(\n process.env.PORT || process.argv[2] || String(DEFAULT_PORT),\n 10\n );\n const projectRoot = process.argv[3] || process.cwd();\n\n runRemoteMCPServer(port, projectRoot).catch((error) => {\n console.error('Failed to start remote MCP server:', error);\n process.exit(1);\n });\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
2
|
-
import { dirname as __pathDirname } from 'path';
|
|
3
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
4
|
-
const __dirname = __pathDirname(__filename);
|
|
5
|
-
import { z } from "zod";
|
|
6
|
-
const GetContextSchema = z.object({
|
|
7
|
-
query: z.string().min(1).max(5e3).optional(),
|
|
8
|
-
limit: z.number().int().min(1).max(100).default(10)
|
|
9
|
-
});
|
|
10
|
-
const AddDecisionSchema = z.object({
|
|
11
|
-
content: z.string().min(1).max(1e4),
|
|
12
|
-
type: z.enum(["decision", "constraint", "learning"])
|
|
13
|
-
});
|
|
14
|
-
const StartFrameSchema = z.object({
|
|
15
|
-
name: z.string().min(1).max(500),
|
|
16
|
-
type: z.enum(["task", "subtask", "tool_scope", "review", "write", "debug"]),
|
|
17
|
-
constraints: z.array(z.string().max(1e3)).optional()
|
|
18
|
-
});
|
|
19
|
-
const CloseFrameSchema = z.object({
|
|
20
|
-
result: z.string().max(1e4).optional(),
|
|
21
|
-
outputs: z.record(z.unknown()).optional()
|
|
22
|
-
});
|
|
23
|
-
const AddAnchorSchema = z.object({
|
|
24
|
-
type: z.enum([
|
|
25
|
-
"FACT",
|
|
26
|
-
"DECISION",
|
|
27
|
-
"CONSTRAINT",
|
|
28
|
-
"INTERFACE_CONTRACT",
|
|
29
|
-
"TODO",
|
|
30
|
-
"RISK"
|
|
31
|
-
]),
|
|
32
|
-
text: z.string().min(1).max(1e4),
|
|
33
|
-
priority: z.number().int().min(0).max(10).default(5)
|
|
34
|
-
});
|
|
35
|
-
const GetHotStackSchema = z.object({
|
|
36
|
-
maxDepth: z.number().int().min(1).max(50).default(10)
|
|
37
|
-
});
|
|
38
|
-
const CreateTaskSchema = z.object({
|
|
39
|
-
title: z.string().min(1).max(500),
|
|
40
|
-
description: z.string().max(1e4).optional(),
|
|
41
|
-
priority: z.enum(["low", "medium", "high", "critical"]).default("medium"),
|
|
42
|
-
tags: z.array(z.string().max(100)).optional(),
|
|
43
|
-
parentId: z.string().uuid().optional()
|
|
44
|
-
});
|
|
45
|
-
const UpdateTaskStatusSchema = z.object({
|
|
46
|
-
taskId: z.string().min(1),
|
|
47
|
-
status: z.enum(["pending", "in_progress", "completed", "blocked"]),
|
|
48
|
-
note: z.string().max(5e3).optional()
|
|
49
|
-
});
|
|
50
|
-
const GetActiveTasksSchema = z.object({
|
|
51
|
-
status: z.enum(["pending", "in_progress", "blocked"]).optional(),
|
|
52
|
-
limit: z.number().int().min(1).max(100).default(50)
|
|
53
|
-
});
|
|
54
|
-
const AddTaskDependencySchema = z.object({
|
|
55
|
-
taskId: z.string().min(1),
|
|
56
|
-
dependsOn: z.string().min(1)
|
|
57
|
-
});
|
|
58
|
-
const LinearSyncSchema = z.object({
|
|
59
|
-
direction: z.enum(["to_linear", "from_linear", "bidirectional"]).optional(),
|
|
60
|
-
force: z.boolean().default(false)
|
|
61
|
-
});
|
|
62
|
-
const LinearUpdateTaskSchema = z.object({
|
|
63
|
-
taskId: z.string().min(1),
|
|
64
|
-
updates: z.object({
|
|
65
|
-
title: z.string().min(1).max(500).optional(),
|
|
66
|
-
description: z.string().max(1e4).optional(),
|
|
67
|
-
status: z.string().optional(),
|
|
68
|
-
priority: z.number().int().min(0).max(4).optional()
|
|
69
|
-
})
|
|
70
|
-
});
|
|
71
|
-
const LinearGetTasksSchema = z.object({
|
|
72
|
-
status: z.string().optional(),
|
|
73
|
-
limit: z.number().int().min(1).max(100).default(50)
|
|
74
|
-
});
|
|
75
|
-
const GetTracesSchema = z.object({
|
|
76
|
-
sessionId: z.string().optional(),
|
|
77
|
-
limit: z.number().int().min(1).max(1e3).default(100),
|
|
78
|
-
since: z.string().datetime().optional()
|
|
79
|
-
});
|
|
80
|
-
const CompressOldTracesSchema = z.object({
|
|
81
|
-
olderThanDays: z.number().int().min(1).max(365).default(7)
|
|
82
|
-
});
|
|
83
|
-
const SmartContextSchema = z.object({
|
|
84
|
-
query: z.string().min(1).max(5e3),
|
|
85
|
-
maxResults: z.number().int().min(1).max(50).default(10),
|
|
86
|
-
includeRelated: z.boolean().default(true)
|
|
87
|
-
});
|
|
88
|
-
const GetSummarySchema = z.object({
|
|
89
|
-
timeRange: z.object({
|
|
90
|
-
start: z.string().datetime(),
|
|
91
|
-
end: z.string().datetime()
|
|
92
|
-
}).optional(),
|
|
93
|
-
includeMetrics: z.boolean().default(true)
|
|
94
|
-
});
|
|
95
|
-
const DiscoverSchema = z.object({
|
|
96
|
-
pattern: z.string().max(500).optional(),
|
|
97
|
-
maxDepth: z.number().int().min(1).max(20).default(5)
|
|
98
|
-
});
|
|
99
|
-
const RelatedFilesSchema = z.object({
|
|
100
|
-
filePath: z.string().min(1).max(1e3),
|
|
101
|
-
limit: z.number().int().min(1).max(50).default(10)
|
|
102
|
-
});
|
|
103
|
-
const SearchSchema = z.object({
|
|
104
|
-
query: z.string().min(1).max(1e3),
|
|
105
|
-
type: z.enum(["code", "context", "task", "all"]).default("all"),
|
|
106
|
-
limit: z.number().int().min(1).max(100).default(20)
|
|
107
|
-
});
|
|
108
|
-
import { ValidationError, ErrorCode } from "../../core/errors/index.js";
|
|
109
|
-
function validateInput(schema, input, toolName) {
|
|
110
|
-
const result = schema.safeParse(input);
|
|
111
|
-
if (!result.success) {
|
|
112
|
-
const errors = result.error.errors.map((e) => ({
|
|
113
|
-
path: e.path.join("."),
|
|
114
|
-
message: e.message
|
|
115
|
-
}));
|
|
116
|
-
throw new ValidationError(
|
|
117
|
-
`Invalid input for tool '${toolName}': ${errors.map((e) => e.message).join(", ")}`,
|
|
118
|
-
ErrorCode.VALIDATION_FAILED,
|
|
119
|
-
{ toolName, errors }
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
return result.data;
|
|
123
|
-
}
|
|
124
|
-
export {
|
|
125
|
-
AddAnchorSchema,
|
|
126
|
-
AddDecisionSchema,
|
|
127
|
-
AddTaskDependencySchema,
|
|
128
|
-
CloseFrameSchema,
|
|
129
|
-
CompressOldTracesSchema,
|
|
130
|
-
CreateTaskSchema,
|
|
131
|
-
DiscoverSchema,
|
|
132
|
-
GetActiveTasksSchema,
|
|
133
|
-
GetContextSchema,
|
|
134
|
-
GetHotStackSchema,
|
|
135
|
-
GetSummarySchema,
|
|
136
|
-
GetTracesSchema,
|
|
137
|
-
LinearGetTasksSchema,
|
|
138
|
-
LinearSyncSchema,
|
|
139
|
-
LinearUpdateTaskSchema,
|
|
140
|
-
RelatedFilesSchema,
|
|
141
|
-
SearchSchema,
|
|
142
|
-
SmartContextSchema,
|
|
143
|
-
StartFrameSchema,
|
|
144
|
-
UpdateTaskStatusSchema,
|
|
145
|
-
validateInput
|
|
146
|
-
};
|
|
147
|
-
//# sourceMappingURL=schemas.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/integrations/mcp/schemas.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Zod schemas for MCP tool input validation\n * These schemas validate tool parameters before processing\n */\n\nimport { z } from 'zod';\n\n// ============================================\n// Context Tools\n// ============================================\n\nexport const GetContextSchema = z.object({\n query: z.string().min(1).max(5000).optional(),\n limit: z.number().int().min(1).max(100).default(10),\n});\nexport type GetContextInput = z.infer<typeof GetContextSchema>;\n\nexport const AddDecisionSchema = z.object({\n content: z.string().min(1).max(10000),\n type: z.enum(['decision', 'constraint', 'learning']),\n});\nexport type AddDecisionInput = z.infer<typeof AddDecisionSchema>;\n\n// ============================================\n// Frame Tools\n// ============================================\n\nexport const StartFrameSchema = z.object({\n name: z.string().min(1).max(500),\n type: z.enum(['task', 'subtask', 'tool_scope', 'review', 'write', 'debug']),\n constraints: z.array(z.string().max(1000)).optional(),\n});\nexport type StartFrameInput = z.infer<typeof StartFrameSchema>;\n\nexport const CloseFrameSchema = z.object({\n result: z.string().max(10000).optional(),\n outputs: z.record(z.unknown()).optional(),\n});\nexport type CloseFrameInput = z.infer<typeof CloseFrameSchema>;\n\nexport const AddAnchorSchema = z.object({\n type: z.enum([\n 'FACT',\n 'DECISION',\n 'CONSTRAINT',\n 'INTERFACE_CONTRACT',\n 'TODO',\n 'RISK',\n ]),\n text: z.string().min(1).max(10000),\n priority: z.number().int().min(0).max(10).default(5),\n});\nexport type AddAnchorInput = z.infer<typeof AddAnchorSchema>;\n\nexport const GetHotStackSchema = z.object({\n maxDepth: z.number().int().min(1).max(50).default(10),\n});\nexport type GetHotStackInput = z.infer<typeof GetHotStackSchema>;\n\n// ============================================\n// Task Tools\n// ============================================\n\nexport const CreateTaskSchema = z.object({\n title: z.string().min(1).max(500),\n description: z.string().max(10000).optional(),\n priority: z.enum(['low', 'medium', 'high', 'critical']).default('medium'),\n tags: z.array(z.string().max(100)).optional(),\n parentId: z.string().uuid().optional(),\n});\nexport type CreateTaskInput = z.infer<typeof CreateTaskSchema>;\n\nexport const UpdateTaskStatusSchema = z.object({\n taskId: z.string().min(1),\n status: z.enum(['pending', 'in_progress', 'completed', 'blocked']),\n note: z.string().max(5000).optional(),\n});\nexport type UpdateTaskStatusInput = z.infer<typeof UpdateTaskStatusSchema>;\n\nexport const GetActiveTasksSchema = z.object({\n status: z.enum(['pending', 'in_progress', 'blocked']).optional(),\n limit: z.number().int().min(1).max(100).default(50),\n});\nexport type GetActiveTasksInput = z.infer<typeof GetActiveTasksSchema>;\n\nexport const AddTaskDependencySchema = z.object({\n taskId: z.string().min(1),\n dependsOn: z.string().min(1),\n});\nexport type AddTaskDependencyInput = z.infer<typeof AddTaskDependencySchema>;\n\n// ============================================\n// Linear Integration Tools\n// ============================================\n\nexport const LinearSyncSchema = z.object({\n direction: z.enum(['to_linear', 'from_linear', 'bidirectional']).optional(),\n force: z.boolean().default(false),\n});\nexport type LinearSyncInput = z.infer<typeof LinearSyncSchema>;\n\nexport const LinearUpdateTaskSchema = z.object({\n taskId: z.string().min(1),\n updates: z.object({\n title: z.string().min(1).max(500).optional(),\n description: z.string().max(10000).optional(),\n status: z.string().optional(),\n priority: z.number().int().min(0).max(4).optional(),\n }),\n});\nexport type LinearUpdateTaskInput = z.infer<typeof LinearUpdateTaskSchema>;\n\nexport const LinearGetTasksSchema = z.object({\n status: z.string().optional(),\n limit: z.number().int().min(1).max(100).default(50),\n});\nexport type LinearGetTasksInput = z.infer<typeof LinearGetTasksSchema>;\n\n// ============================================\n// Trace Tools\n// ============================================\n\nexport const GetTracesSchema = z.object({\n sessionId: z.string().optional(),\n limit: z.number().int().min(1).max(1000).default(100),\n since: z.string().datetime().optional(),\n});\nexport type GetTracesInput = z.infer<typeof GetTracesSchema>;\n\nexport const CompressOldTracesSchema = z.object({\n olderThanDays: z.number().int().min(1).max(365).default(7),\n});\nexport type CompressOldTracesInput = z.infer<typeof CompressOldTracesSchema>;\n\n// ============================================\n// Smart Context Tools\n// ============================================\n\nexport const SmartContextSchema = z.object({\n query: z.string().min(1).max(5000),\n maxResults: z.number().int().min(1).max(50).default(10),\n includeRelated: z.boolean().default(true),\n});\nexport type SmartContextInput = z.infer<typeof SmartContextSchema>;\n\nexport const GetSummarySchema = z.object({\n timeRange: z\n .object({\n start: z.string().datetime(),\n end: z.string().datetime(),\n })\n .optional(),\n includeMetrics: z.boolean().default(true),\n});\nexport type GetSummaryInput = z.infer<typeof GetSummarySchema>;\n\n// ============================================\n// Discovery Tools\n// ============================================\n\nexport const DiscoverSchema = z.object({\n pattern: z.string().max(500).optional(),\n maxDepth: z.number().int().min(1).max(20).default(5),\n});\nexport type DiscoverInput = z.infer<typeof DiscoverSchema>;\n\nexport const RelatedFilesSchema = z.object({\n filePath: z.string().min(1).max(1000),\n limit: z.number().int().min(1).max(50).default(10),\n});\nexport type RelatedFilesInput = z.infer<typeof RelatedFilesSchema>;\n\nexport const SearchSchema = z.object({\n query: z.string().min(1).max(1000),\n type: z.enum(['code', 'context', 'task', 'all']).default('all'),\n limit: z.number().int().min(1).max(100).default(20),\n});\nexport type SearchInput = z.infer<typeof SearchSchema>;\n\n// ============================================\n// Validation Helper\n// ============================================\n\nimport { ValidationError, ErrorCode } from '../../core/errors/index.js';\n\n/**\n * Validate input using a Zod schema\n * Throws ValidationError with details if validation fails\n */\nexport function validateInput<T>(\n schema: z.ZodSchema<T>,\n input: unknown,\n toolName: string\n): T {\n const result = schema.safeParse(input);\n\n if (!result.success) {\n const errors = result.error.errors.map((e) => ({\n path: e.path.join('.'),\n message: e.message,\n }));\n\n throw new ValidationError(\n `Invalid input for tool '${toolName}': ${errors.map((e) => e.message).join(', ')}`,\n ErrorCode.VALIDATION_FAILED,\n { toolName, errors }\n );\n }\n\n return result.data;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|