takomi 2.0.4

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 (544) hide show
  1. package/README.md +422 -0
  2. package/assets/.agent/skills/agent-recovery/SKILL.md +147 -0
  3. package/assets/.agent/skills/ai-avatar-video/SKILL.md +153 -0
  4. package/assets/.agent/skills/ai-marketing-videos/SKILL.md +295 -0
  5. package/assets/.agent/skills/ai-podcast-creation/SKILL.md +292 -0
  6. package/assets/.agent/skills/ai-product-photography/SKILL.md +269 -0
  7. package/assets/.agent/skills/ai-sdk/SKILL.md +77 -0
  8. package/assets/.agent/skills/ai-sdk/references/ai-gateway.md +66 -0
  9. package/assets/.agent/skills/ai-sdk/references/common-errors.md +443 -0
  10. package/assets/.agent/skills/ai-sdk/references/type-safe-agents.md +204 -0
  11. package/assets/.agent/skills/ai-social-media-content/SKILL.md +253 -0
  12. package/assets/.agent/skills/ai-voice-cloning/SKILL.md +276 -0
  13. package/assets/.agent/skills/algorithmic-art/LICENSE.txt +202 -0
  14. package/assets/.agent/skills/algorithmic-art/SKILL.md +405 -0
  15. package/assets/.agent/skills/algorithmic-art/templates/generator_template.js +223 -0
  16. package/assets/.agent/skills/algorithmic-art/templates/viewer.html +599 -0
  17. package/assets/.agent/skills/audit-website/SKILL.md +631 -0
  18. package/assets/.agent/skills/audit-website/agents/openai.yaml +6 -0
  19. package/assets/.agent/skills/audit-website/assets/icon-large.png +0 -0
  20. package/assets/.agent/skills/audit-website/assets/icon-small.svg +41 -0
  21. package/assets/.agent/skills/audit-website/references/OUTPUT-FORMAT.md +250 -0
  22. package/assets/.agent/skills/avoid-feature-creep/SKILL.md +307 -0
  23. package/assets/.agent/skills/avoid-feature-creep/agents/openai.yaml +3 -0
  24. package/assets/.agent/skills/avoid-feature-creep/assets/large-logo.png +0 -0
  25. package/assets/.agent/skills/avoid-feature-creep/assets/small-logo.svg +17 -0
  26. package/assets/.agent/skills/building-native-ui/SKILL.md +320 -0
  27. package/assets/.agent/skills/building-native-ui/references/animations.md +220 -0
  28. package/assets/.agent/skills/building-native-ui/references/controls.md +270 -0
  29. package/assets/.agent/skills/building-native-ui/references/form-sheet.md +227 -0
  30. package/assets/.agent/skills/building-native-ui/references/gradients.md +106 -0
  31. package/assets/.agent/skills/building-native-ui/references/icons.md +213 -0
  32. package/assets/.agent/skills/building-native-ui/references/media.md +198 -0
  33. package/assets/.agent/skills/building-native-ui/references/route-structure.md +229 -0
  34. package/assets/.agent/skills/building-native-ui/references/search.md +248 -0
  35. package/assets/.agent/skills/building-native-ui/references/storage.md +121 -0
  36. package/assets/.agent/skills/building-native-ui/references/tabs.md +368 -0
  37. package/assets/.agent/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  38. package/assets/.agent/skills/building-native-ui/references/visual-effects.md +197 -0
  39. package/assets/.agent/skills/building-native-ui/references/webgpu-three.md +605 -0
  40. package/assets/.agent/skills/building-native-ui/references/zoom-transitions.md +158 -0
  41. package/assets/.agent/skills/code-review/SKILL.md +81 -0
  42. package/assets/.agent/skills/component-analysis/SKILL.md +103 -0
  43. package/assets/.agent/skills/context7/SKILL.md +85 -0
  44. package/assets/.agent/skills/convex/SKILL.md +62 -0
  45. package/assets/.agent/skills/convex/agents/openai.yaml +3 -0
  46. package/assets/.agent/skills/convex/assets/large-logo.png +0 -0
  47. package/assets/.agent/skills/convex/assets/small-logo.svg +17 -0
  48. package/assets/.agent/skills/convex-agents/SKILL.md +516 -0
  49. package/assets/.agent/skills/convex-agents/agents/openai.yaml +3 -0
  50. package/assets/.agent/skills/convex-agents/assets/large-logo.png +0 -0
  51. package/assets/.agent/skills/convex-agents/assets/small-logo.svg +17 -0
  52. package/assets/.agent/skills/convex-best-practices/SKILL.md +369 -0
  53. package/assets/.agent/skills/convex-best-practices/agents/openai.yaml +3 -0
  54. package/assets/.agent/skills/convex-best-practices/assets/large-logo.png +0 -0
  55. package/assets/.agent/skills/convex-best-practices/assets/small-logo.svg +17 -0
  56. package/assets/.agent/skills/convex-component-authoring/SKILL.md +457 -0
  57. package/assets/.agent/skills/convex-component-authoring/agents/openai.yaml +3 -0
  58. package/assets/.agent/skills/convex-component-authoring/assets/large-logo.png +0 -0
  59. package/assets/.agent/skills/convex-component-authoring/assets/small-logo.svg +17 -0
  60. package/assets/.agent/skills/convex-cron-jobs/SKILL.md +604 -0
  61. package/assets/.agent/skills/convex-cron-jobs/agents/openai.yaml +3 -0
  62. package/assets/.agent/skills/convex-cron-jobs/assets/large-logo.png +0 -0
  63. package/assets/.agent/skills/convex-cron-jobs/assets/small-logo.svg +17 -0
  64. package/assets/.agent/skills/convex-file-storage/SKILL.md +467 -0
  65. package/assets/.agent/skills/convex-file-storage/agents/openai.yaml +3 -0
  66. package/assets/.agent/skills/convex-file-storage/assets/large-logo.png +0 -0
  67. package/assets/.agent/skills/convex-file-storage/assets/small-logo.svg +17 -0
  68. package/assets/.agent/skills/convex-functions/SKILL.md +458 -0
  69. package/assets/.agent/skills/convex-functions/agents/openai.yaml +3 -0
  70. package/assets/.agent/skills/convex-functions/assets/large-logo.png +0 -0
  71. package/assets/.agent/skills/convex-functions/assets/small-logo.svg +17 -0
  72. package/assets/.agent/skills/convex-http-actions/SKILL.md +733 -0
  73. package/assets/.agent/skills/convex-http-actions/agents/openai.yaml +3 -0
  74. package/assets/.agent/skills/convex-http-actions/assets/large-logo.png +0 -0
  75. package/assets/.agent/skills/convex-http-actions/assets/small-logo.svg +17 -0
  76. package/assets/.agent/skills/convex-migrations/SKILL.md +712 -0
  77. package/assets/.agent/skills/convex-migrations/agents/openai.yaml +3 -0
  78. package/assets/.agent/skills/convex-migrations/assets/large-logo.png +0 -0
  79. package/assets/.agent/skills/convex-migrations/assets/small-logo.svg +17 -0
  80. package/assets/.agent/skills/convex-realtime/SKILL.md +443 -0
  81. package/assets/.agent/skills/convex-realtime/agents/openai.yaml +3 -0
  82. package/assets/.agent/skills/convex-realtime/assets/large-logo.png +0 -0
  83. package/assets/.agent/skills/convex-realtime/assets/small-logo.svg +17 -0
  84. package/assets/.agent/skills/convex-schema-validator/SKILL.md +400 -0
  85. package/assets/.agent/skills/convex-schema-validator/agents/openai.yaml +3 -0
  86. package/assets/.agent/skills/convex-schema-validator/assets/large-logo.png +0 -0
  87. package/assets/.agent/skills/convex-schema-validator/assets/small-logo.svg +17 -0
  88. package/assets/.agent/skills/convex-security-audit/SKILL.md +539 -0
  89. package/assets/.agent/skills/convex-security-audit/agents/openai.yaml +3 -0
  90. package/assets/.agent/skills/convex-security-audit/assets/large-logo.png +0 -0
  91. package/assets/.agent/skills/convex-security-audit/assets/small-logo.svg +17 -0
  92. package/assets/.agent/skills/convex-security-check/SKILL.md +378 -0
  93. package/assets/.agent/skills/convex-security-check/agents/openai.yaml +3 -0
  94. package/assets/.agent/skills/convex-security-check/assets/large-logo.png +0 -0
  95. package/assets/.agent/skills/convex-security-check/assets/small-logo.svg +17 -0
  96. package/assets/.agent/skills/copywriting/SKILL.md +251 -0
  97. package/assets/.agent/skills/copywriting/references/copy-frameworks.md +338 -0
  98. package/assets/.agent/skills/copywriting/references/natural-transitions.md +252 -0
  99. package/assets/.agent/skills/crafting-effective-readmes/SKILL.md +78 -0
  100. package/assets/.agent/skills/crafting-effective-readmes/references/art-of-readme.md +536 -0
  101. package/assets/.agent/skills/crafting-effective-readmes/references/make-a-readme.md +119 -0
  102. package/assets/.agent/skills/crafting-effective-readmes/references/standard-readme-example-maximal.md +68 -0
  103. package/assets/.agent/skills/crafting-effective-readmes/references/standard-readme-example-minimal.md +21 -0
  104. package/assets/.agent/skills/crafting-effective-readmes/references/standard-readme-spec.md +242 -0
  105. package/assets/.agent/skills/crafting-effective-readmes/section-checklist.md +17 -0
  106. package/assets/.agent/skills/crafting-effective-readmes/style-guide.md +13 -0
  107. package/assets/.agent/skills/crafting-effective-readmes/templates/internal.md +106 -0
  108. package/assets/.agent/skills/crafting-effective-readmes/templates/oss.md +77 -0
  109. package/assets/.agent/skills/crafting-effective-readmes/templates/personal.md +51 -0
  110. package/assets/.agent/skills/crafting-effective-readmes/templates/xdg-config.md +71 -0
  111. package/assets/.agent/skills/crafting-effective-readmes/using-references.md +35 -0
  112. package/assets/.agent/skills/docx/LICENSE.txt +30 -0
  113. package/assets/.agent/skills/docx/SKILL.md +481 -0
  114. package/assets/.agent/skills/docx/scripts/accept_changes.py +135 -0
  115. package/assets/.agent/skills/docx/scripts/comment.py +318 -0
  116. package/assets/.agent/skills/docx/scripts/office/helpers/merge_runs.py +199 -0
  117. package/assets/.agent/skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  118. package/assets/.agent/skills/docx/scripts/office/pack.py +159 -0
  119. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  120. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  121. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  122. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  123. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  124. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  125. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  126. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  127. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  128. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  129. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  130. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  131. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  132. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  133. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  134. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  135. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  136. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  137. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  138. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  139. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  140. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  141. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  142. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  143. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  144. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  145. package/assets/.agent/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  146. package/assets/.agent/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  147. package/assets/.agent/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  148. package/assets/.agent/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  149. package/assets/.agent/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  150. package/assets/.agent/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  151. package/assets/.agent/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  152. package/assets/.agent/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  153. package/assets/.agent/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  154. package/assets/.agent/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  155. package/assets/.agent/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  156. package/assets/.agent/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  157. package/assets/.agent/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  158. package/assets/.agent/skills/docx/scripts/office/soffice.py +183 -0
  159. package/assets/.agent/skills/docx/scripts/office/unpack.py +132 -0
  160. package/assets/.agent/skills/docx/scripts/office/validate.py +111 -0
  161. package/assets/.agent/skills/docx/scripts/office/validators/base.py +847 -0
  162. package/assets/.agent/skills/docx/scripts/office/validators/docx.py +446 -0
  163. package/assets/.agent/skills/docx/scripts/office/validators/pptx.py +275 -0
  164. package/assets/.agent/skills/docx/scripts/office/validators/redlining.py +247 -0
  165. package/assets/.agent/skills/docx/scripts/templates/comments.xml +3 -0
  166. package/assets/.agent/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  167. package/assets/.agent/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  168. package/assets/.agent/skills/docx/scripts/templates/commentsIds.xml +3 -0
  169. package/assets/.agent/skills/docx/scripts/templates/people.xml +3 -0
  170. package/assets/.agent/skills/domain-name-brainstormer/SKILL.md +212 -0
  171. package/assets/.agent/skills/frontend-design/LICENSE.txt +177 -0
  172. package/assets/.agent/skills/frontend-design/SKILL.md +42 -0
  173. package/assets/.agent/skills/gemini/SKILL.md +223 -0
  174. package/assets/.agent/skills/git-worktree/SKILL.md +78 -0
  175. package/assets/.agent/skills/github-ops/SKILL.md +220 -0
  176. package/assets/.agent/skills/github-ops/scripts/publish_issues.ps1 +443 -0
  177. package/assets/.agent/skills/github-ops/scripts/smart-ops.ps1 +128 -0
  178. package/assets/.agent/skills/github-ops/scripts/smart-ops.sh +130 -0
  179. package/assets/.agent/skills/global-brand-namer/SKILL.md +119 -0
  180. package/assets/.agent/skills/global-brand-namer/references/language-matrices.md +196 -0
  181. package/assets/.agent/skills/global-brand-namer/references/saas-modifiers.md +132 -0
  182. package/assets/.agent/skills/google-trends/SKILL.md +157 -0
  183. package/assets/.agent/skills/google-trends/scripts/package.json +17 -0
  184. package/assets/.agent/skills/google-trends/scripts/pnpm-lock.yaml +31 -0
  185. package/assets/.agent/skills/google-trends/scripts/search.js +168 -0
  186. package/assets/.agent/skills/high-fidelity-extraction/SKILL.md +59 -0
  187. package/assets/.agent/skills/jules/SKILL.md +196 -0
  188. package/assets/.agent/skills/marketing-ideas/SKILL.md +166 -0
  189. package/assets/.agent/skills/marketing-ideas/references/ideas-by-category.md +347 -0
  190. package/assets/.agent/skills/monorepo-management/SKILL.md +623 -0
  191. package/assets/.agent/skills/nextjs-standards/SKILL.md +194 -0
  192. package/assets/.agent/skills/nextjs-standards/scripts/vibe-verify.py +150 -0
  193. package/assets/.agent/skills/nextjs-standards/templates/Coding_Guidelines.md +337 -0
  194. package/assets/.agent/skills/nextjs-standards/templates/Issue_Template.md +194 -0
  195. package/assets/.agent/skills/optimize-agent-context/SKILL.md +97 -0
  196. package/assets/.agent/skills/pdf/LICENSE.txt +30 -0
  197. package/assets/.agent/skills/pdf/SKILL.md +314 -0
  198. package/assets/.agent/skills/pdf/forms.md +294 -0
  199. package/assets/.agent/skills/pdf/reference.md +612 -0
  200. package/assets/.agent/skills/pdf/scripts/check_bounding_boxes.py +65 -0
  201. package/assets/.agent/skills/pdf/scripts/check_fillable_fields.py +11 -0
  202. package/assets/.agent/skills/pdf/scripts/convert_pdf_to_images.py +33 -0
  203. package/assets/.agent/skills/pdf/scripts/create_validation_image.py +37 -0
  204. package/assets/.agent/skills/pdf/scripts/extract_form_field_info.py +122 -0
  205. package/assets/.agent/skills/pdf/scripts/extract_form_structure.py +115 -0
  206. package/assets/.agent/skills/pdf/scripts/fill_fillable_fields.py +98 -0
  207. package/assets/.agent/skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  208. package/assets/.agent/skills/pptx/LICENSE.txt +30 -0
  209. package/assets/.agent/skills/pptx/SKILL.md +232 -0
  210. package/assets/.agent/skills/pptx/editing.md +205 -0
  211. package/assets/.agent/skills/pptx/pptxgenjs.md +420 -0
  212. package/assets/.agent/skills/pptx/scripts/add_slide.py +195 -0
  213. package/assets/.agent/skills/pptx/scripts/clean.py +286 -0
  214. package/assets/.agent/skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
  215. package/assets/.agent/skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  216. package/assets/.agent/skills/pptx/scripts/office/pack.py +159 -0
  217. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  218. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  219. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  220. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  221. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  222. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  223. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  224. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  225. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  226. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  227. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  228. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  229. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  230. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  231. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  232. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  233. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  234. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  235. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  236. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  237. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  238. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  239. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  240. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  241. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  242. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  243. package/assets/.agent/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  244. package/assets/.agent/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  245. package/assets/.agent/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  246. package/assets/.agent/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  247. package/assets/.agent/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  248. package/assets/.agent/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  249. package/assets/.agent/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  250. package/assets/.agent/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  251. package/assets/.agent/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  252. package/assets/.agent/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  253. package/assets/.agent/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  254. package/assets/.agent/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  255. package/assets/.agent/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  256. package/assets/.agent/skills/pptx/scripts/office/soffice.py +183 -0
  257. package/assets/.agent/skills/pptx/scripts/office/unpack.py +132 -0
  258. package/assets/.agent/skills/pptx/scripts/office/validate.py +111 -0
  259. package/assets/.agent/skills/pptx/scripts/office/validators/base.py +847 -0
  260. package/assets/.agent/skills/pptx/scripts/office/validators/docx.py +446 -0
  261. package/assets/.agent/skills/pptx/scripts/office/validators/pptx.py +275 -0
  262. package/assets/.agent/skills/pptx/scripts/office/validators/redlining.py +247 -0
  263. package/assets/.agent/skills/pptx/scripts/thumbnail.py +289 -0
  264. package/assets/.agent/skills/pricing-strategy/SKILL.md +227 -0
  265. package/assets/.agent/skills/pricing-strategy/references/research-methods.md +146 -0
  266. package/assets/.agent/skills/pricing-strategy/references/tier-structure.md +223 -0
  267. package/assets/.agent/skills/programmatic-seo/SKILL.md +236 -0
  268. package/assets/.agent/skills/programmatic-seo/references/playbooks.md +293 -0
  269. package/assets/.agent/skills/prompt-engineering/SKILL.md +342 -0
  270. package/assets/.agent/skills/remotion/SKILL.md +45 -0
  271. package/assets/.agent/skills/remotion/rules/3d.md +86 -0
  272. package/assets/.agent/skills/remotion/rules/animations.md +29 -0
  273. package/assets/.agent/skills/remotion/rules/assets/charts-bar-chart.tsx +173 -0
  274. package/assets/.agent/skills/remotion/rules/assets/text-animations-typewriter.tsx +100 -0
  275. package/assets/.agent/skills/remotion/rules/assets/text-animations-word-highlight.tsx +108 -0
  276. package/assets/.agent/skills/remotion/rules/assets.md +78 -0
  277. package/assets/.agent/skills/remotion/rules/audio.md +172 -0
  278. package/assets/.agent/skills/remotion/rules/calculate-metadata.md +104 -0
  279. package/assets/.agent/skills/remotion/rules/can-decode.md +75 -0
  280. package/assets/.agent/skills/remotion/rules/charts.md +58 -0
  281. package/assets/.agent/skills/remotion/rules/compositions.md +141 -0
  282. package/assets/.agent/skills/remotion/rules/display-captions.md +126 -0
  283. package/assets/.agent/skills/remotion/rules/extract-frames.md +229 -0
  284. package/assets/.agent/skills/remotion/rules/fonts.md +152 -0
  285. package/assets/.agent/skills/remotion/rules/get-audio-duration.md +58 -0
  286. package/assets/.agent/skills/remotion/rules/get-video-dimensions.md +68 -0
  287. package/assets/.agent/skills/remotion/rules/get-video-duration.md +58 -0
  288. package/assets/.agent/skills/remotion/rules/gifs.md +138 -0
  289. package/assets/.agent/skills/remotion/rules/images.md +130 -0
  290. package/assets/.agent/skills/remotion/rules/import-srt-captions.md +67 -0
  291. package/assets/.agent/skills/remotion/rules/lottie.md +68 -0
  292. package/assets/.agent/skills/remotion/rules/maps.md +403 -0
  293. package/assets/.agent/skills/remotion/rules/measuring-dom-nodes.md +35 -0
  294. package/assets/.agent/skills/remotion/rules/measuring-text.md +143 -0
  295. package/assets/.agent/skills/remotion/rules/parameters.md +98 -0
  296. package/assets/.agent/skills/remotion/rules/sequencing.md +118 -0
  297. package/assets/.agent/skills/remotion/rules/tailwind.md +11 -0
  298. package/assets/.agent/skills/remotion/rules/text-animations.md +20 -0
  299. package/assets/.agent/skills/remotion/rules/timing.md +179 -0
  300. package/assets/.agent/skills/remotion/rules/transcribe-captions.md +19 -0
  301. package/assets/.agent/skills/remotion/rules/transitions.md +122 -0
  302. package/assets/.agent/skills/remotion/rules/trimming.md +53 -0
  303. package/assets/.agent/skills/remotion/rules/videos.md +171 -0
  304. package/assets/.agent/skills/security-audit/SKILL.md +184 -0
  305. package/assets/.agent/skills/seo-ready/SKILL.md +140 -0
  306. package/assets/.agent/skills/seo-ready/references/aeo-geo-patterns.md +279 -0
  307. package/assets/.agent/skills/seo-ready/references/ai-writing-detection.md +190 -0
  308. package/assets/.agent/skills/skill-creator/LICENSE.txt +202 -0
  309. package/assets/.agent/skills/skill-creator/SKILL.md +356 -0
  310. package/assets/.agent/skills/skill-creator/references/output-patterns.md +82 -0
  311. package/assets/.agent/skills/skill-creator/references/workflows.md +28 -0
  312. package/assets/.agent/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-311.pyc +0 -0
  313. package/assets/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
  314. package/assets/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
  315. package/assets/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  316. package/assets/.agent/skills/social-content/SKILL.md +277 -0
  317. package/assets/.agent/skills/social-content/references/platforms.md +163 -0
  318. package/assets/.agent/skills/social-content/references/post-templates.md +171 -0
  319. package/assets/.agent/skills/social-content/references/reverse-engineering.md +190 -0
  320. package/assets/.agent/skills/spawn-task/SKILL.md +130 -0
  321. package/assets/.agent/skills/stitch/SKILL.md +258 -0
  322. package/assets/.agent/skills/stitch/design-md/README.md +34 -0
  323. package/assets/.agent/skills/stitch/design-md/SKILL.md +172 -0
  324. package/assets/.agent/skills/stitch/design-md/examples/DESIGN.md +154 -0
  325. package/assets/.agent/skills/stitch/enhance-prompt/README.md +34 -0
  326. package/assets/.agent/skills/stitch/enhance-prompt/SKILL.md +204 -0
  327. package/assets/.agent/skills/stitch/enhance-prompt/references/KEYWORDS.md +114 -0
  328. package/assets/.agent/skills/stitch/react-components/README.md +36 -0
  329. package/assets/.agent/skills/stitch/react-components/SKILL.md +47 -0
  330. package/assets/.agent/skills/stitch/react-components/examples/gold-standard-card.tsx +80 -0
  331. package/assets/.agent/skills/stitch/react-components/package-lock.json +231 -0
  332. package/assets/.agent/skills/stitch/react-components/package.json +16 -0
  333. package/assets/.agent/skills/stitch/react-components/resources/architecture-checklist.md +15 -0
  334. package/assets/.agent/skills/stitch/react-components/resources/component-template.tsx +37 -0
  335. package/assets/.agent/skills/stitch/react-components/resources/stitch-api-reference.md +14 -0
  336. package/assets/.agent/skills/stitch/react-components/resources/style-guide.json +27 -0
  337. package/assets/.agent/skills/stitch/react-components/scripts/fetch-stitch.sh +30 -0
  338. package/assets/.agent/skills/stitch/react-components/scripts/validate.js +68 -0
  339. package/assets/.agent/skills/stitch/remotion/README.md +105 -0
  340. package/assets/.agent/skills/stitch/remotion/SKILL.md +393 -0
  341. package/assets/.agent/skills/stitch/remotion/examples/WalkthroughComposition.tsx +78 -0
  342. package/assets/.agent/skills/stitch/remotion/examples/screens.json +56 -0
  343. package/assets/.agent/skills/stitch/remotion/resources/composition-checklist.md +124 -0
  344. package/assets/.agent/skills/stitch/remotion/resources/screen-slide-template.tsx +123 -0
  345. package/assets/.agent/skills/stitch/remotion/scripts/download-stitch-asset.sh +38 -0
  346. package/assets/.agent/skills/stitch/shadcn-ui/README.md +248 -0
  347. package/assets/.agent/skills/stitch/shadcn-ui/SKILL.md +326 -0
  348. package/assets/.agent/skills/stitch/shadcn-ui/examples/auth-layout.tsx +177 -0
  349. package/assets/.agent/skills/stitch/shadcn-ui/examples/data-table.tsx +313 -0
  350. package/assets/.agent/skills/stitch/shadcn-ui/examples/form-pattern.tsx +177 -0
  351. package/assets/.agent/skills/stitch/shadcn-ui/resources/component-catalog.md +481 -0
  352. package/assets/.agent/skills/stitch/shadcn-ui/resources/customization-guide.md +516 -0
  353. package/assets/.agent/skills/stitch/shadcn-ui/resources/migration-guide.md +463 -0
  354. package/assets/.agent/skills/stitch/shadcn-ui/resources/setup-guide.md +412 -0
  355. package/assets/.agent/skills/stitch/shadcn-ui/scripts/verify-setup.sh +134 -0
  356. package/assets/.agent/skills/stitch/stitch-loop/README.md +54 -0
  357. package/assets/.agent/skills/stitch/stitch-loop/SKILL.md +203 -0
  358. package/assets/.agent/skills/stitch/stitch-loop/examples/SITE.md +73 -0
  359. package/assets/.agent/skills/stitch/stitch-loop/examples/next-prompt.md +25 -0
  360. package/assets/.agent/skills/stitch/stitch-loop/resources/baton-schema.md +61 -0
  361. package/assets/.agent/skills/stitch/stitch-loop/resources/site-template.md +104 -0
  362. package/assets/.agent/skills/subagent-driven-development/SKILL.md +242 -0
  363. package/assets/.agent/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  364. package/assets/.agent/skills/subagent-driven-development/implementer-prompt.md +78 -0
  365. package/assets/.agent/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  366. package/assets/.agent/skills/sync-docs/SKILL.md +88 -0
  367. package/assets/.agent/skills/twitter-automation/SKILL.md +157 -0
  368. package/assets/.agent/skills/ui-ux-pro-max/README.md +488 -0
  369. package/assets/.agent/skills/ui-ux-pro-max/SKILL.md +293 -0
  370. package/assets/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
  371. package/assets/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
  372. package/assets/.agent/skills/ui-ux-pro-max/data/icons.csv +101 -0
  373. package/assets/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
  374. package/assets/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
  375. package/assets/.agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
  376. package/assets/.agent/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  377. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  378. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  379. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  380. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  381. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  382. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  383. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  384. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  385. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  386. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  387. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  388. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  389. package/assets/.agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
  390. package/assets/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
  391. package/assets/.agent/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  392. package/assets/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  393. package/assets/.agent/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  394. package/assets/.agent/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-311.pyc +0 -0
  395. package/assets/.agent/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-311.pyc +0 -0
  396. package/assets/.agent/skills/ui-ux-pro-max/scripts/core.py +258 -0
  397. package/assets/.agent/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  398. package/assets/.agent/skills/ui-ux-pro-max/scripts/search.py +106 -0
  399. package/assets/.agent/skills/upgrading-expo/SKILL.md +125 -0
  400. package/assets/.agent/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  401. package/assets/.agent/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  402. package/assets/.agent/skills/upgrading-expo/references/native-tabs.md +124 -0
  403. package/assets/.agent/skills/upgrading-expo/references/new-architecture.md +79 -0
  404. package/assets/.agent/skills/upgrading-expo/references/react-19.md +79 -0
  405. package/assets/.agent/skills/upgrading-expo/references/react-compiler.md +59 -0
  406. package/assets/.agent/skills/web-design-guidelines/SKILL.md +39 -0
  407. package/assets/.agent/skills/webapp-testing/LICENSE.txt +202 -0
  408. package/assets/.agent/skills/webapp-testing/SKILL.md +96 -0
  409. package/assets/.agent/skills/webapp-testing/examples/console_logging.py +35 -0
  410. package/assets/.agent/skills/webapp-testing/examples/element_discovery.py +40 -0
  411. package/assets/.agent/skills/webapp-testing/examples/static_html_automation.py +33 -0
  412. package/assets/.agent/skills/webapp-testing/scripts/with_server.py +106 -0
  413. package/assets/.agent/skills/xlsx/LICENSE.txt +30 -0
  414. package/assets/.agent/skills/xlsx/SKILL.md +292 -0
  415. package/assets/.agent/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  416. package/assets/.agent/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  417. package/assets/.agent/skills/xlsx/scripts/office/pack.py +159 -0
  418. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  419. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  420. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  421. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  422. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  423. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  424. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  425. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  426. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  427. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  428. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  429. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  430. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  431. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  432. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  433. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  434. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  435. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  436. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  437. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  438. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  439. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  440. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  441. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  442. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  443. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  444. package/assets/.agent/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  445. package/assets/.agent/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  446. package/assets/.agent/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  447. package/assets/.agent/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  448. package/assets/.agent/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  449. package/assets/.agent/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  450. package/assets/.agent/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  451. package/assets/.agent/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  452. package/assets/.agent/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  453. package/assets/.agent/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  454. package/assets/.agent/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  455. package/assets/.agent/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  456. package/assets/.agent/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  457. package/assets/.agent/skills/xlsx/scripts/office/soffice.py +183 -0
  458. package/assets/.agent/skills/xlsx/scripts/office/unpack.py +132 -0
  459. package/assets/.agent/skills/xlsx/scripts/office/validate.py +111 -0
  460. package/assets/.agent/skills/xlsx/scripts/office/validators/base.py +847 -0
  461. package/assets/.agent/skills/xlsx/scripts/office/validators/docx.py +446 -0
  462. package/assets/.agent/skills/xlsx/scripts/office/validators/pptx.py +275 -0
  463. package/assets/.agent/skills/xlsx/scripts/office/validators/redlining.py +247 -0
  464. package/assets/.agent/skills/xlsx/scripts/recalc.py +184 -0
  465. package/assets/.agent/skills/youtube-pipeline/SKILL.md +194 -0
  466. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase1-strategy.md +224 -0
  467. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase2-packaging.md +148 -0
  468. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase3-scripting.md +197 -0
  469. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase3.5-shorts.md +271 -0
  470. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase4-production.md +193 -0
  471. package/assets/.agent/skills/youtube-pipeline/resources/youtube-phase5-repurposing.md +159 -0
  472. package/assets/.agent/skills/youtube-pipeline/resources/youtube-pipeline.md +161 -0
  473. package/assets/.agent/skills/youtube-pipeline/scripts/parse_yt_studio.ps1 +150 -0
  474. package/assets/.agent/workflows/LEGACY/ANTIGRAVITY_TOOLBOX.md +200 -0
  475. package/assets/.agent/workflows/LEGACY/analyze_component.md +141 -0
  476. package/assets/.agent/workflows/LEGACY/build_vibecode_project.md +154 -0
  477. package/assets/.agent/workflows/LEGACY/build_vibecode_project_v2.md +158 -0
  478. package/assets/.agent/workflows/LEGACY/deep_code_audit.md +79 -0
  479. package/assets/.agent/workflows/LEGACY/gemini-orchestrate.md +63 -0
  480. package/assets/.agent/workflows/LEGACY/git_worktree.md +71 -0
  481. package/assets/.agent/workflows/LEGACY/init_smart_ops.md +101 -0
  482. package/assets/.agent/workflows/LEGACY/init_vibecode_genesis_v1.md +137 -0
  483. package/assets/.agent/workflows/LEGACY/multi_agent_strategy.md +62 -0
  484. package/assets/.agent/workflows/LEGACY/orchestrate.md +321 -0
  485. package/assets/.agent/workflows/LEGACY/seo_ready.md +249 -0
  486. package/assets/.agent/workflows/LEGACY/vibe-orchestrator.md +305 -0
  487. package/assets/.agent/workflows/LEGACY/youtube-phase1-strategy.md +224 -0
  488. package/assets/.agent/workflows/LEGACY/youtube-phase2-packaging.md +148 -0
  489. package/assets/.agent/workflows/LEGACY/youtube-phase3-scripting.md +197 -0
  490. package/assets/.agent/workflows/LEGACY/youtube-phase3.5-shorts.md +271 -0
  491. package/assets/.agent/workflows/LEGACY/youtube-phase4-production.md +193 -0
  492. package/assets/.agent/workflows/LEGACY/youtube-phase5-repurposing.md +159 -0
  493. package/assets/.agent/workflows/LEGACY/youtube-pipeline.md +161 -0
  494. package/assets/.agent/workflows/README.md +537 -0
  495. package/assets/.agent/workflows/Vercel Ai SDK.md +34083 -0
  496. package/assets/.agent/workflows/agent_reset.md +173 -0
  497. package/assets/.agent/workflows/escalate.md +112 -0
  498. package/assets/.agent/workflows/migrate.md +135 -0
  499. package/assets/.agent/workflows/mode-architect.md +422 -0
  500. package/assets/.agent/workflows/mode-ask.md +294 -0
  501. package/assets/.agent/workflows/mode-code.md +481 -0
  502. package/assets/.agent/workflows/mode-debug.md +407 -0
  503. package/assets/.agent/workflows/mode-orchestrator.md +222 -0
  504. package/assets/.agent/workflows/mode-review.md +341 -0
  505. package/assets/.agent/workflows/mode-visionary.md +186 -0
  506. package/assets/.agent/workflows/optimize-agent-context.md +54 -0
  507. package/assets/.agent/workflows/remotion-build.md +323 -0
  508. package/assets/.agent/workflows/reverse_genesis.md +132 -0
  509. package/assets/.agent/workflows/review_code.md +133 -0
  510. package/assets/.agent/workflows/spawn-jstar-code-review.md +121 -0
  511. package/assets/.agent/workflows/stitch.md +149 -0
  512. package/assets/.agent/workflows/vibe-build.md +271 -0
  513. package/assets/.agent/workflows/vibe-continueBuild.md +184 -0
  514. package/assets/.agent/workflows/vibe-design.md +98 -0
  515. package/assets/.agent/workflows/vibe-finalize.md +208 -0
  516. package/assets/.agent/workflows/vibe-genesis.md +191 -0
  517. package/assets/.agent/workflows/vibe-primeAgent.md +110 -0
  518. package/assets/.agent/workflows/vibe-spawnTask.md +188 -0
  519. package/assets/.agent/workflows/vibe-syncDocs.md +90 -0
  520. package/assets/Legacy/0 VibeCode User Manual.md +175 -0
  521. package/assets/Legacy/1 Project Genesis Protocol The VibeCode Workflow.md +89 -0
  522. package/assets/Legacy/2/342/234/250 ULTIMATE ORCHESTRATION PROMPT/342/234/250.md" +114 -0
  523. package/assets/Legacy/3 Design System Genesis Protocol.md +75 -0
  524. package/assets/Legacy/3.1.1 my_design_system_rules.md +177 -0
  525. package/assets/Legacy/3.1.2 Material You M3 Genesis Protocol.md +73 -0
  526. package/assets/Legacy/4 The Ultimate GitHub Issue Meta-Prompt Template.md +54 -0
  527. package/assets/Legacy/5 The Escalation & Handoff Protocol.md +97 -0
  528. package/assets/Legacy/8 The Seamless Migration Meta-Prompt (Your Reusable Tool).md +38 -0
  529. package/assets/Legacy/9 The Reverse Genesis Protocol.md +75 -0
  530. package/assets/Takomi-Agents/custom_modes.yaml +1252 -0
  531. package/assets/Takomi-Agents/kilo-code-settings.json +1 -0
  532. package/assets/Takomi-Agents/vibe-architect.yaml +473 -0
  533. package/assets/Takomi-Agents/vibe-ask.yaml +395 -0
  534. package/assets/Takomi-Agents/vibe-code.yaml +522 -0
  535. package/assets/Takomi-Agents/vibe-debug.yaml +448 -0
  536. package/assets/Takomi-Agents/vibe-orchestrator.yaml +763 -0
  537. package/assets/Takomi-Agents/vibe-review.yaml +459 -0
  538. package/assets/Takomi-Agents/vibe-visionary.yaml +607 -0
  539. package/bin/takomi.js +2 -0
  540. package/package.json +42 -0
  541. package/src/cli.js +638 -0
  542. package/src/harness.js +281 -0
  543. package/src/store.js +239 -0
  544. package/src/utils.js +447 -0
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: images
3
+ description: Embedding images in Remotion using the <Img> component
4
+ metadata:
5
+ tags: images, img, staticFile, png, jpg, svg, webp
6
+ ---
7
+
8
+ # Using images in Remotion
9
+
10
+ ## The `<Img>` component
11
+
12
+ Always use the `<Img>` component from `remotion` to display images:
13
+
14
+ ```tsx
15
+ import { Img, staticFile } from "remotion";
16
+
17
+ export const MyComposition = () => {
18
+ return <Img src={staticFile("photo.png")} />;
19
+ };
20
+ ```
21
+
22
+ ## Important restrictions
23
+
24
+ **You MUST use the `<Img>` component from `remotion`.** Do not use:
25
+
26
+ - Native HTML `<img>` elements
27
+ - Next.js `<Image>` component
28
+ - CSS `background-image`
29
+
30
+ The `<Img>` component ensures images are fully loaded before rendering, preventing flickering and blank frames during video export.
31
+
32
+ ## Local images with staticFile()
33
+
34
+ Place images in the `public/` folder and use `staticFile()` to reference them:
35
+
36
+ ```
37
+ my-video/
38
+ ├─ public/
39
+ │ ├─ logo.png
40
+ │ ├─ avatar.jpg
41
+ │ └─ icon.svg
42
+ ├─ src/
43
+ ├─ package.json
44
+ ```
45
+
46
+ ```tsx
47
+ import { Img, staticFile } from "remotion";
48
+
49
+ <Img src={staticFile("logo.png")} />
50
+ ```
51
+
52
+ ## Remote images
53
+
54
+ Remote URLs can be used directly without `staticFile()`:
55
+
56
+ ```tsx
57
+ <Img src="https://example.com/image.png" />
58
+ ```
59
+
60
+ Ensure remote images have CORS enabled.
61
+
62
+ For animated GIFs, use the `<Gif>` component from `@remotion/gif` instead.
63
+
64
+ ## Sizing and positioning
65
+
66
+ Use the `style` prop to control size and position:
67
+
68
+ ```tsx
69
+ <Img
70
+ src={staticFile("photo.png")}
71
+ style={{
72
+ width: 500,
73
+ height: 300,
74
+ position: "absolute",
75
+ top: 100,
76
+ left: 50,
77
+ objectFit: "cover",
78
+ }}
79
+ />
80
+ ```
81
+
82
+ ## Dynamic image paths
83
+
84
+ Use template literals for dynamic file references:
85
+
86
+ ```tsx
87
+ import { Img, staticFile, useCurrentFrame } from "remotion";
88
+
89
+ const frame = useCurrentFrame();
90
+
91
+ // Image sequence
92
+ <Img src={staticFile(`frames/frame${frame}.png`)} />
93
+
94
+ // Selecting based on props
95
+ <Img src={staticFile(`avatars/${props.userId}.png`)} />
96
+
97
+ // Conditional images
98
+ <Img src={staticFile(`icons/${isActive ? "active" : "inactive"}.svg`)} />
99
+ ```
100
+
101
+ This pattern is useful for:
102
+
103
+ - Image sequences (frame-by-frame animations)
104
+ - User-specific avatars or profile images
105
+ - Theme-based icons
106
+ - State-dependent graphics
107
+
108
+ ## Getting image dimensions
109
+
110
+ Use `getImageDimensions()` to get the dimensions of an image:
111
+
112
+ ```tsx
113
+ import { getImageDimensions, staticFile } from "remotion";
114
+
115
+ const { width, height } = await getImageDimensions(staticFile("photo.png"));
116
+ ```
117
+
118
+ This is useful for calculating aspect ratios or sizing compositions:
119
+
120
+ ```tsx
121
+ import { getImageDimensions, staticFile, CalculateMetadataFunction } from "remotion";
122
+
123
+ const calculateMetadata: CalculateMetadataFunction = async () => {
124
+ const { width, height } = await getImageDimensions(staticFile("photo.png"));
125
+ return {
126
+ width,
127
+ height,
128
+ };
129
+ };
130
+ ```
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: import-srt-captions
3
+ description: Importing .srt subtitle files into Remotion using @remotion/captions
4
+ metadata:
5
+ tags: captions, subtitles, srt, import, parse
6
+ ---
7
+
8
+ # Importing .srt subtitles into Remotion
9
+
10
+ If you have an existing `.srt` subtitle file, you can import it into Remotion using `parseSrt()` from `@remotion/captions`.
11
+
12
+ ## Prerequisites
13
+
14
+ First, the @remotion/captions package needs to be installed.
15
+ If it is not installed, use the following command:
16
+
17
+ ```bash
18
+ npx remotion add @remotion/captions # If project uses npm
19
+ bunx remotion add @remotion/captions # If project uses bun
20
+ yarn remotion add @remotion/captions # If project uses yarn
21
+ pnpm exec remotion add @remotion/captions # If project uses pnpm
22
+ ```
23
+
24
+ ## Reading an .srt file
25
+
26
+ Use `staticFile()` to reference an `.srt` file in your `public` folder, then fetch and parse it:
27
+
28
+ ```tsx
29
+ import {useState, useEffect, useCallback} from 'react';
30
+ import {AbsoluteFill, staticFile, useDelayRender} from 'remotion';
31
+ import {parseSrt} from '@remotion/captions';
32
+ import type {Caption} from '@remotion/captions';
33
+
34
+ export const MyComponent: React.FC = () => {
35
+ const [captions, setCaptions] = useState<Caption[] | null>(null);
36
+ const {delayRender, continueRender, cancelRender} = useDelayRender();
37
+ const [handle] = useState(() => delayRender());
38
+
39
+ const fetchCaptions = useCallback(async () => {
40
+ try {
41
+ const response = await fetch(staticFile('subtitles.srt'));
42
+ const text = await response.text();
43
+ const {captions: parsed} = parseSrt({input: text});
44
+ setCaptions(parsed);
45
+ continueRender(handle);
46
+ } catch (e) {
47
+ cancelRender(e);
48
+ }
49
+ }, [continueRender, cancelRender, handle]);
50
+
51
+ useEffect(() => {
52
+ fetchCaptions();
53
+ }, [fetchCaptions]);
54
+
55
+ if (!captions) {
56
+ return null;
57
+ }
58
+
59
+ return <AbsoluteFill>{/* Use captions here */}</AbsoluteFill>;
60
+ };
61
+ ```
62
+
63
+ Remote URLs are also supported - you can `fetch()` a remote file via URL instead of using `staticFile()`.
64
+
65
+ ## Using imported captions
66
+
67
+ Once parsed, the captions are in the `Caption` format and can be used with all `@remotion/captions` utilities.
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: lottie
3
+ description: Embedding Lottie animations in Remotion.
4
+ metadata:
5
+ category: Animation
6
+ ---
7
+
8
+ # Using Lottie Animations in Remotion
9
+
10
+ ## Prerequisites
11
+
12
+ First, the @remotion/lottie package needs to be installed.
13
+ If it is not, use the following command:
14
+
15
+ ```bash
16
+ npx remotion add @remotion/lottie # If project uses npm
17
+ bunx remotion add @remotion/lottie # If project uses bun
18
+ yarn remotion add @remotion/lottie # If project uses yarn
19
+ pnpm exec remotion add @remotion/lottie # If project uses pnpm
20
+ ```
21
+
22
+ ## Displaying a Lottie file
23
+
24
+ To import a Lottie animation:
25
+
26
+ - Fetch the Lottie asset
27
+ - Wrap the loading process in `delayRender()` and `continueRender()`
28
+ - Save the animation data in a state
29
+ - Render the Lottie animation using the `Lottie` component from the `@remotion/lottie` package
30
+
31
+ ```tsx
32
+ import {Lottie, LottieAnimationData} from '@remotion/lottie';
33
+ import {useEffect, useState} from 'react';
34
+ import {cancelRender, continueRender, delayRender} from 'remotion';
35
+
36
+ export const MyAnimation = () => {
37
+ const [handle] = useState(() => delayRender('Loading Lottie animation'));
38
+
39
+ const [animationData, setAnimationData] = useState<LottieAnimationData | null>(null);
40
+
41
+ useEffect(() => {
42
+ fetch('https://assets4.lottiefiles.com/packages/lf20_zyquagfl.json')
43
+ .then((data) => data.json())
44
+ .then((json) => {
45
+ setAnimationData(json);
46
+ continueRender(handle);
47
+ })
48
+ .catch((err) => {
49
+ cancelRender(err);
50
+ });
51
+ }, [handle]);
52
+
53
+ if (!animationData) {
54
+ return null;
55
+ }
56
+
57
+ return <Lottie animationData={animationData} />;
58
+ };
59
+ ```
60
+
61
+ ## Styling and animating
62
+
63
+ Lottie supports the `style` prop to allow styles and animations:
64
+
65
+ ```tsx
66
+ return <Lottie animationData={animationData} style={{width: 400, height: 400}} />;
67
+ ```
68
+
@@ -0,0 +1,403 @@
1
+ ---
2
+ name: maps
3
+ description: Make map animations with Mapbox
4
+ metadata:
5
+ tags: map, map animation, mapbox
6
+ ---
7
+
8
+ Maps can be added to a Remotion video with Mapbox.
9
+ The [Mapbox documentation](https://docs.mapbox.com/mapbox-gl-js/api/) has the API reference.
10
+
11
+ ## Prerequisites
12
+
13
+ Mapbox and `@turf/turf` need to be installed.
14
+
15
+ Search the project for lockfiles and run the correct command depending on the package manager:
16
+
17
+ If `package-lock.json` is found, use the following command:
18
+
19
+ ```bash
20
+ npm i mapbox-gl @turf/turf @types/mapbox-gl
21
+ ```
22
+
23
+ If `bun.lock` is found, use the following command:
24
+
25
+ ```bash
26
+ bun i mapbox-gl @turf/turf @types/mapbox-gl
27
+ ```
28
+
29
+ If `yarn.lock` is found, use the following command:
30
+
31
+ ```bash
32
+ yarn add mapbox-gl @turf/turf @types/mapbox-gl
33
+ ```
34
+
35
+ If `pnpm-lock.yaml` is found, use the following command:
36
+
37
+ ```bash
38
+ pnpm i mapbox-gl @turf/turf @types/mapbox-gl
39
+ ```
40
+
41
+ The user needs to create a free Mapbox account and create an access token by visiting https://console.mapbox.com/account/access-tokens/.
42
+
43
+ The mapbox token needs to be added to the `.env` file:
44
+
45
+ ```txt title=".env"
46
+ REMOTION_MAPBOX_TOKEN==pk.your-mapbox-access-token
47
+ ```
48
+
49
+ ## Adding a map
50
+
51
+ Here is a basic example of a map in Remotion.
52
+
53
+ ```tsx
54
+ import {useEffect, useMemo, useRef, useState} from 'react';
55
+ import {AbsoluteFill, useDelayRender, useVideoConfig} from 'remotion';
56
+ import mapboxgl, {Map} from 'mapbox-gl';
57
+
58
+ export const lineCoordinates = [
59
+ [6.56158447265625, 46.059891147620725],
60
+ [6.5691375732421875, 46.05679376154153],
61
+ [6.5842437744140625, 46.05059898938315],
62
+ [6.594886779785156, 46.04702502069337],
63
+ [6.601066589355469, 46.0460718554722],
64
+ [6.6089630126953125, 46.0365370783104],
65
+ [6.6185760498046875, 46.018420689207964],
66
+ ];
67
+
68
+ mapboxgl.accessToken = process.env.REMOTION_MAPBOX_TOKEN as string;
69
+
70
+ export const MyComposition = () => {
71
+ const ref = useRef<HTMLDivElement>(null);
72
+ const {delayRender, continueRender} = useDelayRender();
73
+
74
+ const {width, height} = useVideoConfig();
75
+ const [handle] = useState(() => delayRender('Loading map...'));
76
+ const [map, setMap] = useState<Map | null>(null);
77
+
78
+ useEffect(() => {
79
+ const _map = new Map({
80
+ container: ref.current!,
81
+ zoom: 11.53,
82
+ center: [6.5615, 46.0598],
83
+ pitch: 65,
84
+ bearing: 0,
85
+ style: '⁠mapbox://styles/mapbox/standard',
86
+ interactive: false,
87
+ fadeDuration: 0,
88
+ });
89
+
90
+ _map.on('style.load', () => {
91
+ // Hide all features from the Mapbox Standard style
92
+ const hideFeatures = [
93
+ 'showRoadsAndTransit',
94
+ 'showRoads',
95
+ 'showTransit',
96
+ 'showPedestrianRoads',
97
+ 'showRoadLabels',
98
+ 'showTransitLabels',
99
+ 'showPlaceLabels',
100
+ 'showPointOfInterestLabels',
101
+ 'showPointsOfInterest',
102
+ 'showAdminBoundaries',
103
+ 'showLandmarkIcons',
104
+ 'showLandmarkIconLabels',
105
+ 'show3dObjects',
106
+ 'show3dBuildings',
107
+ 'show3dTrees',
108
+ 'show3dLandmarks',
109
+ 'show3dFacades',
110
+ ];
111
+ for (const feature of hideFeatures) {
112
+ _map.setConfigProperty('basemap', feature, false);
113
+ }
114
+
115
+ _map.setConfigProperty('basemap', 'colorMotorways', 'rgba(0, 0, 0, 0)');
116
+ _map.setConfigProperty('basemap', 'colorRoads', 'rgba(0, 0, 0, 0)');
117
+ _map.setConfigProperty('basemap', 'colorTrunks', 'rgba(0, 0, 0, 0)');
118
+
119
+ _map.addSource('trace', {
120
+ type: 'geojson',
121
+ data: {
122
+ type: 'Feature',
123
+ properties: {},
124
+ geometry: {
125
+ type: 'LineString',
126
+ coordinates: lineCoordinates,
127
+ },
128
+ },
129
+ });
130
+ _map.addLayer({
131
+ type: 'line',
132
+ source: 'trace',
133
+ id: 'line',
134
+ paint: {
135
+ 'line-color': 'black',
136
+ 'line-width': 5,
137
+ },
138
+ layout: {
139
+ 'line-cap': 'round',
140
+ 'line-join': 'round',
141
+ },
142
+ });
143
+ });
144
+
145
+ _map.on('load', () => {
146
+ continueRender(handle);
147
+ setMap(_map);
148
+ });
149
+ }, [handle, lineCoordinates]);
150
+
151
+ const style: React.CSSProperties = useMemo(() => ({width, height, position: 'absolute'}), [width, height]);
152
+
153
+ return <AbsoluteFill ref={ref} style={style} />;
154
+ };
155
+ ```
156
+
157
+ The following is important in Remotion:
158
+
159
+ - Animations must be driven by `useCurrentFrame()` and animations that Mapbox brings itself should be disabled. For example, the `fadeDuration` prop should be set to `0`, `interactive` should be set to `false`, etc.
160
+ - Loading the map should be delayed using `useDelayRender()` and the map should be set to `null` until it is loaded.
161
+ - The element containing the ref MUST have an explicit width and height and `position: "absolute"`.
162
+ - Do not add a `_map.remove();` cleanup function.
163
+
164
+ ## Drawing lines
165
+
166
+ Unless I request it, do not add a glow effect to the lines.
167
+ Unless I request it, do not add additional points to the lines.
168
+
169
+ ## Map style
170
+
171
+ By default, use the `mapbox://styles/mapbox/standard` style.
172
+ Hide the labels from the base map style.
173
+
174
+ Unless I request otherwise, remove all features from the Mapbox Standard style.
175
+
176
+ ```tsx
177
+ // Hide all features from the Mapbox Standard style
178
+ const hideFeatures = [
179
+ 'showRoadsAndTransit',
180
+ 'showRoads',
181
+ 'showTransit',
182
+ 'showPedestrianRoads',
183
+ 'showRoadLabels',
184
+ 'showTransitLabels',
185
+ 'showPlaceLabels',
186
+ 'showPointOfInterestLabels',
187
+ 'showPointsOfInterest',
188
+ 'showAdminBoundaries',
189
+ 'showLandmarkIcons',
190
+ 'showLandmarkIconLabels',
191
+ 'show3dObjects',
192
+ 'show3dBuildings',
193
+ 'show3dTrees',
194
+ 'show3dLandmarks',
195
+ 'show3dFacades',
196
+ ];
197
+ for (const feature of hideFeatures) {
198
+ _map.setConfigProperty('basemap', feature, false);
199
+ }
200
+
201
+ _map.setConfigProperty('basemap', 'colorMotorways', 'transparent');
202
+ _map.setConfigProperty('basemap', 'colorRoads', 'transparent');
203
+ _map.setConfigProperty('basemap', 'colorTrunks', 'transparent');
204
+ ```
205
+
206
+ ## Animating the camera
207
+
208
+ You can animate the camera along the line by adding a `useEffect` hook that updates the camera position based on the current frame.
209
+
210
+ Unless I ask for it, do not jump between camera angles.
211
+
212
+ ```tsx
213
+ import * as turf from '@turf/turf';
214
+ import {interpolate} from 'remotion';
215
+ import {Easing} from 'remotion';
216
+ import {useCurrentFrame, useVideoConfig, useDelayRender} from 'remotion';
217
+
218
+ const animationDuration = 20;
219
+ const cameraAltitude = 4000;
220
+ ```
221
+
222
+ ```tsx
223
+ const frame = useCurrentFrame();
224
+ const {fps} = useVideoConfig();
225
+ const {delayRender, continueRender} = useDelayRender();
226
+
227
+ useEffect(() => {
228
+ if (!map) {
229
+ return;
230
+ }
231
+ const handle = delayRender('Moving point...');
232
+
233
+ const routeDistance = turf.length(turf.lineString(lineCoordinates));
234
+
235
+ const progress = interpolate(frame / fps, [0.00001, animationDuration], [0, 1], {
236
+ easing: Easing.inOut(Easing.sin),
237
+ extrapolateLeft: 'clamp',
238
+ extrapolateRight: 'clamp',
239
+ });
240
+
241
+ const camera = map.getFreeCameraOptions();
242
+
243
+ const alongRoute = turf.along(turf.lineString(lineCoordinates), routeDistance * progress).geometry.coordinates;
244
+
245
+ camera.lookAtPoint({
246
+ lng: alongRoute[0],
247
+ lat: alongRoute[1],
248
+ });
249
+
250
+ map.setFreeCameraOptions(camera);
251
+ map.once('idle', () => continueRender(handle));
252
+ }, [lineCoordinates, fps, frame, handle, map]);
253
+ ```
254
+
255
+ Notes:
256
+
257
+ IMPORTANT: Keep the camera by default so north is up.
258
+ IMPORTANT: For multi-step animations, set all properties at all stages (zoom, position, line progress) to prevent jumps. Override initial values.
259
+
260
+ - The progress is clamped to a minimum value to avoid the line being empty, which can lead to turf errors
261
+ - See [Timing](./timing.md) for more options for timing.
262
+ - Consider the dimensions of the composition and make the lines thick enough and the label font size large enough to be legible for when the composition is scaled down.
263
+
264
+ ## Animating lines
265
+
266
+ ### Straight lines (linear interpolation)
267
+
268
+ To animate a line that appears straight on the map, use linear interpolation between coordinates. Do NOT use turf's `lineSliceAlong` or `along` functions, as they use geodesic (great circle) calculations which appear curved on a Mercator projection.
269
+
270
+ ```tsx
271
+ const frame = useCurrentFrame();
272
+ const {durationInFrames} = useVideoConfig();
273
+
274
+ useEffect(() => {
275
+ if (!map) return;
276
+
277
+ const animationHandle = delayRender('Animating line...');
278
+
279
+ const progress = interpolate(frame, [0, durationInFrames - 1], [0, 1], {
280
+ extrapolateLeft: 'clamp',
281
+ extrapolateRight: 'clamp',
282
+ easing: Easing.inOut(Easing.cubic),
283
+ });
284
+
285
+ // Linear interpolation for a straight line on the map
286
+ const start = lineCoordinates[0];
287
+ const end = lineCoordinates[1];
288
+ const currentLng = start[0] + (end[0] - start[0]) * progress;
289
+ const currentLat = start[1] + (end[1] - start[1]) * progress;
290
+
291
+ const lineData: GeoJSON.Feature<GeoJSON.LineString> = {
292
+ type: 'Feature',
293
+ properties: {},
294
+ geometry: {
295
+ type: 'LineString',
296
+ coordinates: [start, [currentLng, currentLat]],
297
+ },
298
+ };
299
+
300
+ const source = map.getSource('trace') as mapboxgl.GeoJSONSource;
301
+ if (source) {
302
+ source.setData(lineData);
303
+ }
304
+
305
+ map.once('idle', () => continueRender(animationHandle));
306
+ }, [frame, map, durationInFrames]);
307
+ ```
308
+
309
+ ### Curved lines (geodesic/great circle)
310
+
311
+ To animate a line that follows the geodesic (great circle) path between two points, use turf's `lineSliceAlong`. This is useful for showing flight paths or the actual shortest distance on Earth.
312
+
313
+ ```tsx
314
+ import * as turf from '@turf/turf';
315
+
316
+ const routeLine = turf.lineString(lineCoordinates);
317
+ const routeDistance = turf.length(routeLine);
318
+
319
+ const currentDistance = Math.max(0.001, routeDistance * progress);
320
+ const slicedLine = turf.lineSliceAlong(routeLine, 0, currentDistance);
321
+
322
+ const source = map.getSource('route') as mapboxgl.GeoJSONSource;
323
+ if (source) {
324
+ source.setData(slicedLine);
325
+ }
326
+ ```
327
+
328
+ ## Markers
329
+
330
+ Add labels, and markers where appropriate.
331
+
332
+ ```tsx
333
+ _map.addSource('markers', {
334
+ type: 'geojson',
335
+ data: {
336
+ type: 'FeatureCollection',
337
+ features: [
338
+ {
339
+ type: 'Feature',
340
+ properties: {name: 'Point 1'},
341
+ geometry: {type: 'Point', coordinates: [-118.2437, 34.0522]},
342
+ },
343
+ ],
344
+ },
345
+ });
346
+
347
+ _map.addLayer({
348
+ id: 'city-markers',
349
+ type: 'circle',
350
+ source: 'markers',
351
+ paint: {
352
+ 'circle-radius': 40,
353
+ 'circle-color': '#FF4444',
354
+ 'circle-stroke-width': 4,
355
+ 'circle-stroke-color': '#FFFFFF',
356
+ },
357
+ });
358
+
359
+ _map.addLayer({
360
+ id: 'labels',
361
+ type: 'symbol',
362
+ source: 'markers',
363
+ layout: {
364
+ 'text-field': ['get', 'name'],
365
+ 'text-font': ['DIN Pro Bold', 'Arial Unicode MS Bold'],
366
+ 'text-size': 50,
367
+ 'text-offset': [0, 0.5],
368
+ 'text-anchor': 'top',
369
+ },
370
+ paint: {
371
+ 'text-color': '#FFFFFF',
372
+ 'text-halo-color': '#000000',
373
+ 'text-halo-width': 2,
374
+ },
375
+ });
376
+ ```
377
+
378
+ Make sure they are big enough. Check the composition dimensions and scale the labels accordingly.
379
+ For a composition size of 1920x1080, the label font size should be at least 40px.
380
+
381
+ IMPORTANT: Keep the `text-offset` small enough so it is close to the marker. Consider the marker circle radius. For a circle radius of 40, this is a good offset:
382
+
383
+ ```tsx
384
+ "text-offset": [0, 0.5],
385
+ ```
386
+
387
+ ## 3D buildings
388
+
389
+ To enable 3D buildings, use the following code:
390
+
391
+ ```tsx
392
+ _map.setConfigProperty('basemap', 'show3dObjects', true);
393
+ _map.setConfigProperty('basemap', 'show3dLandmarks', true);
394
+ _map.setConfigProperty('basemap', 'show3dBuildings', true);
395
+ ```
396
+
397
+ ## Rendering
398
+
399
+ When rendering a map animation, make sure to render with the following flags:
400
+
401
+ ```
402
+ npx remotion render --gl=angle --concurrency=1
403
+ ```
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: measuring-dom-nodes
3
+ description: Measuring DOM element dimensions in Remotion
4
+ metadata:
5
+ tags: measure, layout, dimensions, getBoundingClientRect, scale
6
+ ---
7
+
8
+ # Measuring DOM nodes in Remotion
9
+
10
+ Remotion applies a `scale()` transform to the video container, which affects values from `getBoundingClientRect()`. Use `useCurrentScale()` to get correct measurements.
11
+
12
+ ## Measuring element dimensions
13
+
14
+ ```tsx
15
+ import { useCurrentScale } from "remotion";
16
+ import { useRef, useEffect, useState } from "react";
17
+
18
+ export const MyComponent = () => {
19
+ const ref = useRef<HTMLDivElement>(null);
20
+ const scale = useCurrentScale();
21
+ const [dimensions, setDimensions] = useState({ width: 0, height: 0 });
22
+
23
+ useEffect(() => {
24
+ if (!ref.current) return;
25
+ const rect = ref.current.getBoundingClientRect();
26
+ setDimensions({
27
+ width: rect.width / scale,
28
+ height: rect.height / scale,
29
+ });
30
+ }, [scale]);
31
+
32
+ return <div ref={ref}>Content to measure</div>;
33
+ };
34
+ ```
35
+