@hienlh/ppm 0.9.81 → 0.9.82

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 (1736) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/CLAUDE.md +12 -0
  3. package/assets/skills/ppm-guide/SKILL.md +61 -0
  4. package/bun.lock +9 -1
  5. package/dist/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  6. package/dist/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  7. package/dist/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  8. package/dist/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  9. package/dist/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  10. package/dist/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  11. package/dist/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  12. package/dist/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  13. package/dist/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  14. package/dist/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  15. package/dist/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  16. package/dist/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  17. package/dist/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  18. package/dist/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  19. package/dist/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  20. package/dist/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  21. package/dist/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  22. package/dist/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  23. package/dist/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  24. package/dist/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  25. package/dist/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  26. package/dist/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  27. package/dist/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  28. package/dist/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  29. package/dist/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  30. package/dist/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  31. package/dist/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  32. package/dist/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  33. package/dist/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  34. package/dist/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  35. package/dist/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  36. package/dist/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  37. package/dist/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  38. package/dist/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  39. package/dist/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  40. package/dist/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  41. package/dist/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  42. package/dist/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  43. package/dist/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  44. package/dist/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  45. package/dist/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  46. package/dist/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  47. package/dist/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  48. package/dist/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  49. package/dist/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  50. package/dist/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  51. package/dist/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  52. package/dist/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  53. package/dist/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  54. package/dist/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  55. package/dist/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  56. package/dist/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  57. package/dist/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  58. package/dist/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  59. package/dist/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  60. package/dist/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  61. package/dist/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  62. package/dist/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  63. package/dist/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  64. package/dist/web/assets/chat-tab-bS86TsT5.js +10 -0
  65. package/dist/web/assets/{code-editor-CKhVVTIi.js → code-editor-BaNaQ33b.js} +1 -1
  66. package/dist/web/assets/{database-viewer-VT17cuX4.js → database-viewer-C5MVw8cJ.js} +1 -1
  67. package/dist/web/assets/{diff-viewer-D6gXDpSU.js → diff-viewer-CUbFMWVo.js} +1 -1
  68. package/dist/web/assets/{extension-webview-CAQUbBuw.js → extension-webview-CwGufYEP.js} +1 -1
  69. package/dist/web/assets/{git-graph-CdRJbH07.js → git-graph-BD7A7MLo.js} +1 -1
  70. package/dist/web/assets/index-BYXjCNlK.css +2 -0
  71. package/dist/web/assets/index-CpzkPHOC.js +30 -0
  72. package/dist/web/assets/keybindings-store-DsaANvBz.js +1 -0
  73. package/dist/web/assets/markdown-renderer-C19IsITh.js +326 -0
  74. package/dist/web/assets/{port-forwarding-tab-1vSZG1Ga.js → port-forwarding-tab-BF79F1iL.js} +1 -1
  75. package/dist/web/assets/{postgres-viewer-Bn8hKEnP.js → postgres-viewer-_nYiO_wp.js} +1 -1
  76. package/dist/web/assets/{settings-tab-CpG9UbHr.js → settings-tab-C1SQMbSu.js} +1 -1
  77. package/dist/web/assets/{sql-query-editor-yvUfZVDr.js → sql-query-editor-6OFvxxuN.js} +1 -1
  78. package/dist/web/assets/{sqlite-viewer-BSFIa0hd.js → sqlite-viewer-SNVYFXvB.js} +1 -1
  79. package/dist/web/assets/{terminal-tab-CbIBTfPE.js → terminal-tab-BJEkmrDt.js} +1 -1
  80. package/dist/web/assets/{use-monaco-theme-x9tJcwlL.js → use-monaco-theme-r8FzlCWr.js} +1 -1
  81. package/dist/web/index.html +2 -2
  82. package/dist/web/sw.js +1 -1
  83. package/docs/codebase-summary.md +78 -0
  84. package/docs/project-changelog.md +29 -0
  85. package/docs/system-architecture.md +2 -0
  86. package/package.json +5 -2
  87. package/scripts/check-ppm-dir-usage.sh +21 -0
  88. package/scripts/generate-ppm-guide.ts +92 -0
  89. package/src/cli/commands/init.ts +2 -1
  90. package/src/cli/commands/logs.ts +11 -11
  91. package/src/cli/commands/report.ts +3 -2
  92. package/src/cli/commands/restart.ts +22 -23
  93. package/src/cli/commands/skills-cmd.ts +123 -0
  94. package/src/cli/commands/status.ts +7 -8
  95. package/src/cli/commands/stop.ts +18 -19
  96. package/src/index.ts +3 -0
  97. package/src/lib/account-crypto.ts +12 -7
  98. package/src/providers/claude-agent-sdk.ts +32 -1
  99. package/src/server/index.ts +8 -8
  100. package/src/server/routes/chat.ts +4 -2
  101. package/src/server/routes/upgrade.ts +3 -5
  102. package/src/server/ws/chat.ts +16 -0
  103. package/src/services/cloud-ws.service.ts +2 -2
  104. package/src/services/cloud.service.ts +20 -19
  105. package/src/services/cloudflared.service.ts +13 -13
  106. package/src/services/config.service.ts +5 -7
  107. package/src/services/db.service.ts +5 -6
  108. package/src/services/extension-rpc-handlers.ts +2 -2
  109. package/src/services/extension.service.ts +9 -12
  110. package/src/services/ppm-dir.ts +14 -0
  111. package/src/services/slash-discovery/builtin-commands.ts +53 -0
  112. package/src/services/slash-discovery/builtin-handlers.ts +65 -0
  113. package/src/services/slash-discovery/definition-source.ts +27 -0
  114. package/src/services/slash-discovery/discover-skill-roots.ts +128 -0
  115. package/src/services/slash-discovery/fuzzy-search.ts +76 -0
  116. package/src/services/slash-discovery/index.ts +42 -0
  117. package/src/services/slash-discovery/resolve-overrides.ts +41 -0
  118. package/src/services/slash-discovery/skill-loader.ts +156 -0
  119. package/src/services/slash-discovery/types.ts +51 -0
  120. package/src/services/slash-items.service.ts +4 -182
  121. package/src/services/supervisor-state.ts +14 -15
  122. package/src/services/supervisor-stopped-page.ts +2 -4
  123. package/src/services/supervisor.ts +15 -15
  124. package/src/services/tunnel.service.ts +4 -5
  125. package/src/services/upgrade.service.ts +2 -3
  126. package/src/types/chat.ts +3 -1
  127. package/src/web/components/chat/chat-tab.tsx +4 -1
  128. package/src/web/components/chat/message-input.tsx +48 -6
  129. package/src/web/components/chat/message-list.tsx +2 -2
  130. package/src/web/components/chat/slash-command-picker.tsx +21 -12
  131. package/src/web/components/layout/upgrade-banner.tsx +48 -2
  132. package/src/web/components/shared/markdown-renderer.tsx +2 -0
  133. package/src/web/hooks/use-chat.ts +3 -1
  134. package/src/web/main.tsx +1 -0
  135. package/.opencode/.ckignore +0 -27
  136. package/.opencode/agents/analytics-analyst.md +0 -168
  137. package/.opencode/agents/attraction-specialist.md +0 -152
  138. package/.opencode/agents/brainstormer.md +0 -114
  139. package/.opencode/agents/campaign-debugger.md +0 -149
  140. package/.opencode/agents/campaign-manager.md +0 -185
  141. package/.opencode/agents/code-reviewer.md +0 -163
  142. package/.opencode/agents/code-simplifier.md +0 -59
  143. package/.opencode/agents/community-manager.md +0 -181
  144. package/.opencode/agents/content-creator.md +0 -166
  145. package/.opencode/agents/content-reviewer.md +0 -170
  146. package/.opencode/agents/continuity-specialist.md +0 -149
  147. package/.opencode/agents/copywriter.md +0 -118
  148. package/.opencode/agents/database-admin.md +0 -98
  149. package/.opencode/agents/debugger.md +0 -143
  150. package/.opencode/agents/docs-manager.md +0 -127
  151. package/.opencode/agents/email-wizard.md +0 -166
  152. package/.opencode/agents/fullstack-developer.md +0 -101
  153. package/.opencode/agents/funnel-architect.md +0 -176
  154. package/.opencode/agents/git-manager.md +0 -399
  155. package/.opencode/agents/journal-writer.md +0 -119
  156. package/.opencode/agents/lead-qualifier.md +0 -146
  157. package/.opencode/agents/mcp-manager.md +0 -99
  158. package/.opencode/agents/planner.md +0 -114
  159. package/.opencode/agents/project-manager.md +0 -130
  160. package/.opencode/agents/researcher.md +0 -44
  161. package/.opencode/agents/sale-enabler.md +0 -161
  162. package/.opencode/agents/scout-external.md +0 -146
  163. package/.opencode/agents/scout.md +0 -112
  164. package/.opencode/agents/seo-specialist.md +0 -185
  165. package/.opencode/agents/social-media-manager.md +0 -163
  166. package/.opencode/agents/tester.md +0 -111
  167. package/.opencode/agents/ui-ux-designer.md +0 -241
  168. package/.opencode/agents/upsell-maximizer.md +0 -147
  169. package/.opencode/commands/ckm-analyze-report.md +0 -66
  170. package/.opencode/commands/ckm-analyze.md +0 -63
  171. package/.opencode/commands/ckm-ask.md +0 -55
  172. package/.opencode/commands/ckm-brand-update.md +0 -122
  173. package/.opencode/commands/ckm-campaign-analyze.md +0 -54
  174. package/.opencode/commands/ckm-campaign-create.md +0 -215
  175. package/.opencode/commands/ckm-campaign-email.md +0 -63
  176. package/.opencode/commands/ckm-campaign-status.md +0 -38
  177. package/.opencode/commands/ckm-campaign.md +0 -64
  178. package/.opencode/commands/ckm-competitor.md +0 -69
  179. package/.opencode/commands/ckm-dashboard-check.md +0 -97
  180. package/.opencode/commands/ckm-dashboard.md +0 -90
  181. package/.opencode/commands/ckm-docs-init.md +0 -27
  182. package/.opencode/commands/ckm-docs-llms.md +0 -12
  183. package/.opencode/commands/ckm-docs-summarize.md +0 -22
  184. package/.opencode/commands/ckm-docs-update.md +0 -36
  185. package/.opencode/commands/ckm-email-flow.md +0 -169
  186. package/.opencode/commands/ckm-email-sequence.md +0 -170
  187. package/.opencode/commands/ckm-email.md +0 -64
  188. package/.opencode/commands/ckm-funnel.md +0 -77
  189. package/.opencode/commands/ckm-hub.md +0 -50
  190. package/.opencode/commands/ckm-init.md +0 -214
  191. package/.opencode/commands/ckm-journal.md +0 -18
  192. package/.opencode/commands/ckm-kanban.md +0 -65
  193. package/.opencode/commands/ckm-persona.md +0 -61
  194. package/.opencode/commands/ckm-plan-archive.md +0 -56
  195. package/.opencode/commands/ckm-plan-ci.md +0 -32
  196. package/.opencode/commands/ckm-plan-cro.md +0 -68
  197. package/.opencode/commands/ckm-plan-fast.md +0 -65
  198. package/.opencode/commands/ckm-plan-hard.md +0 -91
  199. package/.opencode/commands/ckm-plan-parallel.md +0 -128
  200. package/.opencode/commands/ckm-plan-two.md +0 -44
  201. package/.opencode/commands/ckm-plan-validate.md +0 -116
  202. package/.opencode/commands/ckm-plan.md +0 -29
  203. package/.opencode/commands/ckm-play-create.md +0 -15
  204. package/.opencode/commands/ckm-play-goals.md +0 -15
  205. package/.opencode/commands/ckm-play-next.md +0 -15
  206. package/.opencode/commands/ckm-play-status.md +0 -15
  207. package/.opencode/commands/ckm-play.md +0 -27
  208. package/.opencode/commands/ckm-preview.md +0 -83
  209. package/.opencode/commands/ckm-seo-audit.md +0 -125
  210. package/.opencode/commands/ckm-seo-keywords.md +0 -135
  211. package/.opencode/commands/ckm-seo-pseo.md +0 -66
  212. package/.opencode/commands/ckm-seo.md +0 -67
  213. package/.opencode/commands/ckm-skill-add.md +0 -41
  214. package/.opencode/commands/ckm-skill-create.md +0 -34
  215. package/.opencode/commands/ckm-skill-fix-logs.md +0 -28
  216. package/.opencode/commands/ckm-skill-optimize-auto.md +0 -30
  217. package/.opencode/commands/ckm-skill-optimize.md +0 -39
  218. package/.opencode/commands/ckm-skill-plan.md +0 -50
  219. package/.opencode/commands/ckm-skill-update.md +0 -35
  220. package/.opencode/commands/ckm-slides-create.md +0 -8
  221. package/.opencode/commands/ckm-social-schedule.md +0 -54
  222. package/.opencode/commands/ckm-social.md +0 -69
  223. package/.opencode/commands/ckm-storage-list.md +0 -90
  224. package/.opencode/commands/ckm-storage-sync.md +0 -92
  225. package/.opencode/commands/ckm-storage-upload.md +0 -80
  226. package/.opencode/commands/ckm-storage-url.md +0 -66
  227. package/.opencode/commands/ckm-test-ui.md +0 -91
  228. package/.opencode/commands/ckm-test-workflow.md +0 -106
  229. package/.opencode/commands/ckm-use-mcp.md +0 -34
  230. package/.opencode/commands/ckm-video-create.md +0 -326
  231. package/.opencode/commands/ckm-video-script-create.md +0 -395
  232. package/.opencode/commands/ckm-video-storyboard-create.md +0 -214
  233. package/.opencode/commands/ckm-watzup.md +0 -9
  234. package/.opencode/commands/ckm-worktree.md +0 -125
  235. package/.opencode/commands/ckm-write-audit.md +0 -97
  236. package/.opencode/commands/ckm-write-blog-youtube.md +0 -158
  237. package/.opencode/commands/ckm-write-blog.md +0 -85
  238. package/.opencode/commands/ckm-write-cro.md +0 -42
  239. package/.opencode/commands/ckm-write-enhance.md +0 -13
  240. package/.opencode/commands/ckm-write-fast.md +0 -12
  241. package/.opencode/commands/ckm-write-formula.md +0 -116
  242. package/.opencode/commands/ckm-write-good.md +0 -16
  243. package/.opencode/commands/ckm-write-publish.md +0 -74
  244. package/.opencode/commands/ckm-youtube-blog.md +0 -136
  245. package/.opencode/commands/ckm-youtube-infographic.md +0 -156
  246. package/.opencode/commands/ckm-youtube-social.md +0 -169
  247. package/.opencode/package.json +0 -8
  248. package/.opencode/plugin/context-injector.ts +0 -84
  249. package/.opencode/plugin/lib/ck-config-utils.cjs +0 -816
  250. package/.opencode/plugin/lib/colors.cjs +0 -95
  251. package/.opencode/plugin/lib/context-builder.cjs +0 -600
  252. package/.opencode/plugin/lib/privacy-checker.cjs +0 -297
  253. package/.opencode/plugin/lib/project-detector.cjs +0 -430
  254. package/.opencode/plugin/lib/scout-checker.cjs +0 -172
  255. package/.opencode/plugin/privacy-block.ts +0 -32
  256. package/.opencode/plugin/scout-block/broad-pattern-detector.cjs +0 -266
  257. package/.opencode/plugin/scout-block/error-formatter.cjs +0 -156
  258. package/.opencode/plugin/scout-block/path-extractor.cjs +0 -238
  259. package/.opencode/plugin/scout-block/pattern-matcher.cjs +0 -184
  260. package/.opencode/plugin/scout-block/vendor/ignore.cjs +0 -627
  261. package/.opencode/plugin/scout-block.ts +0 -40
  262. package/.opencode/scripts/README.md +0 -153
  263. package/.opencode/scripts/ck-help.py +0 -1164
  264. package/.opencode/scripts/commands_data.yaml +0 -363
  265. package/.opencode/scripts/fix-shebang-permissions.sh +0 -50
  266. package/.opencode/scripts/requirements.txt +0 -1
  267. package/.opencode/scripts/resolve_env.py +0 -329
  268. package/.opencode/scripts/scan_commands.py +0 -98
  269. package/.opencode/scripts/scan_skills.py +0 -186
  270. package/.opencode/scripts/set-active-plan.cjs +0 -50
  271. package/.opencode/scripts/skills_data.yaml +0 -370
  272. package/.opencode/scripts/test-ck-help.py +0 -218
  273. package/.opencode/scripts/validate-docs.cjs +0 -342
  274. package/.opencode/scripts/win_compat.py +0 -57
  275. package/.opencode/scripts/worktree.cjs +0 -822
  276. package/.opencode/scripts/worktree.test.cjs +0 -759
  277. package/.opencode/skills/ab-test-setup/SKILL.md +0 -512
  278. package/.opencode/skills/ads-management/SKILL.md +0 -134
  279. package/.opencode/skills/ads-management/references/ad-copy-templates.md +0 -82
  280. package/.opencode/skills/ads-management/references/audience-targeting.md +0 -97
  281. package/.opencode/skills/ads-management/references/campaign-setup-and-bidding.md +0 -88
  282. package/.opencode/skills/ads-management/references/competitor-analysis-and-tools.md +0 -67
  283. package/.opencode/skills/ads-management/references/creative-asset-generation.md +0 -110
  284. package/.opencode/skills/ads-management/references/measurement-and-attribution.md +0 -63
  285. package/.opencode/skills/ads-management/references/optimization-playbook.md +0 -83
  286. package/.opencode/skills/ads-management/references/platform-specs.md +0 -64
  287. package/.opencode/skills/ads-management/scripts/google-ads-manager.py +0 -294
  288. package/.opencode/skills/ads-management/scripts/meta-ads-manager.py +0 -360
  289. package/.opencode/skills/affiliate-marketing/SKILL.md +0 -96
  290. package/.opencode/skills/affiliate-marketing/references/case-studies.md +0 -66
  291. package/.opencode/skills/affiliate-marketing/references/compliance-legal.md +0 -78
  292. package/.opencode/skills/affiliate-marketing/references/fraud-prevention.md +0 -81
  293. package/.opencode/skills/affiliate-marketing/references/kol-koc-partnerships.md +0 -86
  294. package/.opencode/skills/affiliate-marketing/references/outreach-templates.md +0 -72
  295. package/.opencode/skills/affiliate-marketing/references/platform-selection.md +0 -82
  296. package/.opencode/skills/affiliate-marketing/references/program-structure.md +0 -74
  297. package/.opencode/skills/agent-browser/SKILL.md +0 -297
  298. package/.opencode/skills/agent-browser/references/.gitkeep +0 -0
  299. package/.opencode/skills/agent-browser/references/agent-browser-vs-chrome-devtools.md +0 -112
  300. package/.opencode/skills/agent-browser/references/browserbase-cloud-setup.md +0 -161
  301. package/.opencode/skills/ai-artist/SKILL.md +0 -122
  302. package/.opencode/skills/ai-artist/data/awesome-prompts.csv +0 -3592
  303. package/.opencode/skills/ai-artist/data/domains.csv +0 -16
  304. package/.opencode/skills/ai-artist/data/image-styles.csv +0 -21
  305. package/.opencode/skills/ai-artist/data/lighting.csv +0 -19
  306. package/.opencode/skills/ai-artist/data/llm-patterns.csv +0 -17
  307. package/.opencode/skills/ai-artist/data/nano-banana-templates.csv +0 -17
  308. package/.opencode/skills/ai-artist/data/platforms.csv +0 -11
  309. package/.opencode/skills/ai-artist/data/quality-modifiers.csv +0 -26
  310. package/.opencode/skills/ai-artist/data/styles.csv +0 -26
  311. package/.opencode/skills/ai-artist/data/subjects.csv +0 -17
  312. package/.opencode/skills/ai-artist/data/techniques.csv +0 -19
  313. package/.opencode/skills/ai-artist/data/use-cases.csv +0 -16
  314. package/.opencode/skills/ai-artist/references/advanced-techniques.md +0 -184
  315. package/.opencode/skills/ai-artist/references/awesome-nano-banana-pro-prompts.md +0 -8575
  316. package/.opencode/skills/ai-artist/references/character-consistency.md +0 -160
  317. package/.opencode/skills/ai-artist/references/domain-code.md +0 -66
  318. package/.opencode/skills/ai-artist/references/domain-data.md +0 -72
  319. package/.opencode/skills/ai-artist/references/domain-marketing.md +0 -66
  320. package/.opencode/skills/ai-artist/references/domain-patterns.md +0 -33
  321. package/.opencode/skills/ai-artist/references/domain-writing.md +0 -68
  322. package/.opencode/skills/ai-artist/references/image-generation-workflow.md +0 -124
  323. package/.opencode/skills/ai-artist/references/image-prompting.md +0 -141
  324. package/.opencode/skills/ai-artist/references/llm-prompting.md +0 -165
  325. package/.opencode/skills/ai-artist/references/nano-banana-pro-examples.md +0 -132
  326. package/.opencode/skills/ai-artist/references/nano-banana.md +0 -59
  327. package/.opencode/skills/ai-artist/references/reasoning-techniques.md +0 -201
  328. package/.opencode/skills/ai-artist/references/validation-workflow.md +0 -117
  329. package/.opencode/skills/ai-artist/scripts/core.py +0 -201
  330. package/.opencode/skills/ai-artist/scripts/extract_prompts.py +0 -102
  331. package/.opencode/skills/ai-artist/scripts/generate.py +0 -371
  332. package/.opencode/skills/ai-artist/scripts/prompt_builder.py +0 -234
  333. package/.opencode/skills/ai-artist/scripts/search.py +0 -111
  334. package/.opencode/skills/ai-multimodal/SKILL.md +0 -108
  335. package/.opencode/skills/ai-multimodal/assets/demo-minimax/minimax-music-midnight-glow.mp3 +0 -0
  336. package/.opencode/skills/ai-multimodal/assets/demo-minimax/minimax-speech-demo.mp3 +0 -0
  337. package/.opencode/skills/ai-multimodal/assets/demo-minimax/minimax-speech-vietnamese.mp3 +0 -0
  338. package/.opencode/skills/ai-multimodal/assets/demo-minimax/minimax-video-kitsune.mp4 +0 -0
  339. package/.opencode/skills/ai-multimodal/references/audio-processing.md +0 -387
  340. package/.opencode/skills/ai-multimodal/references/image-generation.md +0 -1002
  341. package/.opencode/skills/ai-multimodal/references/minimax-generation.md +0 -141
  342. package/.opencode/skills/ai-multimodal/references/music-generation.md +0 -311
  343. package/.opencode/skills/ai-multimodal/references/video-analysis.md +0 -515
  344. package/.opencode/skills/ai-multimodal/references/video-generation.md +0 -457
  345. package/.opencode/skills/ai-multimodal/references/vision-understanding.md +0 -492
  346. package/.opencode/skills/ai-multimodal/scripts/.coverage +0 -0
  347. package/.opencode/skills/ai-multimodal/scripts/check_setup.py +0 -316
  348. package/.opencode/skills/ai-multimodal/scripts/document_converter.py +0 -395
  349. package/.opencode/skills/ai-multimodal/scripts/gemini_batch_process.py +0 -1187
  350. package/.opencode/skills/ai-multimodal/scripts/media_optimizer.py +0 -506
  351. package/.opencode/skills/ai-multimodal/scripts/minimax_api_client.py +0 -189
  352. package/.opencode/skills/ai-multimodal/scripts/minimax_cli.py +0 -178
  353. package/.opencode/skills/ai-multimodal/scripts/minimax_generate.py +0 -278
  354. package/.opencode/skills/ai-multimodal/scripts/requirements.txt +0 -26
  355. package/.opencode/skills/analytics/SKILL.md +0 -132
  356. package/.opencode/skills/analytics/package.json +0 -19
  357. package/.opencode/skills/analytics/references/analysis-workflows.md +0 -104
  358. package/.opencode/skills/analytics/references/attribution-models.md +0 -75
  359. package/.opencode/skills/analytics/references/ga-admin-api.md +0 -219
  360. package/.opencode/skills/analytics/references/ga-data-api.md +0 -344
  361. package/.opencode/skills/analytics/references/marketing-kpis.md +0 -63
  362. package/.opencode/skills/analytics/references/report-templates.md +0 -411
  363. package/.opencode/skills/analytics/scripts/ga-auth-setup.cjs +0 -283
  364. package/.opencode/skills/analytics/scripts/ga-config-loader.cjs +0 -320
  365. package/.opencode/skills/analytics/scripts/ga-list-accounts.cjs +0 -277
  366. package/.opencode/skills/analytics/scripts/ga-run-report.cjs +0 -334
  367. package/.opencode/skills/analyze/SKILL.md +0 -80
  368. package/.opencode/skills/analyze/references/report.md +0 -62
  369. package/.opencode/skills/ask/SKILL.md +0 -60
  370. package/.opencode/skills/assets-organizing/SKILL.md +0 -164
  371. package/.opencode/skills/assets-organizing/references/asset-types.md +0 -1478
  372. package/.opencode/skills/assets-organizing/references/directory-structure.md +0 -178
  373. package/.opencode/skills/assets-organizing/references/naming-conventions.md +0 -85
  374. package/.opencode/skills/backend-development/SKILL.md +0 -98
  375. package/.opencode/skills/backend-development/references/backend-api-design.md +0 -495
  376. package/.opencode/skills/backend-development/references/backend-architecture.md +0 -454
  377. package/.opencode/skills/backend-development/references/backend-authentication.md +0 -338
  378. package/.opencode/skills/backend-development/references/backend-code-quality.md +0 -659
  379. package/.opencode/skills/backend-development/references/backend-debugging.md +0 -904
  380. package/.opencode/skills/backend-development/references/backend-devops.md +0 -494
  381. package/.opencode/skills/backend-development/references/backend-mindset.md +0 -387
  382. package/.opencode/skills/backend-development/references/backend-performance.md +0 -397
  383. package/.opencode/skills/backend-development/references/backend-security.md +0 -290
  384. package/.opencode/skills/backend-development/references/backend-technologies.md +0 -256
  385. package/.opencode/skills/backend-development/references/backend-testing.md +0 -429
  386. package/.opencode/skills/banner-design/SKILL.md +0 -192
  387. package/.opencode/skills/banner-design/references/banner-sizes-and-styles.md +0 -118
  388. package/.opencode/skills/better-auth/SKILL.md +0 -207
  389. package/.opencode/skills/better-auth/references/advanced-features.md +0 -553
  390. package/.opencode/skills/better-auth/references/database-integration.md +0 -577
  391. package/.opencode/skills/better-auth/references/email-password-auth.md +0 -416
  392. package/.opencode/skills/better-auth/references/oauth-providers.md +0 -430
  393. package/.opencode/skills/better-auth/scripts/.coverage +0 -0
  394. package/.opencode/skills/better-auth/scripts/better_auth_init.py +0 -521
  395. package/.opencode/skills/better-auth/scripts/requirements.txt +0 -15
  396. package/.opencode/skills/bootstrap/SKILL.md +0 -105
  397. package/.opencode/skills/bootstrap/references/shared-phases.md +0 -59
  398. package/.opencode/skills/bootstrap/references/workflow-auto.md +0 -52
  399. package/.opencode/skills/bootstrap/references/workflow-fast.md +0 -50
  400. package/.opencode/skills/bootstrap/references/workflow-full.md +0 -60
  401. package/.opencode/skills/bootstrap/references/workflow-parallel.md +0 -59
  402. package/.opencode/skills/brainstorm/SKILL.md +0 -79
  403. package/.opencode/skills/brand/SKILL.md +0 -97
  404. package/.opencode/skills/brand/references/approval-checklist.md +0 -169
  405. package/.opencode/skills/brand/references/asset-organization.md +0 -157
  406. package/.opencode/skills/brand/references/brand-guideline-template.md +0 -140
  407. package/.opencode/skills/brand/references/color-palette-management.md +0 -186
  408. package/.opencode/skills/brand/references/consistency-checklist.md +0 -94
  409. package/.opencode/skills/brand/references/logo-usage-rules.md +0 -185
  410. package/.opencode/skills/brand/references/messaging-framework.md +0 -85
  411. package/.opencode/skills/brand/references/typography-specifications.md +0 -214
  412. package/.opencode/skills/brand/references/update.md +0 -118
  413. package/.opencode/skills/brand/references/visual-identity.md +0 -96
  414. package/.opencode/skills/brand/references/voice-framework.md +0 -88
  415. package/.opencode/skills/brand/scripts/extract-colors.cjs +0 -341
  416. package/.opencode/skills/brand/scripts/inject-brand-context.cjs +0 -349
  417. package/.opencode/skills/brand/scripts/sync-brand-to-tokens.cjs +0 -266
  418. package/.opencode/skills/brand/scripts/validate-asset.cjs +0 -387
  419. package/.opencode/skills/brand/templates/brand-guidelines-starter.md +0 -275
  420. package/.opencode/skills/campaign/SKILL.md +0 -73
  421. package/.opencode/skills/campaign/references/analyze.md +0 -50
  422. package/.opencode/skills/campaign/references/budget-allocation.md +0 -85
  423. package/.opencode/skills/campaign/references/campaign-brief.md +0 -79
  424. package/.opencode/skills/campaign/references/create.md +0 -211
  425. package/.opencode/skills/campaign/references/email.md +0 -59
  426. package/.opencode/skills/campaign/references/launch-checklist.md +0 -70
  427. package/.opencode/skills/campaign/references/optimization-framework.md +0 -103
  428. package/.opencode/skills/campaign/references/status.md +0 -34
  429. package/.opencode/skills/chrome-devtools/SKILL.md +0 -475
  430. package/.opencode/skills/chrome-devtools/references/cdp-domains.md +0 -694
  431. package/.opencode/skills/chrome-devtools/references/performance-guide.md +0 -940
  432. package/.opencode/skills/chrome-devtools/references/puppeteer-reference.md +0 -953
  433. package/.opencode/skills/chrome-devtools/scripts/README.md +0 -272
  434. package/.opencode/skills/chrome-devtools/scripts/__tests__/error-handling.test.js +0 -102
  435. package/.opencode/skills/chrome-devtools/scripts/__tests__/selector.test.js +0 -210
  436. package/.opencode/skills/chrome-devtools/scripts/aria-snapshot.js +0 -362
  437. package/.opencode/skills/chrome-devtools/scripts/click.js +0 -83
  438. package/.opencode/skills/chrome-devtools/scripts/connect-chrome.js +0 -146
  439. package/.opencode/skills/chrome-devtools/scripts/console.js +0 -79
  440. package/.opencode/skills/chrome-devtools/scripts/evaluate.js +0 -53
  441. package/.opencode/skills/chrome-devtools/scripts/fill.js +0 -76
  442. package/.opencode/skills/chrome-devtools/scripts/import-cookies.js +0 -205
  443. package/.opencode/skills/chrome-devtools/scripts/inject-auth.js +0 -229
  444. package/.opencode/skills/chrome-devtools/scripts/install-deps.sh +0 -181
  445. package/.opencode/skills/chrome-devtools/scripts/install.sh +0 -83
  446. package/.opencode/skills/chrome-devtools/scripts/lib/browser.js +0 -318
  447. package/.opencode/skills/chrome-devtools/scripts/lib/selector.js +0 -178
  448. package/.opencode/skills/chrome-devtools/scripts/navigate.js +0 -54
  449. package/.opencode/skills/chrome-devtools/scripts/network.js +0 -106
  450. package/.opencode/skills/chrome-devtools/scripts/package.json +0 -16
  451. package/.opencode/skills/chrome-devtools/scripts/performance.js +0 -149
  452. package/.opencode/skills/chrome-devtools/scripts/screenshot.js +0 -198
  453. package/.opencode/skills/chrome-devtools/scripts/select-ref.js +0 -131
  454. package/.opencode/skills/chrome-devtools/scripts/snapshot.js +0 -135
  455. package/.opencode/skills/chrome-devtools/scripts/ws-debug.js +0 -44
  456. package/.opencode/skills/chrome-devtools/scripts/ws-full-debug.js +0 -107
  457. package/.opencode/skills/cip-design/SKILL.md +0 -161
  458. package/.opencode/skills/cip-design/data/deliverables.csv +0 -51
  459. package/.opencode/skills/cip-design/data/industries.csv +0 -21
  460. package/.opencode/skills/cip-design/data/mockup-contexts.csv +0 -21
  461. package/.opencode/skills/cip-design/data/styles.csv +0 -21
  462. package/.opencode/skills/cip-design/references/deliverable-guide.md +0 -95
  463. package/.opencode/skills/cip-design/references/prompt-engineering.md +0 -84
  464. package/.opencode/skills/cip-design/references/style-guide.md +0 -68
  465. package/.opencode/skills/cip-design/scripts/core.py +0 -215
  466. package/.opencode/skills/cip-design/scripts/generate.py +0 -488
  467. package/.opencode/skills/cip-design/scripts/render-html.py +0 -424
  468. package/.opencode/skills/cip-design/scripts/search.py +0 -127
  469. package/.opencode/skills/ck-autoresearch/SKILL.md +0 -153
  470. package/.opencode/skills/ck-autoresearch/references/autonomous-loop-protocol.md +0 -193
  471. package/.opencode/skills/ck-autoresearch/references/git-memory-pattern.md +0 -109
  472. package/.opencode/skills/ck-autoresearch/references/guard-and-noise.md +0 -140
  473. package/.opencode/skills/ck-autoresearch/references/metric-library.md +0 -200
  474. package/.opencode/skills/ck-autoresearch/references/results-logging.md +0 -74
  475. package/.opencode/skills/ck-debug/SKILL.md +0 -123
  476. package/.opencode/skills/ck-debug/references/defense-in-depth.md +0 -124
  477. package/.opencode/skills/ck-debug/references/frontend-verification.md +0 -103
  478. package/.opencode/skills/ck-debug/references/investigation-methodology.md +0 -101
  479. package/.opencode/skills/ck-debug/references/log-and-ci-analysis.md +0 -97
  480. package/.opencode/skills/ck-debug/references/performance-diagnostics.md +0 -113
  481. package/.opencode/skills/ck-debug/references/reporting-standards.md +0 -122
  482. package/.opencode/skills/ck-debug/references/root-cause-tracing.md +0 -122
  483. package/.opencode/skills/ck-debug/references/systematic-debugging.md +0 -102
  484. package/.opencode/skills/ck-debug/references/task-management-debugging.md +0 -155
  485. package/.opencode/skills/ck-debug/references/verification.md +0 -123
  486. package/.opencode/skills/ck-debug/scripts/find-polluter.sh +0 -63
  487. package/.opencode/skills/ck-debug/scripts/find-polluter.test.md +0 -102
  488. package/.opencode/skills/ck-loop/SKILL.md +0 -149
  489. package/.opencode/skills/ck-loop/references/autonomous-loop-protocol.md +0 -193
  490. package/.opencode/skills/ck-loop/references/git-memory-pattern.md +0 -109
  491. package/.opencode/skills/ck-loop/references/guard-and-noise.md +0 -140
  492. package/.opencode/skills/ck-loop/references/metric-library.md +0 -200
  493. package/.opencode/skills/ck-loop/references/results-logging.md +0 -74
  494. package/.opencode/skills/ck-plan/SKILL.md +0 -198
  495. package/.opencode/skills/ck-plan/references/archive-workflow.md +0 -53
  496. package/.opencode/skills/ck-plan/references/codebase-understanding.md +0 -62
  497. package/.opencode/skills/ck-plan/references/output-standards.md +0 -145
  498. package/.opencode/skills/ck-plan/references/plan-organization.md +0 -183
  499. package/.opencode/skills/ck-plan/references/red-team-personas.md +0 -69
  500. package/.opencode/skills/ck-plan/references/red-team-workflow.md +0 -77
  501. package/.opencode/skills/ck-plan/references/research-phase.md +0 -49
  502. package/.opencode/skills/ck-plan/references/scope-challenge.md +0 -90
  503. package/.opencode/skills/ck-plan/references/solution-design.md +0 -63
  504. package/.opencode/skills/ck-plan/references/task-management.md +0 -134
  505. package/.opencode/skills/ck-plan/references/validate-question-framework.md +0 -80
  506. package/.opencode/skills/ck-plan/references/validate-workflow.md +0 -65
  507. package/.opencode/skills/ck-plan/references/workflow-modes.md +0 -155
  508. package/.opencode/skills/ck-predict/SKILL.md +0 -119
  509. package/.opencode/skills/ck-scenario/SKILL.md +0 -113
  510. package/.opencode/skills/ck-security/SKILL.md +0 -144
  511. package/.opencode/skills/ck-security/references/stride-owasp-checklist.md +0 -128
  512. package/.opencode/skills/ckm-storage/SKILL.md +0 -23
  513. package/.opencode/skills/ckm-storage/references/list.md +0 -87
  514. package/.opencode/skills/ckm-storage/references/sync.md +0 -89
  515. package/.opencode/skills/ckm-storage/references/upload.md +0 -77
  516. package/.opencode/skills/ckm-storage/references/url.md +0 -63
  517. package/.opencode/skills/claude-code/SKILL.md +0 -64
  518. package/.opencode/skills/claude-code/references/advanced-features.md +0 -399
  519. package/.opencode/skills/claude-code/references/agent-skills.md +0 -399
  520. package/.opencode/skills/claude-code/references/api-reference.md +0 -498
  521. package/.opencode/skills/claude-code/references/best-practices.md +0 -447
  522. package/.opencode/skills/claude-code/references/cicd-integration.md +0 -428
  523. package/.opencode/skills/claude-code/references/common-workflows.md +0 -119
  524. package/.opencode/skills/claude-code/references/configuration.md +0 -480
  525. package/.opencode/skills/claude-code/references/enterprise-features.md +0 -472
  526. package/.opencode/skills/claude-code/references/getting-started.md +0 -252
  527. package/.opencode/skills/claude-code/references/hooks-and-plugins.md +0 -444
  528. package/.opencode/skills/claude-code/references/hooks-comprehensive.md +0 -622
  529. package/.opencode/skills/claude-code/references/ide-integration.md +0 -316
  530. package/.opencode/skills/claude-code/references/mcp-integration.md +0 -386
  531. package/.opencode/skills/claude-code/references/slash-commands.md +0 -489
  532. package/.opencode/skills/claude-code/references/troubleshooting.md +0 -456
  533. package/.opencode/skills/code-review/SKILL.md +0 -147
  534. package/.opencode/skills/code-review/references/adversarial-review.md +0 -223
  535. package/.opencode/skills/code-review/references/checklist-workflow.md +0 -100
  536. package/.opencode/skills/code-review/references/checklists/api.md +0 -52
  537. package/.opencode/skills/code-review/references/checklists/base.md +0 -100
  538. package/.opencode/skills/code-review/references/checklists/web-app.md +0 -54
  539. package/.opencode/skills/code-review/references/code-review-reception.md +0 -209
  540. package/.opencode/skills/code-review/references/codebase-scan-workflow.md +0 -30
  541. package/.opencode/skills/code-review/references/edge-case-scouting.md +0 -119
  542. package/.opencode/skills/code-review/references/input-mode-resolution.md +0 -135
  543. package/.opencode/skills/code-review/references/parallel-review-workflow.md +0 -76
  544. package/.opencode/skills/code-review/references/requesting-code-review.md +0 -105
  545. package/.opencode/skills/code-review/references/spec-compliance-review.md +0 -43
  546. package/.opencode/skills/code-review/references/task-management-reviews.md +0 -155
  547. package/.opencode/skills/code-review/references/verification-before-completion.md +0 -139
  548. package/.opencode/skills/coding-level/SKILL.md +0 -59
  549. package/.opencode/skills/competitor/SKILL.md +0 -95
  550. package/.opencode/skills/competitor/references/alternatives.md +0 -245
  551. package/.opencode/skills/content-hub/SKILL.md +0 -83
  552. package/.opencode/skills/content-hub/assets/hub.css +0 -693
  553. package/.opencode/skills/content-hub/assets/hub.js +0 -514
  554. package/.opencode/skills/content-hub/assets/template.html +0 -185
  555. package/.opencode/skills/content-hub/scripts/lib/ai-bridge.cjs +0 -165
  556. package/.opencode/skills/content-hub/scripts/lib/brand-context.cjs +0 -118
  557. package/.opencode/skills/content-hub/scripts/lib/port-finder.cjs +0 -43
  558. package/.opencode/skills/content-hub/scripts/lib/process-mgr.cjs +0 -102
  559. package/.opencode/skills/content-hub/scripts/lib/router.cjs +0 -276
  560. package/.opencode/skills/content-hub/scripts/lib/scanner.cjs +0 -278
  561. package/.opencode/skills/content-hub/scripts/server.cjs +0 -140
  562. package/.opencode/skills/content-hub/scripts/start-all.sh +0 -58
  563. package/.opencode/skills/content-marketing/SKILL.md +0 -87
  564. package/.opencode/skills/content-marketing/references/blog-post-templates.md +0 -108
  565. package/.opencode/skills/content-marketing/references/content-audit-checklist.md +0 -76
  566. package/.opencode/skills/content-marketing/references/content-strategy-framework.md +0 -72
  567. package/.opencode/skills/content-marketing/references/editorial-calendar-template.md +0 -59
  568. package/.opencode/skills/context-engineering/SKILL.md +0 -110
  569. package/.opencode/skills/context-engineering/references/context-compression.md +0 -84
  570. package/.opencode/skills/context-engineering/references/context-degradation.md +0 -93
  571. package/.opencode/skills/context-engineering/references/context-fundamentals.md +0 -75
  572. package/.opencode/skills/context-engineering/references/context-optimization.md +0 -82
  573. package/.opencode/skills/context-engineering/references/evaluation.md +0 -89
  574. package/.opencode/skills/context-engineering/references/memory-systems.md +0 -88
  575. package/.opencode/skills/context-engineering/references/multi-agent-patterns.md +0 -90
  576. package/.opencode/skills/context-engineering/references/project-development.md +0 -97
  577. package/.opencode/skills/context-engineering/references/runtime-awareness.md +0 -202
  578. package/.opencode/skills/context-engineering/references/tool-design.md +0 -86
  579. package/.opencode/skills/context-engineering/scripts/compression_evaluator.py +0 -349
  580. package/.opencode/skills/context-engineering/scripts/context_analyzer.py +0 -317
  581. package/.opencode/skills/cook/README.md +0 -86
  582. package/.opencode/skills/cook/SKILL.md +0 -115
  583. package/.opencode/skills/cook/references/intent-detection.md +0 -101
  584. package/.opencode/skills/cook/references/review-cycle.md +0 -75
  585. package/.opencode/skills/cook/references/subagent-patterns.md +0 -75
  586. package/.opencode/skills/cook/references/workflow-steps.md +0 -166
  587. package/.opencode/skills/copywriting/SKILL.md +0 -88
  588. package/.opencode/skills/copywriting/references/copy-formulas.md +0 -150
  589. package/.opencode/skills/copywriting/references/cta-patterns.md +0 -168
  590. package/.opencode/skills/copywriting/references/email-copy.md +0 -193
  591. package/.opencode/skills/copywriting/references/headline-templates.md +0 -140
  592. package/.opencode/skills/copywriting/references/landing-page-copy.md +0 -175
  593. package/.opencode/skills/copywriting/references/power-words.md +0 -189
  594. package/.opencode/skills/copywriting/references/social-media-copy.md +0 -222
  595. package/.opencode/skills/copywriting/references/workflow-cro.md +0 -83
  596. package/.opencode/skills/copywriting/references/workflow-enhance.md +0 -32
  597. package/.opencode/skills/copywriting/references/workflow-fast.md +0 -29
  598. package/.opencode/skills/copywriting/references/workflow-good.md +0 -39
  599. package/.opencode/skills/copywriting/references/writing-styles.md +0 -247
  600. package/.opencode/skills/copywriting/scripts/extract-writing-styles.py +0 -308
  601. package/.opencode/skills/copywriting/templates/copy-brief.md +0 -49
  602. package/.opencode/skills/creativity/SKILL.md +0 -189
  603. package/.opencode/skills/creativity/data/creative-reasoning.csv +0 -31
  604. package/.opencode/skills/creativity/data/music.csv +0 -18
  605. package/.opencode/skills/creativity/data/platforms.csv +0 -19
  606. package/.opencode/skills/creativity/data/styles.csv +0 -56
  607. package/.opencode/skills/creativity/data/voiceover.csv +0 -13
  608. package/.opencode/skills/creativity/references/audio-music.md +0 -74
  609. package/.opencode/skills/creativity/references/color-psychology.md +0 -68
  610. package/.opencode/skills/creativity/references/creative-styles-part1.md +0 -31
  611. package/.opencode/skills/creativity/references/creative-styles-part2.md +0 -36
  612. package/.opencode/skills/creativity/references/visual-trends.md +0 -84
  613. package/.opencode/skills/creativity/references/voiceover-styles.md +0 -107
  614. package/.opencode/skills/creativity/scripts/core.py +0 -179
  615. package/.opencode/skills/creativity/scripts/creative_brief.py +0 -470
  616. package/.opencode/skills/creativity/scripts/search.py +0 -62
  617. package/.opencode/skills/dashboard/SKILL.md +0 -108
  618. package/.opencode/skills/dashboard/references/check.md +0 -93
  619. package/.opencode/skills/databases/SKILL.md +0 -236
  620. package/.opencode/skills/databases/analytics.md +0 -198
  621. package/.opencode/skills/databases/db-design.md +0 -188
  622. package/.opencode/skills/databases/incremental-etl.md +0 -213
  623. package/.opencode/skills/databases/references/mongodb-aggregation.md +0 -447
  624. package/.opencode/skills/databases/references/mongodb-atlas.md +0 -465
  625. package/.opencode/skills/databases/references/mongodb-crud.md +0 -408
  626. package/.opencode/skills/databases/references/mongodb-indexing.md +0 -442
  627. package/.opencode/skills/databases/references/postgresql-administration.md +0 -594
  628. package/.opencode/skills/databases/references/postgresql-performance.md +0 -527
  629. package/.opencode/skills/databases/references/postgresql-psql-cli.md +0 -467
  630. package/.opencode/skills/databases/references/postgresql-queries.md +0 -475
  631. package/.opencode/skills/databases/scripts/.coverage +0 -0
  632. package/.opencode/skills/databases/scripts/db_backup.py +0 -502
  633. package/.opencode/skills/databases/scripts/db_migrate.py +0 -425
  634. package/.opencode/skills/databases/scripts/db_performance_check.py +0 -456
  635. package/.opencode/skills/databases/scripts/requirements.txt +0 -20
  636. package/.opencode/skills/databases/stacks/bigquery.md +0 -231
  637. package/.opencode/skills/databases/stacks/d1_cloudflare.md +0 -137
  638. package/.opencode/skills/databases/stacks/mysql.md +0 -216
  639. package/.opencode/skills/databases/stacks/postgres.md +0 -235
  640. package/.opencode/skills/databases/stacks/sqlite.md +0 -244
  641. package/.opencode/skills/databases/transactional.md +0 -176
  642. package/.opencode/skills/debugging/SKILL.md +0 -87
  643. package/.opencode/skills/debugging/references/defense-in-depth.md +0 -124
  644. package/.opencode/skills/debugging/references/root-cause-tracing.md +0 -122
  645. package/.opencode/skills/debugging/references/systematic-debugging.md +0 -102
  646. package/.opencode/skills/debugging/references/verification.md +0 -123
  647. package/.opencode/skills/debugging/scripts/find-polluter.sh +0 -63
  648. package/.opencode/skills/debugging/scripts/find-polluter.test.md +0 -102
  649. package/.opencode/skills/deploy/SKILL.md +0 -157
  650. package/.opencode/skills/deploy/references/platform-config-templates.md +0 -35
  651. package/.opencode/skills/deploy/references/platforms/aws.md +0 -58
  652. package/.opencode/skills/deploy/references/platforms/cloudflare.md +0 -41
  653. package/.opencode/skills/deploy/references/platforms/coolify.md +0 -32
  654. package/.opencode/skills/deploy/references/platforms/digitalocean.md +0 -45
  655. package/.opencode/skills/deploy/references/platforms/dokploy.md +0 -29
  656. package/.opencode/skills/deploy/references/platforms/flyio.md +0 -54
  657. package/.opencode/skills/deploy/references/platforms/gcp.md +0 -45
  658. package/.opencode/skills/deploy/references/platforms/github-pages.md +0 -56
  659. package/.opencode/skills/deploy/references/platforms/heroku.md +0 -31
  660. package/.opencode/skills/deploy/references/platforms/netlify.md +0 -39
  661. package/.opencode/skills/deploy/references/platforms/railway.md +0 -38
  662. package/.opencode/skills/deploy/references/platforms/render.md +0 -39
  663. package/.opencode/skills/deploy/references/platforms/tose.md +0 -35
  664. package/.opencode/skills/deploy/references/platforms/vercel.md +0 -37
  665. package/.opencode/skills/deploy/references/platforms/vultr.md +0 -27
  666. package/.opencode/skills/design/SKILL.md +0 -302
  667. package/.opencode/skills/design/data/cip/deliverables.csv +0 -51
  668. package/.opencode/skills/design/data/cip/industries.csv +0 -21
  669. package/.opencode/skills/design/data/cip/mockup-contexts.csv +0 -21
  670. package/.opencode/skills/design/data/cip/styles.csv +0 -21
  671. package/.opencode/skills/design/data/icon/styles.csv +0 -16
  672. package/.opencode/skills/design/data/logo/colors.csv +0 -56
  673. package/.opencode/skills/design/data/logo/industries.csv +0 -56
  674. package/.opencode/skills/design/data/logo/styles.csv +0 -56
  675. package/.opencode/skills/design/references/banner-sizes-and-styles.md +0 -118
  676. package/.opencode/skills/design/references/cip-deliverable-guide.md +0 -95
  677. package/.opencode/skills/design/references/cip-design.md +0 -121
  678. package/.opencode/skills/design/references/cip-prompt-engineering.md +0 -84
  679. package/.opencode/skills/design/references/cip-style-guide.md +0 -68
  680. package/.opencode/skills/design/references/design-routing.md +0 -207
  681. package/.opencode/skills/design/references/icon-design.md +0 -122
  682. package/.opencode/skills/design/references/logo-color-psychology.md +0 -101
  683. package/.opencode/skills/design/references/logo-design.md +0 -92
  684. package/.opencode/skills/design/references/logo-prompt-engineering.md +0 -158
  685. package/.opencode/skills/design/references/logo-style-guide.md +0 -109
  686. package/.opencode/skills/design/references/slides-copywriting-formulas.md +0 -84
  687. package/.opencode/skills/design/references/slides-create.md +0 -4
  688. package/.opencode/skills/design/references/slides-html-template.md +0 -295
  689. package/.opencode/skills/design/references/slides-layout-patterns.md +0 -137
  690. package/.opencode/skills/design/references/slides-strategies.md +0 -94
  691. package/.opencode/skills/design/references/slides.md +0 -42
  692. package/.opencode/skills/design/references/social-photos-design.md +0 -329
  693. package/.opencode/skills/design/scripts/cip/core.py +0 -215
  694. package/.opencode/skills/design/scripts/cip/generate.py +0 -488
  695. package/.opencode/skills/design/scripts/cip/render-html.py +0 -424
  696. package/.opencode/skills/design/scripts/cip/search.py +0 -127
  697. package/.opencode/skills/design/scripts/icon/generate.py +0 -487
  698. package/.opencode/skills/design/scripts/logo/core.py +0 -175
  699. package/.opencode/skills/design/scripts/logo/generate.py +0 -363
  700. package/.opencode/skills/design/scripts/logo/search.py +0 -114
  701. package/.opencode/skills/design-system/SKILL.md +0 -244
  702. package/.opencode/skills/design-system/data/slide-backgrounds.csv +0 -11
  703. package/.opencode/skills/design-system/data/slide-charts.csv +0 -26
  704. package/.opencode/skills/design-system/data/slide-color-logic.csv +0 -14
  705. package/.opencode/skills/design-system/data/slide-copy.csv +0 -26
  706. package/.opencode/skills/design-system/data/slide-layout-logic.csv +0 -16
  707. package/.opencode/skills/design-system/data/slide-layouts.csv +0 -26
  708. package/.opencode/skills/design-system/data/slide-strategies.csv +0 -16
  709. package/.opencode/skills/design-system/data/slide-typography.csv +0 -15
  710. package/.opencode/skills/design-system/references/component-specs.md +0 -236
  711. package/.opencode/skills/design-system/references/component-tokens.md +0 -214
  712. package/.opencode/skills/design-system/references/primitive-tokens.md +0 -203
  713. package/.opencode/skills/design-system/references/semantic-tokens.md +0 -215
  714. package/.opencode/skills/design-system/references/states-and-variants.md +0 -241
  715. package/.opencode/skills/design-system/references/tailwind-integration.md +0 -251
  716. package/.opencode/skills/design-system/references/token-architecture.md +0 -224
  717. package/.opencode/skills/design-system/scripts/embed-tokens.cjs +0 -99
  718. package/.opencode/skills/design-system/scripts/fetch-background.py +0 -317
  719. package/.opencode/skills/design-system/scripts/generate-slide.py +0 -753
  720. package/.opencode/skills/design-system/scripts/generate-tokens.cjs +0 -205
  721. package/.opencode/skills/design-system/scripts/html-token-validator.py +0 -327
  722. package/.opencode/skills/design-system/scripts/search-slides.py +0 -218
  723. package/.opencode/skills/design-system/scripts/slide-token-validator.py +0 -35
  724. package/.opencode/skills/design-system/scripts/slide_search_core.py +0 -453
  725. package/.opencode/skills/design-system/scripts/validate-tokens.cjs +0 -251
  726. package/.opencode/skills/design-system/templates/design-tokens-starter.json +0 -143
  727. package/.opencode/skills/devops/SKILL.md +0 -288
  728. package/.opencode/skills/devops/references/browser-rendering.md +0 -305
  729. package/.opencode/skills/devops/references/cloudflare-d1-kv.md +0 -123
  730. package/.opencode/skills/devops/references/cloudflare-platform.md +0 -271
  731. package/.opencode/skills/devops/references/cloudflare-r2-storage.md +0 -280
  732. package/.opencode/skills/devops/references/cloudflare-workers-advanced.md +0 -312
  733. package/.opencode/skills/devops/references/cloudflare-workers-apis.md +0 -309
  734. package/.opencode/skills/devops/references/cloudflare-workers-basics.md +0 -418
  735. package/.opencode/skills/devops/references/docker-basics.md +0 -297
  736. package/.opencode/skills/devops/references/docker-compose.md +0 -292
  737. package/.opencode/skills/devops/references/gcloud-platform.md +0 -297
  738. package/.opencode/skills/devops/references/gcloud-services.md +0 -304
  739. package/.opencode/skills/devops/references/kubernetes-basics.md +0 -99
  740. package/.opencode/skills/devops/references/kubernetes-helm-advanced.md +0 -75
  741. package/.opencode/skills/devops/references/kubernetes-helm.md +0 -81
  742. package/.opencode/skills/devops/references/kubernetes-kubectl.md +0 -74
  743. package/.opencode/skills/devops/references/kubernetes-security-advanced.md +0 -98
  744. package/.opencode/skills/devops/references/kubernetes-security.md +0 -95
  745. package/.opencode/skills/devops/references/kubernetes-troubleshooting-advanced.md +0 -74
  746. package/.opencode/skills/devops/references/kubernetes-troubleshooting.md +0 -49
  747. package/.opencode/skills/devops/references/kubernetes-workflows-advanced.md +0 -75
  748. package/.opencode/skills/devops/references/kubernetes-workflows.md +0 -78
  749. package/.opencode/skills/devops/scripts/cloudflare_deploy.py +0 -269
  750. package/.opencode/skills/devops/scripts/docker_optimize.py +0 -331
  751. package/.opencode/skills/devops/scripts/requirements.txt +0 -20
  752. package/.opencode/skills/docs/SKILL.md +0 -23
  753. package/.opencode/skills/docs/references/init-workflow.md +0 -32
  754. package/.opencode/skills/docs/references/init.md +0 -23
  755. package/.opencode/skills/docs/references/llms.md +0 -8
  756. package/.opencode/skills/docs/references/summarize-workflow.md +0 -18
  757. package/.opencode/skills/docs/references/summarize.md +0 -18
  758. package/.opencode/skills/docs/references/update-workflow.md +0 -59
  759. package/.opencode/skills/docs/references/update.md +0 -32
  760. package/.opencode/skills/docs-seeker/SKILL.md +0 -100
  761. package/.opencode/skills/docs-seeker/package.json +0 -25
  762. package/.opencode/skills/docs-seeker/references/advanced.md +0 -79
  763. package/.opencode/skills/docs-seeker/references/context7-patterns.md +0 -68
  764. package/.opencode/skills/docs-seeker/references/errors.md +0 -68
  765. package/.opencode/skills/docs-seeker/scripts/analyze-llms-txt.js +0 -211
  766. package/.opencode/skills/docs-seeker/scripts/detect-topic.js +0 -172
  767. package/.opencode/skills/docs-seeker/scripts/fetch-docs.js +0 -213
  768. package/.opencode/skills/docs-seeker/scripts/utils/env-loader.js +0 -94
  769. package/.opencode/skills/docs-seeker/workflows/library-search.md +0 -87
  770. package/.opencode/skills/docs-seeker/workflows/repo-analysis.md +0 -91
  771. package/.opencode/skills/docs-seeker/workflows/topic-search.md +0 -77
  772. package/.opencode/skills/elevenlabs/README.md +0 -57
  773. package/.opencode/skills/elevenlabs/SKILL.md +0 -97
  774. package/.opencode/skills/elevenlabs/references/available-models.md +0 -720
  775. package/.opencode/skills/elevenlabs/references/conversational-ai-agents-guide.md +0 -168
  776. package/.opencode/skills/elevenlabs/references/sound-effects-and-music-generation-guide.md +0 -131
  777. package/.opencode/skills/elevenlabs/references/text-to-speech-guide.md +0 -132
  778. package/.opencode/skills/elevenlabs/references/voice-cloning-guide.md +0 -94
  779. package/.opencode/skills/elevenlabs/references/voice-design-prompting-guide.md +0 -96
  780. package/.opencode/skills/elevenlabs/requirements.txt +0 -1
  781. package/.opencode/skills/elevenlabs/scripts/elevenlabs-sound-effects-generator.py +0 -108
  782. package/.opencode/skills/elevenlabs/scripts/elevenlabs-text-to-speech-generator.py +0 -184
  783. package/.opencode/skills/elevenlabs/scripts/elevenlabs-voice-cloner.py +0 -127
  784. package/.opencode/skills/elevenlabs/scripts/elevenlabs-voice-manager.py +0 -194
  785. package/.opencode/skills/email/SKILL.md +0 -56
  786. package/.opencode/skills/email/references/automation-flows.md +0 -429
  787. package/.opencode/skills/email/references/deliverability-checklist.md +0 -73
  788. package/.opencode/skills/email/references/email-templates.md +0 -127
  789. package/.opencode/skills/email/references/flow.md +0 -165
  790. package/.opencode/skills/email/references/sequence.md +0 -166
  791. package/.opencode/skills/email/references/subject-line-formulas.md +0 -67
  792. package/.opencode/skills/find-skills/SKILL.md +0 -137
  793. package/.opencode/skills/fix/SKILL.md +0 -75
  794. package/.opencode/skills/fix/references/complexity-assessment.md +0 -61
  795. package/.opencode/skills/fix/references/diagnosis-protocol.md +0 -133
  796. package/.opencode/skills/fix/references/mode-selection.md +0 -46
  797. package/.opencode/skills/fix/references/parallel-exploration.md +0 -77
  798. package/.opencode/skills/fix/references/prevention-gate.md +0 -87
  799. package/.opencode/skills/fix/references/review-cycle.md +0 -77
  800. package/.opencode/skills/fix/references/skill-activation-matrix.md +0 -65
  801. package/.opencode/skills/fix/references/task-orchestration.md +0 -110
  802. package/.opencode/skills/fix/references/workflow-ci.md +0 -28
  803. package/.opencode/skills/fix/references/workflow-deep.md +0 -91
  804. package/.opencode/skills/fix/references/workflow-logs.md +0 -36
  805. package/.opencode/skills/fix/references/workflow-quick.md +0 -59
  806. package/.opencode/skills/fix/references/workflow-standard.md +0 -86
  807. package/.opencode/skills/fix/references/workflow-test.md +0 -36
  808. package/.opencode/skills/fix/references/workflow-types.md +0 -33
  809. package/.opencode/skills/fix/references/workflow-ui.md +0 -37
  810. package/.opencode/skills/form-cro/SKILL.md +0 -429
  811. package/.opencode/skills/free-tool-strategy/SKILL.md +0 -580
  812. package/.opencode/skills/frontend-design/SKILL.md +0 -81
  813. package/.opencode/skills/frontend-design/references/ai-multimodal-overview.md +0 -165
  814. package/.opencode/skills/frontend-design/references/analysis-best-practices.md +0 -80
  815. package/.opencode/skills/frontend-design/references/analysis-prompts.md +0 -141
  816. package/.opencode/skills/frontend-design/references/analysis-techniques.md +0 -118
  817. package/.opencode/skills/frontend-design/references/animejs.md +0 -396
  818. package/.opencode/skills/frontend-design/references/anti-slop-rules.md +0 -103
  819. package/.opencode/skills/frontend-design/references/asset-generation.md +0 -337
  820. package/.opencode/skills/frontend-design/references/bento-motion-engine.md +0 -142
  821. package/.opencode/skills/frontend-design/references/design-extraction-overview.md +0 -71
  822. package/.opencode/skills/frontend-design/references/extraction-best-practices.md +0 -141
  823. package/.opencode/skills/frontend-design/references/extraction-output-templates.md +0 -162
  824. package/.opencode/skills/frontend-design/references/extraction-prompts.md +0 -127
  825. package/.opencode/skills/frontend-design/references/magicui-components.md +0 -129
  826. package/.opencode/skills/frontend-design/references/performance-guardrails.md +0 -169
  827. package/.opencode/skills/frontend-design/references/premium-design-patterns.md +0 -93
  828. package/.opencode/skills/frontend-design/references/redesign-audit-checklist.md +0 -114
  829. package/.opencode/skills/frontend-design/references/technical-accessibility.md +0 -119
  830. package/.opencode/skills/frontend-design/references/technical-best-practices.md +0 -97
  831. package/.opencode/skills/frontend-design/references/technical-optimization.md +0 -44
  832. package/.opencode/skills/frontend-design/references/technical-overview.md +0 -90
  833. package/.opencode/skills/frontend-design/references/technical-workflows.md +0 -150
  834. package/.opencode/skills/frontend-design/references/visual-analysis-overview.md +0 -95
  835. package/.opencode/skills/frontend-design/references/workflow-3d.md +0 -102
  836. package/.opencode/skills/frontend-design/references/workflow-describe.md +0 -87
  837. package/.opencode/skills/frontend-design/references/workflow-immersive.md +0 -87
  838. package/.opencode/skills/frontend-design/references/workflow-quick.md +0 -57
  839. package/.opencode/skills/frontend-design/references/workflow-screenshot.md +0 -63
  840. package/.opencode/skills/frontend-design/references/workflow-video.md +0 -74
  841. package/.opencode/skills/frontend-development/SKILL.md +0 -403
  842. package/.opencode/skills/frontend-development/resources/common-patterns.md +0 -331
  843. package/.opencode/skills/frontend-development/resources/complete-examples.md +0 -872
  844. package/.opencode/skills/frontend-development/resources/component-patterns.md +0 -502
  845. package/.opencode/skills/frontend-development/resources/data-fetching.md +0 -767
  846. package/.opencode/skills/frontend-development/resources/file-organization.md +0 -502
  847. package/.opencode/skills/frontend-development/resources/loading-and-error-states.md +0 -501
  848. package/.opencode/skills/frontend-development/resources/performance.md +0 -406
  849. package/.opencode/skills/frontend-development/resources/routing-guide.md +0 -364
  850. package/.opencode/skills/frontend-development/resources/styling-guide.md +0 -428
  851. package/.opencode/skills/frontend-development/resources/typescript-standards.md +0 -418
  852. package/.opencode/skills/funnel/SKILL.md +0 -82
  853. package/.opencode/skills/gamification-marketing/SKILL.md +0 -95
  854. package/.opencode/skills/gamification-marketing/references/analytics-events.md +0 -84
  855. package/.opencode/skills/gamification-marketing/references/campaign-templates.md +0 -80
  856. package/.opencode/skills/gamification-marketing/references/case-studies.md +0 -60
  857. package/.opencode/skills/gamification-marketing/references/challenge-configs.md +0 -86
  858. package/.opencode/skills/gamification-marketing/references/database-schema.md +0 -98
  859. package/.opencode/skills/gamification-marketing/references/implementation-guide.md +0 -57
  860. package/.opencode/skills/gamification-marketing/references/kpi-tracking.md +0 -53
  861. package/.opencode/skills/gamification-marketing/references/mechanics-selection.md +0 -81
  862. package/.opencode/skills/gamification-marketing/references/psychology-frameworks.md +0 -96
  863. package/.opencode/skills/git/SKILL.md +0 -101
  864. package/.opencode/skills/git/references/branch-management.md +0 -88
  865. package/.opencode/skills/git/references/commit-standards.md +0 -45
  866. package/.opencode/skills/git/references/gh-cli-guide.md +0 -109
  867. package/.opencode/skills/git/references/safety-protocols.md +0 -69
  868. package/.opencode/skills/git/references/workflow-commit.md +0 -56
  869. package/.opencode/skills/git/references/workflow-merge.md +0 -48
  870. package/.opencode/skills/git/references/workflow-pr.md +0 -58
  871. package/.opencode/skills/git/references/workflow-push.md +0 -52
  872. package/.opencode/skills/gkg/SKILL.md +0 -94
  873. package/.opencode/skills/gkg/references/cli-commands.md +0 -106
  874. package/.opencode/skills/gkg/references/http-api.md +0 -102
  875. package/.opencode/skills/gkg/references/language-support.md +0 -57
  876. package/.opencode/skills/gkg/references/mcp-tools.md +0 -99
  877. package/.opencode/skills/google-adk-python/SKILL.md +0 -246
  878. package/.opencode/skills/google-adk-python/references/agent-types-and-architecture.md +0 -128
  879. package/.opencode/skills/google-adk-python/references/callbacks-plugins-observability.md +0 -117
  880. package/.opencode/skills/google-adk-python/references/deployment-cloud-run-vertex-gke.md +0 -138
  881. package/.opencode/skills/google-adk-python/references/evaluation-testing-cli.md +0 -112
  882. package/.opencode/skills/google-adk-python/references/multi-agent-and-a2a-protocol.md +0 -145
  883. package/.opencode/skills/google-adk-python/references/sessions-state-memory-artifacts.md +0 -131
  884. package/.opencode/skills/google-adk-python/references/tools-and-mcp-integration.md +0 -146
  885. package/.opencode/skills/hub/SKILL.md +0 -55
  886. package/.opencode/skills/init/SKILL.md +0 -219
  887. package/.opencode/skills/journal/SKILL.md +0 -22
  888. package/.opencode/skills/kanban/SKILL.md +0 -69
  889. package/.opencode/skills/kit-builder/SKILL.md +0 -85
  890. package/.opencode/skills/kit-builder/references/agent-guide.md +0 -79
  891. package/.opencode/skills/kit-builder/references/best-practices.md +0 -117
  892. package/.opencode/skills/kit-builder/references/command-guide.md +0 -91
  893. package/.opencode/skills/kit-builder/references/marketing-checklist.md +0 -121
  894. package/.opencode/skills/kit-builder/references/skill-guide.md +0 -74
  895. package/.opencode/skills/kit-builder/references/workflow-guide.md +0 -113
  896. package/.opencode/skills/kit-builder/scripts/init_component.py +0 -260
  897. package/.opencode/skills/kit-builder/templates/agent-template.md +0 -48
  898. package/.opencode/skills/kit-builder/templates/command-template.md +0 -37
  899. package/.opencode/skills/kit-builder/templates/skill-template.md +0 -53
  900. package/.opencode/skills/kit-builder/templates/workflow-template.md +0 -80
  901. package/.opencode/skills/launch-strategy/SKILL.md +0 -348
  902. package/.opencode/skills/llms/SKILL.md +0 -120
  903. package/.opencode/skills/llms/references/llms-txt-specification.md +0 -87
  904. package/.opencode/skills/llms/scripts/generate-llms-txt.py +0 -350
  905. package/.opencode/skills/logo-design/SKILL.md +0 -156
  906. package/.opencode/skills/logo-design/data/colors.csv +0 -56
  907. package/.opencode/skills/logo-design/data/industries.csv +0 -56
  908. package/.opencode/skills/logo-design/data/styles.csv +0 -56
  909. package/.opencode/skills/logo-design/references/color-psychology.md +0 -101
  910. package/.opencode/skills/logo-design/references/prompt-engineering.md +0 -158
  911. package/.opencode/skills/logo-design/references/style-guide.md +0 -109
  912. package/.opencode/skills/logo-design/scripts/core.py +0 -175
  913. package/.opencode/skills/logo-design/scripts/generate.py +0 -363
  914. package/.opencode/skills/logo-design/scripts/search.py +0 -114
  915. package/.opencode/skills/markdown-novel-viewer/SKILL.md +0 -285
  916. package/.opencode/skills/markdown-novel-viewer/assets/directory-browser.css +0 -215
  917. package/.opencode/skills/markdown-novel-viewer/assets/novel-theme.css +0 -872
  918. package/.opencode/skills/markdown-novel-viewer/assets/reader.js +0 -357
  919. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-base.css +0 -54
  920. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-components.css +0 -188
  921. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-content.css +0 -178
  922. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-header.css +0 -217
  923. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-mermaid.css +0 -153
  924. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-overlays.css +0 -202
  925. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-responsive.css +0 -285
  926. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-sidebar.css +0 -358
  927. package/.opencode/skills/markdown-novel-viewer/assets/styles/novel-theme-variables.css +0 -56
  928. package/.opencode/skills/markdown-novel-viewer/assets/template.html +0 -85
  929. package/.opencode/skills/markdown-novel-viewer/bun.lock +0 -38
  930. package/.opencode/skills/markdown-novel-viewer/package.json +0 -15
  931. package/.opencode/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +0 -434
  932. package/.opencode/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +0 -335
  933. package/.opencode/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +0 -509
  934. package/.opencode/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +0 -48
  935. package/.opencode/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +0 -150
  936. package/.opencode/skills/markdown-novel-viewer/scripts/server.cjs +0 -411
  937. package/.opencode/skills/marketing-dashboard/README.md +0 -363
  938. package/.opencode/skills/marketing-dashboard/SKILL.md +0 -84
  939. package/.opencode/skills/marketing-dashboard/app/README.md +0 -5
  940. package/.opencode/skills/marketing-dashboard/app/index.html +0 -13
  941. package/.opencode/skills/marketing-dashboard/app/package.json +0 -31
  942. package/.opencode/skills/marketing-dashboard/app/postcss.config.js +0 -5
  943. package/.opencode/skills/marketing-dashboard/app/public/vite.svg +0 -1
  944. package/.opencode/skills/marketing-dashboard/app/src/App.vue +0 -9
  945. package/.opencode/skills/marketing-dashboard/app/src/assets/vue.svg +0 -1
  946. package/.opencode/skills/marketing-dashboard/app/src/components/assets/AssetCard.vue +0 -338
  947. package/.opencode/skills/marketing-dashboard/app/src/components/assets/AssetGrid.vue +0 -673
  948. package/.opencode/skills/marketing-dashboard/app/src/components/assets/AssetPreview.vue +0 -530
  949. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/CodePreview.vue +0 -402
  950. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/ImagePreview.vue +0 -282
  951. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/InfographicPreview.vue +0 -167
  952. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/JsonVisualizer.vue +0 -548
  953. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/MarkdownPreview.vue +0 -774
  954. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/SlidePreview.vue +0 -341
  955. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/SocialPostPreview.vue +0 -505
  956. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/StoryboardPreview.vue +0 -311
  957. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/TranscriptPreview.vue +0 -350
  958. package/.opencode/skills/marketing-dashboard/app/src/components/assets/previews/VideoPreview.vue +0 -351
  959. package/.opencode/skills/marketing-dashboard/app/src/components/brand/ColorPalette.vue +0 -131
  960. package/.opencode/skills/marketing-dashboard/app/src/components/brand/ComponentShowcase.vue +0 -188
  961. package/.opencode/skills/marketing-dashboard/app/src/components/brand/LogoGallery.vue +0 -167
  962. package/.opencode/skills/marketing-dashboard/app/src/components/brand/SpacingScale.vue +0 -33
  963. package/.opencode/skills/marketing-dashboard/app/src/components/brand/TypographyPreview.vue +0 -97
  964. package/.opencode/skills/marketing-dashboard/app/src/components/brand/VoiceSummary.vue +0 -92
  965. package/.opencode/skills/marketing-dashboard/app/src/components/common/LoadingSpinner.vue +0 -75
  966. package/.opencode/skills/marketing-dashboard/app/src/components/common/Modal.vue +0 -60
  967. package/.opencode/skills/marketing-dashboard/app/src/components/common/Toast.vue +0 -119
  968. package/.opencode/skills/marketing-dashboard/app/src/components/layout/AppHeader.vue +0 -17
  969. package/.opencode/skills/marketing-dashboard/app/src/components/layout/AppLayout.vue +0 -16
  970. package/.opencode/skills/marketing-dashboard/app/src/components/layout/AppSidebar.vue +0 -103
  971. package/.opencode/skills/marketing-dashboard/app/src/config.js +0 -1
  972. package/.opencode/skills/marketing-dashboard/app/src/main.js +0 -12
  973. package/.opencode/skills/marketing-dashboard/app/src/router/index.js +0 -33
  974. package/.opencode/skills/marketing-dashboard/app/src/stores/assets.js +0 -108
  975. package/.opencode/skills/marketing-dashboard/app/src/stores/brand.js +0 -94
  976. package/.opencode/skills/marketing-dashboard/app/src/style.css +0 -72
  977. package/.opencode/skills/marketing-dashboard/app/src/views/AssetsView.vue +0 -109
  978. package/.opencode/skills/marketing-dashboard/app/src/views/BrandView.vue +0 -82
  979. package/.opencode/skills/marketing-dashboard/app/src/views/SettingsView.vue +0 -108
  980. package/.opencode/skills/marketing-dashboard/app/tailwind.config.js +0 -34
  981. package/.opencode/skills/marketing-dashboard/app/vite.config.js +0 -19
  982. package/.opencode/skills/marketing-dashboard/build.sh +0 -43
  983. package/.opencode/skills/marketing-dashboard/server/__tests__/ai.test.js +0 -456
  984. package/.opencode/skills/marketing-dashboard/server/__tests__/assets.test.js +0 -286
  985. package/.opencode/skills/marketing-dashboard/server/__tests__/brand-security.test.js +0 -183
  986. package/.opencode/skills/marketing-dashboard/server/__tests__/security-file-serving.test.js +0 -159
  987. package/.opencode/skills/marketing-dashboard/server/__tests__/test-db.js +0 -31
  988. package/.opencode/skills/marketing-dashboard/server/coverage_output.txt +0 -7
  989. package/.opencode/skills/marketing-dashboard/server/db/database.js +0 -61
  990. package/.opencode/skills/marketing-dashboard/server/db/schema.sql +0 -26
  991. package/.opencode/skills/marketing-dashboard/server/index.js +0 -105
  992. package/.opencode/skills/marketing-dashboard/server/lib/ai-bridge.cjs +0 -201
  993. package/.opencode/skills/marketing-dashboard/server/lib/brand-context.cjs +0 -118
  994. package/.opencode/skills/marketing-dashboard/server/lib/scanner.cjs +0 -440
  995. package/.opencode/skills/marketing-dashboard/server/middleware/auth.js +0 -48
  996. package/.opencode/skills/marketing-dashboard/server/package.json +0 -31
  997. package/.opencode/skills/marketing-dashboard/server/routes/assets.js +0 -269
  998. package/.opencode/skills/marketing-dashboard/server/routes/brand.js +0 -143
  999. package/.opencode/skills/marketing-dashboard/server/vitest.config.js +0 -23
  1000. package/.opencode/skills/marketing-dashboard/start-production.sh +0 -55
  1001. package/.opencode/skills/marketing-dashboard/start.sh +0 -63
  1002. package/.opencode/skills/marketing-dashboard/stop.sh +0 -54
  1003. package/.opencode/skills/marketing-dashboard/temp/enhance/enhance-1766508537903.md +0 -7
  1004. package/.opencode/skills/marketing-ideas/SKILL.md +0 -569
  1005. package/.opencode/skills/marketing-planning/SKILL.md +0 -122
  1006. package/.opencode/skills/marketing-planning/references/brand-context.md +0 -54
  1007. package/.opencode/skills/marketing-planning/references/output-standards.md +0 -117
  1008. package/.opencode/skills/marketing-planning/references/plan-organization.md +0 -109
  1009. package/.opencode/skills/marketing-planning/references/research-phase.md +0 -39
  1010. package/.opencode/skills/marketing-planning/references/strategy-design.md +0 -61
  1011. package/.opencode/skills/marketing-psychology/SKILL.md +0 -455
  1012. package/.opencode/skills/marketing-research/SKILL.md +0 -172
  1013. package/.opencode/skills/mcp-builder/LICENSE.txt +0 -202
  1014. package/.opencode/skills/mcp-builder/SKILL.md +0 -332
  1015. package/.opencode/skills/mcp-builder/reference/evaluation.md +0 -602
  1016. package/.opencode/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
  1017. package/.opencode/skills/mcp-builder/reference/node_mcp_server.md +0 -916
  1018. package/.opencode/skills/mcp-builder/reference/python_mcp_server.md +0 -752
  1019. package/.opencode/skills/mcp-builder/scripts/connections.py +0 -151
  1020. package/.opencode/skills/mcp-builder/scripts/evaluation.py +0 -373
  1021. package/.opencode/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
  1022. package/.opencode/skills/mcp-builder/scripts/requirements.txt +0 -2
  1023. package/.opencode/skills/mcp-management/README.md +0 -219
  1024. package/.opencode/skills/mcp-management/SKILL.md +0 -213
  1025. package/.opencode/skills/mcp-management/assets/tools.json +0 -3146
  1026. package/.opencode/skills/mcp-management/references/configuration.md +0 -114
  1027. package/.opencode/skills/mcp-management/references/gemini-cli-integration.md +0 -215
  1028. package/.opencode/skills/mcp-management/references/mcp-protocol.md +0 -116
  1029. package/.opencode/skills/mcp-management/scripts/.env.example +0 -10
  1030. package/.opencode/skills/mcp-management/scripts/cli.ts +0 -195
  1031. package/.opencode/skills/mcp-management/scripts/mcp-client.ts +0 -230
  1032. package/.opencode/skills/mcp-management/scripts/package.json +0 -20
  1033. package/.opencode/skills/mcp-management/scripts/tsconfig.json +0 -15
  1034. package/.opencode/skills/media-processing/SKILL.md +0 -95
  1035. package/.opencode/skills/media-processing/references/common-workflows.md +0 -132
  1036. package/.opencode/skills/media-processing/references/ffmpeg-encoding.md +0 -358
  1037. package/.opencode/skills/media-processing/references/ffmpeg-filters.md +0 -503
  1038. package/.opencode/skills/media-processing/references/ffmpeg-streaming.md +0 -403
  1039. package/.opencode/skills/media-processing/references/format-compatibility.md +0 -375
  1040. package/.opencode/skills/media-processing/references/imagemagick-batch.md +0 -612
  1041. package/.opencode/skills/media-processing/references/imagemagick-editing.md +0 -623
  1042. package/.opencode/skills/media-processing/references/rmbg-background-removal.md +0 -66
  1043. package/.opencode/skills/media-processing/references/troubleshooting.md +0 -109
  1044. package/.opencode/skills/media-processing/scripts/README.md +0 -111
  1045. package/.opencode/skills/media-processing/scripts/batch-remove-background.sh +0 -124
  1046. package/.opencode/skills/media-processing/scripts/batch_resize.py +0 -342
  1047. package/.opencode/skills/media-processing/scripts/media_convert.py +0 -311
  1048. package/.opencode/skills/media-processing/scripts/remove-background.sh +0 -96
  1049. package/.opencode/skills/media-processing/scripts/remove-bg-node.js +0 -158
  1050. package/.opencode/skills/media-processing/scripts/requirements.txt +0 -24
  1051. package/.opencode/skills/media-processing/scripts/video_optimize.py +0 -414
  1052. package/.opencode/skills/mermaidjs-v11/SKILL.md +0 -119
  1053. package/.opencode/skills/mermaidjs-v11/references/cli-usage.md +0 -228
  1054. package/.opencode/skills/mermaidjs-v11/references/configuration.md +0 -232
  1055. package/.opencode/skills/mermaidjs-v11/references/diagram-types.md +0 -315
  1056. package/.opencode/skills/mermaidjs-v11/references/examples.md +0 -344
  1057. package/.opencode/skills/mermaidjs-v11/references/integration.md +0 -310
  1058. package/.opencode/skills/mintlify/SKILL.md +0 -123
  1059. package/.opencode/skills/mintlify/references/ai-features-and-integrations-reference.md +0 -756
  1060. package/.opencode/skills/mintlify/references/api-documentation-components-reference.md +0 -873
  1061. package/.opencode/skills/mintlify/references/deployment-and-continuous-integration-reference.md +0 -674
  1062. package/.opencode/skills/mintlify/references/docs-json-configuration-reference.md +0 -724
  1063. package/.opencode/skills/mintlify/references/mdx-components-reference.md +0 -551
  1064. package/.opencode/skills/mintlify/references/navigation-structure-and-organization-reference.md +0 -775
  1065. package/.opencode/skills/mobile-development/SKILL.md +0 -215
  1066. package/.opencode/skills/mobile-development/references/mobile-android.md +0 -604
  1067. package/.opencode/skills/mobile-development/references/mobile-best-practices.md +0 -545
  1068. package/.opencode/skills/mobile-development/references/mobile-debugging.md +0 -1089
  1069. package/.opencode/skills/mobile-development/references/mobile-frameworks.md +0 -465
  1070. package/.opencode/skills/mobile-development/references/mobile-ios.md +0 -496
  1071. package/.opencode/skills/mobile-development/references/mobile-mindset.md +0 -544
  1072. package/.opencode/skills/onboarding-cro/SKILL.md +0 -437
  1073. package/.opencode/skills/paid-ads/SKILL.md +0 -555
  1074. package/.opencode/skills/payment-integration/README.md +0 -217
  1075. package/.opencode/skills/payment-integration/SKILL.md +0 -156
  1076. package/.opencode/skills/payment-integration/references/creem/api.md +0 -139
  1077. package/.opencode/skills/payment-integration/references/creem/checkouts.md +0 -99
  1078. package/.opencode/skills/payment-integration/references/creem/licensing.md +0 -136
  1079. package/.opencode/skills/payment-integration/references/creem/overview.md +0 -65
  1080. package/.opencode/skills/payment-integration/references/creem/sdk.md +0 -161
  1081. package/.opencode/skills/payment-integration/references/creem/subscriptions.md +0 -129
  1082. package/.opencode/skills/payment-integration/references/creem/webhooks.md +0 -120
  1083. package/.opencode/skills/payment-integration/references/implementation-workflows.md +0 -43
  1084. package/.opencode/skills/payment-integration/references/multi-provider-order-management-patterns.md +0 -821
  1085. package/.opencode/skills/payment-integration/references/paddle/api.md +0 -116
  1086. package/.opencode/skills/payment-integration/references/paddle/best-practices.md +0 -130
  1087. package/.opencode/skills/payment-integration/references/paddle/overview.md +0 -57
  1088. package/.opencode/skills/payment-integration/references/paddle/paddle-js.md +0 -106
  1089. package/.opencode/skills/payment-integration/references/paddle/sdk.md +0 -131
  1090. package/.opencode/skills/payment-integration/references/paddle/subscriptions.md +0 -118
  1091. package/.opencode/skills/payment-integration/references/paddle/webhooks.md +0 -112
  1092. package/.opencode/skills/payment-integration/references/polar/benefits.md +0 -396
  1093. package/.opencode/skills/payment-integration/references/polar/best-practices.md +0 -902
  1094. package/.opencode/skills/payment-integration/references/polar/checkouts.md +0 -266
  1095. package/.opencode/skills/payment-integration/references/polar/overview.md +0 -184
  1096. package/.opencode/skills/payment-integration/references/polar/products.md +0 -244
  1097. package/.opencode/skills/payment-integration/references/polar/sdk.md +0 -436
  1098. package/.opencode/skills/payment-integration/references/polar/subscriptions.md +0 -340
  1099. package/.opencode/skills/payment-integration/references/polar/webhooks.md +0 -405
  1100. package/.opencode/skills/payment-integration/references/sepay/api.md +0 -140
  1101. package/.opencode/skills/payment-integration/references/sepay/best-practices.md +0 -939
  1102. package/.opencode/skills/payment-integration/references/sepay/overview.md +0 -138
  1103. package/.opencode/skills/payment-integration/references/sepay/qr-codes.md +0 -228
  1104. package/.opencode/skills/payment-integration/references/sepay/sdk.md +0 -213
  1105. package/.opencode/skills/payment-integration/references/sepay/webhooks.md +0 -208
  1106. package/.opencode/skills/payment-integration/references/stripe/stripe-best-practices.md +0 -32
  1107. package/.opencode/skills/payment-integration/references/stripe/stripe-cli.md +0 -148
  1108. package/.opencode/skills/payment-integration/references/stripe/stripe-js.md +0 -116
  1109. package/.opencode/skills/payment-integration/references/stripe/stripe-sdks.md +0 -84
  1110. package/.opencode/skills/payment-integration/references/stripe/stripe-upgrade.md +0 -175
  1111. package/.opencode/skills/payment-integration/scripts/checkout-helper.js +0 -244
  1112. package/.opencode/skills/payment-integration/scripts/package.json +0 -17
  1113. package/.opencode/skills/payment-integration/scripts/polar-webhook-verify.js +0 -202
  1114. package/.opencode/skills/payment-integration/scripts/sepay-webhook-verify.js +0 -193
  1115. package/.opencode/skills/payment-integration/scripts/test-scripts.js +0 -237
  1116. package/.opencode/skills/persona/SKILL.md +0 -66
  1117. package/.opencode/skills/plan/SKILL.md +0 -53
  1118. package/.opencode/skills/plan/references/archive.md +0 -52
  1119. package/.opencode/skills/plan/references/ci.md +0 -28
  1120. package/.opencode/skills/plan/references/cro.md +0 -64
  1121. package/.opencode/skills/plan/references/fast.md +0 -61
  1122. package/.opencode/skills/plan/references/hard.md +0 -87
  1123. package/.opencode/skills/plan/references/parallel.md +0 -124
  1124. package/.opencode/skills/plan/references/two.md +0 -40
  1125. package/.opencode/skills/plan/references/validate.md +0 -112
  1126. package/.opencode/skills/plans-kanban/SKILL.md +0 -170
  1127. package/.opencode/skills/plans-kanban/assets/dashboard-template.html +0 -119
  1128. package/.opencode/skills/plans-kanban/assets/dashboard.css +0 -1594
  1129. package/.opencode/skills/plans-kanban/assets/dashboard.js +0 -596
  1130. package/.opencode/skills/plans-kanban/package.json +0 -13
  1131. package/.opencode/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +0 -884
  1132. package/.opencode/skills/plans-kanban/scripts/lib/http-server.cjs +0 -310
  1133. package/.opencode/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +0 -489
  1134. package/.opencode/skills/plans-kanban/scripts/lib/plan-parser.cjs +0 -175
  1135. package/.opencode/skills/plans-kanban/scripts/lib/plan-scanner.cjs +0 -272
  1136. package/.opencode/skills/plans-kanban/scripts/lib/port-finder.cjs +0 -48
  1137. package/.opencode/skills/plans-kanban/scripts/lib/process-mgr.cjs +0 -126
  1138. package/.opencode/skills/plans-kanban/scripts/server.cjs +0 -253
  1139. package/.opencode/skills/play/SKILL.md +0 -111
  1140. package/.opencode/skills/play/references/blocked.md +0 -55
  1141. package/.opencode/skills/play/references/create.md +0 -48
  1142. package/.opencode/skills/play/references/gate.md +0 -38
  1143. package/.opencode/skills/play/references/goals.md +0 -53
  1144. package/.opencode/skills/play/references/learn.md +0 -48
  1145. package/.opencode/skills/play/references/list.md +0 -34
  1146. package/.opencode/skills/play/references/next.md +0 -51
  1147. package/.opencode/skills/play/references/reset.md +0 -34
  1148. package/.opencode/skills/play/references/status.md +0 -56
  1149. package/.opencode/skills/play/references/templates.md +0 -38
  1150. package/.opencode/skills/play/scripts/goals.cjs +0 -229
  1151. package/.opencode/skills/play/scripts/graph.cjs +0 -331
  1152. package/.opencode/skills/play/scripts/manifest.cjs +0 -474
  1153. package/.opencode/skills/play/scripts/metrics-bridge.cjs +0 -355
  1154. package/.opencode/skills/play/scripts/metrics-email.cjs +0 -182
  1155. package/.opencode/skills/play/scripts/metrics-social.cjs +0 -151
  1156. package/.opencode/skills/play/scripts/smart-suggest.cjs +0 -292
  1157. package/.opencode/skills/play/scripts/template-loader.cjs +0 -359
  1158. package/.opencode/skills/play/templates/_schema.json +0 -150
  1159. package/.opencode/skills/play/templates/campaign-sprint.json +0 -195
  1160. package/.opencode/skills/play/templates/content-engine.json +0 -348
  1161. package/.opencode/skills/play/templates/product-hunt-launch.json +0 -210
  1162. package/.opencode/skills/play/templates/saas-launch.json +0 -224
  1163. package/.opencode/skills/preview/SKILL.md +0 -87
  1164. package/.opencode/skills/preview/references/generation-modes.md +0 -192
  1165. package/.opencode/skills/preview/references/html-css-patterns.md +0 -1717
  1166. package/.opencode/skills/preview/references/html-design-guidelines.md +0 -393
  1167. package/.opencode/skills/preview/references/html-libraries.md +0 -592
  1168. package/.opencode/skills/preview/references/html-responsive-nav.md +0 -212
  1169. package/.opencode/skills/preview/references/html-slide-patterns.md +0 -1401
  1170. package/.opencode/skills/preview/references/view-mode.md +0 -42
  1171. package/.opencode/skills/preview/templates/architecture.html +0 -650
  1172. package/.opencode/skills/preview/templates/data-table.html +0 -590
  1173. package/.opencode/skills/preview/templates/mermaid-flowchart.html +0 -768
  1174. package/.opencode/skills/preview/templates/slide-deck.html +0 -968
  1175. package/.opencode/skills/pricing-strategy/SKILL.md +0 -714
  1176. package/.opencode/skills/problem-solving/SKILL.md +0 -99
  1177. package/.opencode/skills/problem-solving/references/attribution.md +0 -69
  1178. package/.opencode/skills/problem-solving/references/collision-zone-thinking.md +0 -79
  1179. package/.opencode/skills/problem-solving/references/inversion-exercise.md +0 -91
  1180. package/.opencode/skills/problem-solving/references/meta-pattern-recognition.md +0 -87
  1181. package/.opencode/skills/problem-solving/references/scale-game.md +0 -95
  1182. package/.opencode/skills/problem-solving/references/simplification-cascades.md +0 -80
  1183. package/.opencode/skills/problem-solving/references/when-stuck.md +0 -72
  1184. package/.opencode/skills/project-management/SKILL.md +0 -136
  1185. package/.opencode/skills/project-management/references/documentation-triggers.md +0 -60
  1186. package/.opencode/skills/project-management/references/hydration-workflow.md +0 -89
  1187. package/.opencode/skills/project-management/references/progress-tracking.md +0 -120
  1188. package/.opencode/skills/project-management/references/reporting-patterns.md +0 -94
  1189. package/.opencode/skills/project-management/references/task-operations.md +0 -87
  1190. package/.opencode/skills/project-organization/SKILL.md +0 -228
  1191. package/.opencode/skills/project-organization/references/directory-patterns.md +0 -176
  1192. package/.opencode/skills/project-organization/references/markdown-body-templates.md +0 -311
  1193. package/.opencode/skills/project-organization/references/naming-conventions.md +0 -140
  1194. package/.opencode/skills/react-best-practices/AGENTS.md +0 -2249
  1195. package/.opencode/skills/react-best-practices/README.md +0 -123
  1196. package/.opencode/skills/react-best-practices/SKILL.md +0 -125
  1197. package/.opencode/skills/react-best-practices/metadata.json +0 -15
  1198. package/.opencode/skills/react-best-practices/rules/_sections.md +0 -46
  1199. package/.opencode/skills/react-best-practices/rules/_template.md +0 -28
  1200. package/.opencode/skills/react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  1201. package/.opencode/skills/react-best-practices/rules/advanced-use-latest.md +0 -49
  1202. package/.opencode/skills/react-best-practices/rules/async-api-routes.md +0 -38
  1203. package/.opencode/skills/react-best-practices/rules/async-defer-await.md +0 -80
  1204. package/.opencode/skills/react-best-practices/rules/async-dependencies.md +0 -36
  1205. package/.opencode/skills/react-best-practices/rules/async-parallel.md +0 -28
  1206. package/.opencode/skills/react-best-practices/rules/async-suspense-boundaries.md +0 -99
  1207. package/.opencode/skills/react-best-practices/rules/bundle-barrel-imports.md +0 -59
  1208. package/.opencode/skills/react-best-practices/rules/bundle-conditional.md +0 -31
  1209. package/.opencode/skills/react-best-practices/rules/bundle-defer-third-party.md +0 -49
  1210. package/.opencode/skills/react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  1211. package/.opencode/skills/react-best-practices/rules/bundle-preload.md +0 -50
  1212. package/.opencode/skills/react-best-practices/rules/client-event-listeners.md +0 -74
  1213. package/.opencode/skills/react-best-practices/rules/client-swr-dedup.md +0 -56
  1214. package/.opencode/skills/react-best-practices/rules/js-batch-dom-css.md +0 -82
  1215. package/.opencode/skills/react-best-practices/rules/js-cache-function-results.md +0 -80
  1216. package/.opencode/skills/react-best-practices/rules/js-cache-property-access.md +0 -28
  1217. package/.opencode/skills/react-best-practices/rules/js-cache-storage.md +0 -70
  1218. package/.opencode/skills/react-best-practices/rules/js-combine-iterations.md +0 -32
  1219. package/.opencode/skills/react-best-practices/rules/js-early-exit.md +0 -50
  1220. package/.opencode/skills/react-best-practices/rules/js-hoist-regexp.md +0 -45
  1221. package/.opencode/skills/react-best-practices/rules/js-index-maps.md +0 -37
  1222. package/.opencode/skills/react-best-practices/rules/js-length-check-first.md +0 -49
  1223. package/.opencode/skills/react-best-practices/rules/js-min-max-loop.md +0 -82
  1224. package/.opencode/skills/react-best-practices/rules/js-set-map-lookups.md +0 -24
  1225. package/.opencode/skills/react-best-practices/rules/js-tosorted-immutable.md +0 -57
  1226. package/.opencode/skills/react-best-practices/rules/rendering-activity.md +0 -26
  1227. package/.opencode/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  1228. package/.opencode/skills/react-best-practices/rules/rendering-conditional-render.md +0 -40
  1229. package/.opencode/skills/react-best-practices/rules/rendering-content-visibility.md +0 -38
  1230. package/.opencode/skills/react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  1231. package/.opencode/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  1232. package/.opencode/skills/react-best-practices/rules/rendering-svg-precision.md +0 -28
  1233. package/.opencode/skills/react-best-practices/rules/rerender-defer-reads.md +0 -39
  1234. package/.opencode/skills/react-best-practices/rules/rerender-dependencies.md +0 -45
  1235. package/.opencode/skills/react-best-practices/rules/rerender-derived-state.md +0 -29
  1236. package/.opencode/skills/react-best-practices/rules/rerender-functional-setstate.md +0 -74
  1237. package/.opencode/skills/react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  1238. package/.opencode/skills/react-best-practices/rules/rerender-memo.md +0 -44
  1239. package/.opencode/skills/react-best-practices/rules/rerender-transitions.md +0 -40
  1240. package/.opencode/skills/react-best-practices/rules/server-after-nonblocking.md +0 -73
  1241. package/.opencode/skills/react-best-practices/rules/server-cache-lru.md +0 -41
  1242. package/.opencode/skills/react-best-practices/rules/server-cache-react.md +0 -26
  1243. package/.opencode/skills/react-best-practices/rules/server-parallel-fetching.md +0 -79
  1244. package/.opencode/skills/react-best-practices/rules/server-serialization.md +0 -38
  1245. package/.opencode/skills/referral-program-building/SKILL.md +0 -81
  1246. package/.opencode/skills/referral-program-building/references/email-templates.md +0 -75
  1247. package/.opencode/skills/referral-program-building/references/fraud-prevention.md +0 -95
  1248. package/.opencode/skills/referral-program-building/references/metrics-tracking.md +0 -64
  1249. package/.opencode/skills/referral-program-building/references/platform-selection.md +0 -80
  1250. package/.opencode/skills/referral-program-building/references/reward-structures.md +0 -82
  1251. package/.opencode/skills/referral-program-building/references/technical-implementation.md +0 -98
  1252. package/.opencode/skills/remotion/SKILL.md +0 -45
  1253. package/.opencode/skills/remotion/rules/3d.md +0 -86
  1254. package/.opencode/skills/remotion/rules/animations.md +0 -29
  1255. package/.opencode/skills/remotion/rules/assets/charts-bar-chart.tsx +0 -173
  1256. package/.opencode/skills/remotion/rules/assets/text-animations-typewriter.tsx +0 -100
  1257. package/.opencode/skills/remotion/rules/assets/text-animations-word-highlight.tsx +0 -108
  1258. package/.opencode/skills/remotion/rules/assets.md +0 -78
  1259. package/.opencode/skills/remotion/rules/audio.md +0 -172
  1260. package/.opencode/skills/remotion/rules/calculate-metadata.md +0 -104
  1261. package/.opencode/skills/remotion/rules/can-decode.md +0 -75
  1262. package/.opencode/skills/remotion/rules/charts.md +0 -58
  1263. package/.opencode/skills/remotion/rules/compositions.md +0 -146
  1264. package/.opencode/skills/remotion/rules/display-captions.md +0 -126
  1265. package/.opencode/skills/remotion/rules/extract-frames.md +0 -229
  1266. package/.opencode/skills/remotion/rules/fonts.md +0 -152
  1267. package/.opencode/skills/remotion/rules/get-audio-duration.md +0 -58
  1268. package/.opencode/skills/remotion/rules/get-video-dimensions.md +0 -68
  1269. package/.opencode/skills/remotion/rules/get-video-duration.md +0 -58
  1270. package/.opencode/skills/remotion/rules/gifs.md +0 -138
  1271. package/.opencode/skills/remotion/rules/images.md +0 -130
  1272. package/.opencode/skills/remotion/rules/import-srt-captions.md +0 -67
  1273. package/.opencode/skills/remotion/rules/lottie.md +0 -68
  1274. package/.opencode/skills/remotion/rules/measuring-dom-nodes.md +0 -35
  1275. package/.opencode/skills/remotion/rules/measuring-text.md +0 -143
  1276. package/.opencode/skills/remotion/rules/sequencing.md +0 -106
  1277. package/.opencode/skills/remotion/rules/tailwind.md +0 -11
  1278. package/.opencode/skills/remotion/rules/text-animations.md +0 -20
  1279. package/.opencode/skills/remotion/rules/timing.md +0 -179
  1280. package/.opencode/skills/remotion/rules/transcribe-captions.md +0 -19
  1281. package/.opencode/skills/remotion/rules/transitions.md +0 -122
  1282. package/.opencode/skills/remotion/rules/trimming.md +0 -53
  1283. package/.opencode/skills/remotion/rules/videos.md +0 -171
  1284. package/.opencode/skills/repomix/SKILL.md +0 -251
  1285. package/.opencode/skills/repomix/references/configuration.md +0 -211
  1286. package/.opencode/skills/repomix/references/usage-patterns.md +0 -232
  1287. package/.opencode/skills/repomix/scripts/.coverage +0 -0
  1288. package/.opencode/skills/repomix/scripts/README.md +0 -179
  1289. package/.opencode/skills/repomix/scripts/repomix_batch.py +0 -455
  1290. package/.opencode/skills/repomix/scripts/repos.example.json +0 -15
  1291. package/.opencode/skills/repomix/scripts/requirements.txt +0 -15
  1292. package/.opencode/skills/research/SKILL.md +0 -176
  1293. package/.opencode/skills/retro/SKILL.md +0 -138
  1294. package/.opencode/skills/retro/references/metrics-guide.md +0 -133
  1295. package/.opencode/skills/retro/references/report-template.md +0 -110
  1296. package/.opencode/skills/scout/SKILL.md +0 -82
  1297. package/.opencode/skills/scout/references/external-scouting.md +0 -140
  1298. package/.opencode/skills/scout/references/internal-scouting.md +0 -119
  1299. package/.opencode/skills/scout/references/task-management-scouting.md +0 -125
  1300. package/.opencode/skills/security-scan/SKILL.md +0 -141
  1301. package/.opencode/skills/security-scan/references/secret-patterns.md +0 -77
  1302. package/.opencode/skills/security-scan/references/vulnerability-patterns.md +0 -105
  1303. package/.opencode/skills/seo/SKILL.md +0 -95
  1304. package/.opencode/skills/seo/references/audit.md +0 -121
  1305. package/.opencode/skills/seo/references/backlink-analysis-framework.md +0 -192
  1306. package/.opencode/skills/seo/references/browser-seo-audit-workflow.md +0 -180
  1307. package/.opencode/skills/seo/references/canonical-url-strategy.md +0 -286
  1308. package/.opencode/skills/seo/references/content-gap-analysis-framework.md +0 -255
  1309. package/.opencode/skills/seo/references/core-web-vitals-remediation.md +0 -279
  1310. package/.opencode/skills/seo/references/directory-submission-list.md +0 -280
  1311. package/.opencode/skills/seo/references/google-search-console-api-guide.md +0 -745
  1312. package/.opencode/skills/seo/references/internal-linking-automation.md +0 -685
  1313. package/.opencode/skills/seo/references/keyword-clustering-methodology.md +0 -175
  1314. package/.opencode/skills/seo/references/keyword-research-workflow.md +0 -63
  1315. package/.opencode/skills/seo/references/keywords.md +0 -131
  1316. package/.opencode/skills/seo/references/link-building-campaign-framework.md +0 -246
  1317. package/.opencode/skills/seo/references/meta-tag-templates.md +0 -229
  1318. package/.opencode/skills/seo/references/mobile-seo-checklist.md +0 -557
  1319. package/.opencode/skills/seo/references/on-page-seo-checklist-2025.md +0 -328
  1320. package/.opencode/skills/seo/references/outreach-email-templates.md +0 -335
  1321. package/.opencode/skills/seo/references/pseo-best-practices.md +0 -366
  1322. package/.opencode/skills/seo/references/pseo-scale-architecture.md +0 -801
  1323. package/.opencode/skills/seo/references/pseo-template-syntax.md +0 -329
  1324. package/.opencode/skills/seo/references/pseo-templates.md +0 -85
  1325. package/.opencode/skills/seo/references/pseo-url-structure-guide.md +0 -562
  1326. package/.opencode/skills/seo/references/pseo.md +0 -62
  1327. package/.opencode/skills/seo/references/readability-scoring-guide.md +0 -304
  1328. package/.opencode/skills/seo/references/reviewweb-api.md +0 -69
  1329. package/.opencode/skills/seo/references/reviewweb-content-api.md +0 -89
  1330. package/.opencode/skills/seo/references/robots-txt-best-practices-2025.md +0 -479
  1331. package/.opencode/skills/seo/references/schema-generation.md +0 -102
  1332. package/.opencode/skills/seo/references/schema-templates/article-schema.json +0 -25
  1333. package/.opencode/skills/seo/references/schema-templates/faq-schema.json +0 -47
  1334. package/.opencode/skills/seo/references/schema-templates/howto-schema.json +0 -66
  1335. package/.opencode/skills/seo/references/schema-templates/localbusiness-schema.json +0 -64
  1336. package/.opencode/skills/seo/references/schema-templates/organization-schema.json +0 -49
  1337. package/.opencode/skills/seo/references/schema-templates/product-schema.json +0 -49
  1338. package/.opencode/skills/seo/references/search-console-query-patterns.md +0 -606
  1339. package/.opencode/skills/seo/references/semantic-seo-framework.md +0 -480
  1340. package/.opencode/skills/seo/references/seo-audit-workflow.md +0 -90
  1341. package/.opencode/skills/seo/references/sitemap-best-practices.md +0 -391
  1342. package/.opencode/skills/seo/references/technical-seo-checklist.md +0 -74
  1343. package/.opencode/skills/seo/scripts/analyze-keywords.cjs +0 -575
  1344. package/.opencode/skills/seo/scripts/audit-core-web-vitals.cjs +0 -496
  1345. package/.opencode/skills/seo/scripts/env-loader.cjs +0 -213
  1346. package/.opencode/skills/seo/scripts/env-loader.test.cjs +0 -231
  1347. package/.opencode/skills/seo/scripts/generate-schema.cjs +0 -119
  1348. package/.opencode/skills/seo/scripts/generate-sitemap.cjs +0 -66
  1349. package/.opencode/skills/seo/scripts/gsc-auth.cjs +0 -352
  1350. package/.opencode/skills/seo/scripts/gsc-config-loader.cjs +0 -238
  1351. package/.opencode/skills/seo/scripts/gsc-query.cjs +0 -499
  1352. package/.opencode/skills/seo/scripts/pseo-generator.cjs +0 -464
  1353. package/.opencode/skills/seo/scripts/validate-schema.cjs +0 -421
  1354. package/.opencode/skills/sequential-thinking/README.md +0 -183
  1355. package/.opencode/skills/sequential-thinking/SKILL.md +0 -97
  1356. package/.opencode/skills/sequential-thinking/package.json +0 -31
  1357. package/.opencode/skills/sequential-thinking/references/advanced-strategies.md +0 -79
  1358. package/.opencode/skills/sequential-thinking/references/advanced-techniques.md +0 -76
  1359. package/.opencode/skills/sequential-thinking/references/core-patterns.md +0 -95
  1360. package/.opencode/skills/sequential-thinking/references/examples-api.md +0 -88
  1361. package/.opencode/skills/sequential-thinking/references/examples-architecture.md +0 -94
  1362. package/.opencode/skills/sequential-thinking/references/examples-debug.md +0 -90
  1363. package/.opencode/skills/sequential-thinking/scripts/format-thought.js +0 -159
  1364. package/.opencode/skills/sequential-thinking/scripts/process-thought.js +0 -236
  1365. package/.opencode/skills/shader/SKILL.md +0 -115
  1366. package/.opencode/skills/shader/references/glsl-cellular-voronoi-worley-noise-patterns.md +0 -142
  1367. package/.opencode/skills/shader/references/glsl-colors-rgb-hsb-gradients-mixing-color-spaces.md +0 -143
  1368. package/.opencode/skills/shader/references/glsl-fbm-fractional-brownian-motion-turbulence-octaves.md +0 -146
  1369. package/.opencode/skills/shader/references/glsl-fundamentals-data-types-vectors-precision-coordinates.md +0 -104
  1370. package/.opencode/skills/shader/references/glsl-noise-random-perlin-simplex-cellular-voronoi.md +0 -115
  1371. package/.opencode/skills/shader/references/glsl-pattern-symmetry-truchet-domain-warping.md +0 -134
  1372. package/.opencode/skills/shader/references/glsl-patterns-tiling-fract-matrices-transformations.md +0 -133
  1373. package/.opencode/skills/shader/references/glsl-procedural-textures-clouds-marble-wood-terrain.md +0 -144
  1374. package/.opencode/skills/shader/references/glsl-shader-builtin-functions-complete-api-reference.md +0 -112
  1375. package/.opencode/skills/shader/references/glsl-shapes-polygon-star-polar-sdf-combinations.md +0 -124
  1376. package/.opencode/skills/shader/references/glsl-shapes-sdf-circles-rectangles-polar-distance-fields.md +0 -106
  1377. package/.opencode/skills/shader/references/glsl-shaping-functions-step-smoothstep-curves-interpolation.md +0 -141
  1378. package/.opencode/skills/ship/SKILL.md +0 -119
  1379. package/.opencode/skills/ship/references/auto-detect.md +0 -103
  1380. package/.opencode/skills/ship/references/pr-template.md +0 -90
  1381. package/.opencode/skills/ship/references/ship-workflow.md +0 -241
  1382. package/.opencode/skills/shopify/README.md +0 -66
  1383. package/.opencode/skills/shopify/SKILL.md +0 -323
  1384. package/.opencode/skills/shopify/references/app-development.md +0 -470
  1385. package/.opencode/skills/shopify/references/extensions.md +0 -493
  1386. package/.opencode/skills/shopify/references/themes.md +0 -498
  1387. package/.opencode/skills/shopify/scripts/.coverage +0 -0
  1388. package/.opencode/skills/shopify/scripts/requirements.txt +0 -19
  1389. package/.opencode/skills/shopify/scripts/shopify_init.py +0 -423
  1390. package/.opencode/skills/skill-creator/LICENSE.txt +0 -202
  1391. package/.opencode/skills/skill-creator/SKILL.md +0 -121
  1392. package/.opencode/skills/skill-creator/agents/analyzer.md +0 -274
  1393. package/.opencode/skills/skill-creator/agents/comparator.md +0 -202
  1394. package/.opencode/skills/skill-creator/agents/grader.md +0 -223
  1395. package/.opencode/skills/skill-creator/assets/eval_review.html +0 -146
  1396. package/.opencode/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  1397. package/.opencode/skills/skill-creator/eval-viewer/viewer.html +0 -1325
  1398. package/.opencode/skills/skill-creator/references/benchmark-optimization-guide.md +0 -86
  1399. package/.opencode/skills/skill-creator/references/distribution-guide.md +0 -79
  1400. package/.opencode/skills/skill-creator/references/eval-infrastructure-guide.md +0 -129
  1401. package/.opencode/skills/skill-creator/references/eval-schemas.md +0 -121
  1402. package/.opencode/skills/skill-creator/references/mcp-skills-integration.md +0 -71
  1403. package/.opencode/skills/skill-creator/references/metadata-quality-criteria.md +0 -76
  1404. package/.opencode/skills/skill-creator/references/plugin-marketplace-hosting.md +0 -104
  1405. package/.opencode/skills/skill-creator/references/plugin-marketplace-overview.md +0 -89
  1406. package/.opencode/skills/skill-creator/references/plugin-marketplace-schema.md +0 -93
  1407. package/.opencode/skills/skill-creator/references/plugin-marketplace-sources.md +0 -103
  1408. package/.opencode/skills/skill-creator/references/plugin-marketplace-troubleshooting.md +0 -76
  1409. package/.opencode/skills/skill-creator/references/script-quality-criteria.md +0 -106
  1410. package/.opencode/skills/skill-creator/references/skill-anatomy-and-requirements.md +0 -76
  1411. package/.opencode/skills/skill-creator/references/skill-creation-workflow.md +0 -95
  1412. package/.opencode/skills/skill-creator/references/skill-design-patterns.md +0 -75
  1413. package/.opencode/skills/skill-creator/references/skillmark-benchmark-criteria.md +0 -102
  1414. package/.opencode/skills/skill-creator/references/structure-organization-criteria.md +0 -114
  1415. package/.opencode/skills/skill-creator/references/testing-and-iteration.md +0 -78
  1416. package/.opencode/skills/skill-creator/references/token-efficiency-criteria.md +0 -74
  1417. package/.opencode/skills/skill-creator/references/troubleshooting-guide.md +0 -80
  1418. package/.opencode/skills/skill-creator/references/validation-checklist.md +0 -83
  1419. package/.opencode/skills/skill-creator/references/writing-effective-instructions.md +0 -88
  1420. package/.opencode/skills/skill-creator/references/yaml-frontmatter-reference.md +0 -91
  1421. package/.opencode/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  1422. package/.opencode/skills/skill-creator/scripts/debug.zip +0 -0
  1423. package/.opencode/skills/skill-creator/scripts/encoding_utils.py +0 -36
  1424. package/.opencode/skills/skill-creator/scripts/generate_report.py +0 -326
  1425. package/.opencode/skills/skill-creator/scripts/improve_description.py +0 -248
  1426. package/.opencode/skills/skill-creator/scripts/init_skill.py +0 -308
  1427. package/.opencode/skills/skill-creator/scripts/package_skill.py +0 -115
  1428. package/.opencode/skills/skill-creator/scripts/quick_validate.py +0 -69
  1429. package/.opencode/skills/skill-creator/scripts/run_eval.py +0 -310
  1430. package/.opencode/skills/skill-creator/scripts/run_loop.py +0 -332
  1431. package/.opencode/skills/skill-creator/scripts/utils.py +0 -47
  1432. package/.opencode/skills/slides/SKILL.md +0 -42
  1433. package/.opencode/skills/slides/references/copywriting-formulas.md +0 -84
  1434. package/.opencode/skills/slides/references/create.md +0 -4
  1435. package/.opencode/skills/slides/references/html-template.md +0 -295
  1436. package/.opencode/skills/slides/references/layout-patterns.md +0 -137
  1437. package/.opencode/skills/slides/references/slide-strategies.md +0 -94
  1438. package/.opencode/skills/social/SKILL.md +0 -75
  1439. package/.opencode/skills/social/references/engagement-templates.md +0 -58
  1440. package/.opencode/skills/social/references/facebook-workflow.md +0 -175
  1441. package/.opencode/skills/social/references/hook-writing.md +0 -190
  1442. package/.opencode/skills/social/references/linkedin-workflow.md +0 -162
  1443. package/.opencode/skills/social/references/platform-specs.md +0 -58
  1444. package/.opencode/skills/social/references/posting-best-practices.md +0 -61
  1445. package/.opencode/skills/social/references/rate-limits-errors.md +0 -191
  1446. package/.opencode/skills/social/references/schedule.md +0 -50
  1447. package/.opencode/skills/social/references/thread-templates.md +0 -72
  1448. package/.opencode/skills/social/references/threads-workflow.md +0 -198
  1449. package/.opencode/skills/social/references/tiktok-workflow.md +0 -194
  1450. package/.opencode/skills/social/references/unified-api-services.md +0 -153
  1451. package/.opencode/skills/social/references/x-twitter-workflow.md +0 -111
  1452. package/.opencode/skills/social/references/youtube-workflow.md +0 -179
  1453. package/.opencode/skills/social/scripts/schedule-post.js +0 -222
  1454. package/.opencode/skills/social/scripts/validate-post-content.js +0 -195
  1455. package/.opencode/skills/stitch/SKILL.md +0 -171
  1456. package/.opencode/skills/stitch/data/mcp-config-snippet.json +0 -11
  1457. package/.opencode/skills/stitch/references/design-to-code-pipeline.md +0 -128
  1458. package/.opencode/skills/stitch/references/quota-management.md +0 -64
  1459. package/.opencode/skills/stitch/references/stitch-mcp-setup.md +0 -95
  1460. package/.opencode/skills/stitch/references/stitch-sdk-api.md +0 -136
  1461. package/.opencode/skills/stitch/scripts/package.json +0 -17
  1462. package/.opencode/skills/stitch/scripts/stitch-export.ts +0 -173
  1463. package/.opencode/skills/stitch/scripts/stitch-generate.ts +0 -182
  1464. package/.opencode/skills/stitch/scripts/stitch-quota.ts +0 -123
  1465. package/.opencode/skills/storage/SKILL.md +0 -93
  1466. package/.opencode/skills/storage/scripts/s3-client.cjs +0 -357
  1467. package/.opencode/skills/tanstack/SKILL.md +0 -144
  1468. package/.opencode/skills/tanstack/references/tanstack-ai.md +0 -97
  1469. package/.opencode/skills/tanstack/references/tanstack-form.md +0 -125
  1470. package/.opencode/skills/tanstack/references/tanstack-start.md +0 -100
  1471. package/.opencode/skills/team/SKILL.md +0 -361
  1472. package/.opencode/skills/team/references/agent-teams-controls-and-modes.md +0 -129
  1473. package/.opencode/skills/team/references/agent-teams-examples-and-best-practices.md +0 -220
  1474. package/.opencode/skills/team/references/agent-teams-official-docs.md +0 -221
  1475. package/.opencode/skills/template-skill/SKILL.md +0 -9
  1476. package/.opencode/skills/test/SKILL.md +0 -40
  1477. package/.opencode/skills/test/references/report-format.md +0 -58
  1478. package/.opencode/skills/test/references/test-execution-workflow.md +0 -103
  1479. package/.opencode/skills/test/references/ui-testing-workflow.md +0 -65
  1480. package/.opencode/skills/test/references/ui.md +0 -87
  1481. package/.opencode/skills/test/references/workflow.md +0 -102
  1482. package/.opencode/skills/test/scripts/scan-components.py +0 -281
  1483. package/.opencode/skills/threejs/SKILL.md +0 -144
  1484. package/.opencode/skills/threejs/data/api-reference.csv +0 -61
  1485. package/.opencode/skills/threejs/data/categories.csv +0 -14
  1486. package/.opencode/skills/threejs/data/examples-all.csv +0 -557
  1487. package/.opencode/skills/threejs/data/use-cases.csv +0 -21
  1488. package/.opencode/skills/threejs/references/00-fundamentals.md +0 -487
  1489. package/.opencode/skills/threejs/references/01-getting-started.md +0 -177
  1490. package/.opencode/skills/threejs/references/02-loaders.md +0 -169
  1491. package/.opencode/skills/threejs/references/03-textures.md +0 -170
  1492. package/.opencode/skills/threejs/references/04-cameras.md +0 -195
  1493. package/.opencode/skills/threejs/references/05-lights.md +0 -183
  1494. package/.opencode/skills/threejs/references/06-animations.md +0 -214
  1495. package/.opencode/skills/threejs/references/07-math.md +0 -260
  1496. package/.opencode/skills/threejs/references/08-interaction.md +0 -267
  1497. package/.opencode/skills/threejs/references/09-postprocessing.md +0 -240
  1498. package/.opencode/skills/threejs/references/10-controls.md +0 -259
  1499. package/.opencode/skills/threejs/references/11-materials-advanced.md +0 -270
  1500. package/.opencode/skills/threejs/references/11-materials.md +0 -519
  1501. package/.opencode/skills/threejs/references/12-performance.md +0 -269
  1502. package/.opencode/skills/threejs/references/13-node-materials.md +0 -298
  1503. package/.opencode/skills/threejs/references/14-physics-vr.md +0 -304
  1504. package/.opencode/skills/threejs/references/15-specialized-loaders.md +0 -333
  1505. package/.opencode/skills/threejs/references/16-webgpu.md +0 -302
  1506. package/.opencode/skills/threejs/references/17-shader.md +0 -641
  1507. package/.opencode/skills/threejs/references/18-geometry.md +0 -547
  1508. package/.opencode/skills/threejs/scripts/core.py +0 -236
  1509. package/.opencode/skills/threejs/scripts/extract_examples.py +0 -688
  1510. package/.opencode/skills/threejs/scripts/generate_csv_from_json.py +0 -135
  1511. package/.opencode/skills/threejs/scripts/search.py +0 -77
  1512. package/.opencode/skills/ui-styling/LICENSE.txt +0 -202
  1513. package/.opencode/skills/ui-styling/SKILL.md +0 -324
  1514. package/.opencode/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  1515. package/.opencode/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  1516. package/.opencode/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  1517. package/.opencode/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +0 -93
  1518. package/.opencode/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  1519. package/.opencode/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +0 -93
  1520. package/.opencode/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  1521. package/.opencode/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  1522. package/.opencode/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  1523. package/.opencode/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  1524. package/.opencode/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  1525. package/.opencode/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  1526. package/.opencode/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  1527. package/.opencode/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  1528. package/.opencode/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +0 -93
  1529. package/.opencode/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  1530. package/.opencode/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +0 -94
  1531. package/.opencode/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  1532. package/.opencode/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  1533. package/.opencode/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +0 -93
  1534. package/.opencode/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  1535. package/.opencode/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +0 -93
  1536. package/.opencode/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  1537. package/.opencode/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  1538. package/.opencode/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  1539. package/.opencode/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  1540. package/.opencode/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  1541. package/.opencode/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  1542. package/.opencode/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  1543. package/.opencode/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  1544. package/.opencode/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  1545. package/.opencode/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  1546. package/.opencode/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  1547. package/.opencode/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  1548. package/.opencode/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  1549. package/.opencode/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  1550. package/.opencode/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  1551. package/.opencode/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +0 -93
  1552. package/.opencode/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  1553. package/.opencode/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  1554. package/.opencode/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  1555. package/.opencode/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  1556. package/.opencode/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  1557. package/.opencode/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  1558. package/.opencode/skills/ui-styling/canvas-fonts/Jura-OFL.txt +0 -93
  1559. package/.opencode/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  1560. package/.opencode/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  1561. package/.opencode/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  1562. package/.opencode/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  1563. package/.opencode/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  1564. package/.opencode/skills/ui-styling/canvas-fonts/Lora-OFL.txt +0 -93
  1565. package/.opencode/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  1566. package/.opencode/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  1567. package/.opencode/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +0 -93
  1568. package/.opencode/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  1569. package/.opencode/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  1570. package/.opencode/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  1571. package/.opencode/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  1572. package/.opencode/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +0 -93
  1573. package/.opencode/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  1574. package/.opencode/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  1575. package/.opencode/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +0 -93
  1576. package/.opencode/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +0 -93
  1577. package/.opencode/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  1578. package/.opencode/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  1579. package/.opencode/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +0 -93
  1580. package/.opencode/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  1581. package/.opencode/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +0 -93
  1582. package/.opencode/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  1583. package/.opencode/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  1584. package/.opencode/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +0 -93
  1585. package/.opencode/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  1586. package/.opencode/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +0 -93
  1587. package/.opencode/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  1588. package/.opencode/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  1589. package/.opencode/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  1590. package/.opencode/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  1591. package/.opencode/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +0 -93
  1592. package/.opencode/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  1593. package/.opencode/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +0 -93
  1594. package/.opencode/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  1595. package/.opencode/skills/ui-styling/references/canvas-design-system.md +0 -320
  1596. package/.opencode/skills/ui-styling/references/shadcn-accessibility.md +0 -471
  1597. package/.opencode/skills/ui-styling/references/shadcn-components.md +0 -424
  1598. package/.opencode/skills/ui-styling/references/shadcn-theming.md +0 -373
  1599. package/.opencode/skills/ui-styling/references/tailwind-customization.md +0 -483
  1600. package/.opencode/skills/ui-styling/references/tailwind-responsive.md +0 -382
  1601. package/.opencode/skills/ui-styling/references/tailwind-utilities.md +0 -455
  1602. package/.opencode/skills/ui-styling/scripts/.coverage +0 -0
  1603. package/.opencode/skills/ui-styling/scripts/requirements.txt +0 -17
  1604. package/.opencode/skills/ui-styling/scripts/shadcn_add.py +0 -292
  1605. package/.opencode/skills/ui-styling/scripts/tailwind_config_gen.py +0 -456
  1606. package/.opencode/skills/ui-ux-pro-max/SKILL.md +0 -662
  1607. package/.opencode/skills/ui-ux-pro-max/data/_sync_all.py +0 -414
  1608. package/.opencode/skills/ui-ux-pro-max/data/app-interface.csv +0 -31
  1609. package/.opencode/skills/ui-ux-pro-max/data/charts.csv +0 -26
  1610. package/.opencode/skills/ui-ux-pro-max/data/colors.csv +0 -162
  1611. package/.opencode/skills/ui-ux-pro-max/data/design.csv +0 -1776
  1612. package/.opencode/skills/ui-ux-pro-max/data/draft.csv +0 -1779
  1613. package/.opencode/skills/ui-ux-pro-max/data/google-fonts.csv +0 -1924
  1614. package/.opencode/skills/ui-ux-pro-max/data/icons.csv +0 -106
  1615. package/.opencode/skills/ui-ux-pro-max/data/landing.csv +0 -35
  1616. package/.opencode/skills/ui-ux-pro-max/data/products.csv +0 -162
  1617. package/.opencode/skills/ui-ux-pro-max/data/react-performance.csv +0 -45
  1618. package/.opencode/skills/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
  1619. package/.opencode/skills/ui-ux-pro-max/data/styles.csv +0 -85
  1620. package/.opencode/skills/ui-ux-pro-max/data/typography.csv +0 -74
  1621. package/.opencode/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -162
  1622. package/.opencode/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  1623. package/.opencode/skills/ui-ux-pro-max/scripts/core.py +0 -247
  1624. package/.opencode/skills/ui-ux-pro-max/scripts/design_system.py +0 -1067
  1625. package/.opencode/skills/ui-ux-pro-max/scripts/search.py +0 -114
  1626. package/.opencode/skills/use-mcp/SKILL.md +0 -39
  1627. package/.opencode/skills/video/SKILL.md +0 -72
  1628. package/.opencode/skills/video/references/audio-directive-guide.md +0 -274
  1629. package/.opencode/skills/video/references/create.md +0 -322
  1630. package/.opencode/skills/video/references/production-workflow.md +0 -135
  1631. package/.opencode/skills/video/references/quality-review-workflow.md +0 -566
  1632. package/.opencode/skills/video/references/script-create.md +0 -391
  1633. package/.opencode/skills/video/references/script-templates.md +0 -107
  1634. package/.opencode/skills/video/references/storyboard-create.md +0 -210
  1635. package/.opencode/skills/video/references/storyboard-format.md +0 -255
  1636. package/.opencode/skills/video/references/thumbnail-design-guide.md +0 -367
  1637. package/.opencode/skills/video/references/veo-prompt-guide.md +0 -360
  1638. package/.opencode/skills/video/references/video-art-directions.md +0 -64
  1639. package/.opencode/skills/video/references/video-optimization.md +0 -95
  1640. package/.opencode/skills/video/references/video-seo-optimization.md +0 -399
  1641. package/.opencode/skills/video/references/video-types-specs.md +0 -66
  1642. package/.opencode/skills/video/scripts/analyze-video.cjs +0 -321
  1643. package/.opencode/skills/video/scripts/create-storyboard.cjs +0 -476
  1644. package/.opencode/skills/video/scripts/extract-captions.cjs +0 -355
  1645. package/.opencode/skills/video/scripts/generate-video.cjs +0 -331
  1646. package/.opencode/skills/video/scripts/optimize-for-platform.cjs +0 -428
  1647. package/.opencode/skills/video/templates/explainer.json +0 -73
  1648. package/.opencode/skills/video/templates/product-demo.json +0 -69
  1649. package/.opencode/skills/video/templates/short-form.json +0 -111
  1650. package/.opencode/skills/video/templates/testimonial.json +0 -73
  1651. package/.opencode/skills/watzup/SKILL.md +0 -13
  1652. package/.opencode/skills/web-design-guidelines/SKILL.md +0 -39
  1653. package/.opencode/skills/web-frameworks/SKILL.md +0 -327
  1654. package/.opencode/skills/web-frameworks/references/nextjs-app-router.md +0 -465
  1655. package/.opencode/skills/web-frameworks/references/nextjs-data-fetching.md +0 -459
  1656. package/.opencode/skills/web-frameworks/references/nextjs-optimization.md +0 -511
  1657. package/.opencode/skills/web-frameworks/references/nextjs-server-components.md +0 -495
  1658. package/.opencode/skills/web-frameworks/references/remix-icon-integration.md +0 -603
  1659. package/.opencode/skills/web-frameworks/references/turborepo-caching.md +0 -551
  1660. package/.opencode/skills/web-frameworks/references/turborepo-pipelines.md +0 -517
  1661. package/.opencode/skills/web-frameworks/references/turborepo-setup.md +0 -542
  1662. package/.opencode/skills/web-frameworks/scripts/.coverage +0 -0
  1663. package/.opencode/skills/web-frameworks/scripts/__init__.py +0 -0
  1664. package/.opencode/skills/web-frameworks/scripts/nextjs_init.py +0 -547
  1665. package/.opencode/skills/web-frameworks/scripts/requirements.txt +0 -16
  1666. package/.opencode/skills/web-frameworks/scripts/turborepo_migrate.py +0 -394
  1667. package/.opencode/skills/web-testing/SKILL.md +0 -99
  1668. package/.opencode/skills/web-testing/references/accessibility-testing.md +0 -84
  1669. package/.opencode/skills/web-testing/references/api-testing.md +0 -78
  1670. package/.opencode/skills/web-testing/references/ci-cd-testing-workflows.md +0 -121
  1671. package/.opencode/skills/web-testing/references/component-testing.md +0 -94
  1672. package/.opencode/skills/web-testing/references/contract-testing.md +0 -146
  1673. package/.opencode/skills/web-testing/references/cross-browser-checklist.md +0 -72
  1674. package/.opencode/skills/web-testing/references/database-testing.md +0 -139
  1675. package/.opencode/skills/web-testing/references/e2e-testing-playwright.md +0 -119
  1676. package/.opencode/skills/web-testing/references/functional-testing-checklist.md +0 -88
  1677. package/.opencode/skills/web-testing/references/interactive-testing-patterns.md +0 -89
  1678. package/.opencode/skills/web-testing/references/load-testing-k6.md +0 -93
  1679. package/.opencode/skills/web-testing/references/mobile-gesture-testing.md +0 -85
  1680. package/.opencode/skills/web-testing/references/performance-core-web-vitals.md +0 -124
  1681. package/.opencode/skills/web-testing/references/playwright-component-testing.md +0 -115
  1682. package/.opencode/skills/web-testing/references/pre-release-checklist.md +0 -75
  1683. package/.opencode/skills/web-testing/references/security-checklists.md +0 -81
  1684. package/.opencode/skills/web-testing/references/security-testing-overview.md +0 -92
  1685. package/.opencode/skills/web-testing/references/shadow-dom-testing.md +0 -70
  1686. package/.opencode/skills/web-testing/references/test-data-management.md +0 -131
  1687. package/.opencode/skills/web-testing/references/test-flakiness-mitigation.md +0 -86
  1688. package/.opencode/skills/web-testing/references/testing-pyramid-strategy.md +0 -76
  1689. package/.opencode/skills/web-testing/references/unit-integration-testing.md +0 -138
  1690. package/.opencode/skills/web-testing/references/visual-regression.md +0 -92
  1691. package/.opencode/skills/web-testing/references/vulnerability-payloads.md +0 -93
  1692. package/.opencode/skills/web-testing/scripts/analyze-test-results.js +0 -280
  1693. package/.opencode/skills/web-testing/scripts/init-playwright.js +0 -233
  1694. package/.opencode/skills/worktree/SKILL.md +0 -130
  1695. package/.opencode/skills/worktree/scripts/worktree.cjs +0 -979
  1696. package/.opencode/skills/worktree/scripts/worktree.test.cjs +0 -857
  1697. package/.opencode/skills/write/SKILL.md +0 -28
  1698. package/.opencode/skills/write/references/audit.md +0 -93
  1699. package/.opencode/skills/write/references/blog-youtube.md +0 -164
  1700. package/.opencode/skills/write/references/blog.md +0 -95
  1701. package/.opencode/skills/write/references/cro.md +0 -38
  1702. package/.opencode/skills/write/references/enhance.md +0 -9
  1703. package/.opencode/skills/write/references/fast.md +0 -8
  1704. package/.opencode/skills/write/references/formula.md +0 -112
  1705. package/.opencode/skills/write/references/good.md +0 -29
  1706. package/.opencode/skills/write/references/publish.md +0 -70
  1707. package/.opencode/skills/youtube/SKILL.md +0 -50
  1708. package/.opencode/skills/youtube/references/api-content.md +0 -96
  1709. package/.opencode/skills/youtube/references/api-media.md +0 -66
  1710. package/.opencode/skills/youtube/references/blog.md +0 -132
  1711. package/.opencode/skills/youtube/references/infographic.md +0 -152
  1712. package/.opencode/skills/youtube/references/social.md +0 -165
  1713. package/.opencode/skills/youtube/scripts/test_vidcap.py +0 -172
  1714. package/.opencode/skills/youtube/scripts/vidcap.py +0 -302
  1715. package/.opencode/skills/youtube-thumbnail-design/SKILL.md +0 -186
  1716. package/.opencode/skills/youtube-thumbnail-design/data/niches.csv +0 -13
  1717. package/.opencode/skills/youtube-thumbnail-design/data/styles.csv +0 -18
  1718. package/.opencode/skills/youtube-thumbnail-design/references/thumbnail-styles.md +0 -170
  1719. package/.opencode/skills/youtube-thumbnail-design/scripts/core.py +0 -150
  1720. package/.opencode/skills/youtube-thumbnail-design/scripts/generate.py +0 -441
  1721. package/.opencode/skills/youtube-thumbnail-design/scripts/search.py +0 -115
  1722. package/.opencode/workflows/analytics-workflow.md +0 -264
  1723. package/.opencode/workflows/campaign-workflow.md +0 -228
  1724. package/.opencode/workflows/content-workflow.md +0 -275
  1725. package/.opencode/workflows/development-rules.md +0 -42
  1726. package/.opencode/workflows/documentation-management.md +0 -121
  1727. package/.opencode/workflows/marketing-workflow.md +0 -198
  1728. package/.opencode/workflows/orchestration-protocol.md +0 -16
  1729. package/.opencode/workflows/primary-workflow.md +0 -45
  1730. package/.opencode/workflows/sales-workflow.md +0 -193
  1731. package/.opencode/workflows/seo-workflow.md +0 -248
  1732. package/dist/web/assets/chat-tab-B3ut-s33.js +0 -10
  1733. package/dist/web/assets/index-BFXOaZuI.js +0 -30
  1734. package/dist/web/assets/index-Dxq-L2b4.css +0 -2
  1735. package/dist/web/assets/keybindings-store-A-4OusX7.js +0 -1
  1736. package/dist/web/assets/markdown-renderer-Br_NykOI.js +0 -69
