@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,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Skillsmith Tracer
|
|
3
|
+
* @module @skillsmith/core/telemetry/tracer-types
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Local type definitions matching OpenTelemetry interfaces
|
|
7
|
+
* SMI-755: Allows compilation without @opentelemetry/api installed
|
|
8
|
+
*/
|
|
9
|
+
export interface OTelSpan {
|
|
10
|
+
setAttributes(attributes: Record<string, unknown>): void;
|
|
11
|
+
setStatus(status: {
|
|
12
|
+
code: number;
|
|
13
|
+
message?: string;
|
|
14
|
+
}): void;
|
|
15
|
+
recordException(error: Error): void;
|
|
16
|
+
addEvent(name: string, attributes?: Record<string, unknown>): void;
|
|
17
|
+
end(): void;
|
|
18
|
+
}
|
|
19
|
+
export interface OTelTracer {
|
|
20
|
+
startSpan(name: string, options?: unknown): OTelSpan;
|
|
21
|
+
}
|
|
22
|
+
export interface OTelSpanOptions {
|
|
23
|
+
attributes?: Record<string, unknown>;
|
|
24
|
+
links?: unknown[];
|
|
25
|
+
startTime?: number;
|
|
26
|
+
root?: boolean;
|
|
27
|
+
kind?: number;
|
|
28
|
+
}
|
|
29
|
+
export type Span = OTelSpan;
|
|
30
|
+
export type Tracer = OTelTracer;
|
|
31
|
+
export type SpanOptions = OTelSpanOptions;
|
|
32
|
+
export type SpanStatusCode = number;
|
|
33
|
+
/**
|
|
34
|
+
* Tracer configuration
|
|
35
|
+
*/
|
|
36
|
+
export interface TracerConfig {
|
|
37
|
+
/** Service name for spans (default: skillsmith) */
|
|
38
|
+
serviceName?: string;
|
|
39
|
+
/** OTLP endpoint URL */
|
|
40
|
+
endpoint?: string;
|
|
41
|
+
/** Enable auto-instrumentation (default: true) */
|
|
42
|
+
autoInstrument?: boolean;
|
|
43
|
+
/** Enable console exporter for debugging (default: false) */
|
|
44
|
+
consoleExport?: boolean;
|
|
45
|
+
/** Sample rate 0-1 (default: 1.0 = 100%) */
|
|
46
|
+
sampleRate?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Span attribute types
|
|
50
|
+
*/
|
|
51
|
+
export interface SpanAttributes {
|
|
52
|
+
[key: string]: string | number | boolean | string[] | number[] | boolean[] | undefined;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Span wrapper for easier usage
|
|
56
|
+
*/
|
|
57
|
+
export interface SpanWrapper {
|
|
58
|
+
/** Add attributes to span */
|
|
59
|
+
setAttributes(attributes: SpanAttributes): void;
|
|
60
|
+
/** Set span status */
|
|
61
|
+
setStatus(code: 'ok' | 'error', message?: string): void;
|
|
62
|
+
/** Record an exception */
|
|
63
|
+
recordException(error: Error): void;
|
|
64
|
+
/** Add an event to the span */
|
|
65
|
+
addEvent(name: string, attributes?: SpanAttributes): void;
|
|
66
|
+
/** End the span */
|
|
67
|
+
end(): void;
|
|
68
|
+
/** Get the underlying OTEL span (if available) */
|
|
69
|
+
getSpan(): Span | null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Type-safe accessors for OTEL modules (SMI-755)
|
|
73
|
+
* These provide typed access while avoiding compile-time dependency
|
|
74
|
+
*/
|
|
75
|
+
export interface OTelApi {
|
|
76
|
+
trace: {
|
|
77
|
+
getTracer(name: string, version?: string): OTelTracer;
|
|
78
|
+
getActiveSpan(): OTelSpan | undefined;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export interface OTelNodeSDK {
|
|
82
|
+
new (config: unknown): {
|
|
83
|
+
start(): Promise<void>;
|
|
84
|
+
shutdown(): Promise<void>;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Resource factory function type (v2.x uses resourceFromAttributes instead of class)
|
|
89
|
+
*/
|
|
90
|
+
export type OTelResourceFromAttributes = (attributes: Record<string, string>) => unknown;
|
|
91
|
+
//# sourceMappingURL=tracer-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer-types.d.ts","sourceRoot":"","sources":["../../../src/telemetry/tracer-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACxD,SAAS,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3D,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAClE,GAAG,IAAI,IAAI,CAAA;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAGD,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAA;AAC3B,MAAM,MAAM,MAAM,GAAG,UAAU,CAAA;AAC/B,MAAM,MAAM,WAAW,GAAG,eAAe,CAAA;AACzC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,CAAA;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAA;IAC/C,sBAAsB;IACtB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvD,0BAA0B;IAC1B,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACzD,mBAAmB;IACnB,GAAG,IAAI,IAAI,CAAA;IACX,kDAAkD;IAClD,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE;QACL,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;QACrD,aAAa,IAAI,QAAQ,GAAG,SAAS,CAAA;KACtC,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,MAAM,EAAE,OAAO,GAAG;QAAE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAA;CAC7E;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer-types.js","sourceRoot":"","sources":["../../../src/telemetry/tracer-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -2,84 +2,13 @@
|
|
|
2
2
|
* SMI-739: OpenTelemetry Tracer Setup
|
|
3
3
|
* SMI-755: Graceful fallback when OpenTelemetry unavailable
|
|
4
4
|
*
|
|
5
|
-
* Provides distributed tracing for Skillsmith operations
|
|
6
|
-
* - MCP tool calls
|
|
7
|
-
* - Database queries
|
|
8
|
-
* - Cache operations
|
|
9
|
-
* - External API calls
|
|
5
|
+
* Provides distributed tracing for Skillsmith operations.
|
|
10
6
|
*
|
|
11
|
-
*
|
|
12
|
-
* -
|
|
13
|
-
* - OTEL_SERVICE_NAME: Service name (default: skillsmith)
|
|
14
|
-
* - SKILLSMITH_TELEMETRY_ENABLED: Master switch for all telemetry (default: auto)
|
|
15
|
-
* - SKILLSMITH_TRACING_ENABLED: Enable/disable tracing (default: true if endpoint set)
|
|
16
|
-
*
|
|
17
|
-
* Graceful Fallback:
|
|
18
|
-
* - If OpenTelemetry packages are not installed, uses NoOp implementations
|
|
19
|
-
* - Logs warning on fallback (unless SKILLSMITH_TELEMETRY_ENABLED=false)
|
|
20
|
-
* - All tracing APIs remain functional (just don't record)
|
|
21
|
-
*/
|
|
22
|
-
/**
|
|
23
|
-
* Local type definitions matching OpenTelemetry interfaces
|
|
24
|
-
* SMI-755: Allows compilation without @opentelemetry/api installed
|
|
25
|
-
*/
|
|
26
|
-
interface OTelSpan {
|
|
27
|
-
setAttributes(attributes: Record<string, unknown>): void;
|
|
28
|
-
setStatus(status: {
|
|
29
|
-
code: number;
|
|
30
|
-
message?: string;
|
|
31
|
-
}): void;
|
|
32
|
-
recordException(error: Error): void;
|
|
33
|
-
addEvent(name: string, attributes?: Record<string, unknown>): void;
|
|
34
|
-
end(): void;
|
|
35
|
-
}
|
|
36
|
-
interface OTelSpanOptions {
|
|
37
|
-
attributes?: Record<string, unknown>;
|
|
38
|
-
links?: unknown[];
|
|
39
|
-
startTime?: number;
|
|
40
|
-
root?: boolean;
|
|
41
|
-
kind?: number;
|
|
42
|
-
}
|
|
43
|
-
type Span = OTelSpan;
|
|
44
|
-
type SpanOptions = OTelSpanOptions;
|
|
45
|
-
/**
|
|
46
|
-
* Tracer configuration
|
|
47
|
-
*/
|
|
48
|
-
export interface TracerConfig {
|
|
49
|
-
/** Service name for spans (default: skillsmith) */
|
|
50
|
-
serviceName?: string;
|
|
51
|
-
/** OTLP endpoint URL */
|
|
52
|
-
endpoint?: string;
|
|
53
|
-
/** Enable auto-instrumentation (default: true) */
|
|
54
|
-
autoInstrument?: boolean;
|
|
55
|
-
/** Enable console exporter for debugging (default: false) */
|
|
56
|
-
consoleExport?: boolean;
|
|
57
|
-
/** Sample rate 0-1 (default: 1.0 = 100%) */
|
|
58
|
-
sampleRate?: number;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Span attribute types
|
|
62
|
-
*/
|
|
63
|
-
export interface SpanAttributes {
|
|
64
|
-
[key: string]: string | number | boolean | string[] | number[] | boolean[] | undefined;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Span wrapper for easier usage
|
|
7
|
+
* @see tracer-types.ts for type definitions
|
|
8
|
+
* @see span-utils.ts for span wrapper classes
|
|
68
9
|
*/
|
|
69
|
-
export
|
|
70
|
-
|
|
71
|
-
setAttributes(attributes: SpanAttributes): void;
|
|
72
|
-
/** Set span status */
|
|
73
|
-
setStatus(code: 'ok' | 'error', message?: string): void;
|
|
74
|
-
/** Record an exception */
|
|
75
|
-
recordException(error: Error): void;
|
|
76
|
-
/** Add an event to the span */
|
|
77
|
-
addEvent(name: string, attributes?: SpanAttributes): void;
|
|
78
|
-
/** End the span */
|
|
79
|
-
end(): void;
|
|
80
|
-
/** Get the underlying OTEL span (if available) */
|
|
81
|
-
getSpan(): Span | null;
|
|
82
|
-
}
|
|
10
|
+
export type { TracerConfig, SpanAttributes, SpanWrapper, Span, Tracer, SpanOptions, OTelApi, OTelNodeSDK, OTelResourceFromAttributes, } from './tracer-types.js';
|
|
11
|
+
import type { TracerConfig, SpanOptions, SpanWrapper } from './tracer-types.js';
|
|
83
12
|
/**
|
|
84
13
|
* Skillsmith Tracer - Wrapper for OpenTelemetry tracing
|
|
85
14
|
*/
|
|
@@ -90,62 +19,16 @@ export declare class SkillsmithTracer {
|
|
|
90
19
|
private config;
|
|
91
20
|
private sdkInstance;
|
|
92
21
|
constructor(config?: TracerConfig);
|
|
93
|
-
/**
|
|
94
|
-
* Initialize the tracer
|
|
95
|
-
* Must be called before creating spans
|
|
96
|
-
*/
|
|
97
22
|
initialize(): Promise<void>;
|
|
98
|
-
/**
|
|
99
|
-
* Check if tracing is enabled
|
|
100
|
-
*/
|
|
101
23
|
isEnabled(): boolean;
|
|
102
|
-
/**
|
|
103
|
-
* Start a new span
|
|
104
|
-
*
|
|
105
|
-
* @param name - Span name (e.g., 'mcp.tool.search', 'db.query')
|
|
106
|
-
* @param options - Span options
|
|
107
|
-
* @returns SpanWrapper for manipulating the span
|
|
108
|
-
*/
|
|
109
24
|
startSpan(name: string, options?: SpanOptions): SpanWrapper;
|
|
110
|
-
/**
|
|
111
|
-
* Execute a function within a span context
|
|
112
|
-
*
|
|
113
|
-
* @param name - Span name
|
|
114
|
-
* @param fn - Function to execute
|
|
115
|
-
* @param options - Span options
|
|
116
|
-
* @returns Result of the function
|
|
117
|
-
*/
|
|
118
25
|
withSpan<T>(name: string, fn: (span: SpanWrapper) => Promise<T>, options?: SpanOptions): Promise<T>;
|
|
119
|
-
/**
|
|
120
|
-
* Execute a synchronous function within a span context
|
|
121
|
-
*/
|
|
122
26
|
withSpanSync<T>(name: string, fn: (span: SpanWrapper) => T, options?: SpanOptions): T;
|
|
123
|
-
/**
|
|
124
|
-
* Get the current active span (if any)
|
|
125
|
-
*/
|
|
126
27
|
getCurrentSpan(): SpanWrapper;
|
|
127
|
-
/**
|
|
128
|
-
* Shutdown the tracer and flush pending spans
|
|
129
|
-
*/
|
|
130
28
|
shutdown(): Promise<void>;
|
|
131
29
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Get the default tracer instance
|
|
134
|
-
*/
|
|
135
30
|
export declare function getTracer(): SkillsmithTracer;
|
|
136
|
-
/**
|
|
137
|
-
* Initialize the default tracer
|
|
138
|
-
* Should be called at application startup
|
|
139
|
-
*/
|
|
140
31
|
export declare function initializeTracing(config?: TracerConfig): Promise<SkillsmithTracer>;
|
|
141
|
-
/**
|
|
142
|
-
* Shutdown the default tracer
|
|
143
|
-
* Should be called at application shutdown
|
|
144
|
-
*/
|
|
145
32
|
export declare function shutdownTracing(): Promise<void>;
|
|
146
|
-
/**
|
|
147
|
-
* Decorator for tracing async methods
|
|
148
|
-
*/
|
|
149
33
|
export declare function traced(spanName?: string): <T extends (...args: unknown[]) => Promise<unknown>>(target: unknown, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
|
|
150
|
-
export {};
|
|
151
34
|
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,IAAI,EACJ,MAAM,EACN,WAAW,EACX,OAAO,EACP,WAAW,EACX,0BAA0B,GAC3B,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EAKZ,MAAM,mBAAmB,CAAA;AAwC1B;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,WAAW,CAAqE;gBAE5E,MAAM,GAAE,YAAiB;IAwB/B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8EjC,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW;IAMrD,QAAQ,CAAC,CAAC,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EACrC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,CAAC,CAAC;IAeb,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC;IAerF,cAAc,IAAI,WAAW;IAQvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAQhC;AAKD,wBAAgB,SAAS,IAAI,gBAAgB,CAG5C;AAED,wBAAsB,iBAAiB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAKxF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrD;AAED,wBAAgB,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,IACrB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,QAAQ,OAAO,EACf,aAAa,MAAM,EACnB,YAAY,uBAAuB,CAAC,CAAC,CAAC,KACrC,uBAAuB,CAAC,CAAC,CAAC,CAkB9B"}
|
|
@@ -2,50 +2,20 @@
|
|
|
2
2
|
* SMI-739: OpenTelemetry Tracer Setup
|
|
3
3
|
* SMI-755: Graceful fallback when OpenTelemetry unavailable
|
|
4
4
|
*
|
|
5
|
-
* Provides distributed tracing for Skillsmith operations
|
|
6
|
-
* - MCP tool calls
|
|
7
|
-
* - Database queries
|
|
8
|
-
* - Cache operations
|
|
9
|
-
* - External API calls
|
|
5
|
+
* Provides distributed tracing for Skillsmith operations.
|
|
10
6
|
*
|
|
11
|
-
*
|
|
12
|
-
* -
|
|
13
|
-
* - OTEL_SERVICE_NAME: Service name (default: skillsmith)
|
|
14
|
-
* - SKILLSMITH_TELEMETRY_ENABLED: Master switch for all telemetry (default: auto)
|
|
15
|
-
* - SKILLSMITH_TRACING_ENABLED: Enable/disable tracing (default: true if endpoint set)
|
|
16
|
-
*
|
|
17
|
-
* Graceful Fallback:
|
|
18
|
-
* - If OpenTelemetry packages are not installed, uses NoOp implementations
|
|
19
|
-
* - Logs warning on fallback (unless SKILLSMITH_TELEMETRY_ENABLED=false)
|
|
20
|
-
* - All tracing APIs remain functional (just don't record)
|
|
7
|
+
* @see tracer-types.ts for type definitions
|
|
8
|
+
* @see span-utils.ts for span wrapper classes
|
|
21
9
|
*/
|
|
10
|
+
import { NoOpSpanWrapper, ActiveSpanWrapper } from './span-utils.js';
|
|
22
11
|
// Lazy import to avoid loading OTEL if not needed
|
|
23
|
-
// SMI-755: Use 'unknown' types to avoid compile-time dependency on OTEL packages
|
|
24
12
|
let api = null;
|
|
25
13
|
let sdk = null;
|
|
26
14
|
let resources = null;
|
|
27
15
|
let semanticConventions = null;
|
|
28
|
-
function getApi() {
|
|
29
|
-
return api;
|
|
30
|
-
}
|
|
31
|
-
function getSdk() {
|
|
32
|
-
return sdk;
|
|
33
|
-
}
|
|
34
|
-
function getResources() {
|
|
35
|
-
return resources;
|
|
36
|
-
}
|
|
37
|
-
function getSemanticConventions() {
|
|
38
|
-
return semanticConventions;
|
|
39
|
-
}
|
|
40
|
-
/** Whether OpenTelemetry packages are available */
|
|
41
16
|
let otelAvailable = null;
|
|
42
|
-
/**
|
|
43
|
-
* Dynamic import helper that bypasses TypeScript type checking (SMI-755)
|
|
44
|
-
* This allows the code to compile even when @opentelemetry packages aren't installed
|
|
45
|
-
*/
|
|
46
17
|
async function dynamicImport(moduleName) {
|
|
47
18
|
try {
|
|
48
|
-
// Use Function constructor to bypass TypeScript's static analysis
|
|
49
19
|
const importFn = new Function('m', 'return import(m)');
|
|
50
20
|
return await importFn(moduleName);
|
|
51
21
|
}
|
|
@@ -53,9 +23,6 @@ async function dynamicImport(moduleName) {
|
|
|
53
23
|
return null;
|
|
54
24
|
}
|
|
55
25
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Check if OpenTelemetry is available (SMI-755)
|
|
58
|
-
*/
|
|
59
26
|
async function checkOTelAvailability() {
|
|
60
27
|
if (otelAvailable !== null)
|
|
61
28
|
return otelAvailable;
|
|
@@ -63,62 +30,17 @@ async function checkOTelAvailability() {
|
|
|
63
30
|
otelAvailable = result !== null;
|
|
64
31
|
return otelAvailable;
|
|
65
32
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
*/
|
|
69
|
-
class NoOpSpanWrapper {
|
|
70
|
-
setAttributes(_attributes) { }
|
|
71
|
-
setStatus(_code, _message) { }
|
|
72
|
-
recordException(_error) { }
|
|
73
|
-
addEvent(_name, _attributes) { }
|
|
74
|
-
end() { }
|
|
75
|
-
getSpan() {
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
33
|
+
function getApi() {
|
|
34
|
+
return api;
|
|
78
35
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
setAttributes(attributes) {
|
|
88
|
-
// Filter out undefined values
|
|
89
|
-
const filtered = {};
|
|
90
|
-
for (const [key, value] of Object.entries(attributes)) {
|
|
91
|
-
if (value !== undefined) {
|
|
92
|
-
filtered[key] = value;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
this.span.setAttributes(filtered);
|
|
96
|
-
}
|
|
97
|
-
setStatus(code, message) {
|
|
98
|
-
const statusCode = code === 'ok' ? 1 : 2; // SpanStatusCode.OK = 1, ERROR = 2
|
|
99
|
-
this.span.setStatus({ code: statusCode, message });
|
|
100
|
-
}
|
|
101
|
-
recordException(error) {
|
|
102
|
-
this.span.recordException(error);
|
|
103
|
-
}
|
|
104
|
-
addEvent(name, attributes) {
|
|
105
|
-
// Filter out undefined values
|
|
106
|
-
const filtered = {};
|
|
107
|
-
if (attributes) {
|
|
108
|
-
for (const [key, value] of Object.entries(attributes)) {
|
|
109
|
-
if (value !== undefined) {
|
|
110
|
-
filtered[key] = value;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
this.span.addEvent(name, filtered);
|
|
115
|
-
}
|
|
116
|
-
end() {
|
|
117
|
-
this.span.end();
|
|
118
|
-
}
|
|
119
|
-
getSpan() {
|
|
120
|
-
return this.span;
|
|
121
|
-
}
|
|
36
|
+
function getSdk() {
|
|
37
|
+
return sdk;
|
|
38
|
+
}
|
|
39
|
+
function getResources() {
|
|
40
|
+
return resources;
|
|
41
|
+
}
|
|
42
|
+
function getSemanticConventions() {
|
|
43
|
+
return semanticConventions;
|
|
122
44
|
}
|
|
123
45
|
/**
|
|
124
46
|
* Skillsmith Tracer - Wrapper for OpenTelemetry tracing
|
|
@@ -137,13 +59,11 @@ export class SkillsmithTracer {
|
|
|
137
59
|
consoleExport: config.consoleExport ?? false,
|
|
138
60
|
sampleRate: config.sampleRate ?? 1.0,
|
|
139
61
|
};
|
|
140
|
-
// SMI-755: Check master telemetry switch first
|
|
141
62
|
const telemetryDisabled = process.env.SKILLSMITH_TELEMETRY_ENABLED === 'false';
|
|
142
63
|
if (telemetryDisabled) {
|
|
143
64
|
this.enabled = false;
|
|
144
65
|
return;
|
|
145
66
|
}
|
|
146
|
-
// Check if tracing should be enabled
|
|
147
67
|
const explicitlyEnabled = process.env.SKILLSMITH_TRACING_ENABLED === 'true';
|
|
148
68
|
const explicitlyDisabled = process.env.SKILLSMITH_TRACING_ENABLED === 'false';
|
|
149
69
|
if (explicitlyDisabled) {
|
|
@@ -153,10 +73,6 @@ export class SkillsmithTracer {
|
|
|
153
73
|
this.enabled = true;
|
|
154
74
|
}
|
|
155
75
|
}
|
|
156
|
-
/**
|
|
157
|
-
* Initialize the tracer
|
|
158
|
-
* Must be called before creating spans
|
|
159
|
-
*/
|
|
160
76
|
async initialize() {
|
|
161
77
|
if (this.initialized)
|
|
162
78
|
return;
|
|
@@ -164,30 +80,24 @@ export class SkillsmithTracer {
|
|
|
164
80
|
this.initialized = true;
|
|
165
81
|
return;
|
|
166
82
|
}
|
|
167
|
-
// SMI-755: Check if OpenTelemetry is available before attempting to load
|
|
168
83
|
const isAvailable = await checkOTelAvailability();
|
|
169
84
|
if (!isAvailable) {
|
|
170
|
-
console.warn('[Skillsmith Telemetry] OpenTelemetry packages not installed. '
|
|
171
|
-
'Tracing disabled. Install @opentelemetry/api and related packages to enable.');
|
|
85
|
+
console.warn('[Skillsmith Telemetry] OpenTelemetry packages not installed. Tracing disabled.');
|
|
172
86
|
this.enabled = false;
|
|
173
87
|
this.initialized = true;
|
|
174
88
|
return;
|
|
175
89
|
}
|
|
176
90
|
try {
|
|
177
|
-
// SMI-755: Lazy load OTEL modules with error handling
|
|
178
|
-
// Use dynamicImport to bypass TypeScript type checking
|
|
179
91
|
api = await dynamicImport('@opentelemetry/api');
|
|
180
92
|
sdk = await dynamicImport('@opentelemetry/sdk-node');
|
|
181
93
|
resources = await dynamicImport('@opentelemetry/resources');
|
|
182
94
|
semanticConventions = await dynamicImport('@opentelemetry/semantic-conventions');
|
|
183
|
-
// If any core module failed to load, disable tracing
|
|
184
95
|
if (!api || !sdk || !resources || !semanticConventions) {
|
|
185
96
|
console.warn('[Skillsmith Telemetry] Some OpenTelemetry packages missing. Tracing disabled.');
|
|
186
97
|
this.enabled = false;
|
|
187
98
|
this.initialized = true;
|
|
188
99
|
return;
|
|
189
100
|
}
|
|
190
|
-
// Get typed accessors
|
|
191
101
|
const otelApi = getApi();
|
|
192
102
|
const otelSdk = getSdk();
|
|
193
103
|
const otelResources = getResources();
|
|
@@ -197,22 +107,17 @@ export class SkillsmithTracer {
|
|
|
197
107
|
this.initialized = true;
|
|
198
108
|
return;
|
|
199
109
|
}
|
|
200
|
-
// Build SDK configuration
|
|
201
110
|
const sdkConfig = {};
|
|
202
|
-
|
|
203
|
-
const Resource = otelResources.Resource;
|
|
204
|
-
sdkConfig.resource = new Resource({
|
|
111
|
+
sdkConfig.resource = otelResources.resourceFromAttributes({
|
|
205
112
|
[otelSemConv['ATTR_SERVICE_NAME'] ?? 'service.name']: this.config.serviceName,
|
|
206
113
|
[otelSemConv['ATTR_SERVICE_VERSION'] ?? 'service.version']: '0.1.0',
|
|
207
114
|
});
|
|
208
|
-
// Add auto-instrumentation if enabled
|
|
209
115
|
if (this.config.autoInstrument) {
|
|
210
116
|
try {
|
|
211
117
|
const autoInst = (await dynamicImport('@opentelemetry/auto-instrumentations-node'));
|
|
212
118
|
if (autoInst?.getNodeAutoInstrumentations) {
|
|
213
119
|
sdkConfig.instrumentations = [
|
|
214
120
|
autoInst.getNodeAutoInstrumentations({
|
|
215
|
-
// Customize instrumentations
|
|
216
121
|
'@opentelemetry/instrumentation-fs': { enabled: false },
|
|
217
122
|
'@opentelemetry/instrumentation-dns': { enabled: false },
|
|
218
123
|
'@opentelemetry/instrumentation-net': { enabled: false },
|
|
@@ -221,52 +126,30 @@ export class SkillsmithTracer {
|
|
|
221
126
|
}
|
|
222
127
|
}
|
|
223
128
|
catch {
|
|
224
|
-
// Auto-instrumentation optional
|
|
129
|
+
// Auto-instrumentation optional
|
|
225
130
|
}
|
|
226
131
|
}
|
|
227
|
-
// Initialize SDK
|
|
228
132
|
const NodeSDK = otelSdk.NodeSDK;
|
|
229
133
|
this.sdkInstance = new NodeSDK(sdkConfig);
|
|
230
134
|
await this.sdkInstance.start();
|
|
231
|
-
// Get tracer
|
|
232
135
|
this.tracer = otelApi.trace.getTracer(this.config.serviceName, '0.1.0');
|
|
233
136
|
this.initialized = true;
|
|
234
137
|
}
|
|
235
138
|
catch (error) {
|
|
236
|
-
// SMI-755: Graceful fallback - disable tracing on error
|
|
237
139
|
console.warn('[Skillsmith Telemetry] Failed to initialize OpenTelemetry tracing:', error);
|
|
238
140
|
this.enabled = false;
|
|
239
141
|
this.initialized = true;
|
|
240
142
|
}
|
|
241
143
|
}
|
|
242
|
-
/**
|
|
243
|
-
* Check if tracing is enabled
|
|
244
|
-
*/
|
|
245
144
|
isEnabled() {
|
|
246
145
|
return this.enabled && this.initialized;
|
|
247
146
|
}
|
|
248
|
-
/**
|
|
249
|
-
* Start a new span
|
|
250
|
-
*
|
|
251
|
-
* @param name - Span name (e.g., 'mcp.tool.search', 'db.query')
|
|
252
|
-
* @param options - Span options
|
|
253
|
-
* @returns SpanWrapper for manipulating the span
|
|
254
|
-
*/
|
|
255
147
|
startSpan(name, options) {
|
|
256
|
-
if (!this.isEnabled() || !this.tracer)
|
|
148
|
+
if (!this.isEnabled() || !this.tracer)
|
|
257
149
|
return new NoOpSpanWrapper();
|
|
258
|
-
}
|
|
259
150
|
const span = this.tracer.startSpan(name, options);
|
|
260
151
|
return new ActiveSpanWrapper(span);
|
|
261
152
|
}
|
|
262
|
-
/**
|
|
263
|
-
* Execute a function within a span context
|
|
264
|
-
*
|
|
265
|
-
* @param name - Span name
|
|
266
|
-
* @param fn - Function to execute
|
|
267
|
-
* @param options - Span options
|
|
268
|
-
* @returns Result of the function
|
|
269
|
-
*/
|
|
270
153
|
async withSpan(name, fn, options) {
|
|
271
154
|
const spanWrapper = this.startSpan(name, options);
|
|
272
155
|
try {
|
|
@@ -275,9 +158,8 @@ export class SkillsmithTracer {
|
|
|
275
158
|
return result;
|
|
276
159
|
}
|
|
277
160
|
catch (error) {
|
|
278
|
-
if (error instanceof Error)
|
|
161
|
+
if (error instanceof Error)
|
|
279
162
|
spanWrapper.recordException(error);
|
|
280
|
-
}
|
|
281
163
|
spanWrapper.setStatus('error', error instanceof Error ? error.message : 'Unknown error');
|
|
282
164
|
throw error;
|
|
283
165
|
}
|
|
@@ -285,9 +167,6 @@ export class SkillsmithTracer {
|
|
|
285
167
|
spanWrapper.end();
|
|
286
168
|
}
|
|
287
169
|
}
|
|
288
|
-
/**
|
|
289
|
-
* Execute a synchronous function within a span context
|
|
290
|
-
*/
|
|
291
170
|
withSpanSync(name, fn, options) {
|
|
292
171
|
const spanWrapper = this.startSpan(name, options);
|
|
293
172
|
try {
|
|
@@ -296,9 +175,8 @@ export class SkillsmithTracer {
|
|
|
296
175
|
return result;
|
|
297
176
|
}
|
|
298
177
|
catch (error) {
|
|
299
|
-
if (error instanceof Error)
|
|
178
|
+
if (error instanceof Error)
|
|
300
179
|
spanWrapper.recordException(error);
|
|
301
|
-
}
|
|
302
180
|
spanWrapper.setStatus('error', error instanceof Error ? error.message : 'Unknown error');
|
|
303
181
|
throw error;
|
|
304
182
|
}
|
|
@@ -306,23 +184,15 @@ export class SkillsmithTracer {
|
|
|
306
184
|
spanWrapper.end();
|
|
307
185
|
}
|
|
308
186
|
}
|
|
309
|
-
/**
|
|
310
|
-
* Get the current active span (if any)
|
|
311
|
-
*/
|
|
312
187
|
getCurrentSpan() {
|
|
313
188
|
const otelApi = getApi();
|
|
314
|
-
if (!otelApi)
|
|
189
|
+
if (!otelApi)
|
|
315
190
|
return new NoOpSpanWrapper();
|
|
316
|
-
}
|
|
317
191
|
const span = otelApi.trace.getActiveSpan();
|
|
318
|
-
if (!span)
|
|
192
|
+
if (!span)
|
|
319
193
|
return new NoOpSpanWrapper();
|
|
320
|
-
}
|
|
321
194
|
return new ActiveSpanWrapper(span);
|
|
322
195
|
}
|
|
323
|
-
/**
|
|
324
|
-
* Shutdown the tracer and flush pending spans
|
|
325
|
-
*/
|
|
326
196
|
async shutdown() {
|
|
327
197
|
if (this.sdkInstance) {
|
|
328
198
|
await this.sdkInstance.shutdown();
|
|
@@ -334,40 +204,24 @@ export class SkillsmithTracer {
|
|
|
334
204
|
}
|
|
335
205
|
// Default tracer instance
|
|
336
206
|
let defaultTracer = null;
|
|
337
|
-
/**
|
|
338
|
-
* Get the default tracer instance
|
|
339
|
-
*/
|
|
340
207
|
export function getTracer() {
|
|
341
|
-
if (!defaultTracer)
|
|
208
|
+
if (!defaultTracer)
|
|
342
209
|
defaultTracer = new SkillsmithTracer();
|
|
343
|
-
}
|
|
344
210
|
return defaultTracer;
|
|
345
211
|
}
|
|
346
|
-
/**
|
|
347
|
-
* Initialize the default tracer
|
|
348
|
-
* Should be called at application startup
|
|
349
|
-
*/
|
|
350
212
|
export async function initializeTracing(config) {
|
|
351
|
-
if (defaultTracer)
|
|
213
|
+
if (defaultTracer)
|
|
352
214
|
await defaultTracer.shutdown();
|
|
353
|
-
}
|
|
354
215
|
defaultTracer = new SkillsmithTracer(config);
|
|
355
216
|
await defaultTracer.initialize();
|
|
356
217
|
return defaultTracer;
|
|
357
218
|
}
|
|
358
|
-
/**
|
|
359
|
-
* Shutdown the default tracer
|
|
360
|
-
* Should be called at application shutdown
|
|
361
|
-
*/
|
|
362
219
|
export async function shutdownTracing() {
|
|
363
220
|
if (defaultTracer) {
|
|
364
221
|
await defaultTracer.shutdown();
|
|
365
222
|
defaultTracer = null;
|
|
366
223
|
}
|
|
367
224
|
}
|
|
368
|
-
/**
|
|
369
|
-
* Decorator for tracing async methods
|
|
370
|
-
*/
|
|
371
225
|
export function traced(spanName) {
|
|
372
226
|
return function (target, propertyKey, descriptor) {
|
|
373
227
|
const originalMethod = descriptor.value;
|