@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubagentGenerator.helpers.js","sourceRoot":"","sources":["../../../src/services/SubagentGenerator.helpers.ts"],"names":[],"mappings":"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"}
@@ -9,125 +9,69 @@
9
9
  *
10
10
  * Part of the Skillsmith Optimization Layer for transforming
11
11
  * community skills into more performant versions.
12
+ *
13
+ * SMI-6276 (Wave 6 Step 1): companion-agent frontmatter is now generated
14
+ * per TARGET CLIENT via `SubagentGenerator.client-profiles.ts` — this file
15
+ * no longer emits Claude-native tool names / a Claude `model:` value
16
+ * unconditionally for every client `COMPANION_AGENT_TARGETS` writes a
17
+ * companion file for. Types split to `.types.ts`, pure helpers split to
18
+ * `.helpers.ts` (500-line standard).
12
19
  */
13
- /**
14
- * SMI-1795: Claude model constants for type safety and consistency
15
- */
16
- export const CLAUDE_MODELS = {
17
- HAIKU: 'haiku',
18
- SONNET: 'sonnet',
19
- OPUS: 'opus',
20
- };
21
- /**
22
- * Tool detection patterns for analyzing skill content
23
- */
24
- const TOOL_PATTERNS = {
25
- Read: {
26
- patterns: ['read file', 'read the', 'examine', 'view file', 'Read tool', 'check file'],
27
- priority: 1,
28
- },
29
- Write: {
30
- patterns: ['write file', 'create file', 'save to', 'output to', 'Write tool', 'generate file'],
31
- priority: 2,
32
- },
33
- Edit: {
34
- patterns: [
35
- 'edit file',
36
- 'modify',
37
- 'update file',
38
- 'patch',
39
- 'Edit tool',
40
- 'change file',
41
- 'refactor',
42
- ],
43
- priority: 2,
44
- },
45
- Bash: {
46
- patterns: [
47
- 'bash',
48
- 'npm',
49
- 'npx',
50
- 'git',
51
- 'docker',
52
- 'yarn',
53
- 'pnpm',
54
- 'terminal',
55
- 'shell',
56
- 'command',
57
- ],
58
- priority: 3,
59
- },
60
- Grep: {
61
- patterns: ['grep', 'search for', 'find text', 'pattern match', 'Grep tool', 'search in'],
62
- priority: 1,
63
- },
64
- Glob: {
65
- patterns: ['glob', 'find file', 'file pattern', 'list files', 'Glob tool', 'locate'],
66
- priority: 1,
67
- },
68
- WebFetch: {
69
- patterns: ['fetch', 'http', 'api call', 'url', 'WebFetch', 'download', 'request'],
70
- priority: 2,
71
- },
72
- WebSearch: {
73
- patterns: ['web search', 'search online', 'lookup online', 'WebSearch', 'search the web'],
74
- priority: 2,
75
- },
76
- };
77
- /**
78
- * Minimum tools that most subagents need
79
- */
80
- const BASE_TOOLS = ['Read'];
81
- /**
82
- * SMI-1819: Maximum length for subagent names to prevent overly long identifiers
83
- */
84
- const MAX_SUBAGENT_NAME_LENGTH = 100;
85
- /**
86
- * Generate tool usage guidelines for a subagent
87
- */
88
- function generateToolGuidelines(tools) {
89
- const guidelines = [];
90
- if (tools.includes('Read')) {
91
- guidelines.push('- **Read**: Use to examine files before modifications');
92
- }
93
- if (tools.includes('Write')) {
94
- guidelines.push('- **Write**: Use for creating new files only');
95
- }
96
- if (tools.includes('Edit')) {
97
- guidelines.push('- **Edit**: Use for modifying existing files');
98
- }
99
- if (tools.includes('Bash')) {
100
- guidelines.push('- **Bash**: Use for command execution, prefer non-destructive commands');
101
- }
102
- if (tools.includes('Grep')) {
103
- guidelines.push('- **Grep**: Use for searching file contents');
104
- }
105
- if (tools.includes('Glob')) {
106
- guidelines.push('- **Glob**: Use for finding files by pattern');
107
- }
108
- if (tools.includes('WebFetch')) {
109
- guidelines.push('- **WebFetch**: Use for fetching web content');
110
- }
111
- if (tools.includes('WebSearch')) {
112
- guidelines.push('- **WebSearch**: Use for searching the web');
113
- }
114
- return guidelines.length > 0 ? guidelines.join('\n') : '- Use tools minimally and efficiently';
115
- }
20
+ export { CLAUDE_MODELS } from './SubagentGenerator.types.js';
21
+ import { CANONICAL_CLIENT } from '../install/paths.js';
22
+ import { getSubagentGenerationProfile, mapToolNames } from './SubagentGenerator.client-profiles.js';
23
+ import { CLAUDE_MODELS, } from './SubagentGenerator.types.js';
24
+ import { MAX_SUBAGENT_NAME_LENGTH, generateToolGuidelines, OMITTED_TOOLS_GUIDANCE, generateClaudeMdSnippet, extractTriggerPhrases, determineModel, detectTools, } from './SubagentGenerator.helpers.js';
116
25
  /**
117
26
  * Generate subagent markdown content
27
+ *
28
+ * SMI-6276 (Wave 6 Step 1): frontmatter shape is now driven by the target
29
+ * client's generation profile (`SubagentGenerator.client-profiles.ts`) —
30
+ * `Read, Write, Bash, WebFetch, Grep, Glob, WebSearch` plus a Claude
31
+ * `model:` value are no longer emitted unconditionally for every client.
118
32
  */
