@skillsmith/core 0.4.9 → 0.4.11

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 (197) hide show
  1. package/README.md +1 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/analysis/__tests__/incremental.test.d.ts +1 -1
  4. package/dist/src/analysis/__tests__/incremental.test.js +1 -1
  5. package/dist/src/analysis/__tests__/integration.test.d.ts +1 -1
  6. package/dist/src/analysis/__tests__/integration.test.js +1 -1
  7. package/dist/src/analysis/__tests__/performance.test.d.ts +1 -1
  8. package/dist/src/analysis/__tests__/performance.test.js +1 -1
  9. package/dist/src/analysis/adapters/__tests__/python.test.d.ts +1 -1
  10. package/dist/src/analysis/adapters/__tests__/python.test.js +1 -1
  11. package/dist/src/analysis/adapters/__tests__/typescript.test.d.ts +1 -1
  12. package/dist/src/analysis/adapters/__tests__/typescript.test.js +1 -1
  13. package/dist/src/analysis/adapters/base.d.ts +1 -1
  14. package/dist/src/analysis/adapters/base.js +1 -1
  15. package/dist/src/analysis/adapters/factory.d.ts +1 -1
  16. package/dist/src/analysis/adapters/factory.js +1 -1
  17. package/dist/src/analysis/adapters/go.d.ts +1 -1
  18. package/dist/src/analysis/adapters/go.js +1 -1
  19. package/dist/src/analysis/adapters/index.d.ts +1 -1
  20. package/dist/src/analysis/adapters/index.js +1 -1
  21. package/dist/src/analysis/adapters/java-parsers.d.ts +1 -1
  22. package/dist/src/analysis/adapters/java-parsers.d.ts.map +1 -1
  23. package/dist/src/analysis/adapters/java-parsers.js +10 -3
  24. package/dist/src/analysis/adapters/java-parsers.js.map +1 -1
  25. package/dist/src/analysis/adapters/java.d.ts +1 -1
  26. package/dist/src/analysis/adapters/java.js +1 -1
  27. package/dist/src/analysis/adapters/python-frameworks.d.ts +1 -1
  28. package/dist/src/analysis/adapters/python-frameworks.js +1 -1
  29. package/dist/src/analysis/adapters/python.d.ts +1 -1
  30. package/dist/src/analysis/adapters/python.js +1 -1
  31. package/dist/src/analysis/adapters/rust-parsers.d.ts +1 -1
  32. package/dist/src/analysis/adapters/rust-parsers.js +1 -1
  33. package/dist/src/analysis/adapters/rust.d.ts +1 -1
  34. package/dist/src/analysis/adapters/rust.js +1 -1
  35. package/dist/src/analysis/adapters/typescript.d.ts +1 -1
  36. package/dist/src/analysis/adapters/typescript.js +1 -1
  37. package/dist/src/analysis/aggregator.d.ts +1 -1
  38. package/dist/src/analysis/aggregator.js +1 -1
  39. package/dist/src/analysis/cache.d.ts +1 -1
  40. package/dist/src/analysis/cache.js +1 -1
  41. package/dist/src/analysis/file-streamer.d.ts +1 -1
  42. package/dist/src/analysis/file-streamer.js +1 -1
  43. package/dist/src/analysis/incremental-parser.d.ts +1 -1
  44. package/dist/src/analysis/incremental-parser.js +1 -1
  45. package/dist/src/analysis/incremental.d.ts +1 -1
  46. package/dist/src/analysis/incremental.js +1 -1
  47. package/dist/src/analysis/index.d.ts +1 -1
  48. package/dist/src/analysis/index.js +1 -1
  49. package/dist/src/analysis/language-detector.d.ts +1 -1
  50. package/dist/src/analysis/language-detector.js +1 -1
  51. package/dist/src/analysis/memory-monitor.d.ts +1 -1
  52. package/dist/src/analysis/memory-monitor.js +1 -1
  53. package/dist/src/analysis/metrics.d.ts +1 -1
  54. package/dist/src/analysis/metrics.js +1 -1
  55. package/dist/src/analysis/router.d.ts +1 -1
  56. package/dist/src/analysis/router.js +1 -1
  57. package/dist/src/analysis/tree-cache.d.ts +1 -1
  58. package/dist/src/analysis/tree-cache.js +1 -1
  59. package/dist/src/analysis/tree-sitter/manager.d.ts +1 -1
  60. package/dist/src/analysis/tree-sitter/manager.js +1 -1
  61. package/dist/src/analysis/types.d.ts +1 -1
  62. package/dist/src/analysis/types.js +1 -1
  63. package/dist/src/analysis/worker-pool.d.ts +1 -1
  64. package/dist/src/analysis/worker-pool.js +1 -1
  65. package/dist/src/analysis/worker-types.d.ts +1 -1
  66. package/dist/src/analysis/worker-types.js +1 -1
  67. package/dist/src/analysis/worker-utils.d.ts +1 -1
  68. package/dist/src/analysis/worker-utils.js +1 -1
  69. package/dist/src/api/client.d.ts +1 -0
  70. package/dist/src/api/client.d.ts.map +1 -1
  71. package/dist/src/api/client.js.map +1 -1
  72. package/dist/src/api/schemas.d.ts +11 -4
  73. package/dist/src/api/schemas.d.ts.map +1 -1
  74. package/dist/src/api/schemas.js +8 -1
  75. package/dist/src/api/schemas.js.map +1 -1
  76. package/dist/src/config/index.d.ts +49 -1
  77. package/dist/src/config/index.d.ts.map +1 -1
  78. package/dist/src/config/index.js +166 -3
  79. package/dist/src/config/index.js.map +1 -1
  80. package/dist/src/config/index.test.d.ts +11 -0
  81. package/dist/src/config/index.test.d.ts.map +1 -0
  82. package/dist/src/config/index.test.js +288 -0
  83. package/dist/src/config/index.test.js.map +1 -0
  84. package/dist/src/db/drivers/betterSqlite3Driver.d.ts.map +1 -1
  85. package/dist/src/db/drivers/betterSqlite3Driver.js +5 -3
  86. package/dist/src/db/drivers/betterSqlite3Driver.js.map +1 -1
  87. package/dist/src/db/quarantine-approvals-schema.d.ts +37 -0
  88. package/dist/src/db/quarantine-approvals-schema.d.ts.map +1 -0
  89. package/dist/src/db/quarantine-approvals-schema.js +71 -0
  90. package/dist/src/db/quarantine-approvals-schema.js.map +1 -0
  91. package/dist/src/exports/services.d.ts +1 -0
  92. package/dist/src/exports/services.d.ts.map +1 -1
  93. package/dist/src/exports/services.js +4 -0
  94. package/dist/src/exports/services.js.map +1 -1
  95. package/dist/src/index.d.ts +4 -1
  96. package/dist/src/index.d.ts.map +1 -1
  97. package/dist/src/index.js +8 -2
  98. package/dist/src/index.js.map +1 -1
  99. package/dist/src/indexer/SkillParser.d.ts +20 -0
  100. package/dist/src/indexer/SkillParser.d.ts.map +1 -1
  101. package/dist/src/indexer/SkillParser.js +58 -0
  102. package/dist/src/indexer/SkillParser.js.map +1 -1
  103. package/dist/src/repositories/quarantine/ApprovalRepository.d.ts +148 -0
  104. package/dist/src/repositories/quarantine/ApprovalRepository.d.ts.map +1 -0
  105. package/dist/src/repositories/quarantine/ApprovalRepository.js +212 -0
  106. package/dist/src/repositories/quarantine/ApprovalRepository.js.map +1 -0
  107. package/dist/src/repositories/quarantine/QuarantineRepository.d.ts.map +1 -1
  108. package/dist/src/repositories/quarantine/QuarantineRepository.js +4 -1
  109. package/dist/src/repositories/quarantine/QuarantineRepository.js.map +1 -1
  110. package/dist/src/repositories/quarantine/index.d.ts +2 -0
  111. package/dist/src/repositories/quarantine/index.d.ts.map +1 -1
  112. package/dist/src/repositories/quarantine/index.js +1 -0
  113. package/dist/src/repositories/quarantine/index.js.map +1 -1
  114. package/dist/src/scripts/validation/types.d.ts +2 -2
  115. package/dist/src/security/audit-types.d.ts +2 -2
  116. package/dist/src/security/audit-types.d.ts.map +1 -1
  117. package/dist/src/security/audit-types.js.map +1 -1
  118. package/dist/src/security/sanitization.d.ts.map +1 -1
  119. package/dist/src/security/sanitization.js +25 -17
  120. package/dist/src/security/sanitization.js.map +1 -1
  121. package/dist/src/security/scanner/SecurityScanner.formatters.js +1 -1
  122. package/dist/src/security/scanner/SecurityScanner.formatters.js.map +1 -1
  123. package/dist/src/services/index.d.ts +9 -0
  124. package/dist/src/services/index.d.ts.map +1 -0
  125. package/dist/src/services/index.js +10 -0
  126. package/dist/src/services/index.js.map +1 -0
  127. package/dist/src/services/quarantine/QuarantineService.d.ts +157 -0
  128. package/dist/src/services/quarantine/QuarantineService.d.ts.map +1 -0
  129. package/dist/src/services/quarantine/QuarantineService.js +464 -0
  130. package/dist/src/services/quarantine/QuarantineService.js.map +1 -0
  131. package/dist/src/services/quarantine/index.d.ts +10 -0
  132. package/dist/src/services/quarantine/index.d.ts.map +1 -0
  133. package/dist/src/services/quarantine/index.js +14 -0
  134. package/dist/src/services/quarantine/index.js.map +1 -0
  135. package/dist/src/services/quarantine/types.d.ts +127 -0
  136. package/dist/src/services/quarantine/types.d.ts.map +1 -0
  137. package/dist/src/services/quarantine/types.js +59 -0
  138. package/dist/src/services/quarantine/types.js.map +1 -0
  139. package/dist/src/types/skill.d.ts +6 -1
  140. package/dist/src/types/skill.d.ts.map +1 -1
  141. package/dist/src/types/skill.js.map +1 -1
  142. package/dist/src/types.d.ts +1 -1
  143. package/dist/src/types.d.ts.map +1 -1
  144. package/dist/src/utils/index.d.ts +1 -0
  145. package/dist/src/utils/index.d.ts.map +1 -1
  146. package/dist/src/utils/index.js +2 -0
  147. package/dist/src/utils/index.js.map +1 -1
  148. package/dist/src/utils/safe-fs.d.ts +63 -0
  149. package/dist/src/utils/safe-fs.d.ts.map +1 -0
  150. package/dist/src/utils/safe-fs.js +119 -0
  151. package/dist/src/utils/safe-fs.js.map +1 -0
  152. package/dist/src/validation/input-validators.d.ts.map +1 -1
  153. package/dist/src/validation/input-validators.js +11 -4
  154. package/dist/src/validation/input-validators.js.map +1 -1
  155. package/dist/tests/QuarantineRepository.test.js +39 -2
  156. package/dist/tests/QuarantineRepository.test.js.map +1 -1
  157. package/dist/tests/RawUrlSourceAdapter.security.test.js +2 -1
  158. package/dist/tests/RawUrlSourceAdapter.security.test.js.map +1 -1
  159. package/dist/tests/SecurityScanner.test.js +2 -2
  160. package/dist/tests/SecurityScanner.test.js.map +1 -1
  161. package/dist/tests/adapters-factory.test.d.ts +1 -1
  162. package/dist/tests/adapters-factory.test.js +1 -1
  163. package/dist/tests/edge-cases/EdgeCases.test.js +5 -2
  164. package/dist/tests/edge-cases/EdgeCases.test.js.map +1 -1
  165. package/dist/tests/integration/QuarantineService.test.d.ts +11 -0
  166. package/dist/tests/integration/QuarantineService.test.d.ts.map +1 -0
  167. package/dist/tests/integration/QuarantineService.test.js +426 -0
  168. package/dist/tests/integration/QuarantineService.test.js.map +1 -0
  169. package/dist/tests/integration/neural/e2e-learning.test.d.ts +1 -1
  170. package/dist/tests/integration/neural/e2e-learning.test.js +1 -1
  171. package/dist/tests/integration/neural/personalization.test.d.ts +1 -1
  172. package/dist/tests/integration/neural/personalization.test.js +1 -1
  173. package/dist/tests/integration/neural/preference-learner.test.d.ts +1 -1
  174. package/dist/tests/integration/neural/preference-learner.test.js +1 -1
  175. package/dist/tests/integration/neural/privacy.test.d.ts +1 -1
  176. package/dist/tests/integration/neural/privacy.test.js +1 -1
  177. package/dist/tests/integration/neural/signal-collection.test.d.ts +1 -1
  178. package/dist/tests/integration/neural/signal-collection.test.js +1 -1
  179. package/dist/tests/language-detector.test.d.ts +1 -1
  180. package/dist/tests/language-detector.test.js +1 -1
  181. package/dist/tests/unit/approval-repository.test.d.ts +9 -0
  182. package/dist/tests/unit/approval-repository.test.d.ts.map +1 -0
  183. package/dist/tests/unit/approval-repository.test.js +509 -0
  184. package/dist/tests/unit/approval-repository.test.js.map +1 -0
  185. package/dist/tests/unit/check-references.test.d.ts +2 -0
  186. package/dist/tests/unit/check-references.test.d.ts.map +1 -0
  187. package/dist/tests/unit/check-references.test.js +118 -0
  188. package/dist/tests/unit/check-references.test.js.map +1 -0
  189. package/dist/tests/utils/safe-fs.test.d.ts +12 -0
  190. package/dist/tests/utils/safe-fs.test.d.ts.map +1 -0
  191. package/dist/tests/utils/safe-fs.test.js +116 -0
  192. package/dist/tests/utils/safe-fs.test.js.map +1 -0
  193. package/package.json +14 -10
  194. package/dist/tests/db/driver-parity.integration.test.d.ts +0 -16
  195. package/dist/tests/db/driver-parity.integration.test.d.ts.map +0 -1
  196. package/dist/tests/db/driver-parity.integration.test.js +0 -555
  197. package/dist/tests/db/driver-parity.integration.test.js.map +0 -1
