@hasna/skills 0.1.27 → 0.1.30

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 (671) hide show
  1. package/LICENSE +1 -10
  2. package/README.md +141 -39
  3. package/bin/index.js +30121 -27576
  4. package/bin/mcp.js +22073 -18556
  5. package/dist/cli/cli.test-utils.d.ts +15 -0
  6. package/dist/cli/commands/auth.d.ts +2 -0
  7. package/dist/cli/commands/install.d.ts +1 -1
  8. package/dist/cli/commands/runtime-mcp.d.ts +4 -0
  9. package/dist/index.d.ts +9 -4
  10. package/dist/index.js +11606 -598
  11. package/dist/lib/auth-store.d.ts +13 -0
  12. package/dist/lib/installer.d.ts +58 -55
  13. package/dist/lib/mcp-contracts.d.ts +86 -0
  14. package/dist/lib/project-state.d.ts +43 -0
  15. package/dist/lib/registry-data/business-marketing.d.ts +2 -0
  16. package/dist/lib/registry-data/communication.d.ts +2 -0
  17. package/dist/lib/registry-data/content-generation.d.ts +2 -0
  18. package/dist/lib/registry-data/data-analysis.d.ts +2 -0
  19. package/dist/lib/registry-data/design-branding.d.ts +2 -0
  20. package/dist/lib/registry-data/development-tools.d.ts +2 -0
  21. package/dist/lib/registry-data/education-learning.d.ts +2 -0
  22. package/dist/lib/registry-data/event-management.d.ts +2 -0
  23. package/dist/lib/registry-data/finance-compliance.d.ts +2 -0
  24. package/dist/lib/registry-data/health-wellness.d.ts +2 -0
  25. package/dist/lib/registry-data/index.d.ts +2 -0
  26. package/dist/lib/registry-data/media-processing.d.ts +2 -0
  27. package/dist/lib/registry-data/productivity-organization.d.ts +2 -0
  28. package/dist/lib/registry-data/project-management.d.ts +2 -0
  29. package/dist/lib/registry-data/research-writing.d.ts +2 -0
  30. package/dist/lib/registry-data/science-academic.d.ts +2 -0
  31. package/dist/lib/registry-data/travel-lifestyle.d.ts +2 -0
  32. package/dist/lib/registry-data/web-browser.d.ts +2 -0
  33. package/dist/lib/registry-types.d.ts +27 -0
  34. package/dist/lib/registry.d.ts +6 -18
  35. package/dist/lib/remote-registry.d.ts +3 -0
  36. package/dist/lib/run-state.d.ts +60 -0
  37. package/dist/lib/skill-aliases.d.ts +17 -0
  38. package/dist/lib/skillinfo.d.ts +5 -1
  39. package/dist/mcp/discovery-tools.d.ts +2 -0
  40. package/dist/mcp/helpers.d.ts +26 -0
  41. package/dist/mcp/http.d.ts +11 -0
  42. package/dist/mcp/index.d.ts +3 -2
  43. package/dist/mcp/operation-tools.d.ts +2 -0
  44. package/dist/mcp/resource-meta-tools.d.ts +2 -0
  45. package/dist/mcp/schedule-tools.d.ts +2 -0
  46. package/dist/mcp/server.d.ts +4 -0
  47. package/dist/types/api.d.ts +7 -4
  48. package/package.json +22 -11
  49. package/skills/_common/http-client.ts +1 -1
  50. package/skills/_common/index.ts +2 -3
  51. package/skills/_common/install.sh +5 -110
  52. package/skills/_common/installer.ts +31 -282
  53. package/skills/_common/skill-install.ts +14 -181
  54. package/skills/ad-creative-pack/SKILL.md +45 -0
  55. package/skills/ad-creative-pack/package.json +14 -0
  56. package/skills/advanced-math/package.json +3 -1
  57. package/skills/advanced-math/src/calculators.ts +118 -0
  58. package/skills/advanced-math/src/cli.ts +130 -0
  59. package/skills/advanced-math/src/conversion.ts +90 -0
  60. package/skills/advanced-math/src/finance.ts +75 -0
  61. package/skills/advanced-math/src/formatting.ts +95 -0
  62. package/skills/advanced-math/src/index.ts +24 -702
  63. package/skills/advanced-math/src/runtime.ts +49 -0
  64. package/skills/advanced-math/src/symbolic.ts +110 -0
  65. package/skills/advanced-math/src/types.ts +36 -0
  66. package/skills/analyze-data/SKILL.md +2 -2
  67. package/skills/analyze-data/src/analysis.ts +401 -0
  68. package/skills/analyze-data/src/cli.ts +66 -0
  69. package/skills/analyze-data/src/formatters.ts +235 -0
  70. package/skills/analyze-data/src/index.ts +6 -1027
  71. package/skills/analyze-data/src/logger.ts +36 -0
  72. package/skills/analyze-data/src/parsers.ts +57 -0
  73. package/skills/analyze-data/src/stats.ts +151 -0
  74. package/skills/analyze-data/src/types.ts +85 -0
  75. package/skills/api-docs-portal/SKILL.md +46 -0
  76. package/skills/api-docs-portal/package.json +9 -0
  77. package/skills/api-test-suite/src/index.ts +13 -0
  78. package/skills/apidocs/package.json +1 -1
  79. package/skills/apidocs/src/index.ts +3 -0
  80. package/skills/audio/package.json +2 -3
  81. package/skills/audio-cleanup-lab/SKILL.md +2 -2
  82. package/skills/audio-extract/CLAUDE.md +1 -1
  83. package/skills/audio-transcript-pack/SKILL.md +43 -0
  84. package/skills/audio-transcript-pack/package.json +10 -0
  85. package/skills/blog-article/CLAUDE.md +12 -0
  86. package/skills/blog-article/SKILL.md +45 -0
  87. package/skills/{create-blog-article → blog-article}/package.json +3 -3
  88. package/skills/brand-kit/SKILL.md +45 -0
  89. package/skills/brand-kit/package.json +14 -0
  90. package/skills/brand-photo-shoot/SKILL.md +28 -0
  91. package/skills/brand-photo-shoot/package.json +10 -0
  92. package/skills/brand-style-guide/SKILL.md +2 -2
  93. package/skills/brand-style-guide/src/index.ts +0 -0
  94. package/skills/budget-variance-analyzer/SKILL.md +2 -2
  95. package/skills/businessactivity/package.json +1 -1
  96. package/skills/businessactivity/src/index.ts +3 -0
  97. package/skills/calendar-events/src/ai-parser.ts +103 -0
  98. package/skills/calendar-events/src/api.ts +157 -0
  99. package/skills/calendar-events/src/auth.ts +22 -0
  100. package/skills/calendar-events/src/config.ts +6 -0
  101. package/skills/calendar-events/src/format.ts +96 -0
  102. package/skills/calendar-events/src/help.ts +54 -0
  103. package/skills/calendar-events/src/index.ts +21 -524
  104. package/skills/calendar-events/src/logger.ts +34 -0
  105. package/skills/calendar-events/src/types.ts +67 -0
  106. package/skills/compress-video/SKILL.md +2 -2
  107. package/skills/consolelog/exports/products-2025-12-14T13-50-53-041Z.csv +16 -0
  108. package/skills/consolelog/exports/products-2025-12-14T13-50-53-041Z.json +227 -0
  109. package/skills/consolelog/package.json +1 -1
  110. package/skills/consolelog/src/index.ts +3 -0
  111. package/skills/contract-review-report/SKILL.md +43 -0
  112. package/skills/contract-review-report/package.json +10 -0
  113. package/skills/convert/SKILL.md +2 -3
  114. package/skills/customer-feedback-report/SKILL.md +44 -0
  115. package/skills/customer-feedback-report/package.json +10 -0
  116. package/skills/dashboard-builder/package.json +3 -1
  117. package/skills/database-explorer/package.json +3 -1
  118. package/skills/deepresearch/README.md +4 -13
  119. package/skills/deploy/src/http-client.ts +1 -1
  120. package/skills/diff-viewer/package.json +4 -1
  121. package/skills/doc-generate/package.json +0 -1
  122. package/skills/doc-generate/src/ai.ts +50 -0
  123. package/skills/doc-generate/src/cli.ts +203 -0
  124. package/skills/doc-generate/src/dependencies.ts +44 -0
  125. package/skills/doc-generate/src/document-builder.ts +299 -0
  126. package/skills/doc-generate/src/index.ts +40 -764
  127. package/skills/doc-generate/src/markdown-parser.ts +125 -0
  128. package/skills/doc-generate/src/types.ts +68 -0
  129. package/skills/domainpurchase/SKILL.md +1 -1
  130. package/skills/domainpurchase/package.json +1 -1
  131. package/skills/domainpurchase/src/index.ts +3 -0
  132. package/skills/domainsearch/SKILL.md +1 -1
  133. package/skills/domainsearch/package.json +1 -1
  134. package/skills/domainsearch/src/index.ts +3 -0
  135. package/skills/email-sequence/SKILL.md +44 -0
  136. package/skills/email-sequence/package.json +14 -0
  137. package/skills/excel/CLAUDE.md +2 -2
  138. package/skills/experiment-power-calculator/package.json +3 -1
  139. package/skills/extract-invoice/src/cli.ts +97 -0
  140. package/skills/extract-invoice/src/extractor.ts +170 -0
  141. package/skills/extract-invoice/src/file-utils.ts +46 -0
  142. package/skills/extract-invoice/src/formatters.ts +144 -0
  143. package/skills/extract-invoice/src/index.ts +44 -629
  144. package/skills/extract-invoice/src/runtime.ts +46 -0
  145. package/skills/extract-invoice/src/types.ts +88 -0
  146. package/skills/folder-tree/package.json +3 -1
  147. package/skills/form-filler/package.json +3 -1
  148. package/skills/generate-api-client/package.json +3 -1
  149. package/skills/generate-api-client/src/generator.ts +47 -0
  150. package/skills/generate-api-client/src/index.ts +3 -777
  151. package/skills/generate-api-client/src/logger.ts +34 -0
  152. package/skills/generate-api-client/src/python-generator.ts +245 -0
  153. package/skills/generate-api-client/src/spec-loader.ts +48 -0
  154. package/skills/generate-api-client/src/type-mappers.ts +79 -0
  155. package/skills/generate-api-client/src/types.ts +76 -0
  156. package/skills/generate-api-client/src/typescript-generator.ts +247 -0
  157. package/skills/generate-book-cover/package.json +3 -1
  158. package/skills/generate-dockerfile/src/cli.ts +78 -0
  159. package/skills/generate-dockerfile/src/dockerfile-templates.ts +392 -0
  160. package/skills/generate-dockerfile/src/index.ts +12 -790
  161. package/skills/generate-dockerfile/src/logger.ts +30 -0
  162. package/skills/generate-dockerfile/src/project-detection.ts +68 -0
  163. package/skills/generate-dockerfile/src/support-files.ts +171 -0
  164. package/skills/generate-dockerfile/src/types.ts +29 -0
  165. package/skills/generate-documentation/src/ai.ts +131 -0
  166. package/skills/generate-documentation/src/cli.ts +71 -0
  167. package/skills/generate-documentation/src/code-parser.ts +300 -0
  168. package/skills/generate-documentation/src/file-processing.ts +182 -0
  169. package/skills/generate-documentation/src/index.ts +13 -753
  170. package/skills/generate-documentation/src/runtime.ts +35 -0
  171. package/skills/generate-documentation/src/types.ts +30 -0
  172. package/skills/generate-env/package.json +3 -1
  173. package/skills/generate-env/src/cli.ts +85 -0
  174. package/skills/generate-env/src/detection.ts +161 -0
  175. package/skills/generate-env/src/env-data.ts +66 -0
  176. package/skills/generate-env/src/generators.ts +240 -0
  177. package/skills/generate-env/src/index.ts +76 -676
  178. package/skills/generate-env/src/runtime.ts +30 -0
  179. package/skills/generate-env/src/types.ts +32 -0
  180. package/skills/generate-favicon/package.json +3 -1
  181. package/skills/generate-mock-data/package.json +3 -1
  182. package/skills/generate-mock-data/src/ai.ts +102 -0
  183. package/skills/generate-mock-data/src/formatters.ts +84 -0
  184. package/skills/generate-mock-data/src/generator.ts +377 -0
  185. package/skills/generate-mock-data/src/index.ts +15 -716
  186. package/skills/generate-mock-data/src/logger.ts +37 -0
  187. package/skills/generate-mock-data/src/presets.ts +110 -0
  188. package/skills/generate-mock-data/src/types.ts +21 -0
  189. package/skills/generate-pr-description/src/ai.ts +144 -0
  190. package/skills/generate-pr-description/src/cli.ts +80 -0
  191. package/skills/generate-pr-description/src/clipboard.ts +30 -0
  192. package/skills/generate-pr-description/src/formatters.ts +231 -0
  193. package/skills/generate-pr-description/src/git.ts +153 -0
  194. package/skills/generate-pr-description/src/index.ts +21 -714
  195. package/skills/generate-pr-description/src/types.ts +49 -0
  196. package/skills/generate-presentation/src/ai-clients.ts +61 -0
  197. package/skills/generate-presentation/src/cli.ts +126 -0
  198. package/skills/generate-presentation/src/index.ts +3 -751
  199. package/skills/generate-presentation/src/logger.ts +67 -0
  200. package/skills/generate-presentation/src/presentation-generator.ts +425 -0
  201. package/skills/generate-presentation/src/runtime.ts +6 -0
  202. package/skills/generate-presentation/src/security.ts +12 -0
  203. package/skills/generate-presentation/src/types.ts +28 -0
  204. package/skills/generate-qrcode/package.json +4 -1
  205. package/skills/generate-regex/package.json +3 -1
  206. package/skills/generate-resume/src/cli.ts +157 -0
  207. package/skills/generate-resume/src/index.ts +13 -917
  208. package/skills/generate-resume/src/parsers.ts +95 -0
  209. package/skills/generate-resume/src/renderers.ts +538 -0
  210. package/skills/generate-resume/src/security.ts +39 -0
  211. package/skills/generate-resume/src/types.ts +86 -0
  212. package/skills/generate-social-posts/src/ai.ts +88 -0
  213. package/skills/generate-social-posts/src/cli.ts +118 -0
  214. package/skills/generate-social-posts/src/exporters.ts +126 -0
  215. package/skills/generate-social-posts/src/generator.ts +130 -0
  216. package/skills/generate-social-posts/src/index.ts +19 -709
  217. package/skills/generate-social-posts/src/platforms.ts +39 -0
  218. package/skills/generate-social-posts/src/runtime.ts +34 -0
  219. package/skills/generate-social-posts/src/source.ts +116 -0
  220. package/skills/generate-social-posts/src/types.ts +58 -0
  221. package/skills/gif-maker/package.json +4 -1
  222. package/skills/github-manager/package.json +3 -1
  223. package/skills/gmail/CLAUDE.md +1 -1
  224. package/skills/highlight-reel-generator/src/index.ts +19 -0
  225. package/skills/hook/src/commands/create.ts +20 -845
  226. package/skills/hook/src/templates/root.ts +196 -0
  227. package/skills/hook/src/templates/source.ts +647 -0
  228. package/skills/http-server/package.json +3 -1
  229. package/skills/icon-pack/README.md +28 -0
  230. package/skills/icon-pack/SKILL.md +23 -0
  231. package/skills/icon-pack/package.json +29 -0
  232. package/skills/{audio → icon-pack}/tsconfig.json +10 -12
  233. package/skills/image/package.json +1 -2
  234. package/skills/implementation-agent/package.json +3 -1
  235. package/skills/implementation-agent/src/ai-generation.ts +225 -0
  236. package/skills/implementation-agent/src/index.ts +3 -960
  237. package/skills/implementation-agent/src/minimist.d.ts +15 -0
  238. package/skills/implementation-agent/src/templates.ts +686 -0
  239. package/skills/implementation-agent/src/types.ts +53 -0
  240. package/skills/implementation-plan/package.json +3 -1
  241. package/skills/implementation-todo/package.json +3 -1
  242. package/skills/invoice/package.json +1 -1
  243. package/skills/invoice/src/index.ts +3 -0
  244. package/skills/invoice-reconciliation/SKILL.md +42 -0
  245. package/skills/invoice-reconciliation/package.json +10 -0
  246. package/skills/landing-page-pack/SKILL.md +47 -0
  247. package/skills/landing-page-pack/package.json +14 -0
  248. package/skills/latex-table-generator/package.json +3 -1
  249. package/skills/logo-design/SKILL.md +25 -44
  250. package/skills/logo-design/package.json +3 -15
  251. package/skills/lorem-generator/package.json +3 -1
  252. package/skills/lorem-generator/src/index.ts +13 -0
  253. package/skills/managehook/package.json +1 -1
  254. package/skills/managehook/src/index.ts +3 -0
  255. package/skills/managemcp/package.json +1 -1
  256. package/skills/managemcp/src/index.ts +3 -0
  257. package/skills/manageskill/package.json +1 -1
  258. package/skills/manageskill/src/index.ts +3 -0
  259. package/skills/markdown-validator/package.json +3 -1
  260. package/skills/markdown-validator/src/index.ts +1 -4
  261. package/skills/market-research-report/SKILL.md +41 -0
  262. package/skills/market-research-report/package.json +10 -0
  263. package/skills/mcp-builder/package.json +4 -1
  264. package/skills/mcp-builder/src/ai-descriptions.ts +37 -0
  265. package/skills/mcp-builder/src/generators.ts +513 -0
  266. package/skills/mcp-builder/src/index.ts +7 -908
  267. package/skills/mcp-builder/src/minimist.d.ts +15 -0
  268. package/skills/mcp-builder/src/naming.ts +12 -0
  269. package/skills/mcp-builder/src/options.ts +170 -0
  270. package/skills/mcp-builder/src/templates.ts +149 -0
  271. package/skills/mcp-builder/src/types.ts +42 -0
  272. package/skills/meeting-pack/SKILL.md +43 -0
  273. package/skills/meeting-pack/package.json +10 -0
  274. package/skills/merge-pdfs/package.json +5 -1
  275. package/skills/migration-plan-pack/SKILL.md +45 -0
  276. package/skills/migration-plan-pack/package.json +10 -0
  277. package/skills/music/package.json +2 -3
  278. package/skills/music-album/SKILL.md +37 -0
  279. package/skills/music-album/package.json +10 -0
  280. package/skills/notion-manager/package.json +3 -1
  281. package/skills/npmpublish/CLAUDE.md +5 -8
  282. package/skills/npmpublish/README.md +5 -26
  283. package/skills/npmpublish/src/index.ts +9 -147
  284. package/skills/one-page-website/SKILL.md +46 -0
  285. package/skills/one-page-website/package.json +10 -0
  286. package/skills/one-page-website/tsconfig.json +8 -0
  287. package/skills/pdf-generate/src/cli.ts +162 -0
  288. package/skills/pdf-generate/src/html.ts +84 -0
  289. package/skills/pdf-generate/src/index.ts +11 -800
  290. package/skills/pdf-generate/src/markdown.ts +27 -0
  291. package/skills/pdf-generate/src/pdf-writer.ts +78 -0
  292. package/skills/pdf-generate/src/runtime.ts +34 -0
  293. package/skills/pdf-generate/src/security.ts +37 -0
  294. package/skills/pdf-generate/src/templates.ts +311 -0
  295. package/skills/pdf-generate/src/types.ts +28 -0
  296. package/skills/pdf-read/SKILL.md +10 -10
  297. package/skills/pdf-to-dataset/SKILL.md +45 -0
  298. package/skills/pdf-to-dataset/package.json +10 -0
  299. package/skills/pdf-to-markdown/SKILL.md +49 -0
  300. package/skills/pdf-to-markdown/package.json +10 -0
  301. package/skills/pdf-to-markdown/tsconfig.json +10 -0
  302. package/skills/performance-audit-report/SKILL.md +42 -0
  303. package/skills/performance-audit-report/package.json +10 -0
  304. package/skills/persona-based-adwriter/src/index.ts +19 -0
  305. package/skills/photo-album/SKILL.md +29 -0
  306. package/skills/photo-album/package.json +9 -0
  307. package/skills/photo-album/tsconfig.json +4 -0
  308. package/skills/pitch-deck/SKILL.md +43 -0
  309. package/skills/pitch-deck/package.json +9 -0
  310. package/skills/playlist-maker/SKILL.md +33 -0
  311. package/skills/playlist-maker/package.json +9 -0
  312. package/skills/playlist-maker/tsconfig.json +4 -0
  313. package/skills/product-mockup/SKILL.md +45 -0
  314. package/skills/product-mockup/package.json +3 -20
  315. package/skills/product-mockup/tsconfig.json +3 -5
  316. package/skills/project-retro-companion/src/index.ts +19 -0
  317. package/skills/proposal-pack/SKILL.md +45 -0
  318. package/skills/proposal-pack/package.json +10 -0
  319. package/skills/read-pdf/SKILL.md +5 -4
  320. package/skills/repo-onboarding-report/SKILL.md +42 -0
  321. package/skills/repo-onboarding-report/package.json +10 -0
  322. package/skills/sales-call-recapper/src/index.ts +20 -0
  323. package/skills/salescopy/package.json +1 -1
  324. package/skills/salescopy/src/index.ts +3 -0
  325. package/skills/scaffold-project/src/ai-detect.ts +136 -0
  326. package/skills/scaffold-project/src/file-generators.ts +292 -0
  327. package/skills/scaffold-project/src/index.ts +8 -991
  328. package/skills/scaffold-project/src/project-config.ts +338 -0
  329. package/skills/scaffold-project/src/templates.ts +173 -0
  330. package/skills/scaffold-project/src/types.ts +58 -0
  331. package/skills/scientific-figure-check/package.json +3 -1
  332. package/skills/sdk-generator/SKILL.md +45 -0
  333. package/skills/sdk-generator/package.json +10 -0
  334. package/skills/sdk-generator/tsconfig.json +8 -0
  335. package/skills/security-audit/src/index.ts +25 -6
  336. package/skills/security-audit-report/SKILL.md +40 -0
  337. package/skills/security-audit-report/package.json +10 -0
  338. package/skills/seo-content-pack/SKILL.md +44 -0
  339. package/skills/seo-content-pack/package.json +9 -0
  340. package/skills/short-video-pack/SKILL.md +30 -0
  341. package/skills/short-video-pack/package.json +10 -0
  342. package/skills/skill-academic-journal-matcher/bin/cli.ts +34 -0
  343. package/skills/skill-action-item-router/bin/cli.ts +34 -0
  344. package/skills/skill-ad-creative-generator/bin/cli.ts +34 -0
  345. package/skills/skill-advanced-math/bin/cli.ts +34 -0
  346. package/skills/skill-analyze-data/bin/cli.ts +19 -0
  347. package/skills/skill-anomaly-investigator/bin/cli.ts +34 -0
  348. package/skills/skill-api-test-suite/bin/cli.ts +34 -0
  349. package/skills/skill-apidocs/bin/cli.ts +87 -0
  350. package/skills/skill-audio-cleanup-lab/bin/cli.ts +6 -0
  351. package/skills/skill-audiobook-chapter-proofer/bin/cli.ts +34 -0
  352. package/skills/skill-banner-ad-suite/bin/cli.ts +34 -0
  353. package/skills/skill-benchmark-finder/bin/cli.ts +34 -0
  354. package/skills/skill-bio-sequence-tool/bin/cli.ts +34 -0
  355. package/skills/skill-blog-topic-cluster/bin/cli.ts +34 -0
  356. package/skills/skill-brand-style-guide/bin/cli.ts +19 -0
  357. package/skills/skill-brand-voice-audit/bin/cli.ts +34 -0
  358. package/skills/skill-budget-variance-analyzer/bin/cli.ts +6 -0
  359. package/skills/skill-businessactivity/bin/cli.ts +28 -0
  360. package/skills/skill-calendar-events/bin/cli.ts +34 -0
  361. package/skills/skill-campaign-metric-brief/bin/cli.ts +34 -0
  362. package/skills/skill-campaign-moodboard/bin/cli.ts +34 -0
  363. package/skills/skill-caption-style-stylist/bin/cli.ts +34 -0
  364. package/skills/skill-chemistry-calculator/bin/cli.ts +34 -0
  365. package/skills/skill-churn-risk-notifier/bin/cli.ts +34 -0
  366. package/skills/skill-citation-formatter/bin/cli.ts +34 -0
  367. package/skills/skill-classroom-newsletter-kit/bin/cli.ts +34 -0
  368. package/skills/skill-color-palette-harmonizer/bin/cli.ts +34 -0
  369. package/skills/skill-competitor-ad-analyzer/bin/cli.ts +34 -0
  370. package/skills/skill-compliance-copy-check/bin/cli.ts +34 -0
  371. package/skills/skill-compliance-report-pack/bin/cli.ts +34 -0
  372. package/skills/skill-compress-video/bin/cli.ts +19 -0
  373. package/skills/skill-consolelog/bin/cli.ts +884 -0
  374. package/skills/skill-contract-plainlanguage/bin/cli.ts +34 -0
  375. package/skills/skill-copytone-translator/bin/cli.ts +34 -0
  376. package/skills/skill-create-blog-article/bin/cli.ts +34 -0
  377. package/skills/skill-create-ebook/bin/cli.ts +34 -0
  378. package/skills/skill-crm-note-enhancer/bin/cli.ts +34 -0
  379. package/skills/skill-customer-journey-mapper/bin/cli.ts +34 -0
  380. package/skills/skill-dashboard-builder/bin/cli.ts +34 -0
  381. package/skills/skill-dashboard-narrator/bin/cli.ts +34 -0
  382. package/skills/skill-data-anonymizer/bin/cli.ts +34 -0
  383. package/skills/skill-database-explorer/bin/cli.ts +34 -0
  384. package/skills/skill-dataset-health-check/bin/cli.ts +34 -0
  385. package/skills/skill-decision-journal/bin/cli.ts +34 -0
  386. package/skills/skill-delegation-brief-writer/bin/cli.ts +34 -0
  387. package/skills/skill-destination-briefing/bin/cli.ts +34 -0
  388. package/skills/skill-diff-viewer/bin/cli.ts +34 -0
  389. package/skills/skill-domainpurchase/bin/cli.ts +683 -0
  390. package/skills/skill-domainsearch/bin/cli.ts +410 -0
  391. package/skills/skill-educational-resource-finder/bin/cli.ts +34 -0
  392. package/skills/skill-email-campaign/bin/cli.ts +34 -0
  393. package/skills/skill-exam-readiness-check/bin/cli.ts +34 -0
  394. package/skills/skill-experiment-power-calculator/bin/cli.ts +34 -0
  395. package/skills/skill-extract-audio/bin/cli.ts +19 -0
  396. package/skills/skill-extract-frames/bin/cli.ts +34 -0
  397. package/skills/skill-extract-invoice/bin/cli.ts +34 -0
  398. package/skills/skill-family-activity-curator/bin/cli.ts +34 -0
  399. package/skills/skill-faq-packager/bin/cli.ts +34 -0
  400. package/skills/skill-feedback-survey-designer/bin/cli.ts +34 -0
  401. package/skills/skill-field-trip-planner/bin/cli.ts +34 -0
  402. package/skills/skill-file-organizer/bin/cli.ts +34 -0
  403. package/skills/skill-folder-tree/bin/cli.ts +34 -0
  404. package/skills/skill-forecast-scenario-lab/bin/cli.ts +34 -0
  405. package/skills/skill-form-filler/bin/cli.ts +34 -0
  406. package/skills/skill-generate-api-client/bin/cli.ts +34 -0
  407. package/skills/skill-generate-book-cover/bin/cli.ts +34 -0
  408. package/skills/skill-generate-chart/bin/cli.ts +34 -0
  409. package/skills/skill-generate-diagram/bin/cli.ts +34 -0
  410. package/skills/skill-generate-dockerfile/bin/cli.ts +34 -0
  411. package/skills/skill-generate-documentation/bin/cli.ts +34 -0
  412. package/skills/skill-generate-docx/bin/cli.ts +6 -0
  413. package/skills/skill-generate-env/bin/cli.ts +34 -0
  414. package/skills/skill-generate-excel/bin/cli.ts +34 -0
  415. package/skills/skill-generate-favicon/bin/cli.ts +34 -0
  416. package/skills/skill-generate-mock-data/bin/cli.ts +34 -0
  417. package/skills/skill-generate-pdf/bin/cli.ts +6 -0
  418. package/skills/skill-generate-pr-description/bin/cli.ts +34 -0
  419. package/skills/skill-generate-presentation/bin/cli.ts +34 -0
  420. package/skills/skill-generate-qrcode/bin/cli.ts +34 -0
  421. package/skills/skill-generate-regex/bin/cli.ts +34 -0
  422. package/skills/skill-generate-resume/bin/cli.ts +34 -0
  423. package/skills/skill-generate-sitemap/bin/cli.ts +34 -0
  424. package/skills/skill-generate-social-posts/bin/cli.ts +34 -0
  425. package/skills/skill-generate-sql/bin/cli.ts +34 -0
  426. package/skills/skill-gif-maker/bin/cli.ts +34 -0
  427. package/skills/skill-github-manager/bin/cli.ts +34 -0
  428. package/skills/skill-gmail/bin/cli.ts +34 -0
  429. package/skills/skill-goal-quarterly-roadmap/bin/cli.ts +34 -0
  430. package/skills/skill-grant-application-drafter/bin/cli.ts +34 -0
  431. package/skills/skill-grocery-basket-optimizer/bin/cli.ts +34 -0
  432. package/skills/skill-guest-communication-suite/bin/cli.ts +34 -0
  433. package/skills/skill-habit-reflection-digest/bin/cli.ts +34 -0
  434. package/skills/skill-highlight-reel-generator/bin/cli.ts +34 -0
  435. package/skills/skill-homework-feedback-coach/bin/cli.ts +34 -0
  436. package/skills/skill-household-maintenance-mgr/bin/cli.ts +34 -0
  437. package/skills/skill-http-server/bin/cli.ts +34 -0
  438. package/skills/skill-implementation-agent/bin/cli.ts +34 -0
  439. package/skills/skill-implementation-plan/bin/cli.ts +34 -0
  440. package/skills/skill-implementation-todo/bin/cli.ts +34 -0
  441. package/skills/skill-inbox-priority-planner/bin/cli.ts +34 -0
  442. package/skills/skill-invoice/bin/cli.ts +20 -0
  443. package/skills/skill-invoice-dispute-helper/bin/cli.ts +34 -0
  444. package/skills/skill-itinerary-architect/bin/cli.ts +34 -0
  445. package/skills/skill-jingle-composer/bin/cli.ts +34 -0
  446. package/skills/skill-kpi-digest-generator/bin/cli.ts +34 -0
  447. package/skills/skill-lab-notebook-formatter/bin/cli.ts +34 -0
  448. package/skills/skill-landing-page-copy/bin/cli.ts +34 -0
  449. package/skills/skill-latex-table-generator/bin/cli.ts +34 -0
  450. package/skills/skill-learning-style-profiler/bin/cli.ts +34 -0
  451. package/skills/skill-lesson-plan-customizer/bin/cli.ts +34 -0
  452. package/skills/skill-livestream-runofshow/bin/cli.ts +34 -0
  453. package/skills/skill-longform-structurer/bin/cli.ts +34 -0
  454. package/skills/skill-lorem-generator/bin/cli.ts +34 -0
  455. package/skills/skill-managehook/bin/cli.ts +241 -0
  456. package/skills/skill-managemcp/bin/cli.ts +241 -0
  457. package/skills/skill-manageskill/bin/cli.ts +241 -0
  458. package/skills/skill-markdown-validator/bin/cli.ts +34 -0
  459. package/skills/skill-mcp-builder/bin/cli.ts +34 -0
  460. package/skills/skill-meal-plan-designer/bin/cli.ts +34 -0
  461. package/skills/skill-meeting-insight-summarizer/bin/cli.ts +34 -0
  462. package/skills/skill-merge-pdfs/bin/cli.ts +34 -0
  463. package/skills/skill-microcopy-generator/bin/cli.ts +34 -0
  464. package/skills/skill-mindfulness-prompt-cache/bin/cli.ts +34 -0
  465. package/skills/skill-notion-manager/bin/cli.ts +34 -0
  466. package/skills/skill-onboarding-sequence-builder/bin/cli.ts +34 -0
  467. package/skills/skill-onsite-ops-checklist/bin/cli.ts +34 -0
  468. package/skills/skill-outreach-cadence-designer/bin/cli.ts +34 -0
  469. package/skills/skill-packaging-concept-studio/bin/cli.ts +34 -0
  470. package/skills/skill-packing-plan-pro/bin/cli.ts +34 -0
  471. package/skills/skill-parent-teacher-brief/bin/cli.ts +34 -0
  472. package/skills/skill-partner-kit-assembler/bin/cli.ts +34 -0
  473. package/skills/skill-payroll-change-prepper/bin/cli.ts +34 -0
  474. package/skills/skill-persona-based-adwriter/bin/cli.ts +34 -0
  475. package/skills/skill-persona-generator/bin/cli.ts +34 -0
  476. package/skills/skill-personal-daily-ops/bin/cli.ts +34 -0
  477. package/skills/skill-pet-care-scheduler/bin/cli.ts +34 -0
  478. package/skills/skill-podcast-show-notes/bin/cli.ts +34 -0
  479. package/skills/skill-presentation-theme-maker/bin/cli.ts +34 -0
  480. package/skills/skill-press-release-drafter/bin/cli.ts +34 -0
  481. package/skills/skill-print-collateral-designer/bin/cli.ts +34 -0
  482. package/skills/skill-procurement-scorecard/bin/cli.ts +34 -0
  483. package/skills/skill-product-demo-script/bin/cli.ts +34 -0
  484. package/skills/skill-product-mockup/bin/cli.ts +34 -0
  485. package/skills/skill-project-retro-companion/bin/cli.ts +34 -0
  486. package/skills/skill-proposal-redline-advisor/bin/cli.ts +34 -0
  487. package/skills/skill-regex-tester/bin/cli.ts +34 -0
  488. package/skills/skill-remove-background/bin/cli.ts +34 -0
  489. package/skills/skill-risk-disclosure-kit/bin/cli.ts +34 -0
  490. package/skills/skill-roi-comparison-tool/bin/cli.ts +34 -0
  491. package/skills/skill-sales-call-recapper/bin/cli.ts +34 -0
  492. package/skills/skill-salescopy/bin/cli.ts +20 -0
  493. package/skills/skill-scaffold-project/bin/cli.ts +34 -0
  494. package/skills/skill-scholarship-tracker/bin/cli.ts +34 -0
  495. package/skills/skill-scientific-figure-check/bin/cli.ts +34 -0
  496. package/skills/skill-seating-chart-maker/bin/cli.ts +34 -0
  497. package/skills/skill-security-audit/bin/cli.ts +34 -0
  498. package/skills/skill-seo-brief-builder/bin/cli.ts +34 -0
  499. package/skills/skill-slack-assistant/bin/cli.ts +34 -0
  500. package/skills/skill-sleep-routine-analyzer/bin/cli.ts +34 -0
  501. package/skills/skill-social-media-kit/bin/cli.ts +34 -0
  502. package/skills/skill-split-pdf/bin/cli.ts +34 -0
  503. package/skills/skill-sponsorship-proposal-lab/bin/cli.ts +34 -0
  504. package/skills/skill-spreadsheet-cleanroom/bin/cli.ts +34 -0
  505. package/skills/skill-statistical-test-selector/bin/cli.ts +34 -0
  506. package/skills/skill-stress-relief-playbook/bin/cli.ts +34 -0
  507. package/skills/skill-study-guide-builder/bin/cli.ts +34 -0
  508. package/skills/skill-subscription-spend-watcher/bin/cli.ts +34 -0
  509. package/skills/skill-subtitle/bin/cli.ts +20 -0
  510. package/skills/skill-survey-insight-extractor/bin/cli.ts +34 -0
  511. package/skills/skill-terraform-generator/bin/cli.ts +34 -0
  512. package/skills/skill-testimonial-graphics/bin/cli.ts +34 -0
  513. package/skills/skill-timesheet/bin/cli.ts +47 -0
  514. package/skills/skill-travel-budget-balancer/bin/cli.ts +34 -0
  515. package/skills/skill-validate-config/bin/cli.ts +34 -0
  516. package/skills/skill-video-cut-suggester/bin/cli.ts +34 -0
  517. package/skills/skill-video-downloader/bin/cli.ts +34 -0
  518. package/skills/skill-video-thumbnail/bin/cli.ts +34 -0
  519. package/skills/skill-voiceover-casting-assistant/bin/cli.ts +34 -0
  520. package/skills/skill-watermark/bin/cli.ts +34 -0
  521. package/skills/skill-webcrawling/bin/cli.ts +21 -0
  522. package/skills/skill-webinar-script-coach/bin/cli.ts +34 -0
  523. package/skills/skill-wellness-progress-reporter/bin/cli.ts +34 -0
  524. package/skills/skill-workout-cycle-planner/bin/cli.ts +34 -0
  525. package/skills/slack-assistant/package.json +3 -1
  526. package/skills/slide-deck-generator/SKILL.md +44 -0
  527. package/skills/slide-deck-generator/package.json +10 -0
  528. package/skills/sms/package.json +1 -1
  529. package/skills/sms/src/index.ts +15 -0
  530. package/skills/social-content-calendar/SKILL.md +45 -0
  531. package/skills/social-content-calendar/package.json +14 -0
  532. package/skills/split-pdf/package.json +4 -1
  533. package/skills/subtitle/package.json +2 -1
  534. package/skills/subtitle/src/index.ts +3 -0
  535. package/skills/terraform-generator/package.json +3 -1
  536. package/skills/test-suite-generator/SKILL.md +41 -0
  537. package/skills/test-suite-generator/package.json +10 -0
  538. package/skills/timesheet/package.json +1 -1
  539. package/skills/timesheet/src/index.ts +3 -0
  540. package/skills/transcript/SKILL.md +1 -8
  541. package/skills/validate-config/package.json +3 -1
  542. package/skills/video/package.json +6 -4
  543. package/skills/video-downloader/package.json +3 -1
  544. package/skills/video-highlight-pack/SKILL.md +44 -0
  545. package/skills/video-highlight-pack/package.json +10 -0
  546. package/skills/voiceover-jingle-pack/SKILL.md +28 -0
  547. package/skills/voiceover-jingle-pack/package.json +10 -0
  548. package/skills/watermark/package.json +6 -1
  549. package/skills/webcrawling/package.json +2 -1
  550. package/skills/write/SKILL.md +6 -6
  551. package/dist/server/serve.d.ts +0 -11
  552. package/skills/apidocs/.claude/settings.json +0 -5
  553. package/skills/audio/.env.example +0 -14
  554. package/skills/audio/QUICKSTART.md +0 -158
  555. package/skills/audio/README.md +0 -256
  556. package/skills/audio/src/index-local.ts +0 -206
  557. package/skills/audio/src/index.ts +0 -95
  558. package/skills/audio/src/providers/elevenlabs.ts +0 -115
  559. package/skills/audio/src/providers/google.ts +0 -116
  560. package/skills/audio/src/providers/minimax.ts +0 -83
  561. package/skills/audio/src/providers/openai.ts +0 -115
  562. package/skills/audio/src/types.ts +0 -79
  563. package/skills/audiobook-chapter-proofer/CLAUDE.md +0 -19
  564. package/skills/audiobook-chapter-proofer/package.json +0 -27
  565. package/skills/audiobook-chapter-proofer/src/index.ts +0 -285
  566. package/skills/browse/src/client.ts +0 -373
  567. package/skills/browse/src/index-local.ts +0 -430
  568. package/skills/browse/src/index.ts +0 -110
  569. package/skills/browse/src/sse-server.ts +0 -919
  570. package/skills/browse/src/types.ts +0 -104
  571. package/skills/consolelog/src/server/index.ts +0 -508
  572. package/skills/create-blog-article/CLAUDE.md +0 -19
  573. package/skills/create-blog-article/src/index.ts +0 -745
  574. package/skills/create-blog-article/tsconfig.json +0 -10
  575. package/skills/deepresearch/src/agents/query-generator.ts +0 -91
  576. package/skills/deepresearch/src/agents/synthesizer.ts +0 -111
  577. package/skills/deepresearch/src/index.ts +0 -224
  578. package/skills/deepresearch/src/research.ts +0 -166
  579. package/skills/deepresearch/src/services/anthropic.ts +0 -69
  580. package/skills/deepresearch/src/services/exa.ts +0 -108
  581. package/skills/deepresearch/src/services/firecrawl.ts +0 -88
  582. package/skills/deepresearch/src/services/openai.ts +0 -81
  583. package/skills/deepresearch/src/types.ts +0 -76
  584. package/skills/deepresearch/src/utils/file.ts +0 -111
  585. package/skills/deepresearch/src/utils/logger.ts +0 -84
  586. package/skills/domainpurchase/src/server/index.ts +0 -332
  587. package/skills/domainsearch/src/server/index.ts +0 -229
  588. package/skills/e2bswarm/README.md +0 -135
  589. package/skills/e2bswarm/SKILL.md +0 -118
  590. package/skills/e2bswarm/examples/tasks-example.json +0 -38
  591. package/skills/e2bswarm/package.json +0 -59
  592. package/skills/e2bswarm/src/commands/collect.ts +0 -135
  593. package/skills/e2bswarm/src/commands/install.ts +0 -164
  594. package/skills/e2bswarm/src/commands/kill.ts +0 -62
  595. package/skills/e2bswarm/src/commands/spawn.ts +0 -134
  596. package/skills/e2bswarm/src/commands/status.ts +0 -90
  597. package/skills/e2bswarm/src/commands/sync.ts +0 -208
  598. package/skills/e2bswarm/src/index.ts +0 -121
  599. package/skills/e2bswarm/src/lib/config.ts +0 -75
  600. package/skills/e2bswarm/src/lib/e2b.ts +0 -490
  601. package/skills/e2bswarm/src/lib/github.ts +0 -253
  602. package/skills/e2bswarm/src/lib/logger.ts +0 -41
  603. package/skills/e2bswarm/src/lib/paths.ts +0 -75
  604. package/skills/e2bswarm/src/lib/tasks.ts +0 -320
  605. package/skills/e2bswarm/src/types/index.ts +0 -107
  606. package/skills/e2bswarm/templates/codebox/e2b.Dockerfile +0 -38
  607. package/skills/e2bswarm/templates/codebox/e2b.toml +0 -3
  608. package/skills/e2bswarm/templates/setup.sh +0 -21
  609. package/skills/e2bswarm/tsconfig.json +0 -19
  610. package/skills/generate-book-cover/src/index.ts +0 -694
  611. package/skills/image/src/index-local.ts +0 -206
  612. package/skills/image/src/index.ts +0 -96
  613. package/skills/image/src/providers/google.ts +0 -79
  614. package/skills/image/src/providers/minimax.ts +0 -94
  615. package/skills/image/src/providers/openai.ts +0 -80
  616. package/skills/image/src/providers/xai.ts +0 -73
  617. package/skills/image/src/types.ts +0 -37
  618. package/skills/logo-design/CLAUDE.md +0 -30
  619. package/skills/logo-design/src/index.ts +0 -322
  620. package/skills/managehook/src/server/index.ts +0 -108
  621. package/skills/managemcp/src/server/index.ts +0 -108
  622. package/skills/manageskill/src/server/index.ts +0 -108
  623. package/skills/music/CLAUDE.md +0 -9
  624. package/skills/music/src/index.ts +0 -94
  625. package/skills/music/tsconfig.json +0 -10
  626. package/skills/pdf-read/src/index.ts +0 -320
  627. package/skills/product-mockup/CLAUDE.md +0 -19
  628. package/skills/product-mockup/src/index.ts +0 -290
  629. package/skills/read-pdf/src/index.ts +0 -388
  630. package/skills/remove-background/src/index.ts +0 -405
  631. package/skills/sound-effects/SKILL.md +0 -34
  632. package/skills/sound-effects/package.json +0 -21
  633. package/skills/sound-effects/src/index.ts +0 -172
  634. package/skills/sound-effects/tsconfig.json +0 -8
  635. package/skills/transcript/src/chunker.ts +0 -215
  636. package/skills/transcript/src/formatter.ts +0 -134
  637. package/skills/transcript/src/index-local.ts +0 -226
  638. package/skills/transcript/src/index.ts +0 -110
  639. package/skills/transcript/src/providers/elevenlabs.ts +0 -133
  640. package/skills/transcript/src/providers/gemini.ts +0 -192
  641. package/skills/transcript/src/providers/index.ts +0 -54
  642. package/skills/transcript/src/providers/openai.ts +0 -203
  643. package/skills/transcript/src/types.ts +0 -106
  644. package/skills/video/.env.example +0 -14
  645. package/skills/video/EXAMPLES.md +0 -266
  646. package/skills/video/LICENSE +0 -192
  647. package/skills/video/README.md +0 -174
  648. package/skills/video/src/cli.ts +0 -155
  649. package/skills/video/src/index-local.ts +0 -148
  650. package/skills/video/src/index.ts +0 -96
  651. package/skills/video/src/providers/google-veo.ts +0 -126
  652. package/skills/video/src/providers/index.ts +0 -22
  653. package/skills/video/src/providers/minimax.ts +0 -100
  654. package/skills/video/src/providers/openai-sora.ts +0 -164
  655. package/skills/video/src/providers/runway.ts +0 -159
  656. package/skills/video/src/types.ts +0 -35
  657. package/skills/video/tsconfig.json +0 -22
  658. package/skills/voiceover-casting-assistant/CLAUDE.md +0 -19
  659. package/skills/voiceover-casting-assistant/package.json +0 -27
  660. package/skills/voiceover-casting-assistant/src/index.ts +0 -255
  661. package/skills/voiceover-casting-assistant/tsconfig.json +0 -10
  662. package/skills/webcrawling/src/commands/config.ts +0 -34
  663. package/skills/webcrawling/src/commands/crawl.ts +0 -33
  664. package/skills/webcrawling/src/commands/scrape.ts +0 -32
  665. package/skills/webcrawling/src/commands/sessions.ts +0 -42
  666. package/skills/webcrawling/src/lib/crawler.ts +0 -174
  667. package/skills/webcrawling/src/lib/storage.ts +0 -130
  668. package/skills/webcrawling/src/types/index.ts +0 -45
  669. package/skills/webcrawling/src/utils/logger.ts +0 -30
  670. package/skills/webcrawling/src/utils/paths.ts +0 -28
  671. /package/skills/{audiobook-chapter-proofer → blog-article}/tsconfig.json +0 -0
