@hasna/skills 0.1.26 → 0.1.29

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 (491) hide show
  1. package/LICENSE +1 -10
  2. package/README.md +141 -39
  3. package/bin/index.js +30122 -27575
  4. package/bin/mcp.js +22112 -18593
  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 +11607 -597
  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 +10 -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 +23 -10
  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/package.json +1 -1
  108. package/skills/consolelog/src/index.ts +3 -0
  109. package/skills/contract-review-report/SKILL.md +43 -0
  110. package/skills/contract-review-report/package.json +10 -0
  111. package/skills/convert/SKILL.md +2 -3
  112. package/skills/customer-feedback-report/SKILL.md +44 -0
  113. package/skills/customer-feedback-report/package.json +10 -0
  114. package/skills/dashboard-builder/package.json +3 -1
  115. package/skills/database-explorer/package.json +3 -1
  116. package/skills/deepresearch/README.md +4 -13
  117. package/skills/deploy/src/http-client.ts +1 -1
  118. package/skills/diff-viewer/package.json +4 -1
  119. package/skills/doc-generate/package.json +0 -1
  120. package/skills/doc-generate/src/ai.ts +50 -0
  121. package/skills/doc-generate/src/cli.ts +203 -0
  122. package/skills/doc-generate/src/dependencies.ts +44 -0
  123. package/skills/doc-generate/src/document-builder.ts +299 -0
  124. package/skills/doc-generate/src/index.ts +40 -764
  125. package/skills/doc-generate/src/markdown-parser.ts +125 -0
  126. package/skills/doc-generate/src/types.ts +68 -0
  127. package/skills/domainpurchase/SKILL.md +1 -1
  128. package/skills/domainpurchase/package.json +1 -1
  129. package/skills/domainpurchase/src/index.ts +3 -0
  130. package/skills/domainsearch/SKILL.md +1 -1
  131. package/skills/domainsearch/package.json +1 -1
  132. package/skills/domainsearch/src/index.ts +3 -0
  133. package/skills/email-sequence/SKILL.md +44 -0
  134. package/skills/email-sequence/package.json +14 -0
  135. package/skills/excel/CLAUDE.md +2 -2
  136. package/skills/experiment-power-calculator/package.json +3 -1
  137. package/skills/extract-invoice/src/cli.ts +97 -0
  138. package/skills/extract-invoice/src/extractor.ts +170 -0
  139. package/skills/extract-invoice/src/file-utils.ts +46 -0
  140. package/skills/extract-invoice/src/formatters.ts +144 -0
  141. package/skills/extract-invoice/src/index.ts +44 -629
  142. package/skills/extract-invoice/src/runtime.ts +46 -0
  143. package/skills/extract-invoice/src/types.ts +88 -0
  144. package/skills/folder-tree/package.json +3 -1
  145. package/skills/form-filler/package.json +3 -1
  146. package/skills/generate-api-client/package.json +3 -1
  147. package/skills/generate-api-client/src/generator.ts +47 -0
  148. package/skills/generate-api-client/src/index.ts +3 -777
  149. package/skills/generate-api-client/src/logger.ts +34 -0
  150. package/skills/generate-api-client/src/python-generator.ts +245 -0
  151. package/skills/generate-api-client/src/spec-loader.ts +48 -0
  152. package/skills/generate-api-client/src/type-mappers.ts +79 -0
  153. package/skills/generate-api-client/src/types.ts +76 -0
  154. package/skills/generate-api-client/src/typescript-generator.ts +247 -0
  155. package/skills/generate-book-cover/package.json +3 -1
  156. package/skills/generate-dockerfile/src/cli.ts +78 -0
  157. package/skills/generate-dockerfile/src/dockerfile-templates.ts +392 -0
  158. package/skills/generate-dockerfile/src/index.ts +12 -790
  159. package/skills/generate-dockerfile/src/logger.ts +30 -0
  160. package/skills/generate-dockerfile/src/project-detection.ts +68 -0
  161. package/skills/generate-dockerfile/src/support-files.ts +171 -0
  162. package/skills/generate-dockerfile/src/types.ts +29 -0
  163. package/skills/generate-documentation/src/ai.ts +131 -0
  164. package/skills/generate-documentation/src/cli.ts +71 -0
  165. package/skills/generate-documentation/src/code-parser.ts +300 -0
  166. package/skills/generate-documentation/src/file-processing.ts +182 -0
  167. package/skills/generate-documentation/src/index.ts +13 -753
  168. package/skills/generate-documentation/src/runtime.ts +35 -0
  169. package/skills/generate-documentation/src/types.ts +30 -0
  170. package/skills/generate-env/package.json +3 -1
  171. package/skills/generate-env/src/cli.ts +85 -0
  172. package/skills/generate-env/src/detection.ts +161 -0
  173. package/skills/generate-env/src/env-data.ts +66 -0
  174. package/skills/generate-env/src/generators.ts +240 -0
  175. package/skills/generate-env/src/index.ts +76 -676
  176. package/skills/generate-env/src/runtime.ts +30 -0
  177. package/skills/generate-env/src/types.ts +32 -0
  178. package/skills/generate-favicon/package.json +3 -1
  179. package/skills/generate-mock-data/package.json +3 -1
  180. package/skills/generate-mock-data/src/ai.ts +102 -0
  181. package/skills/generate-mock-data/src/formatters.ts +84 -0
  182. package/skills/generate-mock-data/src/generator.ts +377 -0
  183. package/skills/generate-mock-data/src/index.ts +15 -716
  184. package/skills/generate-mock-data/src/logger.ts +37 -0
  185. package/skills/generate-mock-data/src/presets.ts +110 -0
  186. package/skills/generate-mock-data/src/types.ts +21 -0
  187. package/skills/generate-pr-description/src/ai.ts +144 -0
  188. package/skills/generate-pr-description/src/cli.ts +80 -0
  189. package/skills/generate-pr-description/src/clipboard.ts +30 -0
  190. package/skills/generate-pr-description/src/formatters.ts +231 -0
  191. package/skills/generate-pr-description/src/git.ts +153 -0
  192. package/skills/generate-pr-description/src/index.ts +21 -714
  193. package/skills/generate-pr-description/src/types.ts +49 -0
  194. package/skills/generate-presentation/src/ai-clients.ts +61 -0
  195. package/skills/generate-presentation/src/cli.ts +126 -0
  196. package/skills/generate-presentation/src/index.ts +3 -751
  197. package/skills/generate-presentation/src/logger.ts +67 -0
  198. package/skills/generate-presentation/src/presentation-generator.ts +425 -0
  199. package/skills/generate-presentation/src/runtime.ts +6 -0
  200. package/skills/generate-presentation/src/security.ts +12 -0
  201. package/skills/generate-presentation/src/types.ts +28 -0
  202. package/skills/generate-qrcode/package.json +4 -1
  203. package/skills/generate-regex/package.json +3 -1
  204. package/skills/generate-resume/src/cli.ts +157 -0
  205. package/skills/generate-resume/src/index.ts +13 -917
  206. package/skills/generate-resume/src/parsers.ts +95 -0
  207. package/skills/generate-resume/src/renderers.ts +538 -0
  208. package/skills/generate-resume/src/security.ts +39 -0
  209. package/skills/generate-resume/src/types.ts +86 -0
  210. package/skills/generate-social-posts/src/ai.ts +88 -0
  211. package/skills/generate-social-posts/src/cli.ts +118 -0
  212. package/skills/generate-social-posts/src/exporters.ts +126 -0
  213. package/skills/generate-social-posts/src/generator.ts +130 -0
  214. package/skills/generate-social-posts/src/index.ts +19 -709
  215. package/skills/generate-social-posts/src/platforms.ts +39 -0
  216. package/skills/generate-social-posts/src/runtime.ts +34 -0
  217. package/skills/generate-social-posts/src/source.ts +116 -0
  218. package/skills/generate-social-posts/src/types.ts +58 -0
  219. package/skills/gif-maker/package.json +4 -1
  220. package/skills/github-manager/package.json +3 -1
  221. package/skills/gmail/CLAUDE.md +1 -1
  222. package/skills/highlight-reel-generator/src/index.ts +19 -0
  223. package/skills/hook/src/commands/create.ts +20 -845
  224. package/skills/hook/src/templates/root.ts +196 -0
  225. package/skills/hook/src/templates/source.ts +647 -0
  226. package/skills/http-server/package.json +3 -1
  227. package/skills/icon-pack/README.md +28 -0
  228. package/skills/icon-pack/SKILL.md +23 -0
  229. package/skills/icon-pack/package.json +29 -0
  230. package/skills/{audio → icon-pack}/tsconfig.json +10 -12
  231. package/skills/image/package.json +1 -2
  232. package/skills/implementation-agent/package.json +3 -1
  233. package/skills/implementation-agent/src/ai-generation.ts +225 -0
  234. package/skills/implementation-agent/src/index.ts +3 -960
  235. package/skills/implementation-agent/src/minimist.d.ts +15 -0
  236. package/skills/implementation-agent/src/templates.ts +686 -0
  237. package/skills/implementation-agent/src/types.ts +53 -0
  238. package/skills/implementation-plan/package.json +3 -1
  239. package/skills/implementation-todo/package.json +3 -1
  240. package/skills/invoice/package.json +1 -1
  241. package/skills/invoice/src/index.ts +3 -0
  242. package/skills/invoice-reconciliation/SKILL.md +42 -0
  243. package/skills/invoice-reconciliation/package.json +10 -0
  244. package/skills/landing-page-pack/SKILL.md +47 -0
  245. package/skills/landing-page-pack/package.json +14 -0
  246. package/skills/latex-table-generator/package.json +3 -1
  247. package/skills/logo-design/SKILL.md +25 -44
  248. package/skills/logo-design/package.json +3 -15
  249. package/skills/lorem-generator/package.json +3 -1
  250. package/skills/lorem-generator/src/index.ts +13 -0
  251. package/skills/managehook/package.json +1 -1
  252. package/skills/managehook/src/index.ts +3 -0
  253. package/skills/managemcp/package.json +1 -1
  254. package/skills/managemcp/src/index.ts +3 -0
  255. package/skills/manageskill/package.json +1 -1
  256. package/skills/manageskill/src/index.ts +3 -0
  257. package/skills/markdown-validator/package.json +3 -1
  258. package/skills/markdown-validator/src/index.ts +1 -4
  259. package/skills/market-research-report/SKILL.md +41 -0
  260. package/skills/market-research-report/package.json +10 -0
  261. package/skills/mcp-builder/package.json +4 -1
  262. package/skills/mcp-builder/src/ai-descriptions.ts +37 -0
  263. package/skills/mcp-builder/src/generators.ts +513 -0
  264. package/skills/mcp-builder/src/index.ts +7 -908
  265. package/skills/mcp-builder/src/minimist.d.ts +15 -0
  266. package/skills/mcp-builder/src/naming.ts +12 -0
  267. package/skills/mcp-builder/src/options.ts +170 -0
  268. package/skills/mcp-builder/src/templates.ts +149 -0
  269. package/skills/mcp-builder/src/types.ts +42 -0
  270. package/skills/meeting-pack/SKILL.md +43 -0
  271. package/skills/meeting-pack/package.json +10 -0
  272. package/skills/merge-pdfs/package.json +5 -1
  273. package/skills/migration-plan-pack/SKILL.md +45 -0
  274. package/skills/migration-plan-pack/package.json +10 -0
  275. package/skills/music/package.json +2 -3
  276. package/skills/music-album/SKILL.md +37 -0
  277. package/skills/music-album/package.json +10 -0
  278. package/skills/notion-manager/package.json +3 -1
  279. package/skills/npmpublish/CLAUDE.md +5 -8
  280. package/skills/npmpublish/README.md +5 -26
  281. package/skills/npmpublish/src/index.ts +9 -147
  282. package/skills/one-page-website/SKILL.md +46 -0
  283. package/skills/one-page-website/package.json +10 -0
  284. package/skills/one-page-website/tsconfig.json +8 -0
  285. package/skills/pdf-generate/src/cli.ts +162 -0
  286. package/skills/pdf-generate/src/html.ts +84 -0
  287. package/skills/pdf-generate/src/index.ts +11 -800
  288. package/skills/pdf-generate/src/markdown.ts +27 -0
  289. package/skills/pdf-generate/src/pdf-writer.ts +78 -0
  290. package/skills/pdf-generate/src/runtime.ts +34 -0
  291. package/skills/pdf-generate/src/security.ts +37 -0
  292. package/skills/pdf-generate/src/templates.ts +311 -0
  293. package/skills/pdf-generate/src/types.ts +28 -0
  294. package/skills/pdf-read/SKILL.md +10 -10
  295. package/skills/pdf-to-dataset/SKILL.md +45 -0
  296. package/skills/pdf-to-dataset/package.json +10 -0
  297. package/skills/pdf-to-markdown/SKILL.md +49 -0
  298. package/skills/pdf-to-markdown/package.json +10 -0
  299. package/skills/pdf-to-markdown/tsconfig.json +10 -0
  300. package/skills/performance-audit-report/SKILL.md +42 -0
  301. package/skills/performance-audit-report/package.json +10 -0
  302. package/skills/persona-based-adwriter/src/index.ts +19 -0
  303. package/skills/photo-album/SKILL.md +29 -0
  304. package/skills/photo-album/package.json +9 -0
  305. package/skills/photo-album/tsconfig.json +4 -0
  306. package/skills/pitch-deck/SKILL.md +43 -0
  307. package/skills/pitch-deck/package.json +9 -0
  308. package/skills/playlist-maker/SKILL.md +33 -0
  309. package/skills/playlist-maker/package.json +9 -0
  310. package/skills/playlist-maker/tsconfig.json +4 -0
  311. package/skills/product-mockup/SKILL.md +45 -0
  312. package/skills/product-mockup/package.json +3 -20
  313. package/skills/product-mockup/tsconfig.json +3 -5
  314. package/skills/project-retro-companion/src/index.ts +19 -0
  315. package/skills/proposal-pack/SKILL.md +45 -0
  316. package/skills/proposal-pack/package.json +10 -0
  317. package/skills/read-pdf/SKILL.md +5 -4
  318. package/skills/repo-onboarding-report/SKILL.md +42 -0
  319. package/skills/repo-onboarding-report/package.json +10 -0
  320. package/skills/sales-call-recapper/src/index.ts +20 -0
  321. package/skills/salescopy/package.json +1 -1
  322. package/skills/salescopy/src/index.ts +3 -0
  323. package/skills/scaffold-project/src/ai-detect.ts +136 -0
  324. package/skills/scaffold-project/src/file-generators.ts +292 -0
  325. package/skills/scaffold-project/src/index.ts +8 -991
  326. package/skills/scaffold-project/src/project-config.ts +338 -0
  327. package/skills/scaffold-project/src/templates.ts +173 -0
  328. package/skills/scaffold-project/src/types.ts +58 -0
  329. package/skills/scientific-figure-check/package.json +3 -1
  330. package/skills/sdk-generator/SKILL.md +45 -0
  331. package/skills/sdk-generator/package.json +10 -0
  332. package/skills/sdk-generator/tsconfig.json +8 -0
  333. package/skills/security-audit/src/index.ts +25 -6
  334. package/skills/security-audit-report/SKILL.md +40 -0
  335. package/skills/security-audit-report/package.json +10 -0
  336. package/skills/seo-content-pack/SKILL.md +44 -0
  337. package/skills/seo-content-pack/package.json +9 -0
  338. package/skills/short-video-pack/SKILL.md +30 -0
  339. package/skills/short-video-pack/package.json +10 -0
  340. package/skills/slack-assistant/package.json +3 -1
  341. package/skills/slide-deck-generator/SKILL.md +44 -0
  342. package/skills/slide-deck-generator/package.json +10 -0
  343. package/skills/sms/package.json +1 -1
  344. package/skills/sms/src/index.ts +15 -0
  345. package/skills/social-content-calendar/SKILL.md +45 -0
  346. package/skills/social-content-calendar/package.json +14 -0
  347. package/skills/split-pdf/package.json +4 -1
  348. package/skills/subtitle/package.json +2 -1
  349. package/skills/subtitle/src/index.ts +3 -0
  350. package/skills/terraform-generator/package.json +3 -1
  351. package/skills/test-suite-generator/SKILL.md +41 -0
  352. package/skills/test-suite-generator/package.json +10 -0
  353. package/skills/timesheet/package.json +1 -1
  354. package/skills/timesheet/src/index.ts +3 -0
  355. package/skills/transcript/SKILL.md +1 -8
  356. package/skills/validate-config/package.json +3 -1
  357. package/skills/video/package.json +6 -4
  358. package/skills/video-downloader/package.json +3 -1
  359. package/skills/video-highlight-pack/SKILL.md +44 -0
  360. package/skills/video-highlight-pack/package.json +10 -0
  361. package/skills/voiceover-jingle-pack/SKILL.md +28 -0
  362. package/skills/voiceover-jingle-pack/package.json +10 -0
  363. package/skills/watermark/package.json +6 -1
  364. package/skills/webcrawling/package.json +2 -1
  365. package/skills/write/SKILL.md +6 -6
  366. package/dist/server/serve.d.ts +0 -11
  367. package/skills/apidocs/.claude/settings.json +0 -5
  368. package/skills/audio/.env.example +0 -14
  369. package/skills/audio/QUICKSTART.md +0 -158
  370. package/skills/audio/README.md +0 -256
  371. package/skills/audio/src/index-local.ts +0 -206
  372. package/skills/audio/src/index.ts +0 -95
  373. package/skills/audio/src/providers/elevenlabs.ts +0 -115
  374. package/skills/audio/src/providers/google.ts +0 -116
  375. package/skills/audio/src/providers/minimax.ts +0 -83
  376. package/skills/audio/src/providers/openai.ts +0 -115
  377. package/skills/audio/src/types.ts +0 -79
  378. package/skills/audiobook-chapter-proofer/CLAUDE.md +0 -19
  379. package/skills/audiobook-chapter-proofer/package.json +0 -27
  380. package/skills/audiobook-chapter-proofer/src/index.ts +0 -285
  381. package/skills/browse/src/client.ts +0 -373
  382. package/skills/browse/src/index-local.ts +0 -430
  383. package/skills/browse/src/index.ts +0 -110
  384. package/skills/browse/src/sse-server.ts +0 -919
  385. package/skills/browse/src/types.ts +0 -104
  386. package/skills/consolelog/src/server/index.ts +0 -508
  387. package/skills/create-blog-article/CLAUDE.md +0 -19
  388. package/skills/create-blog-article/src/index.ts +0 -745
  389. package/skills/create-blog-article/tsconfig.json +0 -10
  390. package/skills/deepresearch/src/agents/query-generator.ts +0 -91
  391. package/skills/deepresearch/src/agents/synthesizer.ts +0 -111
  392. package/skills/deepresearch/src/index.ts +0 -224
  393. package/skills/deepresearch/src/research.ts +0 -166
  394. package/skills/deepresearch/src/services/anthropic.ts +0 -69
  395. package/skills/deepresearch/src/services/exa.ts +0 -108
  396. package/skills/deepresearch/src/services/firecrawl.ts +0 -88
  397. package/skills/deepresearch/src/services/openai.ts +0 -81
  398. package/skills/deepresearch/src/types.ts +0 -76
  399. package/skills/deepresearch/src/utils/file.ts +0 -111
  400. package/skills/deepresearch/src/utils/logger.ts +0 -84
  401. package/skills/domainpurchase/src/server/index.ts +0 -332
  402. package/skills/domainsearch/src/server/index.ts +0 -229
  403. package/skills/e2bswarm/README.md +0 -135
  404. package/skills/e2bswarm/SKILL.md +0 -118
  405. package/skills/e2bswarm/examples/tasks-example.json +0 -38
  406. package/skills/e2bswarm/package.json +0 -59
  407. package/skills/e2bswarm/src/commands/collect.ts +0 -135
  408. package/skills/e2bswarm/src/commands/install.ts +0 -164
  409. package/skills/e2bswarm/src/commands/kill.ts +0 -62
  410. package/skills/e2bswarm/src/commands/spawn.ts +0 -134
  411. package/skills/e2bswarm/src/commands/status.ts +0 -90
  412. package/skills/e2bswarm/src/commands/sync.ts +0 -208
  413. package/skills/e2bswarm/src/index.ts +0 -121
  414. package/skills/e2bswarm/src/lib/config.ts +0 -75
  415. package/skills/e2bswarm/src/lib/e2b.ts +0 -490
  416. package/skills/e2bswarm/src/lib/github.ts +0 -253
  417. package/skills/e2bswarm/src/lib/logger.ts +0 -41
  418. package/skills/e2bswarm/src/lib/paths.ts +0 -75
  419. package/skills/e2bswarm/src/lib/tasks.ts +0 -320
  420. package/skills/e2bswarm/src/types/index.ts +0 -107
  421. package/skills/e2bswarm/templates/codebox/e2b.Dockerfile +0 -38
  422. package/skills/e2bswarm/templates/codebox/e2b.toml +0 -3
  423. package/skills/e2bswarm/templates/setup.sh +0 -21
  424. package/skills/e2bswarm/tsconfig.json +0 -19
  425. package/skills/generate-book-cover/src/index.ts +0 -694
  426. package/skills/image/src/index-local.ts +0 -206
  427. package/skills/image/src/index.ts +0 -96
  428. package/skills/image/src/providers/google.ts +0 -79
  429. package/skills/image/src/providers/minimax.ts +0 -94
  430. package/skills/image/src/providers/openai.ts +0 -80
  431. package/skills/image/src/providers/xai.ts +0 -73
  432. package/skills/image/src/types.ts +0 -37
  433. package/skills/logo-design/CLAUDE.md +0 -30
  434. package/skills/logo-design/src/index.ts +0 -322
  435. package/skills/managehook/src/server/index.ts +0 -108
  436. package/skills/managemcp/src/server/index.ts +0 -108
  437. package/skills/manageskill/src/server/index.ts +0 -108
  438. package/skills/music/CLAUDE.md +0 -9
  439. package/skills/music/src/index.ts +0 -94
  440. package/skills/music/tsconfig.json +0 -10
  441. package/skills/pdf-read/src/index.ts +0 -320
  442. package/skills/product-mockup/CLAUDE.md +0 -19
  443. package/skills/product-mockup/src/index.ts +0 -290
  444. package/skills/read-pdf/src/index.ts +0 -388
  445. package/skills/remove-background/src/index.ts +0 -405
  446. package/skills/scaffold-project/my-app/.env.example +0 -2
  447. package/skills/scaffold-project/my-app/README.md +0 -72
  448. package/skills/scaffold-project/my-app/package.json +0 -29
  449. package/skills/scaffold-project/my-app/src/index.ts +0 -23
  450. package/skills/scaffold-project/my-app/tsconfig.json +0 -33
  451. package/skills/sound-effects/SKILL.md +0 -34
  452. package/skills/sound-effects/package.json +0 -21
  453. package/skills/sound-effects/src/index.ts +0 -172
  454. package/skills/sound-effects/tsconfig.json +0 -8
  455. package/skills/transcript/src/chunker.ts +0 -215
  456. package/skills/transcript/src/formatter.ts +0 -134
  457. package/skills/transcript/src/index-local.ts +0 -226
  458. package/skills/transcript/src/index.ts +0 -110
  459. package/skills/transcript/src/providers/elevenlabs.ts +0 -133
  460. package/skills/transcript/src/providers/gemini.ts +0 -192
  461. package/skills/transcript/src/providers/index.ts +0 -54
  462. package/skills/transcript/src/providers/openai.ts +0 -203
  463. package/skills/transcript/src/types.ts +0 -106
  464. package/skills/video/.env.example +0 -14
  465. package/skills/video/EXAMPLES.md +0 -266
  466. package/skills/video/LICENSE +0 -192
  467. package/skills/video/README.md +0 -174
  468. package/skills/video/src/cli.ts +0 -155
  469. package/skills/video/src/index-local.ts +0 -148
  470. package/skills/video/src/index.ts +0 -96
  471. package/skills/video/src/providers/google-veo.ts +0 -126
  472. package/skills/video/src/providers/index.ts +0 -22
  473. package/skills/video/src/providers/minimax.ts +0 -100
  474. package/skills/video/src/providers/openai-sora.ts +0 -164
  475. package/skills/video/src/providers/runway.ts +0 -159
  476. package/skills/video/src/types.ts +0 -35
  477. package/skills/video/tsconfig.json +0 -22
  478. package/skills/voiceover-casting-assistant/CLAUDE.md +0 -19
  479. package/skills/voiceover-casting-assistant/package.json +0 -27
  480. package/skills/voiceover-casting-assistant/src/index.ts +0 -255
  481. package/skills/voiceover-casting-assistant/tsconfig.json +0 -10
  482. package/skills/webcrawling/src/commands/config.ts +0 -34
  483. package/skills/webcrawling/src/commands/crawl.ts +0 -33
  484. package/skills/webcrawling/src/commands/scrape.ts +0 -32
  485. package/skills/webcrawling/src/commands/sessions.ts +0 -42
  486. package/skills/webcrawling/src/lib/crawler.ts +0 -174
  487. package/skills/webcrawling/src/lib/storage.ts +0 -130
  488. package/skills/webcrawling/src/types/index.ts +0 -45
  489. package/skills/webcrawling/src/utils/logger.ts +0 -30
  490. package/skills/webcrawling/src/utils/paths.ts +0 -28
  491. /package/skills/{audiobook-chapter-proofer → blog-article}/tsconfig.json +0 -0
