@skillsmith/core 0.11.7 → 0.12.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 (192) hide show
  1. package/CHANGELOG.md +210 -0
  2. package/README.md +7 -8
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/api/client.types.d.ts +9 -0
  5. package/dist/src/api/client.types.d.ts.map +1 -1
  6. package/dist/src/api/schemas.d.ts +6 -0
  7. package/dist/src/api/schemas.d.ts.map +1 -1
  8. package/dist/src/api/schemas.js +5 -0
  9. package/dist/src/api/schemas.js.map +1 -1
  10. package/dist/src/api/security-summary.d.ts +10 -1
  11. package/dist/src/api/security-summary.d.ts.map +1 -1
  12. package/dist/src/api/security-summary.js +9 -0
  13. package/dist/src/api/security-summary.js.map +1 -1
  14. package/dist/src/api/security-summary.test.js +79 -1
  15. package/dist/src/api/security-summary.test.js.map +1 -1
  16. package/dist/src/api/types.d.ts +9 -0
  17. package/dist/src/api/types.d.ts.map +1 -1
  18. package/dist/src/config/token-credentials.d.ts +20 -0
  19. package/dist/src/config/token-credentials.d.ts.map +1 -1
  20. package/dist/src/config/token-credentials.js +59 -0
  21. package/dist/src/config/token-credentials.js.map +1 -1
  22. package/dist/src/config/token-credentials.test.d.ts +3 -0
  23. package/dist/src/config/token-credentials.test.d.ts.map +1 -1
  24. package/dist/src/config/token-credentials.test.js +68 -0
  25. package/dist/src/config/token-credentials.test.js.map +1 -1
  26. package/dist/src/exports/services.d.ts +1 -1
  27. package/dist/src/exports/services.d.ts.map +1 -1
  28. package/dist/src/exports/services.js +3 -1
  29. package/dist/src/exports/services.js.map +1 -1
  30. package/dist/src/index.d.ts +3 -3
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/index.js +3 -3
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/install/agent-config-merge.json-array.d.ts +8 -0
  35. package/dist/src/install/agent-config-merge.json-array.d.ts.map +1 -1
  36. package/dist/src/install/agent-config-merge.json-array.js +22 -2
  37. package/dist/src/install/agent-config-merge.json-array.js.map +1 -1
  38. package/dist/src/install/agent-pack-installer.cursor-hooks.d.ts.map +1 -1
  39. package/dist/src/install/agent-pack-installer.cursor-hooks.js +122 -3
  40. package/dist/src/install/agent-pack-installer.cursor-hooks.js.map +1 -1
  41. package/dist/src/install/agent-pack-installer.cursor-hooks.test.js +146 -1
  42. package/dist/src/install/agent-pack-installer.cursor-hooks.test.js.map +1 -1
  43. package/dist/src/install/agent-pack-installer.harness.d.ts +8 -0
  44. package/dist/src/install/agent-pack-installer.harness.d.ts.map +1 -1
  45. package/dist/src/install/agent-pack-installer.harness.js +8 -1
  46. package/dist/src/install/agent-pack-installer.harness.js.map +1 -1
  47. package/dist/src/scripts/__tests__/scan-imported-skills.test.js +25 -0
  48. package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
  49. package/dist/src/scripts/skill-scanner/trust-scorer.js +1 -1
  50. package/dist/src/scripts/skill-scanner/trust-scorer.js.map +1 -1
  51. package/dist/src/security/scanner/SecurityScanner.archive.d.ts +34 -0
  52. package/dist/src/security/scanner/SecurityScanner.archive.d.ts.map +1 -0
  53. package/dist/src/security/scanner/SecurityScanner.archive.js +218 -0
  54. package/dist/src/security/scanner/SecurityScanner.archive.js.map +1 -0
  55. package/dist/src/security/scanner/SecurityScanner.compound.d.ts +1 -0
  56. package/dist/src/security/scanner/SecurityScanner.compound.d.ts.map +1 -1
  57. package/dist/src/security/scanner/SecurityScanner.compound.js +117 -38
  58. package/dist/src/security/scanner/SecurityScanner.compound.js.map +1 -1
  59. package/dist/src/security/scanner/SecurityScanner.d.ts +41 -4
  60. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
  61. package/dist/src/security/scanner/SecurityScanner.decoy.d.ts +72 -0
  62. package/dist/src/security/scanner/SecurityScanner.decoy.d.ts.map +1 -0
  63. package/dist/src/security/scanner/SecurityScanner.decoy.js +265 -0
  64. package/dist/src/security/scanner/SecurityScanner.decoy.js.map +1 -0
  65. package/dist/src/security/scanner/SecurityScanner.encoding.d.ts +56 -0
  66. package/dist/src/security/scanner/SecurityScanner.encoding.d.ts.map +1 -0
  67. package/dist/src/security/scanner/SecurityScanner.encoding.js +270 -0
  68. package/dist/src/security/scanner/SecurityScanner.encoding.js.map +1 -0
  69. package/dist/src/security/scanner/SecurityScanner.exec.d.ts +23 -20
  70. package/dist/src/security/scanner/SecurityScanner.exec.d.ts.map +1 -1
  71. package/dist/src/security/scanner/SecurityScanner.exec.js +207 -52
  72. package/dist/src/security/scanner/SecurityScanner.exec.js.map +1 -1
  73. package/dist/src/security/scanner/SecurityScanner.fetch-correlation.d.ts +115 -0
  74. package/dist/src/security/scanner/SecurityScanner.fetch-correlation.d.ts.map +1 -0
  75. package/dist/src/security/scanner/SecurityScanner.fetch-correlation.js +181 -0
  76. package/dist/src/security/scanner/SecurityScanner.fetch-correlation.js.map +1 -0
  77. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +14 -11
  78. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -1
  79. package/dist/src/security/scanner/SecurityScanner.helpers.js +26 -124
  80. package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -1
  81. package/dist/src/security/scanner/SecurityScanner.js +114 -36
  82. package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
  83. package/dist/src/security/scanner/SecurityScanner.paste-host.d.ts +69 -0
  84. package/dist/src/security/scanner/SecurityScanner.paste-host.d.ts.map +1 -0
  85. package/dist/src/security/scanner/SecurityScanner.paste-host.js +342 -0
  86. package/dist/src/security/scanner/SecurityScanner.paste-host.js.map +1 -0
  87. package/dist/src/security/scanner/SecurityScanner.risk-score.d.ts +27 -0
  88. package/dist/src/security/scanner/SecurityScanner.risk-score.d.ts.map +1 -0
  89. package/dist/src/security/scanner/SecurityScanner.risk-score.js +178 -0
  90. package/dist/src/security/scanner/SecurityScanner.risk-score.js.map +1 -0
  91. package/dist/src/security/scanner/SecurityScanner.urls.d.ts +20 -0
  92. package/dist/src/security/scanner/SecurityScanner.urls.d.ts.map +1 -0
  93. package/dist/src/security/scanner/SecurityScanner.urls.js +26 -0
  94. package/dist/src/security/scanner/SecurityScanner.urls.js.map +1 -0
  95. package/dist/src/security/scanner/index.d.ts +2 -2
  96. package/dist/src/security/scanner/index.d.ts.map +1 -1
  97. package/dist/src/security/scanner/index.js +5 -1
  98. package/dist/src/security/scanner/index.js.map +1 -1
  99. package/dist/src/security/scanner/multiline-category-closure.test.js +6 -0
  100. package/dist/src/security/scanner/multiline-category-closure.test.js.map +1 -1
  101. package/dist/src/security/scanner/patterns.d.ts +41 -21
  102. package/dist/src/security/scanner/patterns.d.ts.map +1 -1
  103. package/dist/src/security/scanner/patterns.exec.d.ts +89 -0
  104. package/dist/src/security/scanner/patterns.exec.d.ts.map +1 -0
  105. package/dist/src/security/scanner/patterns.exec.js +115 -0
  106. package/dist/src/security/scanner/patterns.exec.js.map +1 -0
  107. package/dist/src/security/scanner/patterns.js +78 -41
  108. package/dist/src/security/scanner/patterns.js.map +1 -1
  109. package/dist/src/security/scanner/types.d.ts +15 -1
  110. package/dist/src/security/scanner/types.d.ts.map +1 -1
  111. package/dist/src/security/scanner/typosquat.d.ts +10 -0
  112. package/dist/src/security/scanner/typosquat.d.ts.map +1 -1
  113. package/dist/src/security/scanner/typosquat.js +5 -1
  114. package/dist/src/security/scanner/typosquat.js.map +1 -1
  115. package/dist/src/security/scanner/weights.d.ts +12 -3
  116. package/dist/src/security/scanner/weights.d.ts.map +1 -1
  117. package/dist/src/security/scanner/weights.js +50 -1
  118. package/dist/src/security/scanner/weights.js.map +1 -1
  119. package/dist/src/services/agent-pack/prompt-source.js +1 -1
  120. package/dist/src/services/agent-pack/prompt-source.js.map +1 -1
  121. package/dist/src/services/bundled-sibling-scan.d.ts +87 -13
  122. package/dist/src/services/bundled-sibling-scan.d.ts.map +1 -1
  123. package/dist/src/services/bundled-sibling-scan.js +177 -33
  124. package/dist/src/services/bundled-sibling-scan.js.map +1 -1
  125. package/dist/src/services/recommend-guard.d.ts.map +1 -1
  126. package/dist/src/services/recommend-guard.js +8 -1
  127. package/dist/src/services/recommend-guard.js.map +1 -1
  128. package/dist/src/services/recommend-guard.test.js +6 -2
  129. package/dist/src/services/recommend-guard.test.js.map +1 -1
  130. package/dist/src/sync/index.d.ts +1 -0
  131. package/dist/src/sync/index.d.ts.map +1 -1
  132. package/dist/src/sync/index.js +2 -0
  133. package/dist/src/sync/index.js.map +1 -1
  134. package/dist/src/sync/license-status-client.d.ts +56 -0
  135. package/dist/src/sync/license-status-client.d.ts.map +1 -0
  136. package/dist/src/sync/license-status-client.js +118 -0
  137. package/dist/src/sync/license-status-client.js.map +1 -0
  138. package/dist/src/sync/license-status-client.test.d.ts +14 -0
  139. package/dist/src/sync/license-status-client.test.d.ts.map +1 -0
  140. package/dist/src/sync/license-status-client.test.js +136 -0
  141. package/dist/src/sync/license-status-client.test.js.map +1 -0
  142. package/dist/src/types.d.ts +13 -0
  143. package/dist/src/types.d.ts.map +1 -1
  144. package/dist/src/utils/version-check.d.ts +58 -5
  145. package/dist/src/utils/version-check.d.ts.map +1 -1
  146. package/dist/src/utils/version-check.js +73 -2
  147. package/dist/src/utils/version-check.js.map +1 -1
  148. package/dist/src/utils/version-check.test.js +49 -10
  149. package/dist/src/utils/version-check.test.js.map +1 -1
  150. package/dist/tests/SecurityScanner.scoring.test.js +123 -0
  151. package/dist/tests/SecurityScanner.scoring.test.js.map +1 -1
  152. package/dist/tests/security/advisory-severity-guard.test.d.ts +20 -0
  153. package/dist/tests/security/advisory-severity-guard.test.d.ts.map +1 -0
  154. package/dist/tests/security/advisory-severity-guard.test.js +70 -0
  155. package/dist/tests/security/advisory-severity-guard.test.js.map +1 -0
  156. package/dist/tests/security/archive-evasion.test.d.ts +2 -0
  157. package/dist/tests/security/archive-evasion.test.d.ts.map +1 -0
  158. package/dist/tests/security/archive-evasion.test.js +126 -0
  159. package/dist/tests/security/archive-evasion.test.js.map +1 -0
  160. package/dist/tests/security/clawhavoc-e2e.fixtures.d.ts +71 -0
  161. package/dist/tests/security/clawhavoc-e2e.fixtures.d.ts.map +1 -0
  162. package/dist/tests/security/clawhavoc-e2e.fixtures.js +135 -0
  163. package/dist/tests/security/clawhavoc-e2e.fixtures.js.map +1 -0
  164. package/dist/tests/security/co-signal-escalation.test.d.ts +30 -0
  165. package/dist/tests/security/co-signal-escalation.test.d.ts.map +1 -0
  166. package/dist/tests/security/co-signal-escalation.test.js +494 -0
  167. package/dist/tests/security/co-signal-escalation.test.js.map +1 -0
  168. package/dist/tests/security/decoy-misdirection.test.d.ts +2 -0
  169. package/dist/tests/security/decoy-misdirection.test.d.ts.map +1 -0
  170. package/dist/tests/security/decoy-misdirection.test.js +130 -0
  171. package/dist/tests/security/decoy-misdirection.test.js.map +1 -0
  172. package/dist/tests/security/encoded-payload.test.d.ts +2 -0
  173. package/dist/tests/security/encoded-payload.test.d.ts.map +1 -0
  174. package/dist/tests/security/encoded-payload.test.js +199 -0
  175. package/dist/tests/security/encoded-payload.test.js.map +1 -0
  176. package/dist/tests/security/gatekeeper-bypass.test.d.ts +2 -0
  177. package/dist/tests/security/gatekeeper-bypass.test.d.ts.map +1 -0
  178. package/dist/tests/security/gatekeeper-bypass.test.js +167 -0
  179. package/dist/tests/security/gatekeeper-bypass.test.js.map +1 -0
  180. package/dist/tests/security/paste-host-fetch.test.d.ts +2 -0
  181. package/dist/tests/security/paste-host-fetch.test.d.ts.map +1 -0
  182. package/dist/tests/security/paste-host-fetch.test.js +199 -0
  183. package/dist/tests/security/paste-host-fetch.test.js.map +1 -0
  184. package/dist/tests/security/scanner-regression-guard.test.js +5 -0
  185. package/dist/tests/security/scanner-regression-guard.test.js.map +1 -1
  186. package/dist/tests/services/aidefence-feedback.test.js +5 -0
  187. package/dist/tests/services/aidefence-feedback.test.js.map +1 -1
  188. package/dist/tests/services/bundled-sibling-scan.test.js +171 -10
  189. package/dist/tests/services/bundled-sibling-scan.test.js.map +1 -1
  190. package/dist/tests/skill-scanner/allowlist.test.js +12 -1
  191. package/dist/tests/skill-scanner/allowlist.test.js.map +1 -1
  192. package/package.json +2 -2
