@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
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1662: TaskRunner Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests for background task timeout management functionality.
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
7
|
+
import { TaskRunner, createTaskRunner, getGlobalTaskRunner, setGlobalTaskRunner, disposeGlobalTaskRunner, DEFAULT_TASK_TIMEOUT_MS, SIGKILL_GRACE_PERIOD_MS, WARNING_THRESHOLD_RATIO, } from '../TaskRunner.js';
|
|
8
|
+
import { silentLogger } from '../../utils/logger.js';
|
|
9
|
+
describe('TaskRunner', () => {
|
|
10
|
+
let runner;
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
vi.useFakeTimers();
|
|
13
|
+
runner = new TaskRunner({
|
|
14
|
+
timeoutMs: 10000, // 10 seconds for faster tests
|
|
15
|
+
logger: silentLogger,
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
runner.dispose();
|
|
20
|
+
vi.useRealTimers();
|
|
21
|
+
});
|
|
22
|
+
describe('constructor', () => {
|
|
23
|
+
it('should use default timeout if not specified', () => {
|
|
24
|
+
const defaultRunner = new TaskRunner({ logger: silentLogger });
|
|
25
|
+
expect(defaultRunner.getTimeoutMs()).toBe(DEFAULT_TASK_TIMEOUT_MS);
|
|
26
|
+
defaultRunner.dispose();
|
|
27
|
+
});
|
|
28
|
+
it('should use custom timeout when provided', () => {
|
|
29
|
+
const customRunner = new TaskRunner({ timeoutMs: 5000, logger: silentLogger });
|
|
30
|
+
expect(customRunner.getTimeoutMs()).toBe(5000);
|
|
31
|
+
customRunner.dispose();
|
|
32
|
+
});
|
|
33
|
+
it('should read timeout from environment variable', () => {
|
|
34
|
+
const originalEnv = process.env.TASK_TIMEOUT_MS;
|
|
35
|
+
process.env.TASK_TIMEOUT_MS = '120000';
|
|
36
|
+
const envRunner = new TaskRunner({ logger: silentLogger });
|
|
37
|
+
expect(envRunner.getTimeoutMs()).toBe(120000);
|
|
38
|
+
envRunner.dispose();
|
|
39
|
+
if (originalEnv !== undefined) {
|
|
40
|
+
process.env.TASK_TIMEOUT_MS = originalEnv;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
delete process.env.TASK_TIMEOUT_MS;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
it('should prefer explicit config over environment variable', () => {
|
|
47
|
+
const originalEnv = process.env.TASK_TIMEOUT_MS;
|
|
48
|
+
process.env.TASK_TIMEOUT_MS = '120000';
|
|
49
|
+
const configRunner = new TaskRunner({ timeoutMs: 5000, logger: silentLogger });
|
|
50
|
+
expect(configRunner.getTimeoutMs()).toBe(5000);
|
|
51
|
+
configRunner.dispose();
|
|
52
|
+
if (originalEnv !== undefined) {
|
|
53
|
+
process.env.TASK_TIMEOUT_MS = originalEnv;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
delete process.env.TASK_TIMEOUT_MS;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe('register', () => {
|
|
61
|
+
it('should register a task and return an ID', () => {
|
|
62
|
+
const taskId = runner.register(12345, 'Test task');
|
|
63
|
+
expect(taskId).toBeDefined();
|
|
64
|
+
expect(typeof taskId).toBe('string');
|
|
65
|
+
expect(taskId.length).toBeGreaterThan(0);
|
|
66
|
+
});
|
|
67
|
+
it('should track the registered task', () => {
|
|
68
|
+
const taskId = runner.register(12345, 'Test task');
|
|
69
|
+
const task = runner.getTask(taskId);
|
|
70
|
+
expect(task).toBeDefined();
|
|
71
|
+
expect(task?.pid).toBe(12345);
|
|
72
|
+
expect(task?.description).toBe('Test task');
|
|
73
|
+
expect(task?.status).toBe('running');
|
|
74
|
+
expect(task?.warningIssued).toBe(false);
|
|
75
|
+
});
|
|
76
|
+
it('should set correct start time', () => {
|
|
77
|
+
const now = Date.now();
|
|
78
|
+
const taskId = runner.register(12345, 'Test task');
|
|
79
|
+
const task = runner.getTask(taskId);
|
|
80
|
+
expect(task?.startedAt).toBeGreaterThanOrEqual(now);
|
|
81
|
+
expect(task?.startedAt).toBeLessThanOrEqual(now + 100);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
describe('complete', () => {
|
|
85
|
+
it('should mark task as completed', () => {
|
|
86
|
+
const taskId = runner.register(12345, 'Test task');
|
|
87
|
+
runner.complete(taskId);
|
|
88
|
+
const task = runner.getTask(taskId);
|
|
89
|
+
expect(task?.status).toBe('completed');
|
|
90
|
+
expect(task?.endedAt).toBeDefined();
|
|
91
|
+
expect(task?.durationMs).toBeDefined();
|
|
92
|
+
});
|
|
93
|
+
it('should calculate duration correctly', () => {
|
|
94
|
+
const taskId = runner.register(12345, 'Test task');
|
|
95
|
+
// Advance time by 1 second
|
|
96
|
+
vi.advanceTimersByTime(1000);
|
|
97
|
+
runner.complete(taskId);
|
|
98
|
+
const task = runner.getTask(taskId);
|
|
99
|
+
expect(task?.durationMs).toBeGreaterThanOrEqual(1000);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
describe('fail', () => {
|
|
103
|
+
it('should mark task as failed with error message', () => {
|
|
104
|
+
const taskId = runner.register(12345, 'Test task');
|
|
105
|
+
runner.fail(taskId, 'Something went wrong');
|
|
106
|
+
const task = runner.getTask(taskId);
|
|
107
|
+
expect(task?.status).toBe('failed');
|
|
108
|
+
expect(task?.error).toBe('Something went wrong');
|
|
109
|
+
});
|
|
110
|
+
it('should extract message from Error object', () => {
|
|
111
|
+
const taskId = runner.register(12345, 'Test task');
|
|
112
|
+
runner.fail(taskId, new Error('Error object message'));
|
|
113
|
+
const task = runner.getTask(taskId);
|
|
114
|
+
expect(task?.error).toBe('Error object message');
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
describe('getTasks', () => {
|
|
118
|
+
it('should return all tasks when no filter specified', () => {
|
|
119
|
+
runner.register(1, 'Task 1');
|
|
120
|
+
runner.register(2, 'Task 2');
|
|
121
|
+
runner.register(3, 'Task 3');
|
|
122
|
+
const tasks = runner.getTasks();
|
|
123
|
+
expect(tasks).toHaveLength(3);
|
|
124
|
+
});
|
|
125
|
+
it('should filter tasks by status', () => {
|
|
126
|
+
const task1 = runner.register(1, 'Task 1');
|
|
127
|
+
runner.register(2, 'Task 2');
|
|
128
|
+
const task3 = runner.register(3, 'Task 3');
|
|
129
|
+
runner.complete(task1);
|
|
130
|
+
runner.fail(task3, 'error');
|
|
131
|
+
const runningTasks = runner.getTasks('running');
|
|
132
|
+
expect(runningTasks).toHaveLength(1);
|
|
133
|
+
const completedTasks = runner.getTasks('completed');
|
|
134
|
+
expect(completedTasks).toHaveLength(1);
|
|
135
|
+
const failedTasks = runner.getTasks('failed');
|
|
136
|
+
expect(failedTasks).toHaveLength(1);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe('getStats', () => {
|
|
140
|
+
it('should return correct statistics', () => {
|
|
141
|
+
const task1 = runner.register(1, 'Task 1');
|
|
142
|
+
runner.register(2, 'Task 2');
|
|
143
|
+
const task3 = runner.register(3, 'Task 3');
|
|
144
|
+
runner.register(4, 'Task 4');
|
|
145
|
+
runner.complete(task1);
|
|
146
|
+
runner.fail(task3, 'error');
|
|
147
|
+
const stats = runner.getStats();
|
|
148
|
+
expect(stats.total).toBe(4);
|
|
149
|
+
expect(stats.running).toBe(2);
|
|
150
|
+
expect(stats.completed).toBe(1);
|
|
151
|
+
expect(stats.failed).toBe(1);
|
|
152
|
+
expect(stats.timeout).toBe(0);
|
|
153
|
+
expect(stats.killed).toBe(0);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
describe('warning callback', () => {
|
|
157
|
+
it('should issue warning at 80% of timeout', () => {
|
|
158
|
+
const warningCallback = vi.fn();
|
|
159
|
+
const testRunner = new TaskRunner({
|
|
160
|
+
timeoutMs: 10000,
|
|
161
|
+
logger: silentLogger,
|
|
162
|
+
onWarning: warningCallback,
|
|
163
|
+
});
|
|
164
|
+
testRunner.register(12345, 'Test task');
|
|
165
|
+
// Advance to just before warning threshold (80%)
|
|
166
|
+
vi.advanceTimersByTime(7900);
|
|
167
|
+
expect(warningCallback).not.toHaveBeenCalled();
|
|
168
|
+
// Advance past warning threshold
|
|
169
|
+
vi.advanceTimersByTime(200);
|
|
170
|
+
expect(warningCallback).toHaveBeenCalled();
|
|
171
|
+
const call = warningCallback.mock.calls[0];
|
|
172
|
+
expect(call[0].pid).toBe(12345);
|
|
173
|
+
expect(call[1]).toBeGreaterThan(0); // remaining time
|
|
174
|
+
testRunner.dispose();
|
|
175
|
+
});
|
|
176
|
+
it('should set warningIssued flag', () => {
|
|
177
|
+
const taskId = runner.register(12345, 'Test task');
|
|
178
|
+
// Advance past warning threshold (80% of 10s = 8s)
|
|
179
|
+
vi.advanceTimersByTime(8100);
|
|
180
|
+
const task = runner.getTask(taskId);
|
|
181
|
+
expect(task?.warningIssued).toBe(true);
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
describe('timeout handling', () => {
|
|
185
|
+
it('should call onTimeout callback when task times out', async () => {
|
|
186
|
+
const timeoutCallback = vi.fn();
|
|
187
|
+
const testRunner = new TaskRunner({
|
|
188
|
+
timeoutMs: 10000,
|
|
189
|
+
logger: silentLogger,
|
|
190
|
+
onTimeout: timeoutCallback,
|
|
191
|
+
});
|
|
192
|
+
// Mock process.kill to prevent actual signals
|
|
193
|
+
const killSpy = vi.spyOn(process, 'kill').mockImplementation(() => true);
|
|
194
|
+
testRunner.register(12345, 'Test task');
|
|
195
|
+
// Advance past timeout and allow async operations to complete
|
|
196
|
+
vi.advanceTimersByTime(10100);
|
|
197
|
+
await vi.runAllTimersAsync();
|
|
198
|
+
expect(timeoutCallback).toHaveBeenCalled();
|
|
199
|
+
expect(timeoutCallback.mock.calls[0][0].pid).toBe(12345);
|
|
200
|
+
killSpy.mockRestore();
|
|
201
|
+
testRunner.dispose();
|
|
202
|
+
});
|
|
203
|
+
it('should mark task as timeout after timeout', async () => {
|
|
204
|
+
const killSpy = vi.spyOn(process, 'kill').mockImplementation(() => true);
|
|
205
|
+
const taskId = runner.register(12345, 'Test task');
|
|
206
|
+
// Advance past timeout + grace period and allow async operations to complete
|
|
207
|
+
vi.advanceTimersByTime(10000 + SIGKILL_GRACE_PERIOD_MS + 100);
|
|
208
|
+
await vi.runAllTimersAsync();
|
|
209
|
+
const task = runner.getTask(taskId);
|
|
210
|
+
expect(task?.status).toBe('timeout');
|
|
211
|
+
killSpy.mockRestore();
|
|
212
|
+
});
|
|
213
|
+
it('should send SIGTERM first during graceful shutdown', () => {
|
|
214
|
+
const killSpy = vi.spyOn(process, 'kill').mockImplementation(() => true);
|
|
215
|
+
runner.register(12345, 'Test task');
|
|
216
|
+
// Advance to timeout
|
|
217
|
+
vi.advanceTimersByTime(10100);
|
|
218
|
+
// First call should be SIGTERM
|
|
219
|
+
expect(killSpy).toHaveBeenCalledWith(12345, 'SIGTERM');
|
|
220
|
+
killSpy.mockRestore();
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
describe('cleanup', () => {
|
|
224
|
+
it('should clean up old completed tasks', () => {
|
|
225
|
+
const task1 = runner.register(1, 'Task 1');
|
|
226
|
+
runner.register(2, 'Task 2');
|
|
227
|
+
runner.complete(task1);
|
|
228
|
+
// Advance time past max age
|
|
229
|
+
vi.advanceTimersByTime(3700000); // > 1 hour
|
|
230
|
+
const cleaned = runner.cleanup();
|
|
231
|
+
expect(cleaned).toBe(1);
|
|
232
|
+
});
|
|
233
|
+
it('should not clean up running tasks', () => {
|
|
234
|
+
runner.register(1, 'Task 1');
|
|
235
|
+
// Advance time
|
|
236
|
+
vi.advanceTimersByTime(3700000);
|
|
237
|
+
// Need to prevent timeout from firing
|
|
238
|
+
const killSpy = vi.spyOn(process, 'kill').mockImplementation(() => true);
|
|
239
|
+
const cleaned = runner.cleanup();
|
|
240
|
+
expect(cleaned).toBe(0);
|
|
241
|
+
killSpy.mockRestore();
|
|
242
|
+
});
|
|
243
|
+
it('should respect custom maxAgeMs', () => {
|
|
244
|
+
const task1 = runner.register(1, 'Task 1');
|
|
245
|
+
runner.complete(task1);
|
|
246
|
+
// Advance time by 30 minutes
|
|
247
|
+
vi.advanceTimersByTime(1800000);
|
|
248
|
+
// Clean with 1 hour max age - should not clean
|
|
249
|
+
const cleaned1 = runner.cleanup(3600000);
|
|
250
|
+
expect(cleaned1).toBe(0);
|
|
251
|
+
// Clean with 15 minute max age - should clean
|
|
252
|
+
const cleaned2 = runner.cleanup(900000);
|
|
253
|
+
expect(cleaned2).toBe(1);
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
describe('dispose', () => {
|
|
257
|
+
it('should clear all timers', () => {
|
|
258
|
+
runner.register(1, 'Task 1');
|
|
259
|
+
runner.register(2, 'Task 2');
|
|
260
|
+
runner.dispose();
|
|
261
|
+
// Advance time - no callbacks should fire
|
|
262
|
+
const killSpy = vi.spyOn(process, 'kill');
|
|
263
|
+
vi.advanceTimersByTime(20000);
|
|
264
|
+
expect(killSpy).not.toHaveBeenCalled();
|
|
265
|
+
killSpy.mockRestore();
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
describe('constants', () => {
|
|
269
|
+
it('should have correct default timeout', () => {
|
|
270
|
+
expect(DEFAULT_TASK_TIMEOUT_MS).toBe(600000); // 10 minutes
|
|
271
|
+
});
|
|
272
|
+
it('should have correct grace period', () => {
|
|
273
|
+
expect(SIGKILL_GRACE_PERIOD_MS).toBe(5000); // 5 seconds
|
|
274
|
+
});
|
|
275
|
+
it('should have correct warning threshold', () => {
|
|
276
|
+
expect(WARNING_THRESHOLD_RATIO).toBe(0.8); // 80%
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
});
|
|
280
|
+
describe('Global TaskRunner', () => {
|
|
281
|
+
afterEach(() => {
|
|
282
|
+
disposeGlobalTaskRunner();
|
|
283
|
+
});
|
|
284
|
+
it('should create singleton on first access', () => {
|
|
285
|
+
const runner1 = getGlobalTaskRunner();
|
|
286
|
+
const runner2 = getGlobalTaskRunner();
|
|
287
|
+
expect(runner1).toBe(runner2);
|
|
288
|
+
});
|
|
289
|
+
it('should allow setting custom global runner', () => {
|
|
290
|
+
const customRunner = new TaskRunner({ timeoutMs: 5000, logger: silentLogger });
|
|
291
|
+
setGlobalTaskRunner(customRunner);
|
|
292
|
+
const retrieved = getGlobalTaskRunner();
|
|
293
|
+
expect(retrieved).toBe(customRunner);
|
|
294
|
+
expect(retrieved.getTimeoutMs()).toBe(5000);
|
|
295
|
+
});
|
|
296
|
+
it('should dispose global runner', () => {
|
|
297
|
+
const runner = getGlobalTaskRunner();
|
|
298
|
+
disposeGlobalTaskRunner();
|
|
299
|
+
// Next call should create new instance
|
|
300
|
+
const newRunner = getGlobalTaskRunner();
|
|
301
|
+
expect(newRunner).not.toBe(runner);
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
describe('createTaskRunner', () => {
|
|
305
|
+
it('should create new TaskRunner instance', () => {
|
|
306
|
+
const runner = createTaskRunner({ logger: silentLogger });
|
|
307
|
+
expect(runner).toBeInstanceOf(TaskRunner);
|
|
308
|
+
runner.dispose();
|
|
309
|
+
});
|
|
310
|
+
it('should pass config to TaskRunner', () => {
|
|
311
|
+
const runner = createTaskRunner({ timeoutMs: 5000, logger: silentLogger });
|
|
312
|
+
expect(runner.getTimeoutMs()).toBe(5000);
|
|
313
|
+
runner.dispose();
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
//# sourceMappingURL=TaskRunner.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskRunner.test.js","sourceRoot":"","sources":["../../../../src/services/__tests__/TaskRunner.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACxE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,MAAkB,CAAA;IAEtB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAA;QAClB,MAAM,GAAG,IAAI,UAAU,CAAC;YACtB,SAAS,EAAE,KAAK,EAAE,8BAA8B;YAChD,MAAM,EAAE,YAAY;SACrB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,OAAO,EAAE,CAAA;QAChB,EAAE,CAAC,aAAa,EAAE,CAAA;IACpB,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;YAC9D,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;YAClE,aAAa,CAAC,OAAO,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;YAC9E,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,YAAY,CAAC,OAAO,EAAE,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;YAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,CAAA;YAEtC,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;YAC1D,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7C,SAAS,CAAC,OAAO,EAAE,CAAA;YAEnB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,WAAW,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;YAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,CAAA;YAEtC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;YAC9E,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,YAAY,CAAC,OAAO,EAAE,CAAA;YAEtB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,WAAW,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;YAC5B,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAClD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEnC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;YAC1B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC3C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACpC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAClD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEnC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;YACnD,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,mBAAmB,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEnC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;YACnC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAElD,2BAA2B;YAC3B,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAE5B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEnC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAClD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEnC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAClD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAA;YACtD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAEnC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAE5B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAE1C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAE3B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAC/C,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YAEpC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YACnD,MAAM,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YAEtC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAE5B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAE3B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YAE/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC3B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;YAC/B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;gBAChC,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,YAAY;gBACpB,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAA;YAEF,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAEvC,iDAAiD;YACjD,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAC5B,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAE9C,iCAAiC;YACjC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC3B,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAA;YAE1C,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA,CAAC,iBAAiB;YAEpD,UAAU,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAElD,mDAAmD;YACnD,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAE5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACnC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;YAC/B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;gBAChC,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,YAAY;gBACpB,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAA;YAEF,8CAA8C;YAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;YAExE,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAEvC,8DAA8D;YAC9D,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YAC7B,MAAM,EAAE,CAAC,iBAAiB,EAAE,CAAA;YAE5B,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAA;YAC1C,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAExD,OAAO,CAAC,WAAW,EAAE,CAAA;YACrB,UAAU,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;YAExE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAElD,6EAA6E;YAC7E,EAAE,CAAC,mBAAmB,CAAC,KAAK,GAAG,uBAAuB,GAAG,GAAG,CAAC,CAAA;YAC7D,MAAM,EAAE,CAAC,iBAAiB,EAAE,CAAA;YAE5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACnC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAEpC,OAAO,CAAC,WAAW,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;YAExE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAEnC,qBAAqB;YACrB,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YAE7B,+BAA+B;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YAEtD,OAAO,CAAC,WAAW,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAE5B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAEtB,4BAA4B;YAC5B,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA,CAAC,WAAW;YAE3C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAE5B,eAAe;YACf,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAE/B,sCAAsC;YACtC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;YAExE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEvB,OAAO,CAAC,WAAW,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC1C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAEtB,6BAA6B;YAC7B,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAE/B,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAExB,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAE5B,MAAM,CAAC,OAAO,EAAE,CAAA;YAEhB,0CAA0C;YAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACzC,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YAE7B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;YACtC,OAAO,CAAC,WAAW,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,aAAa;QAC5D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,YAAY;QACzD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,MAAM;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,GAAG,EAAE;QACb,uBAAuB,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAA;QACrC,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAA;QAErC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QAC9E,mBAAmB,CAAC,YAAY,CAAC,CAAA;QAEjC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAA;QACvC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAA;QACpC,uBAAuB,EAAE,CAAA;QAEzB,uCAAuC;QACvC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAA;QACvC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,CAAC,OAAO,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,MAAM,CAAC,OAAO,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransformationService.test.d.ts","sourceRoot":"","sources":["../../../../src/services/__tests__/TransformationService.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Tests for TransformationService
|
|
3
|
+
* Part of Skillsmith Optimization Layer
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect } from 'vitest';
|
|
6
|
+
import { TransformationService, transformSkill } from '../TransformationService.js';
|
|
7
|
+
describe('TransformationService', () => {
|
|
8
|
+
describe('constructor', () => {
|
|
9
|
+
it('should create service without database (no caching)', () => {
|
|
10
|
+
const service = new TransformationService();
|
|
11
|
+
const stats = service.getCacheStats();
|
|
12
|
+
expect(stats.enabled).toBe(false);
|
|
13
|
+
});
|
|
14
|
+
it('should accept custom options', () => {
|
|
15
|
+
const service = new TransformationService(undefined, {
|
|
16
|
+
cacheTtl: 7200,
|
|
17
|
+
version: '2.0.0',
|
|
18
|
+
});
|
|
19
|
+
const stats = service.getCacheStats();
|
|
20
|
+
expect(stats.ttl).toBe(7200);
|
|
21
|
+
expect(stats.version).toBe('2.0.0');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('transformWithoutCache', () => {
|
|
25
|
+
it('should not transform simple skills', () => {
|
|
26
|
+
const service = new TransformationService();
|
|
27
|
+
const content = `---
|
|
28
|
+
name: simple-skill
|
|
29
|
+
description: A simple skill
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# Simple Skill
|
|
33
|
+
|
|
34
|
+
Just basic content.
|
|
35
|
+
`;
|
|
36
|
+
const result = service.transformWithoutCache('simple-skill', 'A simple skill', content);
|
|
37
|
+
expect(result.transformed).toBe(false);
|
|
38
|
+
expect(result.mainSkillContent).toContain('Optimized by Skillsmith');
|
|
39
|
+
expect(result.subSkills).toHaveLength(0);
|
|
40
|
+
});
|
|
41
|
+
it('should transform complex skills', () => {
|
|
42
|
+
const service = new TransformationService();
|
|
43
|
+
// Create a complex skill with multiple optimization opportunities
|
|
44
|
+
const apiSection = Array(100).fill('- endpoint: /api/v1/resource').join('\n');
|
|
45
|
+
const content = `---
|
|
46
|
+
name: complex-skill
|
|
47
|
+
description: A complex skill with multiple optimization opportunities
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
# Complex Skill
|
|
51
|
+
|
|
52
|
+
This skill has multiple areas for optimization.
|
|
53
|
+
|
|
54
|
+
## Heavy Commands
|
|
55
|
+
|
|
56
|
+
Run npm install
|
|
57
|
+
Run npx something
|
|
58
|
+
Run git commands
|
|
59
|
+
Run docker build
|
|
60
|
+
Run yarn add
|
|
61
|
+
Use bash terminal
|
|
62
|
+
|
|
63
|
+
## API Reference
|
|
64
|
+
|
|
65
|
+
${apiSection}
|
|
66
|
+
|
|
67
|
+
## Examples
|
|
68
|
+
|
|
69
|
+
\`\`\`javascript
|
|
70
|
+
Task("agent1", "task 1")
|
|
71
|
+
Task("agent2", "task 2")
|
|
72
|
+
Task("agent3", "task 3")
|
|
73
|
+
\`\`\`
|
|
74
|
+
`;
|
|
75
|
+
const result = service.transformWithoutCache('complex-skill', 'A complex skill with multiple optimization opportunities', content);
|
|
76
|
+
expect(result.transformed).toBe(true);
|
|
77
|
+
// Token reduction should be meaningful (>= 10%) but capped at 80%
|
|
78
|
+
expect(result.stats.tokenReductionPercent).toBeGreaterThanOrEqual(10);
|
|
79
|
+
expect(result.stats.tokenReductionPercent).toBeLessThanOrEqual(80);
|
|
80
|
+
expect(result.analysis).toBeDefined();
|
|
81
|
+
});
|
|
82
|
+
it('should generate subagent for heavy tool usage', () => {
|
|
83
|
+
const service = new TransformationService();
|
|
84
|
+
const content = `---
|
|
85
|
+
name: tool-skill
|
|
86
|
+
description: A skill with heavy tool usage
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
# Tool Skill
|
|
90
|
+
|
|
91
|
+
This skill runs many commands:
|
|
92
|
+
- npm install packages
|
|
93
|
+
- git status and commit
|
|
94
|
+
- docker build images
|
|
95
|
+
- npx execute scripts
|
|
96
|
+
- yarn add dependencies
|
|
97
|
+
- pnpm install modules
|
|
98
|
+
|
|
99
|
+
Use bash to execute commands.
|
|
100
|
+
Terminal operations are common.
|
|
101
|
+
Shell scripting is required.
|
|
102
|
+
`;
|
|
103
|
+
const result = service.transformWithoutCache('tool-skill', 'A skill with heavy tool usage', content);
|
|
104
|
+
expect(result.subagent).toBeDefined();
|
|
105
|
+
expect(result.subagent?.name).toBe('tool-skill-specialist');
|
|
106
|
+
expect(result.claudeMdSnippet).toBeDefined();
|
|
107
|
+
});
|
|
108
|
+
it('should include attribution in transformed content', () => {
|
|
109
|
+
const service = new TransformationService();
|
|
110
|
+
const content = `# Skill\n\nContent.`;
|
|
111
|
+
const result = service.transformWithoutCache('skill', 'Test skill', content);
|
|
112
|
+
expect(result.mainSkillContent).toContain('Optimized by Skillsmith');
|
|
113
|
+
expect(result.attribution).toContain('Optimized by Skillsmith');
|
|
114
|
+
});
|
|
115
|
+
it('should populate transformation stats', () => {
|
|
116
|
+
const service = new TransformationService();
|
|
117
|
+
const content = `# Skill\n\n${'Content line.\n'.repeat(100)}`;
|
|
118
|
+
const result = service.transformWithoutCache('skill', 'Test skill', content);
|
|
119
|
+
expect(result.stats.originalLines).toBeGreaterThan(0);
|
|
120
|
+
expect(result.stats.optimizedLines).toBeGreaterThan(0);
|
|
121
|
+
expect(result.stats.transformDurationMs).toBeGreaterThanOrEqual(0);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
describe('analyze', () => {
|
|
125
|
+
it('should return analysis without transforming', () => {
|
|
126
|
+
const service = new TransformationService();
|
|
127
|
+
const content = `# Skill\n\nContent.`;
|
|
128
|
+
const analysis = service.analyze(content);
|
|
129
|
+
expect(analysis.lineCount).toBeGreaterThan(0);
|
|
130
|
+
expect(analysis.toolUsage).toBeDefined();
|
|
131
|
+
expect(analysis.recommendations).toBeDefined();
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
describe('transformSkill standalone function', () => {
|
|
135
|
+
it('should transform without service instance', () => {
|
|
136
|
+
const content = `---
|
|
137
|
+
name: standalone-skill
|
|
138
|
+
description: Test standalone transformation
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
# Standalone Skill
|
|
142
|
+
|
|
143
|
+
Content here.
|
|
144
|
+
`;
|
|
145
|
+
const result = transformSkill('standalone-skill', 'Test standalone transformation', content);
|
|
146
|
+
expect(result).toBeDefined();
|
|
147
|
+
expect(result.mainSkillContent).toContain('standalone-skill');
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
describe('transformation with decomposition', () => {
|
|
151
|
+
it('should decompose large skills into sub-skills', () => {
|
|
152
|
+
const service = new TransformationService();
|
|
153
|
+
// Create skill with large sections AND tool usage to boost optimization score
|
|
154
|
+
// Score needs to reach 30+ for transformation to trigger
|
|
155
|
+
const apiSection = Array(200)
|
|
156
|
+
.fill('- endpoint: /api/resource with detailed documentation')
|
|
157
|
+
.join('\n');
|
|
158
|
+
const examplesSection = Array(200)
|
|
159
|
+
.fill('Example code line with detailed explanation')
|
|
160
|
+
.join('\n');
|
|
161
|
+
const content = `---
|
|
162
|
+
name: decompose-skill
|
|
163
|
+
description: A skill that needs decomposition
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
# Decompose Skill
|
|
167
|
+
|
|
168
|
+
Overview content with more detail.
|
|
169
|
+
|
|
170
|
+
## Installation
|
|
171
|
+
|
|
172
|
+
Run npm install to get started.
|
|
173
|
+
Use git to clone the repository.
|
|
174
|
+
Execute docker build for containers.
|
|
175
|
+
|
|
176
|
+
## API Reference
|
|
177
|
+
|
|
178
|
+
${apiSection}
|
|
179
|
+
|
|
180
|
+
## Examples
|
|
181
|
+
|
|
182
|
+
${examplesSection}
|
|
183
|
+
|
|
184
|
+
## Advanced Configuration
|
|
185
|
+
|
|
186
|
+
${'Config line with detailed settings\n'.repeat(200)}
|
|
187
|
+
`;
|
|
188
|
+
const result = service.transformWithoutCache('decompose-skill', 'A skill that needs decomposition', content);
|
|
189
|
+
expect(result.stats.originalLines).toBeGreaterThan(500);
|
|
190
|
+
expect(result.analysis.optimizationScore).toBeGreaterThanOrEqual(30);
|
|
191
|
+
expect(result.subSkills.length).toBeGreaterThan(0);
|
|
192
|
+
expect(result.stats.subSkillCount).toBe(result.subSkills.length);
|
|
193
|
+
});
|
|
194
|
+
it('should create properly named sub-skill files', () => {
|
|
195
|
+
const service = new TransformationService();
|
|
196
|
+
const content = `---
|
|
197
|
+
name: naming-skill
|
|
198
|
+
description: Test sub-skill naming
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
# Naming Skill
|
|
202
|
+
|
|
203
|
+
## API Reference & Guide
|
|
204
|
+
|
|
205
|
+
${'Content\n'.repeat(100)}
|
|
206
|
+
|
|
207
|
+
## Advanced Examples
|
|
208
|
+
|
|
209
|
+
${'Content\n'.repeat(100)}
|
|
210
|
+
`;
|
|
211
|
+
const result = service.transformWithoutCache('naming-skill', 'Test sub-skill naming', content);
|
|
212
|
+
for (const subSkill of result.subSkills) {
|
|
213
|
+
expect(subSkill.filename).toMatch(/\.md$/);
|
|
214
|
+
expect(subSkill.content.length).toBeGreaterThan(0);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
describe('token reduction calculations', () => {
|
|
219
|
+
it('should cap token reduction at 80%', () => {
|
|
220
|
+
const service = new TransformationService();
|
|
221
|
+
// Create an extremely large skill
|
|
222
|
+
const content = `---
|
|
223
|
+
name: huge-skill
|
|
224
|
+
description: An extremely large skill
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
# Huge Skill
|
|
228
|
+
|
|
229
|
+
${'Content line with lots of text.\n'.repeat(1000)}
|
|
230
|
+
|
|
231
|
+
## API Reference
|
|
232
|
+
|
|
233
|
+
${'- endpoint\n'.repeat(500)}
|
|
234
|
+
|
|
235
|
+
## Examples
|
|
236
|
+
|
|
237
|
+
${'Example\n'.repeat(500)}
|
|
238
|
+
`;
|
|
239
|
+
const result = service.transformWithoutCache('huge-skill', 'An extremely large skill', content);
|
|
240
|
+
expect(result.stats.tokenReductionPercent).toBeLessThanOrEqual(80);
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
//# sourceMappingURL=TransformationService.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransformationService.test.js","sourceRoot":"","sources":["../../../../src/services/__tests__/TransformationService.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,7 +124,7 @@ export function getLatestCheckpoint(session) {
|
|
|
124
124
|
if (session.checkpoints.length === 0) {
|
|
125
125
|
return null;
|
|
126
126
|
}
|
|
127
|
-
return session.checkpoints.reduce((latest, current,
|
|
127
|
+
return session.checkpoints.reduce((latest, current, _index, _array) => {
|
|
128
128
|
const latestTime = new Date(latest.timestamp).getTime();
|
|
129
129
|
const currentTime = new Date(current.timestamp).getTime();
|
|
130
130
|
// Prefer current if time is greater OR equal (later in array = more recent)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionContext.js","sourceRoot":"","sources":["../../../src/session/SessionContext.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SessionContext.js","sourceRoot":"","sources":["../../../src/session/SessionContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA+DH;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACvB,OAAO,CAAa;IAE5B,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,cAAc;QACZ,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;IAC7B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;IAC9B,CAAC;IAED,gBAAgB;QACd,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACxC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;IAED,aAAa;QACX,MAAM,IAAI,GAAa,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAE/E,6BAA6B;QAC7B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACjC,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAA6B;QACzC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;IAChD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC7B,cAAc;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iBAAiB;QACf,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,kBAAkB;QAChB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,gBAAgB;QACd,OAAO,EAAE,CAAA;IACX,CAAC;IAED,cAAc;QACZ,OAAO,EAAE,CAAA;IACX,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAA;IACX,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA2B;IAC9D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,IAAI,kBAAkB,EAAE,CAAA;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACrD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;IACnD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAA;IACpD,OAAO,GAAG,GAAG,KAAK,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IAEtC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,EAAE,GAAG,CAAA;IACrC,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,EAAE,GAAG,CAAA;IACvC,CAAC;IACD,OAAO,GAAG,OAAO,GAAG,CAAA;AACtB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAoB;IACtD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACpE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;QACvD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;QACzD,4EAA4E;QAC5E,OAAO,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;IACrD,CAAC,CAAC,CAAA;AACJ,CAAC"}
|