@skillsmith/core 0.4.1 → 0.4.3
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/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/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/api/client.d.ts +5 -121
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +24 -136
- 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/utils.d.ts +46 -0
- package/dist/src/api/utils.d.ts.map +1 -0
- package/dist/src/api/utils.js +96 -0
- package/dist/src/api/utils.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 +3 -62
- package/dist/src/billing/StripeClient.d.ts.map +1 -1
- package/dist/src/billing/StripeClient.js +10 -68
- 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 -59
- package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.js +14 -304
- 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 +7 -104
- package/dist/src/db/migration.d.ts.map +1 -1
- package/dist/src/db/migration.js +15 -65
- package/dist/src/db/migration.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/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/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 +11 -55
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +24 -59
- package/dist/src/index.js.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/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 -203
- package/dist/src/scripts/github-import/github-client.js.map +1 -1
- 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 +1 -0
- package/dist/src/scripts/review-lenny-skills.d.ts.map +1 -1
- package/dist/src/scripts/review-lenny-skills.js +5 -310
- package/dist/src/scripts/review-lenny-skills.js.map +1 -1
- 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 +2 -11
- package/dist/src/security/AuditLogger.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/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 +2 -31
- 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 +14 -132
- 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 +6 -86
- package/dist/src/services/SkillAnalyzer.d.ts.map +1 -1
- 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 +16 -167
- package/dist/src/services/SkillAnalyzer.js.map +1 -1
- 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 +4 -70
- package/dist/src/services/SkillDecomposer.d.ts.map +1 -1
- 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 +6 -249
- package/dist/src/services/SkillDecomposer.js.map +1 -1
- 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 +12 -3
- package/dist/src/services/SubagentGenerator.d.ts.map +1 -1
- package/dist/src/services/SubagentGenerator.js +43 -10
- package/dist/src/services/SubagentGenerator.js.map +1 -1
- 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 +8 -4
- package/dist/src/services/TransformationService.d.ts.map +1 -1
- package/dist/src/services/TransformationService.js +58 -34
- package/dist/src/services/TransformationService.js.map +1 -1
- 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.js +12 -10
- package/dist/src/services/__tests__/TransformationService.test.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 +23 -168
- package/dist/src/telemetry/tracer.js.map +1 -1
- 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/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 +4 -1
- package/dist/src/types/skill.d.ts.map +1 -1
- package/dist/src/types/skill.js.map +1 -1
- package/dist/src/types.d.ts +6 -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/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/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/api/utils.test.d.ts +7 -0
- package/dist/tests/api/utils.test.d.ts.map +1 -0
- package/dist/tests/api/utils.test.js +121 -0
- package/dist/tests/api/utils.test.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/package.json +4 -4
|
@@ -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,21 +107,17 @@ export class SkillsmithTracer {
|
|
|
197
107
|
this.initialized = true;
|
|
198
108
|
return;
|
|
199
109
|
}
|
|
200
|
-
// Build SDK configuration
|
|
201
110
|
const sdkConfig = {};
|
|
202
|
-
// Create resource with service info (v2.x uses resourceFromAttributes function)
|
|
203
111
|
sdkConfig.resource = otelResources.resourceFromAttributes({
|
|
204
112
|
[otelSemConv['ATTR_SERVICE_NAME'] ?? 'service.name']: this.config.serviceName,
|
|
205
113
|
[otelSemConv['ATTR_SERVICE_VERSION'] ?? 'service.version']: '0.1.0',
|
|
206
114
|
});
|
|
207
|
-
// Add auto-instrumentation if enabled
|
|
208
115
|
if (this.config.autoInstrument) {
|
|
209
116
|
try {
|
|
210
117
|
const autoInst = (await dynamicImport('@opentelemetry/auto-instrumentations-node'));
|
|
211
118
|
if (autoInst?.getNodeAutoInstrumentations) {
|
|
212
119
|
sdkConfig.instrumentations = [
|
|
213
120
|
autoInst.getNodeAutoInstrumentations({
|
|
214
|
-
// Customize instrumentations
|
|
215
121
|
'@opentelemetry/instrumentation-fs': { enabled: false },
|
|
216
122
|
'@opentelemetry/instrumentation-dns': { enabled: false },
|
|
217
123
|
'@opentelemetry/instrumentation-net': { enabled: false },
|
|
@@ -220,52 +126,30 @@ export class SkillsmithTracer {
|
|
|
220
126
|
}
|
|
221
127
|
}
|
|
222
128
|
catch {
|
|
223
|
-
// Auto-instrumentation optional
|
|
129
|
+
// Auto-instrumentation optional
|
|
224
130
|
}
|
|
225
131
|
}
|
|
226
|
-
// Initialize SDK
|
|
227
132
|
const NodeSDK = otelSdk.NodeSDK;
|
|
228
133
|
this.sdkInstance = new NodeSDK(sdkConfig);
|
|
229
134
|
await this.sdkInstance.start();
|
|
230
|
-
// Get tracer
|
|
231
135
|
this.tracer = otelApi.trace.getTracer(this.config.serviceName, '0.1.0');
|
|
232
136
|
this.initialized = true;
|
|
233
137
|
}
|
|
234
138
|
catch (error) {
|
|
235
|
-
// SMI-755: Graceful fallback - disable tracing on error
|
|
236
139
|
console.warn('[Skillsmith Telemetry] Failed to initialize OpenTelemetry tracing:', error);
|
|
237
140
|
this.enabled = false;
|
|
238
141
|
this.initialized = true;
|
|
239
142
|
}
|
|
240
143
|
}
|
|
241
|
-
/**
|
|
242
|
-
* Check if tracing is enabled
|
|
243
|
-
*/
|
|
244
144
|
isEnabled() {
|
|
245
145
|
return this.enabled && this.initialized;
|
|
246
146
|
}
|
|
247
|
-
/**
|
|
248
|
-
* Start a new span
|
|
249
|
-
*
|
|
250
|
-
* @param name - Span name (e.g., 'mcp.tool.search', 'db.query')
|
|
251
|
-
* @param options - Span options
|
|
252
|
-
* @returns SpanWrapper for manipulating the span
|
|
253
|
-
*/
|
|
254
147
|
startSpan(name, options) {
|
|
255
|
-
if (!this.isEnabled() || !this.tracer)
|
|
148
|
+
if (!this.isEnabled() || !this.tracer)
|
|
256
149
|
return new NoOpSpanWrapper();
|
|
257
|
-
}
|
|
258
150
|
const span = this.tracer.startSpan(name, options);
|
|
259
151
|
return new ActiveSpanWrapper(span);
|
|
260
152
|
}
|
|
261
|
-
/**
|
|
262
|
-
* Execute a function within a span context
|
|
263
|
-
*
|
|
264
|
-
* @param name - Span name
|
|
265
|
-
* @param fn - Function to execute
|
|
266
|
-
* @param options - Span options
|
|
267
|
-
* @returns Result of the function
|
|
268
|
-
*/
|
|
269
153
|
async withSpan(name, fn, options) {
|
|
270
154
|
const spanWrapper = this.startSpan(name, options);
|
|
271
155
|
try {
|
|
@@ -274,9 +158,8 @@ export class SkillsmithTracer {
|
|
|
274
158
|
return result;
|
|
275
159
|
}
|
|
276
160
|
catch (error) {
|
|
277
|
-
if (error instanceof Error)
|
|
161
|
+
if (error instanceof Error)
|
|
278
162
|
spanWrapper.recordException(error);
|
|
279
|
-
}
|
|
280
163
|
spanWrapper.setStatus('error', error instanceof Error ? error.message : 'Unknown error');
|
|
281
164
|
throw error;
|
|
282
165
|
}
|
|
@@ -284,9 +167,6 @@ export class SkillsmithTracer {
|
|
|
284
167
|
spanWrapper.end();
|
|
285
168
|
}
|
|
286
169
|
}
|
|
287
|
-
/**
|
|
288
|
-
* Execute a synchronous function within a span context
|
|
289
|
-
*/
|
|
290
170
|
withSpanSync(name, fn, options) {
|
|
291
171
|
const spanWrapper = this.startSpan(name, options);
|
|
292
172
|
try {
|
|
@@ -295,9 +175,8 @@ export class SkillsmithTracer {
|
|
|
295
175
|
return result;
|
|
296
176
|
}
|
|
297
177
|
catch (error) {
|
|
298
|
-
if (error instanceof Error)
|
|
178
|
+
if (error instanceof Error)
|
|
299
179
|
spanWrapper.recordException(error);
|
|
300
|
-
}
|
|
301
180
|
spanWrapper.setStatus('error', error instanceof Error ? error.message : 'Unknown error');
|
|
302
181
|
throw error;
|
|
303
182
|
}
|
|
@@ -305,23 +184,15 @@ export class SkillsmithTracer {
|
|
|
305
184
|
spanWrapper.end();
|
|
306
185
|
}
|
|
307
186
|
}
|
|
308
|
-
/**
|
|
309
|
-
* Get the current active span (if any)
|
|
310
|
-
*/
|
|
311
187
|
getCurrentSpan() {
|
|
312
188
|
const otelApi = getApi();
|
|
313
|
-
if (!otelApi)
|
|
189
|
+
if (!otelApi)
|
|
314
190
|
return new NoOpSpanWrapper();
|
|
315
|
-
}
|
|
316
191
|
const span = otelApi.trace.getActiveSpan();
|
|
317
|
-
if (!span)
|
|
192
|
+
if (!span)
|
|
318
193
|
return new NoOpSpanWrapper();
|
|
319
|
-
}
|
|
320
194
|
return new ActiveSpanWrapper(span);
|
|
321
195
|
}
|
|
322
|
-
/**
|
|
323
|
-
* Shutdown the tracer and flush pending spans
|
|
324
|
-
*/
|
|
325
196
|
async shutdown() {
|
|
326
197
|
if (this.sdkInstance) {
|
|
327
198
|
await this.sdkInstance.shutdown();
|
|
@@ -333,40 +204,24 @@ export class SkillsmithTracer {
|
|
|
333
204
|
}
|
|
334
205
|
// Default tracer instance
|
|
335
206
|
let defaultTracer = null;
|
|
336
|
-
/**
|
|
337
|
-
* Get the default tracer instance
|
|
338
|
-
*/
|
|
339
207
|
export function getTracer() {
|
|
340
|
-
if (!defaultTracer)
|
|
208
|
+
if (!defaultTracer)
|
|
341
209
|
defaultTracer = new SkillsmithTracer();
|
|
342
|
-
}
|
|
343
210
|
return defaultTracer;
|
|
344
211
|
}
|
|
345
|
-
/**
|
|
346
|
-
* Initialize the default tracer
|
|
347
|
-
* Should be called at application startup
|
|
348
|
-
*/
|
|
349
212
|
export async function initializeTracing(config) {
|
|
350
|
-
if (defaultTracer)
|
|
213
|
+
if (defaultTracer)
|
|
351
214
|
await defaultTracer.shutdown();
|
|
352
|
-
}
|
|
353
215
|
defaultTracer = new SkillsmithTracer(config);
|
|
354
216
|
await defaultTracer.initialize();
|
|
355
217
|
return defaultTracer;
|
|
356
218
|
}
|
|
357
|
-
/**
|
|
358
|
-
* Shutdown the default tracer
|
|
359
|
-
* Should be called at application shutdown
|
|
360
|
-
*/
|
|
361
219
|
export async function shutdownTracing() {
|
|
362
220
|
if (defaultTracer) {
|
|
363
221
|
await defaultTracer.shutdown();
|
|
364
222
|
defaultTracer = null;
|
|
365
223
|
}
|
|
366
224
|
}
|
|
367
|
-
/**
|
|
368
|
-
* Decorator for tracing async methods
|
|
369
|
-
*/
|
|
370
225
|
export function traced(spanName) {
|
|
371
226
|
return function (target, propertyKey, descriptor) {
|
|
372
227
|
const originalMethod = descriptor.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/telemetry/tracer.ts"],"names":[],"mappings":"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"}
|