@@ -49,6 +49,15 @@ export interface ApiSearchResult {
49
49
  stars?: number | null;
50
50
  installable?: boolean | null;
51
51
  quarantined?: boolean;
52
+ /**
53
+ * SMI-6033 Wave 2 (Gap 8): true when the most recent scan could not cover
54
+ * every candidate file (count/size cap, transient fetch failure, tree-fetch
55
+ * failure, tree truncation, or tree-budget exhaustion). Informational only
56
+ * — never blocks installability.
57
+ */
58
+ scan_coverage_incomplete?: boolean;
59
+ /** SMI-6033 Wave 2 (Gap 8): '; '-joined machine-readable cause token(s), or null when complete. */
60
+ scan_coverage_note?: string | null;
52
61
  /** SHA-256 hash of SKILL.md content at index time */
53
62
  content_hash?: string | null;
54
63
  /** SMI-3672: Raw SKILL.md content (only when include_content=true) */
@@ -1 +1 @@
1
- {"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../../src/api/client.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../../src/api/client.types.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,8 @@ export declare const ApiSearchResultSchema: z.ZodObject<{
47
47
  last_scanned_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
48
48
  security_findings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnknown>>>;
49
49
  quarantined: z.ZodOptional<z.ZodBoolean>;
50
+ scan_coverage_incomplete: z.ZodOptional<z.ZodBoolean>;
51
+ scan_coverage_note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
52
  license: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
53
  }, z.core.$strip>;
52
54
  /**
@@ -151,6 +153,8 @@ export declare const SearchResponseSchema: z.ZodObject<{
151
153
  last_scanned_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
152
154
  security_findings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnknown>>>;
153
155
  quarantined: z.ZodOptional<z.ZodBoolean>;
156
+ scan_coverage_incomplete: z.ZodOptional<z.ZodBoolean>;
157
+ scan_coverage_note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
154
158
  license: z.ZodOptional<z.ZodNullable<z.ZodString>>;
155
159
  }, z.core.$strip>>;
156
160
  meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -186,6 +190,8 @@ export declare const SingleSkillResponseSchema: z.ZodObject<{
186
190
  last_scanned_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
187
191
  security_findings: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodUnknown>>>;
188
192
  quarantined: z.ZodOptional<z.ZodBoolean>;
193
+ scan_coverage_incomplete: z.ZodOptional<z.ZodBoolean>;
194
+ scan_coverage_note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
189
195
  license: z.ZodOptional<z.ZodNullable<z.ZodString>>;
190
196
  }, z.core.$strip>;
191
197
  meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/api/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAA;AAMF;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgChC,CAAA;AAMF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;;;kBAK5E;AAMD;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAA;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBAc/B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;iBAEpC,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;iBAYvC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACxE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAMjF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA0D,CAAA;AAE3F;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiD,CAAA;AAMvF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE5E;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE1E;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEpF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/api/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAA;AAMF;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqChC,CAAA;AAMF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;;;kBAK5E;AAMD;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAA;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBAc/B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;iBAEpC,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;iBAYvC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACxE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAMjF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA0D,CAAA;AAE3F;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiD,CAAA;AAMvF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAE5E;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE1E;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEpF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
@@ -54,6 +54,11 @@ export const ApiSearchResultSchema = z.object({
54
54
  last_scanned_at: z.string().nullable().optional(),
55
55
  security_findings: z.array(z.unknown()).nullable().optional(),
56
56
  quarantined: z.boolean().optional(),
57
+ // SMI-6033 Wave 2 (Gap 8): partial-scan coverage columns. Declared here so
58
+ // Zod does not strip them before get-skill.ts / search.ts read them (same
59
+ // reason as compatibility/license below).
60
+ scan_coverage_incomplete: z.boolean().optional(),
61
+ scan_coverage_note: z.string().nullable().optional(),
57
62
  // SMI-5327: SPDX license surfaced by skills-get / skills-search. Declared here
58
63
  // so Zod does not strip the field before get-skill.ts / search.ts read it
59
64
  // (same reason as compatibility above). skills-search may omit it → optional.
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/api/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/api/schemas.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ import type { SecuritySummary } from '../types.js';
44
44
  * `ApiSkill`/`ApiSearchResult` row (registry API response shape).
45
45
  * @returns The derived summary, or `undefined` when never scanned.
46
46
  */
47
- export declare function deriveSecuritySummaryFromApiSkill(apiSkill: Pick<ApiSkill, 'last_scanned_at' | 'quarantined' | 'security_score' | 'security_findings'>): SecuritySummary | undefined;
47
+ export declare function deriveSecuritySummaryFromApiSkill(apiSkill: Pick<ApiSkill, 'last_scanned_at' | 'quarantined' | 'security_score' | 'security_findings' | 'scan_coverage_incomplete' | 'scan_coverage_note'>): SecuritySummary | undefined;
48
48
  /**
49
49
  * Derive a `SecuritySummary` from a local-DB-shaped skill row's PRE-COMPUTED
50
50
  * flat security fields (`securityPassed`/`riskScore`/`securityFindingsCount`/
@@ -69,5 +69,14 @@ export declare function deriveSecuritySummaryFromSkillRow(skill: {
69
69
  riskScore: number | null;
70
70
  securityFindingsCount: number;
71
71
  securityScannedAt: string | null;
72
+ /**
73
+ * SMI-6033 Wave 2 (Gap 8): optional — the local-DB path (SQLite) does not
74
+ * currently persist scan-coverage columns (Supabase/registry only), so
75
+ * this is absent for every local-DB-shaped row today. Declared here (not
76
+ * wired to a column yet) so a future local-DB persist can pass it through
77
+ * without changing this function's contract.
78
+ */
79
+ scanCoverageIncomplete?: boolean;
80
+ scanCoverageNote?: string | null;
72
81
  }): SecuritySummary | undefined;