@@ -107,6 +107,26 @@ export declare class SkillParser {
107
107
  * Infer trust tier from metadata
108
108
  */
109
109
  inferTrustTier(metadata: ParsedSkillMetadata): TrustTier;
110
+ /**
111
+ * Check for project-specific references that shouldn't be in published skills.
112
+ * Static method — does not require SkillParser instantiation.
113
+ *
114
+ * Default patterns may produce false positives (e.g., legitimate npm scopes
115
+ * like `@types/`, common GitHub repo URLs). Use `customPatterns` to add
116
+ * project-specific checks, or review results before acting on warnings.
117
+ *
118
+ * @param content - Raw file content to scan
119
+ * @param customPatterns - Additional regex patterns to merge with defaults
120
+ * @returns Object with warnings array and detailed match information
121
+ */
122
+ static checkReferences(content: string, customPatterns?: RegExp[]): {
123
+ warnings: string[];
124
+ matches: Array<{
125
+ line: number;
126
+ text: string;
127
+ pattern: string;
128
+ }>;
129
+ };
110
130
  }
111
131
  export default SkillParser;
112
132
  //# sourceMappingURL=SkillParser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillParser.d.ts","sourceRoot":"","sources":["../../../src/indexer/SkillParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,gBAAgB,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,gBAAgB,CAAA;CACtE;AAgGD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAC8B;gBAEjC,OAAO,GAAE,kBAAuB;IAQ5C;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAclD;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG;QACpC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAA;QACpC,UAAU,EAAE,gBAAgB,CAAA;QAC5B,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAA;KACrC;IAoBD;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IA8B5D;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,gBAAgB,GAAG,gBAAgB;IAiEzD;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAepC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS;CA6BzD;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"SkillParser.d.ts","sourceRoot":"","sources":["../../../src/indexer/SkillParser.ts"],"names":[],"mappings":"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"}
