@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,504 +0,0 @@
1
- #!/usr/bin/env bun
2
- /**
3
- * Manage Gmail Skill
4
- * Manage Gmail labels, threads, and message organization
5
- */
6
-
7
- import { parseArgs } from "util";
8
-
9
- // Gmail API base URL
10
- const GMAIL_API_BASE = "https://gmail.googleapis.com/gmail/v1/users/me";
11
-
12
- // Types
13
- interface GmailLabel {
14
- id: string;
15
- name: string;
16
- type: "system" | "user";
17
- messageListVisibility?: "show" | "hide";
18
- labelListVisibility?: "labelShow" | "labelShowIfUnread" | "labelHide";
19
- messagesTotal?: number;
20
- messagesUnread?: number;
21
- threadsTotal?: number;
22
- threadsUnread?: number;
23
- }
24
-
25
- interface ModifyRequest {
26
- addLabelIds?: string[];
27
- removeLabelIds?: string[];
28
- }
29
-
30
- // Get access token from environment
31
- function getAccessToken(): string {
32
- const token = process.env.GMAIL_ACCESS_TOKEN;
33
- if (!token) {
34
- console.error("Error: Gmail not connected.");
35
- console.error("");
36
- console.error("To use this skill, you need to connect your Gmail account:");
37
- console.error("1. Go to https://skills.md/dashboard/connectors");
38
- console.error("2. Click 'Connect' on the Gmail connector");
39
- console.error("3. Authorize access to your Gmail account");
40
- process.exit(1);
41
- }
42
- return token;
43
- }
44
-
45
- // Make authenticated Gmail API request
46
- async function gmailRequest<T>(
47
- endpoint: string,
48
- accessToken: string,
49
- options: RequestInit = {}
50
- ): Promise<T> {
51
- const response = await fetch(`${GMAIL_API_BASE}${endpoint}`, {
52
- ...options,
53
- headers: {
54
- Authorization: `Bearer ${accessToken}`,
55
- Accept: "application/json",
56
- "Content-Type": "application/json",
57
- ...options.headers,
58
- },
59
- });
60
-
61
- if (!response.ok) {
62
- const error = await response.json().catch(() => ({}));
63
- if (response.status === 401) {
64
- console.error("Error: Gmail access token expired or invalid.");
65
- console.error("Please reconnect your Gmail account in the Connectors dashboard.");
66
- process.exit(1);
67
- }
68
- throw new Error(error.error?.message || `Gmail API error: ${response.status}`);
69
- }
70
-
71
- // Handle empty responses (204 No Content)
72
- if (response.status === 204) {
73
- return {} as T;
74
- }
75
-
76
- return response.json();
77
- }
78
-
79
- // List all labels
80
- async function listLabels(accessToken: string): Promise<GmailLabel[]> {
81
- const response = await gmailRequest<{ labels: GmailLabel[] }>("/labels", accessToken);
82
- return response.labels || [];
83
- }
84
-
85
- // Create a label
86
- async function createLabel(
87
- accessToken: string,
88
- name: string
89
- ): Promise<GmailLabel> {
90
- return gmailRequest("/labels", accessToken, {
91
- method: "POST",
92
- body: JSON.stringify({
93
- name,
94
- labelListVisibility: "labelShow",
95
- messageListVisibility: "show",
96
- }),
97
- });
98
- }
99
-
100
- // Delete a label
101
- async function deleteLabel(accessToken: string, labelId: string): Promise<void> {
102
- await gmailRequest(`/labels/${labelId}`, accessToken, {
103
- method: "DELETE",
104
- });
105
- }
106
-
107
- // Modify message labels
108
- async function modifyMessage(
109
- accessToken: string,
110
- messageId: string,
111
- modifications: ModifyRequest
112
- ): Promise<void> {
113
- await gmailRequest(`/messages/${messageId}/modify`, accessToken, {
114
- method: "POST",
115
- body: JSON.stringify(modifications),
116
- });
117
- }
118
-
119
- // Batch modify messages
120
- async function batchModifyMessages(
121
- accessToken: string,
122
- messageIds: string[],
123
- modifications: ModifyRequest
124
- ): Promise<void> {
125
- await gmailRequest("/messages/batchModify", accessToken, {
126
- method: "POST",
127
- body: JSON.stringify({
128
- ids: messageIds,
129
- ...modifications,
130
- }),
131
- });
132
- }
133
-
134
- // Trash a message
135
- async function trashMessage(accessToken: string, messageId: string): Promise<void> {
136
- await gmailRequest(`/messages/${messageId}/trash`, accessToken, {
137
- method: "POST",
138
- });
139
- }
140
-
141
- // Untrash a message
142
- async function untrashMessage(accessToken: string, messageId: string): Promise<void> {
143
- await gmailRequest(`/messages/${messageId}/untrash`, accessToken, {
144
- method: "POST",
145
- });
146
- }
147
-
148
- // Format labels for output
149
- function formatLabelsText(labels: GmailLabel[]): string {
150
- const lines = ["Gmail Labels", "============", ""];
151
-
152
- // Sort: system labels first, then user labels alphabetically
153
- const systemLabels = labels.filter((l) => l.type === "system").sort((a, b) => a.name.localeCompare(b.name));
154
- const userLabels = labels.filter((l) => l.type === "user").sort((a, b) => a.name.localeCompare(b.name));
155
-
156
- for (const label of systemLabels) {
157
- lines.push(`${label.name} (system)`);
158
- }
159
-
160
- if (userLabels.length > 0) {
161
- lines.push("");
162
- lines.push("Custom Labels:");
163
- for (const label of userLabels) {
164
- const stats = label.messagesTotal !== undefined ? ` [${label.messagesUnread || 0}/${label.messagesTotal}]` : "";
165
- lines.push(` ${label.id}: ${label.name}${stats}`);
166
- }
167
- }
168
-
169
- return lines.join("\n");
170
- }
171
-
172
- // Parse message IDs from comma-separated string
173
- function parseMessageIds(input: string): string[] {
174
- return input.split(",").map((id) => id.trim()).filter(Boolean);
175
- }
176
-
177
- // Show help
178
- function showHelp(): void {
179
- console.log(`
180
- Manage Gmail - Manage labels, threads, and message organization
181
-
182
- Usage:
183
- bun run src/index.ts <command> [options]
184
-
185
- Commands:
186
- labels list List all labels
187
- labels create <name> Create a new label
188
- labels delete <id> Delete a label by ID
189
- apply Add label(s) to message(s)
190
- remove Remove label(s) from message(s)
191
- archive Archive message(s)
192
- unarchive Move message(s) back to inbox
193
- trash Move message(s) to trash
194
- untrash Restore message(s) from trash
195
- mark-read Mark message(s) as read
196
- mark-unread Mark message(s) as unread
197
- star Star message(s)
198
- unstar Unstar message(s)
199
-
200
- Options:
201
- --message <ids> Message ID(s), comma-separated
202
- --label <id> Label ID (for apply/remove)
203
- --format <format> Output format: text or json [default: text]
204
- --help, -h Show this help
205
-
206
- Examples:
207
- # List all labels
208
- bun run src/index.ts labels list
209
-
210
- # Create a label
211
- bun run src/index.ts labels create "Work/Projects"
212
-
213
- # Apply label to messages
214
- bun run src/index.ts apply --label Label_123 --message msg1,msg2
215
-
216
- # Archive messages
217
- bun run src/index.ts archive --message msg1,msg2
218
-
219
- # Mark as read
220
- bun run src/index.ts mark-read --message msg1
221
- `);
222
- }
223
-
224
- // Main function
225
- async function main() {
226
- const { values, positionals } = parseArgs({
227
- args: Bun.argv.slice(2),
228
- options: {
229
- message: { type: "string", short: "m" },
230
- thread: { type: "string", short: "t" },
231
- label: { type: "string", short: "l" },
232
- format: { type: "string", default: "text" },
233
- action: { type: "string", short: "a" },
234
- help: { type: "boolean", short: "h" },
235
- },
236
- allowPositionals: true,
237
- });
238
-
239
- // Support both positional commands and --action option
240
- let command = positionals[0];
241
- let subcommand = positionals[1];
242
-
243
- // If --action is provided, use it as the command
244
- if (values.action) {
245
- const actionValue = values.action as string;
246
- // Handle compound actions like "labels list" or simple actions like "list"
247
- if (actionValue === "list" || actionValue === "create" || actionValue === "delete") {
248
- command = "labels";
249
- subcommand = actionValue;
250
- } else {
251
- command = actionValue;
252
- }
253
- }
254
-
255
- if (values.help || (!command && !values.action)) {
256
- showHelp();
257
- process.exit(values.help ? 0 : 1);
258
- }
259
-
260
- const accessToken = getAccessToken();
261
- const outputFormat = values.format as string;
262
-
263
- try {
264
- // Label commands
265
- if (command === "labels") {
266
- if (subcommand === "list" || !subcommand) {
267
- const labels = await listLabels(accessToken);
268
- if (outputFormat === "json") {
269
- console.log(JSON.stringify(labels, null, 2));
270
- } else {
271
- console.log(formatLabelsText(labels));
272
- }
273
- return;
274
- }
275
-
276
- if (subcommand === "create") {
277
- const labelName = positionals[2];
278
- if (!labelName) {
279
- console.error("Error: Label name is required");
280
- console.error("Usage: labels create <name>");
281
- process.exit(1);
282
- }
283
-
284
- const label = await createLabel(accessToken, labelName);
285
- if (outputFormat === "json") {
286
- console.log(JSON.stringify(label, null, 2));
287
- } else {
288
- console.log(`Label created successfully!`);
289
- console.log(` ID: ${label.id}`);
290
- console.log(` Name: ${label.name}`);
291
- }
292
- return;
293
- }
294
-
295
- if (subcommand === "delete") {
296
- const labelId = positionals[2];
297
- if (!labelId) {
298
- console.error("Error: Label ID is required");
299
- console.error("Usage: labels delete <label-id>");
300
- process.exit(1);
301
- }
302
-
303
- await deleteLabel(accessToken, labelId);
304
- if (outputFormat === "json") {
305
- console.log(JSON.stringify({ success: true, labelId }, null, 2));
306
- } else {
307
- console.log(`Label deleted successfully: ${labelId}`);
308
- }
309
- return;
310
- }
311
-
312
- console.error(`Unknown labels subcommand: ${subcommand}`);
313
- process.exit(1);
314
- }
315
-
316
- // Message modification commands
317
- const messageIds = values.message ? parseMessageIds(values.message as string) : [];
318
-
319
- if (messageIds.length === 0 && ["apply", "remove", "archive", "unarchive", "trash", "untrash", "mark-read", "mark-unread", "star", "unstar"].includes(command)) {
320
- console.error("Error: --message is required");
321
- process.exit(1);
322
- }
323
-
324
- switch (command) {
325
- case "apply": {
326
- const labelId = values.label as string;
327
- if (!labelId) {
328
- console.error("Error: --label is required for apply command");
329
- process.exit(1);
330
- }
331
-
332
- if (messageIds.length === 1) {
333
- await modifyMessage(accessToken, messageIds[0], { addLabelIds: [labelId] });
334
- } else {
335
- await batchModifyMessages(accessToken, messageIds, { addLabelIds: [labelId] });
336
- }
337
-
338
- if (outputFormat === "json") {
339
- console.log(JSON.stringify({ success: true, action: "apply", labelId, messageIds }, null, 2));
340
- } else {
341
- console.log(`Successfully applied label to ${messageIds.length} message(s)`);
342
- messageIds.forEach((id) => console.log(` - ${id}`));
343
- }
344
- break;
345
- }
346
-
347
- case "remove": {
348
- const labelId = values.label as string;
349
- if (!labelId) {
350
- console.error("Error: --label is required for remove command");
351
- process.exit(1);
352
- }
353
-
354
- if (messageIds.length === 1) {
355
- await modifyMessage(accessToken, messageIds[0], { removeLabelIds: [labelId] });
356
- } else {
357
- await batchModifyMessages(accessToken, messageIds, { removeLabelIds: [labelId] });
358
- }
359
-
360
- if (outputFormat === "json") {
361
- console.log(JSON.stringify({ success: true, action: "remove", labelId, messageIds }, null, 2));
362
- } else {
363
- console.log(`Successfully removed label from ${messageIds.length} message(s)`);
364
- messageIds.forEach((id) => console.log(` - ${id}`));
365
- }
366
- break;
367
- }
368
-
369
- case "archive": {
370
- if (messageIds.length === 1) {
371
- await modifyMessage(accessToken, messageIds[0], { removeLabelIds: ["INBOX"] });
372
- } else {
373
- await batchModifyMessages(accessToken, messageIds, { removeLabelIds: ["INBOX"] });
374
- }
375
-
376
- if (outputFormat === "json") {
377
- console.log(JSON.stringify({ success: true, action: "archive", messageIds }, null, 2));
378
- } else {
379
- console.log(`Successfully archived ${messageIds.length} message(s)`);
380
- messageIds.forEach((id) => console.log(` - ${id}`));
381
- }
382
- break;
383
- }
384
-
385
- case "unarchive": {
386
- if (messageIds.length === 1) {
387
- await modifyMessage(accessToken, messageIds[0], { addLabelIds: ["INBOX"] });
388
- } else {
389
- await batchModifyMessages(accessToken, messageIds, { addLabelIds: ["INBOX"] });
390
- }
391
-
392
- if (outputFormat === "json") {
393
- console.log(JSON.stringify({ success: true, action: "unarchive", messageIds }, null, 2));
394
- } else {
395
- console.log(`Successfully moved ${messageIds.length} message(s) back to inbox`);
396
- messageIds.forEach((id) => console.log(` - ${id}`));
397
- }
398
- break;
399
- }
400
-
401
- case "trash": {
402
- for (const messageId of messageIds) {
403
- await trashMessage(accessToken, messageId);
404
- }
405
-
406
- if (outputFormat === "json") {
407
- console.log(JSON.stringify({ success: true, action: "trash", messageIds }, null, 2));
408
- } else {
409
- console.log(`Successfully trashed ${messageIds.length} message(s)`);
410
- messageIds.forEach((id) => console.log(` - ${id}`));
411
- }
412
- break;
413
- }
414
-
415
- case "untrash": {
416
- for (const messageId of messageIds) {
417
- await untrashMessage(accessToken, messageId);
418
- }
419
-
420
- if (outputFormat === "json") {
421
- console.log(JSON.stringify({ success: true, action: "untrash", messageIds }, null, 2));
422
- } else {
423
- console.log(`Successfully restored ${messageIds.length} message(s) from trash`);
424
- messageIds.forEach((id) => console.log(` - ${id}`));
425
- }
426
- break;
427
- }
428
-
429
- case "mark-read": {
430
- if (messageIds.length === 1) {
431
- await modifyMessage(accessToken, messageIds[0], { removeLabelIds: ["UNREAD"] });
432
- } else {
433
- await batchModifyMessages(accessToken, messageIds, { removeLabelIds: ["UNREAD"] });
434
- }
435
-
436
- if (outputFormat === "json") {
437
- console.log(JSON.stringify({ success: true, action: "mark-read", messageIds }, null, 2));
438
- } else {
439
- console.log(`Successfully marked ${messageIds.length} message(s) as read`);
440
- messageIds.forEach((id) => console.log(` - ${id}`));
441
- }
442
- break;
443
- }
444
-
445
- case "mark-unread": {
446
- if (messageIds.length === 1) {
447
- await modifyMessage(accessToken, messageIds[0], { addLabelIds: ["UNREAD"] });
448
- } else {
449
- await batchModifyMessages(accessToken, messageIds, { addLabelIds: ["UNREAD"] });
450
- }
451
-
452
- if (outputFormat === "json") {
453
- console.log(JSON.stringify({ success: true, action: "mark-unread", messageIds }, null, 2));
454
- } else {
455
- console.log(`Successfully marked ${messageIds.length} message(s) as unread`);
456
- messageIds.forEach((id) => console.log(` - ${id}`));
457
- }
458
- break;
459
- }
460
-
461
- case "star": {
462
- if (messageIds.length === 1) {
463
- await modifyMessage(accessToken, messageIds[0], { addLabelIds: ["STARRED"] });
464
- } else {
465
- await batchModifyMessages(accessToken, messageIds, { addLabelIds: ["STARRED"] });
466
- }
467
-
468
- if (outputFormat === "json") {
469
- console.log(JSON.stringify({ success: true, action: "star", messageIds }, null, 2));
470
- } else {
471
- console.log(`Successfully starred ${messageIds.length} message(s)`);
472
- messageIds.forEach((id) => console.log(` - ${id}`));
473
- }
474
- break;
475
- }
476
-
477
- case "unstar": {
478
- if (messageIds.length === 1) {
479
- await modifyMessage(accessToken, messageIds[0], { removeLabelIds: ["STARRED"] });
480
- } else {
481
- await batchModifyMessages(accessToken, messageIds, { removeLabelIds: ["STARRED"] });
482
- }
483
-
484
- if (outputFormat === "json") {
485
- console.log(JSON.stringify({ success: true, action: "unstar", messageIds }, null, 2));
486
- } else {
487
- console.log(`Successfully unstarred ${messageIds.length} message(s)`);
488
- messageIds.forEach((id) => console.log(` - ${id}`));
489
- }
490
- break;
491
- }
492
-
493
- default:
494
- console.error(`Unknown command: ${command}`);
495
- showHelp();
496
- process.exit(1);
497
- }
498
- } catch (error) {
499
- console.error(`Error: ${error instanceof Error ? error.message : "Unknown error"}`);
500
- process.exit(1);
501
- }
502
- }
503
-
504
- main();
@@ -1,14 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "ES2022",
5
- "moduleResolution": "bundler",
6
- "esModuleInterop": true,
7
- "strict": true,
8
- "skipLibCheck": true,
9
- "outDir": "dist",
10
- "declaration": true,
11
- "types": ["bun-types"]
12
- },
13
- "include": ["src/**/*", "bin/**/*"]
14
- }
@@ -1,19 +0,0 @@
1
- # skill-merch-mockup-factory
2
-
3
- Merch Mockup Factory skill.
4
-
5
- ## Tech Stack
6
-
7
- - Runtime: Bun
8
- - Language: TypeScript
9
- - CLI: Commander.js
10
-
11
- ## CLI
12
-
13
- ```bash
14
- skill-merch-mockup-factory run
15
- ```
16
-
17
- ## Data Directory
18
-
19
- ~/.skill/skill-merch-mockup-factory/
@@ -1,32 +0,0 @@
1
- {
2
- "name": "@hasnaxyz/skill-merch-mockup-factory",
3
- "version": "0.1.0",
4
- "description": "Merch Mockup Factory skill",
5
- "type": "module",
6
- "bin": {
7
- "skill-merch-mockup-factory": "./bin/cli.ts"
8
- },
9
- "scripts": {
10
- "dev": "bun run bin/cli.ts",
11
- "build": "bun build bin/cli.ts --outdir dist --target node",
12
- "typecheck": "tsc --noEmit"
13
- },
14
- "dependencies": {
15
- "commander": "^13.0.0"
16
- },
17
- "devDependencies": {
18
- "@types/bun": "latest",
19
- "typescript": "^5.7.0"
20
- },
21
- "publishConfig": {
22
- "access": "restricted",
23
- "registry": "https://registry.npmjs.org/"
24
- },
25
- "files": ["bin", "src", "tsconfig.json"],
26
- "repository": {
27
- "type": "git",
28
- "url": "https://github.com/hasnaxyz/skill-merch-mockup-factory.git"
29
- },
30
- "author": "Hasna",
31
- "license": "MIT"
32
- }