73
82
  //# sourceMappingURL=security-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"security-summary.d.ts","sourceRoot":"","sources":["../../../src/api/security-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,IAAI,CACZ,QAAQ,EACR,iBAAiB,GAAG,aAAa,GAAG,gBAAgB,GAAG,mBAAmB,CAC3E,GACA,eAAe,GAAG,SAAS,CAa7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,cAAc,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC,GAAG,eAAe,GAAG,SAAS,CAW9B"}
1
+ {"version":3,"file":"security-summary.d.ts","sourceRoot":"","sources":["../../../src/api/security-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,IAAI,CACZ,QAAQ,EACN,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,mBAAmB,GACnB,0BAA0B,GAC1B,oBAAoB,CACvB,GACA,eAAe,GAAG,SAAS,CAkB7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,cAAc,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC,GAAG,eAAe,GAAG,SAAS,CAe9B"}
@@ -53,6 +53,11 @@ export function deriveSecuritySummaryFromApiSkill(apiSkill) {
53
53
  ? apiSkill.security_findings.length
54
54
  : 0,
55
55
  scannedAt: apiSkill.last_scanned_at,
56
+ // SMI-6033 Wave 2 (Gap 8): default to complete coverage when the column
57
+ // is absent (older cached rows / pre-Wave-2 API responses) — never
58
+ // fabricate an incomplete-scan caveat for data that predates this field.
59
+ scanCoverageIncomplete: apiSkill.scan_coverage_incomplete ?? false,
60
+ scanCoverageNote: apiSkill.scan_coverage_note ?? null,
56
61
  };
57
62
  }
