@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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1788: SkillAnalyzer Helpers
|
|
3
|
+
*
|
|
4
|
+
* Tool detection patterns, thresholds, and utility functions
|
|
5
|
+
* for skill analysis and optimization.
|
|
6
|
+
*/
|
|
7
|
+
import type { ConfidenceLevel } from './SkillAnalyzer.types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Tool detection patterns for analyzing skill content
|
|
10
|
+
*/
|
|
11
|
+
export declare const TOOL_PATTERNS: Record<string, {
|
|
12
|
+
patterns: string[];
|
|
13
|
+
weight: number;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Thresholds for optimization decisions
|
|
17
|
+
*/
|
|
18
|
+
export declare const THRESHOLDS: {
|
|
19
|
+
/** Maximum lines before recommending decomposition */
|
|
20
|
+
readonly maxLinesBeforeDecompose: 500;
|
|
21
|
+
/** Minimum lines for an extractable section */
|
|
22
|
+
readonly minSectionLines: 50;
|
|
23
|
+
/** Heavy tool usage count that suggests subagent */
|
|
24
|
+
readonly heavyToolUsageCount: 5;
|
|
25
|
+
/** Sequential Task() calls that should be parallelized */
|
|
26
|
+
readonly sequentialTaskThreshold: 2;
|
|
27
|
+
/** Minimum optimization score to recommend transformation */
|
|
28
|
+
readonly minTransformScore: 30;
|
|
29
|
+
/** Large examples section threshold */
|
|
30
|
+
readonly largeExamplesThreshold: 200;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Escape special regex characters in a string
|
|
34
|
+
* @param str - String to escape
|
|
35
|
+
* @returns Escaped string safe for use in RegExp
|
|
36
|
+
*/
|
|
37
|
+
export declare function escapeRegex(str: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Determine confidence level based on match count
|
|
40
|
+
* @param matchCount - Number of detected tools
|
|
41
|
+
* @returns Confidence level
|
|
42
|
+
*/
|
|
43
|
+
export declare function getConfidenceLevel(matchCount: number): ConfidenceLevel;
|
|
44
|
+
/**
|
|
45
|
+
* Estimate examples lines by looking for code blocks
|
|
46
|
+
* @param content - Full skill content
|
|
47
|
+
* @returns Estimated number of lines in code blocks
|
|
48
|
+
*/
|
|
49
|
+
export declare function estimateExamplesLines(content: string): number;
|
|
50
|
+
/**
|
|
51
|
+
* Detect tools in content
|
|
52
|
+
* @param content - Skill content to analyze
|
|
53
|
+
* @returns Object with detected tools and total weight
|
|
54
|
+
*/
|
|
55
|
+
export declare function detectTools(content: string): {
|
|
56
|
+
tools: string[];
|
|
57
|
+
totalWeight: number;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Count specific command patterns in content
|
|
61
|
+
* @param content - Skill content to analyze
|
|
62
|
+
* @returns Counts for bash, read, and write commands
|
|
63
|
+
*/
|
|
64
|
+
export declare function countCommandPatterns(content: string): {
|
|
65
|
+
bashCommandCount: number;
|
|
66
|
+
fileReadCount: number;
|
|
67
|
+
fileWriteCount: number;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Determine if tool usage suggests a subagent would be beneficial
|
|
71
|
+
* @param bashCount - Number of bash commands
|
|
72
|
+
* @param fileOpCount - Total file operations (read + write)
|
|
73
|
+
* @param totalWeight - Total tool weight
|
|
74
|
+
* @returns Whether subagent is suggested
|
|
75
|
+
*/
|
|
76
|
+
export declare function shouldSuggestSubagent(bashCount: number, fileOpCount: number, totalWeight: number): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Count sequential Task() calls in content
|
|
79
|
+
* @param content - Skill content to analyze
|
|
80
|
+
* @returns Count of sequential Task calls
|
|
81
|
+
*/
|
|
82
|
+
export declare function countSequentialTaskCalls(content: string): number;
|
|
83
|
+
/**
|
|
84
|
+
* Calculate batch savings percentage
|
|
85
|
+
* @param sequentialCalls - Number of sequential Task calls
|
|
86
|
+
* @returns Estimated savings percentage
|
|
87
|
+
*/
|
|
88
|
+
export declare function calculateBatchSavings(sequentialCalls: number): number;
|
|
89
|
+
/**
|
|
90
|
+
* Determine extraction reason for a section
|
|
91
|
+
* @param sectionName - Name of the section
|
|
92
|
+
* @param lineCount - Number of lines in section
|
|
93
|
+
* @returns Human-readable extraction reason
|
|
94
|
+
*/
|
|
95
|
+
export declare function getExtractionReason(sectionName: string, lineCount: number): string;
|
|
96
|
+
/**
|
|
97
|
+
* Calculate extraction priority based on size ratio
|
|
98
|
+
* @param lineCount - Section line count
|
|
99
|
+
* @param totalLines - Total document lines
|
|
100
|
+
* @returns Priority (1 = highest, 3 = lowest)
|
|
101
|
+
*/
|
|
102
|
+
export declare function calculateExtractionPriority(lineCount: number, totalLines: number): number;
|
|
103
|
+
//# sourceMappingURL=SkillAnalyzer.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillAnalyzer.helpers.d.ts","sourceRoot":"","sources":["../../../src/services/SkillAnalyzer.helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAyDhF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB,sDAAsD;;IAGtD,+CAA+C;;IAG/C,oDAAoD;;IAGpD,0DAA0D;;IAG1D,6DAA6D;;IAG7D,uCAAuC;;CAE/B,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAItE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAS7D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAmBrF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB,CAMA;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsBhE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAgBlF;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAMzF"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1788: SkillAnalyzer Helpers
|
|
3
|
+
*
|
|
4
|
+
* Tool detection patterns, thresholds, and utility functions
|
|
5
|
+
* for skill analysis and optimization.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Tool detection patterns for analyzing skill content
|
|
9
|
+
*/
|
|
10
|
+
export const TOOL_PATTERNS = {
|
|
11
|
+
Read: {
|
|
12
|
+
patterns: ['read file', 'read the file', 'examine', 'view file', 'cat ', 'Read tool'],
|
|
13
|
+
weight: 1,
|
|
14
|
+
},
|
|
15
|
+
Write: {
|
|
16
|
+
patterns: [
|
|
17
|
+
'write file',
|
|
18
|
+
'create file',
|
|
19
|
+
'save to',
|
|
20
|
+
'output to file',
|
|
21
|
+
'Write tool',
|
|
22
|
+
'write the file',
|
|
23
|
+
],
|
|
24
|
+
weight: 2,
|
|
25
|
+
},
|
|
26
|
+
Edit: {
|
|
27
|
+
patterns: ['edit file', 'modify file', 'update file', 'patch', 'Edit tool', 'replace in'],
|
|
28
|
+
weight: 2,
|
|
29
|
+
},
|
|
30
|
+
Bash: {
|
|
31
|
+
patterns: [
|
|
32
|
+
'bash',
|
|
33
|
+
'npm ',
|
|
34
|
+
'npx ',
|
|
35
|
+
'git ',
|
|
36
|
+
'docker',
|
|
37
|
+
'yarn ',
|
|
38
|
+
'pnpm ',
|
|
39
|
+
'execute command',
|
|
40
|
+
'run command',
|
|
41
|
+
'terminal',
|
|
42
|
+
'shell',
|
|
43
|
+
'Bash tool',
|
|
44
|
+
],
|
|
45
|
+
weight: 3,
|
|
46
|
+
},
|
|
47
|
+
Grep: {
|
|
48
|
+
patterns: ['grep', 'search for', 'find text', 'pattern match', 'Grep tool'],
|
|
49
|
+
weight: 1,
|
|
50
|
+
},
|
|
51
|
+
Glob: {
|
|
52
|
+
patterns: ['glob', 'find file', 'file pattern', 'list files', 'Glob tool'],
|
|
53
|
+
weight: 1,
|
|
54
|
+
},
|
|
55
|
+
WebFetch: {
|
|
56
|
+
patterns: ['fetch', 'http', 'api call', 'url', 'WebFetch', 'download', 'request'],
|
|
57
|
+
weight: 2,
|
|
58
|
+
},
|
|
59
|
+
WebSearch: {
|
|
60
|
+
patterns: ['web search', 'search online', 'lookup online', 'WebSearch'],
|
|
61
|
+
weight: 2,
|
|
62
|
+
},
|
|
63
|
+
Task: {
|
|
64
|
+
patterns: ['Task(', 'Task tool', 'spawn agent', 'delegate to', 'subagent'],
|
|
65
|
+
weight: 3,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Thresholds for optimization decisions
|
|
70
|
+
*/
|
|
71
|
+
export const THRESHOLDS = {
|
|
72
|
+
/** Maximum lines before recommending decomposition */
|
|
73
|
+
maxLinesBeforeDecompose: 500,
|
|
74
|
+
/** Minimum lines for an extractable section */
|
|
75
|
+
minSectionLines: 50,
|
|
76
|
+
/** Heavy tool usage count that suggests subagent */
|
|
77
|
+
heavyToolUsageCount: 5,
|
|
78
|
+
/** Sequential Task() calls that should be parallelized */
|
|
79
|
+
sequentialTaskThreshold: 2,
|
|
80
|
+
/** Minimum optimization score to recommend transformation */
|
|
81
|
+
minTransformScore: 30,
|
|
82
|
+
/** Large examples section threshold */
|
|
83
|
+
largeExamplesThreshold: 200,
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Escape special regex characters in a string
|
|
87
|
+
* @param str - String to escape
|
|
88
|
+
* @returns Escaped string safe for use in RegExp
|
|
89
|
+
*/
|
|
90
|
+
export function escapeRegex(str) {
|
|
91
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Determine confidence level based on match count
|
|
95
|
+
* @param matchCount - Number of detected tools
|
|
96
|
+
* @returns Confidence level
|
|
97
|
+
*/
|
|
98
|
+
export function getConfidenceLevel(matchCount) {
|
|
99
|
+
if (matchCount >= 4)
|
|
100
|
+
return 'high';
|
|
101
|
+
if (matchCount >= 2)
|
|
102
|
+
return 'medium';
|
|
103
|
+
return 'low';
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Estimate examples lines by looking for code blocks
|
|
107
|
+
* @param content - Full skill content
|
|
108
|
+
* @returns Estimated number of lines in code blocks
|
|
109
|
+
*/
|
|
110
|
+
export function estimateExamplesLines(content) {
|
|
111
|
+
const codeBlockMatches = content.match(/```[\s\S]*?```/g) || [];
|
|
112
|
+
let totalLines = 0;
|
|
113
|
+
for (const block of codeBlockMatches) {
|
|
114
|
+
totalLines += block.split('\n').length;
|
|
115
|
+
}
|
|
116
|
+
return totalLines;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Detect tools in content
|
|
120
|
+
* @param content - Skill content to analyze
|
|
121
|
+
* @returns Object with detected tools and total weight
|
|
122
|
+
*/
|
|
123
|
+
export function detectTools(content) {
|
|
124
|
+
const detectedTools = [];
|
|
125
|
+
let totalWeight = 0;
|
|
126
|
+
for (const [tool, config] of Object.entries(TOOL_PATTERNS)) {
|
|
127
|
+
for (const pattern of config.patterns) {
|
|
128
|
+
// Use word-boundary regex to avoid false positives
|
|
129
|
+
const regex = new RegExp(`\\b${escapeRegex(pattern)}\\b`, 'i');
|
|
130
|
+
if (regex.test(content)) {
|
|
131
|
+
if (!detectedTools.includes(tool)) {
|
|
132
|
+
detectedTools.push(tool);
|
|
133
|
+
totalWeight += config.weight;
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return { tools: detectedTools, totalWeight };
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Count specific command patterns in content
|
|
143
|
+
* @param content - Skill content to analyze
|
|
144
|
+
* @returns Counts for bash, read, and write commands
|
|
145
|
+
*/
|
|
146
|
+
export function countCommandPatterns(content) {
|
|
147
|
+
const bashCommandCount = (content.match(/\b(npm|npx|git|docker|yarn|pnpm)\s/gi) || []).length;
|
|
148
|
+
const fileReadCount = (content.match(/\b(read|cat|head|tail|grep|find)\s/gi) || []).length;
|
|
149
|
+
const fileWriteCount = (content.match(/\b(write|edit|modify|create)\s+file/gi) || []).length;
|
|
150
|
+
return { bashCommandCount, fileReadCount, fileWriteCount };
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Determine if tool usage suggests a subagent would be beneficial
|
|
154
|
+
* @param bashCount - Number of bash commands
|
|
155
|
+
* @param fileOpCount - Total file operations (read + write)
|
|
156
|
+
* @param totalWeight - Total tool weight
|
|
157
|
+
* @returns Whether subagent is suggested
|
|
158
|
+
*/
|
|
159
|
+
export function shouldSuggestSubagent(bashCount, fileOpCount, totalWeight) {
|
|
160
|
+
return (bashCount >= THRESHOLDS.heavyToolUsageCount ||
|
|
161
|
+
fileOpCount >= THRESHOLDS.heavyToolUsageCount ||
|
|
162
|
+
totalWeight >= 10);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Count sequential Task() calls in content
|
|
166
|
+
* @param content - Skill content to analyze
|
|
167
|
+
* @returns Count of sequential Task calls
|
|
168
|
+
*/
|
|
169
|
+
export function countSequentialTaskCalls(content) {
|
|
170
|
+
const lines = content.split('\n');
|
|
171
|
+
let sequentialCalls = 0;
|
|
172
|
+
let consecutiveTaskLines = 0;
|
|
173
|
+
for (const line of lines) {
|
|
174
|
+
if (line.includes('Task(') || line.includes('Task (')) {
|
|
175
|
+
consecutiveTaskLines++;
|
|
176
|
+
}
|
|
177
|
+
else if (consecutiveTaskLines > 0) {
|
|
178
|
+
if (consecutiveTaskLines >= THRESHOLDS.sequentialTaskThreshold) {
|
|
179
|
+
sequentialCalls += consecutiveTaskLines;
|
|
180
|
+
}
|
|
181
|
+
consecutiveTaskLines = 0;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Check for final sequence
|
|
185
|
+
if (consecutiveTaskLines >= THRESHOLDS.sequentialTaskThreshold) {
|
|
186
|
+
sequentialCalls += consecutiveTaskLines;
|
|
187
|
+
}
|
|
188
|
+
return sequentialCalls;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Calculate batch savings percentage
|
|
192
|
+
* @param sequentialCalls - Number of sequential Task calls
|
|
193
|
+
* @returns Estimated savings percentage
|
|
194
|
+
*/
|
|
195
|
+
export function calculateBatchSavings(sequentialCalls) {
|
|
196
|
+
// Batching reduces context overhead by ~30-50%
|
|
197
|
+
return sequentialCalls >= THRESHOLDS.sequentialTaskThreshold
|
|
198
|
+
? Math.min(50, sequentialCalls * 10)
|
|
199
|
+
: 0;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Determine extraction reason for a section
|
|
203
|
+
* @param sectionName - Name of the section
|
|
204
|
+
* @param lineCount - Number of lines in section
|
|
205
|
+
* @returns Human-readable extraction reason
|
|
206
|
+
*/
|
|
207
|
+
export function getExtractionReason(sectionName, lineCount) {
|
|
208
|
+
const lowerName = sectionName.toLowerCase();
|
|
209
|
+
if (lowerName.includes('api') || lowerName.includes('reference')) {
|
|
210
|
+
return 'API reference sections can be loaded on-demand';
|
|
211
|
+
}
|
|
212
|
+
if (lowerName.includes('example') || lowerName.includes('usage')) {
|
|
213
|
+
return 'Examples can be progressively disclosed';
|
|
214
|
+
}
|
|
215
|
+
if (lowerName.includes('advanced') || lowerName.includes('configuration')) {
|
|
216
|
+
return 'Advanced topics are rarely needed in initial context';
|
|
217
|
+
}
|
|
218
|
+
if (lineCount > 100) {
|
|
219
|
+
return 'Large section suitable for sub-skill extraction';
|
|
220
|
+
}
|
|
221
|
+
return 'Section size suggests separate loading benefit';
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Calculate extraction priority based on size ratio
|
|
225
|
+
* @param lineCount - Section line count
|
|
226
|
+
* @param totalLines - Total document lines
|
|
227
|
+
* @returns Priority (1 = highest, 3 = lowest)
|
|
228
|
+
*/
|
|
229
|
+
export function calculateExtractionPriority(lineCount, totalLines) {
|
|
230
|
+
const sizeRatio = lineCount / totalLines;
|
|
231
|
+
if (sizeRatio > 0.3)
|
|
232
|
+
return 1;
|
|
233
|
+
if (sizeRatio > 0.15)
|
|
234
|
+
return 2;
|
|
235
|
+
return 3;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=SkillAnalyzer.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillAnalyzer.helpers.js","sourceRoot":"","sources":["../../../src/services/SkillAnalyzer.helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2D;IACnF,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;QACrF,MAAM,EAAE,CAAC;KACV;IACD,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,YAAY;YACZ,aAAa;YACb,SAAS;YACT,gBAAgB;YAChB,YAAY;YACZ,gBAAgB;SACjB;QACD,MAAM,EAAE,CAAC;KACV;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;QACzF,MAAM,EAAE,CAAC;KACV;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,QAAQ;YACR,OAAO;YACP,OAAO;YACP,iBAAiB;YACjB,aAAa;YACb,UAAU;YACV,OAAO;YACP,WAAW;SACZ;QACD,MAAM,EAAE,CAAC;KACV;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC;QAC3E,MAAM,EAAE,CAAC;KACV;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC;QAC1E,MAAM,EAAE,CAAC;KACV;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;QACjF,MAAM,EAAE,CAAC;KACV;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC;QACvE,MAAM,EAAE,CAAC;KACV;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC;QAC1E,MAAM,EAAE,CAAC;KACV;CACF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,sDAAsD;IACtD,uBAAuB,EAAE,GAAG;IAE5B,+CAA+C;IAC/C,eAAe,EAAE,EAAE;IAEnB,oDAAoD;IACpD,mBAAmB,EAAE,CAAC;IAEtB,0DAA0D;IAC1D,uBAAuB,EAAE,CAAC;IAE1B,6DAA6D;IAC7D,iBAAiB,EAAE,EAAE;IAErB,uCAAuC;IACvC,sBAAsB,EAAE,GAAG;CACnB,CAAA;AAEV;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,MAAM,CAAA;IAClC,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAA;IACpC,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;IAC/D,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IACxC,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,mDAAmD;YACnD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC9D,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACxB,WAAW,IAAI,MAAM,CAAC,MAAM,CAAA;gBAC9B,CAAC;gBACD,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAKlD,MAAM,gBAAgB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IAC7F,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IAC1F,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IAE5F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,WAAmB,EACnB,WAAmB;IAEnB,OAAO,CACL,SAAS,IAAI,UAAU,CAAC,mBAAmB;QAC3C,WAAW,IAAI,UAAU,CAAC,mBAAmB;QAC7C,WAAW,IAAI,EAAE,CAClB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,IAAI,oBAAoB,GAAG,CAAC,CAAA;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,oBAAoB,EAAE,CAAA;QACxB,CAAC;aAAM,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,oBAAoB,IAAI,UAAU,CAAC,uBAAuB,EAAE,CAAC;gBAC/D,eAAe,IAAI,oBAAoB,CAAA;YACzC,CAAC;YACD,oBAAoB,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,oBAAoB,IAAI,UAAU,CAAC,uBAAuB,EAAE,CAAC;QAC/D,eAAe,IAAI,oBAAoB,CAAA;IACzC,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAAuB;IAC3D,+CAA+C;IAC/C,OAAO,eAAe,IAAI,UAAU,CAAC,uBAAuB;QAC1D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,GAAG,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC,CAAA;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,SAAiB;IACxE,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;IAE3C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,OAAO,gDAAgD,CAAA;IACzD,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,OAAO,yCAAyC,CAAA;IAClD,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1E,OAAO,sDAAsD,CAAA;IAC/D,CAAC;IACD,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QACpB,OAAO,iDAAiD,CAAA;IAC1D,CAAC;IACD,OAAO,gDAAgD,CAAA;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,SAAiB,EAAE,UAAkB;IAC/E,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;IAExC,IAAI,SAAS,GAAG,GAAG;QAAE,OAAO,CAAC,CAAA;IAC7B,IAAI,SAAS,GAAG,IAAI;QAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* SMI-
|
|
2
|
+
* SMI-1788: SkillAnalyzer - Analyze skills for optimization patterns
|
|
3
3
|
*
|
|
4
4
|
* Detects optimization opportunities based on:
|
|
5
5
|
* - Line count (>500 lines suggests decomposition)
|
|
@@ -10,89 +10,16 @@
|
|
|
10
10
|
* Part of the Skillsmith Optimization Layer for transforming
|
|
11
11
|
* community skills into more performant versions.
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const TOOL_PATTERNS = {
|
|
17
|
-
Read: {
|
|
18
|
-
patterns: ['read file', 'read the file', 'examine', 'view file', 'cat ', 'Read tool'],
|
|
19
|
-
weight: 1,
|
|
20
|
-
},
|
|
21
|
-
Write: {
|
|
22
|
-
patterns: [
|
|
23
|
-
'write file',
|
|
24
|
-
'create file',
|
|
25
|
-
'save to',
|
|
26
|
-
'output to file',
|
|
27
|
-
'Write tool',
|
|
28
|
-
'write the file',
|
|
29
|
-
],
|
|
30
|
-
weight: 2,
|
|
31
|
-
},
|
|
32
|
-
Edit: {
|
|
33
|
-
patterns: ['edit file', 'modify file', 'update file', 'patch', 'Edit tool', 'replace in'],
|
|
34
|
-
weight: 2,
|
|
35
|
-
},
|
|
36
|
-
Bash: {
|
|
37
|
-
patterns: [
|
|
38
|
-
'bash',
|
|
39
|
-
'npm ',
|
|
40
|
-
'npx ',
|
|
41
|
-
'git ',
|
|
42
|
-
'docker',
|
|
43
|
-
'yarn ',
|
|
44
|
-
'pnpm ',
|
|
45
|
-
'execute command',
|
|
46
|
-
'run command',
|
|
47
|
-
'terminal',
|
|
48
|
-
'shell',
|
|
49
|
-
'Bash tool',
|
|
50
|
-
],
|
|
51
|
-
weight: 3,
|
|
52
|
-
},
|
|
53
|
-
Grep: {
|
|
54
|
-
patterns: ['grep', 'search for', 'find text', 'pattern match', 'Grep tool'],
|
|
55
|
-
weight: 1,
|
|
56
|
-
},
|
|
57
|
-
Glob: {
|
|
58
|
-
patterns: ['glob', 'find file', 'file pattern', 'list files', 'Glob tool'],
|
|
59
|
-
weight: 1,
|
|
60
|
-
},
|
|
61
|
-
WebFetch: {
|
|
62
|
-
patterns: ['fetch', 'http', 'api call', 'url', 'WebFetch', 'download', 'request'],
|
|
63
|
-
weight: 2,
|
|
64
|
-
},
|
|
65
|
-
WebSearch: {
|
|
66
|
-
patterns: ['web search', 'search online', 'lookup online', 'WebSearch'],
|
|
67
|
-
weight: 2,
|
|
68
|
-
},
|
|
69
|
-
Task: {
|
|
70
|
-
patterns: ['Task(', 'Task tool', 'spawn agent', 'delegate to', 'subagent'],
|
|
71
|
-
weight: 3,
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Thresholds for optimization decisions
|
|
76
|
-
*/
|
|
77
|
-
const THRESHOLDS = {
|
|
78
|
-
/** Maximum lines before recommending decomposition */
|
|
79
|
-
maxLinesBeforeDecompose: 500,
|
|
80
|
-
/** Minimum lines for an extractable section */
|
|
81
|
-
minSectionLines: 50,
|
|
82
|
-
/** Heavy tool usage count that suggests subagent */
|
|
83
|
-
heavyToolUsageCount: 5,
|
|
84
|
-
/** Sequential Task() calls that should be parallelized */
|
|
85
|
-
sequentialTaskThreshold: 2,
|
|
86
|
-
/** Minimum optimization score to recommend transformation */
|
|
87
|
-
minTransformScore: 30,
|
|
88
|
-
/** Large examples section threshold */
|
|
89
|
-
largeExamplesThreshold: 200,
|
|
90
|
-
};
|
|
13
|
+
import { THRESHOLDS, detectTools, countCommandPatterns, shouldSuggestSubagent, getConfidenceLevel, estimateExamplesLines, countSequentialTaskCalls, calculateBatchSavings, getExtractionReason, calculateExtractionPriority, } from './SkillAnalyzer.helpers.js';
|
|
14
|
+
// Re-export helpers for testing and advanced usage
|
|
15
|
+
export { TOOL_PATTERNS, THRESHOLDS, escapeRegex, getConfidenceLevel, } from './SkillAnalyzer.helpers.js';
|
|
91
16
|
/**
|
|
92
17
|
* Analyze a skill's content for optimization opportunities
|
|
93
18
|
*
|
|
94
19
|
* @param content - The full SKILL.md content
|
|
95
20
|
* @returns Analysis of optimization potential
|
|
21
|
+
* @remarks The lineCount for an empty string returns 1, matching standard
|
|
22
|
+
* String.split('\n') behavior where ''.split('\n') yields ['']
|
|
96
23
|
*/
|
|
97
24
|
export function analyzeSkill(content) {
|
|
98
25
|
const lines = content.split('\n');
|
|
@@ -106,7 +33,7 @@ export function analyzeSkill(content) {
|
|
|
106
33
|
// Find extractable sections
|
|
107
34
|
const extractableSections = findExtractableSections(sections, lineCount);
|
|
108
35
|
// Generate recommendations
|
|
109
|
-
const recommendations = generateRecommendations(lineCount,
|
|
36
|
+
const recommendations = generateRecommendations(lineCount, examplesLines, toolUsage, taskPatterns, extractableSections);
|
|
110
37
|
// Calculate optimization score
|
|
111
38
|
const optimizationScore = calculateOptimizationScore(lineCount, toolUsage, taskPatterns, recommendations);
|
|
112
39
|
return {
|
|
@@ -177,46 +104,14 @@ function analyzeSections(content) {
|
|
|
177
104
|
const mainContentLines = lines.length - examplesLines;
|
|
178
105
|
return { mainContentLines, examplesLines, sections };
|
|
179
106
|
}
|
|
180
|
-
/**
|
|
181
|
-
* Estimate examples lines by looking for code blocks
|
|
182
|
-
*/
|
|
183
|
-
function estimateExamplesLines(content) {
|
|
184
|
-
const codeBlockMatches = content.match(/```[\s\S]*?```/g) || [];
|
|
185
|
-
let totalLines = 0;
|
|
186
|
-
for (const block of codeBlockMatches) {
|
|
187
|
-
totalLines += block.split('\n').length;
|
|
188
|
-
}
|
|
189
|
-
return totalLines;
|
|
190
|
-
}
|
|
191
107
|
/**
|
|
192
108
|
* Analyze tool usage patterns in the content
|
|
193
109
|
*/
|
|
194
110
|
function analyzeToolUsage(content) {
|
|
195
|
-
const
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
for (const pattern of config.patterns) {
|
|
200
|
-
if (lowerContent.includes(pattern.toLowerCase())) {
|
|
201
|
-
if (!detectedTools.includes(tool)) {
|
|
202
|
-
detectedTools.push(tool);
|
|
203
|
-
totalWeight += config.weight;
|
|
204
|
-
}
|
|
205
|
-
break;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
// Count specific tool patterns
|
|
210
|
-
const bashCommandCount = (content.match(/\b(npm|npx|git|docker|yarn|pnpm)\s/gi) || []).length;
|
|
211
|
-
const fileReadCount = (content.match(/\b(read|cat|head|tail|grep|find)\s/gi) || []).length;
|
|
212
|
-
const fileWriteCount = (content.match(/\b(write|edit|modify|create)\s+file/gi) || []).length;
|
|
213
|
-
// Determine if heavy tool usage suggests subagent
|
|
214
|
-
const suggestsSubagent = bashCommandCount >= THRESHOLDS.heavyToolUsageCount ||
|
|
215
|
-
fileReadCount + fileWriteCount >= THRESHOLDS.heavyToolUsageCount ||
|
|
216
|
-
totalWeight >= 10;
|
|
217
|
-
// Calculate confidence
|
|
218
|
-
const matchCount = detectedTools.length;
|
|
219
|
-
const confidence = matchCount >= 4 ? 'high' : matchCount >= 2 ? 'medium' : 'low';
|
|
111
|
+
const { tools: detectedTools, totalWeight } = detectTools(content);
|
|
112
|
+
const { bashCommandCount, fileReadCount, fileWriteCount } = countCommandPatterns(content);
|
|
113
|
+
const suggestsSubagent = shouldSuggestSubagent(bashCommandCount, fileReadCount + fileWriteCount, totalWeight);
|
|
114
|
+
const confidence = getConfidenceLevel(detectedTools.length);
|
|
220
115
|
return {
|
|
221
116
|
detectedTools,
|
|
222
117
|
bashCommandCount,
|
|
@@ -230,32 +125,11 @@ function analyzeToolUsage(content) {
|
|
|
230
125
|
* Analyze Task() call patterns
|
|
231
126
|
*/
|
|
232
127
|
function analyzeTaskPatterns(content) {
|
|
233
|
-
// Find Task() calls
|
|
234
128
|
const taskCalls = content.match(/Task\s*\([^)]+\)/g) || [];
|
|
235
129
|
const taskCallCount = taskCalls.length;
|
|
236
|
-
|
|
237
|
-
const lines = content.split('\n');
|
|
238
|
-
let sequentialCalls = 0;
|
|
239
|
-
let consecutiveTaskLines = 0;
|
|
240
|
-
for (const line of lines) {
|
|
241
|
-
if (line.includes('Task(') || line.includes('Task (')) {
|
|
242
|
-
consecutiveTaskLines++;
|
|
243
|
-
}
|
|
244
|
-
else if (consecutiveTaskLines > 0) {
|
|
245
|
-
if (consecutiveTaskLines >= THRESHOLDS.sequentialTaskThreshold) {
|
|
246
|
-
sequentialCalls += consecutiveTaskLines;
|
|
247
|
-
}
|
|
248
|
-
consecutiveTaskLines = 0;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
// Check for final sequence
|
|
252
|
-
if (consecutiveTaskLines >= THRESHOLDS.sequentialTaskThreshold) {
|
|
253
|
-
sequentialCalls += consecutiveTaskLines;
|
|
254
|
-
}
|
|
130
|
+
const sequentialCalls = countSequentialTaskCalls(content);
|
|
255
131
|
const canBatch = sequentialCalls >= THRESHOLDS.sequentialTaskThreshold;
|
|
256
|
-
|
|
257
|
-
// Batching reduces context overhead by ~30-50%
|
|
258
|
-
const batchSavingsPercent = canBatch ? Math.min(50, sequentialCalls * 10) : 0;
|
|
132
|
+
const batchSavingsPercent = calculateBatchSavings(sequentialCalls);
|
|
259
133
|
return {
|
|
260
134
|
taskCallCount,
|
|
261
135
|
sequentialCalls,
|
|
@@ -274,33 +148,8 @@ function findExtractableSections(sections, totalLines) {
|
|
|
274
148
|
if (lineCount < THRESHOLDS.minSectionLines) {
|
|
275
149
|
continue;
|
|
276
150
|
}
|
|
277
|
-
|
|
278
|
-
const
|
|
279
|
-
let priority = 3;
|
|
280
|
-
if (sizeRatio > 0.3) {
|
|
281
|
-
priority = 1;
|
|
282
|
-
}
|
|
283
|
-
else if (sizeRatio > 0.15) {
|
|
284
|
-
priority = 2;
|
|
285
|
-
}
|
|
286
|
-
// Determine reason for extraction
|
|
287
|
-
let reason = '';
|
|
288
|
-
const lowerName = section.name.toLowerCase();
|
|
289
|
-
if (lowerName.includes('api') || lowerName.includes('reference')) {
|
|
290
|
-
reason = 'API reference sections can be loaded on-demand';
|
|
291
|
-
}
|
|
292
|
-
else if (lowerName.includes('example') || lowerName.includes('usage')) {
|
|
293
|
-
reason = 'Examples can be progressively disclosed';
|
|
294
|
-
}
|
|
295
|
-
else if (lowerName.includes('advanced') || lowerName.includes('configuration')) {
|
|
296
|
-
reason = 'Advanced topics are rarely needed in initial context';
|
|
297
|
-
}
|
|
298
|
-
else if (lineCount > 100) {
|
|
299
|
-
reason = 'Large section suitable for sub-skill extraction';
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
reason = 'Section size suggests separate loading benefit';
|
|
303
|
-
}
|
|
151
|
+
const priority = calculateExtractionPriority(lineCount, totalLines);
|
|
152
|
+
const reason = getExtractionReason(section.name, lineCount);
|
|
304
153
|
extractable.push({
|
|
305
154
|
name: section.name,
|
|
306
155
|
startLine: section.startLine,
|
|
@@ -316,7 +165,7 @@ function findExtractableSections(sections, totalLines) {
|
|
|
316
165
|
/**
|
|
317
166
|
* Generate optimization recommendations
|
|
318
167
|
*/
|
|
319
|
-
function generateRecommendations(lineCount,
|
|
168
|
+
function generateRecommendations(lineCount, examplesLines, toolUsage, taskPatterns, extractableSections) {
|
|
320
169
|
const recommendations = [];
|
|
321
170
|
// Recommend decomposition for large skills
|
|
322
171
|
if (lineCount > THRESHOLDS.maxLinesBeforeDecompose) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillAnalyzer.js","sourceRoot":"","sources":["../../../src/services/SkillAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SkillAnalyzer.js","sourceRoot":"","sources":["../../../src/services/SkillAnalyzer.ts"],"names":[],"mappings":"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"}
|