@skillsmith/core 0.12.1 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/CHANGELOG.md +164 -0
  2. package/README.md +2 -2
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/api/client.d.ts +5 -3
  5. package/dist/src/api/client.d.ts.map +1 -1
  6. package/dist/src/api/client.js +23 -33
  7. package/dist/src/api/client.js.map +1 -1
  8. package/dist/src/api/client.registry-sync.d.ts +28 -0
  9. package/dist/src/api/client.registry-sync.d.ts.map +1 -0
  10. package/dist/src/api/client.registry-sync.js +36 -0
  11. package/dist/src/api/client.registry-sync.js.map +1 -0
  12. package/dist/src/api/client.test.js +185 -0
  13. package/dist/src/api/client.test.js.map +1 -1
  14. package/dist/src/api/client.toSkill.d.ts +16 -0
  15. package/dist/src/api/client.toSkill.d.ts.map +1 -0
  16. package/dist/src/api/client.toSkill.js +46 -0
  17. package/dist/src/api/client.toSkill.js.map +1 -0
  18. package/dist/src/api/client.types.d.ts +22 -0
  19. package/dist/src/api/client.types.d.ts.map +1 -1
  20. package/dist/src/api/index.d.ts +1 -1
  21. package/dist/src/api/index.d.ts.map +1 -1
  22. package/dist/src/api/index.js.map +1 -1
  23. package/dist/src/api/schemas.d.ts +28 -0
  24. package/dist/src/api/schemas.d.ts.map +1 -1
  25. package/dist/src/api/schemas.js +13 -0
  26. package/dist/src/api/schemas.js.map +1 -1
  27. package/dist/src/audit/remote-audit.d.ts +85 -0
  28. package/dist/src/audit/remote-audit.d.ts.map +1 -1
  29. package/dist/src/audit/remote-audit.js +126 -3
  30. package/dist/src/audit/remote-audit.js.map +1 -1
  31. package/dist/src/audit/remote-audit.test.js +217 -1
  32. package/dist/src/audit/remote-audit.test.js.map +1 -1
  33. package/dist/src/config/index.d.ts +1 -0
  34. package/dist/src/config/index.d.ts.map +1 -1
  35. package/dist/src/config/index.js.map +1 -1
  36. package/dist/src/db/migration-runner.d.ts.map +1 -1
  37. package/dist/src/db/migration-runner.js +6 -0
  38. package/dist/src/db/migration-runner.js.map +1 -1
  39. package/dist/src/db/migrations/v18-skill-versions-real-content-hash.d.ts +36 -0
  40. package/dist/src/db/migrations/v18-skill-versions-real-content-hash.d.ts.map +1 -0
  41. package/dist/src/db/migrations/v18-skill-versions-real-content-hash.js +38 -0
  42. package/dist/src/db/migrations/v18-skill-versions-real-content-hash.js.map +1 -0
  43. package/dist/src/db/schema.d.ts +1 -1
  44. package/dist/src/db/schema.d.ts.map +1 -1
  45. package/dist/src/db/schema.js +3 -1
  46. package/dist/src/db/schema.js.map +1 -1
  47. package/dist/src/exports/services.d.ts +3 -7
  48. package/dist/src/exports/services.d.ts.map +1 -1
  49. package/dist/src/exports/services.install.d.ts +18 -0
  50. package/dist/src/exports/services.install.d.ts.map +1 -0
  51. package/dist/src/exports/services.install.js +62 -0
  52. package/dist/src/exports/services.install.js.map +1 -0
  53. package/dist/src/exports/services.js +12 -32
  54. package/dist/src/exports/services.js.map +1 -1
  55. package/dist/src/exports/types.d.ts +1 -1
  56. package/dist/src/exports/types.d.ts.map +1 -1
  57. package/dist/src/index.d.ts +6 -5
  58. package/dist/src/index.d.ts.map +1 -1
  59. package/dist/src/index.js +9 -4
  60. package/dist/src/index.js.map +1 -1
  61. package/dist/src/install/agent-config-merge.json.d.ts +5 -4
  62. package/dist/src/install/agent-config-merge.json.d.ts.map +1 -1
  63. package/dist/src/install/agent-config-merge.json.js +10 -9
  64. package/dist/src/install/agent-config-merge.json.js.map +1 -1
  65. package/dist/src/install/agent-config-merge.types.d.ts +11 -1
  66. package/dist/src/install/agent-config-merge.types.d.ts.map +1 -1
  67. package/dist/src/install/agent-config-merge.types.js.map +1 -1
  68. package/dist/src/install/agent-harness-targets.d.ts +30 -2
  69. package/dist/src/install/agent-harness-targets.d.ts.map +1 -1
  70. package/dist/src/install/agent-harness-targets.js +17 -0
  71. package/dist/src/install/agent-harness-targets.js.map +1 -1
  72. package/dist/src/install/agent-manifest-path-guard.d.ts +28 -3
  73. package/dist/src/install/agent-manifest-path-guard.d.ts.map +1 -1
  74. package/dist/src/install/agent-manifest-path-guard.js +59 -3
  75. package/dist/src/install/agent-manifest-path-guard.js.map +1 -1
  76. package/dist/src/install/agent-manifest-path-guard.test.js +27 -1
  77. package/dist/src/install/agent-manifest-path-guard.test.js.map +1 -1
  78. package/dist/src/install/agent-pack-installer.antigravity-mcp.d.ts +74 -0
  79. package/dist/src/install/agent-pack-installer.antigravity-mcp.d.ts.map +1 -0
  80. package/dist/src/install/agent-pack-installer.antigravity-mcp.js +106 -0
  81. package/dist/src/install/agent-pack-installer.antigravity-mcp.js.map +1 -0
  82. package/dist/src/install/agent-pack-installer.antigravity-mcp.test.d.ts +2 -0
  83. package/dist/src/install/agent-pack-installer.antigravity-mcp.test.d.ts.map +1 -0
  84. package/dist/src/install/agent-pack-installer.antigravity-mcp.test.js +157 -0
  85. package/dist/src/install/agent-pack-installer.antigravity-mcp.test.js.map +1 -0
  86. package/dist/src/install/agent-pack-installer.cursor-mcp.d.ts +53 -0
  87. package/dist/src/install/agent-pack-installer.cursor-mcp.d.ts.map +1 -0
  88. package/dist/src/install/agent-pack-installer.cursor-mcp.js +207 -0
  89. package/dist/src/install/agent-pack-installer.cursor-mcp.js.map +1 -0
  90. package/dist/src/install/agent-pack-installer.cursor-mcp.test.d.ts +2 -0
  91. package/dist/src/install/agent-pack-installer.cursor-mcp.test.d.ts.map +1 -0
  92. package/dist/src/install/agent-pack-installer.cursor-mcp.test.js +285 -0
  93. package/dist/src/install/agent-pack-installer.cursor-mcp.test.js.map +1 -0
  94. package/dist/src/install/agent-pack-installer.d.ts +8 -0
  95. package/dist/src/install/agent-pack-installer.d.ts.map +1 -1
  96. package/dist/src/install/agent-pack-installer.entry.d.ts +120 -3
  97. package/dist/src/install/agent-pack-installer.entry.d.ts.map +1 -1
  98. package/dist/src/install/agent-pack-installer.entry.js +166 -3
  99. package/dist/src/install/agent-pack-installer.entry.js.map +1 -1
  100. package/dist/src/install/agent-pack-installer.js +97 -3
  101. package/dist/src/install/agent-pack-installer.js.map +1 -1
  102. package/dist/src/install/agent-pack-installer.types.d.ts +27 -0
  103. package/dist/src/install/agent-pack-installer.types.d.ts.map +1 -1
  104. package/dist/src/install/agent-pack-installer.types.js +6 -0
  105. package/dist/src/install/agent-pack-installer.types.js.map +1 -1
  106. package/dist/src/install/agent-pack-installer.workspace-scope.test.d.ts +2 -0
  107. package/dist/src/install/agent-pack-installer.workspace-scope.test.d.ts.map +1 -0
  108. package/dist/src/install/agent-pack-installer.workspace-scope.test.js +148 -0
  109. package/dist/src/install/agent-pack-installer.workspace-scope.test.js.map +1 -0
  110. package/dist/src/install/agent-pack-uninstaller.d.ts +18 -7
  111. package/dist/src/install/agent-pack-uninstaller.d.ts.map +1 -1
  112. package/dist/src/install/agent-pack-uninstaller.js +59 -9
  113. package/dist/src/install/agent-pack-uninstaller.js.map +1 -1
  114. package/dist/src/install/agent-pack-uninstaller.test.js +74 -1
  115. package/dist/src/install/agent-pack-uninstaller.test.js.map +1 -1
  116. package/dist/src/install/fan-out.d.ts.map +1 -1
  117. package/dist/src/install/fan-out.js +6 -0
  118. package/dist/src/install/fan-out.js.map +1 -1
  119. package/dist/src/install/index.d.ts +2 -0
  120. package/dist/src/install/index.d.ts.map +1 -1
  121. package/dist/src/install/index.js +2 -0
  122. package/dist/src/install/index.js.map +1 -1
  123. package/dist/src/install/workspace-scope.d.ts +207 -0
  124. package/dist/src/install/workspace-scope.d.ts.map +1 -0
  125. package/dist/src/install/workspace-scope.js +275 -0
  126. package/dist/src/install/workspace-scope.js.map +1 -0
  127. package/dist/src/install/workspace-scope.test.d.ts +2 -0
  128. package/dist/src/install/workspace-scope.test.d.ts.map +1 -0
  129. package/dist/src/install/workspace-scope.test.js +378 -0
  130. package/dist/src/install/workspace-scope.test.js.map +1 -0
  131. package/dist/src/scripts/__tests__/scan-imported-skills.test.js +9 -1
  132. package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
  133. package/dist/src/scripts/scan-imported-skills.d.ts +7 -1
  134. package/dist/src/scripts/scan-imported-skills.d.ts.map +1 -1
  135. package/dist/src/scripts/scan-imported-skills.js +15 -2
  136. package/dist/src/scripts/scan-imported-skills.js.map +1 -1
  137. package/dist/src/scripts/skill-scanner/allowlist.d.ts +10 -0
  138. package/dist/src/scripts/skill-scanner/allowlist.d.ts.map +1 -1
  139. package/dist/src/scripts/skill-scanner/allowlist.js +10 -0
  140. package/dist/src/scripts/skill-scanner/allowlist.js.map +1 -1
  141. package/dist/src/scripts/skill-scanner/index.d.ts +8 -0
  142. package/dist/src/scripts/skill-scanner/index.d.ts.map +1 -1
  143. package/dist/src/scripts/skill-scanner/index.js +13 -5
  144. package/dist/src/scripts/skill-scanner/index.js.map +1 -1
  145. package/dist/src/scripts/skill-scanner/trust-scorer.d.ts.map +1 -1
  146. package/dist/src/scripts/skill-scanner/trust-scorer.js +6 -0
  147. package/dist/src/scripts/skill-scanner/trust-scorer.js.map +1 -1
  148. package/dist/src/security/__tests__/pathValidation.test.js +30 -1
  149. package/dist/src/security/__tests__/pathValidation.test.js.map +1 -1
  150. package/dist/src/security/scanner/SecurityScanner.action-context.d.ts +15 -0
  151. package/dist/src/security/scanner/SecurityScanner.action-context.d.ts.map +1 -0
  152. package/dist/src/security/scanner/SecurityScanner.action-context.js +209 -0
  153. package/dist/src/security/scanner/SecurityScanner.action-context.js.map +1 -0
  154. package/dist/src/security/scanner/SecurityScanner.d.ts +25 -0
  155. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
  156. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +40 -1
  157. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -1
  158. package/dist/src/security/scanner/SecurityScanner.helpers.js +88 -51
  159. package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -1
  160. package/dist/src/security/scanner/SecurityScanner.js +39 -6
  161. package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
  162. package/dist/src/security/scanner/SecurityScanner.pii.d.ts +30 -0
  163. package/dist/src/security/scanner/SecurityScanner.pii.d.ts.map +1 -1
  164. package/dist/src/security/scanner/SecurityScanner.pii.js +8 -1
  165. package/dist/src/security/scanner/SecurityScanner.pii.js.map +1 -1
  166. package/dist/src/security/scanner/SecurityScanner.prose-lexicon.d.ts +60 -0
  167. package/dist/src/security/scanner/SecurityScanner.prose-lexicon.d.ts.map +1 -0
  168. package/dist/src/security/scanner/SecurityScanner.prose-lexicon.js +228 -0
  169. package/dist/src/security/scanner/SecurityScanner.prose-lexicon.js.map +1 -0
  170. package/dist/src/security/scanner/SecurityScanner.scanners.d.ts.map +1 -1
  171. package/dist/src/security/scanner/SecurityScanner.scanners.js +35 -5
  172. package/dist/src/security/scanner/SecurityScanner.scanners.js.map +1 -1
  173. package/dist/src/security/scanner/SecurityScanner.value-gate.d.ts +49 -0
  174. package/dist/src/security/scanner/SecurityScanner.value-gate.d.ts.map +1 -0
  175. package/dist/src/security/scanner/SecurityScanner.value-gate.js +134 -0
  176. package/dist/src/security/scanner/SecurityScanner.value-gate.js.map +1 -0
  177. package/dist/src/security/scanner/SecurityScanner.weak-passwords.d.ts +55 -0
  178. package/dist/src/security/scanner/SecurityScanner.weak-passwords.d.ts.map +1 -0
  179. package/dist/src/security/scanner/SecurityScanner.weak-passwords.js +313 -0
  180. package/dist/src/security/scanner/SecurityScanner.weak-passwords.js.map +1 -0
  181. package/dist/src/security/scanner/patterns.d.ts +16 -6
  182. package/dist/src/security/scanner/patterns.d.ts.map +1 -1
  183. package/dist/src/security/scanner/patterns.js +25 -61
  184. package/dist/src/security/scanner/patterns.js.map +1 -1
  185. package/dist/src/security/scanner/patterns.sensitive-path.d.ts +45 -0
  186. package/dist/src/security/scanner/patterns.sensitive-path.d.ts.map +1 -0
  187. package/dist/src/security/scanner/patterns.sensitive-path.js +137 -0
  188. package/dist/src/security/scanner/patterns.sensitive-path.js.map +1 -0
  189. package/dist/src/security/scanner/regex-utils.d.ts +31 -17
  190. package/dist/src/security/scanner/regex-utils.d.ts.map +1 -1
  191. package/dist/src/security/scanner/regex-utils.js +31 -17
  192. package/dist/src/security/scanner/regex-utils.js.map +1 -1
  193. package/dist/src/security/scanner/types.d.ts +9 -0
  194. package/dist/src/security/scanner/types.d.ts.map +1 -1
  195. package/dist/src/services/SubagentGenerator.client-profiles.d.ts +258 -0
  196. package/dist/src/services/SubagentGenerator.client-profiles.d.ts.map +1 -0
  197. package/dist/src/services/SubagentGenerator.client-profiles.js +260 -0
  198. package/dist/src/services/SubagentGenerator.client-profiles.js.map +1 -0
  199. package/dist/src/services/SubagentGenerator.d.ts +19 -41
  200. package/dist/src/services/SubagentGenerator.d.ts.map +1 -1
  201. package/dist/src/services/SubagentGenerator.helpers.d.ts +64 -0
  202. package/dist/src/services/SubagentGenerator.helpers.d.ts.map +1 -0
  203. package/dist/src/services/SubagentGenerator.helpers.js +228 -0
  204. package/dist/src/services/SubagentGenerator.helpers.js.map +1 -0
  205. package/dist/src/services/SubagentGenerator.js +66 -208
  206. package/dist/src/services/SubagentGenerator.js.map +1 -1
  207. package/dist/src/services/SubagentGenerator.types.d.ts +45 -0
  208. package/dist/src/services/SubagentGenerator.types.d.ts.map +1 -0
  209. package/dist/src/services/SubagentGenerator.types.js +14 -0
  210. package/dist/src/services/SubagentGenerator.types.js.map +1 -0
  211. package/dist/src/services/TransformationService.d.ts +18 -61
  212. package/dist/src/services/TransformationService.d.ts.map +1 -1
  213. package/dist/src/services/TransformationService.js +29 -17
  214. package/dist/src/services/TransformationService.js.map +1 -1
  215. package/dist/src/services/TransformationService.types.d.ts +74 -0
  216. package/dist/src/services/TransformationService.types.d.ts.map +1 -0
  217. package/dist/src/services/TransformationService.types.js +8 -0
  218. package/dist/src/services/TransformationService.types.js.map +1 -0
  219. package/dist/src/services/__tests__/SubagentGenerator.client-profiles.test.d.ts +5 -0
  220. package/dist/src/services/__tests__/SubagentGenerator.client-profiles.test.d.ts.map +1 -0
  221. package/dist/src/services/__tests__/SubagentGenerator.client-profiles.test.js +72 -0
  222. package/dist/src/services/__tests__/SubagentGenerator.client-profiles.test.js.map +1 -0
  223. package/dist/src/services/__tests__/SubagentGenerator.helpers.test.d.ts +2 -0
  224. package/dist/src/services/__tests__/SubagentGenerator.helpers.test.d.ts.map +1 -0
  225. package/dist/src/services/__tests__/SubagentGenerator.helpers.test.js +61 -0
  226. package/dist/src/services/__tests__/SubagentGenerator.helpers.test.js.map +1 -0
  227. package/dist/src/services/__tests__/SubagentGenerator.test.js +155 -0
  228. package/dist/src/services/__tests__/SubagentGenerator.test.js.map +1 -1
  229. package/dist/src/services/__tests__/TransformationService.test.js +48 -0
  230. package/dist/src/services/__tests__/TransformationService.test.js.map +1 -1
  231. package/dist/src/services/agent-pack/agent-pack.test.js +1 -0
  232. package/dist/src/services/agent-pack/agent-pack.test.js.map +1 -1
  233. package/dist/src/services/agent-pack/prompt-source.d.ts +1 -1
  234. package/dist/src/services/agent-pack/prompt-source.d.ts.map +1 -1
  235. package/dist/src/services/agent-pack/prompt-source.js +10 -3
  236. package/dist/src/services/agent-pack/prompt-source.js.map +1 -1
  237. package/dist/src/services/agent-pack/types.d.ts +26 -2
  238. package/dist/src/services/agent-pack/types.d.ts.map +1 -1
  239. package/dist/src/services/agent-pack/types.js +13 -0
  240. package/dist/src/services/agent-pack/types.js.map +1 -1
  241. package/dist/src/services/agent-tool-profile.d.ts.map +1 -1
  242. package/dist/src/services/agent-tool-profile.js +7 -0
  243. package/dist/src/services/agent-tool-profile.js.map +1 -1
  244. package/dist/src/services/agent-tool-profile.test.js +2 -2
  245. package/dist/src/services/skill-content-comparison.d.ts +71 -0
  246. package/dist/src/services/skill-content-comparison.d.ts.map +1 -0
  247. package/dist/src/services/skill-content-comparison.js +90 -0
  248. package/dist/src/services/skill-content-comparison.js.map +1 -0
  249. package/dist/src/services/skill-content-comparison.test.d.ts +6 -0
  250. package/dist/src/services/skill-content-comparison.test.d.ts.map +1 -0
  251. package/dist/src/services/skill-content-comparison.test.js +83 -0
  252. package/dist/src/services/skill-content-comparison.test.js.map +1 -0
  253. package/dist/src/services/skill-identity-classification.d.ts +202 -0
  254. package/dist/src/services/skill-identity-classification.d.ts.map +1 -0
  255. package/dist/src/services/skill-identity-classification.js +295 -0
  256. package/dist/src/services/skill-identity-classification.js.map +1 -0
  257. package/dist/src/services/skill-identity-classification.test.d.ts +6 -0
  258. package/dist/src/services/skill-identity-classification.test.d.ts.map +1 -0
  259. package/dist/src/services/skill-identity-classification.test.js +314 -0
  260. package/dist/src/services/skill-identity-classification.test.js.map +1 -0
  261. package/dist/src/services/skill-installation.content.d.ts.map +1 -1
  262. package/dist/src/services/skill-installation.content.js +6 -1
  263. package/dist/src/services/skill-installation.content.js.map +1 -1
  264. package/dist/src/services/skill-installation.helpers.d.ts +8 -15
  265. package/dist/src/services/skill-installation.helpers.d.ts.map +1 -1
  266. package/dist/src/services/skill-installation.helpers.js +11 -105
  267. package/dist/src/services/skill-installation.helpers.js.map +1 -1
  268. package/dist/src/services/skill-installation.helpers.test.js +106 -1
  269. package/dist/src/services/skill-installation.helpers.test.js.map +1 -1
  270. package/dist/src/services/skill-installation.service.js +1 -1
  271. package/dist/src/services/skill-installation.service.js.map +1 -1
  272. package/dist/src/services/skill-installation.types.d.ts +33 -0
  273. package/dist/src/services/skill-installation.types.d.ts.map +1 -1
  274. package/dist/src/services/skill-installation.types.js.map +1 -1
  275. package/dist/src/services/skill-installation.uninstall.d.ts +84 -0
  276. package/dist/src/services/skill-installation.uninstall.d.ts.map +1 -0
  277. package/dist/src/services/skill-installation.uninstall.js +252 -0
  278. package/dist/src/services/skill-installation.uninstall.js.map +1 -0
  279. package/dist/src/services/skill-manifest.d.ts +41 -0
  280. package/dist/src/services/skill-manifest.d.ts.map +1 -1
  281. package/dist/src/services/skill-manifest.js +93 -0
  282. package/dist/src/services/skill-manifest.js.map +1 -1
  283. package/dist/src/services/skill-manifest.test.js +27 -0
  284. package/dist/src/services/skill-manifest.test.js.map +1 -1
  285. package/dist/src/sync/SyncEngine.d.ts.map +1 -1
  286. package/dist/src/sync/SyncEngine.js +69 -77
  287. package/dist/src/sync/SyncEngine.js.map +1 -1
  288. package/dist/src/telemetry/agent-marker.d.ts +8 -0
  289. package/dist/src/telemetry/agent-marker.d.ts.map +1 -1
  290. package/dist/src/telemetry/agent-marker.js +7 -0
  291. package/dist/src/telemetry/agent-marker.js.map +1 -1
  292. package/dist/src/telemetry/agent-marker.test.js +7 -1
  293. package/dist/src/telemetry/agent-marker.test.js.map +1 -1
  294. package/dist/src/telemetry/index.d.ts +1 -1
  295. package/dist/src/telemetry/index.d.ts.map +1 -1
  296. package/dist/src/telemetry/index.js +1 -1
  297. package/dist/src/telemetry/index.js.map +1 -1
  298. package/dist/src/telemetry/wrap.d.ts +6 -0
  299. package/dist/src/telemetry/wrap.d.ts.map +1 -1
  300. package/dist/src/telemetry/wrap.js +65 -10
  301. package/dist/src/telemetry/wrap.js.map +1 -1
  302. package/dist/src/telemetry/wrap.test.js +81 -1
  303. package/dist/src/telemetry/wrap.test.js.map +1 -1
  304. package/dist/src/telemetry/wrap.tool-call-sink.test.d.ts +26 -0
  305. package/dist/src/telemetry/wrap.tool-call-sink.test.d.ts.map +1 -0
  306. package/dist/src/telemetry/wrap.tool-call-sink.test.js +162 -0
  307. package/dist/src/telemetry/wrap.tool-call-sink.test.js.map +1 -0
  308. package/dist/src/types/skill.d.ts +9 -1
  309. package/dist/src/types/skill.d.ts.map +1 -1
  310. package/dist/src/utils/index.d.ts +2 -1
  311. package/dist/src/utils/index.d.ts.map +1 -1
  312. package/dist/src/utils/index.js +3 -1
  313. package/dist/src/utils/index.js.map +1 -1
  314. package/dist/src/utils/skill-name.d.ts +19 -0
  315. package/dist/src/utils/skill-name.d.ts.map +1 -0
  316. package/dist/src/utils/skill-name.js +26 -0
  317. package/dist/src/utils/skill-name.js.map +1 -0
  318. package/dist/src/utils/skill-name.test.d.ts +2 -0
  319. package/dist/src/utils/skill-name.test.d.ts.map +1 -0
  320. package/dist/src/utils/skill-name.test.js +34 -0
  321. package/dist/src/utils/skill-name.test.js.map +1 -0
  322. package/dist/src/utils/version-check.d.ts +61 -0
  323. package/dist/src/utils/version-check.d.ts.map +1 -1
  324. package/dist/src/utils/version-check.js +78 -1
  325. package/dist/src/utils/version-check.js.map +1 -1
  326. package/dist/src/utils/version-check.test.js +130 -1
  327. package/dist/src/utils/version-check.test.js.map +1 -1
  328. package/dist/tests/db/migration-runner-race.test.js +19 -9
  329. package/dist/tests/db/migration-runner-race.test.js.map +1 -1
  330. package/dist/tests/install/fan-out.test.js +27 -0
  331. package/dist/tests/install/fan-out.test.js.map +1 -1
  332. package/dist/tests/security/ContinuousSecurity.performance.test.js +12 -7
  333. package/dist/tests/security/ContinuousSecurity.performance.test.js.map +1 -1
  334. package/dist/tests/security/ContinuousSecurity.test.js +14 -2
  335. package/dist/tests/security/ContinuousSecurity.test.js.map +1 -1
  336. package/dist/tests/security/ai-defence-multiline-promotion.test.d.ts +10 -12
  337. package/dist/tests/security/ai-defence-multiline-promotion.test.d.ts.map +1 -1
  338. package/dist/tests/security/ai-defence-multiline-promotion.test.js +26 -33
  339. package/dist/tests/security/ai-defence-multiline-promotion.test.js.map +1 -1
  340. package/dist/tests/security/nested-instruction-long-attribute.test.js +20 -10
  341. package/dist/tests/security/nested-instruction-long-attribute.test.js.map +1 -1
  342. package/dist/tests/security/scanner-evidence-tiers.test.js +15 -0
  343. package/dist/tests/security/scanner-evidence-tiers.test.js.map +1 -1
  344. package/dist/tests/security/scanner-multiline-cap.test.d.ts +21 -0
  345. package/dist/tests/security/scanner-multiline-cap.test.d.ts.map +1 -0
  346. package/dist/tests/security/scanner-multiline-cap.test.js +152 -0
  347. package/dist/tests/security/scanner-multiline-cap.test.js.map +1 -0
  348. package/dist/tests/security/scanner-regression-guard.test.js +37 -0
  349. package/dist/tests/security/scanner-regression-guard.test.js.map +1 -1
  350. package/dist/tests/security/scanner-witness-sw1.test.d.ts +32 -0
  351. package/dist/tests/security/scanner-witness-sw1.test.d.ts.map +1 -0
  352. package/dist/tests/security/scanner-witness-sw1.test.js +255 -0
  353. package/dist/tests/security/scanner-witness-sw1.test.js.map +1 -0
  354. package/dist/tests/security/sensitive-path-adversarial-review.test.d.ts +2 -0
  355. package/dist/tests/security/sensitive-path-adversarial-review.test.d.ts.map +1 -0
  356. package/dist/tests/security/sensitive-path-adversarial-review.test.js +193 -0
  357. package/dist/tests/security/sensitive-path-adversarial-review.test.js.map +1 -0
  358. package/dist/tests/security/sensitive-path-fp.test.js +248 -0
  359. package/dist/tests/security/sensitive-path-fp.test.js.map +1 -1
  360. package/dist/tests/security/smi5879-corroboration.core.test.js +44 -0
  361. package/dist/tests/security/smi5879-corroboration.core.test.js.map +1 -1
  362. package/dist/tests/security/weak-password-lexicon.test.d.ts +18 -0
  363. package/dist/tests/security/weak-password-lexicon.test.d.ts.map +1 -0
  364. package/dist/tests/security/weak-password-lexicon.test.js +122 -0
  365. package/dist/tests/security/weak-password-lexicon.test.js.map +1 -0
  366. package/dist/tests/skill-scanner/allowlist.test.js +58 -4
  367. package/dist/tests/skill-scanner/allowlist.test.js.map +1 -1
  368. package/dist/tests/skill-scanner/categorizer.test.d.ts +2 -0
  369. package/dist/tests/skill-scanner/categorizer.test.d.ts.map +1 -0
  370. package/dist/tests/skill-scanner/categorizer.test.js +71 -0
  371. package/dist/tests/skill-scanner/categorizer.test.js.map +1 -0
  372. package/dist/tests/skill-scanner/cli-guard.test.d.ts +23 -0
  373. package/dist/tests/skill-scanner/cli-guard.test.d.ts.map +1 -0
  374. package/dist/tests/skill-scanner/cli-guard.test.js +71 -0
  375. package/dist/tests/skill-scanner/cli-guard.test.js.map +1 -0
  376. package/dist/tests/sync/SyncEngine.abort.test.js +15 -11
  377. package/dist/tests/sync/SyncEngine.abort.test.js.map +1 -1
  378. package/dist/tests/sync/SyncEngine.status.test.js +1 -1
  379. package/dist/tests/sync/SyncEngine.status.test.js.map +1 -1
  380. package/dist/tests/sync/SyncEngine.test.d.ts +11 -2
  381. package/dist/tests/sync/SyncEngine.test.d.ts.map +1 -1
  382. package/dist/tests/sync/SyncEngine.test.js +164 -13
  383. package/dist/tests/sync/SyncEngine.test.js.map +1 -1
  384. package/dist/tests/unit/migrations/migration-v18.test.d.ts +16 -0
  385. package/dist/tests/unit/migrations/migration-v18.test.d.ts.map +1 -0
  386. package/dist/tests/unit/migrations/migration-v18.test.js +192 -0
  387. package/dist/tests/unit/migrations/migration-v18.test.js.map +1 -0
  388. package/dist/tests/unit/services/skill-installation.content.test.js +101 -1
  389. package/dist/tests/unit/services/skill-installation.content.test.js.map +1 -1
  390. package/dist/tests/unit/services/skill-installation.service.sensitive-path-fp.test.d.ts +29 -0
  391. package/dist/tests/unit/services/skill-installation.service.sensitive-path-fp.test.d.ts.map +1 -0
  392. package/dist/tests/unit/services/skill-installation.service.sensitive-path-fp.test.js +200 -0
  393. package/dist/tests/unit/services/skill-installation.service.sensitive-path-fp.test.js.map +1 -0
  394. package/dist/tests/unit/services/skill-installation.service.test.js +9 -8
  395. package/dist/tests/unit/services/skill-installation.service.test.js.map +1 -1
  396. package/dist/tests/unit/sync-engine.source-aware.test.js +5 -5
  397. package/dist/tests/unit/sync-engine.source-aware.test.js.map +1 -1
  398. package/package.json +7 -2