@@ -276,6 +276,64 @@ export class SkillParser {
276
276
  }
277
277
  return 'unknown';
278
278
  }
279
+ /**
280
+ * Check for project-specific references that shouldn't be in published skills.
281
+ * Static method — does not require SkillParser instantiation.
282
+ *
283
+ * Default patterns may produce false positives (e.g., legitimate npm scopes
284
+ * like `@types/`, common GitHub repo URLs). Use `customPatterns` to add
285
+ * project-specific checks, or review results before acting on warnings.
286
+ *
287
+ * @param content - Raw file content to scan
288
+ * @param customPatterns - Additional regex patterns to merge with defaults
289
+ * @returns Object with warnings array and detailed match information
290
+ */
291
+ static checkReferences(content, customPatterns) {
292
+ const DEFAULT_REFERENCE_PATTERNS = [
293
+ // Docker container names with project prefix (e.g., myproject-dev-1)
294
+ { pattern: /[a-z]+-dev-\d+/g, description: 'Docker container name' },
295
+ // Package scopes (e.g., @skillsmith/, @myorg/)
296
+ { pattern: /@[a-z]+-[a-z]+\//g, description: 'npm package scope' },
297
+ // Hardcoded project-specific URLs (not generic docs links)
298
+ { pattern: /https?:\/\/[^\s)]+\.(app|dev)\//g, description: 'Project URL' },
299
+ // GitHub org/repo references
300
+ { pattern: /github\.com\/[a-zA-Z-]+\/[a-zA-Z-]+/g, description: 'GitHub repo reference' },
301
+ // Specific large line counts that suggest copy-paste
302
+ { pattern: /\b\d{3,},?\d*\s*(lines|→)/g, description: 'Specific line count' },
303
+ ];
304
+ const allPatterns = [...DEFAULT_REFERENCE_PATTERNS];
305
+ // Merge custom patterns
306
+ if (customPatterns) {
307
+ for (const p of customPatterns) {
308
+ allPatterns.push({ pattern: p, description: 'Custom pattern' });
309
+ }
310
+ }
311
+ const warnings = [];
312
+ const matches = [];
313
+ const lines = content.split('\n');
314
+ for (const { pattern, description } of allPatterns) {
315
+ // Reset lastIndex for each pattern scan
316
+ const regex = new RegExp(pattern.source, pattern.flags);
317
+ for (let i = 0; i < lines.length; i++) {
318
+ const line = lines[i];
319
+ let match;
320
+ regex.lastIndex = 0;
321
+ while ((match = regex.exec(line)) !== null) {
322
+ const matchedText = match[0];
323
+ matches.push({
324
+ line: i + 1,
325
+ text: matchedText.length > 80 ? matchedText.slice(0, 80) + '...' : matchedText,
326
+ pattern: description,
327
+ });
328
+ }
329
+ }
330
+ }
331
+ if (matches.length > 0) {
332
+ const uniquePatterns = [...new Set(matches.map((m) => m.pattern))];
333
+ warnings.push(`Found ${matches.length} project-specific reference(s): ${uniquePatterns.join(', ')}`);
334
+ }
335
+ return { warnings, matches };
336
+ }
279
337
  }
