@skillsmith/core 0.4.0 → 0.4.2
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 -1
- package/dist/src/analysis/CodebaseAnalyzer.d.ts.map +1 -1
- package/dist/src/analysis/CodebaseAnalyzer.js.map +1 -1
- package/dist/src/analysis/adapters/__tests__/python.test.js.map +1 -1
- package/dist/src/analysis/adapters/java-parsers.d.ts +64 -0
- package/dist/src/analysis/adapters/java-parsers.d.ts.map +1 -0
- package/dist/src/analysis/adapters/java-parsers.js +114 -0
- package/dist/src/analysis/adapters/java-parsers.js.map +1 -0
- package/dist/src/analysis/adapters/java.d.ts +1 -51
- package/dist/src/analysis/adapters/java.d.ts.map +1 -1
- package/dist/src/analysis/adapters/java.js +94 -205
- package/dist/src/analysis/adapters/java.js.map +1 -1
- package/dist/src/analysis/adapters/python-frameworks.d.ts +21 -0
- package/dist/src/analysis/adapters/python-frameworks.d.ts.map +1 -0
- package/dist/src/analysis/adapters/python-frameworks.js +86 -0
- package/dist/src/analysis/adapters/python-frameworks.js.map +1 -0
- package/dist/src/analysis/adapters/python.d.ts +0 -50
- package/dist/src/analysis/adapters/python.d.ts.map +1 -1
- package/dist/src/analysis/adapters/python.js +5 -120
- package/dist/src/analysis/adapters/python.js.map +1 -1
- package/dist/src/analysis/adapters/rust-parsers.d.ts +33 -0
- package/dist/src/analysis/adapters/rust-parsers.d.ts.map +1 -0
- package/dist/src/analysis/adapters/rust-parsers.js +94 -0
- package/dist/src/analysis/adapters/rust-parsers.js.map +1 -0
- package/dist/src/analysis/adapters/rust.d.ts +1 -43
- package/dist/src/analysis/adapters/rust.d.ts.map +1 -1
- package/dist/src/analysis/adapters/rust.js +74 -173
- package/dist/src/analysis/adapters/rust.js.map +1 -1
- package/dist/src/analysis/language-detector.d.ts +4 -20
- package/dist/src/analysis/language-detector.d.ts.map +1 -1
- package/dist/src/analysis/language-detector.js +2 -399
- package/dist/src/analysis/language-detector.js.map +1 -1
- package/dist/src/analysis/language-detector.patterns.d.ts +17 -0
- package/dist/src/analysis/language-detector.patterns.d.ts.map +1 -0
- package/dist/src/analysis/language-detector.patterns.js +413 -0
- package/dist/src/analysis/language-detector.patterns.js.map +1 -0
- package/dist/src/analysis/language-detector.types.d.ts +48 -0
- package/dist/src/analysis/language-detector.types.d.ts.map +1 -0
- package/dist/src/analysis/language-detector.types.js +6 -0
- package/dist/src/analysis/language-detector.types.js.map +1 -0
- package/dist/src/analysis/metrics.d.ts +22 -219
- package/dist/src/analysis/metrics.d.ts.map +1 -1
- package/dist/src/analysis/metrics.implementations.d.ts +39 -0
- package/dist/src/analysis/metrics.implementations.d.ts.map +1 -0
- package/dist/src/analysis/metrics.implementations.js +114 -0
- package/dist/src/analysis/metrics.implementations.js.map +1 -0
- package/dist/src/analysis/metrics.js +21 -224
- package/dist/src/analysis/metrics.js.map +1 -1
- package/dist/src/analysis/metrics.types.d.ts +79 -0
- package/dist/src/analysis/metrics.types.d.ts.map +1 -0
- package/dist/src/analysis/metrics.types.js +6 -0
- package/dist/src/analysis/metrics.types.js.map +1 -0
- package/dist/src/analysis/worker-pool.d.ts +25 -52
- package/dist/src/analysis/worker-pool.d.ts.map +1 -1
- package/dist/src/analysis/worker-pool.js +29 -181
- package/dist/src/analysis/worker-pool.js.map +1 -1
- package/dist/src/analysis/worker-types.d.ts +64 -0
- package/dist/src/analysis/worker-types.d.ts.map +1 -0
- package/dist/src/analysis/worker-types.js +11 -0
- package/dist/src/analysis/worker-types.js.map +1 -0
- package/dist/src/analysis/worker-utils.d.ts +49 -0
- package/dist/src/analysis/worker-utils.d.ts.map +1 -0
- package/dist/src/analysis/worker-utils.js +206 -0
- package/dist/src/analysis/worker-utils.js.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.d.ts +1 -5
- package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.helpers.d.ts +28 -0
- package/dist/src/analytics/AnalyticsRepository.helpers.d.ts.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.helpers.js +90 -0
- package/dist/src/analytics/AnalyticsRepository.helpers.js.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.js +16 -129
- package/dist/src/analytics/AnalyticsRepository.js.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.types.d.ts +82 -0
- package/dist/src/analytics/AnalyticsRepository.types.d.ts.map +1 -0
- package/dist/src/analytics/AnalyticsRepository.types.js +8 -0
- package/dist/src/analytics/AnalyticsRepository.types.js.map +1 -0
- package/dist/src/analytics/ROIDashboardService.js +4 -2
- package/dist/src/analytics/ROIDashboardService.js.map +1 -1
- package/dist/src/api/cache.d.ts.map +1 -1
- package/dist/src/api/cache.js.map +1 -1
- package/dist/src/api/client.d.ts +6 -121
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +29 -129
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/api/schemas.d.ts +122 -0
- package/dist/src/api/schemas.d.ts.map +1 -0
- package/dist/src/api/schemas.js +71 -0
- package/dist/src/api/schemas.js.map +1 -0
- package/dist/src/api/types.d.ts +1 -1
- package/dist/src/api/types.d.ts.map +1 -1
- package/dist/src/api/utils.d.ts +35 -0
- package/dist/src/api/utils.d.ts.map +1 -0
- package/dist/src/api/utils.js +86 -0
- package/dist/src/api/utils.js.map +1 -0
- package/dist/src/benchmarks/BenchmarkRunner.d.ts.map +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.js +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.js.map +1 -1
- package/dist/src/billing/BillingService.d.ts +15 -53
- package/dist/src/billing/BillingService.d.ts.map +1 -1
- package/dist/src/billing/BillingService.helpers.d.ts +15 -0
- package/dist/src/billing/BillingService.helpers.d.ts.map +1 -0
- package/dist/src/billing/BillingService.helpers.js +45 -0
- package/dist/src/billing/BillingService.helpers.js.map +1 -0
- package/dist/src/billing/BillingService.js +49 -179
- package/dist/src/billing/BillingService.js.map +1 -1
- package/dist/src/billing/BillingService.types.d.ts +52 -0
- package/dist/src/billing/BillingService.types.d.ts.map +1 -0
- package/dist/src/billing/BillingService.types.js +6 -0
- package/dist/src/billing/BillingService.types.js.map +1 -0
- package/dist/src/billing/GDPRComplianceService.d.ts +2 -97
- package/dist/src/billing/GDPRComplianceService.d.ts.map +1 -1
- package/dist/src/billing/GDPRComplianceService.js.map +1 -1
- package/dist/src/billing/StripeClient.d.ts +6 -64
- package/dist/src/billing/StripeClient.d.ts.map +1 -1
- package/dist/src/billing/StripeClient.js +14 -71
- package/dist/src/billing/StripeClient.js.map +1 -1
- package/dist/src/billing/StripeReconciliationJob.d.ts +2 -47
- package/dist/src/billing/StripeReconciliationJob.d.ts.map +1 -1
- package/dist/src/billing/StripeReconciliationJob.js +1 -41
- package/dist/src/billing/StripeReconciliationJob.js.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.d.ts +3 -46
- package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.js +14 -261
- package/dist/src/billing/StripeWebhookHandler.js.map +1 -1
- package/dist/src/billing/gdpr-types.d.ts +103 -0
- package/dist/src/billing/gdpr-types.d.ts.map +1 -0
- package/dist/src/billing/gdpr-types.js +7 -0
- package/dist/src/billing/gdpr-types.js.map +1 -0
- package/dist/src/billing/reconciliation-helpers.d.ts +16 -0
- package/dist/src/billing/reconciliation-helpers.d.ts.map +1 -0
- package/dist/src/billing/reconciliation-helpers.js +53 -0
- package/dist/src/billing/reconciliation-helpers.js.map +1 -0
- package/dist/src/billing/reconciliation-types.d.ts +71 -0
- package/dist/src/billing/reconciliation-types.d.ts.map +1 -0
- package/dist/src/billing/reconciliation-types.js +7 -0
- package/dist/src/billing/reconciliation-types.js.map +1 -0
- package/dist/src/billing/stripe-client-types.d.ts +45 -0
- package/dist/src/billing/stripe-client-types.d.ts.map +1 -0
- package/dist/src/billing/stripe-client-types.js +7 -0
- package/dist/src/billing/stripe-client-types.js.map +1 -0
- package/dist/src/billing/stripe-helpers.d.ts +17 -0
- package/dist/src/billing/stripe-helpers.d.ts.map +1 -0
- package/dist/src/billing/stripe-helpers.js +50 -0
- package/dist/src/billing/stripe-helpers.js.map +1 -0
- package/dist/src/billing/webhook-handlers.d.ts +56 -0
- package/dist/src/billing/webhook-handlers.d.ts.map +1 -0
- package/dist/src/billing/webhook-handlers.js +303 -0
- package/dist/src/billing/webhook-handlers.js.map +1 -0
- package/dist/src/billing/webhook-types.d.ts +42 -0
- package/dist/src/billing/webhook-types.d.ts.map +1 -0
- package/dist/src/billing/webhook-types.js +7 -0
- package/dist/src/billing/webhook-types.js.map +1 -0
- package/dist/src/config/index.d.ts +118 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +172 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/db/migration-types.d.ts +101 -0
- package/dist/src/db/migration-types.d.ts.map +1 -0
- package/dist/src/db/migration-types.js +6 -0
- package/dist/src/db/migration-types.js.map +1 -0
- package/dist/src/db/migration.d.ts +32 -0
- package/dist/src/db/migration.d.ts.map +1 -0
- package/dist/src/db/migration.js +239 -0
- package/dist/src/db/migration.js.map +1 -0
- package/dist/src/db/schema.d.ts +2 -2
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +23 -1
- package/dist/src/db/schema.js.map +1 -1
- package/dist/src/embeddings/embedding-types.d.ts +44 -0
- package/dist/src/embeddings/embedding-types.d.ts.map +1 -0
- package/dist/src/embeddings/embedding-types.js +6 -0
- package/dist/src/embeddings/embedding-types.js.map +1 -0
- package/dist/src/embeddings/embedding-utils.d.ts +42 -0
- package/dist/src/embeddings/embedding-utils.d.ts.map +1 -0
- package/dist/src/embeddings/embedding-utils.js +121 -0
- package/dist/src/embeddings/embedding-utils.js.map +1 -0
- package/dist/src/embeddings/hnsw-store.d.ts +8 -518
- package/dist/src/embeddings/hnsw-store.d.ts.map +1 -1
- package/dist/src/embeddings/hnsw-store.helpers.d.ts +83 -0
- package/dist/src/embeddings/hnsw-store.helpers.d.ts.map +1 -0
- package/dist/src/embeddings/hnsw-store.helpers.js +147 -0
- package/dist/src/embeddings/hnsw-store.helpers.js.map +1 -0
- package/dist/src/embeddings/hnsw-store.js +66 -517
- package/dist/src/embeddings/hnsw-store.js.map +1 -1
- package/dist/src/embeddings/hnsw-store.types.d.ts +154 -0
- package/dist/src/embeddings/hnsw-store.types.d.ts.map +1 -0
- package/dist/src/embeddings/hnsw-store.types.js +26 -0
- package/dist/src/embeddings/hnsw-store.types.js.map +1 -0
- package/dist/src/embeddings/index.d.ts +36 -112
- package/dist/src/embeddings/index.d.ts.map +1 -1
- package/dist/src/embeddings/index.js +37 -210
- package/dist/src/embeddings/index.js.map +1 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/exports/repositories.d.ts +18 -0
- package/dist/src/exports/repositories.d.ts.map +1 -0
- package/dist/src/exports/repositories.js +30 -0
- package/dist/src/exports/repositories.js.map +1 -0
- package/dist/src/exports/services.d.ts +30 -0
- package/dist/src/exports/services.d.ts.map +1 -0
- package/dist/src/exports/services.js +70 -0
- package/dist/src/exports/services.js.map +1 -0
- package/dist/src/exports/types.d.ts +21 -0
- package/dist/src/exports/types.d.ts.map +1 -0
- package/dist/src/exports/types.js +12 -0
- package/dist/src/exports/types.js.map +1 -0
- package/dist/src/index.d.ts +10 -47
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +31 -48
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -1
- package/dist/src/indexer/GitHubIndexer.js +17 -4
- package/dist/src/indexer/GitHubIndexer.js.map +1 -1
- package/dist/src/indexer/SwarmIndexer.d.ts.map +1 -1
- package/dist/src/indexer/SwarmIndexer.js +1 -1
- package/dist/src/indexer/SwarmIndexer.js.map +1 -1
- package/dist/src/learning/PatternStore.d.ts +6 -426
- package/dist/src/learning/PatternStore.d.ts.map +1 -1
- package/dist/src/learning/PatternStore.helpers.d.ts +88 -0
- package/dist/src/learning/PatternStore.helpers.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.helpers.js +286 -0
- package/dist/src/learning/PatternStore.helpers.js.map +1 -0
- package/dist/src/learning/PatternStore.js +52 -598
- package/dist/src/learning/PatternStore.js.map +1 -1
- package/dist/src/learning/PatternStore.queries.d.ts +83 -0
- package/dist/src/learning/PatternStore.queries.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.queries.js +189 -0
- package/dist/src/learning/PatternStore.queries.js.map +1 -0
- package/dist/src/learning/PatternStore.types.d.ts +308 -0
- package/dist/src/learning/PatternStore.types.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.types.js +44 -0
- package/dist/src/learning/PatternStore.types.js.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.d.ts +5 -345
- package/dist/src/learning/ReasoningBankIntegration.d.ts.map +1 -1
- package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts +49 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.js +180 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.js.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.js +21 -390
- package/dist/src/learning/ReasoningBankIntegration.js.map +1 -1
- package/dist/src/learning/ReasoningBankIntegration.types.d.ts +167 -0
- package/dist/src/learning/ReasoningBankIntegration.types.d.ts.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.types.js +51 -0
- package/dist/src/learning/ReasoningBankIntegration.types.js.map +1 -0
- package/dist/src/learning/interfaces.d.ts.map +1 -1
- package/dist/src/pipeline/DailyIndexPipeline.d.ts +4 -176
- package/dist/src/pipeline/DailyIndexPipeline.d.ts.map +1 -1
- package/dist/src/pipeline/DailyIndexPipeline.js +9 -83
- package/dist/src/pipeline/DailyIndexPipeline.js.map +1 -1
- package/dist/src/pipeline/pipeline-types.d.ts +132 -0
- package/dist/src/pipeline/pipeline-types.d.ts.map +1 -0
- package/dist/src/pipeline/pipeline-types.js +6 -0
- package/dist/src/pipeline/pipeline-types.js.map +1 -0
- package/dist/src/repositories/IndexerRepository.d.ts +1 -0
- package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
- package/dist/src/repositories/IndexerRepository.js +6 -0
- package/dist/src/repositories/IndexerRepository.js.map +1 -1
- package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
- package/dist/src/repositories/SkillRepository.js +20 -5
- package/dist/src/repositories/SkillRepository.js.map +1 -1
- package/dist/src/routing/SONARouter.d.ts +3 -101
- package/dist/src/routing/SONARouter.d.ts.map +1 -1
- package/dist/src/routing/SONARouter.helpers.d.ts +112 -0
- package/dist/src/routing/SONARouter.helpers.d.ts.map +1 -0
- package/dist/src/routing/SONARouter.helpers.js +184 -0
- package/dist/src/routing/SONARouter.helpers.js.map +1 -0
- package/dist/src/routing/SONARouter.js +16 -318
- package/dist/src/routing/SONARouter.js.map +1 -1
- package/dist/src/routing/expert-types.d.ts +109 -0
- package/dist/src/routing/expert-types.d.ts.map +1 -0
- package/dist/src/routing/expert-types.js +162 -0
- package/dist/src/routing/expert-types.js.map +1 -0
- package/dist/src/routing/request-types.d.ts +113 -0
- package/dist/src/routing/request-types.d.ts.map +1 -0
- package/dist/src/routing/request-types.js +9 -0
- package/dist/src/routing/request-types.js.map +1 -0
- package/dist/src/routing/types.d.ts +5 -207
- package/dist/src/routing/types.d.ts.map +1 -1
- package/dist/src/routing/types.js +3 -153
- package/dist/src/routing/types.js.map +1 -1
- package/dist/src/scripts/github-import/github-auth.d.ts +17 -0
- package/dist/src/scripts/github-import/github-auth.d.ts.map +1 -0
- package/dist/src/scripts/github-import/github-auth.js +201 -0
- package/dist/src/scripts/github-import/github-auth.js.map +1 -0
- package/dist/src/scripts/github-import/github-client.d.ts +5 -5
- package/dist/src/scripts/github-import/github-client.d.ts.map +1 -1
- package/dist/src/scripts/github-import/github-client.js +5 -204
- package/dist/src/scripts/github-import/github-client.js.map +1 -1
- package/dist/src/scripts/ingest-lenny-skills.d.ts +40 -0
- package/dist/src/scripts/ingest-lenny-skills.d.ts.map +1 -0
- package/dist/src/scripts/ingest-lenny-skills.js +346 -0
- package/dist/src/scripts/ingest-lenny-skills.js.map +1 -0
- package/dist/src/scripts/merge-skills.d.ts +5 -27
- package/dist/src/scripts/merge-skills.d.ts.map +1 -1
- package/dist/src/scripts/merge-skills.js +4 -144
- package/dist/src/scripts/merge-skills.js.map +1 -1
- package/dist/src/scripts/merge-types.d.ts +72 -0
- package/dist/src/scripts/merge-types.d.ts.map +1 -0
- package/dist/src/scripts/merge-types.js +7 -0
- package/dist/src/scripts/merge-types.js.map +1 -0
- package/dist/src/scripts/merge-utils.d.ts +23 -0
- package/dist/src/scripts/merge-utils.d.ts.map +1 -0
- package/dist/src/scripts/merge-utils.js +150 -0
- package/dist/src/scripts/merge-utils.js.map +1 -0
- package/dist/src/scripts/review-categories.d.ts +41 -0
- package/dist/src/scripts/review-categories.d.ts.map +1 -0
- package/dist/src/scripts/review-categories.js +316 -0
- package/dist/src/scripts/review-categories.js.map +1 -0
- package/dist/src/scripts/review-lenny-skills.d.ts +26 -0
- package/dist/src/scripts/review-lenny-skills.d.ts.map +1 -0
- package/dist/src/scripts/review-lenny-skills.js +215 -0
- package/dist/src/scripts/review-lenny-skills.js.map +1 -0
- package/dist/src/scripts/sync-to-supabase.d.ts +10 -0
- package/dist/src/scripts/sync-to-supabase.d.ts.map +1 -0
- package/dist/src/scripts/sync-to-supabase.js +93 -0
- package/dist/src/scripts/sync-to-supabase.js.map +1 -0
- package/dist/src/security/AuditLogger.d.ts +4 -75
- package/dist/src/security/AuditLogger.d.ts.map +1 -1
- package/dist/src/security/AuditLogger.js +3 -12
- package/dist/src/security/AuditLogger.js.map +1 -1
- package/dist/src/security/__tests__/pathValidation.test.js.map +1 -1
- package/dist/src/security/audit-types.d.ts +96 -0
- package/dist/src/security/audit-types.d.ts.map +1 -0
- package/dist/src/security/audit-types.js +15 -0
- package/dist/src/security/audit-types.js.map +1 -0
- package/dist/src/security/sanitization.d.ts +1 -85
- package/dist/src/security/sanitization.d.ts.map +1 -1
- package/dist/src/security/sanitization.js +2 -133
- package/dist/src/security/sanitization.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.d.ts +12 -88
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.formatters.d.ts +49 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.js +139 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.js.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +40 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.js +142 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.js +26 -255
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
- package/dist/src/security/stripe-validators.d.ts +92 -0
- package/dist/src/security/stripe-validators.d.ts.map +1 -0
- package/dist/src/security/stripe-validators.js +139 -0
- package/dist/src/security/stripe-validators.js.map +1 -0
- package/dist/src/services/SearchService.d.ts +5 -29
- package/dist/src/services/SearchService.d.ts.map +1 -1
- package/dist/src/services/SearchService.helpers.d.ts +42 -0
- package/dist/src/services/SearchService.helpers.d.ts.map +1 -0
- package/dist/src/services/SearchService.helpers.js +128 -0
- package/dist/src/services/SearchService.helpers.js.map +1 -0
- package/dist/src/services/SearchService.js +142 -128
- package/dist/src/services/SearchService.js.map +1 -1
- package/dist/src/services/SearchService.types.d.ts +53 -0
- package/dist/src/services/SearchService.types.d.ts.map +1 -0
- package/dist/src/services/SearchService.types.js +7 -0
- package/dist/src/services/SearchService.types.js.map +1 -0
- package/dist/src/services/SkillAnalyzer.d.ts +37 -0
- package/dist/src/services/SkillAnalyzer.d.ts.map +1 -0
- package/dist/src/services/SkillAnalyzer.helpers.d.ts +103 -0
- package/dist/src/services/SkillAnalyzer.helpers.d.ts.map +1 -0
- package/dist/src/services/SkillAnalyzer.helpers.js +237 -0
- package/dist/src/services/SkillAnalyzer.helpers.js.map +1 -0
- package/dist/src/services/SkillAnalyzer.js +270 -0
- package/dist/src/services/SkillAnalyzer.js.map +1 -0
- package/dist/src/services/SkillAnalyzer.types.d.ts +110 -0
- package/dist/src/services/SkillAnalyzer.types.d.ts.map +1 -0
- package/dist/src/services/SkillAnalyzer.types.js +9 -0
- package/dist/src/services/SkillAnalyzer.types.js.map +1 -0
- package/dist/src/services/SkillDecomposer.d.ts +37 -0
- package/dist/src/services/SkillDecomposer.d.ts.map +1 -0
- package/dist/src/services/SkillDecomposer.helpers.d.ts +75 -0
- package/dist/src/services/SkillDecomposer.helpers.d.ts.map +1 -0
- package/dist/src/services/SkillDecomposer.helpers.js +277 -0
- package/dist/src/services/SkillDecomposer.helpers.js.map +1 -0
- package/dist/src/services/SkillDecomposer.js +116 -0
- package/dist/src/services/SkillDecomposer.js.map +1 -0
- package/dist/src/services/SkillDecomposer.types.d.ts +104 -0
- package/dist/src/services/SkillDecomposer.types.d.ts.map +1 -0
- package/dist/src/services/SkillDecomposer.types.js +9 -0
- package/dist/src/services/SkillDecomposer.types.js.map +1 -0
- package/dist/src/services/SubagentGenerator.d.ts +77 -0
- package/dist/src/services/SubagentGenerator.d.ts.map +1 -0
- package/dist/src/services/SubagentGenerator.js +352 -0
- package/dist/src/services/SubagentGenerator.js.map +1 -0
- package/dist/src/services/TaskRunner.d.ts +227 -0
- package/dist/src/services/TaskRunner.d.ts.map +1 -0
- package/dist/src/services/TaskRunner.js +423 -0
- package/dist/src/services/TaskRunner.js.map +1 -0
- package/dist/src/services/TransformationService.d.ts +167 -0
- package/dist/src/services/TransformationService.d.ts.map +1 -0
- package/dist/src/services/TransformationService.js +315 -0
- package/dist/src/services/TransformationService.js.map +1 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts +6 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.js +177 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.js.map +1 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.d.ts +6 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.js +235 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.js.map +1 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.d.ts +6 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.js +174 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.js.map +1 -0
- package/dist/src/services/__tests__/TaskRunner.test.d.ts +7 -0
- package/dist/src/services/__tests__/TaskRunner.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/TaskRunner.test.js +316 -0
- package/dist/src/services/__tests__/TaskRunner.test.js.map +1 -0
- package/dist/src/services/__tests__/TransformationService.test.d.ts +6 -0
- package/dist/src/services/__tests__/TransformationService.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/TransformationService.test.js +244 -0
- package/dist/src/services/__tests__/TransformationService.test.js.map +1 -0
- package/dist/src/session/SessionContext.js +1 -1
- package/dist/src/session/SessionContext.js.map +1 -1
- package/dist/src/session/SessionManager.d.ts +3 -67
- package/dist/src/session/SessionManager.d.ts.map +1 -1
- package/dist/src/session/SessionManager.helpers.d.ts +68 -0
- package/dist/src/session/SessionManager.helpers.d.ts.map +1 -0
- package/dist/src/session/SessionManager.helpers.js +152 -0
- package/dist/src/session/SessionManager.helpers.js.map +1 -0
- package/dist/src/session/SessionManager.js +58 -163
- package/dist/src/session/SessionManager.js.map +1 -1
- package/dist/src/session/SessionManager.types.d.ts +88 -0
- package/dist/src/session/SessionManager.types.d.ts.map +1 -0
- package/dist/src/session/SessionManager.types.js +27 -0
- package/dist/src/session/SessionManager.types.js.map +1 -0
- package/dist/src/session/SessionRecovery.d.ts.map +1 -1
- package/dist/src/session/SessionRecovery.js +3 -2
- package/dist/src/session/SessionRecovery.js.map +1 -1
- package/dist/src/sources/RawUrlSourceAdapter.js.map +1 -1
- package/dist/src/sources/SourceAdapterRegistry.js +1 -1
- package/dist/src/sources/SourceAdapterRegistry.js.map +1 -1
- package/dist/src/telemetry/metric-helpers.d.ts +47 -0
- package/dist/src/telemetry/metric-helpers.d.ts.map +1 -0
- package/dist/src/telemetry/metric-helpers.js +96 -0
- package/dist/src/telemetry/metric-helpers.js.map +1 -0
- package/dist/src/telemetry/metric-types.d.ts +73 -0
- package/dist/src/telemetry/metric-types.d.ts.map +1 -0
- package/dist/src/telemetry/metric-types.js +9 -0
- package/dist/src/telemetry/metric-types.js.map +1 -0
- package/dist/src/telemetry/metrics.d.ts +8 -119
- package/dist/src/telemetry/metrics.d.ts.map +1 -1
- package/dist/src/telemetry/metrics.js +20 -193
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/span-utils.d.ts +30 -0
- package/dist/src/telemetry/span-utils.d.ts.map +1 -0
- package/dist/src/telemetry/span-utils.js +62 -0
- package/dist/src/telemetry/span-utils.js.map +1 -0
- package/dist/src/telemetry/tracer-types.d.ts +91 -0
- package/dist/src/telemetry/tracer-types.d.ts.map +1 -0
- package/dist/src/telemetry/tracer-types.js +6 -0
- package/dist/src/telemetry/tracer-types.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +5 -122
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +24 -170
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.d.ts +17 -293
- package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -1
- package/dist/src/testing/MultiLLMProvider.helpers.d.ts +54 -0
- package/dist/src/testing/MultiLLMProvider.helpers.d.ts.map +1 -0
- package/dist/src/testing/MultiLLMProvider.helpers.js +126 -0
- package/dist/src/testing/MultiLLMProvider.helpers.js.map +1 -0
- package/dist/src/testing/MultiLLMProvider.js +50 -323
- package/dist/src/testing/MultiLLMProvider.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.types.d.ts +253 -0
- package/dist/src/testing/MultiLLMProvider.types.d.ts.map +1 -0
- package/dist/src/testing/MultiLLMProvider.types.js +111 -0
- package/dist/src/testing/MultiLLMProvider.types.js.map +1 -0
- package/dist/src/triggers/TriggerDetector.d.ts +6 -142
- package/dist/src/triggers/TriggerDetector.d.ts.map +1 -1
- package/dist/src/triggers/TriggerDetector.js +15 -247
- package/dist/src/triggers/TriggerDetector.js.map +1 -1
- package/dist/src/triggers/__tests__/TriggerDetector.test.js +1 -1
- package/dist/src/triggers/__tests__/TriggerDetector.test.js.map +1 -1
- package/dist/src/triggers/trigger-constants.d.ts +22 -0
- package/dist/src/triggers/trigger-constants.d.ts.map +1 -0
- package/dist/src/triggers/trigger-constants.js +185 -0
- package/dist/src/triggers/trigger-constants.js.map +1 -0
- package/dist/src/triggers/trigger-types.d.ts +90 -0
- package/dist/src/triggers/trigger-types.d.ts.map +1 -0
- package/dist/src/triggers/trigger-types.js +6 -0
- package/dist/src/triggers/trigger-types.js.map +1 -0
- package/dist/src/types/skill.d.ts +33 -1
- package/dist/src/types/skill.d.ts.map +1 -1
- package/dist/src/types/skill.js +11 -1
- package/dist/src/types/skill.js.map +1 -1
- package/dist/src/types.d.ts +28 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +1 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils/retry.js +2 -2
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/validation/index.d.ts +5 -105
- package/dist/src/validation/index.d.ts.map +1 -1
- package/dist/src/validation/index.js +9 -421
- package/dist/src/validation/index.js.map +1 -1
- package/dist/src/validation/input-validators.d.ts +68 -0
- package/dist/src/validation/input-validators.d.ts.map +1 -0
- package/dist/src/validation/input-validators.js +126 -0
- package/dist/src/validation/input-validators.js.map +1 -0
- package/dist/src/validation/path-validators.d.ts +23 -0
- package/dist/src/validation/path-validators.d.ts.map +1 -0
- package/dist/src/validation/path-validators.js +47 -0
- package/dist/src/validation/path-validators.js.map +1 -0
- package/dist/src/validation/url-validators.d.ts +55 -0
- package/dist/src/validation/url-validators.d.ts.map +1 -0
- package/dist/src/validation/url-validators.js +267 -0
- package/dist/src/validation/url-validators.js.map +1 -0
- package/dist/src/validation/validation-error.d.ts +14 -0
- package/dist/src/validation/validation-error.d.ts.map +1 -0
- package/dist/src/validation/validation-error.js +19 -0
- package/dist/src/validation/validation-error.js.map +1 -0
- package/dist/src/webhooks/WebhookHandler.d.ts.map +1 -1
- package/dist/src/webhooks/WebhookHandler.js.map +1 -1
- package/dist/src/webhooks/WebhookPayload.d.ts +4 -215
- package/dist/src/webhooks/WebhookPayload.d.ts.map +1 -1
- package/dist/src/webhooks/WebhookPayload.js +1 -122
- package/dist/src/webhooks/WebhookPayload.js.map +1 -1
- package/dist/src/webhooks/WebhookQueue.d.ts +2 -140
- package/dist/src/webhooks/WebhookQueue.d.ts.map +1 -1
- package/dist/src/webhooks/WebhookQueue.js +4 -11
- package/dist/src/webhooks/WebhookQueue.js.map +1 -1
- package/dist/src/webhooks/WebhookQueue.types.d.ts +149 -0
- package/dist/src/webhooks/WebhookQueue.types.d.ts.map +1 -0
- package/dist/src/webhooks/WebhookQueue.types.js +10 -0
- package/dist/src/webhooks/WebhookQueue.types.js.map +1 -0
- package/dist/src/webhooks/WebhookQueue.utils.d.ts +44 -0
- package/dist/src/webhooks/WebhookQueue.utils.d.ts.map +1 -0
- package/dist/src/webhooks/WebhookQueue.utils.js +58 -0
- package/dist/src/webhooks/WebhookQueue.utils.js.map +1 -0
- package/dist/src/webhooks/webhook-schemas.d.ts +213 -0
- package/dist/src/webhooks/webhook-schemas.d.ts.map +1 -0
- package/dist/src/webhooks/webhook-schemas.js +132 -0
- package/dist/src/webhooks/webhook-schemas.js.map +1 -0
- package/dist/src/webhooks/webhook-types.d.ts +222 -0
- package/dist/src/webhooks/webhook-types.d.ts.map +1 -0
- package/dist/src/webhooks/webhook-types.js +10 -0
- package/dist/src/webhooks/webhook-types.js.map +1 -0
- package/dist/tests/Analytics.integration.test.js +2 -2
- package/dist/tests/Analytics.integration.test.js.map +1 -1
- package/dist/tests/AnalyticsRepository.test.js +3 -5
- package/dist/tests/AnalyticsRepository.test.js.map +1 -1
- package/dist/tests/AnalyticsStorage.test.js.map +1 -1
- package/dist/tests/ApiPartialResponses.test.d.ts +12 -0
- package/dist/tests/ApiPartialResponses.test.d.ts.map +1 -0
- package/dist/tests/ApiPartialResponses.test.js +202 -0
- package/dist/tests/ApiPartialResponses.test.js.map +1 -0
- package/dist/tests/AuditLogger.test.js.map +1 -1
- package/dist/tests/BenchmarkRunner.test.js +6 -6
- package/dist/tests/BenchmarkRunner.test.js.map +1 -1
- package/dist/tests/CacheSecurity.test.js.map +1 -1
- package/dist/tests/CodebaseAnalyzer.test.js.map +1 -1
- package/dist/tests/DailyIndexPipeline.test.js.map +1 -1
- package/dist/tests/EmbeddingService.test.js.map +1 -1
- package/dist/tests/GitHubIndexer.test.js +4 -3
- package/dist/tests/GitHubIndexer.test.js.map +1 -1
- package/dist/tests/MemoryProfiler.test.js +3 -3
- package/dist/tests/MemoryProfiler.test.js.map +1 -1
- package/dist/tests/QualityScorer.test.js.map +1 -1
- package/dist/tests/RateLimiter.test.js.map +1 -1
- package/dist/tests/ScraperAdapters.test.js.map +1 -1
- package/dist/tests/SecurityScanner.test.js +4 -4
- package/dist/tests/SecurityScanner.test.js.map +1 -1
- package/dist/tests/SessionManager.security.test.js +1 -1
- package/dist/tests/SessionManager.security.test.js.map +1 -1
- package/dist/tests/SessionManager.test.js +4 -4
- package/dist/tests/SessionManager.test.js.map +1 -1
- package/dist/tests/SwarmIndexer.test.js +1 -1
- package/dist/tests/SwarmIndexer.test.js.map +1 -1
- package/dist/tests/TieredCache.test.js +2 -11
- package/dist/tests/TieredCache.test.js.map +1 -1
- package/dist/tests/WebhookHandler.test.js.map +1 -1
- package/dist/tests/fixtures/api-responses/index.d.ts +119 -0
- package/dist/tests/fixtures/api-responses/index.d.ts.map +1 -0
- package/dist/tests/fixtures/api-responses/index.js +419 -0
- package/dist/tests/fixtures/api-responses/index.js.map +1 -0
- package/dist/tests/integration/neural/neural-fixtures.d.ts +19 -0
- package/dist/tests/integration/neural/neural-fixtures.d.ts.map +1 -0
- package/dist/tests/integration/neural/neural-fixtures.js +49 -0
- package/dist/tests/integration/neural/neural-fixtures.js.map +1 -0
- package/dist/tests/integration/neural/neural-mocks-privacy.d.ts +78 -0
- package/dist/tests/integration/neural/neural-mocks-privacy.d.ts.map +1 -0
- package/dist/tests/integration/neural/neural-mocks-privacy.js +146 -0
- package/dist/tests/integration/neural/neural-mocks-privacy.js.map +1 -0
- package/dist/tests/integration/neural/neural-mocks.d.ts +90 -0
- package/dist/tests/integration/neural/neural-mocks.d.ts.map +1 -0
- package/dist/tests/integration/neural/neural-mocks.js +288 -0
- package/dist/tests/integration/neural/neural-mocks.js.map +1 -0
- package/dist/tests/integration/neural/neural-test-utils.d.ts +27 -0
- package/dist/tests/integration/neural/neural-test-utils.d.ts.map +1 -0
- package/dist/tests/integration/neural/neural-test-utils.js +35 -0
- package/dist/tests/integration/neural/neural-test-utils.js.map +1 -0
- package/dist/tests/integration/neural/setup.d.ts +6 -165
- package/dist/tests/integration/neural/setup.d.ts.map +1 -1
- package/dist/tests/integration/neural/setup.js +9 -477
- package/dist/tests/integration/neural/setup.js.map +1 -1
- package/dist/tests/logger.test.js +1 -1
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/performance/LargeScalePerformance.test.js +1 -1
- package/dist/tests/performance/LargeScalePerformance.test.js.map +1 -1
- package/dist/tests/sanitization.test.js.map +1 -1
- package/dist/tests/session/SessionManager.helpers.test.d.ts +8 -0
- package/dist/tests/session/SessionManager.helpers.test.d.ts.map +1 -0
- package/dist/tests/session/SessionManager.helpers.test.js +105 -0
- package/dist/tests/session/SessionManager.helpers.test.js.map +1 -0
- package/dist/tests/sources.test.js.map +1 -1
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.js +1 -1
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.js.map +1 -1
- package/dist/tests/webhooks/WebhookPayload.security.test.js.map +1 -1
- package/package.json +11 -11
|
@@ -7,71 +7,9 @@
|
|
|
7
7
|
* to enable context restoration across sessions.
|
|
8
8
|
*/
|
|
9
9
|
import type { SessionData, Checkpoint } from './SessionContext.js';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export interface SessionOptions {
|
|
14
|
-
issueId?: string;
|
|
15
|
-
worktree?: string;
|
|
16
|
-
description?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Result from claude-flow memory operations
|
|
20
|
-
*/
|
|
21
|
-
export interface MemoryResult {
|
|
22
|
-
success: boolean;
|
|
23
|
-
data?: string;
|
|
24
|
-
error?: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Command executor interface for dependency injection
|
|
28
|
-
* Allows mocking claude-flow commands in tests
|
|
29
|
-
*
|
|
30
|
-
* Supports two modes:
|
|
31
|
-
* - spawn(): Secure argument-array based execution (preferred)
|
|
32
|
-
* - execute(): Legacy string-based execution (deprecated, for backwards compatibility)
|
|
33
|
-
*/
|
|
34
|
-
export interface CommandExecutor {
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated Use spawn() instead for security
|
|
37
|
-
*/
|
|
38
|
-
execute(command: string): Promise<{
|
|
39
|
-
stdout: string;
|
|
40
|
-
stderr: string;
|
|
41
|
-
}>;
|
|
42
|
-
/**
|
|
43
|
-
* Secure spawn-based execution with argument array
|
|
44
|
-
* Prevents command injection by not using shell interpolation
|
|
45
|
-
*/
|
|
46
|
-
spawn?(executable: string, args: string[]): Promise<{
|
|
47
|
-
stdout: string;
|
|
48
|
-
stderr: string;
|
|
49
|
-
}>;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Default command executor using child_process.spawn
|
|
53
|
-
* Uses argument arrays to prevent command injection
|
|
54
|
-
*/
|
|
55
|
-
export declare class DefaultCommandExecutor implements CommandExecutor {
|
|
56
|
-
/**
|
|
57
|
-
* @deprecated Legacy string-based execution - use spawn instead
|
|
58
|
-
*/
|
|
59
|
-
execute(command: string): Promise<{
|
|
60
|
-
stdout: string;
|
|
61
|
-
stderr: string;
|
|
62
|
-
}>;
|
|
63
|
-
/**
|
|
64
|
-
* Secure spawn-based execution with argument array
|
|
65
|
-
*/
|
|
66
|
-
spawn(executable: string, args: string[]): Promise<{
|
|
67
|
-
stdout: string;
|
|
68
|
-
stderr: string;
|
|
69
|
-
}>;
|
|
70
|
-
/**
|
|
71
|
-
* Parse legacy string command and execute via spawn
|
|
72
|
-
*/
|
|
73
|
-
private executeWithSpawn;
|
|
74
|
-
}
|
|
10
|
+
import type { CommandExecutor, SessionOptions } from './SessionManager.types.js';
|
|
11
|
+
export type { CommandExecutor, MemoryResult, SessionOptions } from './SessionManager.types.js';
|
|
12
|
+
export { DefaultCommandExecutor } from './SessionManager.helpers.js';
|
|
75
13
|
/**
|
|
76
14
|
* Session Manager for claude-flow memory integration
|
|
77
15
|
*
|
|
@@ -152,8 +90,6 @@ export declare class SessionManager {
|
|
|
152
90
|
*
|
|
153
91
|
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
154
92
|
* SMI-1518: V3 API Migration - Use direct storeEntry() when available
|
|
155
|
-
*
|
|
156
|
-
* Values are passed as separate arguments, never interpolated into shell commands
|
|
157
93
|
*/
|
|
158
94
|
private storeMemory;
|
|
159
95
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAgB,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAe9F,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE;;;;;;;;;;;;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;IA4CzB;;;;;OAKG;YACW,cAAc;IAgD5B;;;;;OAKG;YACW,YAAY;IA4C1B;;;;OAIG;YACW,cAAc;IAwC5B;;;;OAIG;YACW,eAAe;CA6B9B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Manager Helper Functions and Classes
|
|
3
|
+
* @module @skillsmith/core/session/SessionManager.helpers
|
|
4
|
+
*/
|
|
5
|
+
import type { ClaudeFlowMemoryModule, ClaudeFlowMcpModule, CommandExecutor } from './SessionManager.types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Lazily load claude-flow memory module
|
|
8
|
+
* Returns undefined if claude-flow is not installed
|
|
9
|
+
*
|
|
10
|
+
* Uses string concatenation for the import path to prevent Node.js
|
|
11
|
+
* ESM static analysis from resolving the module at parse time.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getClaudeFlowMemory(): Promise<ClaudeFlowMemoryModule | undefined>;
|
|
14
|
+
/**
|
|
15
|
+
* Lazily load claude-flow MCP module
|
|
16
|
+
* Returns undefined if claude-flow is not installed
|
|
17
|
+
*
|
|
18
|
+
* Uses string concatenation for the import path to prevent Node.js
|
|
19
|
+
* ESM static analysis from resolving the module at parse time.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getClaudeFlowMcp(): Promise<ClaudeFlowMcpModule | undefined>;
|
|
22
|
+
/**
|
|
23
|
+
* Memory key patterns for session storage
|
|
24
|
+
*/
|
|
25
|
+
export declare const MEMORY_KEYS: {
|
|
26
|
+
readonly CURRENT: "session/current";
|
|
27
|
+
readonly SESSION_PREFIX: "session/";
|
|
28
|
+
readonly CHECKPOINT_PREFIX: "checkpoint/";
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* SMI-1518: Feature flag to enable V3 direct API
|
|
32
|
+
* Set CLAUDE_FLOW_USE_V3_API=true to use direct API calls
|
|
33
|
+
* Falls back to spawn-based CLI if not set or if V3 API fails
|
|
34
|
+
*/
|
|
35
|
+
export declare const USE_V3_API: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Default namespace for session memory entries
|
|
38
|
+
*/
|
|
39
|
+
export declare const MEMORY_NAMESPACE = "skillsmith-sessions";
|
|
40
|
+
/**
|
|
41
|
+
* Validates a memory key to prevent injection attacks
|
|
42
|
+
*/
|
|
43
|
+
export declare function validateMemoryKey(key: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Default command executor using child_process.spawn
|
|
46
|
+
* Uses argument arrays to prevent command injection
|
|
47
|
+
*/
|
|
48
|
+
export declare class DefaultCommandExecutor implements CommandExecutor {
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Legacy string-based execution - use spawn instead
|
|
51
|
+
*/
|
|
52
|
+
execute(command: string): Promise<{
|
|
53
|
+
stdout: string;
|
|
54
|
+
stderr: string;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Secure spawn-based execution with argument array
|
|
58
|
+
*/
|
|
59
|
+
spawn(executable: string, args: string[]): Promise<{
|
|
60
|
+
stdout: string;
|
|
61
|
+
stderr: string;
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Parse legacy string command and execute via spawn
|
|
65
|
+
*/
|
|
66
|
+
private executeWithSpawn;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=SessionManager.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.helpers.d.ts","sourceRoot":"","sources":["../../../src/session/SessionManager.helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAoBlC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAWvF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAWjF;AAMD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,UAAU,SAAgD,CAAA;AAEvE;;GAEG;AACH,eAAO,MAAM,gBAAgB,wBAAwB,CAAA;AAYrD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAMD;;;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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Manager Helper Functions and Classes
|
|
3
|
+
* @module @skillsmith/core/session/SessionManager.helpers
|
|
4
|
+
*/
|
|
5
|
+
import { spawn } from 'node:child_process';
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Module Loading State
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Use symbol to distinguish "not yet attempted" from "attempted but failed (undefined)"
|
|
10
|
+
const NOT_LOADED = Symbol('not-loaded');
|
|
11
|
+
let claudeFlowMemory = NOT_LOADED;
|
|
12
|
+
let claudeFlowMcp = NOT_LOADED;
|
|
13
|
+
// Module paths are constructed dynamically to prevent ESM static analysis
|
|
14
|
+
const CLAUDE_FLOW_BASE = 'claude-flow';
|
|
15
|
+
const MEMORY_MODULE_PATH = '/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js';
|
|
16
|
+
const MCP_MODULE_PATH = '/v3/@claude-flow/cli/dist/src/mcp-client.js';
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Dynamic Module Loaders
|
|
19
|
+
// ============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Lazily load claude-flow memory module
|
|
22
|
+
* Returns undefined if claude-flow is not installed
|
|
23
|
+
*
|
|
24
|
+
* Uses string concatenation for the import path to prevent Node.js
|
|
25
|
+
* ESM static analysis from resolving the module at parse time.
|
|
26
|
+
*/
|
|
27
|
+
export async function getClaudeFlowMemory() {
|
|
28
|
+
if (claudeFlowMemory === NOT_LOADED) {
|
|
29
|
+
try {
|
|
30
|
+
// String concatenation prevents static analysis
|
|
31
|
+
const modulePath = CLAUDE_FLOW_BASE + MEMORY_MODULE_PATH;
|
|
32
|
+
claudeFlowMemory = await import(/* webpackIgnore: true */ modulePath);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
claudeFlowMemory = undefined; // Mark as attempted but failed
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return claudeFlowMemory === NOT_LOADED ? undefined : claudeFlowMemory;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Lazily load claude-flow MCP module
|
|
42
|
+
* Returns undefined if claude-flow is not installed
|
|
43
|
+
*
|
|
44
|
+
* Uses string concatenation for the import path to prevent Node.js
|
|
45
|
+
* ESM static analysis from resolving the module at parse time.
|
|
46
|
+
*/
|
|
47
|
+
export async function getClaudeFlowMcp() {
|
|
48
|
+
if (claudeFlowMcp === NOT_LOADED) {
|
|
49
|
+
try {
|
|
50
|
+
// String concatenation prevents static analysis
|
|
51
|
+
const modulePath = CLAUDE_FLOW_BASE + MCP_MODULE_PATH;
|
|
52
|
+
claudeFlowMcp = await import(/* webpackIgnore: true */ modulePath);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
claudeFlowMcp = undefined; // Mark as attempted but failed
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return claudeFlowMcp === NOT_LOADED ? undefined : claudeFlowMcp;
|
|
59
|
+
}
|
|
60
|
+
// ============================================================================
|
|
61
|
+
// Constants
|
|
62
|
+
// ============================================================================
|
|
63
|
+
/**
|
|
64
|
+
* Memory key patterns for session storage
|
|
65
|
+
*/
|
|
66
|
+
export const MEMORY_KEYS = {
|
|
67
|
+
CURRENT: 'session/current',
|
|
68
|
+
SESSION_PREFIX: 'session/',
|
|
69
|
+
CHECKPOINT_PREFIX: 'checkpoint/',
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* SMI-1518: Feature flag to enable V3 direct API
|
|
73
|
+
* Set CLAUDE_FLOW_USE_V3_API=true to use direct API calls
|
|
74
|
+
* Falls back to spawn-based CLI if not set or if V3 API fails
|
|
75
|
+
*/
|
|
76
|
+
export const USE_V3_API = process.env.CLAUDE_FLOW_USE_V3_API === 'true';
|
|
77
|
+
/**
|
|
78
|
+
* Default namespace for session memory entries
|
|
79
|
+
*/
|
|
80
|
+
export const MEMORY_NAMESPACE = 'skillsmith-sessions';
|
|
81
|
+
// ============================================================================
|
|
82
|
+
// Validation
|
|
83
|
+
// ============================================================================
|
|
84
|
+
/**
|
|
85
|
+
* Pattern for safe memory keys
|
|
86
|
+
* Only allows alphanumeric characters, hyphens, underscores, and forward slashes
|
|
87
|
+
*/
|
|
88
|
+
const SAFE_KEY_PATTERN = /^[a-zA-Z0-9/_-]+$/;
|
|
89
|
+
/**
|
|
90
|
+
* Validates a memory key to prevent injection attacks
|
|
91
|
+
*/
|
|
92
|
+
export function validateMemoryKey(key) {
|
|
93
|
+
return SAFE_KEY_PATTERN.test(key) && key.length <= 256;
|
|
94
|
+
}
|
|
95
|
+
// ============================================================================
|
|
96
|
+
// Default Command Executor
|
|
97
|
+
// ============================================================================
|
|
98
|
+
/**
|
|
99
|
+
* Default command executor using child_process.spawn
|
|
100
|
+
* Uses argument arrays to prevent command injection
|
|
101
|
+
*/
|
|
102
|
+
export class DefaultCommandExecutor {
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated Legacy string-based execution - use spawn instead
|
|
105
|
+
*/
|
|
106
|
+
async execute(command) {
|
|
107
|
+
// For backwards compatibility only - prefer spawn()
|
|
108
|
+
return this.executeWithSpawn(command);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Secure spawn-based execution with argument array
|
|
112
|
+
*/
|
|
113
|
+
async spawn(executable, args) {
|
|
114
|
+
return new Promise((resolve, reject) => {
|
|
115
|
+
const proc = spawn(executable, args, {
|
|
116
|
+
shell: false,
|
|
117
|
+
env: { ...process.env },
|
|
118
|
+
timeout: 30000,
|
|
119
|
+
});
|
|
120
|
+
let stdout = '';
|
|
121
|
+
let stderr = '';
|
|
122
|
+
proc.stdout?.on('data', (data) => {
|
|
123
|
+
stdout += data.toString();
|
|
124
|
+
});
|
|
125
|
+
proc.stderr?.on('data', (data) => {
|
|
126
|
+
stderr += data.toString();
|
|
127
|
+
});
|
|
128
|
+
proc.on('close', (code) => {
|
|
129
|
+
if (code === 0) {
|
|
130
|
+
resolve({ stdout: stdout.trim(), stderr: stderr.trim() });
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
reject(new Error(stderr || `Command failed with code ${code}`));
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
proc.on('error', (err) => {
|
|
137
|
+
reject(err);
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Parse legacy string command and execute via spawn
|
|
143
|
+
*/
|
|
144
|
+
async executeWithSpawn(command) {
|
|
145
|
+
// Parse the command safely
|
|
146
|
+
const parts = command.split(' ');
|
|
147
|
+
const executable = parts[0];
|
|
148
|
+
const args = parts.slice(1);
|
|
149
|
+
return this.spawn(executable, args);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=SessionManager.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.helpers.js","sourceRoot":"","sources":["../../../src/session/SessionManager.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,111 +7,10 @@
|
|
|
7
7
|
* to enable context restoration across sessions.
|
|
8
8
|
*/
|
|
9
9
|
import { randomUUID } from 'node:crypto';
|
|
10
|
-
import {
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import { storeEntry, getEntry, } from 'claude-flow/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js';
|
|
15
|
-
import { callMCPTool, MCPClientError } from 'claude-flow/v3/@claude-flow/cli/dist/src/mcp-client.js';
|
|
16
|
-
/**
|
|
17
|
-
* Memory key patterns for session storage
|
|
18
|
-
*/
|
|
19
|
-
const MEMORY_KEYS = {
|
|
20
|
-
CURRENT: 'session/current',
|
|
21
|
-
SESSION_PREFIX: 'session/',
|
|
22
|
-
CHECKPOINT_PREFIX: 'checkpoint/',
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* SMI-1518: Feature flag to enable V3 direct API
|
|
26
|
-
* Set CLAUDE_FLOW_USE_V3_API=true to use direct API calls
|
|
27
|
-
* Falls back to spawn-based CLI if not set or if V3 API fails
|
|
28
|
-
*/
|
|
29
|
-
const USE_V3_API = process.env.CLAUDE_FLOW_USE_V3_API === 'true';
|
|
30
|
-
/**
|
|
31
|
-
* Default namespace for session memory entries
|
|
32
|
-
*/
|
|
33
|
-
const MEMORY_NAMESPACE = 'skillsmith-sessions';
|
|
34
|
-
/**
|
|
35
|
-
* Validates a memory key to prevent injection attacks
|
|
36
|
-
* Only allows alphanumeric characters, hyphens, underscores, and forward slashes
|
|
37
|
-
*/
|
|
38
|
-
function validateMemoryKey(key) {
|
|
39
|
-
const SAFE_KEY_PATTERN = /^[a-zA-Z0-9/_-]+$/;
|
|
40
|
-
return SAFE_KEY_PATTERN.test(key) && key.length <= 256;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Sanitizes session data before storage
|
|
44
|
-
*/
|
|
45
|
-
function sanitizeSessionData(data) {
|
|
46
|
-
return {
|
|
47
|
-
sessionId: data.sessionId,
|
|
48
|
-
startedAt: data.startedAt,
|
|
49
|
-
issueId: data.issueId?.replace(/[<>]/g, ''),
|
|
50
|
-
worktree: data.worktree?.replace(/[<>]/g, ''),
|
|
51
|
-
checkpoints: data.checkpoints.map((cp) => ({
|
|
52
|
-
id: cp.id,
|
|
53
|
-
timestamp: cp.timestamp,
|
|
54
|
-
description: cp.description.substring(0, 500),
|
|
55
|
-
memoryKey: cp.memoryKey,
|
|
56
|
-
})),
|
|
57
|
-
filesModified: data.filesModified.map((f) => f.substring(0, 500)),
|
|
58
|
-
lastActivity: data.lastActivity,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Default command executor using child_process.spawn
|
|
63
|
-
* Uses argument arrays to prevent command injection
|
|
64
|
-
*/
|
|
65
|
-
export class DefaultCommandExecutor {
|
|
66
|
-
/**
|
|
67
|
-
* @deprecated Legacy string-based execution - use spawn instead
|
|
68
|
-
*/
|
|
69
|
-
async execute(command) {
|
|
70
|
-
// For backwards compatibility only - prefer spawn()
|
|
71
|
-
return this.executeWithSpawn(command);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Secure spawn-based execution with argument array
|
|
75
|
-
*/
|
|
76
|
-
async spawn(executable, args) {
|
|
77
|
-
return new Promise((resolve, reject) => {
|
|
78
|
-
const proc = spawn(executable, args, {
|
|
79
|
-
shell: false,
|
|
80
|
-
env: { ...process.env },
|
|
81
|
-
timeout: 30000,
|
|
82
|
-
});
|
|
83
|
-
let stdout = '';
|
|
84
|
-
let stderr = '';
|
|
85
|
-
proc.stdout?.on('data', (data) => {
|
|
86
|
-
stdout += data.toString();
|
|
87
|
-
});
|
|
88
|
-
proc.stderr?.on('data', (data) => {
|
|
89
|
-
stderr += data.toString();
|
|
90
|
-
});
|
|
91
|
-
proc.on('close', (code) => {
|
|
92
|
-
if (code === 0) {
|
|
93
|
-
resolve({ stdout: stdout.trim(), stderr: stderr.trim() });
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
reject(new Error(stderr || `Command failed with code ${code}`));
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
proc.on('error', (err) => {
|
|
100
|
-
reject(err);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Parse legacy string command and execute via spawn
|
|
106
|
-
*/
|
|
107
|
-
async executeWithSpawn(command) {
|
|
108
|
-
// Parse the command safely
|
|
109
|
-
const parts = command.split(' ');
|
|
110
|
-
const executable = parts[0];
|
|
111
|
-
const args = parts.slice(1);
|
|
112
|
-
return this.spawn(executable, args);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
10
|
+
import { sanitizeSessionData } from './SessionManager.types.js';
|
|
11
|
+
// Import helpers
|
|
12
|
+
import { getClaudeFlowMemory, getClaudeFlowMcp, MEMORY_KEYS, USE_V3_API, MEMORY_NAMESPACE, validateMemoryKey, DefaultCommandExecutor, } from './SessionManager.helpers.js';
|
|
13
|
+
export { DefaultCommandExecutor } from './SessionManager.helpers.js';
|
|
115
14
|
/**
|
|
116
15
|
* Session Manager for claude-flow memory integration
|
|
117
16
|
*
|
|
@@ -327,42 +226,37 @@ export class SessionManager {
|
|
|
327
226
|
*
|
|
328
227
|
* SMI-674: Uses spawn() with argument array to prevent command injection
|
|
329
228
|
* SMI-1518: V3 API Migration - Use direct storeEntry() when available
|
|
330
|
-
*
|
|
331
|
-
* Values are passed as separate arguments, never interpolated into shell commands
|
|
332
229
|
*/
|
|
333
230
|
async storeMemory(key, value) {
|
|
334
231
|
if (!validateMemoryKey(key)) {
|
|
335
232
|
return { success: false, error: 'Invalid memory key' };
|
|
336
233
|
}
|
|
337
|
-
// SMI-1518: Try V3 direct API first if enabled
|
|
234
|
+
// SMI-1518, SMI-1609: Try V3 direct API first if enabled
|
|
338
235
|
if (USE_V3_API) {
|
|
339
236
|
try {
|
|
340
|
-
const
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
237
|
+
const memoryModule = await getClaudeFlowMemory();
|
|
238
|
+
if (memoryModule?.storeEntry) {
|
|
239
|
+
const result = await memoryModule.storeEntry({
|
|
240
|
+
key,
|
|
241
|
+
value,
|
|
242
|
+
namespace: MEMORY_NAMESPACE,
|
|
243
|
+
});
|
|
244
|
+
if (result.success) {
|
|
245
|
+
return { success: true };
|
|
246
|
+
}
|
|
247
|
+
console.warn(`V3 storeEntry failed: ${result.error}, falling back to spawn`);
|
|
347
248
|
}
|
|
348
|
-
// Fall through to spawn if V3 API reports failure
|
|
349
|
-
console.warn(`V3 storeEntry failed: ${result.error}, falling back to spawn`);
|
|
350
249
|
}
|
|
351
250
|
catch (error) {
|
|
352
|
-
// V3 API threw an exception, fall back to spawn
|
|
353
251
|
console.warn(`V3 storeEntry exception: ${error}, falling back to spawn`);
|
|
354
252
|
}
|
|
355
253
|
}
|
|
356
254
|
try {
|
|
357
|
-
// SMI-674 FIX: Use spawn with argument array instead of string interpolation
|
|
358
|
-
// This prevents command injection attacks like $(whoami) or `id`
|
|
359
255
|
const args = ['claude-flow', 'memory', 'store', '--key', key, '--value', value];
|
|
360
256
|
if (this.executor.spawn) {
|
|
361
257
|
await this.executor.spawn('npx', args);
|
|
362
258
|
}
|
|
363
259
|
else {
|
|
364
|
-
// Fallback to execute for backwards compatibility (legacy executors)
|
|
365
|
-
// Note: This path should not be used in production
|
|
366
260
|
const escapedValue = value.replace(/'/g, "'\\''");
|
|
367
261
|
const command = `npx claude-flow memory store --key "${key}" --value '${escapedValue}'`;
|
|
368
262
|
await this.executor.execute(command);
|
|
@@ -386,29 +280,29 @@ export class SessionManager {
|
|
|
386
280
|
if (!validateMemoryKey(key)) {
|
|
387
281
|
return { success: false, error: 'Invalid memory key' };
|
|
388
282
|
}
|
|
389
|
-
// SMI-1518: Try V3 direct API first if enabled
|
|
283
|
+
// SMI-1518, SMI-1609: Try V3 direct API first if enabled
|
|
390
284
|
if (USE_V3_API) {
|
|
391
285
|
try {
|
|
392
|
-
const
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
286
|
+
const memoryModule = await getClaudeFlowMemory();
|
|
287
|
+
if (memoryModule?.getEntry) {
|
|
288
|
+
const result = await memoryModule.getEntry({
|
|
289
|
+
key,
|
|
290
|
+
namespace: MEMORY_NAMESPACE,
|
|
291
|
+
});
|
|
292
|
+
if (result.success && result.found && result.entry) {
|
|
293
|
+
return { success: true, data: result.entry.content };
|
|
294
|
+
}
|
|
295
|
+
if (result.success && !result.found) {
|
|
296
|
+
return { success: false, error: 'Key not found' };
|
|
297
|
+
}
|
|
298
|
+
console.warn(`V3 getEntry failed: ${result.error}, falling back to spawn`);
|
|
398
299
|
}
|
|
399
|
-
if (result.success && !result.found) {
|
|
400
|
-
return { success: false, error: 'Key not found' };
|
|
401
|
-
}
|
|
402
|
-
// Fall through to spawn if V3 API reports failure
|
|
403
|
-
console.warn(`V3 getEntry failed: ${result.error}, falling back to spawn`);
|
|
404
300
|
}
|
|
405
301
|
catch (error) {
|
|
406
|
-
// V3 API threw an exception, fall back to spawn
|
|
407
302
|
console.warn(`V3 getEntry exception: ${error}, falling back to spawn`);
|
|
408
303
|
}
|
|
409
304
|
}
|
|
410
305
|
try {
|
|
411
|
-
// SMI-674 FIX: Use spawn with argument array
|
|
412
306
|
const args = ['claude-flow', 'memory', 'get', '--key', key];
|
|
413
307
|
let stdout;
|
|
414
308
|
if (this.executor.spawn) {
|
|
@@ -416,7 +310,6 @@ export class SessionManager {
|
|
|
416
310
|
stdout = result.stdout;
|
|
417
311
|
}
|
|
418
312
|
else {
|
|
419
|
-
// Fallback for backwards compatibility
|
|
420
313
|
const command = `npx claude-flow memory get --key "${key}"`;
|
|
421
314
|
const result = await this.executor.execute(command);
|
|
422
315
|
stdout = result.stdout;
|
|
@@ -440,34 +333,32 @@ export class SessionManager {
|
|
|
440
333
|
if (!validateMemoryKey(key)) {
|
|
441
334
|
return { success: false, error: 'Invalid memory key' };
|
|
442
335
|
}
|
|
443
|
-
// SMI-1518: Try V3 MCP API first if enabled
|
|
336
|
+
// SMI-1518, SMI-1609: Try V3 MCP API first if enabled
|
|
444
337
|
if (USE_V3_API) {
|
|
445
338
|
try {
|
|
446
|
-
const
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
339
|
+
const mcpModule = await getClaudeFlowMcp();
|
|
340
|
+
if (mcpModule?.callMCPTool) {
|
|
341
|
+
const result = (await mcpModule.callMCPTool('memory/delete', { key }));
|
|
342
|
+
if (result.success) {
|
|
343
|
+
return { success: true };
|
|
344
|
+
}
|
|
345
|
+
console.warn(`V3 memory/delete failed, falling back to spawn`);
|
|
451
346
|
}
|
|
452
|
-
// Fall through to spawn if V3 API reports failure
|
|
453
|
-
console.warn(`V3 memory/delete failed, falling back to spawn`);
|
|
454
347
|
}
|
|
455
348
|
catch (error) {
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
if (!(error instanceof MCPClientError)) {
|
|
349
|
+
const mcpModule = await getClaudeFlowMcp();
|
|
350
|
+
const MCPClientError = mcpModule?.MCPClientError;
|
|
351
|
+
if (!MCPClientError || !(error instanceof MCPClientError)) {
|
|
459
352
|
console.warn(`V3 memory/delete exception: ${error}, falling back to spawn`);
|
|
460
353
|
}
|
|
461
354
|
}
|
|
462
355
|
}
|
|
463
356
|
try {
|
|
464
|
-
// SMI-674 FIX: Use spawn with argument array
|
|
465
357
|
const args = ['claude-flow', 'memory', 'delete', '--key', key];
|
|
466
358
|
if (this.executor.spawn) {
|
|
467
359
|
await this.executor.spawn('npx', args);
|
|
468
360
|
}
|
|
469
361
|
else {
|
|
470
|
-
// Fallback for backwards compatibility
|
|
471
362
|
const command = `npx claude-flow memory delete --key "${key}"`;
|
|
472
363
|
await this.executor.execute(command);
|
|
473
364
|
}
|
|
@@ -484,14 +375,17 @@ export class SessionManager {
|
|
|
484
375
|
* SMI-1518: V3 API Migration - Use callMCPTool('hooks/pre-task') when available
|
|
485
376
|
*/
|
|
486
377
|
async runPreTaskHook(description) {
|
|
487
|
-
// SMI-1518: Try V3 MCP API first if enabled
|
|
378
|
+
// SMI-1518, SMI-1609: Try V3 MCP API first if enabled
|
|
488
379
|
if (USE_V3_API) {
|
|
489
380
|
try {
|
|
490
|
-
await
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
381
|
+
const mcpModule = await getClaudeFlowMcp();
|
|
382
|
+
if (mcpModule?.callMCPTool) {
|
|
383
|
+
await mcpModule.callMCPTool('hooks/pre-task', {
|
|
384
|
+
description,
|
|
385
|
+
memoryKey: 'session/current',
|
|
386
|
+
});
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
495
389
|
}
|
|
496
390
|
catch {
|
|
497
391
|
// V3 API not available or failed, fall back to spawn
|
|
@@ -511,7 +405,6 @@ export class SessionManager {
|
|
|
511
405
|
await this.executor.spawn('npx', args);
|
|
512
406
|
}
|
|
513
407
|
else {
|
|
514
|
-
// Fallback for backwards compatibility
|
|
515
408
|
const escapedDesc = description.replace(/'/g, "'\\''");
|
|
516
409
|
const command = `npx claude-flow hooks pre-task --description '${escapedDesc}' --memory-key "session/current"`;
|
|
517
410
|
await this.executor.execute(command);
|
|
@@ -527,13 +420,16 @@ export class SessionManager {
|
|
|
527
420
|
* SMI-1518: V3 API Migration - Use callMCPTool('hooks/post-task') when available
|
|
528
421
|
*/
|
|
529
422
|
async runPostTaskHook(taskId) {
|
|
530
|
-
// SMI-1518: Try V3 MCP API first if enabled
|
|
423
|
+
// SMI-1518, SMI-1609: Try V3 MCP API first if enabled
|
|
531
424
|
if (USE_V3_API) {
|
|
532
425
|
try {
|
|
533
|
-
await
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
426
|
+
const mcpModule = await getClaudeFlowMcp();
|
|
427
|
+
if (mcpModule?.callMCPTool) {
|
|
428
|
+
await mcpModule.callMCPTool('hooks/post-task', {
|
|
429
|
+
taskId,
|
|
430
|
+
});
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
537
433
|
}
|
|
538
434
|
catch {
|
|
539
435
|
// V3 API not available or failed, fall back to spawn
|
|
@@ -545,7 +441,6 @@ export class SessionManager {
|
|
|
545
441
|
await this.executor.spawn('npx', args);
|
|
546
442
|
}
|
|
547
443
|
else {
|
|
548
|
-
// Fallback for backwards compatibility
|
|
549
444
|
const command = `npx claude-flow hooks post-task --task-id "${taskId}"`;
|
|
550
445
|
await this.executor.execute(command);
|
|
551
446
|
}
|