@@ -132,28 +132,36 @@ export function isWithinInlineCode(line, matchIndex) {
132
132
  }
133
133
  return false;
134
134
  }
135
+ // ============================================================================
136
+ // Shared Pattern Scanning
137
+ // ============================================================================
135
138
  /**
136
- * Scan content for patterns that may span multiple lines.
137
- * Multi-line patterns are tested against full content; single-line patterns per-line.
138
- *
139
- * SMI-5876: patterns within a single category (jailbreak / ai_defence) can now
140
- * carry DIFFERENT evidence tiers (a bare "jailbreak" mention vs. an explicit
141
- * "ignore all previous instructions" override), so array-declaration order is
142
- * no longer sufficient to decide which match wins on a line where multiple
143
- * patterns firethe STRONGEST evidence tier per line wins, computed via a
144
- * merge across both passes (`bestByLine`), not "first match, in array order."
145
- *
146
- * Two hazards this closes (see the SMI-5876 design doc §5 for the full
147
- * argument):
148
- * Hazard A pass 2 used to `break` on the FIRST matching pattern
149
- * regardless of tier, so a weaker mention declared earlier in the array
150
- * could shadow a stronger directive declared later on the same line.
151
- * Hazard B — a multiline pattern match used to suppress ALL single-line
152
- * patterns on that line (`flaggedLines`), so a mention-tier multiline
153
- * match could hide a directive-tier single-line match on the same line.
154
- * `bestByLine` SEEDS pass 2 with pass 1's result instead of skipping the
155
- * line outright, so pass 2 can still find something stronger.
139
+ * SMI-5879 (design §3.3.4): correctness ceiling on distinct lines recorded per
140
+ * pattern in the pass-1 full-content scan — score-neutral by proof (Lemma
141
+ * 3.3-B): once one pattern alone has pushed its category's raw subtotal past
142
+ * the per-category `Math.min(100, …)` cap, no further line from that SAME
143
+ * pattern can change the post-cap value. Derived floor:
144
+ * `ceil(100 / min_raw_per_finding)` where `min_raw_per_finding` is the
145
+ * smallest (severity × category-weight × confidence) reachable from the
146
+ * multiline passtoday an `ai_defence` `mention` in either context:
147
+ * `low(5) × 1.9 × low(0.3) = 2.85`, giving `ceil(100/2.85) = 36`. Set to 64
148
+ * (1.78x headroom over the derived floor) so a future weight change that
149
+ * lowers the minimum per-finding contribution doesn't immediately breach it;
150
+ * `scanner-multiline-cap.test.ts` recomputes the floor from the live weight
151
+ * tables and asserts this constant stays `>=` it.
156
152
  */
