@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,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1788: SubagentGenerator - Generate companion subagent definitions
|
|
3
|
+
*
|
|
4
|
+
* Creates subagent definitions for skills that benefit from parallel
|
|
5
|
+
* execution with context isolation. Subagents enable:
|
|
6
|
+
* - 37-97% token savings through context isolation
|
|
7
|
+
* - Parallel execution of heavy operations
|
|
8
|
+
* - Specialized tool access per agent
|
|
9
|
+
*
|
|
10
|
+
* Part of the Skillsmith Optimization Layer for transforming
|
|
11
|
+
* community skills into more performant versions.
|
|
12
|
+
*/
|
|
13
|
+
import type { SkillAnalysis } from './SkillAnalyzer.js';
|
|
14
|
+
/**
|
|
15
|
+
* SMI-1795: Claude model constants for type safety and consistency
|
|
16
|
+
*/
|
|
17
|
+
export declare const CLAUDE_MODELS: {
|
|
18
|
+
readonly HAIKU: "haiku";
|
|
19
|
+
readonly SONNET: "sonnet";
|
|
20
|
+
readonly OPUS: "opus";
|
|
21
|
+
};
|
|
22
|
+
export type ClaudeModel = (typeof CLAUDE_MODELS)[keyof typeof CLAUDE_MODELS];
|
|
23
|
+
/**
|
|
24
|
+
* Generated subagent definition
|
|
25
|
+
*/
|
|
26
|
+
export interface SubagentDefinition {
|
|
27
|
+
/** Subagent name (e.g., "jest-helper-specialist") */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Description for the Task tool */
|
|
30
|
+
description: string;
|
|
31
|
+
/** Trigger phrases that should invoke this subagent */
|
|
32
|
+
triggerPhrases: string[];
|
|
33
|
+
/** Tools the subagent needs access to */
|
|
34
|
+
tools: string[];
|
|
35
|
+
/** Recommended model */
|
|
36
|
+
model: ClaudeModel;
|
|
37
|
+
/** The full markdown content for ~/.claude/agents/ */
|
|
38
|
+
content: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Result of subagent generation
|
|
42
|
+
*/
|
|
43
|
+
export interface SubagentGenerationResult {
|
|
44
|
+
/** Whether a subagent was generated */
|
|
45
|
+
generated: boolean;
|
|
46
|
+
/** The subagent definition (if generated) */
|
|
47
|
+
subagent?: SubagentDefinition;
|
|
48
|
+
/** Reason if not generated */
|
|
49
|
+
reason?: string;
|
|
50
|
+
/** CLAUDE.md integration snippet */
|
|
51
|
+
claudeMdSnippet?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generate a companion subagent for a skill
|
|
55
|
+
*
|
|
56
|
+
* @param skillName - The name of the skill
|
|
57
|
+
* @param description - The skill's description
|
|
58
|
+
* @param content - The full SKILL.md content
|
|
59
|
+
* @param analysis - Analysis from SkillAnalyzer
|
|
60
|
+
* @returns Subagent generation result
|
|
61
|
+
*/
|
|
62
|
+
export declare function generateSubagent(skillName: string, description: string, content: string, analysis: SkillAnalysis): SubagentGenerationResult;
|
|
63
|
+
/**
|
|
64
|
+
* Generate a minimal subagent for skills that don't need full analysis
|
|
65
|
+
*
|
|
66
|
+
* @param skillName - The name of the skill
|
|
67
|
+
* @param description - The skill's description
|
|
68
|
+
* @param content - The full SKILL.md content
|
|
69
|
+
* @returns Subagent generation result
|
|
70
|
+
*/
|
|
71
|
+
export declare function generateMinimalSubagent(skillName: string, description: string, content: string): SubagentGenerationResult;
|
|
72
|
+
declare const _default: {
|
|
73
|
+
generateSubagent: typeof generateSubagent;
|
|
74
|
+
generateMinimalSubagent: typeof generateMinimalSubagent;
|
|
75
|
+
};
|
|
76
|
+
export default _default;
|
|
77
|
+
//# sourceMappingURL=SubagentGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubagentGenerator.d.ts","sourceRoot":"","sources":["../../../src/services/SubagentGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAA;AAE1E;;GAEG;AACH,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAE5E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAA;IAEZ,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAA;IAEnB,uDAAuD;IACvD,cAAc,EAAE,MAAM,EAAE,CAAA;IAExB,yCAAyC;IACzC,KAAK,EAAE,MAAM,EAAE,CAAA;IAEf,wBAAwB;IACxB,KAAK,EAAE,WAAW,CAAA;IAElB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAA;IAElB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAE7B,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAoRD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,GACtB,wBAAwB,CAmE1B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,wBAAwB,CAkD1B;;;;;AAED,wBAA4D"}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1788: SubagentGenerator - Generate companion subagent definitions
|
|
3
|
+
*
|
|
4
|
+
* Creates subagent definitions for skills that benefit from parallel
|
|
5
|
+
* execution with context isolation. Subagents enable:
|
|
6
|
+
* - 37-97% token savings through context isolation
|
|
7
|
+
* - Parallel execution of heavy operations
|
|
8
|
+
* - Specialized tool access per agent
|
|
9
|
+
*
|
|
10
|
+
* Part of the Skillsmith Optimization Layer for transforming
|
|
11
|
+
* community skills into more performant versions.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* SMI-1795: Claude model constants for type safety and consistency
|
|
15
|
+
*/
|
|
16
|
+
export const CLAUDE_MODELS = {
|
|
17
|
+
HAIKU: 'haiku',
|
|
18
|
+
SONNET: 'sonnet',
|
|
19
|
+
OPUS: 'opus',
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Tool detection patterns for analyzing skill content
|
|
23
|
+
*/
|
|
24
|
+
const TOOL_PATTERNS = {
|
|
25
|
+
Read: {
|
|
26
|
+
patterns: ['read file', 'read the', 'examine', 'view file', 'Read tool', 'check file'],
|
|
27
|
+
priority: 1,
|
|
28
|
+
},
|
|
29
|
+
Write: {
|
|
30
|
+
patterns: ['write file', 'create file', 'save to', 'output to', 'Write tool', 'generate file'],
|
|
31
|
+
priority: 2,
|
|
32
|
+
},
|
|
33
|
+
Edit: {
|
|
34
|
+
patterns: [
|
|
35
|
+
'edit file',
|
|
36
|
+
'modify',
|
|
37
|
+
'update file',
|
|
38
|
+
'patch',
|
|
39
|
+
'Edit tool',
|
|
40
|
+
'change file',
|
|
41
|
+
'refactor',
|
|
42
|
+
],
|
|
43
|
+
priority: 2,
|
|
44
|
+
},
|
|
45
|
+
Bash: {
|
|
46
|
+
patterns: [
|
|
47
|
+
'bash',
|
|
48
|
+
'npm',
|
|
49
|
+
'npx',
|
|
50
|
+
'git',
|
|
51
|
+
'docker',
|
|
52
|
+
'yarn',
|
|
53
|
+
'pnpm',
|
|
54
|
+
'terminal',
|
|
55
|
+
'shell',
|
|
56
|
+
'command',
|
|
57
|
+
],
|
|
58
|
+
priority: 3,
|
|
59
|
+
},
|
|
60
|
+
Grep: {
|
|
61
|
+
patterns: ['grep', 'search for', 'find text', 'pattern match', 'Grep tool', 'search in'],
|
|
62
|
+
priority: 1,
|
|
63
|
+
},
|
|
64
|
+
Glob: {
|
|
65
|
+
patterns: ['glob', 'find file', 'file pattern', 'list files', 'Glob tool', 'locate'],
|
|
66
|
+
priority: 1,
|
|
67
|
+
},
|
|
68
|
+
WebFetch: {
|
|
69
|
+
patterns: ['fetch', 'http', 'api call', 'url', 'WebFetch', 'download', 'request'],
|
|
70
|
+
priority: 2,
|
|
71
|
+
},
|
|
72
|
+
WebSearch: {
|
|
73
|
+
patterns: ['web search', 'search online', 'lookup online', 'WebSearch', 'search the web'],
|
|
74
|
+
priority: 2,
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Minimum tools that most subagents need
|
|
79
|
+
*/
|
|
80
|
+
const BASE_TOOLS = ['Read'];
|
|
81
|
+
/**
|
|
82
|
+
* SMI-1819: Maximum length for subagent names to prevent overly long identifiers
|
|
83
|
+
*/
|
|
84
|
+
const MAX_SUBAGENT_NAME_LENGTH = 100;
|
|
85
|
+
/**
|
|
86
|
+
* Generate tool usage guidelines for a subagent
|
|
87
|
+
*/
|
|
88
|
+
function generateToolGuidelines(tools) {
|
|
89
|
+
const guidelines = [];
|
|
90
|
+
if (tools.includes('Read')) {
|
|
91
|
+
guidelines.push('- **Read**: Use to examine files before modifications');
|
|
92
|
+
}
|
|
93
|
+
if (tools.includes('Write')) {
|
|
94
|
+
guidelines.push('- **Write**: Use for creating new files only');
|
|
95
|
+
}
|
|
96
|
+
if (tools.includes('Edit')) {
|
|
97
|
+
guidelines.push('- **Edit**: Use for modifying existing files');
|
|
98
|
+
}
|
|
99
|
+
if (tools.includes('Bash')) {
|
|
100
|
+
guidelines.push('- **Bash**: Use for command execution, prefer non-destructive commands');
|
|
101
|
+
}
|
|
102
|
+
if (tools.includes('Grep')) {
|
|
103
|
+
guidelines.push('- **Grep**: Use for searching file contents');
|
|
104
|
+
}
|
|
105
|
+
if (tools.includes('Glob')) {
|
|
106
|
+
guidelines.push('- **Glob**: Use for finding files by pattern');
|
|
107
|
+
}
|
|
108
|
+
if (tools.includes('WebFetch')) {
|
|
109
|
+
guidelines.push('- **WebFetch**: Use for fetching web content');
|
|
110
|
+
}
|
|
111
|
+
if (tools.includes('WebSearch')) {
|
|
112
|
+
guidelines.push('- **WebSearch**: Use for searching the web');
|
|
113
|
+
}
|
|
114
|
+
return guidelines.length > 0 ? guidelines.join('\n') : '- Use tools minimally and efficiently';
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Generate subagent markdown content
|
|
118
|
+
*/
|
|
119
|
+
function generateSubagentContent(name, description, triggerPhrases, tools, model) {
|
|
120
|
+
const triggerString = triggerPhrases.length > 0
|
|
121
|
+
? triggerPhrases.map((p) => `"${p}"`).join(', ')
|
|
122
|
+
: '[describe trigger conditions]';
|
|
123
|
+
const toolGuidelines = generateToolGuidelines(tools);
|
|
124
|
+
return `---
|
|
125
|
+
name: ${name}
|
|
126
|
+
description: ${description} Use when ${triggerString}.
|
|
127
|
+
skills: ${name.replace('-specialist', '')}
|
|
128
|
+
tools: ${tools.join(', ')}
|
|
129
|
+
model: ${model}
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Operating Protocol
|
|
133
|
+
|
|
134
|
+
1. Execute the ${name.replace('-specialist', '')} skill for the delegated task
|
|
135
|
+
2. Process all intermediate results internally
|
|
136
|
+
3. Return ONLY a structured summary to the orchestrator
|
|
137
|
+
|
|
138
|
+
## Output Format
|
|
139
|
+
|
|
140
|
+
- **Task:** [what was requested]
|
|
141
|
+
- **Actions:** [what you did]
|
|
142
|
+
- **Results:** [key outcomes, max 3-5 bullet points]
|
|
143
|
+
- **Artifacts:** [file paths or outputs created]
|
|
144
|
+
|
|
145
|
+
Keep response under 500 tokens unless explicitly requested otherwise.
|
|
146
|
+
|
|
147
|
+
## Tool Usage Guidelines
|
|
148
|
+
|
|
149
|
+
${toolGuidelines}
|
|
150
|
+
|
|
151
|
+
## Error Handling
|
|
152
|
+
|
|
153
|
+
If the task cannot be completed:
|
|
154
|
+
- Report specific blocking issue
|
|
155
|
+
- Suggest alternative approaches
|
|
156
|
+
- Do not retry indefinitely
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
*Generated by Skillsmith Optimization Layer*
|
|
161
|
+
`;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Generate CLAUDE.md integration snippet
|
|
165
|
+
*/
|
|
166
|
+
function generateClaudeMdSnippet(skillName, description, triggerPhrases, tools, model) {
|
|
167
|
+
const triggerPatterns = triggerPhrases.length > 0
|
|
168
|
+
? triggerPhrases.map((p) => `- "${p}"`).join('\n')
|
|
169
|
+
: '- [add trigger patterns]';
|
|
170
|
+
const exampleTask = triggerPhrases.length > 0 ? triggerPhrases[0] : `execute ${skillName} task`;
|
|
171
|
+
return `
|
|
172
|
+
### Subagent Delegation: ${skillName}
|
|
173
|
+
|
|
174
|
+
When tasks match ${skillName} triggers, delegate to the ${skillName}-specialist
|
|
175
|
+
subagent instead of executing directly. This provides context isolation and
|
|
176
|
+
~37-97% token savings.
|
|
177
|
+
|
|
178
|
+
**Trigger Patterns:**
|
|
179
|
+
${triggerPatterns}
|
|
180
|
+
|
|
181
|
+
**Delegation Example:**
|
|
182
|
+
\`\`\`
|
|
183
|
+
Task("${skillName}-specialist", "${exampleTask}", "${skillName}-specialist")
|
|
184
|
+
\`\`\`
|
|
185
|
+
|
|
186
|
+
**Model:** ${model}
|
|
187
|
+
**Tools:** ${tools.join(', ')}
|
|
188
|
+
`;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Extract trigger phrases from skill description and content
|
|
192
|
+
*/
|
|
193
|
+
function extractTriggerPhrases(description, content) {
|
|
194
|
+
const phrases = [];
|
|
195
|
+
// Common trigger phrase patterns
|
|
196
|
+
const patterns = [
|
|
197
|
+
/when\s+(?:you\s+)?(?:need\s+to\s+)?(.+?)(?:[.,]|$)/gi,
|
|
198
|
+
/use\s+(?:this\s+)?(?:when|for)\s+(.+?)(?:[.,]|$)/gi,
|
|
199
|
+
/(?:helps?\s+(?:you\s+)?(?:to\s+)?)?(.+?)(?:\s+tasks?|\s+operations?)/gi,
|
|
200
|
+
];
|
|
201
|
+
const textToSearch = description + ' ' + content.slice(0, 2000); // Search first 2000 chars
|
|
202
|
+
for (const pattern of patterns) {
|
|
203
|
+
for (const match of textToSearch.matchAll(pattern)) {
|
|
204
|
+
const phrase = match[1].trim().toLowerCase();
|
|
205
|
+
if (phrase.length >= 5 && phrase.length <= 50 && !phrases.includes(phrase)) {
|
|
206
|
+
phrases.push(phrase);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Extract from "trigger" or "invoke" mentions
|
|
211
|
+
const triggerMatch = content.match(/trigger[s]?\s*[:=]\s*["`']([^"`']+)["`']/gi);
|
|
212
|
+
if (triggerMatch) {
|
|
213
|
+
for (const match of triggerMatch) {
|
|
214
|
+
const phrase = match.replace(/trigger[s]?\s*[:=]\s*["`']/i, '').replace(/["`']$/, '');
|
|
215
|
+
if (!phrases.includes(phrase.toLowerCase())) {
|
|
216
|
+
phrases.push(phrase.toLowerCase());
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return phrases.slice(0, 5); // Limit to 5 phrases
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Determine optimal model for subagent
|
|
224
|
+
* SMI-1795: Uses CLAUDE_MODELS constants for type safety
|
|
225
|
+
*/
|
|
226
|
+
function determineModel(toolUsage, lineCount) {
|
|
227
|
+
// Haiku for simple, fast operations
|
|
228
|
+
if (toolUsage.detectedTools.length <= 2 && lineCount < 200) {
|
|
229
|
+
return CLAUDE_MODELS.HAIKU;
|
|
230
|
+
}
|
|
231
|
+
// Opus for complex, reasoning-heavy tasks
|
|
232
|
+
if (toolUsage.bashCommandCount > 5 ||
|
|
233
|
+
(toolUsage.fileReadCount > 3 && toolUsage.fileWriteCount > 3)) {
|
|
234
|
+
return CLAUDE_MODELS.OPUS;
|
|
235
|
+
}
|
|
236
|
+
// Sonnet for balanced workloads (default)
|
|
237
|
+
return CLAUDE_MODELS.SONNET;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Detect tools needed from skill content
|
|
241
|
+
*/
|
|
242
|
+
function detectTools(content) {
|
|
243
|
+
const lowerContent = content.toLowerCase();
|
|
244
|
+
const detectedTools = new Set(BASE_TOOLS);
|
|
245
|
+
for (const [tool, config] of Object.entries(TOOL_PATTERNS)) {
|
|
246
|
+
for (const pattern of config.patterns) {
|
|
247
|
+
if (lowerContent.includes(pattern.toLowerCase())) {
|
|
248
|
+
detectedTools.add(tool);
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return Array.from(detectedTools);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Generate a companion subagent for a skill
|
|
257
|
+
*
|
|
258
|
+
* @param skillName - The name of the skill
|
|
259
|
+
* @param description - The skill's description
|
|
260
|
+
* @param content - The full SKILL.md content
|
|
261
|
+
* @param analysis - Analysis from SkillAnalyzer
|
|
262
|
+
* @returns Subagent generation result
|
|
263
|
+
*/
|
|
264
|
+
export function generateSubagent(skillName, description, content, analysis) {
|
|
265
|
+
// SMI-1815: Validate skill name is non-empty
|
|
266
|
+
if (!skillName || skillName.trim() === '') {
|
|
267
|
+
return {
|
|
268
|
+
generated: false,
|
|
269
|
+
reason: 'Skill name is required for subagent generation',
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
// Check if subagent is recommended
|
|
273
|
+
if (!analysis.toolUsage.suggestsSubagent && analysis.lineCount < 300) {
|
|
274
|
+
return {
|
|
275
|
+
generated: false,
|
|
276
|
+
reason: 'Skill does not have heavy tool usage or complexity that would benefit from a subagent',
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
// Detect tools from content (supplement analysis)
|
|
280
|
+
const detectedTools = detectTools(content);
|
|
281
|
+
const allTools = Array.from(new Set([...analysis.toolUsage.detectedTools, ...detectedTools]));
|
|
282
|
+
// Extract trigger phrases
|
|
283
|
+
const triggerPhrases = extractTriggerPhrases(description, content);
|
|
284
|
+
// Determine model
|
|
285
|
+
const model = determineModel(analysis.toolUsage, analysis.lineCount);
|
|
286
|
+
// SMI-1819: Generate subagent name with length limit
|
|
287
|
+
const suffix = '-specialist';
|
|
288
|
+
const maxBaseLength = MAX_SUBAGENT_NAME_LENGTH - suffix.length;
|
|
289
|
+
const baseName = skillName.length > maxBaseLength ? skillName.slice(0, maxBaseLength) : skillName;
|
|
290
|
+
const subagentName = `${baseName}${suffix}`;
|
|
291
|
+
// Generate subagent description
|
|
292
|
+
const subagentDescription = description || `Specialist agent for ${skillName} operations`;
|
|
293
|
+
// Generate content
|
|
294
|
+
const subagentContent = generateSubagentContent(subagentName, subagentDescription, triggerPhrases, allTools, model);
|
|
295
|
+
// Generate CLAUDE.md snippet
|
|
296
|
+
const claudeMdSnippet = generateClaudeMdSnippet(skillName, subagentDescription, triggerPhrases, allTools, model);
|
|
297
|
+
return {
|
|
298
|
+
generated: true,
|
|
299
|
+
subagent: {
|
|
300
|
+
name: subagentName,
|
|
301
|
+
description: subagentDescription,
|
|
302
|
+
triggerPhrases,
|
|
303
|
+
tools: allTools,
|
|
304
|
+
model,
|
|
305
|
+
content: subagentContent,
|
|
306
|
+
},
|
|
307
|
+
claudeMdSnippet,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Generate a minimal subagent for skills that don't need full analysis
|
|
312
|
+
*
|
|
313
|
+
* @param skillName - The name of the skill
|
|
314
|
+
* @param description - The skill's description
|
|
315
|
+
* @param content - The full SKILL.md content
|
|
316
|
+
* @returns Subagent generation result
|
|
317
|
+
*/
|
|
318
|
+
export function generateMinimalSubagent(skillName, description, content) {
|
|
319
|
+
// SMI-1815: Validate skill name is non-empty
|
|
320
|
+
if (!skillName || skillName.trim() === '') {
|
|
321
|
+
return {
|
|
322
|
+
generated: false,
|
|
323
|
+
reason: 'Skill name is required for subagent generation',
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
const detectedTools = detectTools(content);
|
|
327
|
+
const triggerPhrases = extractTriggerPhrases(description, content);
|
|
328
|
+
// Default to sonnet for minimal subagents
|
|
329
|
+
const model = CLAUDE_MODELS.SONNET;
|
|
330
|
+
// SMI-1819: Generate subagent name with length limit
|
|
331
|
+
const suffix = '-specialist';
|
|
332
|
+
const maxBaseLength = MAX_SUBAGENT_NAME_LENGTH - suffix.length;
|
|
333
|
+
const baseName = skillName.length > maxBaseLength ? skillName.slice(0, maxBaseLength) : skillName;
|
|
334
|
+
const subagentName = `${baseName}${suffix}`;
|
|
335
|
+
const subagentDescription = description || `Specialist agent for ${skillName} operations`;
|
|
336
|
+
const subagentContent = generateSubagentContent(subagentName, subagentDescription, triggerPhrases, detectedTools, model);
|
|
337
|
+
const claudeMdSnippet = generateClaudeMdSnippet(skillName, subagentDescription, triggerPhrases, detectedTools, model);
|
|
338
|
+
return {
|
|
339
|
+
generated: true,
|
|
340
|
+
subagent: {
|
|
341
|
+
name: subagentName,
|
|
342
|
+
description: subagentDescription,
|
|
343
|
+
triggerPhrases,
|
|
344
|
+
tools: detectedTools,
|
|
345
|
+
model,
|
|
346
|
+
content: subagentContent,
|
|
347
|
+
},
|
|
348
|
+
claudeMdSnippet,
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
export default { generateSubagent, generateMinimalSubagent };
|
|
352
|
+
//# sourceMappingURL=SubagentGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubagentGenerator.js","sourceRoot":"","sources":["../../../src/services/SubagentGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1662: TaskRunner - Background Task Timeout Management
|
|
3
|
+
*
|
|
4
|
+
* Provides configurable timeout enforcement for background Task agents.
|
|
5
|
+
* Addresses orphaned process memory leaks identified in incident 2026-01-22.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Configurable timeout via TASK_TIMEOUT_MS environment variable
|
|
9
|
+
* - Default timeout: 10 minutes (600000ms)
|
|
10
|
+
* - Warning at 80% of timeout limit
|
|
11
|
+
* - Graceful shutdown: SIGTERM -> wait 5s -> SIGKILL
|
|
12
|
+
* - Task registry for tracking running background tasks
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const runner = new TaskRunner({ timeoutMs: 300000 }) // 5 minute timeout
|
|
17
|
+
* const taskId = runner.register(childProcess.pid, 'SMI-1660 implementation')
|
|
18
|
+
*
|
|
19
|
+
* // When task completes
|
|
20
|
+
* runner.complete(taskId)
|
|
21
|
+
*
|
|
22
|
+
* // Cleanup orphaned tasks
|
|
23
|
+
* await runner.cleanupOrphaned()
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import { type Logger } from '../utils/logger.js';
|
|
27
|
+
/**
|
|
28
|
+
* Default timeout: 10 minutes (600000ms)
|
|
29
|
+
*/
|
|
30
|
+
export declare const DEFAULT_TASK_TIMEOUT_MS = 600000;
|
|
31
|
+
/**
|
|
32
|
+
* Grace period before SIGKILL after SIGTERM: 5 seconds
|
|
33
|
+
*/
|
|
34
|
+
export declare const SIGKILL_GRACE_PERIOD_MS = 5000;
|
|
35
|
+
/**
|
|
36
|
+
* Warning threshold: 80% of timeout
|
|
37
|
+
*/
|
|
38
|
+
export declare const WARNING_THRESHOLD_RATIO = 0.8;
|
|
39
|
+
/**
|
|
40
|
+
* Configuration options for TaskRunner
|
|
41
|
+
*/
|
|
42
|
+
export interface TaskRunnerConfig {
|
|
43
|
+
/** Timeout in milliseconds (default: 600000 = 10 minutes) */
|
|
44
|
+
timeoutMs?: number;
|
|
45
|
+
/** Enable debug logging (default: false) */
|
|
46
|
+
debug?: boolean;
|
|
47
|
+
/** Custom logger instance */
|
|
48
|
+
logger?: Logger;
|
|
49
|
+
/** Callback when a task times out */
|
|
50
|
+
onTimeout?: (task: TrackedTask) => void;
|
|
51
|
+
/** Callback when warning threshold is reached */
|
|
52
|
+
onWarning?: (task: TrackedTask, remainingMs: number) => void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Status of a tracked task
|
|
56
|
+
*/
|
|
57
|
+
export type TaskStatus = 'running' | 'completed' | 'failed' | 'timeout' | 'killed';
|
|
58
|
+
/**
|
|
59
|
+
* A tracked background task
|
|
60
|
+
*/
|
|
61
|
+
export interface TrackedTask {
|
|
62
|
+
/** Unique task identifier */
|
|
63
|
+
id: string;
|
|
64
|
+
/** Process ID of the background task */
|
|
65
|
+
pid: number;
|
|
66
|
+
/** Human-readable description */
|
|
67
|
+
description: string;
|
|
68
|
+
/** When the task started */
|
|
69
|
+
startedAt: number;
|
|
70
|
+
/** Current status */
|
|
71
|
+
status: TaskStatus;
|
|
72
|
+
/** When the task completed/failed/timed out */
|
|
73
|
+
endedAt?: number;
|
|
74
|
+
/** Duration in milliseconds */
|
|
75
|
+
durationMs?: number;
|
|
76
|
+
/** Whether warning was issued */
|
|
77
|
+
warningIssued: boolean;
|
|
78
|
+
/** Error message if failed */
|
|
79
|
+
error?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Result of a cleanup operation
|
|
83
|
+
*/
|
|
84
|
+
export interface CleanupResult {
|
|
85
|
+
/** Number of tasks cleaned up */
|
|
86
|
+
cleaned: number;
|
|
87
|
+
/** Task IDs that were cleaned */
|
|
88
|
+
taskIds: string[];
|
|
89
|
+
/** Any errors encountered */
|
|
90
|
+
errors: Array<{
|
|
91
|
+
taskId: string;
|
|
92
|
+
error: string;
|
|
93
|
+
}>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* TaskRunner manages background task lifecycles with timeout enforcement.
|
|
97
|
+
*
|
|
98
|
+
* Solves the orphaned process problem by:
|
|
99
|
+
* 1. Tracking all background tasks in a registry
|
|
100
|
+
* 2. Enforcing configurable timeouts
|
|
101
|
+
* 3. Graceful shutdown with SIGTERM -> SIGKILL escalation
|
|
102
|
+
* 4. Logging all timeout events for debugging
|
|
103
|
+
*/
|
|
104
|
+
export declare class TaskRunner {
|
|
105
|
+
private readonly config;
|
|
106
|
+
private readonly logger;
|
|
107
|
+
private readonly tasks;
|
|
108
|
+
private readonly timers;
|
|
109
|
+
private readonly warningTimers;
|
|
110
|
+
private readonly onTimeout?;
|
|
111
|
+
private readonly onWarning?;
|
|
112
|
+
constructor(config?: TaskRunnerConfig);
|
|
113
|
+
/**
|
|
114
|
+
* Register a new background task for monitoring
|
|
115
|
+
*
|
|
116
|
+
* @param pid - Process ID of the background task
|
|
117
|
+
* @param description - Human-readable description
|
|
118
|
+
* @returns Task ID for tracking
|
|
119
|
+
*/
|
|
120
|
+
register(pid: number, description: string): string;
|
|
121
|
+
/**
|
|
122
|
+
* Mark a task as completed successfully
|
|
123
|
+
*
|
|
124
|
+
* @param taskId - Task ID to complete
|
|
125
|
+
*/
|
|
126
|
+
complete(taskId: string): void;
|
|
127
|
+
/**
|
|
128
|
+
* Mark a task as failed
|
|
129
|
+
*
|
|
130
|
+
* @param taskId - Task ID that failed
|
|
131
|
+
* @param error - Error message or Error object
|
|
132
|
+
*/
|
|
133
|
+
fail(taskId: string, error: string | Error): void;
|
|
134
|
+
/**
|
|
135
|
+
* Get a tracked task by ID
|
|
136
|
+
*
|
|
137
|
+
* @param taskId - Task ID to retrieve
|
|
138
|
+
* @returns The tracked task or undefined
|
|
139
|
+
*/
|
|
140
|
+
getTask(taskId: string): TrackedTask | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* Get all tasks with a specific status
|
|
143
|
+
*
|
|
144
|
+
* @param status - Status to filter by (optional, returns all if not specified)
|
|
145
|
+
* @returns Array of matching tasks
|
|
146
|
+
*/
|
|
147
|
+
getTasks(status?: TaskStatus): TrackedTask[];
|
|
148
|
+
/**
|
|
149
|
+
* Get statistics about tracked tasks
|
|
150
|
+
*/
|
|
151
|
+
getStats(): {
|
|
152
|
+
total: number;
|
|
153
|
+
running: number;
|
|
154
|
+
completed: number;
|
|
155
|
+
failed: number;
|
|
156
|
+
timeout: number;
|
|
157
|
+
killed: number;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Clean up completed/failed/timeout tasks older than specified age
|
|
161
|
+
*
|
|
162
|
+
* @param maxAgeMs - Maximum age in milliseconds (default: 1 hour)
|
|
163
|
+
* @returns Number of tasks cleaned up
|
|
164
|
+
*/
|
|
165
|
+
cleanup(maxAgeMs?: number): number;
|
|
166
|
+
/**
|
|
167
|
+
* Clean up all orphaned running tasks that have exceeded timeout
|
|
168
|
+
* This can be called externally to force cleanup
|
|
169
|
+
*
|
|
170
|
+
* @returns Cleanup result with details
|
|
171
|
+
*/
|
|
172
|
+
cleanupOrphaned(): Promise<CleanupResult>;
|
|
173
|
+
/**
|
|
174
|
+
* Dispose of the TaskRunner and clean up all timers
|
|
175
|
+
*/
|
|
176
|
+
dispose(): void;
|
|
177
|
+
/**
|
|
178
|
+
* Get the configured timeout in milliseconds
|
|
179
|
+
*/
|
|
180
|
+
getTimeoutMs(): number;
|
|
181
|
+
/**
|
|
182
|
+
* Issue a warning that task is approaching timeout
|
|
183
|
+
*/
|
|
184
|
+
private issueWarning;
|
|
185
|
+
/**
|
|
186
|
+
* Handle a task timeout
|
|
187
|
+
*/
|
|
188
|
+
private handleTimeout;
|
|
189
|
+
/**
|
|
190
|
+
* Gracefully shutdown a process: SIGTERM -> wait -> SIGKILL
|
|
191
|
+
*/
|
|
192
|
+
private gracefulShutdown;
|
|
193
|
+
/**
|
|
194
|
+
* Kill a process immediately with SIGKILL
|
|
195
|
+
*/
|
|
196
|
+
private killProcess;
|
|
197
|
+
/**
|
|
198
|
+
* Finish a task and clean up timers
|
|
199
|
+
*/
|
|
200
|
+
private finishTask;
|
|
201
|
+
/**
|
|
202
|
+
* Sleep for a specified duration
|
|
203
|
+
*/
|
|
204
|
+
private sleep;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Create a TaskRunner with environment-based configuration
|
|
208
|
+
*
|
|
209
|
+
* Environment variables:
|
|
210
|
+
* - TASK_TIMEOUT_MS: Timeout in milliseconds (default: 600000)
|
|
211
|
+
* - DEBUG: Enable debug logging (default: false)
|
|
212
|
+
*/
|
|
213
|
+
export declare function createTaskRunner(config?: TaskRunnerConfig): TaskRunner;
|
|
214
|
+
/**
|
|
215
|
+
* Get or create the global TaskRunner instance
|
|
216
|
+
*/
|
|
217
|
+
export declare function getGlobalTaskRunner(): TaskRunner;
|
|
218
|
+
/**
|
|
219
|
+
* Set a custom global TaskRunner instance
|
|
220
|
+
*/
|
|
221
|
+
export declare function setGlobalTaskRunner(runner: TaskRunner): void;
|
|
222
|
+
/**
|
|
223
|
+
* Dispose of the global TaskRunner instance
|
|
224
|
+
*/
|
|
225
|
+
export declare function disposeGlobalTaskRunner(): void;
|
|
226
|
+
export default TaskRunner;
|
|
227
|
+
//# sourceMappingURL=TaskRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskRunner.d.ts","sourceRoot":"","sources":["../../../src/services/TaskRunner.ts"],"names":[],"mappings":"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"}
|