@@ -1,405 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- /**
4
- * Remove Background Skill
5
- *
6
- * Removes backgrounds from images using local AI processing
7
- * Supports batch processing, custom backgrounds, and multiple output formats
8
- * No API key required - runs entirely locally
9
- */
10
-
11
- import { parseArgs } from "node:util";
12
- import { mkdir, writeFile, readFile, stat } from "node:fs/promises";
13
- import { join, basename, extname } from "node:path";
14
- import { existsSync } from "node:fs";
15
-
16
- // Types
17
- interface ProcessedImage {
18
- input: string;
19
- output: string;
20
- size: string;
21
- error?: string;
22
- }
23
-
24
- interface Metadata {
25
- timestamp: string;
26
- totalImages: number;
27
- successful: number;
28
- failed: number;
29
- settings: {
30
- bgColor: string;
31
- format: string;
32
- };
33
- images: ProcessedImage[];
34
- }
35
-
36
- // Configuration
37
- const OUTPUT_BASE = process.env.SKILLS_OUTPUT_DIR || process.env.SKILLS_EXPORTS_DIR || ".skills";
38
- const PROJECT_ROOT = process.env.SKILLS_PROJECT_ROOT || process.cwd();
39
-
40
- // Supported formats
41
- const SUPPORTED_FORMATS = [".png", ".jpg", ".jpeg", ".webp"];
42
-
43
- /**
44
- * Parse command line arguments
45
- */
46
- function parseArguments() {
47
- const { values, positionals } = parseArgs({
48
- args: Bun.argv.slice(2),
49
- options: {
50
- "bg-color": { type: "string", default: "transparent" },
51
- output: { type: "string", short: "o" },
52
- format: { type: "string", default: "png" },
53
- help: { type: "boolean", short: "h", default: false },
54
- },
55
- allowPositionals: true,
56
- });
57
-
58
- if (values.help) {
59
- printHelp();
60
- process.exit(0);
61
- }
62
-
63
- // Validate inputs
64
- if (positionals.length === 0) {
65
- console.error("Error: No image files specified");
66
- console.error("Usage: skills run remove-background -- image.jpg [image2.png ...]");
67
- console.error("Run with --help for more information");
68
- process.exit(1);
69
- }
70
-
71
- // Validate format
72
- if (!["png", "jpg", "webp"].includes(values.format as string)) {
73
- console.error(`Error: Invalid format "${values.format}". Use: png, jpg, or webp`);
74
- process.exit(1);
75
- }
76
-
77
- // Validate color format (if not transparent)
78
- const bgColor = values["bg-color"] as string;
79
- if (bgColor !== "transparent" && !/^#[0-9A-Fa-f]{6}$/.test(bgColor)) {
80
- console.error(`Error: Invalid color format "${bgColor}". Use hex format like #FF5733 or "transparent"`);
81
- process.exit(1);
82
- }
83
-
84
- return {
85
- images: positionals,
86
- bgColor,
87
- outputDir: values.output as string | undefined,
88
- format: values.format as string,
89
- };
90
- }
91
-
92
- /**
93
- * Print help message
94
- */
95
- function printHelp() {
96
- console.log(`
97
- Remove Background - AI-powered background removal (runs locally)
98
-
99
- USAGE:
100
- skills run remove-background -- <images...> [options]
101
-
102
- OPTIONS:
103
- --bg-color <color> Background color (hex like #FF5733 or "transparent")
104
- --output, -o <dir> Custom output directory
105
- --format <format> Output format: png, jpg, webp (default: png)
106
- -h, --help Show this help message
107
-
108
- EXAMPLES:
109
- # Basic usage
110
- skills run remove-background -- photo.jpg
111
-
112
- # White background
113
- skills run remove-background -- product.jpg --bg-color "#FFFFFF"
114
-
115
- # Batch process
116
- skills run remove-background -- image1.jpg image2.png image3.webp
117
-
118
- # Custom output directory
119
- skills run remove-background -- image.jpg --output ./processed
120
-
121
- NOTE:
122
- This skill runs locally using AI - no API key required.
123
- First run may download the model (~30MB).
124
- `);
125
- }
126
-
127
- /**
128
- * Validate image file
129
- */
130
- async function validateImage(imagePath: string): Promise<boolean> {
131
- try {
132
- if (!existsSync(imagePath)) {
133
- console.error(`File not found: ${imagePath}`);
134
- return false;
135
- }
136
-
137
- const ext = extname(imagePath).toLowerCase();
138
- if (!SUPPORTED_FORMATS.includes(ext)) {
139
- console.error(`Unsupported format: ${imagePath} (use PNG, JPG, JPEG, or WebP)`);
140
- return false;
141
- }
142
-
143
- const stats = await stat(imagePath);
144
- const maxSize = 20 * 1024 * 1024; // 20 MB
145
- if (stats.size > maxSize) {
146
- console.error(`File too large: ${imagePath} (max 20 MB)`);
147
- return false;
148
- }
149
-
150
- return true;
151
- } catch (error) {
152
- console.error(`Error validating ${imagePath}:`, error);
153
- return false;
154
- }
155
- }
156
-
157
- /**
158
- * Get mime type from file extension
159
- */
160
- function getMimeType(filePath: string): string {
161
- const ext = extname(filePath).toLowerCase();
162
- const mimeTypes: Record<string, string> = {
163
- ".png": "image/png",
164
- ".jpg": "image/jpeg",
165
- ".jpeg": "image/jpeg",
166
- ".webp": "image/webp",
167
- };
168
- return mimeTypes[ext] || "image/png";
169
- }
170
-
171
- /**
172
- * Remove background from image using local AI model
173
- */
174
- async function removeBackground(imagePath: string): Promise<Blob> {
175
- // Dynamic import to avoid loading until needed
176
- const { removeBackground: removeBg } = await import("@imgly/background-removal-node");
177
-
178
- console.log(" Running local AI background removal...");
179
-
180
- // Read image as blob with proper mime type
181
- const imageBuffer = await readFile(imagePath);
182
- const mimeType = getMimeType(imagePath);
183
- const blob = new Blob([imageBuffer], { type: mimeType });
184
-
185
- // Process with local AI model
186
- const result = await removeBg(blob, {
187
- progress: (key, current, total) => {
188
- if (key === "compute:inference") {
189
- const pct = Math.round((current / total) * 100);
190
- process.stdout.write(`\r Processing: ${pct}%`);
191
- }
192
- },
193
- });
194
-
195
- console.log("\r Processing: 100%");
196
- return result;
197
- }
198
-
199
- /**
200
- * Apply background color to transparent image
201
- */
202
- async function applyBackgroundColor(
203
- imageBuffer: Buffer,
204
- bgColor: string
205
- ): Promise<Buffer> {
206
- // If transparent, return as-is
207
- if (bgColor === "transparent") {
208
- return imageBuffer;
209
- }
210
-
211
- // Use sharp to composite with background color
212
- const sharp = (await import("sharp")).default;
213
-
214
- // Parse hex color
215
- const r = parseInt(bgColor.slice(1, 3), 16);
216
- const g = parseInt(bgColor.slice(3, 5), 16);
217
- const b = parseInt(bgColor.slice(5, 7), 16);
218
-
219
- // Get image dimensions
220
- const metadata = await sharp(imageBuffer).metadata();
221
- const width = metadata.width || 1;
222
- const height = metadata.height || 1;
223
-
224
- // Create solid color background
225
- const background = await sharp({
226
- create: {
227
- width,
228
- height,
229
- channels: 4,
230
- background: { r, g, b, alpha: 1 },
231
- },
232
- })
233
- .png()
234
- .toBuffer();
235
-
236
- // Composite foreground over background
237
- const result = await sharp(background)
238
- .composite([{ input: imageBuffer, blend: "over" }])
239
- .png()
240
- .toBuffer();
241
-
242
- return result;
243
- }
244
-
245
- /**
246
- * Format file size
247
- */
248
- function formatSize(bytes: number): string {
249
- if (bytes < 1024) return `${bytes} B`;
250
- if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
251
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
252
- }
253
-
254
- /**
255
- * Process single image
256
- */
257
- async function processImage(
258
- imagePath: string,
259
- outputDir: string,
260
- options: {
261
- bgColor: string;
262
- format: string;
263
- }
264
- ): Promise<ProcessedImage> {
265
- try {
266
- console.log(`\nProcessing: ${basename(imagePath)}`);
267
-
268
- const isValid = await validateImage(imagePath);
269
- if (!isValid) {
270
- return {
271
- input: imagePath,
272
- output: "",
273
- size: "0",
274
- error: "Validation failed",
275
- };
276
- }
277
-
278
- // Remove background
279
- const resultBlob = await removeBackground(imagePath);
280
- let resultBuffer = Buffer.from(await resultBlob.arrayBuffer());
281
-
282
- // Apply background color if specified
283
- if (options.bgColor !== "transparent") {
284
- console.log(` Applying background color: ${options.bgColor}`);
285
- resultBuffer = await applyBackgroundColor(resultBuffer, options.bgColor);
286
- }
287
-
288
- // Convert to desired format
289
- const sharp = (await import("sharp")).default;
290
- if (options.format === "jpg") {
291
- resultBuffer = await sharp(resultBuffer).jpeg({ quality: 95 }).toBuffer();
292
- } else if (options.format === "webp") {
293
- resultBuffer = await sharp(resultBuffer).webp({ quality: 95 }).toBuffer();
294
- }
295
-
296
- // Generate output filename
297
- const ext = extname(imagePath);
298
- const name = basename(imagePath, ext);
299
- const outputExt = options.format === "jpg" ? ".jpg" : `.${options.format}`;
300
- const outputPath = join(outputDir, `${name}-nobg${outputExt}`);
301
-
302
- // Save processed image
303
- await writeFile(outputPath, resultBuffer);
304
-
305
- const stats = await stat(outputPath);
306
-
307
- console.log(` Saved: ${basename(outputPath)}`);
308
- console.log(` Size: ${formatSize(stats.size)}`);
309
-
310
- return {
311
- input: imagePath,
312
- output: outputPath,
313
- size: formatSize(stats.size),
314
- };
315
- } catch (error) {
316
- console.error(` Failed: ${error instanceof Error ? error.message : String(error)}`);
317
- return {
318
- input: imagePath,
319
- output: "",
320
- size: "0",
321
- error: error instanceof Error ? error.message : String(error),
322
- };
323
- }
324
- }
325
-
326
- /**
327
- * Main function
328
- */
329
- async function main() {
330
- console.log("Remove Background Skill v2.1.0\n");
331
- console.log(" Powered by local AI (no API key needed)\n");
332
-
333
- // Parse arguments
334
- const args = parseArguments();
335
-
336
- // Setup output directory
337
- const timestamp = new Date().toISOString().replace(/[:.]/g, "-").split("T")[0] + "_" +
338
- new Date().toTimeString().split(" ")[0].replace(/:/g, "");
339
-
340
- const outputDir = args.outputDir
341
- ? join(PROJECT_ROOT, args.outputDir)
342
- : join(OUTPUT_BASE, "remove-background", timestamp);
343
-
344
- await mkdir(outputDir, { recursive: true });
345
-
346
- console.log(`Output directory: ${outputDir}`);
347
- console.log(`Background: ${args.bgColor}`);
348
- console.log(`Format: ${args.format}`);
349
- console.log(`Processing ${args.images.length} image(s)...`);
350
-
351
- // Process all images
352
- const results: ProcessedImage[] = [];
353
- for (const imagePath of args.images) {
354
- // Handle both absolute and relative paths
355
- const absolutePath = imagePath.startsWith("/") ? imagePath : join(PROJECT_ROOT, imagePath);
356
- const result = await processImage(absolutePath, outputDir, {
357
- bgColor: args.bgColor,
358
- format: args.format,
359
- });
360
- results.push(result);
361
- }
362
-
363
- // Calculate statistics
364
- const successful = results.filter((r) => !r.error).length;
365
- const failed = results.filter((r) => r.error).length;
366
-
367
- // Create metadata
368
- const metadata: Metadata = {
369
- timestamp: new Date().toISOString(),
370
- totalImages: results.length,
371
- successful,
372
- failed,
373
- settings: {
374
- bgColor: args.bgColor,
375
- format: args.format,
376
- },
377
- images: results,
378
- };
379
-
380
- // Save metadata
381
- const metadataPath = join(outputDir, "metadata.json");
382
- await writeFile(metadataPath, JSON.stringify(metadata, null, 2));
383
-
384
- // Print summary
385
- console.log("\n" + "=".repeat(50));
386
- console.log("Summary");
387
- console.log("=".repeat(50));
388
- console.log(`Successful: ${successful}`);
389
- console.log(`Failed: ${failed}`);
390
- console.log(`Output: ${outputDir}`);
391
- console.log("=".repeat(50));
392
-
393
- if (failed > 0) {
394
- console.error("\nSome images failed to process. Check errors above.");
395
- process.exit(1);
396
- }
397
-
398
- console.log("\nAll images processed successfully!");
399
- }
400
-
401
- // Run main function
402
- main().catch((error) => {
403
- console.error("\nFatal error:", error);
404
- process.exit(1);
405
- });
@@ -1,34 +0,0 @@
1
- ---
2
- name: sound-effects
3
- version: 0.1.0
4
- description: Generate sound effects using AI models (Minimax)
5
- category: Media Processing
6
- tags:
7
- - audio
8
- - sound-effects
9
- - sfx
10
- - ai
11
- - generation
12
- ---
13
-
14
- # Sound Effects
15
-
16
- Generate realistic sound effects from text descriptions using AI. Describe any sound — thunder, footsteps, explosions, ambient noise — and get a high-quality audio file.
17
-
18
- ## Features
19
-
20
- - **Text-to-SFX**: Describe any sound and get an audio file
21
- - **Duration Control**: Set the desired length of the sound effect
22
- - **Multiple Formats**: Output to MP3, WAV, or other audio formats
23
-
24
- ## Usage
25
-
26
- ```bash
27
- sound-effects generate --prompt "thunder rolling in the distance" --output ./thunder.mp3
28
- sound-effects generate --prompt "footsteps on gravel" --duration 5 --output ./steps.mp3
29
- sound-effects generate --prompt "spaceship engine humming" --output ./engine.mp3
30
- ```
31
-
32
- ## Environment Variables
33
-
34
- - `MINIMAX_API_KEY` — API key for Minimax (required)
@@ -1,21 +0,0 @@
1
- {
2
- "name": "sound-effects",
3
- "version": "1.0.0",
4
- "description": "Generate sound effects using AI backends",
5
- "type": "module",
6
- "bin": {
7
- "sound-effects": "src/index.ts"
8
- },
9
- "scripts": {
10
- "start": "bun run src/index.ts",
11
- "generate": "bun run src/index.ts generate"
12
- },
13
- "dependencies": {},
14
- "devDependencies": {
15
- "@types/bun": "latest",
16
- "typescript": "^5.0.0"
17
- },
18
- "peerDependencies": {
19
- "typescript": "^5.0.0"
20
- }
21
- }
@@ -1,172 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- import { writeFile, mkdir } from 'fs/promises';
4
- import { resolve, dirname } from 'path';
5
- import { handleInstallCommand } from '../../_common';
6
-
7
- const SKILL_META = {
8
- name: 'sound-effects',
9
- description: 'Generate sound effects using AI (Minimax)',
10
- version: '1.0.0',
11
- commands: `Use: sound-effects --help`,
12
- requiredEnvVars: ['MINIMAX_API_KEY'],
13
- };
14
-
15
- if (await handleInstallCommand(SKILL_META, process.argv.slice(2))) {
16
- process.exit(0);
17
- }
18
-
19
- type Provider = 'minimax';
20
-
21
- interface GenerateOptions {
22
- provider: Provider;
23
- prompt: string;
24
- output: string;
25
- duration?: number;
26
- }
27
-
28
- function parseArgs(): GenerateOptions | null {
29
- const args = process.argv.slice(2);
30
-
31
- if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
32
- printHelp();
33
- return null;
34
- }
35
-
36
- if (args[0] !== 'generate') {
37
- console.error(`Unknown command: ${args[0]}`);
38
- process.exit(1);
39
- }
40
-
41
- const options: Partial<GenerateOptions> = { provider: 'minimax' };
42
-
43
- for (let i = 1; i < args.length; i++) {
44
- switch (args[i]) {
45
- case '--provider': case '-p': options.provider = args[++i] as Provider; break;
46
- case '--prompt': options.prompt = args[++i]; break;
47
- case '--output': case '-o': options.output = args[++i]; break;
48
- case '--duration': options.duration = parseInt(args[++i]); break;
49
- default: console.error(`Unknown option: ${args[i]}`); process.exit(1);
50
- }
51
- }
52
-
53
- if (!options.prompt) { console.error('Error: --prompt is required'); process.exit(1); }
54
- if (!options.output) { console.error('Error: --output is required'); process.exit(1); }
55
-
56
- return options as GenerateOptions;
57
- }
58
-
59
- function printHelp() {
60
- console.log(`
61
- Sound Effects Generation Skill
62
-
63
- Generate sound effects using AI models (Minimax)
64
-
65
- USAGE:
66
- sound-effects generate [OPTIONS]
67
-
68
- OPTIONS:
69
- --provider, -p <provider> Provider (minimax) [default: minimax]
70
- --prompt <text> Description of the sound effect [required]
71
- --output, -o <path> Output file path [required]
72
- --duration <seconds> Duration in seconds
73
-
74
- EXAMPLES:
75
- sound-effects generate --prompt "thunder rolling" --output ./thunder.mp3
76
- sound-effects generate --prompt "footsteps on gravel" --duration 5 --output ./steps.mp3
77
- sound-effects generate --prompt "rain on a tin roof" --output ./rain.mp3
78
-
79
- ENVIRONMENT VARIABLES:
80
- MINIMAX_API_KEY API key for Minimax
81
- `);
82
- }
83
-
84
- async function generateMinimax(options: GenerateOptions): Promise<Buffer> {
85
- const apiKey = process.env.MINIMAX_API_KEY;
86
- if (!apiKey) throw new Error('MINIMAX_API_KEY environment variable is required');
87
-
88
- const baseUrl = 'https://api.minimax.chat/v1';
89
-
90
- console.log(`Generating sound effect with Minimax...`);
91
- console.log(`Prompt: ${options.prompt}`);
92
-
93
- const body: Record<string, unknown> = {
94
- model: 'sound-effects-01',
95
- prompt: options.prompt,
96
- };
97
- if (options.duration) body.duration = options.duration;
98
-
99
- const headers: Record<string, string> = {
100
- 'Content-Type': 'application/json',
101
- 'Authorization': `Bearer ${apiKey}`,
102
- };
103
-
104
- const response = await fetch(`${baseUrl}/sound_generation`, {
105
- method: 'POST',
106
- headers,
107
- body: JSON.stringify(body),
108
- });
109
-
110
- if (!response.ok) {
111
- const err = await response.text();
112
- throw new Error(`Minimax API error: ${response.status} - ${err}`);
113
- }
114
-
115
- const data = await response.json() as { task_id: string };
116
- console.log(`Task started: ${data.task_id}`);
117
- console.log('Polling for completion...');
118
-
119
- for (let i = 0; i < 60; i++) {
120
- await new Promise(r => setTimeout(r, 3000));
121
-
122
- const statusRes = await fetch(`${baseUrl}/query/sound_generation?task_id=${data.task_id}`, {
123
- headers: { 'Authorization': `Bearer ${apiKey}` },
124
- });
125
- const status = await statusRes.json() as {
126
- status: string;
127
- extra_info?: { audio_url?: string };
128
- audio_file?: string;
129
- base_resp?: { status_msg: string };
130
- };
131
-
132
- if (status.status === 'Success') {
133
- const audioUrl = status.extra_info?.audio_url || status.audio_file;
134
- if (!audioUrl) throw new Error('No audio URL in response');
135
-
136
- console.log('Sound effect generated. Downloading...');
137
- const audioRes = await fetch(audioUrl);
138
- if (!audioRes.ok) throw new Error(`Download failed: ${audioRes.status}`);
139
- return Buffer.from(await audioRes.arrayBuffer());
140
- }
141
-
142
- if (status.status === 'Fail') {
143
- throw new Error(`Sound effect generation failed: ${status.base_resp?.status_msg || 'Unknown error'}`);
144
- }
145
- }
146
-
147
- throw new Error('Sound effect generation timed out');
148
- }
149
-
150
- async function main() {
151
- const options = parseArgs();
152
- if (!options) return;
153
-
154
- try {
155
- console.log('\n=== Sound Effect Generation ===\n');
156
-
157
- const buffer = await generateMinimax(options);
158
-
159
- const outputPath = resolve(options.output);
160
- await mkdir(dirname(outputPath), { recursive: true });
161
- await writeFile(outputPath, buffer);
162
-
163
- console.log(`\nSound effect saved to: ${outputPath}`);
164
- console.log(`Size: ${(buffer.length / 1024).toFixed(1)} KB`);
165
- console.log('\nDone!\n');
166
- } catch (error) {
167
- console.error('\nError:', error instanceof Error ? error.message : error);
168
- process.exit(1);
169
- }
170
- }
171
-
172
- main();
@@ -1,8 +0,0 @@
1
- {
2
- "extends": "../tsconfig.base.json",
3
- "compilerOptions": {
4
- "outDir": "dist",
5
- "rootDir": "src"
6
- },
7
- "include": ["src"]
8
- }