153
+ export const MAX_MULTILINE_LINES_PER_PATTERN = 64;
154
+ /**
155
+ * SMI-5879 (design §3.3.3/3.3.6): wall-clock LIVENESS bound on a single
156
+ * pattern's pass-1 loop — NOT score-neutral (unlike the line cap above). A
157
+ * same-line repetition (e.g. 200 matches on one line) costs one iteration per
158
+ * match even though `seenLines` never grows past 1, so this bounds worst-case
159
+ * iteration count on a pathological same-line-repetition input. Binding marks
160
+ * the scan `multilineTruncated`; a truncated scan may only ever RAISE a
161
+ * verdict, never lower one (design §3.3.6) — enforced by the write path, not
162
+ * here.
163
+ */
164
+ export const MAX_MULTILINE_ITERATIONS_PER_PATTERN = 10_000;
157
165
  export function scanPatternsWithMultilineSupport(content, config, lineContexts,
158
166
  /**
159
167
  * SMI-5881: explicit cap (UTF-16 code units) for the pass-1 full-content
@@ -166,38 +174,67 @@ maxLength) {
166
174
  const lines = content.split('\n');
167
175
  const contexts = lineContexts ?? analyzeMarkdownContext(content);
168
176
  const bestByLine = new Map();
177
+ let truncated = false;
169
178
  const rank = (t) => EVIDENCE_RANK[t];
170
- // First pass: 'content' | 'both'-scope patterns against full content. No
171
- // break — every such pattern is independently tested (same cost as before:
172
- // at most one full-content scan per pattern), and the strongest tier per
173
- // line wins.
179
+ // First pass: 'content' | 'both'-scope patterns against full content.
180
+ //
181
+ // SMI-5879 (design §3.3): each multiline pattern gets its OWN global-flag
182
+ // clone (never mutating the shared pattern object) and its own per-pattern
183
+ // `seenLines` set. A second match on a line already recorded by THIS
184
+ // pattern is a provable no-op (Lemma 3.3-A: same tier, same line, strict
185
+ // `>` merge comparison) and costs nothing once skipped. The effective input
186
+ // is truncated to `maxLength` up front (mirroring safeRegexTest's own
187
+ // truncation) so `lineNumberOf` never reads past what was actually scanned.
188
+ const scannedContent = maxLength !== undefined && content.length > maxLength ? content.slice(0, maxLength) : content;
174
189
  for (const pattern of config.patterns) {
175
190
  if (resolvePatternScope(pattern) === 'line')
176
191
  continue;
177
- const match = safeRegexTest(pattern, content, maxLength);
178
- if (!match)
179
- continue;
180
- // SMI-5876: use the match's own reported index rather than a fresh
181
- // content.indexOf(match[0]) — the latter misreports the line whenever the
182
- // matched text ALSO occurs earlier in the content (a real hazard fixed in
183
- // the same pass as the evidence-tier merge).
184
- const matchIndex = match.index ?? content.indexOf(match[0]);
185
- const lineNumber = content.slice(0, matchIndex).split('\n').length;
186
- const ctx = contexts[lineNumber - 1];
187
- const matchLine = lines[lineNumber - 1] ?? '';
188
- const lineOffset = content.lastIndexOf('\n', matchIndex - 1) + 1;
189
- const matchCol = matchIndex - lineOffset;
190
- const inInlineCode = ctx?.isInlineCode && isWithinInlineCode(matchLine, matchCol);
191
- const inDocContext = ctx ? isDocumentationContext(ctx) || inInlineCode : false;
192
- const tier = config.classify(pattern);
193
- const incumbent = bestByLine.get(lineNumber);
194
- if (!incumbent || rank(tier) > rank(incumbent.tier)) {
195
- bestByLine.set(lineNumber, {
196
- tier,
197
- matchText: match[0],
198
- location: match[0].trim().slice(0, 100),
199
- inDocContext,
200
- });
192
+ const flags = pattern.flags.includes('g') ? pattern.flags : pattern.flags + 'g';
193
+ const g = new RegExp(pattern.source, flags);
194
+ const seenLines = new Set();
195
+ let iterations = 0;
196
+ let m;
197
+ while ((m = g.exec(scannedContent)) !== null) {
198
+ if (m[0].length === 0)
199
+ g.lastIndex++; // zero-length-match advance
200
+ if (++iterations > MAX_MULTILINE_ITERATIONS_PER_PATTERN) {
201
+ truncated = true;
202
+ break;
203
+ }
204
+ // SMI-5879: many content-scope patterns lead with a captured `(?:^|\n)`
205
+ // (a line-start anchor), so `m.index` for the 2nd+ occurrence points at
206
+ // the NEWLINE ending the PREVIOUS line, not at the matched line's own
207
+ // content attributing raw `m.index` directly under-counts the target
208
+ // line by one and (worse) collides with an already-seen earlier line,
209
+ // silently dropping the real match. Skip past any leading `\n`
210
+ // character(s) to the match's actual content start before resolving
211
+ // the line/column.
212
+ const matchIndex = m.index;
213
+ let contentIndex = matchIndex;
214
+ while (scannedContent[contentIndex] === '\n')
215
+ contentIndex++;
216
+ const lineNumber = scannedContent.slice(0, contentIndex).split('\n').length;
217
+ if (seenLines.has(lineNumber))
218
+ continue; // Lemma 3.3-A: costs nothing
219
+ if (seenLines.size >= MAX_MULTILINE_LINES_PER_PATTERN)
220
+ break; // score-neutral (Lemma 3.3-B)
221
+ seenLines.add(lineNumber);
222
+ const ctx = contexts[lineNumber - 1];
223
+ const matchLine = lines[lineNumber - 1] ?? '';
224
+ const lineOffset = scannedContent.lastIndexOf('\n', contentIndex - 1) + 1;
225
+ const matchCol = contentIndex - lineOffset;
226
+ const inInlineCode = ctx?.isInlineCode && isWithinInlineCode(matchLine, matchCol);
227
+ const inDocContext = ctx ? isDocumentationContext(ctx) || inInlineCode : false;
228
+ const tier = config.classify(pattern);
229
+ const incumbent = bestByLine.get(lineNumber);
230
+ if (!incumbent || rank(tier) > rank(incumbent.tier)) {
231
+ bestByLine.set(lineNumber, {
232
+ tier,
233
+ matchText: m[0],
234
+ location: m[0].trim().slice(0, 100),
235
+ inDocContext,
236
+ });
237
+ }
201
238
  }
202
239
  }
203
240
  // Second pass: 'line' | 'both'-scope patterns, per-line. Seeds `best` from
@@ -243,11 +280,11 @@ maxLength) {
243
280
  if (!candidate)
244
281
  continue;
245
282
  const { severity, confidence } = resolveEvidenceSeverity(candidate.tier, candidate.inDocContext);
246
- const truncated = candidate.matchText.slice(0, 50);
283
+ const truncatedText = candidate.matchText.slice(0, 50);
247
284
  findings.push({
248
285
  type: config.type,
249
286
  severity,
250
- message: `${config.messagePrefix}: "${truncated}${candidate.matchText.length > 50 ? '...' : ''}"`,
287
+ message: `${config.messagePrefix}: "${truncatedText}${candidate.matchText.length > 50 ? '...' : ''}"`,
251
288
  location: candidate.location,
252
289
  lineNumber,
253
290
  category: config.type,
@@ -256,7 +293,7 @@ maxLength) {
256
293
  evidenceType: candidate.tier,
257
294
  });
258
295
  }
259
- return findings;
296
+ return { findings, truncated };
260
297
  }
261
298
  // ============================================================================
262
299
  // Risk Score Calculation
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityScanner.helpers.js","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SecurityScanner.helpers.js","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.helpers.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,14 @@ import { toMinimalRefs, toSARIF, toGitHubAnnotations, toSummary, } from './Secur
37
37
  export { analyzeMarkdownContext, isDocumentationContext, isWithinInlineCode, calculateRiskScore, extractUrls, };
38
38
  export { scanSsrfPatterns };
39
39
  export { toMinimalRefs, toSARIF, toGitHubAnnotations, toSummary };
40
+ /**
41
+ * SMI-5879 (design §5): quickCheck is a fast pre-filter, not the full scan —
42
+ * a bare mention-tier match (a documentation page discussing "jailbreak" or
43
+ * "DAN") should not by itself fail the quick path. Derived ONCE at module
44
+ * load, not hand-maintained, so it can never silently drift from
45
+ * JAILBREAK_PATTERNS' own evidence-tier classification.
46
+ */
47
+ export const DIRECTIVE_JAILBREAK_PATTERNS = JAILBREAK_PATTERNS.filter((p) => classifyEvidence(p) !== 'mention');
40
48
  export class SecurityScanner {
41
49
  allowedDomains;
42
50
  blockedPatterns;
@@ -161,8 +169,20 @@ export class SecurityScanner {
161
169
  * text contains. This disables ONLY the encoded-payload detector on the
162
170
  * inner call, not the rest of the suite — a decoded `curl|bash` still
163
171
  * trips `code_execution`, decoded secrets still trip `sensitive_path`, etc.
172
+ *
173
+ * SMI-5879: `EncodedPayloadRescanner`'s contract is a bare
174
+ * `SecurityFinding[]` return (SecurityScanner.encoding.ts, out of scope for
175
+ * this change), so a recursive `runDetectors` call for decoded content has
176
+ * no return channel of its own to report multiline truncation.
177
+ * `truncationRef` is a shared mutable out-param instead: every call (outer
178
+ * and any recursive rescan) ORs its own jailbreak/AI-defence truncation
179
+ * into it, so truncation anywhere in the recursion is visible to the
180
+ * original (outermost) caller. Per `ScanReport.multilineTruncated`'s own
181
+ * doc: being truncated is only ever used to RAISE caution, never to lower
182
+ * it, so over-reporting here (e.g. attributing an inner rescan's
183
+ * truncation to the whole document) is safe by that same design.
164
184
  */
165
- runDetectors(content, lineContexts, skipEncodedPayload, isHighTrustAuthor = false, isMarkdown = true) {
185
+ runDetectors(content, lineContexts, skipEncodedPayload, isHighTrustAuthor = false, isMarkdown = true, truncationRef) {
166
186
  const findings = [];
167
187
  // SMI-5881: the multiline (full-content) regex pass has its OWN, much
168
188
  // smaller cap than maxContentLength — a ReDoS budget input, not a free
@@ -174,7 +194,8 @@ export class SecurityScanner {
174
194
  const effectiveMultilineLimit = Math.min(MAX_CONTENT_LENGTH_FOR_REGEX, this.maxContentLength);
175
195
  findings.push(...this.scanUrls(content));
176
196
  findings.push(...scanSensitivePaths(content, lineContexts));
177
- findings.push(...this.scanJailbreakPatterns(content, lineContexts, effectiveMultilineLimit));
197
+ const jailbreakResult = this.scanJailbreakPatterns(content, lineContexts, effectiveMultilineLimit);
198
+ findings.push(...jailbreakResult.findings);
178
199
  findings.push(...this.scanSuspiciousPatterns(content, lineContexts));
179
200
  findings.push(...scanSocialEngineering(content, lineContexts));
180
201
  findings.push(...scanPromptLeaking(content, lineContexts));
@@ -210,7 +231,12 @@ export class SecurityScanner {
210
231
  // run before escalateCodeExecution below since a later dispatch wires
211
232
  // this finding type into that co-signal mechanism.
212
233
  findings.push(...scanDecoyMisdirection(content, lineContexts));
213
- findings.push(...this.scanAIDefenceVulnerabilities(content, lineContexts, effectiveMultilineLimit));
234
+ const aiDefenceResult = this.scanAIDefenceVulnerabilities(content, lineContexts, effectiveMultilineLimit);
235
+ findings.push(...aiDefenceResult.findings);
236
+ if (truncationRef) {
237
+ truncationRef.truncated =
238
+ truncationRef.truncated || jailbreakResult.truncated || aiDefenceResult.truncated;
239
+ }
214
240
  findings.push(...scanSsrfPatterns(content, lineContexts, effectiveMultilineLimit));
215
241
  findings.push(...scanPiiPatterns(content, lineContexts));
216
242
  findings.push(...scanCodeExecution(content, lineContexts));
@@ -236,7 +262,7 @@ export class SecurityScanner {
236
262
  // (inner) call to this same method — so no finding is ever run through
237
263
  // escalateCodeExecution/escalateCorroboratedMentions twice.
238
264
  if (!skipEncodedPayload) {
239
- findings.push(...scanEncodedPayload(content, lineContexts, (decodedContent) => this.runDetectors(decodedContent, analyzeMarkdownContext(decodedContent, isMarkdown), true, isHighTrustAuthor, isMarkdown)));
265
+ findings.push(...scanEncodedPayload(content, lineContexts, (decodedContent) => this.runDetectors(decodedContent, analyzeMarkdownContext(decodedContent, isMarkdown), true, isHighTrustAuthor, isMarkdown, truncationRef)));
240
266
  }
241
267
  return findings;
242
268
  }
@@ -282,7 +308,8 @@ export class SecurityScanner {
282
308
  `${this.maxContentLength} code units)`,
283
309
  });
284
310
  }
285
- findings.push(...this.runDetectors(content, lineContexts, false, isHighTrustAuthor, isMarkdown));
311
+ const truncationRef = { truncated: false };
312
+ findings.push(...this.runDetectors(content, lineContexts, false, isHighTrustAuthor, isMarkdown, truncationRef));
286
313
  const endTime = performance.now();
287
314
  const { total: riskScore, breakdown: riskBreakdown } = calculateRiskScore(findings);
288
315
  const hasCritical = findings.some((f) => f.severity === 'critical');
@@ -296,10 +323,16 @@ export class SecurityScanner {
296
323
  scanDurationMs: endTime - startTime,
297
324
  riskScore,
298
325
  riskBreakdown,
326
+ multilineTruncated: truncationRef.truncated,
299
327
  };
300
328
  }
329
+ /**
330
+ * SMI-5879 (design §5): tests only the directive-tier derived subset (a
331
+ * bare mention like "jailbreak" or "DAN" alone should not fail the quick
332
+ * path — see DIRECTIVE_JAILBREAK_PATTERNS above).
333
+ */
301
334
  quickCheck(content) {
302
- for (const pattern of JAILBREAK_PATTERNS) {
335
+ for (const pattern of DIRECTIVE_JAILBREAK_PATTERNS) {
303
336
  if (safeRegexCheck(pattern, content))
304
337
  return false;
305
338
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityScanner.js","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SecurityScanner.js","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,36 @@
8
8
  */
9
9
  import type { SecurityFinding } from './types.js';
10
10
  import type { LineContext } from './SecurityScanner.helpers.js';
11
+ /**
12
+ * SMI-5420: named-placeholder markers that indicate an example, not a real
13
+ * secret. Intentionally NO `X{4,}` rule — it would test the raw match string and
14
+ * short-circuit before the entropy check, downgrading a REAL high-entropy secret
15
+ * that coincidentally contains `xxxx` (governance FN). An all-repeated-char value
16
+ * (e.g. `xxxx…`) is caught by the `/^(.)\1+$/` check in looksLikePlaceholderSecret
17
+ * instead, and partial-repeat low-variety values by the entropy floor.
18
+ *
19
+ * SMI-5423: the SHORT markers (FAKE/DUMMY/SAMPLE/YOUR, ≤6 chars) are guarded with
20
+ * a negative lookbehind `(?<![A-Za-z0-9])` so they only match as a delimited token
21
+ * (`FAKE_KEY`, `<FAKE>`, value-start) — NOT mid-random-string (`k7FAKE1abc`), which
22
+ * is the same raw-match short-circuit FN class as the removed `X{4,}`. Longer
23
+ * markers (EXAMPLE/PLACEHOLDER/CHANGEME/REDACTED, 7+ chars) stay unbounded: their
24
+ * coincidence probability is negligible AND `AKIA…7EXAMPLE` needs EXAMPLE to match
25
+ * mid-token.
26
+ *
27
+ * Accepted tradeoff (SMI-5423 governance): a digit-immediately-prefixed token like
28
+ * `1FAKE_KEY` fails the lookbehind and scores critical rather than low. This is the
29
+ * FP-SAFE direction (over-flag a rare contrived placeholder) — strictly preferable
30
+ * in a security scanner to the FN it replaces (a real secret downgraded); and a
31
+ * longer such value falls under the entropy floor anyway.
32
+ *
33
+ * SMI-5207: exported (additively — `looksLikePlaceholderSecret` below is
34
+ * unchanged, and MF-1 / scanPiiPatterns keep sharing it byte-identically) so
35
+ * MF-4's isProseValue() can reuse the same placeholder vocabulary when
36
+ * deciding whether an assigned credential value references a secret rather
37
+ * than containing one. No `g` flag, so `.test()` is stateless and safe to
38
+ * share across call sites.
39
+ */
40
+ export declare const PLACEHOLDER_SECRET_RE: RegExp;
11
41
  /** SMI-5420: Shannon entropy (bits per character) of a string. */
12
42
  export declare function shannonEntropy(s: string): number;
13
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityScanner.pii.d.ts","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.pii.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,YAAY,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAmD/D,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAUhD;AAaD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAMjE;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,CAgFhG"}
1
+ {"version":3,"file":"SecurityScanner.pii.d.ts","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.pii.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,YAAY,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAiB/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,qBAAqB,QACmI,CAAA;AAWrK,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAUhD;AAaD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAMjE;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,CAgFhG"}
@@ -37,8 +37,15 @@ const CREDENTIAL_PII_INDICES = new Set([0, 1, 2, 3, 4, 5, 6, 10]);
37
37
  * FP-SAFE direction (over-flag a rare contrived placeholder) — strictly preferable
38
38
  * in a security scanner to the FN it replaces (a real secret downgraded); and a
39
39
  * longer such value falls under the entropy floor anyway.
40
+ *
41
+ * SMI-5207: exported (additively — `looksLikePlaceholderSecret` below is
42
+ * unchanged, and MF-1 / scanPiiPatterns keep sharing it byte-identically) so
43
+ * MF-4's isProseValue() can reuse the same placeholder vocabulary when
44
+ * deciding whether an assigned credential value references a secret rather
45
+ * than containing one. No `g` flag, so `.test()` is stateless and safe to
46
+ * share across call sites.
40
47
  */
41
- const PLACEHOLDER_SECRET_RE = /EXAMPLE|(?<![A-Za-z0-9])YOUR[_-]?|PLACEHOLDER|CHANGE[_-]?ME|(?<![A-Za-z0-9])DUMMY|(?<![A-Za-z0-9])FAKE|(?<![A-Za-z0-9])SAMPLE|REDACTED|INSERT[_-]|\.\.\.|<[^>]+>/i;
48
+ export const PLACEHOLDER_SECRET_RE = /EXAMPLE|(?<![A-Za-z0-9])YOUR[_-]?|PLACEHOLDER|CHANGE[_-]?ME|(?<![A-Za-z0-9])DUMMY|(?<![A-Za-z0-9])FAKE|(?<![A-Za-z0-9])SAMPLE|REDACTED|INSERT[_-]|\.\.\.|<[^>]+>/i;
42
49
  /**
43
50
  * SMI-5420: minimum Shannon entropy (bits/char) for a value to read as a real secret.
44
51
  * SMI-5424 PR2 (accepted tradeoff): a hardcoded credential value shorter than ~8 chars
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityScanner.pii.js","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.pii.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,qBAAqB,GACzB,mKAAmK,CAAA;AAErK;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEhC,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAA;IAChB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,KAAK,MAAM,EAAE,IAAI,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;QACtB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK;SACT,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,IAAI,EAAE,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAClD,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAA;AACrD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,YAA4B;IAC3E,MAAM,QAAQ,GAAsB,EAAE,CAAA;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,YAAY,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAA;IAChE,IAAI,cAAc,GAAG,CAAC,CAAC,CAAA;IACvB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;gBAC9B,cAAc,GAAG,CAAC,CAAA;gBAClB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,iBAAiB,GAAG,CAAC,CAAA;IAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC3B,MAAM,aAAa,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,cAAc,CAAA;QACzD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;YAChC,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,YAAY,GAAG,GAAG,EAAE,YAAY,IAAI,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;gBACpF,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAA;gBAC9E,MAAM,cAAc,GAAG,EAAE,KAAK,iBAAiB,CAAA;gBAC/C,uEAAuE;gBACvE,oDAAoD;gBACpD,uEAAuE;gBACvE,qEAAqE;gBACrE,sEAAsE;gBACtE,8DAA8D;gBAC9D,qEAAqE;gBACrE,+DAA+D;gBAC/D,0CAA0C;gBAC1C,yDAAyD;gBACzD,4CAA4C;gBAC5C,EAAE;gBACF,mEAAmE;gBACnE,oEAAoE;gBACpE,gEAAgE;gBAChE,6DAA6D;gBAC7D,+DAA+D;gBAC/D,oEAAoE;gBACpE,+DAA+D;gBAC/D,+DAA+D;gBAC/D,8DAA8D;gBAC9D,6DAA6D;gBAC7D,MAAM,YAAY,GAChB,iHAAiH,CAAC,IAAI,CACpH,IAAI,CACL,CAAA;gBACH,MAAM,kBAAkB,GAAG,cAAc,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,CAAA;gBAC5E,IAAI,QAAgD,CAAA;gBACpD,IAAI,kBAAkB;oBAAE,QAAQ,GAAG,KAAK,CAAA;qBACnC,IAAI,YAAY;oBAAE,QAAQ,GAAG,QAAQ,CAAA;qBACrC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;oBAAE,QAAQ,GAAG,UAAU,CAAA;;oBAC9C,QAAQ,GAAG,MAAM,CAAA;gBACtB,IAAI,UAAU,GAAsB,YAAY,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;gBACvF,yEAAyE;gBACzE,mEAAmE;gBACnE,wEAAwE;gBACxE,yEAAyE;gBACzE,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3E,QAAQ,GAAG,KAAK,CAAA;oBAChB,UAAU,GAAG,KAAK,CAAA;gBACpB,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK;oBACX,QAAQ;oBACR,OAAO,EAAE,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACrF,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBACnC,UAAU,EAAE,KAAK,GAAG,CAAC;oBACrB,QAAQ,EAAE,KAAK;oBACf,sBAAsB,EAAE,YAAY,IAAI,kBAAkB;oBAC1D,UAAU;iBACX,CAAC,CAAA;gBACF,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"SecurityScanner.pii.js","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.pii.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Security Scanner — prose lexicons for the SMI-5207 sensitive_path gates
3
+ * @module @skillsmith/core/security/scanner/SecurityScanner.prose-lexicon
4
+ *
5
+ * SMI-5207: NEGATION_TOKENS (MF-3) and PROSE_STOPWORDS (MF-4) split out of
6
+ * SecurityScanner.scanners.ts purely for the 500-line pre-commit gate — the
7
+ * two word lists are ~120 lines once Prettier expands them one entry per
8
+ * line, which would push that file past the limit. No logic lives here; both
9
+ * gates' behaviour is entirely in SecurityScanner.scanners.ts.
10
+ *
11
+ * The two lists have no consumer in common (round 6 deleted MF-3's
12
+ * blockquote-vs-operator content classification, which was the only thing
13
+ * that ever made MF-3 read PROSE_STOPWORDS) — they share a file for the line
14
+ * budget, not because they are one concept. Keep them independently editable.
15
+ */
16
+ /**
17
+ * MF-3 (SMI-5207, round 3): negation lookaround. A negated verb is not action
18
+ * evidence — "This guide downloads no files and explains ~/.ssh/config"
19
+ * (round-3 counter-example, unquoted prose) must not fire HIGH. The negation
20
+ * token can appear BEFORE ("never uploads") or AFTER ("downloads no files")
21
+ * the verb, so the window is bidirectional. Deliberately narrow: same line
22
+ * only, small window, no general negation engine.
23
+ */
24
+ export declare const NEGATION_TOKENS: Set<string>;
25
+ /**
26
+ * MF-3 (SMI-5207, round 10): determiners that force the NOUN reading of a
27
+ * token which is otherwise spelled like an action verb — "The Downloads
28
+ * folder", "the uploads dashboard", "your downloads".
29
+ *
30
+ * This is a hard grammatical invariant, not a heuristic: an article or
31
+ * possessive determiner cannot be immediately followed by a finite verb in
32
+ * English. So it is applied at distance EXACTLY 1 and nowhere else — "This
33
+ * skill downloads ~/.ssh/id_rsa" keeps firing, because `skill` sits between
34
+ * the determiner and the verb. Demonstratives (this/these/those) are
35
+ * deliberately EXCLUDED: "This downloads the key" is a legitimate verb
36
+ * reading, so they carry real FN risk that the/a/an/possessives do not.
37
+ */
38
+ export declare const NOUN_DETERMINERS: Set<string>;
39
+ /**
40
+ * MF-3 (SMI-5207, round 10): verbs and agent nouns that mark a sentence as
41
+ * DESCRIBING detection rather than instructing an action — "This rule detects
42
+ * malware that steals ~/.ssh/id_rsa". Used only in combination with
43
+ * RELATIVE_MARKERS (see hasActionEvidence); neither signal suppresses on its
44
+ * own, and neither ever suppresses a shell operator.
45
+ */
46
+ export declare const DETECTION_FRAMING: Set<string>;
47
+ /**
48
+ * MF-3 (SMI-5207, round 10): relative pronouns. Their presence immediately
49
+ * before an action verb marks it as the verb of a SUBORDINATE descriptive
50
+ * clause ("code that exfiltrates X"), never an imperative.
51
+ */
52
+ export declare const RELATIVE_MARKERS: Set<string>;
53
+ /**
54
+ * MF-4 (SMI-5207): English function words. A passphrase is nouns; an
55
+ * explanatory sentence is not. The only signal separating `correct horse
56
+ * battery staple` from `never paste your password into chat` — both lowercase
57
+ * multi-word spans.
58
+ */
59
+ export declare const PROSE_STOPWORDS: Set<string>;
60
+ //# sourceMappingURL=SecurityScanner.prose-lexicon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityScanner.prose-lexicon.d.ts","sourceRoot":"","sources":["../../../../src/security/scanner/SecurityScanner.prose-lexicon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,aAe1B,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,aAW3B,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,aA0C5B,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAqD,CAAA;AAElF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,aAoG1B,CAAA"}