@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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Database Migration Utilities
|
|
3
|
+
* @module @skillsmith/core/db/migration-types
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Schema compatibility status
|
|
7
|
+
*/
|
|
8
|
+
export interface SchemaCompatibility {
|
|
9
|
+
isCompatible: boolean;
|
|
10
|
+
currentVersion: number;
|
|
11
|
+
expectedVersion: number;
|
|
12
|
+
action: 'none' | 'upgrade' | 'downgrade_warning' | 'incompatible';
|
|
13
|
+
message: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Merge result statistics
|
|
17
|
+
*/
|
|
18
|
+
export interface MergeResult {
|
|
19
|
+
skillsAdded: number;
|
|
20
|
+
skillsUpdated: number;
|
|
21
|
+
skillsSkipped: number;
|
|
22
|
+
conflicts: MergeConflict[];
|
|
23
|
+
duration: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Merge conflict information
|
|
27
|
+
*/
|
|
28
|
+
export interface MergeConflict {
|
|
29
|
+
skillId: string;
|
|
30
|
+
reason: 'duplicate_id' | 'schema_mismatch' | 'validation_error';
|
|
31
|
+
sourceValue?: unknown;
|
|
32
|
+
targetValue?: unknown;
|
|
33
|
+
resolution?: 'kept_target' | 'updated' | 'skipped';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Merge strategy options
|
|
37
|
+
*/
|
|
38
|
+
export type MergeStrategy = 'keep_target' | 'keep_source' | 'keep_newer' | 'merge_fields';
|
|
39
|
+
/**
|
|
40
|
+
* Merge options configuration
|
|
41
|
+
*/
|
|
42
|
+
export interface MergeOptions {
|
|
43
|
+
strategy: MergeStrategy;
|
|
44
|
+
dryRun?: boolean;
|
|
45
|
+
onConflict?: (conflict: MergeConflict) => MergeStrategy;
|
|
46
|
+
skipInvalid?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Sync status for Supabase integration
|
|
50
|
+
*/
|
|
51
|
+
export interface SyncStatus {
|
|
52
|
+
connected: boolean;
|
|
53
|
+
lastSyncAt: string | null;
|
|
54
|
+
nextSyncAt: string | null;
|
|
55
|
+
skillsInLocal: number;
|
|
56
|
+
skillsInRemote: number;
|
|
57
|
+
pendingUploads: number;
|
|
58
|
+
pendingDownloads: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Supabase sync configuration
|
|
62
|
+
*/
|
|
63
|
+
export interface SupabaseSyncConfig {
|
|
64
|
+
url: string;
|
|
65
|
+
anonKey: string;
|
|
66
|
+
table?: string;
|
|
67
|
+
batchSize?: number;
|
|
68
|
+
conflictStrategy?: MergeStrategy;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Skill row from database
|
|
72
|
+
*/
|
|
73
|
+
export interface SkillRow {
|
|
74
|
+
id: string;
|
|
75
|
+
name: string;
|
|
76
|
+
description: string | null;
|
|
77
|
+
author: string | null;
|
|
78
|
+
repo_url: string | null;
|
|
79
|
+
quality_score: number | null;
|
|
80
|
+
trust_tier: string;
|
|
81
|
+
tags: string;
|
|
82
|
+
created_at: string;
|
|
83
|
+
updated_at: string;
|
|
84
|
+
source: string | null;
|
|
85
|
+
stars: number | null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Sync history entry
|
|
89
|
+
*/
|
|
90
|
+
export interface SyncHistoryEntry {
|
|
91
|
+
id: string;
|
|
92
|
+
started_at: string;
|
|
93
|
+
completed_at: string | null;
|
|
94
|
+
status: string;
|
|
95
|
+
skills_added: number;
|
|
96
|
+
skills_updated: number;
|
|
97
|
+
skills_unchanged: number;
|
|
98
|
+
error_message: string | null;
|
|
99
|
+
duration_ms: number | null;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=migration-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-types.d.ts","sourceRoot":"","sources":["../../../src/db/migration-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,GAAG,cAAc,CAAA;IACjE,OAAO,EAAE,MAAM,CAAA;CAChB;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,aAAa,EAAE,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS,CAAA;CACnD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,cAAc,CAAA;AAEzF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,aAAa,CAAA;IACvD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,aAAa,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-types.js","sourceRoot":"","sources":["../../../src/db/migration-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -4,76 +4,16 @@
|
|
|
4
4
|
* SMI-1446: Handle schema version mismatch during imports
|
|
5
5
|
* SMI-1448: Database merge tooling for combining skill databases
|
|
6
6
|
* SMI-1452: Sync utilities for local-to-Supabase synchronization
|
|
7
|
+
*
|
|
8
|
+
* @see migration-types.ts for type definitions
|
|
7
9
|
*/
|
|
8
10
|
import type { Database as DatabaseType } from 'better-sqlite3';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
export interface SchemaCompatibility {
|
|
13
|
-
isCompatible: boolean;
|
|
14
|
-
currentVersion: number;
|
|
15
|
-
expectedVersion: number;
|
|
16
|
-
action: 'none' | 'upgrade' | 'downgrade_warning' | 'incompatible';
|
|
17
|
-
message: string;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Check schema compatibility between database and expected version
|
|
21
|
-
* SMI-1446: Detects version mismatches that block imports
|
|
22
|
-
*/
|
|
11
|
+
export type { SchemaCompatibility, MergeResult, MergeConflict, MergeStrategy, MergeOptions, SyncStatus, SupabaseSyncConfig, SkillRow, SyncHistoryEntry, } from './migration-types.js';
|
|
12
|
+
import type { SchemaCompatibility, MergeResult, MergeOptions, SyncHistoryEntry } from './migration-types.js';
|
|
23
13
|
export declare function checkSchemaCompatibility(db: DatabaseType): SchemaCompatibility;
|
|
24
|
-
/**
|
|
25
|
-
* Ensure database schema is compatible, running migrations if needed
|
|
26
|
-
* SMI-1446: Safe migration that handles version mismatches
|
|
27
|
-
*
|
|
28
|
-
* @throws Error if schema is incompatible
|
|
29
|
-
*/
|
|
30
14
|
export declare function ensureSchemaCompatibility(db: DatabaseType): void;
|
|
31
|
-
/**
|
|
32
|
-
* Merge result statistics
|
|
33
|
-
*/
|
|
34
|
-
export interface MergeResult {
|
|
35
|
-
skillsAdded: number;
|
|
36
|
-
skillsUpdated: number;
|
|
37
|
-
skillsSkipped: number;
|
|
38
|
-
conflicts: MergeConflict[];
|
|
39
|
-
duration: number;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Merge conflict information
|
|
43
|
-
*/
|
|
44
|
-
export interface MergeConflict {
|
|
45
|
-
skillId: string;
|
|
46
|
-
reason: 'duplicate_id' | 'schema_mismatch' | 'validation_error';
|
|
47
|
-
sourceValue?: unknown;
|
|
48
|
-
targetValue?: unknown;
|
|
49
|
-
resolution?: 'kept_target' | 'updated' | 'skipped';
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Merge strategy options
|
|
53
|
-
*/
|
|
54
|
-
export type MergeStrategy = 'keep_target' | 'keep_source' | 'keep_newer' | 'merge_fields';
|
|
55
|
-
/**
|
|
56
|
-
* Merge options configuration
|
|
57
|
-
*/
|
|
58
|
-
export interface MergeOptions {
|
|
59
|
-
strategy: MergeStrategy;
|
|
60
|
-
dryRun?: boolean;
|
|
61
|
-
onConflict?: (conflict: MergeConflict) => MergeStrategy;
|
|
62
|
-
skipInvalid?: boolean;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Merge skills from source database into target database
|
|
66
|
-
* SMI-1448: Core merge functionality
|
|
67
|
-
*
|
|
68
|
-
* @param target - Target database to merge into
|
|
69
|
-
* @param source - Source database to merge from
|
|
70
|
-
* @param options - Merge configuration
|
|
71
|
-
*/
|
|
72
15
|
export declare function mergeSkillDatabases(target: DatabaseType, source: DatabaseType, options?: MergeOptions): MergeResult;
|
|
73
|
-
|
|
74
|
-
* Sync status for Supabase integration
|
|
75
|
-
*/
|
|
76
|
-
export interface SyncStatus {
|
|
16
|
+
export declare function getSyncStatus(db: DatabaseType): Omit<{
|
|
77
17
|
connected: boolean;
|
|
78
18
|
lastSyncAt: string | null;
|
|
79
19
|
nextSyncAt: string | null;
|
|
@@ -81,49 +21,12 @@ export interface SyncStatus {
|
|
|
81
21
|
skillsInRemote: number;
|
|
82
22
|
pendingUploads: number;
|
|
83
23
|
pendingDownloads: number;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Supabase sync configuration
|
|
87
|
-
*/
|
|
88
|
-
export interface SupabaseSyncConfig {
|
|
89
|
-
url: string;
|
|
90
|
-
anonKey: string;
|
|
91
|
-
table?: string;
|
|
92
|
-
batchSize?: number;
|
|
93
|
-
conflictStrategy?: MergeStrategy;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Get sync status from local database
|
|
97
|
-
* SMI-1452: Reports current sync state
|
|
98
|
-
*/
|
|
99
|
-
export declare function getSyncStatus(db: DatabaseType): Omit<SyncStatus, 'connected' | 'skillsInRemote'>;
|
|
100
|
-
/**
|
|
101
|
-
* Update sync status after a sync operation
|
|
102
|
-
* SMI-1452: Records sync results
|
|
103
|
-
*/
|
|
24
|
+
}, 'connected' | 'skillsInRemote'>;
|
|
104
25
|
export declare function updateSyncStatus(db: DatabaseType, result: {
|
|
105
26
|
skillsAdded: number;
|
|
106
27
|
skillsUpdated: number;
|
|
107
28
|
error?: string;
|
|
108
29
|
}): void;
|
|
109
|
-
/**
|
|
110
|
-
* Record a sync run in history
|
|
111
|
-
* SMI-1452: Tracks sync history for debugging
|
|
112
|
-
*/
|
|
113
30
|
export declare function recordSyncRun(db: DatabaseType, status: 'running' | 'success' | 'failed' | 'partial', result?: MergeResult, error?: string): string;
|
|
114
|
-
|
|
115
|
-
* Get recent sync history
|
|
116
|
-
* SMI-1452: Returns sync history for monitoring
|
|
117
|
-
*/
|
|
118
|
-
export declare function getSyncHistory(db: DatabaseType, limit?: number): Array<{
|
|
119
|
-
id: string;
|
|
120
|
-
started_at: string;
|
|
121
|
-
completed_at: string | null;
|
|
122
|
-
status: string;
|
|
123
|
-
skills_added: number;
|
|
124
|
-
skills_updated: number;
|
|
125
|
-
skills_unchanged: number;
|
|
126
|
-
error_message: string | null;
|
|
127
|
-
duration_ms: number | null;
|
|
128
|
-
}>;
|
|
31
|
+
export declare function getSyncHistory(db: DatabaseType, limit?: number): SyncHistoryEntry[];
|
|
129
32
|
//# sourceMappingURL=migration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/db/migration.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/db/migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAI9D,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EAEX,YAAY,EACZ,gBAAgB,EACjB,MAAM,sBAAsB,CAAA;AAM7B,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,GAAG,mBAAmB,CAuD9E;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAmBhE;AAqBD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,YAAyC,GACjD,WAAW,CAiLb;AAMD,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CACnD;IACE,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;CACzB,EACD,WAAW,GAAG,gBAAgB,CAC/B,CAcA;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,IAAI,CAkBN;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EACpD,MAAM,CAAC,EAAE,WAAW,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAuBR;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,SAAK,GAAG,gBAAgB,EAAE,CAI/E"}
|
package/dist/src/db/migration.js
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
* SMI-1446: Handle schema version mismatch during imports
|
|
5
5
|
* SMI-1448: Database merge tooling for combining skill databases
|
|
6
6
|
* SMI-1452: Sync utilities for local-to-Supabase synchronization
|
|
7
|
+
*
|
|
8
|
+
* @see migration-types.ts for type definitions
|
|
7
9
|
*/
|
|
8
10
|
import { SCHEMA_VERSION, getSchemaVersion, runMigrationsSafe, MIGRATIONS } from './schema.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*/
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// SMI-1446: Schema Version Compatibility
|
|
13
|
+
// ============================================================================
|
|
13
14
|
export function checkSchemaCompatibility(db) {
|
|
14
15
|
const currentVersion = getSchemaVersion(db);
|
|
15
16
|
const expectedVersion = SCHEMA_VERSION;
|
|
@@ -31,9 +32,7 @@ export function checkSchemaCompatibility(db) {
|
|
|
31
32
|
message: `Database schema v${currentVersion} can be upgraded to v${expectedVersion}`,
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
|
-
// Database is newer than expected - might be from a newer version of Skillsmith
|
|
35
35
|
if (currentVersion > expectedVersion) {
|
|
36
|
-
// Check if downgrade is safe (no breaking changes in migrations)
|
|
37
36
|
const hasBreakingChanges = MIGRATIONS.slice(expectedVersion).some((m) => m.sql.includes('DROP') || m.sql.includes('RENAME'));
|
|
38
37
|
if (hasBreakingChanges) {
|
|
39
38
|
return {
|
|
@@ -60,20 +59,12 @@ export function checkSchemaCompatibility(db) {
|
|
|
60
59
|
message: 'Unknown schema compatibility issue',
|
|
61
60
|
};
|
|
62
61
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Ensure database schema is compatible, running migrations if needed
|
|
65
|
-
* SMI-1446: Safe migration that handles version mismatches
|
|
66
|
-
*
|
|
67
|
-
* @throws Error if schema is incompatible
|
|
68
|
-
*/
|
|
69
62
|
export function ensureSchemaCompatibility(db) {
|
|
70
63
|
const compatibility = checkSchemaCompatibility(db);
|
|
71
64
|
switch (compatibility.action) {
|
|
72
65
|
case 'none':
|
|
73
|
-
// Already compatible
|
|
74
66
|
break;
|
|
75
67
|
case 'upgrade': {
|
|
76
|
-
// Run migrations
|
|
77
68
|
const migrationsRun = runMigrationsSafe(db);
|
|
78
69
|
if (migrationsRun > 0) {
|
|
79
70
|
console.log(`Upgraded database schema: ${migrationsRun} migration(s) applied`);
|
|
@@ -87,14 +78,6 @@ export function ensureSchemaCompatibility(db) {
|
|
|
87
78
|
throw new Error(compatibility.message);
|
|
88
79
|
}
|
|
89
80
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Merge skills from source database into target database
|
|
92
|
-
* SMI-1448: Core merge functionality
|
|
93
|
-
*
|
|
94
|
-
* @param target - Target database to merge into
|
|
95
|
-
* @param source - Source database to merge from
|
|
96
|
-
* @param options - Merge configuration
|
|
97
|
-
*/
|
|
98
81
|
export function mergeSkillDatabases(target, source, options = { strategy: 'keep_newer' }) {
|
|
99
82
|
const startTime = Date.now();
|
|
100
83
|
const result = {
|
|
@@ -104,19 +87,15 @@ export function mergeSkillDatabases(target, source, options = { strategy: 'keep_
|
|
|
104
87
|
conflicts: [],
|
|
105
88
|
duration: 0,
|
|
106
89
|
};
|
|
107
|
-
// Ensure both databases are compatible
|
|
108
90
|
ensureSchemaCompatibility(target);
|
|
109
91
|
const sourceCompatibility = checkSchemaCompatibility(source);
|
|
110
92
|
if (!sourceCompatibility.isCompatible) {
|
|
111
93
|
throw new Error(`Source database: ${sourceCompatibility.message}`);
|
|
112
94
|
}
|
|
113
|
-
// Get all skills from source
|
|
114
95
|
const sourceSkills = source
|
|
115
96
|
.prepare(`SELECT id, name, description, author, repo_url, quality_score,
|
|
116
|
-
trust_tier, tags, created_at, updated_at, source, stars
|
|
117
|
-
FROM skills`)
|
|
97
|
+
trust_tier, tags, created_at, updated_at, source, stars FROM skills`)
|
|
118
98
|
.all();
|
|
119
|
-
// Prepare statements
|
|
120
99
|
const getTargetSkill = target.prepare('SELECT * FROM skills WHERE id = ?');
|
|
121
100
|
const insertSkill = target.prepare(`
|
|
122
101
|
INSERT INTO skills (id, name, description, author, repo_url, quality_score,
|
|
@@ -129,30 +108,25 @@ export function mergeSkillDatabases(target, source, options = { strategy: 'keep_
|
|
|
129
108
|
trust_tier = ?, tags = ?, updated_at = ?, source = ?, stars = ?
|
|
130
109
|
WHERE id = ?
|
|
131
110
|
`);
|
|
132
|
-
// Process each skill
|
|
133
111
|
const transaction = target.transaction(() => {
|
|
134
112
|
for (const skill of sourceSkills) {
|
|
135
113
|
const existing = getTargetSkill.get(skill.id);
|
|
136
114
|
if (!existing) {
|
|
137
|
-
// New skill - add it
|
|
138
115
|
if (!options.dryRun) {
|
|
139
116
|
insertSkill.run(skill.id, skill.name, skill.description, skill.author, skill.repo_url, skill.quality_score, skill.trust_tier, skill.tags, skill.created_at, skill.updated_at, skill.source, skill.stars);
|
|
140
117
|
}
|
|
141
118
|
result.skillsAdded++;
|
|
142
119
|
}
|
|
143
120
|
else {
|
|
144
|
-
// Skill exists - handle conflict
|
|
145
121
|
const conflict = {
|
|
146
122
|
skillId: skill.id,
|
|
147
123
|
reason: 'duplicate_id',
|
|
148
124
|
sourceValue: skill.updated_at,
|
|
149
125
|
targetValue: existing.updated_at,
|
|
150
126
|
};
|
|
151
|
-
// Determine strategy
|
|
152
127
|
let effectiveStrategy = options.strategy;
|
|
153
|
-
if (options.onConflict)
|
|
128
|
+
if (options.onConflict)
|
|
154
129
|
effectiveStrategy = options.onConflict(conflict);
|
|
155
|
-
}
|
|
156
130
|
switch (effectiveStrategy) {
|
|
157
131
|
case 'keep_target':
|
|
158
132
|
conflict.resolution = 'kept_target';
|
|
@@ -182,7 +156,6 @@ export function mergeSkillDatabases(target, source, options = { strategy: 'keep_
|
|
|
182
156
|
break;
|
|
183
157
|
}
|
|
184
158
|
case 'merge_fields': {
|
|
185
|
-
// Merge non-null fields from source into target
|
|
186
159
|
const merged = {
|
|
187
160
|
name: skill.name || existing.name,
|
|
188
161
|
description: skill.description || existing.description,
|
|
@@ -209,26 +182,23 @@ export function mergeSkillDatabases(target, source, options = { strategy: 'keep_
|
|
|
209
182
|
}
|
|
210
183
|
}
|
|
211
184
|
});
|
|
212
|
-
// Execute transaction (unless dry run)
|
|
213
185
|
if (!options.dryRun) {
|
|
214
186
|
transaction();
|
|
215
187
|
}
|
|
216
188
|
else {
|
|
217
|
-
// Still run to collect stats, but rollback
|
|
218
189
|
try {
|
|
219
190
|
transaction();
|
|
220
191
|
}
|
|
221
192
|
catch {
|
|
222
|
-
|
|
193
|
+
/* Dry run may fail on readonly */
|
|
223
194
|
}
|
|
224
195
|
}
|
|
225
196
|
result.duration = Date.now() - startTime;
|
|
226
197
|
return result;
|
|
227
198
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
*/
|
|
199
|
+
// ============================================================================
|
|
200
|
+
// SMI-1452: Supabase Sync Utilities
|
|
201
|
+
// ============================================================================
|
|
232
202
|
export function getSyncStatus(db) {
|
|
233
203
|
const config = db
|
|
234
204
|
.prepare('SELECT last_sync_at, next_sync_at FROM sync_config WHERE id = ?')
|
|
@@ -238,31 +208,19 @@ export function getSyncStatus(db) {
|
|
|
238
208
|
lastSyncAt: config?.last_sync_at || null,
|
|
239
209
|
nextSyncAt: config?.next_sync_at || null,
|
|
240
210
|
skillsInLocal: skillCount.count,
|
|
241
|
-
pendingUploads: 0,
|
|
211
|
+
pendingUploads: 0,
|
|
242
212
|
pendingDownloads: 0,
|
|
243
213
|
};
|
|
244
214
|
}
|
|
245
|
-
/**
|
|
246
|
-
* Update sync status after a sync operation
|
|
247
|
-
* SMI-1452: Records sync results
|
|
248
|
-
*/
|
|
249
215
|
export function updateSyncStatus(db, result) {
|
|
250
216
|
const now = new Date().toISOString();
|
|
251
|
-
const nextSync = new Date(Date.now() + 86400000).toISOString();
|
|
217
|
+
const nextSync = new Date(Date.now() + 86400000).toISOString();
|
|
252
218
|
db.prepare(`
|
|
253
219
|
UPDATE sync_config SET
|
|
254
|
-
last_sync_at = ?,
|
|
255
|
-
next_sync_at = ?,
|
|
256
|
-
last_sync_count = ?,
|
|
257
|
-
last_sync_error = ?,
|
|
258
|
-
updated_at = ?
|
|
220
|
+
last_sync_at = ?, next_sync_at = ?, last_sync_count = ?, last_sync_error = ?, updated_at = ?
|
|
259
221
|
WHERE id = ?
|
|
260
222
|
`).run(now, nextSync, result.skillsAdded + result.skillsUpdated, result.error || null, now, 'default');
|
|
261
223
|
}
|
|
262
|
-
/**
|
|
263
|
-
* Record a sync run in history
|
|
264
|
-
* SMI-1452: Tracks sync history for debugging
|
|
265
|
-
*/
|
|
266
224
|
export function recordSyncRun(db, status, result, error) {
|
|
267
225
|
const id = `sync_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
268
226
|
const now = new Date().toISOString();
|
|
@@ -273,17 +231,9 @@ export function recordSyncRun(db, status, result, error) {
|
|
|
273
231
|
`).run(id, now, status === 'running' ? null : now, status, result?.skillsAdded || 0, result?.skillsUpdated || 0, result?.skillsSkipped || 0, error || null, result?.duration || null);
|
|
274
232
|
return id;
|
|
275
233
|
}
|
|
276
|
-
/**
|
|
277
|
-
* Get recent sync history
|
|
278
|
-
* SMI-1452: Returns sync history for monitoring
|
|
279
|
-
*/
|
|
280
234
|
export function getSyncHistory(db, limit = 10) {
|
|
281
235
|
return db
|
|
282
|
-
.prepare(`
|
|
283
|
-
SELECT * FROM sync_history
|
|
284
|
-
ORDER BY started_at DESC
|
|
285
|
-
LIMIT ?
|
|
286
|
-
`)
|
|
236
|
+
.prepare(`SELECT * FROM sync_history ORDER BY started_at DESC LIMIT ?`)
|
|
287
237
|
.all(limit);
|
|
288
238
|
}
|
|
289
239
|
//# sourceMappingURL=migration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../src/db/migration.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../src/db/migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for EmbeddingService
|
|
3
|
+
* @module @skillsmith/core/embeddings/embedding-types
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Result of embedding a skill
|
|
7
|
+
*/
|
|
8
|
+
export interface EmbeddingResult {
|
|
9
|
+
skillId: string;
|
|
10
|
+
embedding: Float32Array;
|
|
11
|
+
text: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Similarity search result
|
|
15
|
+
*/
|
|
16
|
+
export interface SimilarityResult {
|
|
17
|
+
skillId: string;
|
|
18
|
+
score: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Options for EmbeddingService initialization
|
|
22
|
+
*/
|
|
23
|
+
export interface EmbeddingServiceOptions {
|
|
24
|
+
/** Path to SQLite database for caching embeddings */
|
|
25
|
+
dbPath?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Force fallback mode (deterministic mock embeddings).
|
|
28
|
+
* If not specified, checks SKILLSMITH_USE_MOCK_EMBEDDINGS env var,
|
|
29
|
+
* then falls back to real embeddings.
|
|
30
|
+
*/
|
|
31
|
+
useFallback?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Type for feature extraction pipeline output - defined without importing
|
|
35
|
+
*/
|
|
36
|
+
export type FeatureExtractionPipeline = {
|
|
37
|
+
(text: string, options?: {
|
|
38
|
+
pooling?: string;
|
|
39
|
+
normalize?: boolean;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
data: Float32Array;
|
|
42
|
+
}>;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=embedding-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-types.d.ts","sourceRoot":"","sources":["../../../src/embeddings/embedding-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,YAAY,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,CACE,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAClD,OAAO,CAAC;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,CAAA;CACnC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-types.js","sourceRoot":"","sources":["../../../src/embeddings/embedding-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for EmbeddingService
|
|
3
|
+
* @module @skillsmith/core/embeddings/embedding-utils
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Check if fallback mode should be used based on environment
|
|
7
|
+
*/
|
|
8
|
+
export declare function shouldUseFallback(explicit?: boolean): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Generate a deterministic hash from text for mock embeddings.
|
|
11
|
+
* Uses a simple but effective string hashing algorithm.
|
|
12
|
+
*/
|
|
13
|
+
export declare function hashText(text: string): number;
|
|
14
|
+
/**
|
|
15
|
+
* Generate deterministic mock embedding based on text content.
|
|
16
|
+
* Produces consistent vectors for the same input text.
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateMockEmbedding(text: string, dimension: number): Float32Array;
|
|
19
|
+
/**
|
|
20
|
+
* Lazily load the @xenova/transformers module.
|
|
21
|
+
* This avoids loading sharp at startup, which causes CLI crashes.
|
|
22
|
+
*/
|
|
23
|
+
export declare function loadTransformersModule(): Promise<typeof import('@xenova/transformers') | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Check if the transformers module is available without loading it.
|
|
26
|
+
* This is a synchronous check that returns the current known state.
|
|
27
|
+
*
|
|
28
|
+
* @returns true if module is loaded, false if loading failed, undefined if not yet attempted
|
|
29
|
+
*/
|
|
30
|
+
export declare function isTransformersAvailable(): boolean | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Check if embeddings functionality is available.
|
|
33
|
+
* Attempts to load the transformers module if not yet loaded.
|
|
34
|
+
*
|
|
35
|
+
* @returns true if embeddings can be used, false otherwise
|
|
36
|
+
*/
|
|
37
|
+
export declare function checkTransformersAvailability(): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Get the error that occurred when loading the transformers module, if any.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getTransformersLoadError(): Error | null;
|
|
42
|
+
//# sourceMappingURL=embedding-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-utils.d.ts","sourceRoot":"","sources":["../../../src/embeddings/embedding-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAW7D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ7C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAuBnF;AAQD;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CACrD,cAAc,sBAAsB,CAAC,GAAG,IAAI,CAC7C,CA2BA;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,GAAG,SAAS,CAI7D;AAED;;;;;GAKG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,KAAK,GAAG,IAAI,CAEvD"}
|