280
338
  export default SkillParser;
281
339
  //# sourceMappingURL=SkillParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillParser.js","sourceRoot":"","sources":["../../../src/indexer/SkillParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkillParser.js","sourceRoot":"","sources":["../../../src/indexer/SkillParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * SMI-2277: Approval Repository
3
+ *
4
+ * Persists multi-approval state to SQLite instead of in-memory Map.
5
+ * This ensures pending approvals survive service restarts.
6
+ *
7
+ * @module @skillsmith/core/repositories/quarantine/ApprovalRepository
8
+ */
9
+ import type { Database as DatabaseType } from '../../db/database-interface.js';
10
+ /**
11
+ * Database row for quarantine_approvals table
12
+ */
13
+ export interface ApprovalRow {
14
+ id: string;
15
+ skill_id: string;
16
+ reviewer_id: string;
17
+ reviewer_email: string;
18
+ decision: 'approved' | 'rejected';
19
+ reason: string | null;
20
+ created_at: string;
21
+ completed_at: string | null;
22
+ required_approvals: number;
23
+ is_complete: number;
24
+ }
25
+ /**
26
+ * Domain object for a recorded approval
27
+ */
28
+ export interface ApprovalEntry {
29
+ id: string;
30
+ skillId: string;
31
+ reviewerId: string;
32
+ reviewerEmail: string;
33
+ decision: 'approved' | 'rejected';
34
+ reason: string | null;
35
+ createdAt: string;
36
+ completedAt: string | null;
37
+ requiredApprovals: number;
38
+ isComplete: boolean;
39
+ }
40
+ /**
41
+ * Input for recording a new approval
42
+ */
43
+ export interface RecordApprovalInput {
44
+ skillId: string;
45
+ reviewerId: string;
46
+ reviewerEmail: string;
47
+ decision: 'approved' | 'rejected';
48
+ reason?: string;
49
+ requiredApprovals?: number;
50
+ }
51
+ /**
52
+ * Repository for persisting multi-approval workflow state.
53
+ *
54
+ * Replaces the in-memory Map<string, MultiApprovalStatus> with
55
+ * database-backed storage to survive service restarts.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const repo = new ApprovalRepository(db)
60
+ *
61
+ * // Record a reviewer's approval
62
+ * repo.recordApproval({
63
+ * skillId: 'quarantine-123',
64
+ * reviewerId: 'user-456',
65
+ * reviewerRole: 'reviewer@example.com',
66
+ * decision: 'approved',
67
+ * reason: 'Code verified safe',
68
+ * })
69
+ *
70
+ * // Check if enough approvals have been collected
71
+ * const complete = repo.isComplete('quarantine-123')
72
+ * ```
73
+ */
74
+ export declare class ApprovalRepository {
75
+ private db;
76
+ constructor(db: DatabaseType);
77
+ /**
78
+ * Ensure the quarantine_approvals table exists
79
+ */
80
+ private ensureTableExists;
81
+ /**
82
+ * Record a new approval or rejection for a quarantine entry
83
+ *
84
+ * @param input - Approval details
85
+ * @returns The created approval entry
86
+ * @throws Error if reviewer has already submitted for this skill
87
+ */
88
+ recordApproval(input: RecordApprovalInput): ApprovalEntry;
89
+ /**
90
+ * Get all approvals for a quarantine entry (both pending and complete)
91
+ *
92
+ * @param skillId - The quarantine entry ID
93
+ * @returns All approval entries for this skill
94
+ */
95
+ getApprovals(skillId: string): ApprovalEntry[];
96
+ /**
97
+ * Get only pending (non-complete) approvals for a quarantine entry
98
+ *
99
+ * @param skillId - The quarantine entry ID
100
+ * @returns Pending approval entries
101
+ */
102
+ getPendingApprovals(skillId: string): ApprovalEntry[];
103
+ /**
104
+ * Check if a specific reviewer has already submitted for a skill
105
+ *
106
+ * @param skillId - The quarantine entry ID
107
+ * @param reviewerId - The reviewer's user ID
108
+ * @returns True if the reviewer already has a pending approval
109
+ */
110
+ hasReviewerApproved(skillId: string, reviewerId: string): boolean;
111
+ /**
112
+ * Check if the required number of approvals have been reached
113
+ *
114
+ * @param skillId - The quarantine entry ID
115
+ * @param requiredApprovals - Number of approvals needed (default: 2)
116
+ * @returns True if approval count meets or exceeds required
117
+ */
118
+ isComplete(skillId: string, requiredApprovals?: number): boolean;
119
+ /**
120
+ * Mark all pending approvals for a skill as complete
121
+ *
122
+ * @param skillId - The quarantine entry ID
123
+ * @returns Number of rows updated
124
+ */
125
+ markComplete(skillId: string): number;
126
+ /**
127
+ * Delete all approvals for a skill (for cleanup/reset/cancellation)
128
+ *
129
+ * @param skillId - The quarantine entry ID
130
+ * @returns Number of rows deleted
131
+ */
132
+ clearApprovals(skillId: string): number;
133
+ /**
134
+ * Get the timestamp of the first pending approval for timeout checks
135
+ *
136
+ * @param skillId - The quarantine entry ID
137
+ * @returns ISO date string of the first approval, or null if none
138
+ */
139
+ getWorkflowStartTime(skillId: string): string | null;
140
+ /**
141
+ * Get the count of pending approvals for a skill
142
+ *
143
+ * @param skillId - The quarantine entry ID
144
+ * @returns Count of pending approved entries
145
+ */
146
+ getPendingApprovalCount(skillId: string): number;
147
+ }
148
+ //# sourceMappingURL=ApprovalRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApprovalRepository.d.ts","sourceRoot":"","sources":["../../../../src/repositories/quarantine/ApprovalRepository.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAQ9E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAA;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAA;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAyDD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAAc;gBAEZ,EAAE,EAAE,YAAY;IAK5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,aAAa;IAuBzD;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAM9C;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAMrD;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAMjE;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAU,GAAG,OAAO;IAQnE;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAMrC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAMvC;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQpD;;;;;OAKG;IACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAOjD"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * SMI-2277: Approval Repository
3
+ *
4
+ * Persists multi-approval state to SQLite instead of in-memory Map.
5
+ * This ensures pending approvals survive service restarts.
6
+ *
7
+ * @module @skillsmith/core/repositories/quarantine/ApprovalRepository
8
+ */
9
+ import { randomUUID } from 'crypto';
10
+ import { initializeQuarantineApprovalsSchema } from '../../db/quarantine-approvals-schema.js';
11
+ // ============================================================================
12
+ // SQL Queries
13
+ // ============================================================================
14
+ const INSERT_APPROVAL_QUERY = `
15
+ INSERT INTO quarantine_approvals (
16
+ id, skill_id, reviewer_id, reviewer_email, decision, reason,
17
+ created_at, required_approvals, is_complete
18
+ )
19
+ VALUES (?, ?, ?, ?, ?, ?, datetime('now') || 'Z', ?, 0)
20
+ `;
21
+ const SELECT_BY_SKILL_ID_QUERY = `
22
+ SELECT * FROM quarantine_approvals
23
+ WHERE skill_id = ?
24
+ ORDER BY created_at ASC
25
+ `;
26
+ const SELECT_PENDING_BY_SKILL_ID_QUERY = `
27
+ SELECT * FROM quarantine_approvals
28
+ WHERE skill_id = ? AND is_complete = 0
29
+ ORDER BY created_at ASC
30
+ `;
31
+ const COUNT_PENDING_APPROVALS_QUERY = `
32
+ SELECT COUNT(*) as count FROM quarantine_approvals
33
+ WHERE skill_id = ? AND is_complete = 0 AND decision = 'approved'
34
+ `;
35
+ const CHECK_REVIEWER_EXISTS_QUERY = `
36
+ SELECT id FROM quarantine_approvals
37
+ WHERE skill_id = ? AND reviewer_id = ? AND is_complete = 0
38
+ `;
39
+ const MARK_COMPLETE_QUERY = `
40
+ UPDATE quarantine_approvals
41
+ SET is_complete = 1, completed_at = datetime('now') || 'Z'
42
+ WHERE skill_id = ? AND is_complete = 0
43
+ `;
44
+ const DELETE_BY_SKILL_ID_QUERY = `
45
+ DELETE FROM quarantine_approvals WHERE skill_id = ?
46
+ `;
47
+ const SELECT_FIRST_PENDING_QUERY = `
48
+ SELECT created_at FROM quarantine_approvals
49
+ WHERE skill_id = ? AND is_complete = 0
50
+ ORDER BY created_at ASC
51
+ LIMIT 1
52
+ `;
53
+ // ============================================================================
54
+ // Repository Implementation
55
+ // ============================================================================
56
+ /**
57
+ * Repository for persisting multi-approval workflow state.
58
+ *
59
+ * Replaces the in-memory Map<string, MultiApprovalStatus> with
60
+ * database-backed storage to survive service restarts.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const repo = new ApprovalRepository(db)
65
+ *
66
+ * // Record a reviewer's approval
67
+ * repo.recordApproval({
68
+ * skillId: 'quarantine-123',
69
+ * reviewerId: 'user-456',
70
+ * reviewerRole: 'reviewer@example.com',
71
+ * decision: 'approved',
72
+ * reason: 'Code verified safe',
73
+ * })
74
+ *
75
+ * // Check if enough approvals have been collected
76
+ * const complete = repo.isComplete('quarantine-123')
77
+ * ```
78
+ */
79
+ export class ApprovalRepository {
80
+ db;
81
+ constructor(db) {
82
+ this.db = db;
83
+ this.ensureTableExists();
84
+ }
85
+ /**
86
+ * Ensure the quarantine_approvals table exists
87
+ */
88
+ ensureTableExists() {
89
+ initializeQuarantineApprovalsSchema(this.db);
90
+ }
91
+ /**
92
+ * Record a new approval or rejection for a quarantine entry
93
+ *
94
+ * @param input - Approval details
95
+ * @returns The created approval entry
96
+ * @throws Error if reviewer has already submitted for this skill
97
+ */
98
+ recordApproval(input) {
99
+ const id = randomUUID();
100
+ const requiredApprovals = input.requiredApprovals ?? 2;
101
+ this.db
102
+ .prepare(INSERT_APPROVAL_QUERY)
103
+ .run(id, input.skillId, input.reviewerId, input.reviewerEmail, input.decision, input.reason ?? null, requiredApprovals);
104
+ const row = this.db
105
+ .prepare('SELECT * FROM quarantine_approvals WHERE id = ?')
106
+ .get(id);
107
+ return rowToEntry(row);
108
+ }
109
+ /**
110
+ * Get all approvals for a quarantine entry (both pending and complete)
111
+ *
112
+ * @param skillId - The quarantine entry ID
113
+ * @returns All approval entries for this skill
114
+ */
115
+ getApprovals(skillId) {
116
+ const rows = this.db.prepare(SELECT_BY_SKILL_ID_QUERY).all(skillId);
117
+ return rows.map(rowToEntry);
118
+ }
119
+ /**
120
+ * Get only pending (non-complete) approvals for a quarantine entry
121
+ *
122
+ * @param skillId - The quarantine entry ID
123
+ * @returns Pending approval entries
124
+ */
125
+ getPendingApprovals(skillId) {
126
+ const rows = this.db.prepare(SELECT_PENDING_BY_SKILL_ID_QUERY).all(skillId);
127
+ return rows.map(rowToEntry);
128
+ }
129
+ /**
130
+ * Check if a specific reviewer has already submitted for a skill
131
+ *
132
+ * @param skillId - The quarantine entry ID
133
+ * @param reviewerId - The reviewer's user ID
134
+ * @returns True if the reviewer already has a pending approval
135
+ */
136
+ hasReviewerApproved(skillId, reviewerId) {
137
+ const row = this.db.prepare(CHECK_REVIEWER_EXISTS_QUERY).get(skillId, reviewerId);
138
+ return !!row;
139
+ }
140
+ /**
141
+ * Check if the required number of approvals have been reached
142
+ *
143
+ * @param skillId - The quarantine entry ID
144
+ * @param requiredApprovals - Number of approvals needed (default: 2)
145
+ * @returns True if approval count meets or exceeds required
146
+ */
147
+ isComplete(skillId, requiredApprovals = 2) {
148
+ const { count } = this.db.prepare(COUNT_PENDING_APPROVALS_QUERY).get(skillId);
149
+ return count >= requiredApprovals;
150
+ }
151
+ /**
152
+ * Mark all pending approvals for a skill as complete
153
+ *
154
+ * @param skillId - The quarantine entry ID
155
+ * @returns Number of rows updated
156
+ */
157
+ markComplete(skillId) {
158
+ const result = this.db.prepare(MARK_COMPLETE_QUERY).run(skillId);
159
+ return result.changes;
160
+ }
161
+ /**
162
+ * Delete all approvals for a skill (for cleanup/reset/cancellation)
163
+ *
164
+ * @param skillId - The quarantine entry ID
165
+ * @returns Number of rows deleted
166
+ */
167
+ clearApprovals(skillId) {
168
+ const result = this.db.prepare(DELETE_BY_SKILL_ID_QUERY).run(skillId);
169
+ return result.changes;
170
+ }
171
+ /**
172
+ * Get the timestamp of the first pending approval for timeout checks
173
+ *
174
+ * @param skillId - The quarantine entry ID
175
+ * @returns ISO date string of the first approval, or null if none
176
+ */
177
+ getWorkflowStartTime(skillId) {
178
+ const row = this.db.prepare(SELECT_FIRST_PENDING_QUERY).get(skillId);
179
+ return row?.created_at ?? null;
180
+ }
181
+ /**
182
+ * Get the count of pending approvals for a skill
183
+ *
184
+ * @param skillId - The quarantine entry ID
185
+ * @returns Count of pending approved entries
186
+ */
187
+ getPendingApprovalCount(skillId) {
188
+ const { count } = this.db.prepare(COUNT_PENDING_APPROVALS_QUERY).get(skillId);
189
+ return count;
190
+ }
191
+ }
192
+ // ============================================================================
193
+ // Helpers
194
+ // ============================================================================
195
+ /**
196
+ * Convert a database row to a domain object
197
+ */
198
+ function rowToEntry(row) {
199
+ return {
200
+ id: row.id,
201
+ skillId: row.skill_id,
202
+ reviewerId: row.reviewer_id,
203
+ reviewerEmail: row.reviewer_email,
204
+ decision: row.decision,
205
+ reason: row.reason,
206
+ createdAt: row.created_at,
207
+ completedAt: row.completed_at,
208
+ requiredApprovals: row.required_approvals,
209
+ isComplete: row.is_complete === 1,
210
+ };
211
+ }
212
+ //# sourceMappingURL=ApprovalRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApprovalRepository.js","sourceRoot":"","sources":["../../../../src/repositories/quarantine/ApprovalRepository.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"QuarantineRepository.d.ts","sourceRoot":"","sources":["../../../../src/repositories/quarantine/QuarantineRepository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAE9E,OAAO,KAAK,EAAsB,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAK/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,KAAK,EAEV,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,cAAc,EAEf,MAAM,YAAY,CAAA;AAmBnB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,KAAK,CAAqB;gBAEtB,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW;IAOvD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,eAAe;IA4BrD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAK5C;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAKjD;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKvC;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAWtD;;;;;OAKG;IACH,OAAO,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,0BAA0B;IAgBtF;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,qBAAqB,GAAG,0BAA0B;IAgBhE;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IA8BxE;;;;;;OAMG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,sBAAsB,CAAA;QACpC,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,GACA,cAAc,GAAG,IAAI;IAwCxB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAa3B;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAYxC;;;;OAIG;IACH,QAAQ,IAAI,eAAe;IA6C3B;;;;OAIG;IACH,KAAK,IAAI,MAAM;IAKf;;;;;OAKG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;CAG/B"}
1
+ {"version":3,"file":"QuarantineRepository.d.ts","sourceRoot":"","sources":["../../../../src/repositories/quarantine/QuarantineRepository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAE9E,OAAO,KAAK,EAAsB,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAK/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,KAAK,EAEV,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,cAAc,EAEf,MAAM,YAAY,CAAA;AAmBnB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,KAAK,CAAqB;gBAEtB,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW;IAOvD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,eAAe;IA4BrD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAK5C;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAKjD;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKvC;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAWtD;;;;;OAKG;IACH,OAAO,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,0BAA0B;IAgBtF;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,qBAAqB,GAAG,0BAA0B;IAgBhE;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IA8BxE;;;;;;OAMG;IACH,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,sBAAsB,CAAA;QACpC,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,GACA,cAAc,GAAG,IAAI;IA4CxB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAa3B;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAYxC;;;;OAIG;IACH,QAAQ,IAAI,eAAe;IA6C3B;;;;OAIG;IACH,KAAK,IAAI,MAAM;IAKf;;;;;OAKG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;CAG/B"}
@@ -252,11 +252,14 @@ export class QuarantineRepository {
252
252
  severity: updated.severity,
253
253
  canImport: approved && policy.allowImport,
254
254
  });