@@ -1,203 +0,0 @@
1
- /**
2
- * OpenAI Whisper Provider
3
- * Industry-standard speech-to-text with automatic chunking for large files
4
- */
5
-
6
- import type {
7
- TranscriptionProvider,
8
- TranscriptionOptions,
9
- TranscriptionResult,
10
- TranscriptionSegment,
11
- OpenAITranscriptionResponse
12
- } from '../types';
13
- import {
14
- needsChunking,
15
- splitAudioFile,
16
- mergeTranscriptions,
17
- cleanupChunks,
18
- compressAudio,
19
- getFileSize
20
- } from '../chunker';
21
- import { dirname, join, basename, extname } from 'path';
22
-
23
- // OpenAI Whisper has a 25MB limit
24
- const MAX_FILE_SIZE = 25 * 1024 * 1024; // 25MB
25
-
26
- export class OpenAIProvider implements TranscriptionProvider {
27
- name = 'OpenAI Whisper';
28
- maxFileSize = MAX_FILE_SIZE;
29
- supportedFormats = ['mp3', 'mp4', 'mpeg', 'mpga', 'm4a', 'wav', 'webm'];
30
-
31
- private apiKey: string;
32
- private baseUrl = 'https://api.openai.com/v1';
33
-
34
- constructor() {
35
- const apiKey = process.env.OPENAI_API_KEY;
36
- if (!apiKey) {
37
- throw new Error('OPENAI_API_KEY environment variable is required');
38
- }
39
- this.apiKey = apiKey;
40
- }
41
-
42
- async transcribe(options: TranscriptionOptions): Promise<TranscriptionResult> {
43
- const {
44
- input,
45
- language,
46
- model = 'whisper-1',
47
- timestamps = true
48
- } = options;
49
-
50
- console.log(`[OpenAI] Transcribing: ${input}`);
51
- console.log(`[OpenAI] Model: ${model}`);
52
-
53
- // Check if file needs chunking
54
- const fileSize = await getFileSize(input);
55
- console.log(`[OpenAI] File size: ${(fileSize / 1024 / 1024).toFixed(2)}MB`);
56
-
57
- if (fileSize > this.maxFileSize) {
58
- console.log(`[OpenAI] File exceeds 25MB limit, chunking required`);
59
- return this.transcribeWithChunking(options);
60
- }
61
-
62
- return this.transcribeSingle(options);
63
- }
64
-
65
- private async transcribeSingle(options: TranscriptionOptions): Promise<TranscriptionResult> {
66
- const {
67
- input,
68
- language,
69
- model = 'whisper-1',
70
- timestamps = true
71
- } = options;
72
-
73
- // Read the file
74
- const file = Bun.file(input);
75
- const fileBuffer = await file.arrayBuffer();
76
-
77
- // Create form data
78
- const formData = new FormData();
79
- formData.append('file', new Blob([fileBuffer]), input.split('/').pop());
80
- formData.append('model', model);
81
- formData.append('response_format', timestamps ? 'verbose_json' : 'json');
82
-
83
- if (language) {
84
- formData.append('language', language);
85
- }
86
-
87
- if (timestamps) {
88
- formData.append('timestamp_granularities[]', 'segment');
89
- formData.append('timestamp_granularities[]', 'word');
90
- }
91
-
92
- const response = await fetch(`${this.baseUrl}/audio/transcriptions`, {
93
- method: 'POST',
94
- headers: {
95
- 'Authorization': `Bearer ${this.apiKey}`
96
- },
97
- body: formData
98
- });
99
-
100
- if (!response.ok) {
101
- const error = await response.text();
102
- throw new Error(`OpenAI transcription failed: ${error}`);
103
- }
104
-
105
- const data = await response.json() as OpenAITranscriptionResponse;
106
- console.log(`[OpenAI] Transcription complete`);
107
-
108
- return this.formatResult(data, model);
109
- }
110
-
111
- private async transcribeWithChunking(options: TranscriptionOptions): Promise<TranscriptionResult> {
112
- const { input, model = 'whisper-1' } = options;
113
- const outputDir = dirname(input);
114
-
115
- // First try compression
116
- const compressedPath = join(outputDir, `.compressed_${basename(input, extname(input))}.ogg`);
117
-
118
- try {
119
- console.log('[OpenAI] Attempting compression first...');
120
- await compressAudio(input, compressedPath, '32k');
121
- const compressedSize = await getFileSize(compressedPath);
122
-
123
- if (compressedSize <= this.maxFileSize) {
124
- console.log('[OpenAI] Compressed file is under 25MB, transcribing directly');
125
- const result = await this.transcribeSingle({
126
- ...options,
127
- input: compressedPath
128
- });
129
-
130
- // Cleanup compressed file
131
- await Bun.write(compressedPath, '').catch(() => {});
132
-
133
- return result;
134
- }
135
- } catch {
136
- console.log('[OpenAI] Compression failed or still too large, falling back to chunking');
137
- }
138
-
139
- // Split into chunks
140
- const chunks = await splitAudioFile(input, outputDir);
141
- const transcriptions: string[] = [];
142
- const allSegments: TranscriptionSegment[] = [];
143
-
144
- try {
145
- // Process chunks sequentially to maintain order
146
- for (const chunk of chunks) {
147
- console.log(`[OpenAI] Processing chunk ${chunk.index + 1}/${chunks.length}`);
148
-
149
- const result = await this.transcribeSingle({
150
- ...options,
151
- input: chunk.path
152
- });
153
-
154
- transcriptions.push(result.text);
155
-
156
- // Adjust segment timestamps based on chunk start time
157
- if (result.segments) {
158
- for (const segment of result.segments) {
159
- allSegments.push({
160
- ...segment,
161
- id: allSegments.length,
162
- start: segment.start + chunk.startTime,
163
- end: segment.end + chunk.startTime
164
- });
165
- }
166
- }
167
- }
168
-
169
- // Merge transcriptions
170
- const mergedText = mergeTranscriptions(transcriptions);
171
-
172
- return {
173
- text: mergedText,
174
- segments: allSegments.length > 0 ? allSegments : undefined,
175
- model,
176
- provider: 'openai'
177
- };
178
- } finally {
179
- // Cleanup chunks
180
- const chunkDir = join(outputDir, '.chunks');
181
- await cleanupChunks(chunkDir);
182
- }
183
- }
184
-
185
- private formatResult(data: OpenAITranscriptionResponse, model: string): TranscriptionResult {
186
- const segments: TranscriptionSegment[] = data.segments?.map((seg, i) => ({
187
- id: i,
188
- start: seg.start,
189
- end: seg.end,
190
- text: seg.text.trim(),
191
- confidence: 1 - seg.no_speech_prob
192
- })) || [];
193
-
194
- return {
195
- text: data.text,
196
- segments: segments.length > 0 ? segments : undefined,
197
- duration: data.duration,
198
- language: data.language,
199
- model,
200
- provider: 'openai'
201
- };
202
- }
203
- }
@@ -1,106 +0,0 @@
1
- /**
2
- * Types for transcript
3
- * Audio/video transcription with automatic chunking
4
- */
5
-
6
- export type Provider = 'elevenlabs' | 'openai' | 'gemini';
7
-
8
- export interface TranscriptionOptions {
9
- input: string;
10
- output?: string;
11
- provider: Provider;
12
- language?: string;
13
- model?: string;
14
- diarize?: boolean; // Speaker diarization
15
- timestamps?: boolean;
16
- format?: 'text' | 'srt' | 'vtt' | 'json';
17
- }
18
-
19
- export interface TranscriptionResult {
20
- text: string;
21
- segments?: TranscriptionSegment[];
22
- speakers?: Speaker[];
23
- duration?: number;
24
- language?: string;
25
- model?: string;
26
- provider: Provider;
27
- }
28
-
29
- export interface TranscriptionSegment {
30
- id: number;
31
- start: number;
32
- end: number;
33
- text: string;
34
- speaker?: string;
35
- confidence?: number;
36
- }
37
-
38
- export interface Speaker {
39
- id: string;
40
- name?: string;
41
- segments: number[];
42
- }
43
-
44
- export interface ChunkInfo {
45
- index: number;
46
- startTime: number;
47
- endTime: number;
48
- path: string;
49
- size: number;
50
- }
51
-
52
- export interface TranscriptionProvider {
53
- name: string;
54
- maxFileSize: number; // in bytes
55
- supportedFormats: string[];
56
- transcribe(options: TranscriptionOptions): Promise<TranscriptionResult>;
57
- }
58
-
59
- // Provider-specific response types
60
- export interface ElevenLabsResponse {
61
- text: string;
62
- words?: Array<{
63
- word: string;
64
- start: number;
65
- end: number;
66
- speaker?: string;
67
- }>;
68
- speakers?: Array<{
69
- speaker_id: string;
70
- name?: string;
71
- }>;
72
- }
73
-
74
- export interface OpenAITranscriptionResponse {
75
- text: string;
76
- task?: string;
77
- language?: string;
78
- duration?: number;
79
- segments?: Array<{
80
- id: number;
81
- seek: number;
82
- start: number;
83
- end: number;
84
- text: string;
85
- tokens: number[];
86
- temperature: number;
87
- avg_logprob: number;
88
- compression_ratio: number;
89
- no_speech_prob: number;
90
- }>;
91
- words?: Array<{
92
- word: string;
93
- start: number;
94
- end: number;
95
- }>;
96
- }
97
-
98
- export interface GeminiResponse {
99
- candidates: Array<{
100
- content: {
101
- parts: Array<{
102
- text: string;
103
- }>;
104
- };
105
- }>;
106
- }
@@ -1,14 +0,0 @@
1
- # Google Veo 2 (Vertex AI)
2
- # Option 1: Use API key
3
- GOOGLE_API_KEY=your_google_api_key_here
4
-
5
- # Option 2: Use service account
6
- GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
7
- GOOGLE_CLOUD_PROJECT=your-project-id
8
- GOOGLE_CLOUD_LOCATION=us-central1
9
-
10
- # OpenAI Sora
11
- OPENAI_API_KEY=your_openai_api_key_here
12
-
13
- # Runway
14
- RUNWAY_API_KEY=your_runway_api_key_here
@@ -1,266 +0,0 @@
1
- # Video Generation Examples
2
-
3
- This document provides real-world examples for using the video generation skill.
4
-
5
- ## Quick Start
6
-
7
- ### 1. Basic Video Generation
8
-
9
- ```bash
10
- # Simple prompt with Runway (fastest)
11
- bun run src/index.ts generate \
12
- --provider runway \
13
- --prompt "a dog running through a field" \
14
- --output ./dog.mp4
15
- ```
16
-
17
- ### 2. Check Status
18
-
19
- ```bash
20
- # After generation starts, check status with the returned job ID
21
- bun run src/index.ts status \
22
- --provider runway \
23
- --job-id <your-job-id>
24
- ```
25
-
26
- ## Provider-Specific Examples
27
-
28
- ### Google Veo 2 - Cinematic Videos
29
-
30
- ```bash
31
- # Wide-angle landscape shot
32
- bun run src/index.ts generate \
33
- --provider google \
34
- --prompt "wide-angle shot of misty mountains at dawn, slow camera dolly forward" \
35
- --resolution 4k \
36
- --duration 5 \
37
- --output ./mountains.mp4
38
-
39
- # Close-up with specific lens
40
- bun run src/index.ts generate \
41
- --provider google \
42
- --prompt "macro lens close-up of water droplets on a leaf, shallow depth of field" \
43
- --resolution 1080p \
44
- --output ./droplets.mp4
45
-
46
- # Camera movement
47
- bun run src/index.ts generate \
48
- --provider google \
49
- --prompt "drone shot flying over a forest, ascending movement, golden hour lighting" \
50
- --resolution 4k \
51
- --output ./forest-drone.mp4
52
- ```
53
-
54
- ### OpenAI Sora - Creative Scenes
55
-
56
- ```bash
57
- # Stylized animation
58
- bun run src/index.ts generate \
59
- --provider openai \
60
- --prompt "a person walking through a neon-lit cyberpunk city at night" \
61
- --resolution 1080p \
62
- --output ./cyberpunk.mp4
63
-
64
- # Natural scene
65
- bun run src/index.ts generate \
66
- --provider openai \
67
- --prompt "waves crashing on a beach during sunset, slow motion" \
68
- --duration 8 \
69
- --output ./waves.mp4
70
- ```
71
-
72
- ### Runway - Fast Generation
73
-
74
- ```bash
75
- # Product shot
76
- bun run src/index.ts generate \
77
- --provider runway \
78
- --prompt "rotating product shot of a modern smartphone on a clean white background" \
79
- --aspect-ratio 1:1 \
80
- --output ./product.mp4
81
-
82
- # Social media content (vertical)
83
- bun run src/index.ts generate \
84
- --provider runway \
85
- --prompt "coffee being poured into a cup, steam rising" \
86
- --aspect-ratio 9:16 \
87
- --duration 5 \
88
- --output ./coffee-vertical.mp4
89
-
90
- # Landscape (horizontal)
91
- bun run src/index.ts generate \
92
- --provider runway \
93
- --prompt "time-lapse of clouds moving over a city skyline" \
94
- --aspect-ratio 16:9 \
95
- --duration 10 \
96
- --output ./timelapse.mp4
97
- ```
98
-
99
- ## Advanced Techniques
100
-
101
- ### High-Quality Cinematic Prompts (Google Veo 2)
102
-
103
- Google Veo 2 understands professional cinematography terms. Use these for better results:
104
-
105
- ```bash
106
- # Lens types
107
- - "wide-angle lens"
108
- - "telephoto lens"
109
- - "macro lens"
110
- - "fisheye lens"
111
-
112
- # Camera movements
113
- - "dolly forward/backward"
114
- - "pan left/right"
115
- - "tilt up/down"
116
- - "crane shot"
117
- - "steadicam tracking shot"
118
- - "drone shot ascending/descending"
119
-
120
- # Depth of field
121
- - "shallow depth of field" (blurred background)
122
- - "deep depth of field" (everything in focus)
123
-
124
- # Lighting
125
- - "golden hour lighting"
126
- - "blue hour"
127
- - "hard lighting"
128
- - "soft diffused lighting"
129
- - "rim lighting"
130
- - "dramatic side lighting"
131
- ```
132
-
133
- Example combining multiple techniques:
134
-
135
- ```bash
136
- bun run src/index.ts generate \
137
- --provider google \
138
- --prompt "telephoto lens shot of a bird in flight, shallow depth of field with blurred background, golden hour warm lighting, slow-motion, tracking camera movement following the bird" \
139
- --resolution 4k \
140
- --duration 5 \
141
- --output ./bird-cinematic.mp4
142
- ```
143
-
144
- ### Aspect Ratios for Different Platforms
145
-
146
- ```bash
147
- # Instagram Stories / TikTok (vertical)
148
- --aspect-ratio 9:16
149
-
150
- # YouTube / Standard video (horizontal)
151
- --aspect-ratio 16:9
152
-
153
- # Instagram Feed (square)
154
- --aspect-ratio 1:1
155
- ```
156
-
157
- ### Resolution Guidelines
158
-
159
- ```bash
160
- # Web preview / draft
161
- --resolution 720p
162
-
163
- # Standard quality / social media
164
- --resolution 1080p
165
-
166
- # High quality / professional (Google Veo 2)
167
- --resolution 4k
168
- ```
169
-
170
- ## Workflow Examples
171
-
172
- ### Complete Workflow with Status Checking
173
-
174
- ```bash
175
- # 1. Start generation
176
- bun run src/index.ts generate \
177
- --provider runway \
178
- --prompt "ocean sunset with sailboat" \
179
- --output ./sunset.mp4
180
-
181
- # Output: Job ID: runway_1234567890_abc
182
-
183
- # 2. Check status (wait 10-30 seconds between checks)
184
- bun run src/index.ts status \
185
- --provider runway \
186
- --job-id runway_1234567890_abc
187
-
188
- # 3. Video automatically downloads when complete
189
- ```
190
-
191
- ### Batch Generation
192
-
193
- ```bash
194
- # Generate multiple videos with different prompts
195
- for prompt in "forest path" "city street" "ocean waves"; do
196
- bun run src/index.ts generate \
197
- --provider runway \
198
- --prompt "$prompt" \
199
- --output "./${prompt// /-}.mp4"
200
- done
201
- ```
202
-
203
- ## Tips for Best Results
204
-
205
- 1. **Be Specific**: More detailed prompts yield better results
206
- - Bad: "a car"
207
- - Good: "a red sports car driving on a coastal highway at sunset"
208
-
209
- 2. **Describe Motion**: Explicitly mention the action or movement
210
- - "person walking slowly"
211
- - "camera panning across the scene"
212
- - "leaves falling gently"
213
-
214
- 3. **Set the Scene**: Include environment and lighting details
215
- - "in a modern office with natural window light"
216
- - "at night with neon signs"
217
- - "during golden hour with warm tones"
218
-
219
- 4. **Duration**: Start with 5 seconds, increase if needed
220
- - Short videos (3-5s) generate faster
221
- - Longer videos (8-10s) allow more complex scenes
222
-
223
- 5. **Resolution**: Match your use case
224
- - Social media: 1080p is sufficient
225
- - Professional work: 4k if available
226
-
227
- ## Troubleshooting
228
-
229
- ### Generation Takes Too Long
230
- - Try a shorter duration (3-5 seconds)
231
- - Use a different provider (Runway is typically fastest)
232
- - Simplify your prompt
233
-
234
- ### Video Quality Issues
235
- - Increase resolution to 1080p or 4k
236
- - Add lighting details to your prompt
237
- - For Google Veo 2, add cinematography terms
238
-
239
- ### API Errors
240
- - Check your API keys in `.env`
241
- - Verify API access for your provider
242
- - Check rate limits (wait and retry)
243
-
244
- ## Getting API Keys
245
-
246
- ### Google Veo 2
247
- 1. Go to [Google Cloud Console](https://console.cloud.google.com)
248
- 2. Enable Vertex AI API
249
- 3. Create service account or API key
250
- 4. Set `GOOGLE_CLOUD_PROJECT` environment variable
251
-
252
- ### OpenAI Sora
253
- 1. Join the [OpenAI API waitlist](https://openai.com/sora)
254
- 2. Note: API access may be limited
255
-
256
- ### Runway
257
- 1. Sign up at [Runway](https://runwayml.com)
258
- 2. Generate API key from dashboard
259
- 3. Check [API documentation](https://docs.runwayml.com)
260
-
261
- ## Support
262
-
263
- For issues or questions:
264
- - Check the README.md for setup instructions
265
- - Review SKILL.md for skill details
266
- - Verify your API keys and environment variables