58
63
  /**
@@ -83,6 +88,10 @@ export function deriveSecuritySummaryFromSkillRow(skill) {
83
88
  riskScore: skill.riskScore,
84
89
  findingsCount: skill.securityFindingsCount,
85
90
  scannedAt: skill.securityScannedAt,
91
+ // Defaults to complete coverage when absent — never fabricate an
92
+ // incomplete-scan caveat for a row that doesn't carry the column.
93
+ scanCoverageIncomplete: skill.scanCoverageIncomplete ?? false,
94
+ scanCoverageNote: skill.scanCoverageNote ?? null,
86
95
  };
87
96
  }
88
97
  //# sourceMappingURL=security-summary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"security-summary.js","sourceRoot":"","sources":["../../../src/api/security-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iCAAiC,CAC/C,QAGC;IAED,IAAI,QAAQ,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC7F,SAAS,EAAE,QAAQ,CAAC,cAAc,IAAI,IAAI;QAC1C,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACtD,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM;YACnC,CAAC,CAAC,CAAC;QACL,SAAS,EAAE,QAAQ,CAAC,eAAe;KACpC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAKjD;IACC,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;QACpC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,cAAc;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,qBAAqB;QAC1C,SAAS,EAAE,KAAK,CAAC,iBAAiB;KACnC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"security-summary.js","sourceRoot":"","sources":["../../../src/api/security-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iCAAiC,CAC/C,QAQC;IAED,IAAI,QAAQ,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC7F,SAAS,EAAE,QAAQ,CAAC,cAAc,IAAI,IAAI;QAC1C,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACtD,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM;YACnC,CAAC,CAAC,CAAC;QACL,SAAS,EAAE,QAAQ,CAAC,eAAe;QACnC,wEAAwE;QACxE,mEAAmE;QACnE,yEAAyE;QACzE,sBAAsB,EAAE,QAAQ,CAAC,wBAAwB,IAAI,KAAK;QAClE,gBAAgB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,IAAI;KACtD,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iCAAiC,CAAC,KAcjD;IACC,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;QACpC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,cAAc;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,qBAAqB;QAC1C,SAAS,EAAE,KAAK,CAAC,iBAAiB;QAClC,iEAAiE;QACjE,kEAAkE;QAClE,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,IAAI,KAAK;QAC7D,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,IAAI;KACjD,CAAA;AACH,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * call sites share and test one implementation.
7
7
  */
