@skillsmith/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -0
- package/dist/src/__tests__/errors.test.d.ts +5 -0
- package/dist/src/__tests__/errors.test.d.ts.map +1 -0
- package/dist/src/__tests__/errors.test.js +115 -0
- package/dist/src/__tests__/errors.test.js.map +1 -0
- package/dist/src/activation/ActivationManager.d.ts +141 -0
- package/dist/src/activation/ActivationManager.d.ts.map +1 -0
- package/dist/src/activation/ActivationManager.js +282 -0
- package/dist/src/activation/ActivationManager.js.map +1 -0
- package/dist/src/activation/ZeroConfigActivator.d.ts +126 -0
- package/dist/src/activation/ZeroConfigActivator.d.ts.map +1 -0
- package/dist/src/activation/ZeroConfigActivator.js +259 -0
- package/dist/src/activation/ZeroConfigActivator.js.map +1 -0
- package/dist/src/activation/index.d.ts +8 -0
- package/dist/src/activation/index.d.ts.map +1 -0
- package/dist/src/activation/index.js +8 -0
- package/dist/src/activation/index.js.map +1 -0
- package/dist/src/analysis/CodebaseAnalyzer.d.ts +175 -0
- package/dist/src/analysis/CodebaseAnalyzer.d.ts.map +1 -0
- package/dist/src/analysis/CodebaseAnalyzer.js +495 -0
- package/dist/src/analysis/CodebaseAnalyzer.js.map +1 -0
- package/dist/src/analysis/index.d.ts +10 -0
- package/dist/src/analysis/index.d.ts.map +1 -0
- package/dist/src/analysis/index.js +10 -0
- package/dist/src/analysis/index.js.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.d.ts +97 -0
- package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.js +376 -0
- package/dist/src/analytics/AnalyticsRepository.js.map +1 -0
- package/dist/src/analytics/ExperimentService.d.ts +70 -0
- package/dist/src/analytics/ExperimentService.d.ts.map +1 -0
- package/dist/src/analytics/ExperimentService.js +251 -0
- package/dist/src/analytics/ExperimentService.js.map +1 -0
- package/dist/src/analytics/ROIDashboardService.d.ts +55 -0
- package/dist/src/analytics/ROIDashboardService.d.ts.map +1 -0
- package/dist/src/analytics/ROIDashboardService.js +304 -0
- package/dist/src/analytics/ROIDashboardService.js.map +1 -0
- package/dist/src/analytics/UsageAnalyticsService.d.ts +55 -0
- package/dist/src/analytics/UsageAnalyticsService.d.ts.map +1 -0
- package/dist/src/analytics/UsageAnalyticsService.js +180 -0
- package/dist/src/analytics/UsageAnalyticsService.js.map +1 -0
- package/dist/src/analytics/anonymizer.d.ts +53 -0
- package/dist/src/analytics/anonymizer.d.ts.map +1 -0
- package/dist/src/analytics/anonymizer.js +107 -0
- package/dist/src/analytics/anonymizer.js.map +1 -0
- package/dist/src/analytics/constants.d.ts +19 -0
- package/dist/src/analytics/constants.d.ts.map +1 -0
- package/dist/src/analytics/constants.js +19 -0
- package/dist/src/analytics/constants.js.map +1 -0
- package/dist/src/analytics/index.d.ts +23 -0
- package/dist/src/analytics/index.d.ts.map +1 -0
- package/dist/src/analytics/index.js +23 -0
- package/dist/src/analytics/index.js.map +1 -0
- package/dist/src/analytics/metrics-aggregator.d.ts +98 -0
- package/dist/src/analytics/metrics-aggregator.d.ts.map +1 -0
- package/dist/src/analytics/metrics-aggregator.js +176 -0
- package/dist/src/analytics/metrics-aggregator.js.map +1 -0
- package/dist/src/analytics/metrics-exporter.d.ts +148 -0
- package/dist/src/analytics/metrics-exporter.d.ts.map +1 -0
- package/dist/src/analytics/metrics-exporter.js +244 -0
- package/dist/src/analytics/metrics-exporter.js.map +1 -0
- package/dist/src/analytics/schema.d.ts +20 -0
- package/dist/src/analytics/schema.d.ts.map +1 -0
- package/dist/src/analytics/schema.js +125 -0
- package/dist/src/analytics/schema.js.map +1 -0
- package/dist/src/analytics/storage.d.ts +76 -0
- package/dist/src/analytics/storage.d.ts.map +1 -0
- package/dist/src/analytics/storage.js +180 -0
- package/dist/src/analytics/storage.js.map +1 -0
- package/dist/src/analytics/types.d.ts +277 -0
- package/dist/src/analytics/types.d.ts.map +1 -0
- package/dist/src/analytics/types.js +10 -0
- package/dist/src/analytics/types.js.map +1 -0
- package/dist/src/analytics/usage-tracker.d.ts +132 -0
- package/dist/src/analytics/usage-tracker.d.ts.map +1 -0
- package/dist/src/analytics/usage-tracker.js +213 -0
- package/dist/src/analytics/usage-tracker.js.map +1 -0
- package/dist/src/benchmarks/BenchmarkRunner.d.ts +258 -0
- package/dist/src/benchmarks/BenchmarkRunner.d.ts.map +1 -0
- package/dist/src/benchmarks/BenchmarkRunner.js +453 -0
- package/dist/src/benchmarks/BenchmarkRunner.js.map +1 -0
- package/dist/src/benchmarks/IndexBenchmark.d.ts +101 -0
- package/dist/src/benchmarks/IndexBenchmark.d.ts.map +1 -0
- package/dist/src/benchmarks/IndexBenchmark.js +314 -0
- package/dist/src/benchmarks/IndexBenchmark.js.map +1 -0
- package/dist/src/benchmarks/MemoryProfiler.d.ts +266 -0
- package/dist/src/benchmarks/MemoryProfiler.d.ts.map +1 -0
- package/dist/src/benchmarks/MemoryProfiler.js +404 -0
- package/dist/src/benchmarks/MemoryProfiler.js.map +1 -0
- package/dist/src/benchmarks/SearchBenchmark.d.ts +71 -0
- package/dist/src/benchmarks/SearchBenchmark.d.ts.map +1 -0
- package/dist/src/benchmarks/SearchBenchmark.js +321 -0
- package/dist/src/benchmarks/SearchBenchmark.js.map +1 -0
- package/dist/src/benchmarks/cacheBenchmark.d.ts +75 -0
- package/dist/src/benchmarks/cacheBenchmark.d.ts.map +1 -0
- package/dist/src/benchmarks/cacheBenchmark.js +325 -0
- package/dist/src/benchmarks/cacheBenchmark.js.map +1 -0
- package/dist/src/benchmarks/cli.d.ts +17 -0
- package/dist/src/benchmarks/cli.d.ts.map +1 -0
- package/dist/src/benchmarks/cli.js +140 -0
- package/dist/src/benchmarks/cli.js.map +1 -0
- package/dist/src/benchmarks/embeddingBenchmark.d.ts +86 -0
- package/dist/src/benchmarks/embeddingBenchmark.d.ts.map +1 -0
- package/dist/src/benchmarks/embeddingBenchmark.js +329 -0
- package/dist/src/benchmarks/embeddingBenchmark.js.map +1 -0
- package/dist/src/benchmarks/index.d.ts +51 -0
- package/dist/src/benchmarks/index.d.ts.map +1 -0
- package/dist/src/benchmarks/index.js +201 -0
- package/dist/src/benchmarks/index.js.map +1 -0
- package/dist/src/benchmarks/stats.d.ts +56 -0
- package/dist/src/benchmarks/stats.d.ts.map +1 -0
- package/dist/src/benchmarks/stats.js +86 -0
- package/dist/src/benchmarks/stats.js.map +1 -0
- package/dist/src/cache/CacheEntry.d.ts +101 -0
- package/dist/src/cache/CacheEntry.d.ts.map +1 -0
- package/dist/src/cache/CacheEntry.js +238 -0
- package/dist/src/cache/CacheEntry.js.map +1 -0
- package/dist/src/cache/CacheManager.d.ts +167 -0
- package/dist/src/cache/CacheManager.d.ts.map +1 -0
- package/dist/src/cache/CacheManager.js +346 -0
- package/dist/src/cache/CacheManager.js.map +1 -0
- package/dist/src/cache/TieredCache.d.ts +97 -0
- package/dist/src/cache/TieredCache.d.ts.map +1 -0
- package/dist/src/cache/TieredCache.js +352 -0
- package/dist/src/cache/TieredCache.js.map +1 -0
- package/dist/src/cache/index.d.ts +63 -0
- package/dist/src/cache/index.d.ts.map +1 -0
- package/dist/src/cache/index.js +91 -0
- package/dist/src/cache/index.js.map +1 -0
- package/dist/src/cache/lru.d.ts +68 -0
- package/dist/src/cache/lru.d.ts.map +1 -0
- package/dist/src/cache/lru.js +105 -0
- package/dist/src/cache/lru.js.map +1 -0
- package/dist/src/cache/sqlite.d.ts +59 -0
- package/dist/src/cache/sqlite.d.ts.map +1 -0
- package/dist/src/cache/sqlite.js +159 -0
- package/dist/src/cache/sqlite.js.map +1 -0
- package/dist/src/db/quarantine-schema.d.ts +81 -0
- package/dist/src/db/quarantine-schema.d.ts.map +1 -0
- package/dist/src/db/quarantine-schema.js +110 -0
- package/dist/src/db/quarantine-schema.js.map +1 -0
- package/dist/src/db/schema.d.ts +65 -0
- package/dist/src/db/schema.d.ts.map +1 -0
- package/dist/src/db/schema.js +318 -0
- package/dist/src/db/schema.js.map +1 -0
- package/dist/src/embeddings/index.d.ts +158 -0
- package/dist/src/embeddings/index.d.ts.map +1 -0
- package/dist/src/embeddings/index.js +397 -0
- package/dist/src/embeddings/index.js.map +1 -0
- package/dist/src/errors/SkillsmithError.d.ts +118 -0
- package/dist/src/errors/SkillsmithError.d.ts.map +1 -0
- package/dist/src/errors/SkillsmithError.js +194 -0
- package/dist/src/errors/SkillsmithError.js.map +1 -0
- package/dist/src/errors/index.d.ts +36 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +36 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/errors.d.ts +72 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +123 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/index.d.ts +56 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +73 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/index.test.d.ts +2 -0
- package/dist/src/index.test.d.ts.map +1 -0
- package/dist/src/index.test.js +35 -0
- package/dist/src/index.test.js.map +1 -0
- package/dist/src/indexer/GitHubIndexer.d.ts +107 -0
- package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -0
- package/dist/src/indexer/GitHubIndexer.js +202 -0
- package/dist/src/indexer/GitHubIndexer.js.map +1 -0
- package/dist/src/indexer/PartitionStrategy.d.ts +115 -0
- package/dist/src/indexer/PartitionStrategy.d.ts.map +1 -0
- package/dist/src/indexer/PartitionStrategy.js +207 -0
- package/dist/src/indexer/PartitionStrategy.js.map +1 -0
- package/dist/src/indexer/SkillParser.d.ts +112 -0
- package/dist/src/indexer/SkillParser.d.ts.map +1 -0
- package/dist/src/indexer/SkillParser.js +281 -0
- package/dist/src/indexer/SkillParser.js.map +1 -0
- package/dist/src/indexer/SwarmIndexer.d.ts +163 -0
- package/dist/src/indexer/SwarmIndexer.d.ts.map +1 -0
- package/dist/src/indexer/SwarmIndexer.js +300 -0
- package/dist/src/indexer/SwarmIndexer.js.map +1 -0
- package/dist/src/indexer/index.d.ts +12 -0
- package/dist/src/indexer/index.d.ts.map +1 -0
- package/dist/src/indexer/index.js +16 -0
- package/dist/src/indexer/index.js.map +1 -0
- package/dist/src/learning/interfaces.d.ts +338 -0
- package/dist/src/learning/interfaces.d.ts.map +1 -0
- package/dist/src/learning/interfaces.js +13 -0
- package/dist/src/learning/interfaces.js.map +1 -0
- package/dist/src/learning/types.d.ts +284 -0
- package/dist/src/learning/types.d.ts.map +1 -0
- package/dist/src/learning/types.js +112 -0
- package/dist/src/learning/types.js.map +1 -0
- package/dist/src/matching/OverlapDetector.d.ts +152 -0
- package/dist/src/matching/OverlapDetector.d.ts.map +1 -0
- package/dist/src/matching/OverlapDetector.js +218 -0
- package/dist/src/matching/OverlapDetector.js.map +1 -0
- package/dist/src/matching/SkillMatcher.d.ts +125 -0
- package/dist/src/matching/SkillMatcher.d.ts.map +1 -0
- package/dist/src/matching/SkillMatcher.js +206 -0
- package/dist/src/matching/SkillMatcher.js.map +1 -0
- package/dist/src/matching/index.d.ts +14 -0
- package/dist/src/matching/index.d.ts.map +1 -0
- package/dist/src/matching/index.js +12 -0
- package/dist/src/matching/index.js.map +1 -0
- package/dist/src/pipeline/DailyIndexPipeline.d.ts +220 -0
- package/dist/src/pipeline/DailyIndexPipeline.d.ts.map +1 -0
- package/dist/src/pipeline/DailyIndexPipeline.js +320 -0
- package/dist/src/pipeline/DailyIndexPipeline.js.map +1 -0
- package/dist/src/pipeline/index.d.ts +9 -0
- package/dist/src/pipeline/index.d.ts.map +1 -0
- package/dist/src/pipeline/index.js +9 -0
- package/dist/src/pipeline/index.js.map +1 -0
- package/dist/src/repositories/CacheRepository.d.ts +60 -0
- package/dist/src/repositories/CacheRepository.d.ts.map +1 -0
- package/dist/src/repositories/CacheRepository.js +148 -0
- package/dist/src/repositories/CacheRepository.js.map +1 -0
- package/dist/src/repositories/IndexerRepository.d.ts +126 -0
- package/dist/src/repositories/IndexerRepository.d.ts.map +1 -0
- package/dist/src/repositories/IndexerRepository.js +270 -0
- package/dist/src/repositories/IndexerRepository.js.map +1 -0
- package/dist/src/repositories/QuarantineRepository.d.ts +255 -0
- package/dist/src/repositories/QuarantineRepository.d.ts.map +1 -0
- package/dist/src/repositories/QuarantineRepository.js +445 -0
- package/dist/src/repositories/QuarantineRepository.js.map +1 -0
- package/dist/src/repositories/SkillRepository.d.ts +78 -0
- package/dist/src/repositories/SkillRepository.d.ts.map +1 -0
- package/dist/src/repositories/SkillRepository.js +208 -0
- package/dist/src/repositories/SkillRepository.js.map +1 -0
- package/dist/src/scoring/QualityScorer.d.ts +188 -0
- package/dist/src/scoring/QualityScorer.d.ts.map +1 -0
- package/dist/src/scoring/QualityScorer.js +342 -0
- package/dist/src/scoring/QualityScorer.js.map +1 -0
- package/dist/src/scoring/index.d.ts +9 -0
- package/dist/src/scoring/index.d.ts.map +1 -0
- package/dist/src/scoring/index.js +9 -0
- package/dist/src/scoring/index.js.map +1 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.d.ts +5 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.d.ts.map +1 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js +365 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -0
- package/dist/src/scripts/import-github-skills.d.ts +24 -0
- package/dist/src/scripts/import-github-skills.d.ts.map +1 -0
- package/dist/src/scripts/import-github-skills.js +545 -0
- package/dist/src/scripts/import-github-skills.js.map +1 -0
- package/dist/src/scripts/import-to-database.d.ts +60 -0
- package/dist/src/scripts/import-to-database.d.ts.map +1 -0
- package/dist/src/scripts/import-to-database.js +307 -0
- package/dist/src/scripts/import-to-database.js.map +1 -0
- package/dist/src/scripts/scan-imported-skills.d.ts +15 -0
- package/dist/src/scripts/scan-imported-skills.d.ts.map +1 -0
- package/dist/src/scripts/scan-imported-skills.js +405 -0
- package/dist/src/scripts/scan-imported-skills.js.map +1 -0
- package/dist/src/scripts/validate-skills.d.ts +180 -0
- package/dist/src/scripts/validate-skills.d.ts.map +1 -0
- package/dist/src/scripts/validate-skills.js +572 -0
- package/dist/src/scripts/validate-skills.js.map +1 -0
- package/dist/src/search/hybrid.d.ts +85 -0
- package/dist/src/search/hybrid.d.ts.map +1 -0
- package/dist/src/search/hybrid.js +291 -0
- package/dist/src/search/hybrid.js.map +1 -0
- package/dist/src/search/index.d.ts +6 -0
- package/dist/src/search/index.d.ts.map +1 -0
- package/dist/src/search/index.js +5 -0
- package/dist/src/search/index.js.map +1 -0
- package/dist/src/security/AuditLogger.d.ts +197 -0
- package/dist/src/security/AuditLogger.d.ts.map +1 -0
- package/dist/src/security/AuditLogger.js +398 -0
- package/dist/src/security/AuditLogger.js.map +1 -0
- package/dist/src/security/RateLimiter.d.ts +337 -0
- package/dist/src/security/RateLimiter.d.ts.map +1 -0
- package/dist/src/security/RateLimiter.js +782 -0
- package/dist/src/security/RateLimiter.js.map +1 -0
- package/dist/src/security/__tests__/pathValidation.test.d.ts +8 -0
- package/dist/src/security/__tests__/pathValidation.test.d.ts.map +1 -0
- package/dist/src/security/__tests__/pathValidation.test.js +249 -0
- package/dist/src/security/__tests__/pathValidation.test.js.map +1 -0
- package/dist/src/security/index.d.ts +18 -0
- package/dist/src/security/index.d.ts.map +1 -0
- package/dist/src/security/index.js +14 -0
- package/dist/src/security/index.js.map +1 -0
- package/dist/src/security/pathValidation.d.ts +95 -0
- package/dist/src/security/pathValidation.d.ts.map +1 -0
- package/dist/src/security/pathValidation.js +216 -0
- package/dist/src/security/pathValidation.js.map +1 -0
- package/dist/src/security/sanitization.d.ts +123 -0
- package/dist/src/security/sanitization.d.ts.map +1 -0
- package/dist/src/security/sanitization.js +378 -0
- package/dist/src/security/sanitization.js.map +1 -0
- package/dist/src/security/scanner.d.ts +151 -0
- package/dist/src/security/scanner.d.ts.map +1 -0
- package/dist/src/security/scanner.js +599 -0
- package/dist/src/security/scanner.js.map +1 -0
- package/dist/src/services/SearchService.d.ts +88 -0
- package/dist/src/services/SearchService.d.ts.map +1 -0
- package/dist/src/services/SearchService.js +305 -0
- package/dist/src/services/SearchService.js.map +1 -0
- package/dist/src/session/SessionContext.d.ts +116 -0
- package/dist/src/session/SessionContext.d.ts.map +1 -0
- package/dist/src/session/SessionContext.js +134 -0
- package/dist/src/session/SessionContext.js.map +1 -0
- package/dist/src/session/SessionHealthMonitor.d.ts +249 -0
- package/dist/src/session/SessionHealthMonitor.d.ts.map +1 -0
- package/dist/src/session/SessionHealthMonitor.js +302 -0
- package/dist/src/session/SessionHealthMonitor.js.map +1 -0
- package/dist/src/session/SessionManager.d.ts +179 -0
- package/dist/src/session/SessionManager.d.ts.map +1 -0
- package/dist/src/session/SessionManager.js +451 -0
- package/dist/src/session/SessionManager.js.map +1 -0
- package/dist/src/session/SessionRecovery.d.ts +84 -0
- package/dist/src/session/SessionRecovery.d.ts.map +1 -0
- package/dist/src/session/SessionRecovery.js +257 -0
- package/dist/src/session/SessionRecovery.js.map +1 -0
- package/dist/src/session/index.d.ts +40 -0
- package/dist/src/session/index.d.ts.map +1 -0
- package/dist/src/session/index.js +44 -0
- package/dist/src/session/index.js.map +1 -0
- package/dist/src/sources/BaseSourceAdapter.d.ts +144 -0
- package/dist/src/sources/BaseSourceAdapter.d.ts.map +1 -0
- package/dist/src/sources/BaseSourceAdapter.js +287 -0
- package/dist/src/sources/BaseSourceAdapter.js.map +1 -0
- package/dist/src/sources/GitHubSourceAdapter.d.ts +98 -0
- package/dist/src/sources/GitHubSourceAdapter.d.ts.map +1 -0
- package/dist/src/sources/GitHubSourceAdapter.js +269 -0
- package/dist/src/sources/GitHubSourceAdapter.js.map +1 -0
- package/dist/src/sources/GitLabSourceAdapter.d.ts +102 -0
- package/dist/src/sources/GitLabSourceAdapter.d.ts.map +1 -0
- package/dist/src/sources/GitLabSourceAdapter.js +310 -0
- package/dist/src/sources/GitLabSourceAdapter.js.map +1 -0
- package/dist/src/sources/ISourceAdapter.d.ts +110 -0
- package/dist/src/sources/ISourceAdapter.d.ts.map +1 -0
- package/dist/src/sources/ISourceAdapter.js +19 -0
- package/dist/src/sources/ISourceAdapter.js.map +1 -0
- package/dist/src/sources/LocalFilesystemAdapter.d.ts +112 -0
- package/dist/src/sources/LocalFilesystemAdapter.d.ts.map +1 -0
- package/dist/src/sources/LocalFilesystemAdapter.js +340 -0
- package/dist/src/sources/LocalFilesystemAdapter.js.map +1 -0
- package/dist/src/sources/RawUrlSourceAdapter.d.ts +128 -0
- package/dist/src/sources/RawUrlSourceAdapter.d.ts.map +1 -0
- package/dist/src/sources/RawUrlSourceAdapter.js +282 -0
- package/dist/src/sources/RawUrlSourceAdapter.js.map +1 -0
- package/dist/src/sources/SourceAdapterRegistry.d.ts +156 -0
- package/dist/src/sources/SourceAdapterRegistry.d.ts.map +1 -0
- package/dist/src/sources/SourceAdapterRegistry.js +242 -0
- package/dist/src/sources/SourceAdapterRegistry.js.map +1 -0
- package/dist/src/sources/SourceIndexer.d.ts +119 -0
- package/dist/src/sources/SourceIndexer.d.ts.map +1 -0
- package/dist/src/sources/SourceIndexer.js +285 -0
- package/dist/src/sources/SourceIndexer.js.map +1 -0
- package/dist/src/sources/index.d.ts +45 -0
- package/dist/src/sources/index.d.ts.map +1 -0
- package/dist/src/sources/index.js +51 -0
- package/dist/src/sources/index.js.map +1 -0
- package/dist/src/sources/shared.d.ts +125 -0
- package/dist/src/sources/shared.d.ts.map +1 -0
- package/dist/src/sources/shared.js +191 -0
- package/dist/src/sources/shared.js.map +1 -0
- package/dist/src/sources/types.d.ts +204 -0
- package/dist/src/sources/types.d.ts.map +1 -0
- package/dist/src/sources/types.js +6 -0
- package/dist/src/sources/types.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +25 -0
- package/dist/src/telemetry/index.d.ts.map +1 -0
- package/dist/src/telemetry/index.js +32 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/metrics.d.ts +171 -0
- package/dist/src/telemetry/metrics.d.ts.map +1 -0
- package/dist/src/telemetry/metrics.js +401 -0
- package/dist/src/telemetry/metrics.js.map +1 -0
- package/dist/src/telemetry/prometheus.d.ts +81 -0
- package/dist/src/telemetry/prometheus.d.ts.map +1 -0
- package/dist/src/telemetry/prometheus.js +252 -0
- package/dist/src/telemetry/prometheus.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +151 -0
- package/dist/src/telemetry/tracer.d.ts.map +1 -0
- package/dist/src/telemetry/tracer.js +391 -0
- package/dist/src/telemetry/tracer.js.map +1 -0
- package/dist/src/triggers/ContextScorer.d.ts +118 -0
- package/dist/src/triggers/ContextScorer.d.ts.map +1 -0
- package/dist/src/triggers/ContextScorer.js +265 -0
- package/dist/src/triggers/ContextScorer.js.map +1 -0
- package/dist/src/triggers/TriggerDetector.d.ts +178 -0
- package/dist/src/triggers/TriggerDetector.d.ts.map +1 -0
- package/dist/src/triggers/TriggerDetector.js +390 -0
- package/dist/src/triggers/TriggerDetector.js.map +1 -0
- package/dist/src/triggers/__tests__/ContextScorer.test.d.ts +6 -0
- package/dist/src/triggers/__tests__/ContextScorer.test.d.ts.map +1 -0
- package/dist/src/triggers/__tests__/ContextScorer.test.js +307 -0
- package/dist/src/triggers/__tests__/ContextScorer.test.js.map +1 -0
- package/dist/src/triggers/__tests__/TriggerDetector.test.d.ts +6 -0
- package/dist/src/triggers/__tests__/TriggerDetector.test.d.ts.map +1 -0
- package/dist/src/triggers/__tests__/TriggerDetector.test.js +249 -0
- package/dist/src/triggers/__tests__/TriggerDetector.test.js.map +1 -0
- package/dist/src/triggers/index.d.ts +8 -0
- package/dist/src/triggers/index.d.ts.map +1 -0
- package/dist/src/triggers/index.js +8 -0
- package/dist/src/triggers/index.js.map +1 -0
- package/dist/src/types/skill.d.ts +80 -0
- package/dist/src/types/skill.d.ts.map +1 -0
- package/dist/src/types/skill.js +5 -0
- package/dist/src/types/skill.js.map +1 -0
- package/dist/src/types.d.ts +88 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +13 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/index.d.ts +6 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +6 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/logger.d.ts +172 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +291 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/retry.d.ts +97 -0
- package/dist/src/utils/retry.d.ts.map +1 -0
- package/dist/src/utils/retry.js +267 -0
- package/dist/src/utils/retry.js.map +1 -0
- package/dist/src/validation/index.d.ts +118 -0
- package/dist/src/validation/index.d.ts.map +1 -0
- package/dist/src/validation/index.js +434 -0
- package/dist/src/validation/index.js.map +1 -0
- package/dist/src/webhooks/WebhookHandler.d.ts +117 -0
- package/dist/src/webhooks/WebhookHandler.d.ts.map +1 -0
- package/dist/src/webhooks/WebhookHandler.js +349 -0
- package/dist/src/webhooks/WebhookHandler.js.map +1 -0
- package/dist/src/webhooks/WebhookPayload.d.ts +238 -0
- package/dist/src/webhooks/WebhookPayload.d.ts.map +1 -0
- package/dist/src/webhooks/WebhookPayload.js +244 -0
- package/dist/src/webhooks/WebhookPayload.js.map +1 -0
- package/dist/src/webhooks/WebhookQueue.d.ts +227 -0
- package/dist/src/webhooks/WebhookQueue.d.ts.map +1 -0
- package/dist/src/webhooks/WebhookQueue.js +328 -0
- package/dist/src/webhooks/WebhookQueue.js.map +1 -0
- package/dist/src/webhooks/index.d.ts +12 -0
- package/dist/src/webhooks/index.d.ts.map +1 -0
- package/dist/src/webhooks/index.js +15 -0
- package/dist/src/webhooks/index.js.map +1 -0
- package/dist/tests/Analytics.integration.test.d.ts +7 -0
- package/dist/tests/Analytics.integration.test.d.ts.map +1 -0
- package/dist/tests/Analytics.integration.test.js +367 -0
- package/dist/tests/Analytics.integration.test.js.map +1 -0
- package/dist/tests/AnalyticsRepository.test.d.ts +8 -0
- package/dist/tests/AnalyticsRepository.test.d.ts.map +1 -0
- package/dist/tests/AnalyticsRepository.test.js +399 -0
- package/dist/tests/AnalyticsRepository.test.js.map +1 -0
- package/dist/tests/AnalyticsStorage.test.d.ts +8 -0
- package/dist/tests/AnalyticsStorage.test.d.ts.map +1 -0
- package/dist/tests/AnalyticsStorage.test.js +271 -0
- package/dist/tests/AnalyticsStorage.test.js.map +1 -0
- package/dist/tests/AuditLogger.test.d.ts +8 -0
- package/dist/tests/AuditLogger.test.d.ts.map +1 -0
- package/dist/tests/AuditLogger.test.js +699 -0
- package/dist/tests/AuditLogger.test.js.map +1 -0
- package/dist/tests/BenchmarkRunner.test.d.ts +11 -0
- package/dist/tests/BenchmarkRunner.test.d.ts.map +1 -0
- package/dist/tests/BenchmarkRunner.test.js +641 -0
- package/dist/tests/BenchmarkRunner.test.js.map +1 -0
- package/dist/tests/CacheRepository.test.d.ts +5 -0
- package/dist/tests/CacheRepository.test.d.ts.map +1 -0
- package/dist/tests/CacheRepository.test.js +184 -0
- package/dist/tests/CacheRepository.test.js.map +1 -0
- package/dist/tests/CacheSecurity.test.d.ts +8 -0
- package/dist/tests/CacheSecurity.test.d.ts.map +1 -0
- package/dist/tests/CacheSecurity.test.js +273 -0
- package/dist/tests/CacheSecurity.test.js.map +1 -0
- package/dist/tests/CodebaseAnalyzer.test.d.ts +2 -0
- package/dist/tests/CodebaseAnalyzer.test.d.ts.map +1 -0
- package/dist/tests/CodebaseAnalyzer.test.js +347 -0
- package/dist/tests/CodebaseAnalyzer.test.js.map +1 -0
- package/dist/tests/DailyIndexPipeline.test.d.ts +7 -0
- package/dist/tests/DailyIndexPipeline.test.d.ts.map +1 -0
- package/dist/tests/DailyIndexPipeline.test.js +539 -0
- package/dist/tests/DailyIndexPipeline.test.js.map +1 -0
- package/dist/tests/EmbeddingService.test.d.ts +2 -0
- package/dist/tests/EmbeddingService.test.d.ts.map +1 -0
- package/dist/tests/EmbeddingService.test.js +252 -0
- package/dist/tests/EmbeddingService.test.js.map +1 -0
- package/dist/tests/ExperimentService.test.d.ts +7 -0
- package/dist/tests/ExperimentService.test.d.ts.map +1 -0
- package/dist/tests/ExperimentService.test.js +293 -0
- package/dist/tests/ExperimentService.test.js.map +1 -0
- package/dist/tests/GitHubIndexer.test.d.ts +10 -0
- package/dist/tests/GitHubIndexer.test.d.ts.map +1 -0
- package/dist/tests/GitHubIndexer.test.js +524 -0
- package/dist/tests/GitHubIndexer.test.js.map +1 -0
- package/dist/tests/GitHubSourceAdapter.test.d.ts +5 -0
- package/dist/tests/GitHubSourceAdapter.test.d.ts.map +1 -0
- package/dist/tests/GitHubSourceAdapter.test.js +385 -0
- package/dist/tests/GitHubSourceAdapter.test.js.map +1 -0
- package/dist/tests/MemoryProfiler.test.d.ts +12 -0
- package/dist/tests/MemoryProfiler.test.d.ts.map +1 -0
- package/dist/tests/MemoryProfiler.test.js +402 -0
- package/dist/tests/MemoryProfiler.test.js.map +1 -0
- package/dist/tests/OverlapDetector.test.d.ts +2 -0
- package/dist/tests/OverlapDetector.test.d.ts.map +1 -0
- package/dist/tests/OverlapDetector.test.js +340 -0
- package/dist/tests/OverlapDetector.test.js.map +1 -0
- package/dist/tests/QualityScorer.test.d.ts +7 -0
- package/dist/tests/QualityScorer.test.d.ts.map +1 -0
- package/dist/tests/QualityScorer.test.js +340 -0
- package/dist/tests/QualityScorer.test.js.map +1 -0
- package/dist/tests/QuarantineRepository.test.d.ts +7 -0
- package/dist/tests/QuarantineRepository.test.d.ts.map +1 -0
- package/dist/tests/QuarantineRepository.test.js +582 -0
- package/dist/tests/QuarantineRepository.test.js.map +1 -0
- package/dist/tests/ROIDashboardService.test.d.ts +7 -0
- package/dist/tests/ROIDashboardService.test.d.ts.map +1 -0
- package/dist/tests/ROIDashboardService.test.js +324 -0
- package/dist/tests/ROIDashboardService.test.js.map +1 -0
- package/dist/tests/RateLimiter.test.d.ts +7 -0
- package/dist/tests/RateLimiter.test.d.ts.map +1 -0
- package/dist/tests/RateLimiter.test.js +1017 -0
- package/dist/tests/RateLimiter.test.js.map +1 -0
- package/dist/tests/RawUrlSourceAdapter.security.test.d.ts +7 -0
- package/dist/tests/RawUrlSourceAdapter.security.test.d.ts.map +1 -0
- package/dist/tests/RawUrlSourceAdapter.security.test.js +455 -0
- package/dist/tests/RawUrlSourceAdapter.security.test.js.map +1 -0
- package/dist/tests/ScraperAdapters.test.d.ts +7 -0
- package/dist/tests/ScraperAdapters.test.d.ts.map +1 -0
- package/dist/tests/ScraperAdapters.test.js +748 -0
- package/dist/tests/ScraperAdapters.test.js.map +1 -0
- package/dist/tests/SearchQuality.test.d.ts +8 -0
- package/dist/tests/SearchQuality.test.d.ts.map +1 -0
- package/dist/tests/SearchQuality.test.js +397 -0
- package/dist/tests/SearchQuality.test.js.map +1 -0
- package/dist/tests/SearchService.test.d.ts +5 -0
- package/dist/tests/SearchService.test.d.ts.map +1 -0
- package/dist/tests/SearchService.test.js +218 -0
- package/dist/tests/SearchService.test.js.map +1 -0
- package/dist/tests/SecurityScanner.test.d.ts +6 -0
- package/dist/tests/SecurityScanner.test.d.ts.map +1 -0
- package/dist/tests/SecurityScanner.test.js +449 -0
- package/dist/tests/SecurityScanner.test.js.map +1 -0
- package/dist/tests/SessionHealthMonitor.test.d.ts +5 -0
- package/dist/tests/SessionHealthMonitor.test.d.ts.map +1 -0
- package/dist/tests/SessionHealthMonitor.test.js +449 -0
- package/dist/tests/SessionHealthMonitor.test.js.map +1 -0
- package/dist/tests/SessionManager.security.test.d.ts +10 -0
- package/dist/tests/SessionManager.security.test.d.ts.map +1 -0
- package/dist/tests/SessionManager.security.test.js +395 -0
- package/dist/tests/SessionManager.security.test.js.map +1 -0
- package/dist/tests/SessionManager.test.d.ts +8 -0
- package/dist/tests/SessionManager.test.d.ts.map +1 -0
- package/dist/tests/SessionManager.test.js +446 -0
- package/dist/tests/SessionManager.test.js.map +1 -0
- package/dist/tests/SkillMatcher.test.d.ts +2 -0
- package/dist/tests/SkillMatcher.test.d.ts.map +1 -0
- package/dist/tests/SkillMatcher.test.js +253 -0
- package/dist/tests/SkillMatcher.test.js.map +1 -0
- package/dist/tests/SkillRepository.test.d.ts +5 -0
- package/dist/tests/SkillRepository.test.d.ts.map +1 -0
- package/dist/tests/SkillRepository.test.js +237 -0
- package/dist/tests/SkillRepository.test.js.map +1 -0
- package/dist/tests/SwarmIndexer.test.d.ts +11 -0
- package/dist/tests/SwarmIndexer.test.d.ts.map +1 -0
- package/dist/tests/SwarmIndexer.test.js +374 -0
- package/dist/tests/SwarmIndexer.test.js.map +1 -0
- package/dist/tests/TieredCache.test.d.ts +7 -0
- package/dist/tests/TieredCache.test.d.ts.map +1 -0
- package/dist/tests/TieredCache.test.js +529 -0
- package/dist/tests/TieredCache.test.js.map +1 -0
- package/dist/tests/UsageAnalyticsService.test.d.ts +7 -0
- package/dist/tests/UsageAnalyticsService.test.d.ts.map +1 -0
- package/dist/tests/UsageAnalyticsService.test.js +238 -0
- package/dist/tests/UsageAnalyticsService.test.js.map +1 -0
- package/dist/tests/UsageTracker.test.d.ts +7 -0
- package/dist/tests/UsageTracker.test.d.ts.map +1 -0
- package/dist/tests/UsageTracker.test.js +196 -0
- package/dist/tests/UsageTracker.test.js.map +1 -0
- package/dist/tests/WebhookHandler.test.d.ts +10 -0
- package/dist/tests/WebhookHandler.test.d.ts.map +1 -0
- package/dist/tests/WebhookHandler.test.js +592 -0
- package/dist/tests/WebhookHandler.test.js.map +1 -0
- package/dist/tests/analytics/metrics-aggregator.test.d.ts +11 -0
- package/dist/tests/analytics/metrics-aggregator.test.d.ts.map +1 -0
- package/dist/tests/analytics/metrics-aggregator.test.js +273 -0
- package/dist/tests/analytics/metrics-aggregator.test.js.map +1 -0
- package/dist/tests/analytics/metrics-exporter.test.d.ts +11 -0
- package/dist/tests/analytics/metrics-exporter.test.d.ts.map +1 -0
- package/dist/tests/analytics/metrics-exporter.test.js +371 -0
- package/dist/tests/analytics/metrics-exporter.test.js.map +1 -0
- package/dist/tests/analytics/usage-tracker.test.d.ts +10 -0
- package/dist/tests/analytics/usage-tracker.test.d.ts.map +1 -0
- package/dist/tests/analytics/usage-tracker.test.js +151 -0
- package/dist/tests/analytics/usage-tracker.test.js.map +1 -0
- package/dist/tests/anonymizer.test.d.ts +8 -0
- package/dist/tests/anonymizer.test.d.ts.map +1 -0
- package/dist/tests/anonymizer.test.js +153 -0
- package/dist/tests/anonymizer.test.js.map +1 -0
- package/dist/tests/cache.test.d.ts +6 -0
- package/dist/tests/cache.test.d.ts.map +1 -0
- package/dist/tests/cache.test.js +170 -0
- package/dist/tests/cache.test.js.map +1 -0
- package/dist/tests/e2e/security/security.e2e.test.d.ts +8 -0
- package/dist/tests/e2e/security/security.e2e.test.d.ts.map +1 -0
- package/dist/tests/e2e/security/security.e2e.test.js +448 -0
- package/dist/tests/e2e/security/security.e2e.test.js.map +1 -0
- package/dist/tests/edge-cases/EdgeCases.test.d.ts +13 -0
- package/dist/tests/edge-cases/EdgeCases.test.d.ts.map +1 -0
- package/dist/tests/edge-cases/EdgeCases.test.js +844 -0
- package/dist/tests/edge-cases/EdgeCases.test.js.map +1 -0
- package/dist/tests/import-github-skills.test.d.ts +8 -0
- package/dist/tests/import-github-skills.test.d.ts.map +1 -0
- package/dist/tests/import-github-skills.test.js +390 -0
- package/dist/tests/import-github-skills.test.js.map +1 -0
- package/dist/tests/logger.test.d.ts +2 -0
- package/dist/tests/logger.test.d.ts.map +1 -0
- package/dist/tests/logger.test.js +417 -0
- package/dist/tests/logger.test.js.map +1 -0
- package/dist/tests/performance/LargeScalePerformance.test.d.ts +14 -0
- package/dist/tests/performance/LargeScalePerformance.test.d.ts.map +1 -0
- package/dist/tests/performance/LargeScalePerformance.test.js +558 -0
- package/dist/tests/performance/LargeScalePerformance.test.js.map +1 -0
- package/dist/tests/retry.test.d.ts +7 -0
- package/dist/tests/retry.test.d.ts.map +1 -0
- package/dist/tests/retry.test.js +302 -0
- package/dist/tests/retry.test.js.map +1 -0
- package/dist/tests/sanitization.test.d.ts +8 -0
- package/dist/tests/sanitization.test.d.ts.map +1 -0
- package/dist/tests/sanitization.test.js +413 -0
- package/dist/tests/sanitization.test.js.map +1 -0
- package/dist/tests/schema.test.d.ts +5 -0
- package/dist/tests/schema.test.d.ts.map +1 -0
- package/dist/tests/schema.test.js +167 -0
- package/dist/tests/schema.test.js.map +1 -0
- package/dist/tests/scripts/import-to-database.test.d.ts +11 -0
- package/dist/tests/scripts/import-to-database.test.d.ts.map +1 -0
- package/dist/tests/scripts/import-to-database.test.js +325 -0
- package/dist/tests/scripts/import-to-database.test.js.map +1 -0
- package/dist/tests/security/ContinuousSecurity.test.d.ts +6 -0
- package/dist/tests/security/ContinuousSecurity.test.d.ts.map +1 -0
- package/dist/tests/security/ContinuousSecurity.test.js +595 -0
- package/dist/tests/security/ContinuousSecurity.test.js.map +1 -0
- package/dist/tests/security/ReDoS.test.d.ts +8 -0
- package/dist/tests/security/ReDoS.test.d.ts.map +1 -0
- package/dist/tests/security/ReDoS.test.js +213 -0
- package/dist/tests/security/ReDoS.test.js.map +1 -0
- package/dist/tests/security.test.d.ts +5 -0
- package/dist/tests/security.test.d.ts.map +1 -0
- package/dist/tests/security.test.js +134 -0
- package/dist/tests/security.test.js.map +1 -0
- package/dist/tests/shared.test.d.ts +7 -0
- package/dist/tests/shared.test.d.ts.map +1 -0
- package/dist/tests/shared.test.js +480 -0
- package/dist/tests/shared.test.js.map +1 -0
- package/dist/tests/sources.test.d.ts +5 -0
- package/dist/tests/sources.test.d.ts.map +1 -0
- package/dist/tests/sources.test.js +369 -0
- package/dist/tests/sources.test.js.map +1 -0
- package/dist/tests/stats.test.d.ts +11 -0
- package/dist/tests/stats.test.d.ts.map +1 -0
- package/dist/tests/stats.test.js +124 -0
- package/dist/tests/stats.test.js.map +1 -0
- package/dist/tests/telemetry.test.d.ts +11 -0
- package/dist/tests/telemetry.test.d.ts.map +1 -0
- package/dist/tests/telemetry.test.js +424 -0
- package/dist/tests/telemetry.test.js.map +1 -0
- package/dist/tests/test-utils.d.ts +74 -0
- package/dist/tests/test-utils.d.ts.map +1 -0
- package/dist/tests/test-utils.js +98 -0
- package/dist/tests/test-utils.js.map +1 -0
- package/dist/tests/validate-skills.test.d.ts +5 -0
- package/dist/tests/validate-skills.test.d.ts.map +1 -0
- package/dist/tests/validate-skills.test.js +649 -0
- package/dist/tests/validate-skills.test.js.map +1 -0
- package/dist/tests/validation.test.d.ts +7 -0
- package/dist/tests/validation.test.d.ts.map +1 -0
- package/dist/tests/validation.test.js +495 -0
- package/dist/tests/validation.test.js.map +1 -0
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.d.ts +8 -0
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.d.ts.map +1 -0
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.js +190 -0
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.js.map +1 -0
- package/dist/tests/webhooks/WebhookPayload.security.test.d.ts +8 -0
- package/dist/tests/webhooks/WebhookPayload.security.test.d.ts.map +1 -0
- package/dist/tests/webhooks/WebhookPayload.security.test.js +204 -0
- package/dist/tests/webhooks/WebhookPayload.security.test.js.map +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +13 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Manager for Claude-Flow Memory Integration
|
|
3
|
+
* SMI-641: Session ID Storage in Claude-Flow Memory
|
|
4
|
+
*
|
|
5
|
+
* Manages session lifecycle with persistent storage in claude-flow memory
|
|
6
|
+
* to enable context restoration across sessions.
|
|
7
|
+
*/
|
|
8
|
+
import type { SessionData, Checkpoint } from './SessionContext.js';
|
|
9
|
+
/**
|
|
10
|
+
* Options for creating a new session
|
|
11
|
+
*/
|
|
12
|
+
export interface SessionOptions {
|
|
13
|
+
issueId?: string;
|
|
14
|
+
worktree?: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result from claude-flow memory operations
|
|
19
|
+
*/
|
|
20
|
+
export interface MemoryResult {
|
|
21
|
+
success: boolean;
|
|
22
|
+
data?: string;
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Command executor interface for dependency injection
|
|
27
|
+
* Allows mocking claude-flow commands in tests
|
|
28
|
+
*
|
|
29
|
+
* Supports two modes:
|
|
30
|
+
* - spawn(): Secure argument-array based execution (preferred)
|
|
31
|
+
* - execute(): Legacy string-based execution (deprecated, for backwards compatibility)
|
|
32
|
+
*/
|
|
33
|
+
export interface CommandExecutor {
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated Use spawn() instead for security
|
|
36
|
+
*/
|
|
37
|
+
execute(command: string): Promise<{
|
|
38
|
+
stdout: string;
|
|
39
|
+
stderr: string;
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Secure spawn-based execution with argument array
|
|
43
|
+
* Prevents command injection by not using shell interpolation
|
|
44
|
+
*/
|
|
45
|
+
spawn?(executable: string, args: string[]): Promise<{
|
|
46
|
+
stdout: string;
|
|
47
|
+
stderr: string;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Default command executor using child_process.spawn
|
|
52
|
+
* Uses argument arrays to prevent command injection
|
|
53
|
+
*/
|
|
54
|
+
export declare class DefaultCommandExecutor implements CommandExecutor {
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated Legacy string-based execution - use spawn instead
|
|
57
|
+
*/
|
|
58
|
+
execute(command: string): Promise<{
|
|
59
|
+
stdout: string;
|
|
60
|
+
stderr: string;
|
|
61
|
+
}>;
|
|
62
|
+
/**
|
|
63
|
+
* Secure spawn-based execution with argument array
|
|
64
|
+
*/
|
|
65
|
+
spawn(executable: string, args: string[]): Promise<{
|
|
66
|
+
stdout: string;
|
|
67
|
+
stderr: string;
|
|
68
|
+
}>;
|
|
69
|
+
/**
|
|
70
|
+
* Parse legacy string command and execute via spawn
|
|
71
|
+
*/
|
|
72
|
+
private executeWithSpawn;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Session Manager for claude-flow memory integration
|
|
76
|
+
*
|
|
77
|
+
* Provides session lifecycle management:
|
|
78
|
+
* - Start sessions with unique IDs
|
|
79
|
+
* - Create checkpoints for recovery points
|
|
80
|
+
* - End sessions with cleanup
|
|
81
|
+
* - Recover sessions from memory
|
|
82
|
+
*
|
|
83
|
+
* Thread Safety:
|
|
84
|
+
* - Uses mutex lock for concurrent operations (SMI-675)
|
|
85
|
+
* - Implements rollback on partial failures (SMI-676)
|
|
86
|
+
*/
|
|
87
|
+
export declare class SessionManager {
|
|
88
|
+
private executor;
|
|
89
|
+
private currentSession;
|
|
90
|
+
/**
|
|
91
|
+
* Mutex lock for serializing session modifications
|
|
92
|
+
* Prevents race conditions when multiple operations run concurrently
|
|
93
|
+
*/
|
|
94
|
+
private sessionLock;
|
|
95
|
+
constructor(executor?: CommandExecutor);
|
|
96
|
+
/**
|
|
97
|
+
* Execute a function with exclusive access to session state
|
|
98
|
+
* Serializes concurrent operations to prevent race conditions
|
|
99
|
+
*/
|
|
100
|
+
private withLock;
|
|
101
|
+
/**
|
|
102
|
+
* Generate a unique session ID using crypto.randomUUID (per standards.md §4.8)
|
|
103
|
+
*/
|
|
104
|
+
generateSessionId(): string;
|
|
105
|
+
/**
|
|
106
|
+
* Start a new session and store in claude-flow memory
|
|
107
|
+
*/
|
|
108
|
+
startSession(options?: SessionOptions): Promise<SessionData>;
|
|
109
|
+
/**
|
|
110
|
+
* Create a checkpoint in the current session
|
|
111
|
+
*
|
|
112
|
+
* SMI-675: Uses mutex lock to prevent race conditions
|
|
113
|
+
* SMI-676: Stores checkpoint memory FIRST, rolls back on failure
|
|
114
|
+
*/
|
|
115
|
+
createCheckpoint(description: string): Promise<Checkpoint>;
|
|
116
|
+
/**
|
|
117
|
+
* Record a modified file in the current session
|
|
118
|
+
* SMI-675: Uses mutex lock to prevent race conditions
|
|
119
|
+
*/
|
|
120
|
+
recordFileModified(filePath: string): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* End the current session
|
|
123
|
+
*/
|
|
124
|
+
endSession(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Get the current active session
|
|
127
|
+
*/
|
|
128
|
+
getCurrentSession(): SessionData | null;
|
|
129
|
+
/**
|
|
130
|
+
* Retrieve a session from memory by ID
|
|
131
|
+
*/
|
|
132
|
+
getSession(sessionId: string): Promise<SessionData | null>;
|
|
133
|
+
/**
|
|
134
|
+
* Get the ID of the current session from memory
|
|
135
|
+
*/
|
|
136
|
+
getCurrentSessionId(): Promise<string | null>;
|
|
137
|
+
/**
|
|
138
|
+
* Store session data in claude-flow memory
|
|
139
|
+
*/
|
|
140
|
+
private storeSession;
|
|
141
|
+
/**
|
|
142
|
+
* Set the current session pointer
|
|
143
|
+
*/
|
|
144
|
+
private setCurrentSession;
|
|
145
|
+
/**
|
|
146
|
+
* Clear the current session pointer
|
|
147
|
+
*/
|
|
148
|
+
private clearCurrentSession;
|
|
149
|
+
/**
|
|
150
|
+
* Store data in claude-flow memory
|
|
151
|
+
*
|
|
152
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
153
|
+
* Values are passed as separate arguments, never interpolated into shell commands
|
|
154
|
+
*/
|
|
155
|
+
private storeMemory;
|
|
156
|
+
/**
|
|
157
|
+
* Retrieve data from claude-flow memory
|
|
158
|
+
*
|
|
159
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
160
|
+
*/
|
|
161
|
+
private retrieveMemory;
|
|
162
|
+
/**
|
|
163
|
+
* Delete data from claude-flow memory
|
|
164
|
+
*
|
|
165
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
166
|
+
*/
|
|
167
|
+
private deleteMemory;
|
|
168
|
+
/**
|
|
169
|
+
* Run pre-task hook
|
|
170
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
171
|
+
*/
|
|
172
|
+
private runPreTaskHook;
|
|
173
|
+
/**
|
|
174
|
+
* Run post-task hook
|
|
175
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
176
|
+
*/
|
|
177
|
+
private runPostTaskHook;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=SessionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAkB,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAwClF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAErE;;;OAGG;IACH,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACxF;AAED;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAK3E;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAiC5F;;OAEG;YACW,gBAAgB;CAO/B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAA2B;IAEjD;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAmC;gBAE1C,QAAQ,CAAC,EAAE,eAAe;IAItC;;;OAGG;YACW,QAAQ;IAiBtB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IA6BtE;;;;;OAKG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoDhE;;;OAGG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC;;OAEG;IACH,iBAAiB,IAAI,WAAW,GAAG,IAAI;IAIvC;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAehE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAenD;;OAEG;YACW,YAAY;IAM1B;;OAEG;YACW,iBAAiB;IAI/B;;OAEG;YACW,mBAAmB;IAIjC;;;;;OAKG;YACW,WAAW;IA4BzB;;;;OAIG;YACW,cAAc;IA4B5B;;;;OAIG;YACW,YAAY;IAuB1B;;;OAGG;YACW,cAAc;IAyB5B;;;OAGG;YACW,eAAe;CAe9B"}
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Manager for Claude-Flow Memory Integration
|
|
3
|
+
* SMI-641: Session ID Storage in Claude-Flow Memory
|
|
4
|
+
*
|
|
5
|
+
* Manages session lifecycle with persistent storage in claude-flow memory
|
|
6
|
+
* to enable context restoration across sessions.
|
|
7
|
+
*/
|
|
8
|
+
import { randomUUID } from 'node:crypto';
|
|
9
|
+
import { spawn } from 'node:child_process';
|
|
10
|
+
/**
|
|
11
|
+
* Memory key patterns for session storage
|
|
12
|
+
*/
|
|
13
|
+
const MEMORY_KEYS = {
|
|
14
|
+
CURRENT: 'session/current',
|
|
15
|
+
SESSION_PREFIX: 'session/',
|
|
16
|
+
CHECKPOINT_PREFIX: 'checkpoint/',
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Validates a memory key to prevent injection attacks
|
|
20
|
+
* Only allows alphanumeric characters, hyphens, underscores, and forward slashes
|
|
21
|
+
*/
|
|
22
|
+
function validateMemoryKey(key) {
|
|
23
|
+
const SAFE_KEY_PATTERN = /^[a-zA-Z0-9/_-]+$/;
|
|
24
|
+
return SAFE_KEY_PATTERN.test(key) && key.length <= 256;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Sanitizes session data before storage
|
|
28
|
+
*/
|
|
29
|
+
function sanitizeSessionData(data) {
|
|
30
|
+
return {
|
|
31
|
+
sessionId: data.sessionId,
|
|
32
|
+
startedAt: data.startedAt,
|
|
33
|
+
issueId: data.issueId?.replace(/[<>]/g, ''),
|
|
34
|
+
worktree: data.worktree?.replace(/[<>]/g, ''),
|
|
35
|
+
checkpoints: data.checkpoints.map((cp) => ({
|
|
36
|
+
id: cp.id,
|
|
37
|
+
timestamp: cp.timestamp,
|
|
38
|
+
description: cp.description.substring(0, 500),
|
|
39
|
+
memoryKey: cp.memoryKey,
|
|
40
|
+
})),
|
|
41
|
+
filesModified: data.filesModified.map((f) => f.substring(0, 500)),
|
|
42
|
+
lastActivity: data.lastActivity,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Default command executor using child_process.spawn
|
|
47
|
+
* Uses argument arrays to prevent command injection
|
|
48
|
+
*/
|
|
49
|
+
export class DefaultCommandExecutor {
|
|
50
|
+
/**
|
|
51
|
+
* @deprecated Legacy string-based execution - use spawn instead
|
|
52
|
+
*/
|
|
53
|
+
async execute(command) {
|
|
54
|
+
// For backwards compatibility only - prefer spawn()
|
|
55
|
+
return this.executeWithSpawn(command);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Secure spawn-based execution with argument array
|
|
59
|
+
*/
|
|
60
|
+
async spawn(executable, args) {
|
|
61
|
+
return new Promise((resolve, reject) => {
|
|
62
|
+
const proc = spawn(executable, args, {
|
|
63
|
+
shell: false,
|
|
64
|
+
env: { ...process.env },
|
|
65
|
+
timeout: 30000,
|
|
66
|
+
});
|
|
67
|
+
let stdout = '';
|
|
68
|
+
let stderr = '';
|
|
69
|
+
proc.stdout?.on('data', (data) => {
|
|
70
|
+
stdout += data.toString();
|
|
71
|
+
});
|
|
72
|
+
proc.stderr?.on('data', (data) => {
|
|
73
|
+
stderr += data.toString();
|
|
74
|
+
});
|
|
75
|
+
proc.on('close', (code) => {
|
|
76
|
+
if (code === 0) {
|
|
77
|
+
resolve({ stdout: stdout.trim(), stderr: stderr.trim() });
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
reject(new Error(stderr || `Command failed with code ${code}`));
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
proc.on('error', (err) => {
|
|
84
|
+
reject(err);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Parse legacy string command and execute via spawn
|
|
90
|
+
*/
|
|
91
|
+
async executeWithSpawn(command) {
|
|
92
|
+
// Parse the command safely
|
|
93
|
+
const parts = command.split(' ');
|
|
94
|
+
const executable = parts[0];
|
|
95
|
+
const args = parts.slice(1);
|
|
96
|
+
return this.spawn(executable, args);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Session Manager for claude-flow memory integration
|
|
101
|
+
*
|
|
102
|
+
* Provides session lifecycle management:
|
|
103
|
+
* - Start sessions with unique IDs
|
|
104
|
+
* - Create checkpoints for recovery points
|
|
105
|
+
* - End sessions with cleanup
|
|
106
|
+
* - Recover sessions from memory
|
|
107
|
+
*
|
|
108
|
+
* Thread Safety:
|
|
109
|
+
* - Uses mutex lock for concurrent operations (SMI-675)
|
|
110
|
+
* - Implements rollback on partial failures (SMI-676)
|
|
111
|
+
*/
|
|
112
|
+
export class SessionManager {
|
|
113
|
+
executor;
|
|
114
|
+
currentSession = null;
|
|
115
|
+
/**
|
|
116
|
+
* Mutex lock for serializing session modifications
|
|
117
|
+
* Prevents race conditions when multiple operations run concurrently
|
|
118
|
+
*/
|
|
119
|
+
sessionLock = Promise.resolve();
|
|
120
|
+
constructor(executor) {
|
|
121
|
+
this.executor = executor ?? new DefaultCommandExecutor();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Execute a function with exclusive access to session state
|
|
125
|
+
* Serializes concurrent operations to prevent race conditions
|
|
126
|
+
*/
|
|
127
|
+
async withLock(fn) {
|
|
128
|
+
const currentLock = this.sessionLock;
|
|
129
|
+
let releaseLock;
|
|
130
|
+
this.sessionLock = new Promise((resolve) => {
|
|
131
|
+
releaseLock = resolve;
|
|
132
|
+
});
|
|
133
|
+
await currentLock;
|
|
134
|
+
try {
|
|
135
|
+
return await fn();
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
releaseLock();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Generate a unique session ID using crypto.randomUUID (per standards.md §4.8)
|
|
143
|
+
*/
|
|
144
|
+
generateSessionId() {
|
|
145
|
+
return randomUUID();
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Start a new session and store in claude-flow memory
|
|
149
|
+
*/
|
|
150
|
+
async startSession(options = {}) {
|
|
151
|
+
const sessionId = this.generateSessionId();
|
|
152
|
+
const now = new Date().toISOString();
|
|
153
|
+
const session = {
|
|
154
|
+
sessionId,
|
|
155
|
+
startedAt: now,
|
|
156
|
+
issueId: options.issueId,
|
|
157
|
+
worktree: options.worktree,
|
|
158
|
+
checkpoints: [],
|
|
159
|
+
filesModified: [],
|
|
160
|
+
lastActivity: now,
|
|
161
|
+
};
|
|
162
|
+
// Store session in memory
|
|
163
|
+
await this.storeSession(session);
|
|
164
|
+
// Set as current session
|
|
165
|
+
await this.setCurrentSession(sessionId);
|
|
166
|
+
// Run pre-task hook if description provided
|
|
167
|
+
if (options.description) {
|
|
168
|
+
await this.runPreTaskHook(options.description);
|
|
169
|
+
}
|
|
170
|
+
this.currentSession = session;
|
|
171
|
+
return session;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Create a checkpoint in the current session
|
|
175
|
+
*
|
|
176
|
+
* SMI-675: Uses mutex lock to prevent race conditions
|
|
177
|
+
* SMI-676: Stores checkpoint memory FIRST, rolls back on failure
|
|
178
|
+
*/
|
|
179
|
+
async createCheckpoint(description) {
|
|
180
|
+
return this.withLock(async () => {
|
|
181
|
+
if (!this.currentSession) {
|
|
182
|
+
throw new Error('No active session. Call startSession() first.');
|
|
183
|
+
}
|
|
184
|
+
const checkpoint = {
|
|
185
|
+
id: this.generateSessionId(),
|
|
186
|
+
timestamp: new Date().toISOString(),
|
|
187
|
+
description: description.substring(0, 500),
|
|
188
|
+
memoryKey: `${MEMORY_KEYS.CHECKPOINT_PREFIX}${this.currentSession.sessionId}/${Date.now()}`,
|
|
189
|
+
};
|
|
190
|
+
// SMI-676: Store checkpoint data FIRST (before updating session)
|
|
191
|
+
const checkpointResult = await this.storeMemory(checkpoint.memoryKey, JSON.stringify(checkpoint));
|
|
192
|
+
if (!checkpointResult.success) {
|
|
193
|
+
throw new Error(`Failed to store checkpoint: ${checkpointResult.error}`);
|
|
194
|
+
}
|
|
195
|
+
// Create a copy of session before modification for potential rollback
|
|
196
|
+
const previousCheckpoints = [...this.currentSession.checkpoints];
|
|
197
|
+
const previousLastActivity = this.currentSession.lastActivity;
|
|
198
|
+
// Update session state
|
|
199
|
+
this.currentSession.checkpoints.push(checkpoint);
|
|
200
|
+
this.currentSession.lastActivity = checkpoint.timestamp;
|
|
201
|
+
// Try to store updated session
|
|
202
|
+
try {
|
|
203
|
+
const sessionResult = await this.storeSession(this.currentSession);
|
|
204
|
+
if (!sessionResult.success) {
|
|
205
|
+
throw new Error(`Failed to store session: ${sessionResult.error}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
// SMI-676: Rollback - restore previous session state
|
|
210
|
+
this.currentSession.checkpoints = previousCheckpoints;
|
|
211
|
+
this.currentSession.lastActivity = previousLastActivity;
|
|
212
|
+
// Clean up the checkpoint from memory
|
|
213
|
+
await this.deleteMemory(checkpoint.memoryKey);
|
|
214
|
+
throw err;
|
|
215
|
+
}
|
|
216
|
+
return checkpoint;
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Record a modified file in the current session
|
|
221
|
+
* SMI-675: Uses mutex lock to prevent race conditions
|
|
222
|
+
*/
|
|
223
|
+
async recordFileModified(filePath) {
|
|
224
|
+
return this.withLock(async () => {
|
|
225
|
+
if (!this.currentSession) {
|
|
226
|
+
throw new Error('No active session. Call startSession() first.');
|
|
227
|
+
}
|
|
228
|
+
// Avoid duplicates
|
|
229
|
+
if (!this.currentSession.filesModified.includes(filePath)) {
|
|
230
|
+
this.currentSession.filesModified.push(filePath);
|
|
231
|
+
this.currentSession.lastActivity = new Date().toISOString();
|
|
232
|
+
await this.storeSession(this.currentSession);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* End the current session
|
|
238
|
+
*/
|
|
239
|
+
async endSession() {
|
|
240
|
+
if (!this.currentSession) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
this.currentSession.lastActivity = new Date().toISOString();
|
|
244
|
+
await this.storeSession(this.currentSession);
|
|
245
|
+
// Run post-task hook
|
|
246
|
+
await this.runPostTaskHook(this.currentSession.sessionId);
|
|
247
|
+
// Clear current session pointer
|
|
248
|
+
await this.clearCurrentSession();
|
|
249
|
+
this.currentSession = null;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get the current active session
|
|
253
|
+
*/
|
|
254
|
+
getCurrentSession() {
|
|
255
|
+
return this.currentSession;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Retrieve a session from memory by ID
|
|
259
|
+
*/
|
|
260
|
+
async getSession(sessionId) {
|
|
261
|
+
const memoryKey = `${MEMORY_KEYS.SESSION_PREFIX}${sessionId}`;
|
|
262
|
+
const result = await this.retrieveMemory(memoryKey);
|
|
263
|
+
if (!result.success || !result.data) {
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
try {
|
|
267
|
+
return JSON.parse(result.data);
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
return null;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Get the ID of the current session from memory
|
|
275
|
+
*/
|
|
276
|
+
async getCurrentSessionId() {
|
|
277
|
+
const result = await this.retrieveMemory(MEMORY_KEYS.CURRENT);
|
|
278
|
+
if (!result.success || !result.data) {
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
281
|
+
try {
|
|
282
|
+
const data = JSON.parse(result.data);
|
|
283
|
+
return data.sessionId ?? null;
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
return null;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Store session data in claude-flow memory
|
|
291
|
+
*/
|
|
292
|
+
async storeSession(session) {
|
|
293
|
+
const memoryKey = `${MEMORY_KEYS.SESSION_PREFIX}${session.sessionId}`;
|
|
294
|
+
const sanitized = sanitizeSessionData(session);
|
|
295
|
+
return this.storeMemory(memoryKey, JSON.stringify(sanitized));
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Set the current session pointer
|
|
299
|
+
*/
|
|
300
|
+
async setCurrentSession(sessionId) {
|
|
301
|
+
return this.storeMemory(MEMORY_KEYS.CURRENT, JSON.stringify({ sessionId }));
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Clear the current session pointer
|
|
305
|
+
*/
|
|
306
|
+
async clearCurrentSession() {
|
|
307
|
+
return this.deleteMemory(MEMORY_KEYS.CURRENT);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Store data in claude-flow memory
|
|
311
|
+
*
|
|
312
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
313
|
+
* Values are passed as separate arguments, never interpolated into shell commands
|
|
314
|
+
*/
|
|
315
|
+
async storeMemory(key, value) {
|
|
316
|
+
if (!validateMemoryKey(key)) {
|
|
317
|
+
return { success: false, error: 'Invalid memory key' };
|
|
318
|
+
}
|
|
319
|
+
try {
|
|
320
|
+
// SMI-674 FIX: Use spawn with argument array instead of string interpolation
|
|
321
|
+
// This prevents command injection attacks like $(whoami) or `id`
|
|
322
|
+
const args = ['claude-flow@alpha', 'memory', 'store', '--key', key, '--value', value];
|
|
323
|
+
if (this.executor.spawn) {
|
|
324
|
+
await this.executor.spawn('npx', args);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
// Fallback to execute for backwards compatibility (legacy executors)
|
|
328
|
+
// Note: This path should not be used in production
|
|
329
|
+
const escapedValue = value.replace(/'/g, "'\\''");
|
|
330
|
+
const command = `npx claude-flow@alpha memory store --key "${key}" --value '${escapedValue}'`;
|
|
331
|
+
await this.executor.execute(command);
|
|
332
|
+
}
|
|
333
|
+
return { success: true };
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
return {
|
|
337
|
+
success: false,
|
|
338
|
+
error: error instanceof Error ? error.message : String(error),
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Retrieve data from claude-flow memory
|
|
344
|
+
*
|
|
345
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
346
|
+
*/
|
|
347
|
+
async retrieveMemory(key) {
|
|
348
|
+
if (!validateMemoryKey(key)) {
|
|
349
|
+
return { success: false, error: 'Invalid memory key' };
|
|
350
|
+
}
|
|
351
|
+
try {
|
|
352
|
+
// SMI-674 FIX: Use spawn with argument array
|
|
353
|
+
const args = ['claude-flow@alpha', 'memory', 'get', '--key', key];
|
|
354
|
+
let stdout;
|
|
355
|
+
if (this.executor.spawn) {
|
|
356
|
+
const result = await this.executor.spawn('npx', args);
|
|
357
|
+
stdout = result.stdout;
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
// Fallback for backwards compatibility
|
|
361
|
+
const command = `npx claude-flow@alpha memory get --key "${key}"`;
|
|
362
|
+
const result = await this.executor.execute(command);
|
|
363
|
+
stdout = result.stdout;
|
|
364
|
+
}
|
|
365
|
+
return { success: true, data: stdout.trim() };
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
return {
|
|
369
|
+
success: false,
|
|
370
|
+
error: error instanceof Error ? error.message : String(error),
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Delete data from claude-flow memory
|
|
376
|
+
*
|
|
377
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
378
|
+
*/
|
|
379
|
+
async deleteMemory(key) {
|
|
380
|
+
if (!validateMemoryKey(key)) {
|
|
381
|
+
return { success: false, error: 'Invalid memory key' };
|
|
382
|
+
}
|
|
383
|
+
try {
|
|
384
|
+
// SMI-674 FIX: Use spawn with argument array
|
|
385
|
+
const args = ['claude-flow@alpha', 'memory', 'delete', '--key', key];
|
|
386
|
+
if (this.executor.spawn) {
|
|
387
|
+
await this.executor.spawn('npx', args);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
// Fallback for backwards compatibility
|
|
391
|
+
const command = `npx claude-flow@alpha memory delete --key "${key}"`;
|
|
392
|
+
await this.executor.execute(command);
|
|
393
|
+
}
|
|
394
|
+
return { success: true };
|
|
395
|
+
}
|
|
396
|
+
catch {
|
|
397
|
+
// Ignore delete errors (key may not exist)
|
|
398
|
+
return { success: true };
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Run pre-task hook
|
|
403
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
404
|
+
*/
|
|
405
|
+
async runPreTaskHook(description) {
|
|
406
|
+
try {
|
|
407
|
+
const args = [
|
|
408
|
+
'claude-flow@alpha',
|
|
409
|
+
'hooks',
|
|
410
|
+
'pre-task',
|
|
411
|
+
'--description',
|
|
412
|
+
description,
|
|
413
|
+
'--memory-key',
|
|
414
|
+
'session/current',
|
|
415
|
+
];
|
|
416
|
+
if (this.executor.spawn) {
|
|
417
|
+
await this.executor.spawn('npx', args);
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
// Fallback for backwards compatibility
|
|
421
|
+
const escapedDesc = description.replace(/'/g, "'\\''");
|
|
422
|
+
const command = `npx claude-flow@alpha hooks pre-task --description '${escapedDesc}' --memory-key "session/current"`;
|
|
423
|
+
await this.executor.execute(command);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
catch {
|
|
427
|
+
// Hooks are optional, don't fail if they don't work
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Run post-task hook
|
|
432
|
+
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
433
|
+
*/
|
|
434
|
+
async runPostTaskHook(taskId) {
|
|
435
|
+
try {
|
|
436
|
+
const args = ['claude-flow@alpha', 'hooks', 'post-task', '--task-id', taskId];
|
|
437
|
+
if (this.executor.spawn) {
|
|
438
|
+
await this.executor.spawn('npx', args);
|
|
439
|
+
}
|
|
440
|
+
else {
|
|
441
|
+
// Fallback for backwards compatibility
|
|
442
|
+
const command = `npx claude-flow@alpha hooks post-task --task-id "${taskId}"`;
|
|
443
|
+
await this.executor.execute(command);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
catch {
|
|
447
|
+
// Hooks are optional, don't fail if they don't work
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
//# sourceMappingURL=SessionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../src/session/SessionManager.ts"],"names":[],"mappings":"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"}
|