@@ -1,1187 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Batch process multiple media files using Gemini API.
4
-
5
- Supports all Gemini modalities:
6
- - Audio: Transcription, analysis, summarization
7
- - Image: Captioning, detection, OCR, analysis
8
- - Video: Summarization, Q&A, scene detection
9
- - Document: PDF extraction, structured output
10
- - Generation: Image creation via Imagen 4 or Nano Banana (Gemini native)
11
- - Nano Banana 2 (gemini-3.1-flash-image-preview): NEW DEFAULT - fastest, near-Pro quality, web grounding
12
- - Nano Banana Flash (gemini-2.5-flash-image): Previous default, stable
13
- - Nano Banana Pro (gemini-3-pro-image-preview): Quality/4K text/reasoning
14
- - Imagen 4 (imagen-4.0-*): Production-grade generation
15
- """
16
-
17
- import argparse
18
- import json
19
- import os
20
- import sys
21
- import time
22
- from pathlib import Path
23
- from typing import List, Dict, Any, Optional
24
- import csv
25
- import shutil
26
-
27
- # Import centralized environment resolver (works for both local and global installs)
28
- CLAUDE_ROOT = Path(__file__).parent.parent.parent.parent
29
- sys.path.insert(0, str(CLAUDE_ROOT / 'scripts'))
30
- try:
31
- from resolve_env import resolve_env
32
- CENTRALIZED_RESOLVER_AVAILABLE = True
33
- except ImportError:
34
- # Fallback if centralized resolver not available
35
- CENTRALIZED_RESOLVER_AVAILABLE = False
36
- try:
37
- from dotenv import load_dotenv
38
- except ImportError:
39
- load_dotenv = None
40
-
41
- # Import key rotation support
42
- sys.path.insert(0, str(Path(__file__).parent.parent.parent / 'common'))
43
- try:
44
- from api_key_rotator import KeyRotator, is_rate_limit_error
45
- from api_key_helper import find_all_api_keys
46
- KEY_ROTATION_AVAILABLE = True
47
- except ImportError:
48
- KEY_ROTATION_AVAILABLE = False
49
- KeyRotator = None
50
- is_rate_limit_error = None
51
- find_all_api_keys = None
52
-
53
- try:
54
- from google import genai
55
- from google.genai import types
56
- except ImportError:
57
- print("Error: google-genai package not installed")
58
- print("Install with: pip install google-genai")
59
- sys.exit(1)
60
-
61
-
62
- # Image generation model configuration
63
- # Default: gemini-3.1-flash-image-preview (Nano Banana 2 - fastest, near-Pro quality)
64
- # Alternative: imagen-4.0-generate-001 (production quality)
65
- # All image generation requires billing - no completely free option exists
66
- IMAGE_MODEL_DEFAULT = 'gemini-3.1-flash-image-preview' # Nano Banana 2 (fastest, ~$0.045-0.151/image)
67
- IMAGE_MODEL_FALLBACK = 'gemini-2.5-flash-image' # Fallback if Nano Banana 2 fails
68
- IMAGEN_MODELS = {
69
- 'imagen-4.0-generate-001',
70
- 'imagen-4.0-ultra-generate-001',
71
- 'imagen-4.0-fast-generate-001',
72
- }
73
- # Video models have no fallback - Veo always requires billing
74
-
75
-
76
- def find_api_key() -> Optional[str]:
77
- """Find Gemini API key using centralized resolver or fallback.
78
-
79
- Uses ~/.opencode/scripts/resolve_env.py for consistent resolution across all skills.
80
- Falls back to local resolution if centralized resolver not available.
81
-
82
- Priority order (highest to lowest):
83
- 1. process.env (runtime environment variables)
84
- 2. PROJECT/.opencode/skills/ai-multimodal/.env (skill-specific)
85
- 3. PROJECT/.opencode/skills/.env (shared skills)
86
- 4. PROJECT/.opencode/.env (project global)
87
- 5. ~/.opencode/skills/ai-multimodal/.env (user skill-specific)
88
- 6. ~/.opencode/skills/.env (user shared)
89
- 7. ~/.opencode/.env (user global)
90
- """
91
- if CENTRALIZED_RESOLVER_AVAILABLE:
92
- # Use centralized resolver (recommended)
93
- return resolve_env('GEMINI_API_KEY', skill='ai-multimodal')
94
-
95
- # Fallback: Local resolution (legacy)
96
- api_key = os.getenv('GEMINI_API_KEY')
97
- if api_key:
98
- return api_key
99
-
100
- if load_dotenv:
101
- script_dir = Path(__file__).parent
102
- skill_dir = script_dir.parent
103
- skills_dir = skill_dir.parent
104
- claude_dir = skills_dir.parent
105
-
106
- env_files = [
107
- claude_dir / '.env',
108
- skills_dir / '.env',
109
- skill_dir / '.env',
110
- ]
111
-
112
- for env_file in env_files:
113
- if env_file.exists():
114
- load_dotenv(env_file, override=True)
115
-
116
- api_key = os.getenv('GEMINI_API_KEY')
117
- if api_key:
118
- return api_key
119
-
120
- return None
121
-
122
-
123
- def get_default_model(task: str) -> str:
124
- """Get default model for task from environment or fallback.
125
-
126
- Priority:
127
- 1. Environment variable for specific capability
128
- 2. Legacy GEMINI_MODEL variable
129
- 3. Hard-coded defaults
130
- """
131
- if task == 'generate': # Image generation
132
- model = os.getenv('IMAGE_GEN_MODEL')
133
- if model:
134
- return model
135
- # Fallback to legacy
136
- model = os.getenv('GEMINI_IMAGE_GEN_MODEL')
137
- if model:
138
- return model
139
- # Default to Nano Banana 2 (fastest, near-Pro quality, web grounding)
140
- # Alternative: gemini-2.5-flash-image (stable), imagen-4.0-generate-001 (production)
141
- return 'gemini-3.1-flash-image-preview'
142
-
143
- elif task == 'generate-video':
144
- model = os.getenv('VIDEO_GEN_MODEL')
145
- if model:
146
- return model
147
- return 'veo-3.1-generate-preview' # New default
148
-
149
- elif task in ['analyze', 'transcribe', 'extract']:
150
- model = os.getenv('MULTIMODAL_MODEL')
151
- if model:
152
- return model
153
- # Fallback to legacy
154
- model = os.getenv('GEMINI_MODEL')
155
- if model:
156
- return model
157
- return 'gemini-2.5-flash' # Existing default
158
-
159
- return 'gemini-2.5-flash'
160
-
161
-
162
- def validate_model_task_combination(model: str, task: str) -> None:
163
- """Validate model is compatible with task.
164
-
165
- Raises:
166
- ValueError: If combination is invalid
167
- """
168
- # Video generation requires Veo
169
- if task == 'generate-video':
170
- if not model.startswith('veo-'):
171
- raise ValueError(
172
- f"Video generation requires Veo model, got '{model}'\n"
173
- f"Valid models: veo-3.1-generate-preview, veo-3.1-fast-generate-preview, "
174
- f"veo-3.0-generate-001, veo-3.0-fast-generate-001"
175
- )
176
-
177
- # Image generation models
178
- if task == 'generate':
179
- valid_image_models = [
180
- 'imagen-4.0-generate-001',
181
- 'imagen-4.0-ultra-generate-001',
182
- 'imagen-4.0-fast-generate-001',
183
- 'gemini-3.1-flash-image-preview',
184
- 'gemini-3-pro-image-preview',
185
- 'gemini-2.5-flash-image',
186
- 'gemini-2.5-flash-image-preview',
187
- ]
188
- if model not in valid_image_models:
189
- # Allow gemini models for analysis-based generation (backward compat)
190
- if not model.startswith('gemini-'):
191
- raise ValueError(
192
- f"Image generation requires Imagen/Gemini image model, got '{model}'\n"
193
- f"Valid models: {', '.join(valid_image_models)}"
194
- )
195
-
196
-
197
- def infer_task_from_file(file_path: str) -> str:
198
- """Infer task type from file extension.
199
-
200
- Returns:
201
- 'transcribe' for audio files
202
- 'analyze' for image/video/document files
203
- """
204
- ext = Path(file_path).suffix.lower()
205
-
206
- audio_extensions = {'.mp3', '.wav', '.aac', '.flac', '.ogg', '.aiff', '.m4a'}
207
- image_extensions = {'.jpg', '.jpeg', '.png', '.webp', '.heic', '.heif', '.gif', '.bmp'}
208
- video_extensions = {'.mp4', '.mpeg', '.mov', '.avi', '.flv', '.mpg', '.webm', '.wmv', '.3gpp', '.mkv'}
209
- document_extensions = {'.pdf', '.txt', '.html', '.md', '.doc', '.docx'}
210
-
211
- if ext in audio_extensions:
212
- return 'transcribe'
213
- elif ext in image_extensions:
214
- return 'analyze'
215
- elif ext in video_extensions:
216
- return 'analyze'
217
- elif ext in document_extensions:
218
- return 'extract'
219
-
220
- # Default to analyze for unknown types
221
- return 'analyze'
222
-
223
-
224
- def get_mime_type(file_path: str) -> str:
225
- """Determine MIME type from file extension."""
226
- ext = Path(file_path).suffix.lower()
227
-
228
- mime_types = {
229
- # Audio
230
- '.mp3': 'audio/mp3',
231
- '.wav': 'audio/wav',
232
- '.aac': 'audio/aac',
233
- '.flac': 'audio/flac',
234
- '.ogg': 'audio/ogg',
235
- '.aiff': 'audio/aiff',
236
- # Image
237
- '.jpg': 'image/jpeg',
238
- '.jpeg': 'image/jpeg',
239
- '.png': 'image/png',
240
- '.webp': 'image/webp',
241
- '.heic': 'image/heic',
242
- '.heif': 'image/heif',
243
- # Video
244
- '.mp4': 'video/mp4',
245
- '.mpeg': 'video/mpeg',
246
- '.mov': 'video/quicktime',
247
- '.avi': 'video/x-msvideo',
248
- '.flv': 'video/x-flv',
249
- '.mpg': 'video/mpeg',
250
- '.webm': 'video/webm',
251
- '.wmv': 'video/x-ms-wmv',
252
- '.3gpp': 'video/3gpp',
253
- # Document
254
- '.pdf': 'application/pdf',
255
- '.txt': 'text/plain',
256
- '.html': 'text/html',
257
- '.md': 'text/markdown',
258
- }
259
-
260
- return mime_types.get(ext, 'application/octet-stream')
261
-
262
-
263
- def upload_file(client: genai.Client, file_path: str, verbose: bool = False) -> Any:
264
- """Upload file to Gemini File API."""
265
- if verbose:
266
- print(f"Uploading {file_path}...")
267
-
268
- myfile = client.files.upload(file=file_path)
269
-
270
- # Wait for processing (video/audio files need processing)
271
- mime_type = get_mime_type(file_path)
272
- if mime_type.startswith('video/') or mime_type.startswith('audio/'):
273
- max_wait = 300 # 5 minutes
274
- elapsed = 0
275
- while myfile.state.name == 'PROCESSING' and elapsed < max_wait:
276
- time.sleep(2)
277
- myfile = client.files.get(name=myfile.name)
278
- elapsed += 2
279
- if verbose and elapsed % 10 == 0:
280
- print(f" Processing... {elapsed}s")
281
-
282
- if myfile.state.name == 'FAILED':
283
- raise ValueError(f"File processing failed: {file_path}")
284
-
285
- if myfile.state.name == 'PROCESSING':
286
- raise TimeoutError(f"Processing timeout after {max_wait}s: {file_path}")
287
-
288
- if verbose:
289
- print(f" Uploaded: {myfile.name}")
290
-
291
- return myfile
292
-
293
-
294
- def _is_billing_error(error: Exception) -> bool:
295
- """Check if error is due to billing/access restrictions."""
296
- error_str = str(error).lower()
297
- billing_indicators = [
298
- 'billing',
299
- 'billed users',
300
- 'payment',
301
- 'access denied',
302
- 'not authorized',
303
- 'permission denied',
304
- ]
305
- return any(indicator in error_str for indicator in billing_indicators)
306
-
307
-
308
- def _is_free_tier_quota_error(error: Exception) -> bool:
309
- """Check if error indicates free tier has zero quota for this model.
310
-
311
- Free tier users have NO access to image/video generation models.
312
- The API returns 'limit: 0' or 'RESOURCE_EXHAUSTED' with quota details.
313
- """
314
- error_str = str(error)
315
- # Check for zero quota indicators
316
- return (
317
- 'RESOURCE_EXHAUSTED' in error_str and
318
- ('limit: 0' in error_str or 'free_tier' in error_str.lower())
319
- )
320
-
321
-
322
- FREE_TIER_NO_ACCESS_MSG = """
323
- [FREE TIER LIMITATION] Image/Video generation is NOT available on free tier.
324
-
325
- Free tier users have zero quota (limit: 0) for:
326
- - All Imagen models (imagen-4.0-*)
327
- - All Veo models (veo-*)
328
- - Gemini image models (gemini-*-image, gemini-*-image-preview)
329
-
330
- To use image/video generation:
331
- 1. Enable billing: https://aistudio.google.com/apikey
332
- 2. Or use Google Cloud $300 free credits: https://cloud.google.com/free
333
-
334
- STOP: Do not retry image/video generation on free tier - it will always fail.
335
- """.strip()
336
-
337
-
338
- def generate_image_imagen4(
339
- client,
340
- prompt: str,
341
- model: str,
342
- num_images: int = 1,
343
- aspect_ratio: str = '1:1',
344
- size: str = '1K',
345
- verbose: bool = False
346
- ) -> Dict[str, Any]:
347
- """Generate image using Imagen 4 models.
348
-
349
- Returns special status 'billing_required' if model needs billing,
350
- allowing caller to fallback to free-tier generate_content API.
351
- """
352
- try:
353
- # Build config based on model (Fast doesn't support imageSize)
354
- config_params = {
355
- 'numberOfImages': num_images,
356
- 'aspectRatio': aspect_ratio
357
- }
358
-
359
- # Only Standard and Ultra support imageSize parameter
360
- if 'fast' not in model.lower() and model.startswith('imagen-'):
361
- config_params['imageSize'] = size
362
-
363
- gen_config = types.GenerateImagesConfig(**config_params)
364
-
365
- if verbose:
366
- print(f" Generating with: {model}")
367
- print(f" Config: {num_images} images, {aspect_ratio}", end='')
368
- if 'fast' not in model.lower() and model.startswith('imagen-'):
369
- print(f", {size}")
370
- else:
371
- print()
372
-
373
- response = client.models.generate_images(
374
- model=model,
375
- prompt=prompt,
376
- config=gen_config
377
- )
378
-
379
- # Save images
380
- generated_files = []
381
- for i, generated_image in enumerate(response.generated_images):
382
- # Find project root
383
- script_dir = Path(__file__).parent
384
- project_root = script_dir
385
- for parent in [script_dir] + list(script_dir.parents):
386
- if (parent / '.git').exists() or (parent / '.claude').exists():
387
- project_root = parent
388
- break
389
-
390
- output_dir = project_root / 'docs' / 'assets'
391
- output_dir.mkdir(parents=True, exist_ok=True)
392
- output_file = output_dir / f"imagen4_generated_{int(time.time())}_{i}.png"
393
-
394
- with open(output_file, 'wb') as f:
395
- f.write(generated_image.image.image_bytes)
396
- generated_files.append(str(output_file))
397
-
398
- if verbose:
399
- print(f" Saved: {output_file}")
400
-
401
- return {
402
- 'status': 'success',
403
- 'generated_images': generated_files,
404
- 'model': model
405
- }
406
-
407
- except Exception as e:
408
- # Return special status for billing errors so caller can fallback
409
- if _is_billing_error(e) and model in IMAGEN_MODELS:
410
- return {
411
- 'status': 'billing_required',
412
- 'original_model': model,
413
- 'error': str(e)
414
- }
415
-
416
- if verbose:
417
- print(f" Error: {str(e)}")
418
- import traceback
419
- traceback.print_exc()
420
- return {
421
- 'status': 'error',
422
- 'error': str(e)
423
- }
424
-
425
-
426
- def generate_video_veo(
427
- client,
428
- prompt: str,
429
- model: str,
430
- resolution: str = '1080p',
431
- aspect_ratio: str = '16:9',
432
- reference_images: Optional[List[str]] = None,
433
- verbose: bool = False
434
- ) -> Dict[str, Any]:
435
- """Generate video using Veo models.
436
-
437
- For image-to-video with first/last frames (Veo 3.1):
438
- - First reference image becomes the opening frame (image parameter)
439
- - Second reference image becomes the closing frame (last_frame config)
440
- - Model interpolates between them to create smooth video
441
- """
442
- try:
443
- # Build config with snake_case for Python SDK
444
- config_params = {
445
- 'aspect_ratio': aspect_ratio,
446
- 'resolution': resolution
447
- }
448
-
449
- # Prepare first frame and last frame images
450
- first_frame = None
451
- last_frame = None
452
-
453
- if reference_images:
454
- import mimetypes
455
-
456
- def load_image(img_path_str: str) -> types.Image:
457
- """Load image file as types.Image with bytes and mime type."""
458
- img_path = Path(img_path_str)
459
- image_bytes = img_path.read_bytes()
460
- mime_type, _ = mimetypes.guess_type(str(img_path))
461
- if not mime_type:
462
- mime_type = 'image/png'
463
- return types.Image(
464
- image_bytes=image_bytes,
465
- mime_type=mime_type
466
- )
467
-
468
- # First image = opening frame
469
- if len(reference_images) >= 1:
470
- first_frame = load_image(reference_images[0])
471
-
472
- # Second image = closing frame (last_frame in config)
473
- if len(reference_images) >= 2:
474
- last_frame = load_image(reference_images[1])
475
- config_params['last_frame'] = last_frame
476
-
477
- gen_config = types.GenerateVideosConfig(**config_params)
478
-
479
- if verbose:
480
- print(f" Generating video with Veo: {model}")
481
- print(f" Config: {resolution}, {aspect_ratio}")
482
- if first_frame:
483
- print(f" First frame: provided")
484
- if last_frame:
485
- print(f" Last frame: provided (interpolation mode)")
486
-
487
- start = time.time()
488
-
489
- if verbose:
490
- print(f" Starting video generation (this may take 11s-6min)...")
491
-
492
- # Call generate_videos with image parameter for first frame
493
- operation = client.models.generate_videos(
494
- model=model,
495
- prompt=prompt,
496
- image=first_frame, # First frame as opening image
497
- config=gen_config
498
- )
499
-
500
- # Poll operation until complete
501
- poll_count = 0
502
- while not operation.done:
503
- poll_count += 1
504
- if verbose and poll_count % 3 == 0: # Update every 30s
505
- elapsed = time.time() - start
506
- print(f" Still generating... ({elapsed:.0f}s elapsed)")
507
- time.sleep(10)
508
- operation = client.operations.get(operation)
509
-
510
- duration = time.time() - start
511
-
512
- # Access generated video from operation response
513
- generated_video = operation.response.generated_videos[0]
514
-
515
- # Download the video file first
516
- client.files.download(file=generated_video.video)
517
-
518
- # Save video
519
- script_dir = Path(__file__).parent
520
- project_root = script_dir
521
- for parent in [script_dir] + list(script_dir.parents):
522
- if (parent / '.git').exists() or (parent / '.claude').exists():
523
- project_root = parent
524
- break
525
-
526
- output_dir = project_root / 'docs' / 'assets'
527
- output_dir.mkdir(parents=True, exist_ok=True)
528
- output_file = output_dir / f"veo_generated_{int(time.time())}.mp4"
529
-
530
- # Now save to file
531
- generated_video.video.save(str(output_file))
532
-
533
- file_size = output_file.stat().st_size / (1024 * 1024) # MB
534
-
535
- if verbose:
536
- print(f" Generated in {duration:.1f}s")
537
- print(f" File size: {file_size:.2f} MB")
538
- print(f" Saved: {output_file}")
539
-
540
- return {
541
- 'status': 'success',
542
- 'generated_video': str(output_file),
543
- 'generation_time': duration,
544
- 'file_size_mb': file_size,
545
- 'model': model
546
- }
547
-
548
- except Exception as e:
549
- if verbose:
550
- print(f" Error: {str(e)}")
551
- import traceback
552
- traceback.print_exc()
553
- return {
554
- 'status': 'error',
555
- 'error': str(e)
556
- }
557
-
558
-
559
- def process_file(
560
- client: genai.Client,
561
- file_path: Optional[str],
562
- prompt: str,
563
- model: str,
564
- task: str,
565
- format_output: str,
566
- aspect_ratio: Optional[str] = None,
567
- image_size: Optional[str] = None,
568
- verbose: bool = False,
569
- max_retries: int = 3
570
- ) -> Dict[str, Any]:
571
- """Process a single file with retry logic.
572
-
573
- Args:
574
- image_size: Image size for Nano Banana models (1K, 2K, 4K). Must be uppercase K.
575
- Note: Not all models support image_size - only pass when explicitly needed.
576
- """
577
-
578
- for attempt in range(max_retries):
579
- try:
580
- # For generation tasks without input files
581
- if task == 'generate' and not file_path:
582
- content = [prompt]
583
- else:
584
- # Process input file
585
- file_path = Path(file_path)
586
- # Determine if we need File API
587
- file_size = file_path.stat().st_size
588
- use_file_api = file_size > 20 * 1024 * 1024 # >20MB
589
-
590
- if use_file_api:
591
- # Upload to File API
592
- myfile = upload_file(client, str(file_path), verbose)
593
- content = [prompt, myfile]
594
- else:
595
- # Inline data
596
- with open(file_path, 'rb') as f:
597
- file_bytes = f.read()
598
-
599
- mime_type = get_mime_type(str(file_path))
600
- content = [
601
- prompt,
602
- types.Part.from_bytes(data=file_bytes, mime_type=mime_type)
603
- ]
604
-
605
- # Configure request
606
- config_args = {}
607
- if task == 'generate':
608
- # Nano Banana requires fully uppercase 'IMAGE' per API spec
609
- config_args['response_modalities'] = ['IMAGE']
610
- # Build image_config with aspect_ratio and/or image_size
611
- image_config_args = {}
612
- if aspect_ratio:
613
- image_config_args['aspect_ratio'] = aspect_ratio
614
- if image_size:
615
- # image_size must be uppercase K (1K, 2K, 4K)
616
- image_config_args['image_size'] = image_size
617
- if image_config_args:
618
- config_args['image_config'] = types.ImageConfig(**image_config_args)
619
-
620
- if format_output == 'json':
621
- config_args['response_mime_type'] = 'application/json'
622
-
623
- config = types.GenerateContentConfig(**config_args) if config_args else None
624
-
625
- # Generate content
626
- response = client.models.generate_content(
627
- model=model,
628
- contents=content,
629
- config=config
630
- )
631
-
632
- # Extract response
633
- result = {
634
- 'file': str(file_path) if file_path else 'generated',
635
- 'status': 'success',
636
- 'response': response.text if hasattr(response, 'text') else None
637
- }
638
-
639
- # Handle image output
640
- if task == 'generate' and hasattr(response, 'candidates'):
641
- for i, part in enumerate(response.candidates[0].content.parts):
642
- if part.inline_data:
643
- # Determine output directory - use project root docs/assets
644
- if file_path:
645
- output_dir = Path(file_path).parent
646
- base_name = Path(file_path).stem
647
- else:
648
- # Find project root (look for .git or .claude directory)
649
- script_dir = Path(__file__).parent
650
- project_root = script_dir
651
- for parent in [script_dir] + list(script_dir.parents):
652
- if (parent / '.git').exists() or (parent / '.claude').exists():
653
- project_root = parent
654
- break
655
-
656
- output_dir = project_root / 'docs' / 'assets'
657
- output_dir.mkdir(parents=True, exist_ok=True)
658
- base_name = "generated"
659
-
660
- output_file = output_dir / f"{base_name}_generated_{i}.png"
661
- with open(output_file, 'wb') as f:
662
- f.write(part.inline_data.data)
663
- result['generated_image'] = str(output_file)
664
- if verbose:
665
- print(f" Saved image to: {output_file}")
666
-
667
- return result
668
-
669
- except Exception as e:
670
- # Don't retry on billing/free tier errors - they won't resolve
671
- if _is_billing_error(e) or _is_free_tier_quota_error(e):
672
- return {
673
- 'file': str(file_path) if file_path else 'generated',
674
- 'status': 'error',
675
- 'error': str(e)
676
- }
677
-
678
- # Check if this is a rate limit error (candidate for key rotation)
679
- is_rate_limited = (
680
- KEY_ROTATION_AVAILABLE and
681
- is_rate_limit_error and
682
- is_rate_limit_error(e)
683
- )
684
-
685
- if attempt == max_retries - 1:
686
- return {
687
- 'file': str(file_path) if file_path else 'generated',
688
- 'status': 'error',
689
- 'error': str(e),
690
- 'rate_limited': is_rate_limited # Flag for caller to handle rotation
691
- }
692
-
693
- wait_time = 2 ** attempt
694
- if verbose:
695
- print(f" Retry {attempt + 1} after {wait_time}s: {e}")
696
- time.sleep(wait_time)
697
-
698
-
699
- def batch_process(
700
- files: List[str],
701
- prompt: str,
702
- model: str,
703
- task: str,
704
- format_output: str,
705
- aspect_ratio: Optional[str] = None,
706
- num_images: int = 1,
707
- size: str = '1K',
708
- resolution: str = '1080p',
709
- reference_images: Optional[List[str]] = None,
710
- output_file: Optional[str] = None,
711
- verbose: bool = False,
712
- dry_run: bool = False
713
- ) -> List[Dict[str, Any]]:
714
- """Batch process multiple files with automatic key rotation."""
715
-
716
- # Initialize key rotator or fall back to single key
717
- rotator = None
718
- api_key = None
719
-
720
- if KEY_ROTATION_AVAILABLE and find_all_api_keys:
721
- all_keys = find_all_api_keys()
722
- if all_keys:
723
- if len(all_keys) > 1:
724
- rotator = KeyRotator(keys=all_keys, verbose=verbose)
725
- api_key = rotator.get_key()
726
- if verbose:
727
- print(f"✓ Key rotation enabled with {len(all_keys)} keys", file=sys.stderr)
728
- else:
729
- api_key = all_keys[0]
730
- if verbose:
731
- print(f"✓ Using single API key: {api_key[:8]}...", file=sys.stderr)
732
-
733
- # Fallback to original single-key lookup
734
- if not api_key:
735
- api_key = find_api_key()
736
-
737
- if not api_key:
738
- print("Error: GEMINI_API_KEY not found")
739
- print("\nSetup options:")
740
- print("1. Run setup checker: python scripts/check_setup.py")
741
- print("2. Show hierarchy: python ~/.opencode/scripts/resolve_env.py --show-hierarchy --skill ai-multimodal")
742
- print("3. Quick setup: export GEMINI_API_KEY='your-key'")
743
- print("4. Create .env: cd ~/.opencode/skills/ai-multimodal && cp .env.example .env")
744
- print("\nFor key rotation, add multiple keys:")
745
- print(" GEMINI_API_KEY=key1")
746
- print(" GEMINI_API_KEY_2=key2")
747
- print(" GEMINI_API_KEY_3=key3")
748
- sys.exit(1)
749
-
750
- if dry_run:
751
- print("DRY RUN MODE - No API calls will be made")
752
- print(f"Files to process: {len(files)}")
753
- print(f"Model: {model}")
754
- print(f"Task: {task}")
755
- print(f"Prompt: {prompt}")
756
- if rotator:
757
- print(f"API keys available: {rotator.key_count}")
758
- return []
759
-
760
- # Create client with current key
761
- client = genai.Client(api_key=api_key)
762
- results = []
763
-
764
- def get_client_with_rotation(error: Optional[Exception] = None) -> Optional[genai.Client]:
765
- """Get client, rotating key if rate limited."""
766
- nonlocal client, api_key
767
-
768
- if error and rotator and is_rate_limit_error and is_rate_limit_error(error):
769
- # Try to rotate to next key
770
- if rotator.mark_rate_limited(str(error)):
771
- new_key = rotator.get_key()
772
- if new_key:
773
- api_key = new_key
774
- client = genai.Client(api_key=api_key)
775
- return client
776
- # All keys exhausted
777
- return None
778
- return client
779
-
780
- # For generation tasks without input files, process once
781
- if task == 'generate' and not files:
782
- if verbose:
783
- print(f"\nGenerating image from prompt...")
784
-
785
- # Use Imagen 4 API for imagen models
786
- if model.startswith('imagen-') or model in IMAGEN_MODELS:
787
- result = generate_image_imagen4(
788
- client=client,
789
- prompt=prompt,
790
- model=model,
791
- num_images=num_images,
792
- aspect_ratio=aspect_ratio or '1:1',
793
- size=size or '1K', # Default to 1K for Imagen models
794
- verbose=verbose
795
- )
796
-
797
- # Silent fallback to cheaper model if Imagen billing required
798
- if result.get('status') == 'billing_required':
799
- if verbose:
800
- print(f" Falling back to: {IMAGE_MODEL_FALLBACK}")
801
- result = process_file(
802
- client=client,
803
- file_path=None,
804
- prompt=prompt,
805
- model=IMAGE_MODEL_FALLBACK,
806
- task=task,
807
- format_output=format_output,
808
- aspect_ratio=aspect_ratio,
809
- image_size=size,
810
- verbose=verbose
811
- )
812
- # Check if free tier (zero quota) - stop immediately with clear message
813
- error_str = result.get('error', '')
814
- if result.get('status') == 'error':
815
- if _is_free_tier_quota_error(Exception(error_str)):
816
- result['error'] = FREE_TIER_NO_ACCESS_MSG
817
- elif _is_billing_error(Exception(error_str)):
818
- result['error'] = (
819
- "Image generation requires billing. Enable billing at: "
820
- "https://aistudio.google.com/apikey or use Google Cloud credits."
821
- )
822
- else:
823
- # Nano Banana (Flash/Pro) or other models via generate_content API
824
- result = process_file(
825
- client=client,
826
- file_path=None,
827
- prompt=prompt,
828
- model=model,
829
- task=task,
830
- format_output=format_output,
831
- aspect_ratio=aspect_ratio,
832
- image_size=size,
833
- verbose=verbose
834
- )
835
- # Check for free tier error
836
- if result.get('status') == 'error':
837
- error_str = result.get('error', '')
838
- if _is_free_tier_quota_error(Exception(error_str)):
839
- result['error'] = FREE_TIER_NO_ACCESS_MSG
840
-
841
- results.append(result)
842
-
843
- if verbose:
844
- status = result.get('status', 'unknown')
845
- print(f" Status: {status}")
846
-
847
- elif task == 'generate-video' and not files:
848
- if verbose:
849
- print(f"\nGenerating video from prompt...")
850
-
851
- result = generate_video_veo(
852
- client=client,
853
- prompt=prompt,
854
- model=model,
855
- resolution=resolution,
856
- aspect_ratio=aspect_ratio or '16:9',
857
- reference_images=reference_images,
858
- verbose=verbose
859
- )
860
-
861
- # Check for free tier error - video gen has NO free tier access
862
- if result.get('status') == 'error':
863
- error_str = result.get('error', '')
864
- if _is_free_tier_quota_error(Exception(error_str)) or _is_billing_error(Exception(error_str)):
865
- result['error'] = FREE_TIER_NO_ACCESS_MSG
866
-
867
- results.append(result)
868
-
869
- if verbose:
870
- status = result.get('status', 'unknown')
871
- print(f" Status: {status}")
872
- else:
873
- # Process input files with key rotation support
874
- for i, file_path in enumerate(files, 1):
875
- if verbose:
876
- print(f"\n[{i}/{len(files)}] Processing: {file_path}")
877
-
878
- # Try processing with key rotation on rate limit
879
- max_rotation_attempts = rotator.key_count if rotator else 1
880
- result = None
881
-
882
- for rotation_attempt in range(max_rotation_attempts):
883
- result = process_file(
884
- client=client,
885
- file_path=file_path,
886
- prompt=prompt,
887
- model=model,
888
- task=task,
889
- format_output=format_output,
890
- aspect_ratio=aspect_ratio,
891
- image_size=size,
892
- verbose=verbose
893
- )
894
-
895
- # Check if rate limited and can rotate
896
- if (result.get('rate_limited') and rotator and
897
- rotation_attempt < max_rotation_attempts - 1):
898
- new_client = get_client_with_rotation(Exception(result.get('error', '')))
899
- if new_client:
900
- client = new_client
901
- if verbose:
902
- print(f" Retrying with rotated key...")
903
- continue
904
- else:
905
- # All keys exhausted - mark result with clear error
906
- if verbose:
907
- print(f" ⚠ All API keys exhausted (on cooldown)", file=sys.stderr)
908
- result['error'] = "All API keys exhausted (rate limited). Try again later."
909
- break
910
-
911
- results.append(result)
912
-
913
- if verbose:
914
- status = result.get('status', 'unknown')
915
- print(f" Status: {status}")
916
-
917
- # Save results
918
- if output_file:
919
- save_results(results, output_file, format_output)
920
-
921
- return results
922
-
923
-
924
- def print_results(results: List[Dict[str, Any]], task: str) -> None:
925
- """Print results to stdout for LLM workflows.
926
-
927
- Always prints actual results (not just success/fail counts) so LLMs
928
- can continue processing based on the output.
929
- """
930
- if not results:
931
- return
932
-
933
- print("\n=== RESULTS ===\n")
934
-
935
- for result in results:
936
- file_name = result.get('file', 'generated')
937
- status = result.get('status', 'unknown')
938
-
939
- print(f"[{file_name}]")
940
- print(f"Status: {status}")
941
-
942
- if status == 'success':
943
- # Print task-specific output
944
- if task in ['analyze', 'transcribe', 'extract']:
945
- response = result.get('response')
946
- if response:
947
- print(f"Result:\n{response}")
948
-
949
- elif task == 'generate':
950
- # Image generation
951
- generated_images = result.get('generated_images', [])
952
- if generated_images:
953
- print(f"Generated images: {len(generated_images)}")
954
- for img in generated_images:
955
- print(f" - {img}")
956
- else:
957
- generated_image = result.get('generated_image')
958
- if generated_image:
959
- print(f"Generated image: {generated_image}")
960
-
961
- elif task == 'generate-video':
962
- generated_video = result.get('generated_video')
963
- if generated_video:
964
- print(f"Generated video: {generated_video}")
965
- gen_time = result.get('generation_time')
966
- if gen_time:
967
- print(f"Generation time: {gen_time:.1f}s")
968
- file_size = result.get('file_size_mb')
969
- if file_size:
970
- print(f"File size: {file_size:.2f} MB")
971
-
972
- elif status == 'error':
973
- error = result.get('error', 'Unknown error')
974
- print(f"Error: {error}")
975
-
976
- print() # Blank line between results
977
-
978
-
979
- def save_results(results: List[Dict[str, Any]], output_file: str, format_output: str):
980
- """Save results to file."""
981
- output_path = Path(output_file)
982
-
983
- # Special handling for image generation - if output has image extension, copy the generated image
984
- image_extensions = {'.png', '.jpg', '.jpeg', '.webp', '.gif', '.bmp'}
985
- video_extensions = {'.mp4', '.mov', '.avi', '.webm'}
986
-
987
- if output_path.suffix.lower() in image_extensions and len(results) == 1:
988
- # Ensure output directory exists
989
- output_path.parent.mkdir(parents=True, exist_ok=True)
990
-
991
- # Check for multiple generated images
992
- generated_images = results[0].get('generated_images')
993
- if generated_images:
994
- # Copy first image to the specified output location
995
- shutil.copy2(generated_images[0], output_path)
996
- return
997
-
998
- # Legacy single image field
999
- generated_image = results[0].get('generated_image')
1000
- if generated_image:
1001
- shutil.copy2(generated_image, output_path)
1002
- return
1003
- else:
1004
- # Don't write text reports to image files - save error as .txt instead
1005
- output_path = output_path.with_suffix('.error.txt')
1006
- output_path.parent.mkdir(parents=True, exist_ok=True) # Ensure directory exists
1007
- print(f"Warning: Generation failed, saving error report to: {output_path}")
1008
-
1009
- if output_path.suffix.lower() in video_extensions and len(results) == 1:
1010
- # Ensure output directory exists
1011
- output_path.parent.mkdir(parents=True, exist_ok=True)
1012
-
1013
- generated_video = results[0].get('generated_video')
1014
- if generated_video:
1015
- shutil.copy2(generated_video, output_path)
1016
- return
1017
- else:
1018
- output_path = output_path.with_suffix('.error.txt')
1019
- output_path.parent.mkdir(parents=True, exist_ok=True)
1020
- print(f"Warning: Video generation failed, saving error report to: {output_path}")
1021
-
1022
- if format_output == 'json':
1023
- with open(output_path, 'w', encoding='utf-8') as f:
1024
- json.dump(results, f, indent=2)
1025
- elif format_output == 'csv':
1026
- with open(output_path, 'w', newline='', encoding='utf-8') as f:
1027
- fieldnames = ['file', 'status', 'response', 'error']
1028
- writer = csv.DictWriter(f, fieldnames=fieldnames)
1029
- writer.writeheader()
1030
- for result in results:
1031
- writer.writerow({
1032
- 'file': result.get('file', ''),
1033
- 'status': result.get('status', ''),
1034
- 'response': result.get('response', ''),
1035
- 'error': result.get('error', '')
1036
- })
1037
- else: # markdown
1038
- with open(output_path, 'w', encoding='utf-8') as f:
1039
- f.write("# Batch Processing Results\n\n")
1040
- for i, result in enumerate(results, 1):
1041
- f.write(f"## {i}. {result.get('file', 'Unknown')}\n\n")
1042
- f.write(f"**Status**: {result.get('status', 'unknown')}\n\n")
1043
- if result.get('response'):
1044
- f.write(f"**Response**:\n\n{result['response']}\n\n")
1045
- if result.get('error'):
1046
- f.write(f"**Error**: {result['error']}\n\n")
1047
-
1048
-
1049
- def main():
1050
- parser = argparse.ArgumentParser(
1051
- description='Batch process media files with Gemini API',
1052
- formatter_class=argparse.RawDescriptionHelpFormatter,
1053
- epilog="""
1054
- Examples:
1055
- # Transcribe multiple audio files
1056
- %(prog)s --files *.mp3 --task transcribe --model gemini-2.5-flash
1057
-
1058
- # Analyze images
1059
- %(prog)s --files *.jpg --task analyze --prompt "Describe this image" \\
1060
- --model gemini-2.5-flash
1061
-
1062
- # Process PDFs to JSON
1063
- %(prog)s --files *.pdf --task extract --prompt "Extract data as JSON" \\
1064
- --format json --output results.json
1065
-
1066
- # Generate images with Nano Banana 2 (fastest, near-Pro quality) - NEW DEFAULT
1067
- %(prog)s --task generate --prompt "A mountain landscape at sunset" \\
1068
- --model gemini-3.1-flash-image-preview --aspect-ratio 16:9 --size 2K
1069
-
1070
- # Generate images with Nano Banana Pro (4K text, reasoning)
1071
- %(prog)s --task generate --prompt "Travel poster with text 'EXPLORE'" \\
1072
- --model gemini-3-pro-image-preview --aspect-ratio 3:4 --size 4K
1073
-
1074
- # Generate images with Imagen 4 (production quality)
1075
- %(prog)s --task generate --prompt "Product photo of coffee mug" \\
1076
- --model imagen-4.0-ultra-generate-001 --aspect-ratio 1:1 --size 2K
1077
- """
1078
- )
1079
-
1080
- parser.add_argument('--files', nargs='*', help='Input files to process')
1081
- parser.add_argument('--task',
1082
- choices=['transcribe', 'analyze', 'extract', 'generate', 'generate-video'],
1083
- help='Task to perform (auto-detected from file type if not specified)')
1084
- parser.add_argument('--prompt', help='Prompt for analysis/generation')
1085
- parser.add_argument('--model',
1086
- help='Model to use (default: auto-detected from task and env vars)')
1087
- parser.add_argument('--format', dest='format_output', default='text',
1088
- choices=['text', 'json', 'csv', 'markdown'],
1089
- help='Output format (default: text)')
1090
-
1091
- # Image generation options
1092
- # All 10 aspect ratios supported by Nano Banana / Imagen 4
1093
- parser.add_argument('--aspect-ratio',
1094
- choices=['1:1', '2:3', '3:2', '3:4', '4:3', '4:5', '5:4', '9:16', '16:9', '21:9'],
1095
- help='Aspect ratio for image/video generation')
1096
- parser.add_argument('--num-images', type=int, default=1,
1097
- help='Number of images to generate (1-4, default: 1)')
1098
- # 4K available for Nano Banana Pro (gemini-3-pro-image-preview)
1099
- # Note: Not all models support --size, only use when needed
1100
- parser.add_argument('--size', choices=['1K', '2K', '4K'], default=None,
1101
- help='Image size - 1K/2K for Imagen 4, 1K/2K/4K for Nano Banana (optional)')
1102
-
1103
- # Video generation options
1104
- parser.add_argument('--resolution', choices=['720p', '1080p'], default='1080p',
1105
- help='Video resolution (default: 1080p)')
1106
- parser.add_argument('--reference-images', nargs='+',
1107
- help='Reference images for video generation (max 3)')
1108
-
1109
- parser.add_argument('--output', help='Output file for results')
1110
- parser.add_argument('--verbose', '-v', action='store_true',
1111
- help='Verbose output')
1112
- parser.add_argument('--dry-run', action='store_true',
1113
- help='Show what would be done without making API calls')
1114
-
1115
- args = parser.parse_args()
1116
-
1117
- # Auto-detect task from file type if not specified
1118
- if not args.task:
1119
- if args.files and len(args.files) > 0:
1120
- args.task = infer_task_from_file(args.files[0])
1121
- if args.verbose:
1122
- print(f"Auto-detected task: {args.task} (from file extension)")
1123
- else:
1124
- parser.error("--task required when no input files provided")
1125
-
1126
- # Auto-detect model if not specified
1127
- if not args.model:
1128
- args.model = get_default_model(args.task)
1129
- if args.verbose:
1130
- print(f"Auto-detected model: {args.model}")
1131
-
1132
- # Validate model/task combination
1133
- try:
1134
- validate_model_task_combination(args.model, args.task)
1135
- except ValueError as e:
1136
- parser.error(str(e))
1137
-
1138
- # Validate arguments
1139
- if args.task not in ['generate', 'generate-video'] and not args.files:
1140
- parser.error("--files required for non-generation tasks")
1141
-
1142
- if args.task in ['generate', 'generate-video'] and not args.prompt:
1143
- parser.error("--prompt required for generation tasks")
1144
-
1145
- if args.task not in ['generate', 'generate-video'] and not args.prompt:
1146
- # Set default prompts
1147
- if args.task == 'transcribe':
1148
- args.prompt = 'Generate a transcript with timestamps'
1149
- elif args.task == 'analyze':
1150
- args.prompt = 'Analyze this content'
1151
- elif args.task == 'extract':
1152
- args.prompt = 'Extract key information'
1153
-
1154
- # Process files
1155
- files = args.files or []
1156
- results = batch_process(
1157
- files=files,
1158
- prompt=args.prompt,
1159
- model=args.model,
1160
- task=args.task,
1161
- format_output=args.format_output,
1162
- aspect_ratio=args.aspect_ratio,
1163
- num_images=args.num_images,
1164
- size=args.size,
1165
- resolution=args.resolution,
1166
- reference_images=args.reference_images,
1167
- output_file=args.output,
1168
- verbose=args.verbose,
1169
- dry_run=args.dry_run
1170
- )
1171
-
1172
- # Print results and summary
1173
- if not args.dry_run and results:
1174
- # Always print actual results for LLM workflows
1175
- print_results(results, args.task)
1176
-
1177
- # Print summary
1178
- success = sum(1 for r in results if r.get('status') == 'success')
1179
- failed = len(results) - success
1180
- print(f"{'='*50}")
1181
- print(f"Summary: {len(results)} processed, {success} success, {failed} failed")
1182
- if args.output:
1183
- print(f"Results saved to: {args.output}")
1184
-
1185
-
1186
- if __name__ == '__main__':
1187
- main()