@skillsmith/core 0.4.17 → 0.5.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.
Files changed (227) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/api/client.cache.d.ts +34 -0
  4. package/dist/src/api/client.cache.d.ts.map +1 -0
  5. package/dist/src/api/client.cache.js +37 -0
  6. package/dist/src/api/client.cache.js.map +1 -0
  7. package/dist/src/api/client.d.ts +32 -104
  8. package/dist/src/api/client.d.ts.map +1 -1
  9. package/dist/src/api/client.events.d.ts +39 -0
  10. package/dist/src/api/client.events.d.ts.map +1 -0
  11. package/dist/src/api/client.events.js +77 -0
  12. package/dist/src/api/client.events.js.map +1 -0
  13. package/dist/src/api/client.js +65 -52
  14. package/dist/src/api/client.js.map +1 -1
  15. package/dist/src/api/client.types.d.ts +98 -0
  16. package/dist/src/api/client.types.d.ts.map +1 -0
  17. package/dist/src/api/client.types.js +22 -0
  18. package/dist/src/api/client.types.js.map +1 -0
  19. package/dist/src/api/event-batcher.d.ts +81 -0
  20. package/dist/src/api/event-batcher.d.ts.map +1 -0
  21. package/dist/src/api/event-batcher.js +191 -0
  22. package/dist/src/api/event-batcher.js.map +1 -0
  23. package/dist/src/api/index.d.ts +1 -0
  24. package/dist/src/api/index.d.ts.map +1 -1
  25. package/dist/src/api/index.js +2 -0
  26. package/dist/src/api/index.js.map +1 -1
  27. package/dist/src/api/schemas.d.ts +58 -0
  28. package/dist/src/api/schemas.d.ts.map +1 -1
  29. package/dist/src/api/schemas.js +45 -0
  30. package/dist/src/api/schemas.js.map +1 -1
  31. package/dist/src/audit/remote-audit.d.ts +28 -0
  32. package/dist/src/audit/remote-audit.d.ts.map +1 -0
  33. package/dist/src/audit/remote-audit.js +90 -0
  34. package/dist/src/audit/remote-audit.js.map +1 -0
  35. package/dist/src/audit/remote-audit.test.d.ts +2 -0
  36. package/dist/src/audit/remote-audit.test.d.ts.map +1 -0
  37. package/dist/src/audit/remote-audit.test.js +81 -0
  38. package/dist/src/audit/remote-audit.test.js.map +1 -0
  39. package/dist/src/data/generic-triggers.d.ts +24 -0
  40. package/dist/src/data/generic-triggers.d.ts.map +1 -0
  41. package/dist/src/data/generic-triggers.js +19 -0
  42. package/dist/src/data/generic-triggers.js.map +1 -0
  43. package/dist/src/data/generic-triggers.json +35 -0
  44. package/dist/src/db/migration-runner.d.ts +44 -0
  45. package/dist/src/db/migration-runner.d.ts.map +1 -0
  46. package/dist/src/db/migration-runner.js +175 -0
  47. package/dist/src/db/migration-runner.js.map +1 -0
  48. package/dist/src/db/migration.d.ts.map +1 -1
  49. package/dist/src/db/migration.js +2 -1
  50. package/dist/src/db/migration.js.map +1 -1
  51. package/dist/src/db/migrations/v12-risk-score-history.d.ts +10 -0
  52. package/dist/src/db/migrations/v12-risk-score-history.d.ts.map +1 -0
  53. package/dist/src/db/migrations/v12-risk-score-history.js +25 -0
  54. package/dist/src/db/migrations/v12-risk-score-history.js.map +1 -0
  55. package/dist/src/db/migrations/v13-team-tables.d.ts +11 -0
  56. package/dist/src/db/migrations/v13-team-tables.d.ts.map +1 -0
  57. package/dist/src/db/migrations/v13-team-tables.js +14 -0
  58. package/dist/src/db/migrations/v13-team-tables.js.map +1 -0
  59. package/dist/src/db/schema-sql.d.ts +16 -0
  60. package/dist/src/db/schema-sql.d.ts.map +1 -0
  61. package/dist/src/db/schema-sql.js +161 -0
  62. package/dist/src/db/schema-sql.js.map +1 -0
  63. package/dist/src/db/schema.d.ts +7 -32
  64. package/dist/src/db/schema.d.ts.map +1 -1
  65. package/dist/src/db/schema.js +13 -303
  66. package/dist/src/db/schema.js.map +1 -1
  67. package/dist/src/exports/repositories.d.ts +1 -0
  68. package/dist/src/exports/repositories.d.ts.map +1 -1
  69. package/dist/src/exports/repositories.js +4 -0
  70. package/dist/src/exports/repositories.js.map +1 -1
  71. package/dist/src/exports/services.d.ts +2 -1
  72. package/dist/src/exports/services.d.ts.map +1 -1
  73. package/dist/src/exports/services.js +1 -0
  74. package/dist/src/exports/services.js.map +1 -1
  75. package/dist/src/index.d.ts +5 -1
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/src/index.js +5 -1
  78. package/dist/src/index.js.map +1 -1
  79. package/dist/src/repositories/RiskScoreHistoryRepository.d.ts +37 -0
  80. package/dist/src/repositories/RiskScoreHistoryRepository.d.ts.map +1 -0
  81. package/dist/src/repositories/RiskScoreHistoryRepository.js +66 -0
  82. package/dist/src/repositories/RiskScoreHistoryRepository.js.map +1 -0
  83. package/dist/src/scoring/index.d.ts +1 -0
  84. package/dist/src/scoring/index.d.ts.map +1 -1
  85. package/dist/src/scoring/index.js +1 -0
  86. package/dist/src/scoring/index.js.map +1 -1
  87. package/dist/src/scoring/quality-score.d.ts +49 -0
  88. package/dist/src/scoring/quality-score.d.ts.map +1 -0
  89. package/dist/src/scoring/quality-score.js +73 -0
  90. package/dist/src/scoring/quality-score.js.map +1 -0
  91. package/dist/src/scripts/__tests__/scan-imported-skills.test.js +5 -0
  92. package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
  93. package/dist/src/security/index.d.ts +2 -0
  94. package/dist/src/security/index.d.ts.map +1 -1
  95. package/dist/src/security/index.js +2 -0
  96. package/dist/src/security/index.js.map +1 -1
  97. package/dist/src/security/risk-trend.d.ts +21 -0
  98. package/dist/src/security/risk-trend.d.ts.map +1 -0
  99. package/dist/src/security/risk-trend.js +81 -0
  100. package/dist/src/security/risk-trend.js.map +1 -0
  101. package/dist/src/security/scanner/SecurityScanner.d.ts +2 -0
  102. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
  103. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -1
  104. package/dist/src/security/scanner/SecurityScanner.helpers.js +14 -8
  105. package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -1
  106. package/dist/src/security/scanner/SecurityScanner.js +55 -1
  107. package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
  108. package/dist/src/security/scanner/index.d.ts +1 -1
  109. package/dist/src/security/scanner/index.d.ts.map +1 -1
  110. package/dist/src/security/scanner/index.js +1 -1
  111. package/dist/src/security/scanner/index.js.map +1 -1
  112. package/dist/src/security/scanner/patterns.d.ts +6 -0
  113. package/dist/src/security/scanner/patterns.d.ts.map +1 -1
  114. package/dist/src/security/scanner/patterns.js +25 -0
  115. package/dist/src/security/scanner/patterns.js.map +1 -1
  116. package/dist/src/security/scanner/types.d.ts +2 -1
  117. package/dist/src/security/scanner/types.d.ts.map +1 -1
  118. package/dist/src/security/scanner/weights.d.ts.map +1 -1
  119. package/dist/src/security/scanner/weights.js +1 -0
  120. package/dist/src/security/scanner/weights.js.map +1 -1
  121. package/dist/src/services/skill-config-schema.d.ts +36 -0
  122. package/dist/src/services/skill-config-schema.d.ts.map +1 -0
  123. package/dist/src/services/skill-config-schema.js +76 -0
  124. package/dist/src/services/skill-config-schema.js.map +1 -0
  125. package/dist/src/services/skill-installation.feedback.d.ts +24 -0
  126. package/dist/src/services/skill-installation.feedback.d.ts.map +1 -0
  127. package/dist/src/services/skill-installation.feedback.js +37 -0
  128. package/dist/src/services/skill-installation.feedback.js.map +1 -0
  129. package/dist/src/services/skill-installation.helpers.d.ts +33 -7
  130. package/dist/src/services/skill-installation.helpers.d.ts.map +1 -1
  131. package/dist/src/services/skill-installation.helpers.js +74 -32
  132. package/dist/src/services/skill-installation.helpers.js.map +1 -1
  133. package/dist/src/services/skill-installation.service.d.ts +8 -16
  134. package/dist/src/services/skill-installation.service.d.ts.map +1 -1
  135. package/dist/src/services/skill-installation.service.js +86 -37
  136. package/dist/src/services/skill-installation.service.js.map +1 -1
  137. package/dist/src/services/skill-installation.types.d.ts +22 -0
  138. package/dist/src/services/skill-installation.types.d.ts.map +1 -1
  139. package/dist/src/services/skill-installation.types.js.map +1 -1
  140. package/dist/src/types.d.ts +2 -0
  141. package/dist/src/types.d.ts.map +1 -1
  142. package/dist/tests/SecurityScanner.ai-defence.test.d.ts +6 -0
  143. package/dist/tests/SecurityScanner.ai-defence.test.d.ts.map +1 -0
  144. package/dist/tests/SecurityScanner.ai-defence.test.js +221 -0
  145. package/dist/tests/SecurityScanner.ai-defence.test.js.map +1 -0
  146. package/dist/tests/SecurityScanner.performance.test.d.ts +6 -0
  147. package/dist/tests/SecurityScanner.performance.test.d.ts.map +1 -0
  148. package/dist/tests/SecurityScanner.performance.test.js +132 -0
  149. package/dist/tests/SecurityScanner.performance.test.js.map +1 -0
  150. package/dist/tests/SecurityScanner.scoring.test.d.ts +6 -0
  151. package/dist/tests/SecurityScanner.scoring.test.d.ts.map +1 -0
  152. package/dist/tests/SecurityScanner.scoring.test.js +197 -0
  153. package/dist/tests/SecurityScanner.scoring.test.js.map +1 -0
  154. package/dist/tests/SecurityScanner.test.d.ts +2 -2
  155. package/dist/tests/SecurityScanner.test.js +2 -520
  156. package/dist/tests/SecurityScanner.test.js.map +1 -1
  157. package/dist/tests/SkillMatcher.test.js +5 -5
  158. package/dist/tests/SkillMatcher.test.js.map +1 -1
  159. package/dist/tests/api/client.cache.test.d.ts +8 -0
  160. package/dist/tests/api/client.cache.test.d.ts.map +1 -0
  161. package/dist/tests/api/client.cache.test.js +128 -0
  162. package/dist/tests/api/client.cache.test.js.map +1 -0
  163. package/dist/tests/db/schema-migrations.test.js +8 -6
  164. package/dist/tests/db/schema-migrations.test.js.map +1 -1
  165. package/dist/tests/integration/events-batch-contract.test.d.ts +12 -0
  166. package/dist/tests/integration/events-batch-contract.test.d.ts.map +1 -0
  167. package/dist/tests/integration/events-batch-contract.test.js +69 -0
  168. package/dist/tests/integration/events-batch-contract.test.js.map +1 -0
  169. package/dist/tests/scoring/quality-score.test.d.ts +7 -0
  170. package/dist/tests/scoring/quality-score.test.d.ts.map +1 -0
  171. package/dist/tests/scoring/quality-score.test.js +78 -0
  172. package/dist/tests/scoring/quality-score.test.js.map +1 -0
  173. package/dist/tests/security/ContinuousSecurity.false-positives.test.d.ts +6 -0
  174. package/dist/tests/security/ContinuousSecurity.false-positives.test.d.ts.map +1 -0
  175. package/dist/tests/security/ContinuousSecurity.false-positives.test.js +89 -0
  176. package/dist/tests/security/ContinuousSecurity.false-positives.test.js.map +1 -0
  177. package/dist/tests/security/ContinuousSecurity.performance.test.d.ts +6 -0
  178. package/dist/tests/security/ContinuousSecurity.performance.test.d.ts.map +1 -0
  179. package/dist/tests/security/ContinuousSecurity.performance.test.js +177 -0
  180. package/dist/tests/security/ContinuousSecurity.performance.test.js.map +1 -0
  181. package/dist/tests/security/ContinuousSecurity.reporting.test.d.ts +6 -0
  182. package/dist/tests/security/ContinuousSecurity.reporting.test.d.ts.map +1 -0
  183. package/dist/tests/security/ContinuousSecurity.reporting.test.js +106 -0
  184. package/dist/tests/security/ContinuousSecurity.reporting.test.js.map +1 -0
  185. package/dist/tests/security/ContinuousSecurity.test.d.ts +9 -2
  186. package/dist/tests/security/ContinuousSecurity.test.d.ts.map +1 -1
  187. package/dist/tests/security/ContinuousSecurity.test.js +9 -336
  188. package/dist/tests/security/ContinuousSecurity.test.js.map +1 -1
  189. package/dist/tests/security/pii-detection.test.d.ts +7 -0
  190. package/dist/tests/security/pii-detection.test.d.ts.map +1 -0
  191. package/dist/tests/security/pii-detection.test.js +91 -0
  192. package/dist/tests/security/pii-detection.test.js.map +1 -0
  193. package/dist/tests/security/risk-trend.test.d.ts +6 -0
  194. package/dist/tests/security/risk-trend.test.d.ts.map +1 -0
  195. package/dist/tests/security/risk-trend.test.js +68 -0
  196. package/dist/tests/security/risk-trend.test.js.map +1 -0
  197. package/dist/tests/security/scanner-regression-guard.test.d.ts +12 -0
  198. package/dist/tests/security/scanner-regression-guard.test.d.ts.map +1 -0
  199. package/dist/tests/security/scanner-regression-guard.test.js +111 -0
  200. package/dist/tests/security/scanner-regression-guard.test.js.map +1 -0
  201. package/dist/tests/services/aidefence-feedback.test.d.ts +6 -0
  202. package/dist/tests/services/aidefence-feedback.test.d.ts.map +1 -0
  203. package/dist/tests/services/aidefence-feedback.test.js +115 -0
  204. package/dist/tests/services/aidefence-feedback.test.js.map +1 -0
  205. package/dist/tests/services/dep-quarantine-check.test.d.ts +5 -0
  206. package/dist/tests/services/dep-quarantine-check.test.d.ts.map +1 -0
  207. package/dist/tests/services/dep-quarantine-check.test.js +92 -0
  208. package/dist/tests/services/dep-quarantine-check.test.js.map +1 -0
  209. package/dist/tests/services/skill-config-schema.test.d.ts +5 -0
  210. package/dist/tests/services/skill-config-schema.test.d.ts.map +1 -0
  211. package/dist/tests/services/skill-config-schema.test.js +98 -0
  212. package/dist/tests/services/skill-config-schema.test.js.map +1 -0
  213. package/dist/tests/unit/api-client-events.test.d.ts +10 -0
  214. package/dist/tests/unit/api-client-events.test.d.ts.map +1 -0
  215. package/dist/tests/unit/api-client-events.test.js +73 -0
  216. package/dist/tests/unit/api-client-events.test.js.map +1 -0
  217. package/dist/tests/unit/event-batcher.test.d.ts +13 -0
  218. package/dist/tests/unit/event-batcher.test.d.ts.map +1 -0
  219. package/dist/tests/unit/event-batcher.test.js +155 -0
  220. package/dist/tests/unit/event-batcher.test.js.map +1 -0
  221. package/dist/tests/unit/services/skill-installation-extended.test.d.ts +8 -0
  222. package/dist/tests/unit/services/skill-installation-extended.test.d.ts.map +1 -0
  223. package/dist/tests/unit/services/skill-installation-extended.test.js +423 -0
  224. package/dist/tests/unit/services/skill-installation-extended.test.js.map +1 -0
  225. package/dist/tests/unit/services/skill-installation.service.test.js +0 -390
  226. package/dist/tests/unit/services/skill-installation.service.test.js.map +1 -1
  227. package/package.json +7 -7
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @fileoverview AIDefence feedback + risk trend helpers for install pipeline
3
+ * @module @skillsmith/core/services/skill-installation.feedback
4
+ * @see SMI-3873: AIDefence Learning Loop
5
+ * @see SMI-3874: Risk Trend Detection
6
+ */
7
+ import type { ScanReport } from '../security/index.js';
8
+ import type { RiskScoreHistoryRepository } from '../repositories/RiskScoreHistoryRepository.js';
9
+ import type { AiDefenceFeedback } from './skill-installation.types.js';
10
+ /** SMI-3873: Record AIDefence learning feedback. Best-effort, non-blocking. */
11
+ export declare function recordAiDefenceFeedback(params: {
12
+ feedback: AiDefenceFeedback | undefined;
13
+ skillMdContent: string;
14
+ scanReport: ScanReport | undefined;
15
+ blocked: boolean;
16
+ }): void;
17
+ /** SMI-3874: Collect risk trend warnings from scan history. */
18
+ export declare function collectTrendWarnings(params: {
19
+ historyRepo: RiskScoreHistoryRepository | undefined;
20
+ skillId: string;
21
+ scanReport: ScanReport;
22
+ contentHash: string | null;
23
+ }): string[];
24
+ //# sourceMappingURL=skill-installation.feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-installation.feedback.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.feedback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAGtE,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAA;IACvC,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,UAAU,GAAG,SAAS,CAAA;IAClC,OAAO,EAAE,OAAO,CAAA;CACjB,GAAG,IAAI,CAaP;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,WAAW,EAAE,0BAA0B,GAAG,SAAS,CAAA;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,GAAG,MAAM,EAAE,CASX"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @fileoverview AIDefence feedback + risk trend helpers for install pipeline
3
+ * @module @skillsmith/core/services/skill-installation.feedback
4
+ * @see SMI-3873: AIDefence Learning Loop
5
+ * @see SMI-3874: Risk Trend Detection
6
+ */
7
+ import { detectRiskTrend } from '../security/risk-trend.js';
8
+ /** SMI-3873: Record AIDefence learning feedback. Best-effort, non-blocking. */
9
+ export function recordAiDefenceFeedback(params) {
10
+ if (!params.feedback || !params.scanReport)
11
+ return;
12
+ const report = params.scanReport;
13
+ params.feedback
14
+ .recordFeedback({
15
+ input: params.skillMdContent.slice(0, 1000),
16
+ wasAccurate: true,
17
+ verdict: params.blocked ? 'true_positive' : report.passed ? 'true_negative' : 'true_positive',
18
+ threatType: !report.passed ? report.findings[0]?.type : undefined,
19
+ mitigation: params.blocked ? 'block' : report.passed ? 'log' : 'block',
20
+ mitigationSuccess: true,
21
+ })
22
+ .catch(() => { }); // best-effort
23
+ }
24
+ /** SMI-3874: Collect risk trend warnings from scan history. */
25
+ export function collectTrendWarnings(params) {
26
+ if (!params.historyRepo)
27
+ return [];
28
+ try {
29
+ const history = params.historyRepo.getHistory(params.skillId, 5);
30
+ const trend = detectRiskTrend(params.scanReport.riskScore, history);
31
+ return trend.anomaly ? [trend.message] : [];
32
+ }
33
+ catch {
34
+ return [];
35
+ }
36
+ }
37
+ //# sourceMappingURL=skill-installation.feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-installation.feedback.js","sourceRoot":"","sources":["../../../src/services/skill-installation.feedback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CAAC,MAKvC;IACC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAM;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAA;IAChC,MAAM,CAAC,QAAQ;SACZ,cAAc,CAAC;QACd,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;QAC3C,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;QAC7F,UAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS;QACjE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;QACtE,iBAAiB,EAAE,IAAI;KACxB,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA,CAAC,cAAc;AACnC,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,oBAAoB,CAAC,MAKpC;IACC,IAAI,CAAC,MAAM,CAAC,WAAW;QAAE,OAAO,EAAE,CAAA;IAClC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACnE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -8,11 +8,11 @@
8
8
  */
