@hasna/skills 0.0.2 → 0.0.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 (387) hide show
  1. package/bin/index.js +253 -715
  2. package/bin/mcp.js +221 -683
  3. package/package.json +1 -1
  4. package/src/cli/cli.test.ts +14 -14
  5. package/src/cli/index.tsx +1 -1
  6. package/src/lib/installer.test.ts +41 -41
  7. package/src/lib/registry.test.ts +10 -10
  8. package/src/lib/registry.ts +10 -472
  9. package/src/lib/skillinfo.test.ts +12 -12
  10. package/src/mcp/index.ts +1 -1
  11. package/skills/skill-architecture-docs/CLAUDE.md +0 -19
  12. package/skills/skill-architecture-docs/package.json +0 -32
  13. package/skills/skill-architecture-docs/src/index.ts +0 -543
  14. package/skills/skill-auto-format/CLAUDE.md +0 -19
  15. package/skills/skill-auto-format/package.json +0 -32
  16. package/skills/skill-auto-format/src/index.ts +0 -103
  17. package/skills/skill-auto-format/tsconfig.json +0 -14
  18. package/skills/skill-brainstorm/README.md +0 -17
  19. package/skills/skill-brainstorm/install.sh +0 -112
  20. package/skills/skill-brainstorm/src/auth.ts +0 -49
  21. package/skills/skill-brainstorm/src/installer.ts +0 -324
  22. package/skills/skill-brainstorm/src/skill-install.ts +0 -205
  23. package/skills/skill-browser-agent/CLAUDE.md +0 -19
  24. package/skills/skill-browser-agent/package.json +0 -32
  25. package/skills/skill-browser-agent/src/index.ts +0 -626
  26. package/skills/skill-browser-agent/tsconfig.json +0 -14
  27. package/skills/skill-browseruse/LICENSE +0 -21
  28. package/skills/skill-browseruse/README.md +0 -27
  29. package/skills/skill-browseruse/SKILL.md +0 -113
  30. package/skills/skill-browseruse/install.sh +0 -112
  31. package/skills/skill-browseruse/package.json +0 -31
  32. package/skills/skill-browseruse/src/auth.ts +0 -49
  33. package/skills/skill-browseruse/src/installer.ts +0 -324
  34. package/skills/skill-browseruse/src/skill-install.ts +0 -174
  35. package/skills/skill-calculate/LICENSE +0 -21
  36. package/skills/skill-calculate/README.md +0 -17
  37. package/skills/skill-calculate/install.sh +0 -112
  38. package/skills/skill-calculate/package.json +0 -31
  39. package/skills/skill-calculate/src/auth.ts +0 -49
  40. package/skills/skill-calculate/src/installer.ts +0 -324
  41. package/skills/skill-calculate/src/skill-install.ts +0 -205
  42. package/skills/skill-chromedevtools/LICENSE +0 -21
  43. package/skills/skill-chromedevtools/README.md +0 -27
  44. package/skills/skill-chromedevtools/SKILL.md +0 -110
  45. package/skills/skill-chromedevtools/install.sh +0 -112
  46. package/skills/skill-chromedevtools/package.json +0 -31
  47. package/skills/skill-chromedevtools/src/auth.ts +0 -49
  48. package/skills/skill-chromedevtools/src/installer.ts +0 -324
  49. package/skills/skill-chromedevtools/src/skill-install.ts +0 -174
  50. package/skills/skill-companyguide/LICENSE +0 -21
  51. package/skills/skill-companyguide/README.md +0 -17
  52. package/skills/skill-companyguide/install.sh +0 -112
  53. package/skills/skill-companyguide/package.json +0 -31
  54. package/skills/skill-companyguide/src/auth.ts +0 -49
  55. package/skills/skill-companyguide/src/installer.ts +0 -324
  56. package/skills/skill-companyguide/src/skill-install.ts +0 -205
  57. package/skills/skill-compose-gmail/tsconfig.json +0 -14
  58. package/skills/skill-context7/LICENSE +0 -21
  59. package/skills/skill-context7/README.md +0 -27
  60. package/skills/skill-context7/SKILL.md +0 -103
  61. package/skills/skill-context7/install.sh +0 -112
  62. package/skills/skill-context7/package.json +0 -31
  63. package/skills/skill-context7/src/auth.ts +0 -49
  64. package/skills/skill-context7/src/installer.ts +0 -324
  65. package/skills/skill-context7/src/skill-install.ts +0 -174
  66. package/skills/skill-crawl/LICENSE +0 -21
  67. package/skills/skill-crawl/README.md +0 -17
  68. package/skills/skill-crawl/install.sh +0 -112
  69. package/skills/skill-crawl/package.json +0 -31
  70. package/skills/skill-crawl/src/auth.ts +0 -49
  71. package/skills/skill-crawl/src/installer.ts +0 -324
  72. package/skills/skill-crawl/src/skill-install.ts +0 -205
  73. package/skills/skill-csv-transformer/CLAUDE.md +0 -19
  74. package/skills/skill-csv-transformer/package.json +0 -32
  75. package/skills/skill-csv-transformer/src/index.ts +0 -81
  76. package/skills/skill-csv-transformer/tsconfig.json +0 -14
  77. package/skills/skill-debug/LICENSE +0 -21
  78. package/skills/skill-debug/README.md +0 -17
  79. package/skills/skill-debug/install.sh +0 -112
  80. package/skills/skill-debug/package.json +0 -31
  81. package/skills/skill-debug/src/auth.ts +0 -49
  82. package/skills/skill-debug/src/installer.ts +0 -324
  83. package/skills/skill-debug/src/skill-install.ts +0 -205
  84. package/skills/skill-deep-research/CLAUDE.md +0 -19
  85. package/skills/skill-deep-research/package.json +0 -32
  86. package/skills/skill-deep-research/src/index.ts +0 -1149
  87. package/skills/skill-deep-research/tsconfig.json +0 -14
  88. package/skills/skill-dns-manager/CLAUDE.md +0 -19
  89. package/skills/skill-dns-manager/package.json +0 -32
  90. package/skills/skill-dns-manager/src/index.ts +0 -92
  91. package/skills/skill-dns-manager/tsconfig.json +0 -14
  92. package/skills/skill-download/LICENSE +0 -21
  93. package/skills/skill-download/README.md +0 -17
  94. package/skills/skill-download/install.sh +0 -112
  95. package/skills/skill-download/package.json +0 -31
  96. package/skills/skill-download/src/auth.ts +0 -49
  97. package/skills/skill-download/src/installer.ts +0 -324
  98. package/skills/skill-download/src/skill-install.ts +0 -205
  99. package/skills/skill-exa/LICENSE +0 -21
  100. package/skills/skill-exa/README.md +0 -26
  101. package/skills/skill-exa/SKILL.md +0 -92
  102. package/skills/skill-exa/install.sh +0 -112
  103. package/skills/skill-exa/package.json +0 -31
  104. package/skills/skill-exa/src/auth.ts +0 -49
  105. package/skills/skill-exa/src/installer.ts +0 -324
  106. package/skills/skill-exa/src/skill-install.ts +0 -174
  107. package/skills/skill-filesearch/LICENSE +0 -21
  108. package/skills/skill-filesearch/README.md +0 -17
  109. package/skills/skill-filesearch/install.sh +0 -112
  110. package/skills/skill-filesearch/package.json +0 -31
  111. package/skills/skill-filesearch/src/auth.ts +0 -49
  112. package/skills/skill-filesearch/src/installer.ts +0 -324
  113. package/skills/skill-filesearch/src/skill-install.ts +0 -205
  114. package/skills/skill-fill/LICENSE +0 -21
  115. package/skills/skill-fill/README.md +0 -17
  116. package/skills/skill-fill/install.sh +0 -112
  117. package/skills/skill-fill/package.json +0 -31
  118. package/skills/skill-fill/src/auth.ts +0 -49
  119. package/skills/skill-fill/src/installer.ts +0 -324
  120. package/skills/skill-fill/src/skill-install.ts +0 -205
  121. package/skills/skill-generate-audio/CLAUDE.md +0 -3
  122. package/skills/skill-generate-audio/SKILL.md +0 -53
  123. package/skills/skill-generate-audio/package.json +0 -30
  124. package/skills/skill-generate-audio/src/index.ts +0 -656
  125. package/skills/skill-generate-audio/tsconfig.json +0 -18
  126. package/skills/skill-generate-readme/CLAUDE.md +0 -19
  127. package/skills/skill-generate-readme/package.json +0 -32
  128. package/skills/skill-generate-readme/src/index.ts +0 -867
  129. package/skills/skill-generate-readme/tsconfig.json +0 -14
  130. package/skills/skill-generate-slides/CLAUDE.md +0 -19
  131. package/skills/skill-generate-slides/package.json +0 -32
  132. package/skills/skill-generate-slides/src/ai.ts +0 -140
  133. package/skills/skill-generate-slides/src/cli.ts +0 -161
  134. package/skills/skill-generate-slides/src/export.ts +0 -65
  135. package/skills/skill-generate-slides/src/index.ts +0 -1417
  136. package/skills/skill-generate-slides/src/layout.ts +0 -31
  137. package/skills/skill-generate-slides/src/parse.ts +0 -282
  138. package/skills/skill-generate-slides/src/render.ts +0 -711
  139. package/skills/skill-generate-slides/tsconfig.json +0 -14
  140. package/skills/skill-get-api-docs/CLAUDE.md +0 -19
  141. package/skills/skill-get-api-docs/package.json +0 -32
  142. package/skills/skill-get-api-docs/src/index.ts +0 -1176
  143. package/skills/skill-get-api-docs/tsconfig.json +0 -14
  144. package/skills/skill-googledrive/LICENSE +0 -21
  145. package/skills/skill-googledrive/README.md +0 -27
  146. package/skills/skill-googledrive/SKILL.md +0 -140
  147. package/skills/skill-googledrive/install.sh +0 -112
  148. package/skills/skill-googledrive/package.json +0 -31
  149. package/skills/skill-googledrive/src/auth.ts +0 -49
  150. package/skills/skill-googledrive/src/installer.ts +0 -324
  151. package/skills/skill-googledrive/src/skill-install.ts +0 -174
  152. package/skills/skill-grant-compliance-scanner/CLAUDE.md +0 -19
  153. package/skills/skill-grant-compliance-scanner/package.json +0 -32
  154. package/skills/skill-grant-compliance-scanner/src/index.ts +0 -94
  155. package/skills/skill-grant-compliance-scanner/tsconfig.json +0 -14
  156. package/skills/skill-hubsearch/LICENSE +0 -21
  157. package/skills/skill-hubsearch/README.md +0 -17
  158. package/skills/skill-hubsearch/install.sh +0 -112
  159. package/skills/skill-hubsearch/package.json +0 -31
  160. package/skills/skill-hubsearch/src/auth.ts +0 -49
  161. package/skills/skill-hubsearch/src/installer.ts +0 -324
  162. package/skills/skill-hubsearch/src/skill-install.ts +0 -205
  163. package/skills/skill-implementation-architecture/CLAUDE.md +0 -19
  164. package/skills/skill-implementation-architecture/package.json +0 -32
  165. package/skills/skill-implementation-architecture/src/index.ts +0 -460
  166. package/skills/skill-implementation-architecture/tsconfig.json +0 -14
  167. package/skills/skill-implementation-audit/CLAUDE.md +0 -19
  168. package/skills/skill-implementation-audit/package.json +0 -32
  169. package/skills/skill-implementation-audit/src/index.ts +0 -502
  170. package/skills/skill-implementation-audit/tsconfig.json +0 -14
  171. package/skills/skill-implementation-cost/CLAUDE.md +0 -19
  172. package/skills/skill-implementation-cost/package.json +0 -32
  173. package/skills/skill-implementation-cost/src/index.ts +0 -873
  174. package/skills/skill-implementation-cost/tsconfig.json +0 -14
  175. package/skills/skill-implementation-dispatch/CLAUDE.md +0 -19
  176. package/skills/skill-implementation-dispatch/package.json +0 -32
  177. package/skills/skill-implementation-dispatch/src/index.ts +0 -390
  178. package/skills/skill-implementation-dispatch/tsconfig.json +0 -14
  179. package/skills/skill-implementation-hook/CLAUDE.md +0 -19
  180. package/skills/skill-implementation-hook/package.json +0 -32
  181. package/skills/skill-implementation-hook/src/index.ts +0 -787
  182. package/skills/skill-implementation-hook/tsconfig.json +0 -14
  183. package/skills/skill-implementation-index/CLAUDE.md +0 -19
  184. package/skills/skill-implementation-index/package.json +0 -32
  185. package/skills/skill-implementation-index/src/index.ts +0 -767
  186. package/skills/skill-implementation-index/tsconfig.json +0 -14
  187. package/skills/skill-implementation-init/CLAUDE.md +0 -19
  188. package/skills/skill-implementation-init/package.json +0 -32
  189. package/skills/skill-implementation-init/src/index.ts +0 -378
  190. package/skills/skill-implementation-init/tsconfig.json +0 -14
  191. package/skills/skill-implementation-memento/CLAUDE.md +0 -19
  192. package/skills/skill-implementation-memento/package.json +0 -32
  193. package/skills/skill-implementation-memento/src/index.ts +0 -442
  194. package/skills/skill-implementation-memento/tsconfig.json +0 -14
  195. package/skills/skill-linear/LICENSE +0 -21
  196. package/skills/skill-linear/README.md +0 -28
  197. package/skills/skill-linear/SKILL.md +0 -94
  198. package/skills/skill-linear/install.sh +0 -112
  199. package/skills/skill-linear/package.json +0 -31
  200. package/skills/skill-linear/src/auth.ts +0 -49
  201. package/skills/skill-linear/src/installer.ts +0 -324
  202. package/skills/skill-linear/src/skill-install.ts +0 -174
  203. package/skills/skill-mail/LICENSE +0 -21
  204. package/skills/skill-mail/README.md +0 -17
  205. package/skills/skill-mail/install.sh +0 -112
  206. package/skills/skill-mail/package.json +0 -31
  207. package/skills/skill-mail/src/auth.ts +0 -49
  208. package/skills/skill-mail/src/installer.ts +0 -324
  209. package/skills/skill-mail/src/skill-install.ts +0 -205
  210. package/skills/skill-manage-gmail/CLAUDE.md +0 -19
  211. package/skills/skill-manage-gmail/package.json +0 -32
  212. package/skills/skill-manage-gmail/src/index.ts +0 -504
  213. package/skills/skill-manage-gmail/tsconfig.json +0 -14
  214. package/skills/skill-merch-mockup-factory/CLAUDE.md +0 -19
  215. package/skills/skill-merch-mockup-factory/package.json +0 -32
  216. package/skills/skill-merch-mockup-factory/src/index.ts +0 -296
  217. package/skills/skill-merch-mockup-factory/tsconfig.json +0 -14
  218. package/skills/skill-message/LICENSE +0 -21
  219. package/skills/skill-message/README.md +0 -17
  220. package/skills/skill-message/install.sh +0 -112
  221. package/skills/skill-message/package.json +0 -31
  222. package/skills/skill-message/src/auth.ts +0 -49
  223. package/skills/skill-message/src/installer.ts +0 -324
  224. package/skills/skill-message/src/skill-install.ts +0 -205
  225. package/skills/skill-newsletter-campaign-planner/CLAUDE.md +0 -19
  226. package/skills/skill-newsletter-campaign-planner/package.json +0 -32
  227. package/skills/skill-newsletter-campaign-planner/src/index.ts +0 -252
  228. package/skills/skill-newsletter-campaign-planner/tsconfig.json +0 -14
  229. package/skills/skill-notify/LICENSE +0 -21
  230. package/skills/skill-notify/README.md +0 -17
  231. package/skills/skill-notify/install.sh +0 -112
  232. package/skills/skill-notify/package.json +0 -31
  233. package/skills/skill-notify/src/auth.ts +0 -49
  234. package/skills/skill-notify/src/installer.ts +0 -324
  235. package/skills/skill-notify/src/skill-install.ts +0 -205
  236. package/skills/skill-notion/LICENSE +0 -21
  237. package/skills/skill-notion/README.md +0 -27
  238. package/skills/skill-notion/SKILL.md +0 -115
  239. package/skills/skill-notion/install.sh +0 -112
  240. package/skills/skill-notion/package.json +0 -31
  241. package/skills/skill-notion/src/auth.ts +0 -49
  242. package/skills/skill-notion/src/installer.ts +0 -324
  243. package/skills/skill-notion/src/skill-install.ts +0 -174
  244. package/skills/skill-parse-pdf/CLAUDE.md +0 -19
  245. package/skills/skill-parse-pdf/package.json +0 -32
  246. package/skills/skill-parse-pdf/src/index.ts +0 -581
  247. package/skills/skill-parse-pdf/tsconfig.json +0 -14
  248. package/skills/skill-playwright/LICENSE +0 -21
  249. package/skills/skill-playwright/README.md +0 -27
  250. package/skills/skill-playwright/SKILL.md +0 -116
  251. package/skills/skill-playwright/install.sh +0 -112
  252. package/skills/skill-playwright/package.json +0 -31
  253. package/skills/skill-playwright/src/auth.ts +0 -49
  254. package/skills/skill-playwright/src/installer.ts +0 -324
  255. package/skills/skill-playwright/src/skill-install.ts +0 -174
  256. package/skills/skill-projectbuild/LICENSE +0 -21
  257. package/skills/skill-projectbuild/README.md +0 -17
  258. package/skills/skill-projectbuild/install.sh +0 -112
  259. package/skills/skill-projectbuild/package.json +0 -31
  260. package/skills/skill-projectbuild/src/auth.ts +0 -49
  261. package/skills/skill-projectbuild/src/installer.ts +0 -324
  262. package/skills/skill-projectbuild/src/skill-install.ts +0 -205
  263. package/skills/skill-read-gmail/CLAUDE.md +0 -19
  264. package/skills/skill-read-gmail/package.json +0 -32
  265. package/skills/skill-read-gmail/src/index.ts +0 -343
  266. package/skills/skill-read-gmail/tsconfig.json +0 -14
  267. package/skills/skill-remember/LICENSE +0 -21
  268. package/skills/skill-remember/README.md +0 -17
  269. package/skills/skill-remember/install.sh +0 -112
  270. package/skills/skill-remember/package.json +0 -31
  271. package/skills/skill-remember/src/auth.ts +0 -49
  272. package/skills/skill-remember/src/installer.ts +0 -324
  273. package/skills/skill-remember/src/skill-install.ts +0 -205
  274. package/skills/skill-schedule/README.md +0 -17
  275. package/skills/skill-schedule/install.sh +0 -112
  276. package/skills/skill-schedule/src/auth.ts +0 -49
  277. package/skills/skill-schedule/src/installer.ts +0 -324
  278. package/skills/skill-schedule/src/skill-install.ts +0 -205
  279. package/skills/skill-search/LICENSE +0 -21
  280. package/skills/skill-search/README.md +0 -17
  281. package/skills/skill-search/install.sh +0 -112
  282. package/skills/skill-search/package.json +0 -31
  283. package/skills/skill-search/src/auth.ts +0 -49
  284. package/skills/skill-search/src/installer.ts +0 -324
  285. package/skills/skill-search/src/skill-install.ts +0 -205
  286. package/skills/skill-shadcn/LICENSE +0 -21
  287. package/skills/skill-shadcn/README.md +0 -27
  288. package/skills/skill-shadcn/SKILL.md +0 -113
  289. package/skills/skill-shadcn/install.sh +0 -112
  290. package/skills/skill-shadcn/package.json +0 -31
  291. package/skills/skill-shadcn/src/auth.ts +0 -49
  292. package/skills/skill-shadcn/src/installer.ts +0 -324
  293. package/skills/skill-shadcn/src/skill-install.ts +0 -174
  294. package/skills/skill-shadcn-theme/CLAUDE.md +0 -19
  295. package/skills/skill-shadcn-theme/package.json +0 -32
  296. package/skills/skill-shadcn-theme/src/index.ts +0 -16
  297. package/skills/skill-shadcn-theme/tsconfig.json +0 -14
  298. package/skills/skill-social-template-kit/CLAUDE.md +0 -19
  299. package/skills/skill-social-template-kit/package.json +0 -32
  300. package/skills/skill-social-template-kit/src/index.ts +0 -303
  301. package/skills/skill-social-template-kit/tsconfig.json +0 -14
  302. package/skills/skill-summarize/LICENSE +0 -21
  303. package/skills/skill-summarize/README.md +0 -17
  304. package/skills/skill-summarize/install.sh +0 -112
  305. package/skills/skill-summarize/package.json +0 -31
  306. package/skills/skill-summarize/src/auth.ts +0 -49
  307. package/skills/skill-summarize/src/installer.ts +0 -324
  308. package/skills/skill-summarize/src/skill-install.ts +0 -205
  309. package/skills/skill-sync/LICENSE +0 -21
  310. package/skills/skill-sync/README.md +0 -17
  311. package/skills/skill-sync/install.sh +0 -112
  312. package/skills/skill-sync/package.json +0 -31
  313. package/skills/skill-sync/src/auth.ts +0 -49
  314. package/skills/skill-sync/src/installer.ts +0 -324
  315. package/skills/skill-sync/src/skill-install.ts +0 -205
  316. package/skills/skill-time-blocking-orchestrator/CLAUDE.md +0 -19
  317. package/skills/skill-time-blocking-orchestrator/package.json +0 -32
  318. package/skills/skill-time-blocking-orchestrator/src/index.ts +0 -328
  319. package/skills/skill-time-blocking-orchestrator/tsconfig.json +0 -14
  320. package/skills/skill-transform/.env.example +0 -2
  321. package/skills/skill-transform/LICENSE +0 -21
  322. package/skills/skill-transform/README.md +0 -17
  323. package/skills/skill-transform/SKILL.md +0 -127
  324. package/skills/skill-transform/install.sh +0 -112
  325. package/skills/skill-transform/package.json +0 -37
  326. package/skills/skill-transform/src/auth.ts +0 -49
  327. package/skills/skill-transform/src/http-client.ts +0 -128
  328. package/skills/skill-transform/src/index-http.ts +0 -111
  329. package/skills/skill-transform/src/index-local.ts +0 -368
  330. package/skills/skill-transform/src/index.ts +0 -111
  331. package/skills/skill-transform/src/installer.ts +0 -324
  332. package/skills/skill-transform/src/skill-install.ts +0 -205
  333. package/skills/skill-transform/src/transformers/ai-transformer.ts +0 -202
  334. package/skills/skill-transform/src/transformers/format-detector.ts +0 -147
  335. package/skills/skill-transform/src/types.ts +0 -95
  336. package/skills/skill-transform/tsconfig.json +0 -18
  337. package/skills/skill-translate/LICENSE +0 -21
  338. package/skills/skill-translate/README.md +0 -17
  339. package/skills/skill-translate/install.sh +0 -112
  340. package/skills/skill-translate/package.json +0 -31
  341. package/skills/skill-translate/src/auth.ts +0 -49
  342. package/skills/skill-translate/src/installer.ts +0 -324
  343. package/skills/skill-translate/src/skill-install.ts +0 -205
  344. package/skills/skill-vendor-comparison-coach/CLAUDE.md +0 -19
  345. package/skills/skill-vendor-comparison-coach/package.json +0 -32
  346. package/skills/skill-vendor-comparison-coach/src/index.ts +0 -337
  347. package/skills/skill-vendor-comparison-coach/tsconfig.json +0 -14
  348. package/skills/skill-videodownload/.env.example +0 -5
  349. package/skills/skill-videodownload/CLAUDE.md +0 -64
  350. package/skills/skill-videodownload/LICENSE +0 -21
  351. package/skills/skill-videodownload/README.md +0 -166
  352. package/skills/skill-videodownload/package.json +0 -49
  353. package/skills/skill-videodownload/src/commands/config.ts +0 -89
  354. package/skills/skill-videodownload/src/commands/download.ts +0 -61
  355. package/skills/skill-videodownload/src/commands/info.ts +0 -83
  356. package/skills/skill-videodownload/src/commands/list.ts +0 -84
  357. package/skills/skill-videodownload/src/lib/downloader.ts +0 -270
  358. package/skills/skill-videodownload/src/lib/storage.ts +0 -167
  359. package/skills/skill-videodownload/src/types/index.ts +0 -64
  360. package/skills/skill-videodownload/src/utils/logger.ts +0 -49
  361. package/skills/skill-videodownload/src/utils/paths.ts +0 -94
  362. package/skills/skill-videodownload/tsconfig.json +0 -17
  363. package/skills/skill-voiceover/.env.example +0 -5
  364. package/skills/skill-voiceover/CLAUDE.md +0 -40
  365. package/skills/skill-voiceover/LICENSE +0 -21
  366. package/skills/skill-voiceover/README.md +0 -64
  367. package/skills/skill-voiceover/package.json +0 -43
  368. package/skills/skill-voiceover/src/commands/config.ts +0 -38
  369. package/skills/skill-voiceover/src/commands/generate.ts +0 -37
  370. package/skills/skill-voiceover/src/commands/voices.ts +0 -33
  371. package/skills/skill-voiceover/src/lib/generator.ts +0 -159
  372. package/skills/skill-voiceover/src/lib/storage.ts +0 -55
  373. package/skills/skill-voiceover/src/types/index.ts +0 -55
  374. package/skills/skill-voiceover/src/utils/logger.ts +0 -30
  375. package/skills/skill-voiceover/src/utils/paths.ts +0 -22
  376. package/skills/skill-voiceover/tsconfig.json +0 -17
  377. package/skills/skill-websearch/LICENSE +0 -21
  378. package/skills/skill-websearch/README.md +0 -17
  379. package/skills/skill-websearch/install.sh +0 -112
  380. package/skills/skill-websearch/package.json +0 -31
  381. package/skills/skill-websearch/src/auth.ts +0 -49
  382. package/skills/skill-websearch/src/installer.ts +0 -324
  383. package/skills/skill-websearch/src/skill-install.ts +0 -205
  384. /package/skills/{skill-compose-gmail → skill-gmail}/CLAUDE.md +0 -0
  385. /package/skills/{skill-compose-gmail → skill-gmail}/package.json +0 -0
  386. /package/skills/{skill-compose-gmail → skill-gmail}/src/index.ts +0 -0
  387. /package/skills/{skill-architecture-docs → skill-gmail}/tsconfig.json +0 -0