8
8
  import { describe, it, expect } from 'vitest';
9
- import { deriveSecuritySummaryFromApiSkill } from './security-summary.js';
9
+ import { deriveSecuritySummaryFromApiSkill, deriveSecuritySummaryFromSkillRow, } from './security-summary.js';
10
10
  describe('deriveSecuritySummaryFromApiSkill', () => {
11
11
  it('returns undefined when the skill has never been scanned (last_scanned_at null)', () => {
12
12
  const result = deriveSecuritySummaryFromApiSkill({
@@ -58,6 +58,8 @@ describe('deriveSecuritySummaryFromApiSkill', () => {
58
58
  riskScore: 0,
59
59
  findingsCount: 0,
60
60
  scannedAt: '2026-06-01T00:00:00.000Z',
61
+ scanCoverageIncomplete: false,
62
+ scanCoverageNote: null,
61
63
  });
62
64
  });
63
65
  it('derives findingsCount from the security_findings array length', () => {
@@ -90,5 +92,81 @@ describe('deriveSecuritySummaryFromApiSkill', () => {
90
92
  expect(result?.riskScore).toBeNull();
91
93
  expect(result?.findingsCount).toBe(1);
92
94
  });
95
+ // SMI-6033 Wave 2 (Gap 8): scan-coverage columns.
96
+ it('defaults scanCoverageIncomplete to false and scanCoverageNote to null when absent (older cached data)', () => {
97
+ const result = deriveSecuritySummaryFromApiSkill({
98
+ last_scanned_at: '2026-06-01T00:00:00.000Z',
99
+ quarantined: false,
100
+ security_score: 0,
101
+ security_findings: [],
102
+ // scan_coverage_incomplete / scan_coverage_note deliberately omitted —
103
+ // must not throw or fabricate an incomplete-scan caveat.
104
+ });
105
+ expect(result?.scanCoverageIncomplete).toBe(false);
106
+ expect(result?.scanCoverageNote).toBeNull();
107
+ });
108
+ it('passes scanCoverageIncomplete/scanCoverageNote through when present', () => {
109
+ const result = deriveSecuritySummaryFromApiSkill({
110
+ last_scanned_at: '2026-06-01T00:00:00.000Z',
111
+ quarantined: false,
112
+ security_score: 5,
113
+ security_findings: [],
114
+ scan_coverage_incomplete: true,
115
+ scan_coverage_note: 'tree_budget_exhausted',
116
+ });
117
+ expect(result?.scanCoverageIncomplete).toBe(true);
118
+ expect(result?.scanCoverageNote).toBe('tree_budget_exhausted');
119
+ });
120
+ });
121
+ describe('deriveSecuritySummaryFromSkillRow', () => {
122
+ it('returns undefined when the skill has never been scanned (securityScannedAt null)', () => {
123
+ const result = deriveSecuritySummaryFromSkillRow({
124
+ securityPassed: null,
125
+ riskScore: null,
126
+ securityFindingsCount: 0,
127
+ securityScannedAt: null,
128
+ });
129
+ expect(result).toBeUndefined();
130
+ });
131
+ it('passes passed/riskScore/findingsCount/scannedAt through raw for a scanned row', () => {
132
+ const result = deriveSecuritySummaryFromSkillRow({
133
+ securityPassed: true,
134
+ riskScore: 12,
135
+ securityFindingsCount: 2,
136
+ securityScannedAt: '2026-06-01T00:00:00.000Z',
137
+ });
138
+ expect(result).toEqual({
139
+ passed: true,
140
+ riskScore: 12,
141
+ findingsCount: 2,
142
+ scannedAt: '2026-06-01T00:00:00.000Z',
143
+ scanCoverageIncomplete: false,
144
+ scanCoverageNote: null,
145
+ });
146
+ });
147
+ // SMI-6033 Wave 2 (Gap 8): the local-DB path doesn't persist scan-coverage
148
+ // columns yet — must default safely, never throw or fabricate a caveat.
149
+ it('defaults scanCoverageIncomplete to false and scanCoverageNote to null when absent', () => {
150
+ const result = deriveSecuritySummaryFromSkillRow({
151
+ securityPassed: false,
152
+ riskScore: 60,
153
+ securityFindingsCount: 3,
154
+ securityScannedAt: '2026-06-01T00:00:00.000Z',
155
+ });
156
+ expect(result?.scanCoverageIncomplete).toBe(false);
157
+ expect(result?.scanCoverageNote).toBeNull();
158
+ });
159
+ it('passes scanCoverageIncomplete/scanCoverageNote through when present', () => {
160
+ const result = deriveSecuritySummaryFromSkillRow({
161
+ securityPassed: true,
162
+ riskScore: 8,
163
+ securityFindingsCount: 0,
164
+ securityScannedAt: '2026-06-01T00:00:00.000Z',
165
+ scanCoverageIncomplete: true,
166
+ scanCoverageNote: 'count_cap_exceeded',
167
+ });
168
+ expect(result?.scanCoverageIncomplete).toBe(true);
169
+ expect(result?.scanCoverageNote).toBe('count_cap_exceeded');
170
+ });
93
171
  });
94
172
  //# sourceMappingURL=security-summary.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"security-summary.test.js","sourceRoot":"","sources":["../../../src/api/security-summary.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security-summary.test.js","sourceRoot":"","sources":["../../../src/api/security-summary.test.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,15 @@ export interface ApiSkill {
70
70
  security_findings?: unknown[] | null;
71
71
  /** True when the skill is quarantined due to security score threshold */
72
72
  quarantined?: boolean;
73
+ /**
74
+ * SMI-6033 Wave 2 (Gap 8): true when the most recent scan could not cover
75
+ * every candidate file (count/size cap, transient fetch failure, tree-fetch
76
+ * failure, tree truncation, or tree-budget exhaustion). Informational only
77
+ * — never blocks installability.
78
+ */
79
+ scan_coverage_incomplete?: boolean;
80
+ /** SMI-6033 Wave 2 (Gap 8): '; '-joined machine-readable cause token(s), or null when complete. */
81
+ scan_coverage_note?: string | null;
73
82
  /**
74
83
  * SMI-5327: SPDX license identifier returned by skills-get / skills-search
75
84
  * (e.g. "MIT", "Apache-2.0"). Null means "unknown / not detected" — NOT
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,25 @@ export interface TokenCredentials {
9
9
  }
10
10
  export declare function storeCredentials(creds: TokenCredentials): Promise<void>;
11
11
  export declare function loadCredentials(): Promise<TokenCredentials | null>;
12
+ /**
13
+ * Clear the stored JWT session (access token, refresh token, expiry) from
14
+ * all storage locations. Mirrors clearApiKey() in config/index.ts, which
15
+ * only handles the legacy apiKey field — a JWT session needs its own clear
16
+ * path since the two credential schemes live in different fields/keyring
17
+ * accounts (SMI-4402 v2 schema vs. the pre-existing apiKey flow).
18
+ *
19
+ * The config-file read-modify-write is guarded by the same cross-process
20
+ * lock + atomic rename `saveConfig()` uses (config-atomic-write.ts,
21
+ * SMI-5531) — a bare readConfigFile()/writeFileSync() here could lose a
22
+ * concurrent writer's update between the read and the write (PR review
23
+ * finding, SMI-6235).
24
+ *
25
+ * @returns Result indicating which storage locations were cleared and any errors
26
+ */
27
+ export declare function clearCredentials(): Promise<{
28
+ success: boolean;
29
+ source: string;
30
+ error?: string;
31
+ }>;
12
32
  export declare function refreshAccessToken(refreshToken: string): Promise<TokenCredentials | null>;
13
33
  //# sourceMappingURL=token-credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-credentials.d.ts","sourceRoot":"","sources":["../../../src/config/token-credentials.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,CAAC,CAAA;CACX;AAoDD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB7E;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA4BxE;AAED,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA6B/F"}
1
+ {"version":3,"file":"token-credentials.d.ts","sourceRoot":"","sources":["../../../src/config/token-credentials.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,CAAC,CAAA;CACX;AAoDD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB7E;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA4BxE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC,CA4CD;AAED,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA6B/F"}
@@ -4,6 +4,7 @@ import { homedir } from 'os';
4
4
  import { join } from 'path';
5
5
  import { existsSync, readFileSync, writeFileSync, chmodSync } from 'fs';
6
6
  import { ensureConfigDir } from './index.js';
7
+ import { acquireConfigLock, atomicWriteFile } from './config-atomic-write.js';
7
8
  import { PRODUCTION_ANON_KEY } from '../api/utils.js';
8
9
  const CONFIG_DIR = '.skillsmith';
9
10
  const CONFIG_FILE = 'config.json';
@@ -97,6 +98,64 @@ export async function loadCredentials() {
97
98
  version: 2,
98
99
  };
99
100
  }
101
+ /**
102
+ * Clear the stored JWT session (access token, refresh token, expiry) from
103
+ * all storage locations. Mirrors clearApiKey() in config/index.ts, which
104
+ * only handles the legacy apiKey field — a JWT session needs its own clear
105
+ * path since the two credential schemes live in different fields/keyring
106
+ * accounts (SMI-4402 v2 schema vs. the pre-existing apiKey flow).
107
+ *
108
+ * The config-file read-modify-write is guarded by the same cross-process
109
+ * lock + atomic rename `saveConfig()` uses (config-atomic-write.ts,
110
+ * SMI-5531) — a bare readConfigFile()/writeFileSync() here could lose a
111
+ * concurrent writer's update between the read and the write (PR review
112
+ * finding, SMI-6235).
113
+ *
114
+ * @returns Result indicating which storage locations were cleared and any errors
115
+ */
116
+ export async function clearCredentials() {
117
+ const sources = [];
118
+ let keyringError;
119
+ const keytar = await getKeytar();
120
+ if (keytar) {
121
+ try {
122
+ const deleted = await keytar.deletePassword(KEYTAR_SERVICE, KEYTAR_ACCOUNT_REFRESH);
123
+ if (deleted) {
124
+ sources.push('keyring');
125
+ }
126
+ }
127
+ catch (err) {
128
+ keyringError = err instanceof Error ? err.message : String(err);
129
+ }
130
+ }
131
+ // Always clear from config file — never leave stale JWT fields behind
132
+ const configPath = getConfigPath();
133
+ ensureConfigDir();
134
+ const release = acquireConfigLock(configPath);
135
+ try {
136
+ const existing = readConfigFile();
137
+ delete existing.accessToken;
138
+ delete existing.refreshToken;
139
+ delete existing.expiresAt;
140
+ delete existing.version;
141
+ atomicWriteFile(configPath, JSON.stringify(existing, null, 2), 0o600);
142
+ }
143
+ finally {
144
+ release();
145
+ }
146
+ sources.push('config file');
147
+ if (keyringError) {
148
+ return {
149
+ success: false,
150
+ source: sources.join(' and '),
151
+ error: keyringError,
152
+ };
153
+ }
154
+ return {
155
+ success: true,
156
+ source: sources.join(' and '),
157
+ };
158
+ }
100
159
  export async function refreshAccessToken(refreshToken) {
101
160
  try {
102
161
  const resp = await fetch(`${SUPABASE_AUTH_URL}/token?grant_type=refresh_token`, {
@@ -1 +1 @@
1
- {"version":3,"file":"token-credentials.js","sourceRoot":"","sources":["../../../src/config/token-credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-credentials.js","sourceRoot":"","sources":["../../../src/config/token-credentials.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@
5
5
  * TC-3: loadCredentials → returns TokenCredentials with keyring token
6
6
  * TC-4: refreshAccessToken → exchanges refresh token, returns new creds
7
7
  * TC-5: refreshAccessToken → returns null on non-2xx response
8
+ * TC-6: clearCredentials → deletes keyring entry + strips config fields
9
+ * TC-7: clearCredentials → reports partial failure on keyring error
10
+ * TC-8: clearCredentials → preserves apiKey and other unrelated fields
8
11
  */
9
12
  export {};
10
13
  //# sourceMappingURL=token-credentials.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-credentials.test.d.ts","sourceRoot":"","sources":["../../../src/config/token-credentials.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
1
+ {"version":3,"file":"token-credentials.test.d.ts","sourceRoot":"","sources":["../../../src/config/token-credentials.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -5,6 +5,9 @@
5
5
  * TC-3: loadCredentials → returns TokenCredentials with keyring token
6
6
  * TC-4: refreshAccessToken → exchanges refresh token, returns new creds
7
7
  * TC-5: refreshAccessToken → returns null on non-2xx response
8
+ * TC-6: clearCredentials → deletes keyring entry + strips config fields
9
+ * TC-7: clearCredentials → reports partial failure on keyring error
10
+ * TC-8: clearCredentials → preserves apiKey and other unrelated fields
8
11
  */
9
12
  import { describe, it, expect, vi, beforeEach } from 'vitest';
10
13
  import { existsSync, readFileSync, writeFileSync } from 'fs';
@@ -17,6 +20,16 @@ vi.mock('fs', () => ({
17
20
  }));
18
21
  vi.mock('os', () => ({ homedir: vi.fn(() => '/mock-home') }));
19
22
  vi.mock('./index.js', () => ({ ensureConfigDir: vi.fn() }));
23
+ // clearCredentials() guards its config-file write with the shared
24
+ // cross-process lock + atomic rename (SMI-5531) — mock both so tests never
25
+ // touch the real filesystem via node:fs (a bare `vi.mock('fs', ...)` above
26
+ // does not intercept 'node:fs' imports, which config-atomic-write.ts uses).
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ const configAtomicWrite = {
29
+ acquireConfigLock: vi.fn(() => vi.fn()),
30
+ atomicWriteFile: vi.fn(),
31
+ };
32
+ vi.mock('./config-atomic-write.js', () => configAtomicWrite);
20
33
  vi.mock('../api/utils.js', () => ({
21
34
  PRODUCTION_ANON_KEY: 'test-anon-key',
22
35
  }));
@@ -24,6 +37,7 @@ vi.mock('../api/utils.js', () => ({
24
37
  const keytarDefault = {
25
38
  setPassword: vi.fn(),
26
39
  getPassword: vi.fn(),
40
+ deletePassword: vi.fn(),
27
41
  };
28
42
  vi.mock('@isaacs/keytar', () => ({ default: keytarDefault }));
29
43
  const fetchMock = vi.fn();
@@ -36,6 +50,7 @@ describe('token-credentials', () => {
36
50
  vi.mocked(readFileSync).mockReturnValue('{}');
37
51
  keytarDefault.setPassword.mockResolvedValue(undefined);
38
52
  keytarDefault.getPassword.mockResolvedValue(null);
53
+ keytarDefault.deletePassword.mockResolvedValue(true);
39
54
  });
40
55
  it('TC-1: storeCredentials writes version:2 schema to config file', async () => {
41
56
  const { storeCredentials } = await import('./token-credentials.js');
@@ -87,5 +102,58 @@ describe('token-credentials', () => {
87
102
  const result = await refreshAccessToken('expired_rt');
88
103
  expect(result).toBeNull();
89
104
  });
105
+ it('TC-6: clearCredentials deletes keyring entry and strips config fields', async () => {
106
+ vi.mocked(existsSync).mockReturnValue(true);
107
+ vi.mocked(readFileSync).mockReturnValue(JSON.stringify({
108
+ accessToken: 'at_stored',
109
+ refreshToken: 'rt_stored',
110
+ expiresAt: 9999999999000,
111
+ version: 2,
112
+ }));
113
+ const { clearCredentials } = await import('./token-credentials.js');
114
+ const result = await clearCredentials();
115
+ expect(result.success).toBe(true);
116
+ expect(result.source).toContain('keyring');
117
+ expect(result.source).toContain('config file');
118
+ expect(keytarDefault.deletePassword).toHaveBeenCalledWith('skillsmith-cli', 'refresh-token');
119
+ expect(configAtomicWrite.acquireConfigLock).toHaveBeenCalledOnce();
120
+ // The lock's release function must be called exactly once (finally block).
121
+ const releaseFn = configAtomicWrite.acquireConfigLock.mock.results[0].value;
122
+ expect(releaseFn).toHaveBeenCalledOnce();
123
+ const writeCall = configAtomicWrite.atomicWriteFile.mock.calls[0];
124
+ const written = JSON.parse(writeCall[1]);
125
+ expect(written.accessToken).toBeUndefined();
126
+ expect(written.refreshToken).toBeUndefined();
127
+ expect(written.expiresAt).toBeUndefined();
128
+ expect(written.version).toBeUndefined();
129
+ });
130
+ it('TC-7: clearCredentials reports partial failure on keyring error', async () => {
131
+ vi.mocked(existsSync).mockReturnValue(true);
132
+ vi.mocked(readFileSync).mockReturnValue(JSON.stringify({ accessToken: 'at_stored', expiresAt: 9999999999000, version: 2 }));
133
+ keytarDefault.deletePassword.mockRejectedValue(new Error('keyring locked'));
134
+ const { clearCredentials } = await import('./token-credentials.js');
135
+ const result = await clearCredentials();
136
+ expect(result.success).toBe(false);
137
+ expect(result.error).toBe('keyring locked');
138
+ // Config file is still cleared even when the keyring delete fails.
139
+ expect(configAtomicWrite.atomicWriteFile).toHaveBeenCalled();
140
+ });
141
+ it('TC-8: clearCredentials preserves apiKey and other unrelated fields', async () => {
142
+ vi.mocked(existsSync).mockReturnValue(true);
143
+ vi.mocked(readFileSync).mockReturnValue(JSON.stringify({
144
+ apiKey: 'sk_live_legacy',
145
+ accessToken: 'at_stored',
146
+ refreshToken: 'rt_stored',
147
+ expiresAt: 9999999999000,
148
+ version: 2,
149
+ someOtherField: 'keep-me',
150
+ }));
151
+ const { clearCredentials } = await import('./token-credentials.js');
152
+ await clearCredentials();
153
+ const writeCall = configAtomicWrite.atomicWriteFile.mock.calls[0];
154
+ const written = JSON.parse(writeCall[1]);
155
+ expect(written.apiKey).toBe('sk_live_legacy');
156
+ expect(written.someOtherField).toBe('keep-me');
157
+ });
90
158
  });
91
159
  //# sourceMappingURL=token-credentials.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-credentials.test.js","sourceRoot":"","sources":["../../../src/config/token-credentials.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-credentials.test.js","sourceRoot":"","sources":["../../../src/config/token-credentials.test.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export { CodebaseAnalyzer, type CodebaseContext, type ImportInfo, type ExportInf
28
28
  export { SkillMatcher, OverlapDetector, type MatchableSkill, type SkillMatchResult, type SkillMatcherOptions, type TriggerPhraseSkill, type OverlapResult, type FilteredSkillsResult, type OverlapDetectorOptions, } from '../matching/index.js';
29
29
  export { TriggerDetector, ContextScorer, DEFAULT_FILE_TRIGGERS, DEFAULT_COMMAND_TRIGGERS, DEFAULT_ERROR_TRIGGERS, DEFAULT_PROJECT_TRIGGERS, type TriggerType, type FilePatternTrigger, type CommandTrigger, type ErrorTrigger, type ProjectTrigger, type DetectedTrigger, type TriggerDetectionOptions, type ContextScore, type ContextScoringWeights, type ContextScorerOptions, } from '../triggers/index.js';
30
30
  export { ActivationManager, ZeroConfigActivator, type ActivationOptions, type ActivationResult, type SkillConfigSchema, type ConfigField, type ConfigStatus, type ZeroConfigOptions, } from '../activation/index.js';
31
- export { SyncConfigRepository, SyncHistoryRepository, SyncEngine, BackgroundSyncService, createBackgroundSyncService, FREQUENCY_INTERVALS, type SyncConfig, type SyncConfigUpdate, type SyncFrequency, type SyncHistoryEntry, type SyncStatus, type SyncRunResult, type SyncOptions, type SyncProgress, type SyncResult, type BackgroundSyncOptions, type BackgroundSyncState, INVENTORY_LIMITS, INVENTORY_UPDATE_POLICIES, type InventoryDevice, type InventorySkillEntry, type InventoryUpdatePolicy, type InventoryUploadPayload, type InventoryUploadResult, collectDeviceSkills, buildInventoryDevice, buildInventoryPayload, uploadInventory, purgeInventory, pushInventory, maybeAutoPush, InventoryAuthError, InventoryConflictError, InventoryValidationError, InventoryUploadError, type BuildInventoryDeviceOptions, type PushInventoryOptions, type MaybeAutoPushOptions, sendAuditDigest, AuditNotifyAuthError, AuditNotifyError, type AuditDigestVerdict, type AuditDigestPushFinding, type AuditDigestPushPayload, type AuditDigestPushResult, } from '../sync/index.js';
31
+ export { SyncConfigRepository, SyncHistoryRepository, SyncEngine, BackgroundSyncService, createBackgroundSyncService, FREQUENCY_INTERVALS, type SyncConfig, type SyncConfigUpdate, type SyncFrequency, type SyncHistoryEntry, type SyncStatus, type SyncRunResult, type SyncOptions, type SyncProgress, type SyncResult, type BackgroundSyncOptions, type BackgroundSyncState, INVENTORY_LIMITS, INVENTORY_UPDATE_POLICIES, type InventoryDevice, type InventorySkillEntry, type InventoryUpdatePolicy, type InventoryUploadPayload, type InventoryUploadResult, collectDeviceSkills, buildInventoryDevice, buildInventoryPayload, uploadInventory, purgeInventory, pushInventory, maybeAutoPush, InventoryAuthError, InventoryConflictError, InventoryValidationError, InventoryUploadError, type BuildInventoryDeviceOptions, type PushInventoryOptions, type MaybeAutoPushOptions, sendAuditDigest, AuditNotifyAuthError, AuditNotifyError, type AuditDigestVerdict, type AuditDigestPushFinding, type AuditDigestPushPayload, type AuditDigestPushResult, resolveSessionTier, SessionTierAuthError, SessionTierTransientError, type SessionTierResult, } from '../sync/index.js';
32
32
  export { extractMcpReferences, type McpReference, type McpExtractionResult, type McpServerResolution, } from '../analysis/McpReferenceExtractor.js';
33
33
  export { mergeDependencies, type MergedDependency } from '../analysis/DependencyMerger.js';
34
34
  export { getRegisteredMcpServers } from '../services/skill-installation.helpers.js';