255
+ // SMI-2270: Fixed boolean logic - must be approved AND policy allows import
256
+ // SMI-2278: Feature flag removed - secure logic is now permanent
257
+ const canImport = approved && policy.allowImport;
255
258
  return {
256
259
  approved,
257
260
  skillId: updated.skillId,
258
261
  severity: updated.severity,
259
- canImport: approved || policy.allowImport,
262
+ canImport,
260
263
  warnings,
261
264
  };
262
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QuarantineRepository.js","sourceRoot":"","sources":["../../../../src/repositories/quarantine/QuarantineRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QuarantineRepository.js","sourceRoot":"","sources":["../../../../src/repositories/quarantine/QuarantineRepository.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,6 @@ export * from './types.js';
7
7
  export * from './queries.js';
8
8
  export * from './query-builder.js';
9
9
  export { QuarantineRepository } from './QuarantineRepository.js';
10
+ export { ApprovalRepository } from './ApprovalRepository.js';
11
+ export type { ApprovalRow, ApprovalEntry, RecordApprovalInput } from './ApprovalRepository.js';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/repositories/quarantine/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/repositories/quarantine/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -7,4 +7,5 @@ export * from './types.js';
7
7
  export * from './queries.js';
8
8
  export * from './query-builder.js';
9
9
  export { QuarantineRepository } from './QuarantineRepository.js';
10
+ export { ApprovalRepository } from './ApprovalRepository.js';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/repositories/quarantine/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/repositories/quarantine/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -106,8 +106,8 @@ export interface DuplicatesReport {
106
106
  export declare const TrustTierSchema: z.ZodEnum<{
107
107
  verified: "verified";
108
108
  community: "community";
109
- unknown: "unknown";
110
109
  experimental: "experimental";
110
+ unknown: "unknown";
111
111
  }>;
112
112
  export declare const ValidatedSkillSchema: z.ZodObject<{
113
113
  id: z.ZodString;
@@ -119,8 +119,8 @@ export declare const ValidatedSkillSchema: z.ZodObject<{
119
119
  trust_tier: z.ZodEnum<{
120
120
  verified: "verified";
121
121
  community: "community";
122
- unknown: "unknown";
123
122
  experimental: "experimental";
123
+ unknown: "unknown";
124
124
  }>;
125
125
  tags: z.ZodArray<z.ZodString>;
126
126
  source: z.ZodString;