@skillsmith/core 0.7.2 → 0.8.1
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/CHANGELOG.md +19 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/analytics/ROIDashboardService.compute.d.ts +17 -0
- package/dist/src/analytics/ROIDashboardService.compute.d.ts.map +1 -0
- package/dist/src/analytics/ROIDashboardService.compute.js +134 -0
- package/dist/src/analytics/ROIDashboardService.compute.js.map +1 -0
- package/dist/src/analytics/ROIDashboardService.d.ts +0 -8
- package/dist/src/analytics/ROIDashboardService.d.ts.map +1 -1
- package/dist/src/analytics/ROIDashboardService.js +9 -138
- package/dist/src/analytics/ROIDashboardService.js.map +1 -1
- package/dist/src/api/client.types.d.ts +5 -0
- package/dist/src/api/client.types.d.ts.map +1 -1
- package/dist/src/api/index.d.ts +1 -0
- package/dist/src/api/index.d.ts.map +1 -1
- package/dist/src/api/index.js +4 -0
- package/dist/src/api/index.js.map +1 -1
- package/dist/src/api/schemas.compatibility.test.d.ts +11 -0
- package/dist/src/api/schemas.compatibility.test.d.ts.map +1 -0
- package/dist/src/api/schemas.compatibility.test.js +38 -0
- package/dist/src/api/schemas.compatibility.test.js.map +1 -0
- package/dist/src/api/schemas.d.ts +16 -9
- package/dist/src/api/schemas.d.ts.map +1 -1
- package/dist/src/api/schemas.js +13 -4
- package/dist/src/api/schemas.js.map +1 -1
- package/dist/src/api/schemas.license.test.d.ts +11 -0
- package/dist/src/api/schemas.license.test.d.ts.map +1 -0
- package/dist/src/api/schemas.license.test.js +51 -0
- package/dist/src/api/schemas.license.test.js.map +1 -0
- package/dist/src/api/types.d.ts +18 -3
- package/dist/src/api/types.d.ts.map +1 -1
- package/dist/src/api/types.js +29 -2
- package/dist/src/api/types.js.map +1 -1
- package/dist/src/audit/remote-audit.d.ts +41 -0
- package/dist/src/audit/remote-audit.d.ts.map +1 -1
- package/dist/src/audit/remote-audit.js +71 -28
- package/dist/src/audit/remote-audit.js.map +1 -1
- package/dist/src/audit/remote-audit.test.js +89 -1
- package/dist/src/audit/remote-audit.test.js.map +1 -1
- package/dist/src/compatibility/slugs.d.ts +34 -0
- package/dist/src/compatibility/slugs.d.ts.map +1 -0
- package/dist/src/compatibility/slugs.js +57 -0
- package/dist/src/compatibility/slugs.js.map +1 -0
- package/dist/src/db/schema-sql.d.ts +1 -1
- package/dist/src/db/schema-sql.d.ts.map +1 -1
- package/dist/src/db/schema-sql.js +1 -1
- package/dist/src/embeddings/probe.d.ts +62 -0
- package/dist/src/embeddings/probe.d.ts.map +1 -0
- package/dist/src/embeddings/probe.js +89 -0
- package/dist/src/embeddings/probe.js.map +1 -0
- package/dist/src/exports/types.d.ts +1 -0
- package/dist/src/exports/types.d.ts.map +1 -1
- package/dist/src/exports/types.js +4 -0
- package/dist/src/exports/types.js.map +1 -1
- package/dist/src/index.d.ts +6 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -1
- package/dist/src/indexer/GitHubIndexer.js +1 -1
- package/dist/src/indexer/GitHubIndexer.js.map +1 -1
- package/dist/src/provenance/SourceRecoveryService.d.ts +48 -0
- package/dist/src/provenance/SourceRecoveryService.d.ts.map +1 -0
- package/dist/src/provenance/SourceRecoveryService.js +182 -0
- package/dist/src/provenance/SourceRecoveryService.js.map +1 -0
- package/dist/src/provenance/backfill.d.ts +47 -0
- package/dist/src/provenance/backfill.d.ts.map +1 -0
- package/dist/src/provenance/backfill.js +206 -0
- package/dist/src/provenance/backfill.js.map +1 -0
- package/dist/src/provenance/git-config.d.ts +22 -0
- package/dist/src/provenance/git-config.d.ts.map +1 -0
- package/dist/src/provenance/git-config.js +117 -0
- package/dist/src/provenance/git-config.js.map +1 -0
- package/dist/src/provenance/index.d.ts +12 -0
- package/dist/src/provenance/index.d.ts.map +1 -0
- package/dist/src/provenance/index.js +12 -0
- package/dist/src/provenance/index.js.map +1 -0
- package/dist/src/provenance/local-skill-scan.d.ts +35 -0
- package/dist/src/provenance/local-skill-scan.d.ts.map +1 -0
- package/dist/src/provenance/local-skill-scan.js +79 -0
- package/dist/src/provenance/local-skill-scan.js.map +1 -0
- package/dist/src/provenance/plugin-manifest.d.ts +16 -0
- package/dist/src/provenance/plugin-manifest.d.ts.map +1 -0
- package/dist/src/provenance/plugin-manifest.js +52 -0
- package/dist/src/provenance/plugin-manifest.js.map +1 -0
- package/dist/src/provenance/types.d.ts +86 -0
- package/dist/src/provenance/types.d.ts.map +1 -0
- package/dist/src/provenance/types.js +21 -0
- package/dist/src/provenance/types.js.map +1 -0
- package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
- package/dist/src/repositories/SkillRepository.js +3 -1
- package/dist/src/repositories/SkillRepository.js.map +1 -1
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js +10 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
- package/dist/src/scripts/validation/normalizers.d.ts.map +1 -1
- package/dist/src/scripts/validation/normalizers.js +9 -7
- package/dist/src/scripts/validation/normalizers.js.map +1 -1
- package/dist/src/scripts/validation/types.d.ts +8 -2
- package/dist/src/scripts/validation/types.d.ts.map +1 -1
- package/dist/src/scripts/validation/types.js +10 -2
- package/dist/src/scripts/validation/types.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.d.ts +0 -7
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.exec.d.ts +56 -0
- package/dist/src/security/scanner/SecurityScanner.exec.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.exec.js +255 -0
- package/dist/src/security/scanner/SecurityScanner.exec.js.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.helpers.js +17 -1
- package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.js +34 -199
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.scanners.d.ts +22 -0
- package/dist/src/security/scanner/SecurityScanner.scanners.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.scanners.js +213 -0
- package/dist/src/security/scanner/SecurityScanner.scanners.js.map +1 -0
- package/dist/src/security/scanner/index.d.ts +1 -1
- package/dist/src/security/scanner/index.d.ts.map +1 -1
- package/dist/src/security/scanner/index.js +1 -1
- package/dist/src/security/scanner/index.js.map +1 -1
- package/dist/src/security/scanner/patterns.d.ts +21 -0
- package/dist/src/security/scanner/patterns.d.ts.map +1 -1
- package/dist/src/security/scanner/patterns.js +34 -0
- package/dist/src/security/scanner/patterns.js.map +1 -1
- package/dist/src/security/scanner/types.d.ts +3 -1
- package/dist/src/security/scanner/types.d.ts.map +1 -1
- package/dist/src/security/scanner/weights.d.ts.map +1 -1
- package/dist/src/security/scanner/weights.js +6 -0
- package/dist/src/security/scanner/weights.js.map +1 -1
- package/dist/src/services/SearchService.helpers.d.ts.map +1 -1
- package/dist/src/services/SearchService.helpers.js +2 -0
- package/dist/src/services/SearchService.helpers.js.map +1 -1
- package/dist/src/services/SearchService.types.d.ts +1 -0
- package/dist/src/services/SearchService.types.d.ts.map +1 -1
- package/dist/src/services/skill-installation.helpers.d.ts +2 -26
- package/dist/src/services/skill-installation.helpers.d.ts.map +1 -1
- package/dist/src/services/skill-installation.helpers.js +2 -120
- package/dist/src/services/skill-installation.helpers.js.map +1 -1
- package/dist/src/services/skill-installation.io.d.ts +43 -0
- package/dist/src/services/skill-installation.io.d.ts.map +1 -0
- package/dist/src/services/skill-installation.io.js +176 -0
- package/dist/src/services/skill-installation.io.js.map +1 -0
- package/dist/src/services/skill-installation.service.d.ts.map +1 -1
- package/dist/src/services/skill-installation.service.js +51 -113
- package/dist/src/services/skill-installation.service.js.map +1 -1
- package/dist/src/services/skill-installation.types.d.ts.map +1 -1
- package/dist/src/services/skill-installation.types.js +9 -0
- package/dist/src/services/skill-installation.types.js.map +1 -1
- package/dist/src/services/skill-installation.validate.d.ts +44 -0
- package/dist/src/services/skill-installation.validate.d.ts.map +1 -0
- package/dist/src/services/skill-installation.validate.js +134 -0
- package/dist/src/services/skill-installation.validate.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +2 -1
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +4 -1
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/posthog.d.ts +19 -1
- package/dist/src/telemetry/posthog.d.ts.map +1 -1
- package/dist/src/telemetry/posthog.js +14 -0
- package/dist/src/telemetry/posthog.js.map +1 -1
- package/dist/src/telemetry/wrap.bench.d.ts +13 -0
- package/dist/src/telemetry/wrap.bench.d.ts.map +1 -0
- package/dist/src/telemetry/wrap.bench.js +41 -0
- package/dist/src/telemetry/wrap.bench.js.map +1 -0
- package/dist/src/telemetry/wrap.d.ts +75 -0
- package/dist/src/telemetry/wrap.d.ts.map +1 -0
- package/dist/src/telemetry/wrap.js +124 -0
- package/dist/src/telemetry/wrap.js.map +1 -0
- package/dist/src/telemetry/wrap.test.d.ts +14 -0
- package/dist/src/telemetry/wrap.test.d.ts.map +1 -0
- package/dist/src/telemetry/wrap.test.js +283 -0
- package/dist/src/telemetry/wrap.test.js.map +1 -0
- package/dist/src/types/skill.d.ts +6 -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 +25 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +3 -1
- package/dist/src/types.js.map +1 -1
- package/dist/tests/GitHubIndexer.edge-cases.test.js +2 -2
- package/dist/tests/GitHubIndexer.repository.test.d.ts +10 -0
- package/dist/tests/GitHubIndexer.repository.test.d.ts.map +1 -0
- package/dist/tests/GitHubIndexer.repository.test.js +190 -0
- package/dist/tests/GitHubIndexer.repository.test.js.map +1 -0
- package/dist/tests/GitHubIndexer.test.d.ts +2 -1
- package/dist/tests/GitHubIndexer.test.d.ts.map +1 -1
- package/dist/tests/GitHubIndexer.test.js +5 -183
- package/dist/tests/GitHubIndexer.test.js.map +1 -1
- package/dist/tests/QuarantineRepository.review-state-machine.test.d.ts +14 -0
- package/dist/tests/QuarantineRepository.review-state-machine.test.d.ts.map +1 -0
- package/dist/tests/QuarantineRepository.review-state-machine.test.js +296 -0
- package/dist/tests/QuarantineRepository.review-state-machine.test.js.map +1 -0
- package/dist/tests/RawUrlSourceAdapter.security.test.js +3 -2
- package/dist/tests/RawUrlSourceAdapter.security.test.js.map +1 -1
- package/dist/tests/SecurityScanner.exec.test.d.ts +11 -0
- package/dist/tests/SecurityScanner.exec.test.d.ts.map +1 -0
- package/dist/tests/SecurityScanner.exec.test.js +190 -0
- package/dist/tests/SecurityScanner.exec.test.js.map +1 -0
- package/dist/tests/SwarmIndexer.test.js +2 -2
- package/dist/tests/api/client.validation.test.js +7 -4
- package/dist/tests/api/client.validation.test.js.map +1 -1
- package/dist/tests/embeddings/probe.test.d.ts +13 -0
- package/dist/tests/embeddings/probe.test.d.ts.map +1 -0
- package/dist/tests/embeddings/probe.test.js +154 -0
- package/dist/tests/embeddings/probe.test.js.map +1 -0
- package/dist/tests/fixtures/api-responses/index.js +1 -1
- package/dist/tests/fixtures/api-responses/index.js.map +1 -1
- package/dist/tests/integration/QuarantineService.concurrency.test.d.ts +34 -0
- package/dist/tests/integration/QuarantineService.concurrency.test.d.ts.map +1 -0
- package/dist/tests/integration/QuarantineService.concurrency.test.js +280 -0
- package/dist/tests/integration/QuarantineService.concurrency.test.js.map +1 -0
- package/dist/tests/integration/openapi-contract.test.d.ts +16 -0
- package/dist/tests/integration/openapi-contract.test.d.ts.map +1 -0
- package/dist/tests/integration/openapi-contract.test.js +231 -0
- package/dist/tests/integration/openapi-contract.test.js.map +1 -0
- package/dist/tests/provenance/SourceRecoveryService.test.d.ts +2 -0
- package/dist/tests/provenance/SourceRecoveryService.test.d.ts.map +1 -0
- package/dist/tests/provenance/SourceRecoveryService.test.js +132 -0
- package/dist/tests/provenance/SourceRecoveryService.test.js.map +1 -0
- package/dist/tests/provenance/backfill.test.d.ts +2 -0
- package/dist/tests/provenance/backfill.test.d.ts.map +1 -0
- package/dist/tests/provenance/backfill.test.js +278 -0
- package/dist/tests/provenance/backfill.test.js.map +1 -0
- package/dist/tests/provenance/git-config.test.d.ts +2 -0
- package/dist/tests/provenance/git-config.test.d.ts.map +1 -0
- package/dist/tests/provenance/git-config.test.js +73 -0
- package/dist/tests/provenance/git-config.test.js.map +1 -0
- package/dist/tests/provenance/local-skill-scan.test.d.ts +2 -0
- package/dist/tests/provenance/local-skill-scan.test.d.ts.map +1 -0
- package/dist/tests/provenance/local-skill-scan.test.js +51 -0
- package/dist/tests/provenance/local-skill-scan.test.js.map +1 -0
- package/dist/tests/provenance/plugin-manifest.test.d.ts +2 -0
- package/dist/tests/provenance/plugin-manifest.test.d.ts.map +1 -0
- package/dist/tests/provenance/plugin-manifest.test.js +49 -0
- package/dist/tests/provenance/plugin-manifest.test.js.map +1 -0
- package/dist/tests/scripts/import-to-database.test.js +7 -1
- package/dist/tests/scripts/import-to-database.test.js.map +1 -1
- package/dist/tests/security/scanner-regression-guard.test.js +5 -1
- package/dist/tests/security/scanner-regression-guard.test.js.map +1 -1
- package/dist/tests/security.test.js +45 -0
- package/dist/tests/security.test.js.map +1 -1
- package/dist/tests/services/aidefence-feedback.test.js +2 -0
- package/dist/tests/services/aidefence-feedback.test.js.map +1 -1
- package/dist/tests/services/dep-quarantine-check.test.js +1 -1
- package/dist/tests/services/dep-quarantine-check.test.js.map +1 -1
- package/dist/tests/skill-scanner/allowlist.test.js +8 -1
- package/dist/tests/skill-scanner/allowlist.test.js.map +1 -1
- package/dist/tests/unit/services/skill-installation.gap1.test.d.ts +12 -0
- package/dist/tests/unit/services/skill-installation.gap1.test.d.ts.map +1 -0
- package/dist/tests/unit/services/skill-installation.gap1.test.js +96 -0
- package/dist/tests/unit/services/skill-installation.gap1.test.js.map +1 -0
- package/dist/tests/unit/services/skill-installation.io.test.d.ts +11 -0
- package/dist/tests/unit/services/skill-installation.io.test.d.ts.map +1 -0
- package/dist/tests/unit/services/skill-installation.io.test.js +130 -0
- package/dist/tests/unit/services/skill-installation.io.test.js.map +1 -0
- package/dist/tests/validate-skills.dedup.test.d.ts +5 -0
- package/dist/tests/validate-skills.dedup.test.d.ts.map +1 -0
- package/dist/tests/validate-skills.dedup.test.js +241 -0
- package/dist/tests/validate-skills.dedup.test.js.map +1 -0
- package/dist/tests/validate-skills.normalizers.test.d.ts +5 -0
- package/dist/tests/validate-skills.normalizers.test.d.ts.map +1 -0
- package/dist/tests/validate-skills.normalizers.test.js +109 -0
- package/dist/tests/validate-skills.normalizers.test.js.map +1 -0
- package/dist/tests/validate-skills.test.d.ts +1 -1
- package/dist/tests/validate-skills.test.js +7 -345
- package/dist/tests/validate-skills.test.js.map +1 -1
- package/package.json +29 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-imported-skills.test.js","sourceRoot":"","sources":["../../../../src/scripts/__tests__/scan-imported-skills.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAClD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAGzD,mDAAmD;AACnD,OAAO,EAAE,yBAAyB,EAAyB,MAAM,iCAAiC,CAAA;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAG1E,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,QAAQ,GAAsB;gBAClC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE;gBACzE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE;aAC7D,CAAA;YAED,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,MAAM,QAAQ,GAAsB;gBAClC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE;gBACvE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE;aAC7D,CAAA;YAED,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACnF,MAAM,QAAQ,GAAsB;gBAClC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE;gBAC5D,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;aACpE,CAAA;YAED,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,QAAQ,GAAsB;gBAClC,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;aACpE,CAAA;YAED,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,wJAAwJ,EAAE,GAAG,EAAE;YAChK,8EAA8E;YAC9E,iFAAiF;YACjF,8EAA8E;YAC9E,4EAA4E;YAC5E,MAAM,MAAM,GAAe;gBACzB,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,cAAc,EAAE,EAAE;gBAClB,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE;oBACb,SAAS,EAAE,CAAC;oBACZ,iBAAiB,EAAE,CAAC;oBACpB,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,mBAAmB,EAAE,CAAC;oBACtB,cAAc,EAAE,CAAC;oBACjB,cAAc,EAAE,CAAC;oBACjB,YAAY,EAAE,CAAC;oBACf,SAAS,EAAE,CAAC,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,EAAE,WAAW;oBACpB,GAAG,EAAE,CAAC,EAAE,WAAW;iBACpB;aACF,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kGAAkG,EAAE,GAAG,EAAE;YAC1G,mFAAmF;YACnF,wFAAwF;YACxF,qFAAqF;YACrF,uFAAuF;YACvF,2CAA2C;YAC3C,MAAM,GAAG,GAAG,CAAC,IAA6B,EAAE,OAAe,EAAmB,EAAE,CAAC,CAAC;gBAChF,IAAI;gBACJ,QAAQ,EAAE,QAAQ;gBAClB,OAAO;gBACP,UAAU,EAAE,MAAM;aACnB,CAAC,CAAA;YACF,MAAM,MAAM,GAAe;gBACzB,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE;oBACR,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC;oBAC/B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC;oBAC/B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC;oBAC/B,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC;oBAC/B,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC;oBACxC,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC;oBACxC,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC;oBACxC,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC;oBACxC,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC;oBACxC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC;oBAChC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC;oBAChC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC;oBAChC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC;iBACjC;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,cAAc,EAAE,EAAE;gBAClB,SAAS,EAAE,CAAC,EAAE,yDAAyD;gBACvE,aAAa,EAAE;oBACb,SAAS,EAAE,CAAC;oBACZ,iBAAiB,EAAE,CAAC;oBACpB,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,mBAAmB,EAAE,CAAC;oBACtB,cAAc,EAAE,CAAC;oBACjB,cAAc,EAAE,CAAC;oBACjB,YAAY,EAAE,CAAC;oBACf,SAAS,EAAE,CAAC,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,EAAE,WAAW;oBACpB,GAAG,EAAE,CAAC,EAAE,WAAW;iBACpB;aACF,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAe;gBACzB,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC7E,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,cAAc,EAAE,EAAE;gBAClB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE;oBACb,SAAS,EAAE,GAAG;oBACd,iBAAiB,EAAE,CAAC;oBACpB,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,mBAAmB,EAAE,CAAC;oBACtB,cAAc,EAAE,CAAC;oBACjB,cAAc,EAAE,CAAC;oBACjB,YAAY,EAAE,CAAC;oBACf,SAAS,EAAE,CAAC,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,EAAE,WAAW;oBACpB,GAAG,EAAE,CAAC,EAAE,WAAW;iBACpB;aACF,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAe;gBACzB,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBACnF,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,cAAc,EAAE,EAAE;gBAClB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE;oBACb,SAAS,EAAE,CAAC;oBACZ,iBAAiB,EAAE,CAAC;oBACpB,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,mBAAmB,EAAE,CAAC;oBACtB,cAAc,EAAE,CAAC;oBACjB,cAAc,EAAE,EAAE;oBAClB,YAAY,EAAE,CAAC;oBACf,SAAS,EAAE,CAAC,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,EAAE,WAAW;oBACpB,GAAG,EAAE,CAAC,EAAE,WAAW;iBACpB;aACF,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,MAAM,MAAM,GAAe;gBACzB,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;gBACxE,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,cAAc,EAAE,EAAE;gBAClB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE;oBACb,SAAS,EAAE,CAAC;oBACZ,iBAAiB,EAAE,CAAC;oBACpB,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,CAAC;oBACnB,mBAAmB,EAAE,CAAC;oBACtB,cAAc,EAAE,CAAC;oBACjB,cAAc,EAAE,CAAC;oBACjB,YAAY,EAAE,EAAE;oBAChB,SAAS,EAAE,CAAC,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,EAAE,WAAW;oBACpB,GAAG,EAAE,CAAC,EAAE,WAAW;iBACpB;aACF,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,KAAK,GAAkB;gBAC3B,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,0BAA0B;gBACvC,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,mBAAmB;gBAC5B,YAAY,EAAE,kBAAkB;gBAChC,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;aAC7B,CAAA;YAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;YAE9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;YACzC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAA;YACrD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;YAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;YAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAA;YAChD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,KAAK,GAAkB;gBAC3B,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,SAAS;aAChB,CAAA;YAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;YAE9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,KAAK,GAAkB;gBAC3B,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;aAC9C,CAAA;YAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;YAE9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACpC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;YACrC,MAAM,gBAAgB,GAAG;;;;;CAK9B,CAAA;YAEK,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;YAE1D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;YACrC,MAAM,cAAc,GAAG;;;;CAI5B,CAAA;YAEK,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;YAEvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;YACrC,MAAM,eAAe,GAAG;;;;CAI7B,CAAA;YAEK,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;YAEzD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;YACrC,MAAM,YAAY,GAAG;;;;;;;;;;CAU1B,CAAA;YAEK,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YAEtD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/E,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,MAAM,OAAO,GAAG,2BAA2B,CAAA;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;QAExD,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YACnD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,UAAU,GAAoB;gBAClC;oBACE,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,yBAAyB;oBACtC,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,oBAAoB;iBAC9B;gBACD;oBACE,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,oBAAoB;oBACjC,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,yBAAyB;iBACnC;gBACD;oBACE,EAAE,EAAE,qBAAqB;oBACzB,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE,WAAW;oBACxB,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,yDAAyD;iBACnE;gBACD;oBACE,EAAE,EAAE,iBAAiB;oBACrB,IAAI,EAAE,kBAAkB;oBACxB,WAAW,EAAE,aAAa;oBAC1B,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,gEAAgE;iBAC1E;aACF,CAAA;YAED,mBAAmB;YACnB,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;YAEzD,kBAAkB;YAClB,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAA;YAC1D,MAAM,OAAO,GAIR,EAAE,CAAA;YAEP,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;gBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;gBAC9C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;gBAE5C,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,aAAa,EAAE,WAAW;oBAC1B,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;YAED,wBAAwB;YACxB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;YAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;YAEhE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAExC,uCAAuC;YACvC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpD,CAAC;YAED,4DAA4D;YAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,qBAAqB,CAAC,CAAA;YAC1E,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC3C,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"scan-imported-skills.test.js","sourceRoot":"","sources":["../../../../src/scripts/__tests__/scan-imported-skills.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizers.d.ts","sourceRoot":"","sources":["../../../../src/scripts/validation/normalizers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAUzF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAU9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"normalizers.d.ts","sourceRoot":"","sources":["../../../../src/scripts/validation/normalizers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAUzF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAU9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAqB7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
|
@@ -46,21 +46,23 @@ export function normalizeQualityScore(score) {
|
|
|
46
46
|
*/
|
|
47
47
|
export function normalizeTrustTier(tier) {
|
|
48
48
|
if (!tier)
|
|
49
|
-
return '
|
|
49
|
+
return 'unverified';
|
|
50
50
|
const normalized = tier.toLowerCase().trim();
|
|
51
|
-
//
|
|
51
|
+
// SMI-5205: official/unverified are now first-class storage values.
|
|
52
|
+
// experimental and unknown remain valid storage values for internal classification.
|
|
52
53
|
const mappings = {
|
|
54
|
+
official: 'official',
|
|
55
|
+
'anthropic-official': 'official',
|
|
53
56
|
verified: 'verified',
|
|
54
|
-
|
|
55
|
-
'anthropic-official': 'verified',
|
|
57
|
+
curated: 'curated',
|
|
56
58
|
community: 'community',
|
|
57
59
|
experimental: 'experimental',
|
|
58
60
|
beta: 'experimental',
|
|
59
|
-
unknown: '
|
|
60
|
-
unverified: '
|
|
61
|
+
unknown: 'unverified',
|
|
62
|
+
unverified: 'unverified',
|
|
61
63
|
standard: 'community',
|
|
62
64
|
};
|
|
63
|
-
return mappings[normalized] || '
|
|
65
|
+
return mappings[normalized] || 'unverified';
|
|
64
66
|
}
|
|
65
67
|
/**
|
|
66
68
|
* Normalize source name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizers.js","sourceRoot":"","sources":["../../../../src/scripts/validation/normalizers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAGnC;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAkC;IACxE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAY;IAC1D,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAC7B,CAAC;SACE,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC1B,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAA;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IACpE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA,CAAC,gBAAgB;IAErE,oCAAoC;IACpC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,iBAAiB;IACjB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,IAAI,CAAC,IAAI;QAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"normalizers.js","sourceRoot":"","sources":["../../../../src/scripts/validation/normalizers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAGnC;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAkC;IACxE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAY;IAC1D,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAC7B,CAAC;SACE,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC1B,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAA;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IACpE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA,CAAC,gBAAgB;IAErE,oCAAoC;IACpC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,iBAAiB;IACjB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,IAAI,CAAC,IAAI;QAAE,OAAO,YAAY,CAAA;IAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;IAE5C,oEAAoE;IACpE,oFAAoF;IACpF,MAAM,QAAQ,GAA8B;QAC1C,QAAQ,EAAE,UAAU;QACpB,oBAAoB,EAAE,UAAU;QAChC,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;QACtB,YAAY,EAAE,cAAc;QAC5B,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,WAAW;KACtB,CAAA;IAED,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiC;IAC/D,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC"}
|
|
@@ -11,8 +11,8 @@ export declare const CONFIG: {
|
|
|
11
11
|
readonly SIMILARITY_THRESHOLD: 0.85;
|
|
12
12
|
/** Source priority scores */
|
|
13
13
|
readonly SOURCE_PRIORITY: Record<string, number>;
|
|
14
|
-
/** Valid trust tiers */
|
|
15
|
-
readonly VALID_TRUST_TIERS: readonly ["verified", "community", "experimental", "unknown"];
|
|
14
|
+
/** Valid trust tiers — includes internal storage values (experimental, unknown) and public values */
|
|
15
|
+
readonly VALID_TRUST_TIERS: readonly ["official", "verified", "curated", "community", "experimental", "unknown", "unverified"];
|
|
16
16
|
};
|
|
17
17
|
export type TrustTier = (typeof CONFIG.VALID_TRUST_TIERS)[number];
|
|
18
18
|
/** Raw skill input that may have missing or invalid fields */
|
|
@@ -104,10 +104,13 @@ export interface DuplicatesReport {
|
|
|
104
104
|
duplicates: DuplicateEntry[];
|
|
105
105
|
}
|
|
106
106
|
export declare const TrustTierSchema: z.ZodEnum<{
|
|
107
|
+
official: "official";
|
|
107
108
|
verified: "verified";
|
|
109
|
+
curated: "curated";
|
|
108
110
|
community: "community";
|
|
109
111
|
experimental: "experimental";
|
|
110
112
|
unknown: "unknown";
|
|
113
|
+
unverified: "unverified";
|
|
111
114
|
}>;
|
|
112
115
|
export declare const ValidatedSkillSchema: z.ZodObject<{
|
|
113
116
|
id: z.ZodString;
|
|
@@ -117,10 +120,13 @@ export declare const ValidatedSkillSchema: z.ZodObject<{
|
|
|
117
120
|
repo_url: z.ZodNullable<z.ZodString>;
|
|
118
121
|
quality_score: z.ZodNumber;
|
|
119
122
|
trust_tier: z.ZodEnum<{
|
|
123
|
+
official: "official";
|
|
120
124
|
verified: "verified";
|
|
125
|
+
curated: "curated";
|
|
121
126
|
community: "community";
|
|
122
127
|
experimental: "experimental";
|
|
123
128
|
unknown: "unknown";
|
|
129
|
+
unverified: "unverified";
|
|
124
130
|
}>;
|
|
125
131
|
tags: z.ZodArray<z.ZodString>;
|
|
126
132
|
source: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/scripts/validation/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,MAAM;IACjB,8BAA8B;;IAE9B,+BAA+B;;IAE/B,4DAA4D;;IAE5D,6BAA6B;8BAMxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/scripts/validation/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,16 @@ export const CONFIG = {
|
|
|
19
19
|
'claude-plugins': 40,
|
|
20
20
|
unknown: 0,
|
|
21
21
|
},
|
|
22
|
-
/** Valid trust tiers */
|
|
23
|
-
VALID_TRUST_TIERS: [
|
|
22
|
+
/** Valid trust tiers — includes internal storage values (experimental, unknown) and public values */
|
|
23
|
+
VALID_TRUST_TIERS: [
|
|
24
|
+
'official',
|
|
25
|
+
'verified',
|
|
26
|
+
'curated',
|
|
27
|
+
'community',
|
|
28
|
+
'experimental',
|
|
29
|
+
'unknown',
|
|
30
|
+
'unverified',
|
|
31
|
+
],
|
|
24
32
|
};
|
|
25
33
|
// ============================================================================
|
|
26
34
|
// Zod Schema for Validation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/scripts/validation/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,8BAA8B;IAC9B,aAAa,EAAE,oBAAoB;IACnC,+BAA+B;IAC/B,kBAAkB,EAAE,QAAQ;IAC5B,4DAA4D;IAC5D,oBAAoB,EAAE,IAAI;IAC1B,6BAA6B;IAC7B,eAAe,EAAE;QACf,oBAAoB,EAAE,GAAG;QACzB,MAAM,EAAE,EAAE;QACV,gBAAgB,EAAE,EAAE;QACpB,OAAO,EAAE,CAAC;KACe;IAC3B,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/scripts/validation/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,8BAA8B;IAC9B,aAAa,EAAE,oBAAoB;IACnC,+BAA+B;IAC/B,kBAAkB,EAAE,QAAQ;IAC5B,4DAA4D;IAC5D,oBAAoB,EAAE,IAAI;IAC1B,6BAA6B;IAC7B,eAAe,EAAE;QACf,oBAAoB,EAAE,GAAG;QACzB,MAAM,EAAE,EAAE;QACV,gBAAgB,EAAE,EAAE;QACpB,OAAO,EAAE,CAAC;KACe;IAC3B,qGAAqG;IACrG,iBAAiB,EAAE;QACjB,UAAU;QACV,UAAU;QACV,SAAS;QACT,WAAW;QACX,cAAc;QACd,SAAS;QACT,YAAY;KACJ;CACF,CAAA;AAuGV,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC;SACF,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,KAAK,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;IAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,UAAU,EAAE,eAAe;IAC3B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAA"}
|
|
@@ -20,15 +20,8 @@ export declare class SecurityScanner {
|
|
|
20
20
|
private extractUrls;
|
|
21
21
|
private isAllowedDomain;
|
|
22
22
|
private scanUrls;
|
|
23
|
-
private scanSensitivePaths;
|
|
24
23
|
private scanJailbreakPatterns;
|
|
25
24
|
private scanSuspiciousPatterns;
|
|
26
|
-
private scanSocialEngineering;
|
|
27
|
-
private scanPromptLeaking;
|
|
28
|
-
private scanDataExfiltration;
|
|
29
|
-
private scanPrivilegeEscalation;
|
|
30
|
-
/** SMI-3864: Detect PII patterns. Email in YAML frontmatter gets low severity. */
|
|
31
|
-
private scanPiiPatterns;
|
|
32
25
|
private scanAIDefenceVulnerabilities;
|
|
33
26
|
/** @deprecated Use standalone calculateRiskScore function for new code */
|
|
34
27
|
calculateRiskScore: typeof calculateRiskScore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityScanner.d.ts","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAmB,UAAU,EAAE,cAAc,EAAqB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"SecurityScanner.d.ts","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAmB,UAAU,EAAE,cAAc,EAAqB,MAAM,YAAY,CAAA;AAUhG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAqB5D,OAAO,EACL,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,SAAS,EACV,MAAM,iCAAiC,CAAA;AAGxC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,GACnB,CAAA;AACD,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAA;AAEjE,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,aAAa,CAAQ;gBAEjB,OAAO,GAAE,cAAmB;IAOxC,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,sBAAsB;IA6D9B,OAAO,CAAC,4BAA4B;IAgBpC,0EAA0E;IAC1E,kBAAkB,4BAAqB;IAEvC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU;IAkDlD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOpC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKxC,MAAM,CAAC,aAAa,uBAAgB;IACpC,MAAM,CAAC,OAAO,iBAAU;IACxB,MAAM,CAAC,mBAAmB,6BAAsB;IAChD,MAAM,CAAC,SAAS,mBAAY;CAC7B;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security Scanner — code-execution & obfuscated-directive detectors
|
|
3
|
+
* @module @skillsmith/core/security/scanner/SecurityScanner.exec
|
|
4
|
+
*
|
|
5
|
+
* SMI-5359 Wave 4.2: two top-tier (categoryWeight 2.0, coefficient 0.40) single-
|
|
6
|
+
* emission detectors that give the scanner real teeth against supply-chain and
|
|
7
|
+
* Unicode-concealment attacks the prod edge gate currently scores at ~1 point:
|
|
8
|
+
*
|
|
9
|
+
* • code_execution — a skill instructing a remote fetch piped into an
|
|
10
|
+
* interpreter (curl|bash and friends). Emits ONE medium finding (score 12,
|
|
11
|
+
* sub-threshold) on its own; escalated to critical (score 40, quarantines)
|
|
12
|
+
* only when it co-occurs with a NON-documentation exfiltration / privilege /
|
|
13
|
+
* credential-path / obfuscation signal. The non-doc gate keeps legitimate
|
|
14
|
+
* security-research skills (which document these techniques inside fenced
|
|
15
|
+
* examples) below the threshold.
|
|
16
|
+
*
|
|
17
|
+
* • obfuscated_directive — a malicious directive concealed with zero-width /
|
|
18
|
+
* bidi / tag-block / combining characters or homoglyphs (Cyrillic, Greek,
|
|
19
|
+
* fullwidth-Latin, Mathematical-Alphanumeric) and revealed only after
|
|
20
|
+
* de-obfuscation. Delta-gated (the directive must NOT be plainly present in
|
|
21
|
+
* the raw line) and verb+object-anchored (never a bare keyword/noun-phrase),
|
|
22
|
+
* so benign Cyrillic/Greek/CJK/fullwidth text stays clean. Emits ONE critical
|
|
23
|
+
* finding (score 40, quarantines alone). A blanket NFKC pass is intentionally
|
|
24
|
+
* NOT used — it folds fullwidth CJK to ASCII and false-positives; fullwidth
|
|
25
|
+
* Latin is mapped by offset and NFKC is applied per-char ONLY to the
|
|
26
|
+
* math-alphanumeric range (which contains no CJK).
|
|
27
|
+
* NOTE: unlike code_execution, this detector has NO documentation-context
|
|
28
|
+
* downgrade (findings are always inDocumentationContext:false). A *live*
|
|
29
|
+
* concealed payload (real invisibles/homoglyphs, not an escaped textual
|
|
30
|
+
* representation) is an attack even inside a fenced block — there is no
|
|
31
|
+
* legitimate reason to ship invisible/homoglyph-spliced directives.
|
|
32
|
+
*/
|
|
33
|
+
import type { SecurityFinding } from './types.js';
|
|
34
|
+
import type { LineContext } from './SecurityScanner.helpers.js';
|
|
35
|
+
/**
|
|
36
|
+
* code_execution: remote fetch piped into an interpreter. Single-emission — at
|
|
37
|
+
* most one MEDIUM finding per skill (the first match). escalateCodeExecution()
|
|
38
|
+
* promotes it to CRITICAL on co-occurrence.
|
|
39
|
+
*/
|
|
40
|
+
export declare function scanCodeExecution(content: string, lineContexts?: LineContext[]): SecurityFinding[];
|
|
41
|
+
/**
|
|
42
|
+
* obfuscated_directive: a malicious directive concealed by Unicode obfuscation,
|
|
43
|
+
* revealed only after de-obfuscation. Single-emission CRITICAL. Delta-gated: a
|
|
44
|
+
* directive already plainly visible in the raw line is left to the jailbreak /
|
|
45
|
+
* prompt-leaking detectors.
|
|
46
|
+
*/
|
|
47
|
+
export declare function scanObfuscatedDirective(content: string): SecurityFinding[];
|
|
48
|
+
/**
|
|
49
|
+
* Escalate the code_execution finding to CRITICAL when a NON-documentation
|
|
50
|
+
* high/critical exfiltration / privilege / credential-path / obfuscation signal
|
|
51
|
+
* is also present. Mutates the finding in place. Requiring the co-signal to be
|
|
52
|
+
* non-documentation keeps legitimate security-research skills (whose examples
|
|
53
|
+
* live in fenced blocks) at MEDIUM.
|
|
54
|
+
*/
|
|
55
|
+
export declare function escalateCodeExecution(findings: SecurityFinding[]): void;
|
|
56
|
+
//# sourceMappingURL=SecurityScanner.exec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityScanner.exec.d.ts","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.exec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,YAAY,CAAA;AAGtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AA0H/D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,WAAW,EAAE,GAC3B,eAAe,EAAE,CA6BnB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAuC1E;AAaD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAgBvE"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security Scanner — code-execution & obfuscated-directive detectors
|
|
3
|
+
* @module @skillsmith/core/security/scanner/SecurityScanner.exec
|
|
4
|
+
*
|
|
5
|
+
* SMI-5359 Wave 4.2: two top-tier (categoryWeight 2.0, coefficient 0.40) single-
|
|
6
|
+
* emission detectors that give the scanner real teeth against supply-chain and
|
|
7
|
+
* Unicode-concealment attacks the prod edge gate currently scores at ~1 point:
|
|
8
|
+
*
|
|
9
|
+
* • code_execution — a skill instructing a remote fetch piped into an
|
|
10
|
+
* interpreter (curl|bash and friends). Emits ONE medium finding (score 12,
|
|
11
|
+
* sub-threshold) on its own; escalated to critical (score 40, quarantines)
|
|
12
|
+
* only when it co-occurs with a NON-documentation exfiltration / privilege /
|
|
13
|
+
* credential-path / obfuscation signal. The non-doc gate keeps legitimate
|
|
14
|
+
* security-research skills (which document these techniques inside fenced
|
|
15
|
+
* examples) below the threshold.
|
|
16
|
+
*
|
|
17
|
+
* • obfuscated_directive — a malicious directive concealed with zero-width /
|
|
18
|
+
* bidi / tag-block / combining characters or homoglyphs (Cyrillic, Greek,
|
|
19
|
+
* fullwidth-Latin, Mathematical-Alphanumeric) and revealed only after
|
|
20
|
+
* de-obfuscation. Delta-gated (the directive must NOT be plainly present in
|
|
21
|
+
* the raw line) and verb+object-anchored (never a bare keyword/noun-phrase),
|
|
22
|
+
* so benign Cyrillic/Greek/CJK/fullwidth text stays clean. Emits ONE critical
|
|
23
|
+
* finding (score 40, quarantines alone). A blanket NFKC pass is intentionally
|
|
24
|
+
* NOT used — it folds fullwidth CJK to ASCII and false-positives; fullwidth
|
|
25
|
+
* Latin is mapped by offset and NFKC is applied per-char ONLY to the
|
|
26
|
+
* math-alphanumeric range (which contains no CJK).
|
|
27
|
+
* NOTE: unlike code_execution, this detector has NO documentation-context
|
|
28
|
+
* downgrade (findings are always inDocumentationContext:false). A *live*
|
|
29
|
+
* concealed payload (real invisibles/homoglyphs, not an escaped textual
|
|
30
|
+
* representation) is an attack even inside a fenced block — there is no
|
|
31
|
+
* legitimate reason to ship invisible/homoglyph-spliced directives.
|
|
32
|
+
*/
|
|
33
|
+
import { CODE_EXECUTION_PATTERNS } from './patterns.js';
|
|
34
|
+
import { safeRegexTest, safeRegexCheck } from './regex-utils.js';
|
|
35
|
+
import { analyzeMarkdownContext, isDocumentationContext } from './SecurityScanner.helpers.js';
|
|
36
|
+
// ============================================================================
|
|
37
|
+
// Obfuscation primitives
|
|
38
|
+
// ============================================================================
|
|
39
|
+
/**
|
|
40
|
+
* Invisible / format / bidi / tag-block / combining code points used to split or
|
|
41
|
+
* hide a keyword. Removing them rejoins a fragmented directive ("ig<ZWSP>nore" ->
|
|
42
|
+
* "ignore") and defuses Zalgo (U+0300-036F combining marks). Two copies: a
|
|
43
|
+
* non-global tester (safe in a per-line loop) and a global stripper.
|
|
44
|
+
*/
|
|
45
|
+
const INVISIBLE_RANGE = '\\u0300-\\u036F\\u00AD\\u061C\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF';
|
|
46
|
+
const INVISIBLE_TEST = new RegExp('[' + INVISIBLE_RANGE + ']|[\\u{E0000}-\\u{E007F}]', 'u');
|
|
47
|
+
const INVISIBLE_STRIP = new RegExp('[' + INVISIBLE_RANGE + ']|[\\u{E0000}-\\u{E007F}]', 'gu');
|
|
48
|
+
/**
|
|
49
|
+
* Conservative homoglyph map (a curated subset of UTS-#39 confusables): only the
|
|
50
|
+
* unambiguous Cyrillic / Greek look-alikes that real homoglyph attacks use to
|
|
51
|
+
* disguise Latin letters. Fullwidth Latin (offset 0xFEE0) and the Mathematical
|
|
52
|
+
* Alphanumeric Symbols block (U+1D400-1D7FF, e.g. bold/italic/script 𝐢𝐠𝐧𝐨𝐫𝐞)
|
|
53
|
+
* are handled programmatically below — never via a blanket NFKC pass, which would
|
|
54
|
+
* also fold fullwidth CJK to ASCII and false-positive. (NFKC is applied per-char
|
|
55
|
+
* ONLY to the math-alphanumeric range, which contains no CJK.)
|
|
56
|
+
*/
|
|
57
|
+
const CONFUSABLES = {
|
|
58
|
+
// Cyrillic -> Latin
|
|
59
|
+
а: 'a',
|
|
60
|
+
е: 'e',
|
|
61
|
+
о: 'o',
|
|
62
|
+
р: 'p',
|
|
63
|
+
с: 'c',
|
|
64
|
+
у: 'y',
|
|
65
|
+
х: 'x',
|
|
66
|
+
і: 'i',
|
|
67
|
+
ј: 'j',
|
|
68
|
+
ѕ: 's',
|
|
69
|
+
ԁ: 'd',
|
|
70
|
+
һ: 'h',
|
|
71
|
+
к: 'k',
|
|
72
|
+
м: 'm',
|
|
73
|
+
т: 't',
|
|
74
|
+
в: 'b',
|
|
75
|
+
н: 'h',
|
|
76
|
+
// Greek -> Latin
|
|
77
|
+
ο: 'o',
|
|
78
|
+
α: 'a',
|
|
79
|
+
ρ: 'p',
|
|
80
|
+
ε: 'e',
|
|
81
|
+
τ: 't',
|
|
82
|
+
ι: 'i',
|
|
83
|
+
κ: 'k',
|
|
84
|
+
υ: 'u',
|
|
85
|
+
χ: 'x',
|
|
86
|
+
ν: 'v',
|
|
87
|
+
ϲ: 'c',
|
|
88
|
+
β: 'b',
|
|
89
|
+
};
|
|
90
|
+
function isFullwidthLatin(cp) {
|
|
91
|
+
return (cp >= 0xff21 && cp <= 0xff3a) || (cp >= 0xff41 && cp <= 0xff5a);
|
|
92
|
+
}
|
|
93
|
+
/** Mathematical Alphanumeric Symbols (bold/italic/script/fraktur/double-struck/sans/mono). */
|
|
94
|
+
function isMathAlphanumeric(cp) {
|
|
95
|
+
return cp >= 0x1d400 && cp <= 0x1d7ff;
|
|
96
|
+
}
|
|
97
|
+
/** Remove invisible/format/bidi/tag/combining characters. */
|
|
98
|
+
function stripInvisible(s) {
|
|
99
|
+
return s.replace(INVISIBLE_STRIP, '');
|
|
100
|
+
}
|
|
101
|
+
/** Map homoglyphs + fullwidth Latin + math-alphanumeric to their ASCII skeleton. */
|
|
102
|
+
function confusableSkeleton(s) {
|
|
103
|
+
let out = '';
|
|
104
|
+
for (const ch of s) {
|
|
105
|
+
const cp = ch.codePointAt(0) ?? 0;
|
|
106
|
+
if (isFullwidthLatin(cp)) {
|
|
107
|
+
out += String.fromCodePoint(cp - 0xfee0);
|
|
108
|
+
}
|
|
109
|
+
else if (isMathAlphanumeric(cp)) {
|
|
110
|
+
// NFKC folds a math-styled glyph to its base; chain through CONFUSABLES so a
|
|
111
|
+
// math-styled Greek/Cyrillic homoglyph (folds to Greek/Cyrillic) still maps
|
|
112
|
+
// to Latin (SMI-5359 retro NIT). Safe: the range contains no CJK; a reserved
|
|
113
|
+
// hole stays unchanged (won't match).
|
|
114
|
+
const folded = ch.normalize('NFKC');
|
|
115
|
+
out += CONFUSABLES[folded] ?? folded;
|
|
116
|
+
}
|
|
117
|
+
else if (CONFUSABLES[ch]) {
|
|
118
|
+
out += CONFUSABLES[ch];
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
out += ch;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
/** True if the line contains a homoglyph / fullwidth-Latin / math-alphanumeric character. */
|
|
127
|
+
function hasConfusable(s) {
|
|
128
|
+
for (const ch of s) {
|
|
129
|
+
const cp = ch.codePointAt(0) ?? 0;
|
|
130
|
+
if (isFullwidthLatin(cp) || isMathAlphanumeric(cp) || CONFUSABLES[ch])
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Verb+object directive payloads worth concealing. STRICTLY verb+object — never a
|
|
137
|
+
* bare keyword or bare noun-phrase — so a single de-obfuscated benign word (or a
|
|
138
|
+
* benign feature phrase like "developer mode" rendered in fullwidth/math glyphs)
|
|
139
|
+
* cannot trip it. Visible "developer mode" / "do anything now" are left to the
|
|
140
|
+
* jailbreak detector, which scans the raw content. Quantifiers are bounded
|
|
141
|
+
* (ReDoS-safe). Non-global so .test / .match never carry lastIndex between calls.
|
|
142
|
+
*/
|
|
143
|
+
const OBFUSCATION_DIRECTIVE_PATTERN = /(?:ignore|disregard|forget)\s+(?:all\s+|the\s+)?(?:previous|prior|above|earlier)\s+(?:instruction|prompt|rule|direction)|bypass\s+(?:all\s+)?(?:restriction|filter|safety|guard|security)|(?:reveal|show|print|dump|leak)\s+(?:me\s+)?(?:your\s+|the\s+)?(?:system\s+)?(?:prompt|instruction)|(?:curl|wget)\b[^\n|]{0,120}?(?:https?:\/\/|\d{1,3}(?:\.\d{1,3}){3}|[\w-]{2,}\.[a-z]{2,})[^\n|]{0,120}?\|\s*(?:ba|z)?sh\b/i;
|
|
144
|
+
// ============================================================================
|
|
145
|
+
// Detectors
|
|
146
|
+
// ============================================================================
|
|
147
|
+
/**
|
|
148
|
+
* code_execution: remote fetch piped into an interpreter. Single-emission — at
|
|
149
|
+
* most one MEDIUM finding per skill (the first match). escalateCodeExecution()
|
|
150
|
+
* promotes it to CRITICAL on co-occurrence.
|
|
151
|
+
*/
|
|
152
|
+
export function scanCodeExecution(content, lineContexts) {
|
|
153
|
+
const lines = content.split('\n');
|
|
154
|
+
const contexts = lineContexts ?? analyzeMarkdownContext(content);
|
|
155
|
+
for (let i = 0; i < lines.length; i++) {
|
|
156
|
+
const line = lines[i];
|
|
157
|
+
for (const pattern of CODE_EXECUTION_PATTERNS) {
|
|
158
|
+
const match = safeRegexTest(pattern, line);
|
|
159
|
+
if (match) {
|
|
160
|
+
const ctx = contexts[i];
|
|
161
|
+
const inDocContext = ctx ? isDocumentationContext(ctx) : false;
|
|
162
|
+
return [
|
|
163
|
+
{
|
|
164
|
+
type: 'code_execution',
|
|
165
|
+
severity: 'medium',
|
|
166
|
+
message: `Remote fetch piped to an interpreter: "${match[0].slice(0, 60)}${match[0].length > 60 ? '...' : ''}"`,
|
|
167
|
+
location: line.trim().slice(0, 100),
|
|
168
|
+
lineNumber: i + 1,
|
|
169
|
+
category: 'code_execution',
|
|
170
|
+
inDocumentationContext: inDocContext,
|
|
171
|
+
confidence: 'high',
|
|
172
|
+
},
|
|
173
|
+
];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return [];
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* obfuscated_directive: a malicious directive concealed by Unicode obfuscation,
|
|
181
|
+
* revealed only after de-obfuscation. Single-emission CRITICAL. Delta-gated: a
|
|
182
|
+
* directive already plainly visible in the raw line is left to the jailbreak /
|
|
183
|
+
* prompt-leaking detectors.
|
|
184
|
+
*/
|
|
185
|
+
export function scanObfuscatedDirective(content) {
|
|
186
|
+
const lines = content.split('\n');
|
|
187
|
+
for (let i = 0; i < lines.length; i++) {
|
|
188
|
+
const raw = lines[i];
|
|
189
|
+
const hasInvisible = INVISIBLE_TEST.test(raw);
|
|
190
|
+
const hasConf = hasConfusable(raw);
|
|
191
|
+
if (!hasInvisible && !hasConf)
|
|
192
|
+
continue;
|
|
193
|
+
// Already visible => not concealed; another detector owns it.
|
|
194
|
+
if (safeRegexCheck(OBFUSCATION_DIRECTIVE_PATTERN, raw))
|
|
195
|
+
continue;
|
|
196
|
+
const transforms = [];
|
|
197
|
+
if (hasInvisible)
|
|
198
|
+
transforms.push(stripInvisible(raw));
|
|
199
|
+
if (hasConf)
|
|
200
|
+
transforms.push(confusableSkeleton(raw));
|
|
201
|
+
if (hasInvisible && hasConf)
|
|
202
|
+
transforms.push(confusableSkeleton(stripInvisible(raw)));
|
|
203
|
+
for (const transformed of transforms) {
|
|
204
|
+
if (transformed === raw)
|
|
205
|
+
continue;
|
|
206
|
+
const match = safeRegexTest(OBFUSCATION_DIRECTIVE_PATTERN, transformed);
|
|
207
|
+
if (match) {
|
|
208
|
+
return [
|
|
209
|
+
{
|
|
210
|
+
type: 'obfuscated_directive',
|
|
211
|
+
severity: 'critical',
|
|
212
|
+
message: `Security directive concealed via Unicode obfuscation, revealed after de-obfuscation: "${match[0].slice(0, 60)}${match[0].length > 60 ? '...' : ''}"`,
|
|
213
|
+
location: raw.trim().slice(0, 100),
|
|
214
|
+
lineNumber: i + 1,
|
|
215
|
+
category: 'obfuscated_directive',
|
|
216
|
+
inDocumentationContext: false,
|
|
217
|
+
confidence: 'high',
|
|
218
|
+
},
|
|
219
|
+
];
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return [];
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Co-occurrence types that turn a remote-fetch-to-interpreter from "suspicious"
|
|
227
|
+
* (medium) into "supply-chain execution" (critical).
|
|
228
|
+
*/
|
|
229
|
+
const CODE_EXECUTION_CO_OCCURRENCE = new Set([
|
|
230
|
+
'data_exfiltration',
|
|
231
|
+
'privilege_escalation',
|
|
232
|
+
'sensitive_path',
|
|
233
|
+
'obfuscated_directive',
|
|
234
|
+
]);
|
|
235
|
+
/**
|
|
236
|
+
* Escalate the code_execution finding to CRITICAL when a NON-documentation
|
|
237
|
+
* high/critical exfiltration / privilege / credential-path / obfuscation signal
|
|
238
|
+
* is also present. Mutates the finding in place. Requiring the co-signal to be
|
|
239
|
+
* non-documentation keeps legitimate security-research skills (whose examples
|
|
240
|
+
* live in fenced blocks) at MEDIUM.
|
|
241
|
+
*/
|
|
242
|
+
export function escalateCodeExecution(findings) {
|
|
243
|
+
const codeExec = findings.find((f) => f.type === 'code_execution');
|
|
244
|
+
if (!codeExec)
|
|
245
|
+
return;
|
|
246
|
+
const hasDangerousCoSignal = findings.some((f) => f !== codeExec &&
|
|
247
|
+
CODE_EXECUTION_CO_OCCURRENCE.has(f.type) &&
|
|
248
|
+
f.inDocumentationContext !== true &&
|
|
249
|
+
(f.severity === 'high' || f.severity === 'critical'));
|
|
250
|
+
if (hasDangerousCoSignal) {
|
|
251
|
+
codeExec.severity = 'critical';
|
|
252
|
+
codeExec.message = `Remote fetch piped to an interpreter, co-occurring with exfiltration/privilege/credential signals — likely supply-chain execution. ${codeExec.message}`;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=SecurityScanner.exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityScanner.exec.js","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityScanner.helpers.d.ts","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAElB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAQnB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAA;CACvB;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK3D;AAMD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CA0ErE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAW5E;AAMD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,mBAAmB,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,mDAAmD;IACnD,UAAU,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;CACjD;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,GAC3B,eAAe,EAAE,CAoEnB;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,kBAAkB,CAAA;CAC9B,CA+
|
|
1
|
+
{"version":3,"file":"SecurityScanner.helpers.d.ts","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAElB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAQnB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAA;CACvB;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK3D;AAMD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CA0ErE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAW5E;AAMD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,mBAAmB,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,mDAAmD;IACnD,UAAU,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;CACjD;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,GAC3B,eAAe,EAAE,CAoEnB;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,kBAAkB,CAAA;CAC9B,CA+GA"}
|
|
@@ -217,6 +217,8 @@ export function calculateRiskScore(findings) {
|
|
|
217
217
|
aiDefence: 0,
|
|
218
218
|
ssrf: 0,
|
|
219
219
|
pii: 0,
|
|
220
|
+
codeExecution: 0,
|
|
221
|
+
obfuscatedDirective: 0,
|
|
220
222
|
};
|
|
221
223
|
const confidenceWeights = {
|
|
222
224
|
high: 1.0,
|
|
@@ -262,6 +264,12 @@ export function calculateRiskScore(findings) {
|
|
|
262
264
|
case 'pii':
|
|
263
265
|
breakdown.pii += score;
|
|
264
266
|
break;
|
|
267
|
+
case 'code_execution':
|
|
268
|
+
breakdown.codeExecution += score;
|
|
269
|
+
break;
|
|
270
|
+
case 'obfuscated_directive':
|
|
271
|
+
breakdown.obfuscatedDirective += score;
|
|
272
|
+
break;
|
|
265
273
|
}
|
|
266
274
|
}
|
|
267
275
|
// Cap each category at 100
|
|
@@ -276,6 +284,12 @@ export function calculateRiskScore(findings) {
|
|
|
276
284
|
breakdown.aiDefence = Math.min(100, breakdown.aiDefence);
|
|
277
285
|
breakdown.ssrf = Math.min(100, breakdown.ssrf);
|
|
278
286
|
breakdown.pii = Math.min(100, breakdown.pii);
|
|
287
|
+
breakdown.codeExecution = Math.min(100, breakdown.codeExecution);
|
|
288
|
+
breakdown.obfuscatedDirective = Math.min(100, breakdown.obfuscatedDirective);
|
|
289
|
+
// SMI-5359 Wave 4.2: the two new categories use a 0.40 coefficient and are ADDITIVE
|
|
290
|
+
// (the original eleven coefficients sum to 1.0; these add on top). No code assumes the
|
|
291
|
+
// coefficients sum to 1.0, and the final Math.min(100, ...) cap is preserved — so a skill
|
|
292
|
+
// that triggers neither new category scores exactly as before (both breakdown entries 0).
|
|
279
293
|
const total = Math.min(100, Math.round(breakdown.jailbreak * 0.2 +
|
|
280
294
|
breakdown.socialEngineering * 0.11 +
|
|
281
295
|
breakdown.promptLeaking * 0.11 +
|
|
@@ -286,7 +300,9 @@ export function calculateRiskScore(findings) {
|
|
|
286
300
|
breakdown.externalUrls * 0.04 +
|
|
287
301
|
breakdown.aiDefence * 0.12 +
|
|
288
302
|
breakdown.ssrf * 0.04 +
|
|
289
|
-
breakdown.pii * 0.08
|
|
303
|
+
breakdown.pii * 0.08 +
|
|
304
|
+
breakdown.codeExecution * 0.4 +
|
|
305
|
+
breakdown.obfuscatedDirective * 0.4));
|
|
290
306
|
return { total, breakdown };
|
|
291
307
|
}
|
|
292
308
|
//# sourceMappingURL=SecurityScanner.helpers.js.map
|