119
- function generateSubagentContent(name, description, triggerPhrases, tools, model) {
33
+ function generateSubagentContent(name, description, triggerPhrases, tools, model, client) {
120
34
  const triggerString = triggerPhrases.length > 0
121
35
  ? triggerPhrases.map((p) => `"${p}"`).join(', ')
122
36
  : '[describe trigger conditions]';
123
- const toolGuidelines = generateToolGuidelines(tools);
124
- return `---
125
- name: ${name}
126
- description: ${description} Use when ${triggerString}.
127
- skills: ${name.replace('-specialist', '')}
128
- tools: ${tools.join(', ')}
129
- model: ${model}
130
- ---
37
+ const profile = getSubagentGenerationProfile(client);
38
+ // SMI-6276 pr-reviewer finding: `description` is free text sourced from
39
+ // the SKILL.md being transformed — an unquoted plain YAML scalar breaks
40
+ // if it contains `: ` (reinterpreted as a nested key) or ` #` (truncated
41
+ // as a comment). JSON.stringify() produces a valid YAML double-quoted
42
+ // scalar (YAML's double-quote escaping is a superset of JSON's), so this
43
+ // composes the full description+trigger text as a plain JS string FIRST,
44
+ // then quotes the whole thing once — not per-field — so the result is
45
+ // safe regardless of what the source content contains.
46
+ const frontmatterLines = [
47
+ '---',
48
+ `name: ${name}`,
49
+ `description: ${JSON.stringify(`${description} Use when ${triggerString}.`)}`,
50
+ ];
51
+ if (profile.includeSkillsField) {
52
+ frontmatterLines.push(`skills: ${name.replace('-specialist', '')}`);
53
+ }
54
+ if (profile.toolsPolicy === 'claude-native') {
55
+ frontmatterLines.push(`tools: ${tools.join(', ')}`);
56
+ }
57
+ else if (profile.toolsPolicy === 'mapped-array') {
58
+ // SMI-6276: this client expects a YAML array of ITS OWN tool names, not
59
+ // a Claude-shaped comma list — never emit the unmapped/mis-shaped value
60
+ // (the AntiGravity docs' own "Known Issue" warns an unmapped name can
61
+ // hang the subagent process on invocation). Omit the key entirely when
62
+ // nothing maps, rather than an empty `tools: []` that says nothing.
63
+ const mappedTools = mapToolNames(tools, profile);
64
+ if (mappedTools.length > 0) {
65
+ frontmatterLines.push('tools:', ...mappedTools.map((tool) => ` - ${tool}`));
66
+ }
67
+ }
68
+ frontmatterLines.push(...profile.extraFrontmatterLines);
69
+ if (profile.modelPolicy === 'claude-enum') {
70
+ frontmatterLines.push(`model: ${model}`);
71
+ }
72
+ frontmatterLines.push('---');
73
+ const toolGuidelines = profile.toolsPolicy === 'claude-native' ? generateToolGuidelines(tools) : OMITTED_TOOLS_GUIDANCE;
74
+ return `${frontmatterLines.join('\n')}
131
75
 
132
76
  ## Operating Protocol
133
77
 
@@ -160,98 +104,6 @@ If the task cannot be completed:
160
104
  *Generated by Skillsmith Optimization Layer*
161
105
  `;
162
106
  }
163
- /**
164
- * Generate CLAUDE.md integration snippet
165
- */
166
- function generateClaudeMdSnippet(skillName, description, triggerPhrases, tools, model) {
167
- const triggerPatterns = triggerPhrases.length > 0
168
- ? triggerPhrases.map((p) => `- "${p}"`).join('\n')
169
- : '- [add trigger patterns]';
170
- const exampleTask = triggerPhrases.length > 0 ? triggerPhrases[0] : `execute ${skillName} task`;
171
- return `
172
- ### Subagent Delegation: ${skillName}
173
-
174
- When tasks match ${skillName} triggers, delegate to the ${skillName}-specialist
175
- subagent instead of executing directly. This provides context isolation and
176
- ~37-97% token savings.
177
-
178
- **Trigger Patterns:**
179
- ${triggerPatterns}
180
-
181
- **Delegation Example:**
182
- \`\`\`
183
- Task("${skillName}-specialist", "${exampleTask}", "${skillName}-specialist")
184
- \`\`\`
185
-
186
- **Model:** ${model}
187
- **Tools:** ${tools.join(', ')}
188
- `;
189
- }
190
- /**
191
- * Extract trigger phrases from skill description and content
192
- */
193
- function extractTriggerPhrases(description, content) {
194
- const phrases = [];
195
- // Common trigger phrase patterns
196
- const patterns = [
197
- /when\s+(?:you\s+)?(?:need\s+to\s+)?(.+?)(?:[.,]|$)/gi,
198
- /use\s+(?:this\s+)?(?:when|for)\s+(.+?)(?:[.,]|$)/gi,
199
- /(?:helps?\s+(?:you\s+)?(?:to\s+)?)?(.+?)(?:\s+tasks?|\s+operations?)/gi,
200
- ];
201
- const textToSearch = description + ' ' + content.slice(0, 2000); // Search first 2000 chars
202
- for (const pattern of patterns) {
203
- for (const match of textToSearch.matchAll(pattern)) {
204
- const phrase = match[1].trim().toLowerCase();
205
- if (phrase.length >= 5 && phrase.length <= 50 && !phrases.includes(phrase)) {
206
- phrases.push(phrase);
207
- }
208
- }
209
- }
210
- // Extract from "trigger" or "invoke" mentions
211
- const triggerMatch = content.match(/trigger[s]?\s*[:=]\s*["`']([^"`']+)["`']/gi);
212
- if (triggerMatch) {
213
- for (const match of triggerMatch) {
214
- const phrase = match.replace(/trigger[s]?\s*[:=]\s*["`']/i, '').replace(/["`']$/, '');
215
- if (!phrases.includes(phrase.toLowerCase())) {
216
- phrases.push(phrase.toLowerCase());
217
- }
218
- }
219
- }
220
- return phrases.slice(0, 5); // Limit to 5 phrases
221
- }
222
- /**
223
- * Determine optimal model for subagent
224
- * SMI-1795: Uses CLAUDE_MODELS constants for type safety
225
- */
226
- function determineModel(toolUsage, lineCount) {
227
- // Haiku for simple, fast operations
228
- if (toolUsage.detectedTools.length <= 2 && lineCount < 200) {
229
- return CLAUDE_MODELS.HAIKU;
230
- }
231
- // Opus for complex, reasoning-heavy tasks
232
- if (toolUsage.bashCommandCount > 5 ||
233
- (toolUsage.fileReadCount > 3 && toolUsage.fileWriteCount > 3)) {
234
- return CLAUDE_MODELS.OPUS;
235
- }
236
- // Sonnet for balanced workloads (default)
237
- return CLAUDE_MODELS.SONNET;
238
- }
239
- /**
240
- * Detect tools needed from skill content
241
- */
242
- function detectTools(content) {
243
- const lowerContent = content.toLowerCase();
244
- const detectedTools = new Set(BASE_TOOLS);
245
- for (const [tool, config] of Object.entries(TOOL_PATTERNS)) {
246
- for (const pattern of config.patterns) {
247
- if (lowerContent.includes(pattern.toLowerCase())) {
248
- detectedTools.add(tool);
249
- break;
250
- }
251
- }
252
- }
253
- return Array.from(detectedTools);
254
- }
255
107
  /**
256
108
  * Generate a companion subagent for a skill
257
109
  *
@@ -259,9 +111,12 @@ function detectTools(content) {
259
111
  * @param description - The skill's description
260
112
  * @param content - The full SKILL.md content
261
113
  * @param analysis - Analysis from SkillAnalyzer
114
+ * @param client - SMI-6276: target client for the generated companion-agent
115
+ * frontmatter shape (default: canonical / `claude-code`, preserving prior
116
+ * behavior for every existing caller). See `SubagentGenerator.client-profiles.ts`.
262
117
  * @returns Subagent generation result
263
118
  */
264
- export function generateSubagent(skillName, description, content, analysis) {
119
+ export function generateSubagent(skillName, description, content, analysis, client = CANONICAL_CLIENT) {
265
120
  // SMI-1815: Validate skill name is non-empty
266
121
  if (!skillName || skillName.trim() === '') {
267
122
  return {
@@ -291,7 +146,7 @@ export function generateSubagent(skillName, description, content, analysis) {
291
146
  // Generate subagent description
292
147
  const subagentDescription = description || `Specialist agent for ${skillName} operations`;
293
148
  // Generate content
294
- const subagentContent = generateSubagentContent(subagentName, subagentDescription, triggerPhrases, allTools, model);
149
+ const subagentContent = generateSubagentContent(subagentName, subagentDescription, triggerPhrases, allTools, model, client);
295
150
  // Generate CLAUDE.md snippet
296
151
  const claudeMdSnippet = generateClaudeMdSnippet(skillName, subagentDescription, triggerPhrases, allTools, model);
297
152
  return {
@@ -313,9 +168,12 @@ export function generateSubagent(skillName, description, content, analysis) {
313
168
  * @param skillName - The name of the skill
314
169
  * @param description - The skill's description
315
170
  * @param content - The full SKILL.md content
171
+ * @param client - SMI-6276: target client for the generated companion-agent
172
+ * frontmatter shape (default: canonical / `claude-code`, preserving prior
173
+ * behavior for every existing caller). See `SubagentGenerator.client-profiles.ts`.
316
174
  * @returns Subagent generation result
317
175
  */
318
- export function generateMinimalSubagent(skillName, description, content) {
176
+ export function generateMinimalSubagent(skillName, description, content, client = CANONICAL_CLIENT) {
319
177
  // SMI-1815: Validate skill name is non-empty
320
178
  if (!skillName || skillName.trim() === '') {
321
179
  return {
@@ -333,7 +191,7 @@ export function generateMinimalSubagent(skillName, description, content) {
333
191
  const baseName = skillName.length > maxBaseLength ? skillName.slice(0, maxBaseLength) : skillName;
334
192
  const subagentName = `${baseName}${suffix}`;
335
193
  const subagentDescription = description || `Specialist agent for ${skillName} operations`;
336
- const subagentContent = generateSubagentContent(subagentName, subagentDescription, triggerPhrases, detectedTools, model);
194
+ const subagentContent = generateSubagentContent(subagentName, subagentDescription, triggerPhrases, detectedTools, model, client);
337
195
  const claudeMdSnippet = generateClaudeMdSnippet(skillName, subagentDescription, triggerPhrases, detectedTools, model);
338
196
  return {
339
197
  generated: true,
@@ -1 +1 @@
1
- {"version":3,"file":"SubagentGenerator.js","sourceRoot":"","sources":["../../../src/services/SubagentGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAA;AA4CV;;GAEG;AACH,MAAM,aAAa,GAA6D;IAC9E,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC;QACtF,QAAQ,EAAE,CAAC;KACZ;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC;QAC9F,QAAQ,EAAE,CAAC;KACZ;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,WAAW;YACX,QAAQ;YACR,aAAa;YACb,OAAO;YACP,WAAW;YACX,aAAa;YACb,UAAU;SACX;QACD,QAAQ,EAAE,CAAC;KACZ;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,MAAM;YACN,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;YACR,MAAM;YACN,MAAM;YACN,UAAU;YACV,OAAO;YACP,SAAS;SACV;QACD,QAAQ,EAAE,CAAC;KACZ;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC;QACxF,QAAQ,EAAE,CAAC;KACZ;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC;QACpF,QAAQ,EAAE,CAAC;KACZ;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;QACjF,QAAQ,EAAE,CAAC;KACZ;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,CAAC;QACzF,QAAQ,EAAE,CAAC;KACZ;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAA;AAE3B;;GAEG;AACH,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAEpC;;GAEG;AACH,SAAS,sBAAsB,CAAC,KAAe;IAC7C,MAAM,UAAU,GAAa,EAAE,CAAA;IAE/B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,UAAU,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAA;IAC3F,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAA;AAChG,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,IAAY,EACZ,WAAmB,EACnB,cAAwB,EACxB,KAAe,EACf,KAAkB;IAElB,MAAM,aAAa,GACjB,cAAc,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,+BAA+B,CAAA;IAErC,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAEpD,OAAO;QACD,IAAI;eACG,WAAW,aAAa,aAAa;UAC1C,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SAChB,KAAK;;;;;iBAKG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;EAe9C,cAAc;;;;;;;;;;;;CAYf,CAAA;AACD,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,SAAiB,EACjB,WAAmB,EACnB,cAAwB,EACxB,KAAe,EACf,KAAkB;IAElB,MAAM,eAAe,GACnB,cAAc,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,CAAC,CAAC,0BAA0B,CAAA;IAEhC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,SAAS,OAAO,CAAA;IAE/F,OAAO;2BACkB,SAAS;;mBAEjB,SAAS,8BAA8B,SAAS;;;;;EAKjE,eAAe;;;;QAIT,SAAS,kBAAkB,WAAW,OAAO,SAAS;;;aAGjD,KAAK;aACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;CAC5B,CAAA;AACD,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,WAAmB,EAAE,OAAe;IACjE,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,iCAAiC;IACjC,MAAM,QAAQ,GAAG;QACf,sDAAsD;QACtD,oDAAoD;QACpD,wEAAwE;KACzE,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA,CAAC,0BAA0B;IAE1F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC5C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAChF,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACrF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,qBAAqB;AAClD,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,SAA4B,EAAE,SAAiB;IACrE,oCAAoC;IACpC,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;QAC3D,OAAO,aAAa,CAAC,KAAK,CAAA;IAC5B,CAAC;IAED,0CAA0C;IAC1C,IACE,SAAS,CAAC,gBAAgB,GAAG,CAAC;QAC9B,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,EAC7D,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,CAAA;IAC3B,CAAC;IAED,0CAA0C;IAC1C,OAAO,aAAa,CAAC,MAAM,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAC1C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,UAAU,CAAC,CAAA;IAEjD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACjD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACvB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,WAAmB,EACnB,OAAe,EACf,QAAuB;IAEvB,6CAA6C;IAC7C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,gDAAgD;SACzD,CAAA;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,IAAI,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QACrE,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EACJ,uFAAuF;SAC1F,CAAA;IACH,CAAC;IAED,kDAAkD;IAClD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAE7F,0BAA0B;IAC1B,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAElE,kBAAkB;IAClB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;IAEpE,qDAAqD;IACrD,MAAM,MAAM,GAAG,aAAa,CAAA;IAC5B,MAAM,aAAa,GAAG,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAA;IAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjG,MAAM,YAAY,GAAG,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAA;IAE3C,gCAAgC;IAChC,MAAM,mBAAmB,GAAG,WAAW,IAAI,wBAAwB,SAAS,aAAa,CAAA;IAEzF,mBAAmB;IACnB,MAAM,eAAe,GAAG,uBAAuB,CAC7C,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,KAAK,CACN,CAAA;IAED,6BAA6B;IAC7B,MAAM,eAAe,GAAG,uBAAuB,CAC7C,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,KAAK,CACN,CAAA;IAED,OAAO;QACL,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE;YACR,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,mBAAmB;YAChC,cAAc;YACd,KAAK,EAAE,QAAQ;YACf,KAAK;YACL,OAAO,EAAE,eAAe;SACzB;QACD,eAAe;KAChB,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,WAAmB,EACnB,OAAe;IAEf,6CAA6C;IAC7C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,gDAAgD;SACzD,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1C,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAElE,0CAA0C;IAC1C,MAAM,KAAK,GAAgB,aAAa,CAAC,MAAM,CAAA;IAE/C,qDAAqD;IACrD,MAAM,MAAM,GAAG,aAAa,CAAA;IAC5B,MAAM,aAAa,GAAG,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAA;IAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjG,MAAM,YAAY,GAAG,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAA;IAC3C,MAAM,mBAAmB,GAAG,WAAW,IAAI,wBAAwB,SAAS,aAAa,CAAA;IAEzF,MAAM,eAAe,GAAG,uBAAuB,CAC7C,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,KAAK,CACN,CAAA;IAED,MAAM,eAAe,GAAG,uBAAuB,CAC7C,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,KAAK,CACN,CAAA;IAED,OAAO;QACL,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE;YACR,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,mBAAmB;YAChC,cAAc;YACd,KAAK,EAAE,aAAa;YACpB,KAAK;YACL,OAAO,EAAE,eAAe;SACzB;QACD,eAAe;KAChB,CAAA;AACH,CAAC;AAED,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAA"}
1
+ {"version":3,"file":"SubagentGenerator.js","sourceRoot":"","sources":["../../../src/services/SubagentGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * SMI-1788: Types for SubagentGenerator — split out under the 500-line
3
+ * standard (SMI-6276) following this directory's existing `.types.ts`
4
+ * convention (see SkillAnalyzer.types.ts / SkillDecomposer.types.ts).
5
+ */
6
+ /**
7
+ * SMI-1795: Claude model constants for type safety and consistency
8
+ */
9
+ export declare const CLAUDE_MODELS: {
10
+ readonly HAIKU: "haiku";
11
+ readonly SONNET: "sonnet";
12
+ readonly OPUS: "opus";
13
+ };
14
+ export type ClaudeModel = (typeof CLAUDE_MODELS)[keyof typeof CLAUDE_MODELS];
15
+ /**
16
+ * Generated subagent definition
17
+ */
18
+ export interface SubagentDefinition {
19
+ /** Subagent name (e.g., "jest-helper-specialist") */
20
+ name: string;
21
+ /** Description for the Task tool */
22
+ description: string;
23
+ /** Trigger phrases that should invoke this subagent */
24
+ triggerPhrases: string[];
25
+ /** Tools the subagent needs access to */
26
+ tools: string[];
27
+ /** Recommended model */
28
+ model: ClaudeModel;
29
+ /** The full markdown content for the target client's companion-agent directory */
30
+ content: string;
31
+ }
32
+ /**
33
+ * Result of subagent generation
34
+ */
35
+ export interface SubagentGenerationResult {
36
+ /** Whether a subagent was generated */
37
+ generated: boolean;
38
+ /** The subagent definition (if generated) */
39
+ subagent?: SubagentDefinition;
40
+ /** Reason if not generated */
41
+ reason?: string;
42
+ /** CLAUDE.md integration snippet */
43
+ claudeMdSnippet?: string;
44
+ }
45
+ //# sourceMappingURL=SubagentGenerator.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubagentGenerator.types.d.ts","sourceRoot":"","sources":["../../../src/services/SubagentGenerator.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAE5E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAA;IAEZ,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAA;IAEnB,uDAAuD;IACvD,cAAc,EAAE,MAAM,EAAE,CAAA;IAExB,yCAAyC;IACzC,KAAK,EAAE,MAAM,EAAE,CAAA;IAEf,wBAAwB;IACxB,KAAK,EAAE,WAAW,CAAA;IAElB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAA;IAElB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAE7B,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SMI-1788: Types for SubagentGenerator — split out under the 500-line
3
+ * standard (SMI-6276) following this directory's existing `.types.ts`
4
+ * convention (see SkillAnalyzer.types.ts / SkillDecomposer.types.ts).
5
+ */
6
+ /**
7
+ * SMI-1795: Claude model constants for type safety and consistency
8
+ */
9
+ export const CLAUDE_MODELS = {
10
+ HAIKU: 'haiku',
11
+ SONNET: 'sonnet',
12
+ OPUS: 'opus',
13
+ };
14
+ //# sourceMappingURL=SubagentGenerator.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubagentGenerator.types.js","sourceRoot":"","sources":["../../../src/services/SubagentGenerator.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACJ,CAAA"}
@@ -17,63 +17,9 @@
17
17
  */
18
18
  import type { Database as DatabaseType } from '../db/database-interface.js';
19
19
  import { type SkillAnalysis } from './SkillAnalyzer.js';
20
- import { type SubagentDefinition } from './SubagentGenerator.js';
21
- /**
22
- * Full transformation result for a skill
23
- */
24
- export interface TransformationResult {
25
- /** Whether transformation was applied */
26
- transformed: boolean;
27
- /** The optimized main SKILL.md content */
28
- mainSkillContent: string;
29
- /** Sub-skills (if decomposed) */
30
- subSkills: Array<{
31
- filename: string;
32
- content: string;
33
- }>;
34
- /** Companion subagent (if generated) */
35
- subagent?: SubagentDefinition;
36
- /** CLAUDE.md integration snippet */
37
- claudeMdSnippet?: string;
38
- /** Transformation statistics */
39
- stats: TransformationStats;
40
- /** Analysis that informed the transformation */
41
- analysis: SkillAnalysis;
42
- /** Attribution footer added to content */
43
- attribution: string;
44
- }
45
- /**
46
- * Statistics about the transformation
47
- */
48
- export interface TransformationStats {
49
- /** Original content line count */
50
- originalLines: number;
51
- /** Optimized main skill line count */
52
- optimizedLines: number;
53
- /** Number of sub-skills extracted */
54
- subSkillCount: number;
55
- /** Whether Task() calls were parallelized */
56
- tasksParallelized: boolean;
57
- /** Whether subagent was generated */
58
- subagentGenerated: boolean;
59
- /** Estimated token reduction percentage */
60
- tokenReductionPercent: number;
61
- /** Transformation duration in ms */
62
- transformDurationMs: number;
63
- }
64
- /**
65
- * Configuration for TransformationService
66
- */
67
- export interface TransformationServiceOptions {
68
- /** Cache TTL in seconds (default: 3600 = 1 hour) */
69
- cacheTtl?: number;
70
- /** Enable caching (default: true) */
71
- enableCache?: boolean;
72
- /** Force re-transformation even if cached (default: false) */
73
- forceTransform?: boolean;
74
- /** Transformation version for cache invalidation */
75
- version?: string;
76
- }
20
+ import { type ClientId } from '../install/paths.js';
21
+ import type { TransformationResult, TransformationServiceOptions } from './TransformationService.types.js';
22
+ export type { TransformationResult, TransformationStats, TransformationServiceOptions, } from './TransformationService.types.js';
77
23
  /**
78
24
  * TransformationService orchestrates the skill optimization pipeline
79
25
  */
@@ -94,9 +40,13 @@ export declare class TransformationService {
94
40
  * @param skillName - Human-readable skill name
95
41
  * @param description - Skill description
96
42
  * @param content - The full SKILL.md content
43
+ * @param client - SMI-6276: target client for the generated companion-agent
44
+ * frontmatter shape (default: canonical / `claude-code`, preserving prior
45
+ * behavior for every existing caller). See
46
+ * `SubagentGenerator.client-profiles.ts`.
97
47
  * @returns Transformation result
98
48
  */
99
- transform(skillId: string, skillName: string, description: string, content: string): Promise<TransformationResult>;
49
+ transform(skillId: string, skillName: string, description: string, content: string, client?: ClientId): Promise<TransformationResult>;
100
50
  /**
101
51
  * Transform without caching (for testing or one-off transforms)
102
52
  *
@@ -106,9 +56,11 @@ export declare class TransformationService {
106
56
  * @param skillName - Human-readable skill name
107
57
  * @param description - Skill description
108
58
  * @param content - The full SKILL.md content
59
+ * @param client - SMI-6276: target client for the generated companion-agent
60
+ * frontmatter shape (default: canonical / `claude-code`).
109
61
  * @returns Transformation result
110
62
  */
111
- transformWithoutCache(skillName: string, description: string, content: string): TransformationResult;
63
+ transformWithoutCache(skillName: string, description: string, content: string, client?: ClientId): TransformationResult;
112
64
  /**
113
65
  * Check if a skill would benefit from transformation without fully transforming
114
66
  *
@@ -125,7 +77,10 @@ export declare class TransformationService {
125
77
  */
126
78
  private cacheTransformation;
127
79
  /**
128
- * Build cache key for a skill
80
+ * Build cache key for a skill. Includes `client` (SMI-6276 pr-reviewer
81
+ * finding) -- without it, a cached transformation generated for one
82
+ * client's frontmatter shape gets silently served back for a different
83
+ * client, defeating the whole point of client-parameterized generation.
129
84
  */
130
85
  private buildCacheKey;
131
86
  /**
@@ -160,8 +115,10 @@ export declare class TransformationService {
160
115
  * @param skillName - Human-readable skill name
161
116
  * @param description - Skill description
162
117
  * @param content - The full SKILL.md content
118
+ * @param client - SMI-6276: target client for the generated companion-agent
119
+ * frontmatter shape (default: canonical / `claude-code`).
163
120
  * @returns Transformation result
164
121
  */
165
- export declare function transformSkill(skillName: string, description: string, content: string): TransformationResult;
122
+ export declare function transformSkill(skillName: string, description: string, content: string, client?: ClientId): TransformationResult;
166
123
  export default TransformationService;
167
124
  //# sourceMappingURL=TransformationService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransformationService.d.ts","sourceRoot":"","sources":["../../../src/services/TransformationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransformationService.d.ts","sourceRoot":"","sources":["../../../src/services/TransformationService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG3E,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAO1F,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,KAAK,EAEV,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,kCAAkC,CAAA;AAEzC,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,kCAAkC,CAAA;AAsBzC;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,OAAO,CAAwC;IAEvD;;;;;OAKG;gBACS,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,4BAA4B;IAKrE;;;;;;;;;;;;OAYG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,QAA2B,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAmEhC;;;;;;;;;;;;OAYG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,QAA2B,GAClC,oBAAoB;IAqCvB;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAIvC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,WAAW;IA8CnB;;OAEG;IACH,UAAU,IAAI,MAAM;IAKpB;;OAEG;IACH,aAAa,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAOpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,QAA2B,GAClC,oBAAoB,CAGtB;AAED,eAAe,qBAAqB,CAAA"}