@@ -1,159 +0,0 @@
1
- /**
2
- * Voiceover generation using OpenAI and ElevenLabs
3
- */
4
-
5
- import OpenAI from "openai";
6
- import * as logger from "../utils/logger.js";
7
- import { loadConfig, saveAudio } from "./storage.js";
8
- import { sanitizeFilename } from "../utils/paths.js";
9
- import type { VoiceoverOptions, VoiceoverResult, Provider } from "../types/index.js";
10
- import { OPENAI_VOICES } from "../types/index.js";
11
-
12
- /**
13
- * Generate voiceover using OpenAI TTS
14
- */
15
- async function generateWithOpenAI(
16
- text: string,
17
- voice: string,
18
- speed: number = 1.0
19
- ): Promise<Buffer> {
20
- const openai = new OpenAI();
21
-
22
- const validVoice = OPENAI_VOICES.includes(voice) ? voice : "alloy";
23
-
24
- const response = await openai.audio.speech.create({
25
- model: "tts-1-hd",
26
- voice: validVoice as any,
27
- input: text,
28
- speed,
29
- });
30
-
31
- const buffer = Buffer.from(await response.arrayBuffer());
32
- return buffer;
33
- }
34
-
35
- /**
36
- * Generate voiceover using ElevenLabs
37
- */
38
- async function generateWithElevenLabs(
39
- text: string,
40
- voiceId: string,
41
- options: { stability?: number; similarityBoost?: number } = {}
42
- ): Promise<Buffer> {
43
- const config = loadConfig();
44
- const apiKey = config.elevenLabsApiKey || process.env.ELEVENLABS_API_KEY;
45
-
46
- if (!apiKey) {
47
- throw new Error("ELEVENLABS_API_KEY not set");
48
- }
49
-
50
- const stability = options.stability ?? 0.5;
51
- const similarityBoost = options.similarityBoost ?? 0.75;
52
-
53
- const response = await fetch(
54
- `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`,
55
- {
56
- method: "POST",
57
- headers: {
58
- "Accept": "audio/mpeg",
59
- "Content-Type": "application/json",
60
- "xi-api-key": apiKey,
61
- },
62
- body: JSON.stringify({
63
- text,
64
- model_id: "eleven_multilingual_v2",
65
- voice_settings: {
66
- stability,
67
- similarity_boost: similarityBoost,
68
- },
69
- }),
70
- }
71
- );
72
-
73
- if (!response.ok) {
74
- const error = await response.text();
75
- throw new Error(`ElevenLabs API error: ${error}`);
76
- }
77
-
78
- const buffer = Buffer.from(await response.arrayBuffer());
79
- return buffer;
80
- }
81
-
82
- /**
83
- * Generate voiceover
84
- */
85
- export async function generateVoiceover(
86
- text: string,
87
- options: Partial<VoiceoverOptions> = {}
88
- ): Promise<VoiceoverResult> {
89
- const config = loadConfig();
90
- const provider = options.provider || config.defaultProvider;
91
- const voice = options.voice || config.defaultVoice;
92
-
93
- logger.info(`Generating voiceover with ${provider}...`);
94
- logger.info(`Voice: ${voice}`);
95
- logger.info(`Text: ${text.substring(0, 100)}${text.length > 100 ? "..." : ""}`);
96
-
97
- let audioBuffer: Buffer;
98
-
99
- if (provider === "openai") {
100
- if (!process.env.OPENAI_API_KEY) {
101
- throw new Error("OPENAI_API_KEY not set");
102
- }
103
- audioBuffer = await generateWithOpenAI(text, voice, options.speed);
104
- } else if (provider === "elevenlabs") {
105
- audioBuffer = await generateWithElevenLabs(text, voice, {
106
- stability: options.stability,
107
- similarityBoost: options.similarityBoost,
108
- });
109
- } else {
110
- throw new Error(`Unknown provider: ${provider}`);
111
- }
112
-
113
- // Save the audio file
114
- const filename = `${sanitizeFilename(text)}_${Date.now()}.mp3`;
115
- const filepath = saveAudio(filename, audioBuffer);
116
-
117
- logger.success(`Generated: ${filepath}`);
118
-
119
- return {
120
- text,
121
- provider,
122
- voice,
123
- filepath,
124
- format: "mp3",
125
- };
126
- }
127
-
128
- /**
129
- * List available voices for a provider
130
- */
131
- export async function listVoices(provider: Provider): Promise<{ id: string; name: string }[]> {
132
- if (provider === "openai") {
133
- return OPENAI_VOICES.map((v) => ({ id: v, name: v }));
134
- }
135
-
136
- if (provider === "elevenlabs") {
137
- const config = loadConfig();
138
- const apiKey = config.elevenLabsApiKey || process.env.ELEVENLABS_API_KEY;
139
-
140
- if (!apiKey) {
141
- throw new Error("ELEVENLABS_API_KEY not set");
142
- }
143
-
144
- const response = await fetch("https://api.elevenlabs.io/v1/voices", {
145
- headers: {
146
- "xi-api-key": apiKey,
147
- },
148
- });
149
-
150
- if (!response.ok) {
151
- throw new Error("Failed to fetch ElevenLabs voices");
152
- }
153
-
154
- const data = await response.json() as { voices: { voice_id: string; name: string }[] };
155
- return data.voices.map((v) => ({ id: v.voice_id, name: v.name }));
156
- }
157
-
158
- return [];
159
- }
@@ -1,55 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
2
- import { join } from "path";
3
- import { getDataDir, getConfigPath, getOutputDir } from "../utils/paths.js";
4
- import type { Config } from "../types/index.js";
5
-
6
- const DEFAULT_CONFIG: Config = {
7
- outputDir: getOutputDir(),
8
- defaultProvider: "openai",
9
- defaultVoice: "alloy",
10
- };
11
-
12
- export function ensureDataDir(): void {
13
- const dir = getDataDir();
14
- if (!existsSync(dir)) {
15
- mkdirSync(dir, { recursive: true });
16
- }
17
- }
18
-
19
- export function loadConfig(): Config {
20
- ensureDataDir();
21
- const configPath = getConfigPath();
22
-
23
- if (existsSync(configPath)) {
24
- try {
25
- return { ...DEFAULT_CONFIG, ...JSON.parse(readFileSync(configPath, "utf-8")) };
26
- } catch {
27
- return DEFAULT_CONFIG;
28
- }
29
- }
30
-
31
- return DEFAULT_CONFIG;
32
- }
33
-
34
- export function saveConfig(config: Partial<Config>): void {
35
- ensureDataDir();
36
- const current = loadConfig();
37
- writeFileSync(getConfigPath(), JSON.stringify({ ...current, ...config }, null, 2));
38
- }
39
-
40
- export { getConfigPath };
41
-
42
- export function ensureOutputDir(): string {
43
- const config = loadConfig();
44
- if (!existsSync(config.outputDir)) {
45
- mkdirSync(config.outputDir, { recursive: true });
46
- }
47
- return config.outputDir;
48
- }
49
-
50
- export function saveAudio(filename: string, data: Buffer | Uint8Array): string {
51
- const outputDir = ensureOutputDir();
52
- const outputPath = join(outputDir, filename);
53
- writeFileSync(outputPath, data);
54
- return outputPath;
55
- }
@@ -1,55 +0,0 @@
1
- /**
2
- * Types for voiceover generation service
3
- */
4
-
5
- export type Provider = "elevenlabs" | "openai";
6
-
7
- export interface VoiceoverOptions {
8
- provider: Provider;
9
- voice: string;
10
- model?: string;
11
- speed?: number;
12
- stability?: number;
13
- similarityBoost?: number;
14
- }
15
-
16
- export interface VoiceoverResult {
17
- text: string;
18
- provider: Provider;
19
- voice: string;
20
- filepath: string;
21
- duration?: number;
22
- format: string;
23
- }
24
-
25
- export interface Voice {
26
- id: string;
27
- name: string;
28
- provider: Provider;
29
- description?: string;
30
- previewUrl?: string;
31
- }
32
-
33
- export interface Config {
34
- outputDir: string;
35
- defaultProvider: Provider;
36
- defaultVoice: string;
37
- elevenLabsApiKey?: string;
38
- openaiApiKey?: string;
39
- }
40
-
41
- // OpenAI voices
42
- export const OPENAI_VOICES = ["alloy", "echo", "fable", "onyx", "nova", "shimmer"];
43
-
44
- // ElevenLabs default voices
45
- export const ELEVENLABS_VOICES = [
46
- { id: "21m00Tcm4TlvDq8ikWAM", name: "Rachel" },
47
- { id: "AZnzlk1XvdvUeBnXmlld", name: "Domi" },
48
- { id: "EXAVITQu4vr4xnSDxMaL", name: "Bella" },
49
- { id: "ErXwobaYiN019PkySvjV", name: "Antoni" },
50
- { id: "MF3mGyEYCl7XYWbV9V6O", name: "Elli" },
51
- { id: "TxGEqnHWrfWFTfGW9XjX", name: "Josh" },
52
- { id: "VR6AewLTigWG4xSOukaG", name: "Arnold" },
53
- { id: "pNInz6obpgDQGcFmaJgB", name: "Adam" },
54
- { id: "yoZ06aMxZJJ28mfd3POQ", name: "Sam" },
55
- ];
@@ -1,30 +0,0 @@
1
- import chalk from "chalk";
2
-
3
- export function info(message: string): void {
4
- console.log(chalk.blue("ℹ"), message);
5
- }
6
-
7
- export function success(message: string): void {
8
- console.log(chalk.green("✓"), message);
9
- }
10
-
11
- export function warn(message: string): void {
12
- console.log(chalk.yellow("⚠"), message);
13
- }
14
-
15
- export function error(message: string): void {
16
- console.log(chalk.red("✗"), message);
17
- }
18
-
19
- export function heading(message: string): void {
20
- console.log();
21
- console.log(chalk.bold.underline(message));
22
- console.log();
23
- }
24
-
25
- export function table(rows: [string, string][]): void {
26
- const maxKeyLen = Math.max(...rows.map(([k]) => k.length));
27
- for (const [key, value] of rows) {
28
- console.log(` ${chalk.dim(key.padEnd(maxKeyLen))} ${value}`);
29
- }
30
- }
@@ -1,22 +0,0 @@
1
- import { homedir } from "os";
2
- import { join } from "path";
3
-
4
- export function getDataDir(): string {
5
- return process.env.DATA_DIR || join(homedir(), ".service", "service-voiceovergenerate");
6
- }
7
-
8
- export function getOutputDir(): string {
9
- return join(getDataDir(), "output");
10
- }
11
-
12
- export function getConfigPath(): string {
13
- return join(getDataDir(), "config.json");
14
- }
15
-
16
- export function sanitizeFilename(text: string): string {
17
- return text
18
- .substring(0, 50)
19
- .replace(/[^a-zA-Z0-9]/g, "_")
20
- .replace(/_+/g, "_")
21
- .replace(/^_|_$/g, "");
22
- }
@@ -1,17 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "ESNext",
5
- "moduleResolution": "bundler",
6
- "esModuleInterop": true,
7
- "strict": true,
8
- "skipLibCheck": true,
9
- "outDir": "dist",
10
- "rootDir": ".",
11
- "types": ["bun-types"],
12
- "lib": ["ES2022"],
13
- "resolveJsonModule": true
14
- },
15
- "include": ["src/**/*", "bin/**/*"],
16
- "exclude": ["node_modules", "dist", "legacy"]
17
- }
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Hasna
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,17 +0,0 @@
1
- # skill-websearch
2
-
3
- Multi-tool web search combining multiple search engines and APIs
4
-
5
- ## Overview
6
-
7
- This skill provides capabilities for comprehensive web search using multiple search engines (Google, Bing, DuckDuckGo), specialized APIs (Exa, Tavily, Perplexity), and aggregating results.
8
-
9
- ## Usage
10
-
11
- ```bash
12
- # Coming soon
13
- ```
14
-
15
- ## Development
16
-
17
- See `.implementation/` for development notes and todos.
@@ -1,112 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # Install script for skills
4
- # Installs the skill either globally for Claude Code or locally in a project
5
-
6
- set -e
7
-
8
- SKILL_NAME="$(basename "$(pwd)")"
9
- SKILL_PATH="$(pwd)"
10
-
11
- echo "📦 Installing $SKILL_NAME..."
12
- echo ""
13
-
14
- # Check if Claude Code is installed
15
- if ! command -v claude &> /dev/null; then
16
- echo "⚠️ Claude Code not found in PATH"
17
- echo " Please install Claude Code first: https://claude.com/claude-code"
18
- exit 1
19
- fi
20
-
21
- # Check if we're in a git repository
22
- if git rev-parse --git-dir > /dev/null 2>&1; then
23
- IN_REPO=true
24
- REPO_ROOT="$(git rev-parse --show-toplevel)"
25
- echo "📁 Detected git repository: $REPO_ROOT"
26
- else
27
- IN_REPO=false
28
- echo "📁 Not in a git repository"
29
- fi
30
-
31
- # Ask installation type
32
- echo ""
33
- echo "Where would you like to install this skill?"
34
- if [ "$IN_REPO" = true ]; then
35
- echo " 1) Locally (this repository only)"
36
- echo " 2) Globally (all Claude Code sessions)"
37
- read -p "Choose [1/2]: " choice
38
- else
39
- echo " Installing globally (not in a git repository)"
40
- choice=2
41
- fi
42
-
43
- # Install function
44
- install_skill() {
45
- local config_dir=$1
46
- local config_file="$config_dir/claude_mcp_config.json"
47
-
48
- # Create config directory if it doesn't exist
49
- mkdir -p "$config_dir"
50
-
51
- # Create or update config file
52
- if [ ! -f "$config_file" ]; then
53
- echo "{" > "$config_file"
54
- echo ' "mcpServers": {}' >> "$config_file"
55
- echo "}" >> "$config_file"
56
- fi
57
-
58
- # Add skill to config using bun
59
- bun -e "
60
- const fs = require('fs');
61
- const config = JSON.parse(fs.readFileSync('$config_file', 'utf8'));
62
-
63
- if (!config.mcpServers) config.mcpServers = {};
64
-
65
- config.mcpServers['$SKILL_NAME'] = {
66
- command: 'bun',
67
- args: ['run', '$SKILL_PATH/src/index.ts'],
68
- env: {
69
- SKILL_API_KEY: process.env.SKILL_API_KEY || '',
70
- ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY || '',
71
- OPENAI_API_KEY: process.env.OPENAI_API_KEY || '',
72
- ELEVENLABS_API_KEY: process.env.ELEVENLABS_API_KEY || '',
73
- GEMINI_API_KEY: process.env.GEMINI_API_KEY || '',
74
- XAI_API_KEY: process.env.XAI_API_KEY || '',
75
- GOOGLE_API_KEY: process.env.GOOGLE_API_KEY || '',
76
- GOOGLE_PROJECT_ID: process.env.GOOGLE_PROJECT_ID || '',
77
- BROWSER_USE_API_KEY: process.env.BROWSER_USE_API_KEY || '',
78
- RUNWAY_API_KEY: process.env.RUNWAY_API_KEY || ''
79
- }
80
- };
81
-
82
- fs.writeFileSync('$config_file', JSON.stringify(config, null, 2));
83
- "
84
-
85
- echo "✅ Installed $SKILL_NAME to $config_file"
86
- }
87
-
88
- # Install based on choice
89
- if [ "$choice" = "1" ]; then
90
- # Local installation
91
- install_skill "$REPO_ROOT/.claude"
92
- echo ""
93
- echo "🎉 $SKILL_NAME installed locally!"
94
- echo " Config: $REPO_ROOT/.claude/claude_mcp_config.json"
95
- elif [ "$choice" = "2" ]; then
96
- # Global installation
97
- install_skill "$HOME/.config/claude-code"
98
- echo ""
99
- echo "🎉 $SKILL_NAME installed globally!"
100
- echo " Config: $HOME/.config/claude-code/claude_mcp_config.json"
101
- else
102
- echo "❌ Invalid choice"
103
- exit 1
104
- fi
105
-
106
- echo ""
107
- echo "📝 Next steps:"
108
- echo " 1. Restart Claude Code"
109
- echo " 2. The skill will be available as: $SKILL_NAME"
110
- echo ""
111
- echo " Usage: Claude Code will automatically detect and use this skill"
112
- echo " based on your prompts and task context."
@@ -1,31 +0,0 @@
1
- {
2
- "name": "skill-websearch",
3
- "version": "1.0.0",
4
- "description": "Multi-tool web search combining multiple search engines and APIs",
5
- "type": "module",
6
- "main": "src/index.ts",
7
- "bin": {
8
- "skill-websearch": "src/index.ts"
9
- },
10
- "scripts": {
11
- "start": "bun run src/index.ts",
12
- "dev": "bun run --watch src/index.ts"
13
- },
14
- "keywords": [
15
- "claude",
16
- "ai",
17
- "skill"
18
- ],
19
- "author": "",
20
- "license": "MIT",
21
- "devDependencies": {
22
- "@types/bun": "latest"
23
- },
24
- "peerDependencies": {
25
- "typescript": "^5.0.0"
26
- },
27
- "repository": {
28
- "type": "git",
29
- "url": "git+https://github.com/hasnaxyz/skill-websearch.git"
30
- }
31
- }
@@ -1,49 +0,0 @@
1
- /**
2
- * Skill Authentication Check
3
- * Add this to the top of any skill's main function
4
- */
5
-
6
- export function checkSkillAuth(): void {
7
- const SKILL_API_KEY = process.env.SKILL_API_KEY;
8
-
9
- // Check if SKILL_API_KEY is set
10
- if (!SKILL_API_KEY) {
11
- console.error('❌ Error: SKILL_API_KEY environment variable not set');
12
- console.error('');
13
- console.error('To use this skill, you must set your SKILL_API_KEY:');
14
- console.error('');
15
- console.error(' export SKILL_API_KEY=your-api-key-here');
16
- console.error('');
17
- console.error('Contact your administrator to get your API key.');
18
- process.exit(1);
19
- }
20
-
21
- // Validate key format
22
- if (!SKILL_API_KEY.startsWith('sk-skill-')) {
23
- console.error('❌ Error: Invalid SKILL_API_KEY format');
24
- console.error('Expected format: sk-skill-xxxxxxxxxxxx');
25
- process.exit(1);
26
- }
27
-
28
- // Key is valid - skill can proceed
29
- }
30
-
31
- /**
32
- * Check if running remotely (via SSH or network)
33
- */
34
- export function isRemoteExecution(): boolean {
35
- return !!(
36
- process.env.SSH_CONNECTION ||
37
- process.env.SSH_CLIENT ||
38
- process.env.SSH_TTY
39
- );
40
- }
41
-
42
- /**
43
- * Require auth only if remote execution
44
- */
45
- export function requireAuthIfRemote(): void {
46
- if (isRemoteExecution()) {
47
- checkSkillAuth();
48
- }
49
- }