9
9
  import type { SkillDependencyRepository } from '../repositories/SkillDependencyRepository.js';
10
10
  import type { Database } from '../db/database-interface.js';
11
- import type { DepIntelResult, OptimizationInfo, ProgressCallback, UninstallResult } from './skill-installation.types.js';
11
+ import type { RiskScoreHistoryRepository } from '../repositories/RiskScoreHistoryRepository.js';
12
+ import type { ScanReport } from '../security/index.js';
13
+ import type { DepIntelResult, OptimizationInfo, ProgressCallback, QuarantineStatus, UninstallResult } from './skill-installation.types.js';
12
14
  import type { ManifestManager } from './skill-manifest.js';
13
- /**
14
- * Result of applying optimization to a skill's content.
15
- */
15
+ /** Result of applying optimization to a skill's content. */
16
16
  export interface OptimizationResult {
17
17
  finalSkillContent: string;
18
18
  subSkillFiles: Array<{
@@ -42,9 +42,7 @@ export declare function checkForModifications(skillPath: string, installedAt: st
42
42
  export declare function generateTips(skillName: string, optimizationInfo: OptimizationInfo): string[];
43
43
  export declare function extractDepIntel(skillMdContent: string): DepIntelResult;
44
44
  export declare function persistDependencies(repo: SkillDependencyRepository, skillId: string, content: string, declared: DepIntelResult['dep_declared']): void;
45
- /**
46
- * Perform skill uninstall with manifest awareness and orphan fallback.
47
- */
45
+ /** Perform skill uninstall with manifest awareness and orphan fallback. */
48
46
  export declare function performUninstall(params: {
49
47
  skillName: string;
50
48
  force: boolean;
@@ -59,4 +57,32 @@ export declare function performUninstall(params: {
59
57
  */
60
58
  export declare function applyOptimization(db: Database, skillId: string, skillName: string, skillMdContent: string): Promise<OptimizationResult>;
61
59
  export declare function sanitizeInstallError(error: unknown): string;
60
+ /** Compute quality score (0-1) from scan report and skill metadata. */
61
+ export declare function computeAndAttachQualityScore(params: {
62
+ scanReport: ScanReport | undefined;
63
+ description: string | null;
64
+ tagCount: number;
65
+ hasRepoUrl: boolean;
66
+ hasAuthor: boolean;
67
+ trustTier: string;
68
+ hasExamples: boolean;
69
+ }): number;
70
+ /** Record a risk score snapshot. Best-effort: swallows errors. */
71
+ export declare function recordRiskHistory(params: {
72
+ historyRepo: RiskScoreHistoryRepository | undefined;
73
+ skillId: string;
74
+ scanReport: ScanReport;
75
+ contentHash: string | null;
76
+ source: 'install' | 'indexer' | 'rescan';
77
+ }): void;
78
+ /** SMI-3870: Validate config.json content; returns validity and warnings. */
79
+ export declare function validateOptionalConfig(content: string): {
80
+ valid: boolean;
81
+ warnings: string[];
82
+ };
83
+ /** SMI-3871: Cross-reference dependency targets against quarantine status. */
84
+ export declare function checkDepsAgainstQuarantine(depIntel: DepIntelResult, getStatus: (skillId: string) => QuarantineStatus | null): {
85
+ warnings: string[];
86
+ quarantinedDeps: string[];
87
+ };
62
88
  //# sourceMappingURL=skill-installation.helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installation.helpers.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAI7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAChB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3D,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,gBAAgB,EAAE,gBAAgB,CAAA;CACnC;AAMD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CA+BjE;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAMD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CASlE;AAMD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAS1E;AAMD,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAMD,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAMD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAyB5F;AAMD,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,CAWtE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GACvC,IAAI,CAyBN;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,eAAe,CAAA;IACzB,mBAAmB,EAAE,yBAAyB,CAAA;IAC9C,UAAU,EAAE,gBAAgB,CAAA;CAC7B,GAAG,OAAO,CAAC,eAAe,CAAC,CAuF3B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CA8C7B;AAqBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO3D"}
1
+ {"version":3,"file":"skill-installation.helpers.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.helpers.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import { createHash } from 'crypto';
12
12
  import { extractMcpReferences } from '../analysis/McpReferenceExtractor.js';
13
13
  import { mergeDependencies } from '../analysis/DependencyMerger.js';
14
14
  import { TransformationService } from '../services/TransformationService.js';
15
+ import { computeQualityScore } from '../scoring/quality-score.js';
16
+ import { validateSkillConfig } from './skill-config-schema.js';
15
17
  export function parseSkillIdInternal(input) {
16
18
  if (input.startsWith('https://github.com/')) {
17
19
  const url = new URL(input);
@@ -41,9 +43,6 @@ export function parseSkillIdInternal(input) {
41
43
  }
42
44
  throw new Error('Invalid skill ID format: ' + input + '. Use owner/repo or GitHub URL.');
43
45
  }
44
- // ============================================================================
45
- // Content Hashing
46
- // ============================================================================
47
46
  export function hashContent(content) {
48
47
  return createHash('sha256').update(content).digest('hex');
49
48
  }
@@ -57,20 +56,13 @@ export function validateSkillMd(content) {
57
56
  }
58
57
  return { valid: errors.length === 0, errors };
59
58
  }
60
- // ============================================================================
61
- // Git-Crypt Detection
62
- // ============================================================================
63
59
  export function assertNotEncrypted(content, filePath) {
64
60
  if (content.startsWith('\x00GITCRYPT')) {
65
61
  throw new Error('File "' +
66
62
  filePath +
67
- '" is git-crypt encrypted. ' +
68
- 'The repository uses git-crypt and this file cannot be fetched from GitHub.');
63
+ '" is git-crypt encrypted. The repository uses git-crypt and this file cannot be fetched from GitHub.');
69
64
  }
70
65
  }
71
- // ============================================================================
72
- // GitHub Content Fetching
73
- // ============================================================================
74
66
  export async function fetchFromGitHub(owner, repo, filePath, branch = 'main') {
75
67
  const url = 'https://raw.githubusercontent.com/' + owner + '/' + repo + '/' + branch + '/' + filePath;
76
68
  const response = await fetch(url);
@@ -91,9 +83,6 @@ export async function fetchFromGitHub(owner, repo, filePath, branch = 'main') {
91
83
  assertNotEncrypted(text, filePath);
92
84
  return text;
93
85
  }
94
- // ============================================================================
95
- // Modification Detection
96
- // ============================================================================
97
86
  export async function checkForModifications(skillPath, installedAt) {
98
87
  try {
99
88
  const installDate = new Date(installedAt);
@@ -113,9 +102,6 @@ export async function checkForModifications(skillPath, installedAt) {
113
102
  return false;
114
103
  }
115
104
  }
116
- // ============================================================================
117
- // Tips Generation
118
- // ============================================================================
119
105
  export function generateTips(skillName, optimizationInfo) {
120
106
  const tips = [
121
107
  'Skill "' + skillName + '" installed successfully!',
@@ -123,8 +109,7 @@ export function generateTips(skillName, optimizationInfo) {
123
109
  'View installed skills: ls ~/.claude/skills/',
124
110
  ];
125
111
  if (optimizationInfo.optimized) {
126
- tips.push('');
127
- tips.push('[Optimization] Skillsmith Optimization Applied:');
112
+ tips.push('', '[Optimization] Skillsmith Optimization Applied:');
128
113
  if (optimizationInfo.tokenReductionPercent && optimizationInfo.tokenReductionPercent > 0) {
129
114
  tips.push(' - Estimated ' + optimizationInfo.tokenReductionPercent + '% token reduction');
130
115
  }
@@ -135,13 +120,9 @@ export function generateTips(skillName, optimizationInfo) {
135
120
  tips.push(' - Companion subagent generated: ' + optimizationInfo.subagentPath);
136
121
  }
137
122
  }
138
- tips.push('');
139
- tips.push('To uninstall: use the uninstall_skill tool');
123
+ tips.push('', 'To uninstall: use the uninstall_skill tool');
140
124
  return tips;
141
125
  }
142
- // ============================================================================
143
- // Dependency Intelligence
144
- // ============================================================================
145
126
  export function extractDepIntel(skillMdContent) {
146
127
  const mcpResult = extractMcpReferences(skillMdContent);
147
128
  const warnings = [];
@@ -178,9 +159,7 @@ export function persistDependencies(repo, skillId, content, declared) {
178
159
  repo.setDependencies(skillId, sourceRows, source);
179
160
  }
180
161
  }
181
- /**
182
- * Perform skill uninstall with manifest awareness and orphan fallback.
183
- */
162
+ /** Perform skill uninstall with manifest awareness and orphan fallback. */
184
163
  export async function performUninstall(params) {
185
164
  const { skillName, force, skillsDir, manifest, skillDependencyRepo, onProgress } = params;
186
165
  try {
@@ -306,11 +285,7 @@ export async function applyOptimization(db, skillId, skillName, skillMdContent)
306
285
  optimizationInfo: { optimized: false },
307
286
  };
308
287
  }
309
- /**
310
- * Sanitize install error messages to avoid leaking internal details.
311
- * Returns a safe error message if the error matches known prefixes,
312
- * otherwise returns a generic message.
313
- */
288
+ /** Sanitize install error messages to avoid leaking internal details. */
314
289
  const KNOWN_ERROR_PREFIXES = [
315
290
  'already installed',
316
291
  'Could not find SKILL.md',
@@ -332,4 +307,71 @@ export function sanitizeInstallError(error) {
332
307
  }
333
308
  return 'Installation failed due to an internal error';
334
309
  }
310
+ // SMI-3864: Quality score + risk history helpers
311
+ /** Compute quality score (0-1) from scan report and skill metadata. */
312
+ export function computeAndAttachQualityScore(params) {
313
+ return computeQualityScore({
314
+ riskScore: params.scanReport?.riskScore ?? null,
315
+ securityFindingsCount: params.scanReport?.findings.length ?? 0,
316
+ securityPassed: params.scanReport?.passed ?? null,
317
+ description: params.description,
318
+ tagCount: params.tagCount,
319
+ hasRepoUrl: params.hasRepoUrl,
320
+ hasAuthor: params.hasAuthor,
321
+ trustTier: params.trustTier,
322
+ hasExamples: params.hasExamples,
323
+ });
324
+ }
325
+ /** Record a risk score snapshot. Best-effort: swallows errors. */
326
+ export function recordRiskHistory(params) {
327
+ if (!params.historyRepo)
328
+ return;
329
+ try {
330
+ params.historyRepo.record({
331
+ skillId: params.skillId,
332
+ riskScore: params.scanReport.riskScore,
333
+ findingsCount: params.scanReport.findings.length,
334
+ contentHash: params.contentHash,
335
+ scannedAt: params.scanReport.scannedAt.toISOString(),
336
+ source: params.source,
337
+ });
338
+ }
339
+ catch {
340
+ // Best-effort — do not block install on history recording failure
341
+ }
342
+ }
343
+ /** SMI-3870: Validate config.json content; returns validity and warnings. */
344
+ export function validateOptionalConfig(content) {
345
+ const result = validateSkillConfig(content);
346
+ if (!result.valid) {
347
+ return { valid: false, warnings: ['config.json rejected: ' + result.errors.join('; ')] };
348
+ }
349
+ return { valid: true, warnings: result.warnings };
350
+ }
351
+ /** SMI-3871: Cross-reference dependency targets against quarantine status. */
352
+ export function checkDepsAgainstQuarantine(depIntel, getStatus) {
353
+ const warnings = [];
354
+ const quarantinedDeps = [];
355
+ const checked = new Set();
356
+ const check = (target) => {
357
+ if (checked.has(target))
358
+ return;
359
+ checked.add(target);
360
+ const status = getStatus(target);
361
+ if (!status)
362
+ return;
363
+ quarantinedDeps.push(target);
364
+ const label = status === 'pending'
365
+ ? 'under review for security concerns'
366
+ : 'quarantined (confirmed malicious)';
367
+ warnings.push('Dependency "' + target + '" is ' + label + '.');
368
+ };
369
+ for (const server of depIntel.dep_inferred_servers)
370
+ check(server);
371
+ if (depIntel.dep_declared?.platform?.mcp_servers) {
372
+ for (const srv of depIntel.dep_declared.platform.mcp_servers)
373
+ check(srv.name);
374
+ }
375
+ return { warnings, quarantinedDeps };
376
+ }
335
377
  //# sourceMappingURL=skill-installation.helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installation.helpers.js","sourceRoot":"","sources":["../../../src/services/skill-installation.helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-installation.helpers.js","sourceRoot":"","sources":["../../../src/services/skill-installation.helpers.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,21 @@
1
- /**
2
- * @fileoverview SkillInstallationService — shared install/uninstall business logic
3
- * @module @skillsmith/core/services/skill-installation.service
4
- * @see SMI-3483: Wave 0 — Extract SkillInstallationService into core
5
- *
6
- * Both mcp-server and CLI consume this service. The MCP ToolContext coupling is
7
- * eliminated: callers inject explicit dependencies (db, repositories, paths,
8
- * registry lookup, progress callback).
9
- */
10
1
  import type { SkillRepository } from '../repositories/SkillRepository.js';
11
2
  import type { SkillDependencyRepository } from '../repositories/SkillDependencyRepository.js';
3
+ import type { RiskScoreHistoryRepository } from '../repositories/RiskScoreHistoryRepository.js';
12
4
  import type { Database } from '../db/database-interface.js';
13
- import { type ProgressCallback, type InstallOptions, type InstallResult, type UninstallOptions, type UninstallResult, type RegistryLookup, type CoInstallRecorder } from './skill-installation.types.js';
5
+ import { type ProgressCallback, type InstallOptions, type InstallResult, type UninstallOptions, type UninstallResult, type RegistryLookup, type CoInstallRecorder, type QuarantineStatus, type AiDefenceFeedback } from './skill-installation.types.js';
14
6
  export interface SkillInstallationServiceParams {
15
7
  db: Database;
16
8
  skillRepo: SkillRepository;
17
9
  skillDependencyRepo: SkillDependencyRepository;
18
- /** Directory where skills are installed. Default: ~/.claude/skills */
19
10
  skillsDir?: string;
20
- /** Path to the manifest file. Default: ~/.skillsmith/manifest.json */
21
11
  manifestPath?: string;
22
- /** Progress callback for reporting stages */
23
12
  onProgress?: ProgressCallback;
24
- /** Registry lookup abstraction (API-first for mcp-server, simpler for CLI) */
25
13
  registryLookup?: RegistryLookup;
26
- /** Co-install recorder for "also installed" recommendations */
27
14
  coInstallRecorder?: CoInstallRecorder;
28
- /** Skill IDs installed in this session (for co-install tracking) */
29
15
  sessionInstalledSkillIds?: string[];
16
+ quarantineLookup?: (skillId: string) => QuarantineStatus | null;
17
+ riskHistoryRepo?: RiskScoreHistoryRepository;
18
+ aiDefenceFeedback?: AiDefenceFeedback;
30
19
  }
31
20
  export declare class SkillInstallationService {
32
21
  private readonly db;
@@ -38,6 +27,9 @@ export declare class SkillInstallationService {
38
27
  private readonly registryLookup?;
39
28
  private readonly coInstallRecorder?;
40
29
  private readonly sessionInstalledSkillIds;
30
+ private readonly quarantineLookup?;
31
+ private readonly riskHistoryRepo?;
32
+ private readonly aiDefenceFeedback?;
41
33
  constructor(params: SkillInstallationServiceParams);
42
34
  install(skillId: string, options?: InstallOptions): Promise<InstallResult>;
43
35
  uninstall(skillName: string, options?: UninstallOptions): Promise<UninstallResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installation.service.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAA;AAqBtC,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,QAAQ,CAAA;IACZ,SAAS,EAAE,eAAe,CAAA;IAC1B,mBAAmB,EAAE,yBAAyB,CAAA;IAC9C,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,oEAAoE;IACpE,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;CACpC;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;gBAEvC,MAAM,EAAE,8BAA8B;IAY5C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAsX9E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;CAU7F"}
1
+ {"version":3,"file":"skill-installation.service.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAC7F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAA;AAmBtC,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,QAAQ,CAAA;IACZ,SAAS,EAAE,eAAe,CAAA;IAC1B,mBAAmB,EAAE,yBAAyB,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IACnC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAA;IAC/D,eAAe,CAAC,EAAE,0BAA0B,CAAA;IAC5C,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AACD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAA8C;IAChF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA4B;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;gBAC1C,MAAM,EAAE,8BAA8B;IAc5C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAqZ9E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;CAU7F"}