@rubix0270/arboris 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/package.json +8 -19
  2. package/run.mjs +10 -0
  3. package/dist/cli.mjs +0 -382
  4. package/manifest.json +0 -323
  5. package/prisma/skills/accessibility/SKILL.md +0 -147
  6. package/prisma/skills/agent-architecture-audit/SKILL.md +0 -257
  7. package/prisma/skills/agent-eval/SKILL.md +0 -146
  8. package/prisma/skills/agent-harness-construction/SKILL.md +0 -74
  9. package/prisma/skills/agent-introspection-debugging/SKILL.md +0 -154
  10. package/prisma/skills/agent-payment-x402/SKILL.md +0 -225
  11. package/prisma/skills/agent-self-evaluation/SKILL.md +0 -182
  12. package/prisma/skills/agent-self-evaluation/examples/high-score-example.md +0 -87
  13. package/prisma/skills/agent-self-evaluation/examples/low-score-example.md +0 -86
  14. package/prisma/skills/agent-self-evaluation/references/evaluation-criteria.md +0 -71
  15. package/prisma/skills/agent-self-evaluation/references/hook-integration.md +0 -64
  16. package/prisma/skills/agent-self-evaluation/scripts/evaluate.py +0 -408
  17. package/prisma/skills/agent-self-evaluation/templates/evaluation-report.md +0 -86
  18. package/prisma/skills/agent-sort/SKILL.md +0 -216
  19. package/prisma/skills/agentic-engineering/SKILL.md +0 -64
  20. package/prisma/skills/agentic-os/SKILL.md +0 -388
  21. package/prisma/skills/ai-first-engineering/SKILL.md +0 -52
  22. package/prisma/skills/ai-regression-testing/SKILL.md +0 -386
  23. package/prisma/skills/android-clean-architecture/SKILL.md +0 -340
  24. package/prisma/skills/angular-developer/SKILL.md +0 -155
  25. package/prisma/skills/angular-developer/references/angular-animations.md +0 -160
  26. package/prisma/skills/angular-developer/references/angular-aria.md +0 -410
  27. package/prisma/skills/angular-developer/references/cli.md +0 -86
  28. package/prisma/skills/angular-developer/references/component-harnesses.md +0 -59
  29. package/prisma/skills/angular-developer/references/component-styling.md +0 -91
  30. package/prisma/skills/angular-developer/references/components.md +0 -117
  31. package/prisma/skills/angular-developer/references/creating-services.md +0 -97
  32. package/prisma/skills/angular-developer/references/data-resolvers.md +0 -69
  33. package/prisma/skills/angular-developer/references/define-routes.md +0 -67
  34. package/prisma/skills/angular-developer/references/defining-providers.md +0 -72
  35. package/prisma/skills/angular-developer/references/di-fundamentals.md +0 -120
  36. package/prisma/skills/angular-developer/references/e2e-testing.md +0 -56
  37. package/prisma/skills/angular-developer/references/effects.md +0 -83
  38. package/prisma/skills/angular-developer/references/hierarchical-injectors.md +0 -43
  39. package/prisma/skills/angular-developer/references/host-elements.md +0 -80
  40. package/prisma/skills/angular-developer/references/injection-context.md +0 -63
  41. package/prisma/skills/angular-developer/references/inputs.md +0 -101
  42. package/prisma/skills/angular-developer/references/linked-signal.md +0 -59
  43. package/prisma/skills/angular-developer/references/loading-strategies.md +0 -61
  44. package/prisma/skills/angular-developer/references/mcp.md +0 -108
  45. package/prisma/skills/angular-developer/references/navigate-to-routes.md +0 -69
  46. package/prisma/skills/angular-developer/references/outputs.md +0 -86
  47. package/prisma/skills/angular-developer/references/reactive-forms.md +0 -122
  48. package/prisma/skills/angular-developer/references/rendering-strategies.md +0 -44
  49. package/prisma/skills/angular-developer/references/resource.md +0 -77
  50. package/prisma/skills/angular-developer/references/route-animations.md +0 -56
  51. package/prisma/skills/angular-developer/references/route-guards.md +0 -52
  52. package/prisma/skills/angular-developer/references/router-lifecycle.md +0 -45
  53. package/prisma/skills/angular-developer/references/router-testing.md +0 -87
  54. package/prisma/skills/angular-developer/references/show-routes-with-outlets.md +0 -68
  55. package/prisma/skills/angular-developer/references/signal-forms.md +0 -795
  56. package/prisma/skills/angular-developer/references/signals-overview.md +0 -94
  57. package/prisma/skills/angular-developer/references/tailwind-css.md +0 -69
  58. package/prisma/skills/angular-developer/references/template-driven-forms.md +0 -114
  59. package/prisma/skills/angular-developer/references/testing-fundamentals.md +0 -65
  60. package/prisma/skills/api-connector-builder/SKILL.md +0 -121
  61. package/prisma/skills/api-design/SKILL.md +0 -524
  62. package/prisma/skills/architecture-decision-records/SKILL.md +0 -180
  63. package/prisma/skills/article-writing/SKILL.md +0 -80
  64. package/prisma/skills/automation-audit-ops/SKILL.md +0 -143
  65. package/prisma/skills/autonomous-agent-harness/SKILL.md +0 -274
  66. package/prisma/skills/autonomous-loops/SKILL.md +0 -611
  67. package/prisma/skills/backend-patterns/SKILL.md +0 -562
  68. package/prisma/skills/benchmark/SKILL.md +0 -94
  69. package/prisma/skills/benchmark-methodology/SKILL.md +0 -190
  70. package/prisma/skills/benchmark-optimization-loop/SKILL.md +0 -70
  71. package/prisma/skills/blender-motion-state-inspection/SKILL.md +0 -165
  72. package/prisma/skills/blueprint/SKILL.md +0 -106
  73. package/prisma/skills/brand-discovery/SKILL.md +0 -145
  74. package/prisma/skills/brand-discovery/references/10_purpose-why.md +0 -40
  75. package/prisma/skills/brand-discovery/references/20_positioning.md +0 -44
  76. package/prisma/skills/brand-discovery/references/30_audience-niche.md +0 -52
  77. package/prisma/skills/brand-discovery/references/40_personality-archetype.md +0 -57
  78. package/prisma/skills/brand-discovery/references/50_voice-tone.md +0 -59
  79. package/prisma/skills/brand-discovery/references/60_narrative-story.md +0 -50
  80. package/prisma/skills/brand-discovery/references/70_founder-tension.md +0 -49
  81. package/prisma/skills/brand-discovery/references/90_SYNTHESIS.md +0 -133
  82. package/prisma/skills/brand-voice/SKILL.md +0 -98
  83. package/prisma/skills/brand-voice/references/voice-profile-schema.md +0 -55
  84. package/prisma/skills/browser-qa/SKILL.md +0 -105
  85. package/prisma/skills/bun-runtime/SKILL.md +0 -85
  86. package/prisma/skills/canary-watch/SKILL.md +0 -108
  87. package/prisma/skills/carrier-relationship-management/SKILL.md +0 -212
  88. package/prisma/skills/cisco-ios-patterns/SKILL.md +0 -164
  89. package/prisma/skills/ck/SKILL.md +0 -148
  90. package/prisma/skills/ck/commands/forget.mjs +0 -44
  91. package/prisma/skills/ck/commands/info.mjs +0 -24
  92. package/prisma/skills/ck/commands/init.mjs +0 -143
  93. package/prisma/skills/ck/commands/list.mjs +0 -40
  94. package/prisma/skills/ck/commands/migrate.mjs +0 -202
  95. package/prisma/skills/ck/commands/resume.mjs +0 -36
  96. package/prisma/skills/ck/commands/save.mjs +0 -210
  97. package/prisma/skills/ck/commands/shared.mjs +0 -387
  98. package/prisma/skills/ck/hooks/session-start.mjs +0 -224
  99. package/prisma/skills/claude-devfleet/SKILL.md +0 -112
  100. package/prisma/skills/click-path-audit/SKILL.md +0 -245
  101. package/prisma/skills/clickhouse-io/SKILL.md +0 -440
  102. package/prisma/skills/code-tour/SKILL.md +0 -254
  103. package/prisma/skills/codebase-onboarding/SKILL.md +0 -234
  104. package/prisma/skills/codehealth-mcp/SKILL.md +0 -167
  105. package/prisma/skills/coding-standards/SKILL.md +0 -551
  106. package/prisma/skills/competitive-platform-analysis/SKILL.md +0 -214
  107. package/prisma/skills/competitive-report-structure/SKILL.md +0 -162
  108. package/prisma/skills/compose-multiplatform-patterns/SKILL.md +0 -300
  109. package/prisma/skills/config-gc/SKILL.md +0 -120
  110. package/prisma/skills/configure-ecc/SKILL.md +0 -385
  111. package/prisma/skills/connections-optimizer/SKILL.md +0 -190
  112. package/prisma/skills/content-engine/SKILL.md +0 -132
  113. package/prisma/skills/content-hash-cache-pattern/SKILL.md +0 -162
  114. package/prisma/skills/context-budget/SKILL.md +0 -136
  115. package/prisma/skills/continuous-agent-loop/SKILL.md +0 -46
  116. package/prisma/skills/continuous-learning/SKILL.md +0 -132
  117. package/prisma/skills/continuous-learning/config.json +0 -18
  118. package/prisma/skills/continuous-learning/evaluate-session.sh +0 -69
  119. package/prisma/skills/continuous-learning-v2/SKILL.md +0 -361
  120. package/prisma/skills/continuous-learning-v2/agents/observer-loop.sh +0 -359
  121. package/prisma/skills/continuous-learning-v2/agents/observer.md +0 -189
  122. package/prisma/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
  123. package/prisma/skills/continuous-learning-v2/agents/start-observer.sh +0 -248
  124. package/prisma/skills/continuous-learning-v2/config.json +0 -8
  125. package/prisma/skills/continuous-learning-v2/hooks/observe.sh +0 -585
  126. package/prisma/skills/continuous-learning-v2/scripts/detect-project.sh +0 -322
  127. package/prisma/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1956
  128. package/prisma/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +0 -31
  129. package/prisma/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +0 -68
  130. package/prisma/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -1421
  131. package/prisma/skills/cost-aware-llm-pipeline/SKILL.md +0 -184
  132. package/prisma/skills/cost-tracking/SKILL.md +0 -97
  133. package/prisma/skills/council/SKILL.md +0 -204
  134. package/prisma/skills/cpp-coding-standards/SKILL.md +0 -724
  135. package/prisma/skills/cpp-testing/SKILL.md +0 -325
  136. package/prisma/skills/crosspost/SKILL.md +0 -112
  137. package/prisma/skills/csharp-testing/SKILL.md +0 -322
  138. package/prisma/skills/customer-billing-ops/SKILL.md +0 -141
  139. package/prisma/skills/customs-trade-compliance/SKILL.md +0 -263
  140. package/prisma/skills/dart-flutter-patterns/SKILL.md +0 -564
  141. package/prisma/skills/dashboard-builder/SKILL.md +0 -109
  142. package/prisma/skills/data-scraper-agent/SKILL.md +0 -765
  143. package/prisma/skills/data-throughput-accelerator/SKILL.md +0 -73
  144. package/prisma/skills/database-migrations/SKILL.md +0 -430
  145. package/prisma/skills/deep-research/SKILL.md +0 -160
  146. package/prisma/skills/defi-amm-security/SKILL.md +0 -167
  147. package/prisma/skills/delivery-gate/SKILL.md +0 -126
  148. package/prisma/skills/delivery-gate/hooks/quality-gate.py +0 -220
  149. package/prisma/skills/deployment-patterns/SKILL.md +0 -428
  150. package/prisma/skills/design-system/SKILL.md +0 -83
  151. package/prisma/skills/django-celery/SKILL.md +0 -458
  152. package/prisma/skills/django-patterns/SKILL.md +0 -735
  153. package/prisma/skills/django-security/SKILL.md +0 -644
  154. package/prisma/skills/django-tdd/SKILL.md +0 -730
  155. package/prisma/skills/django-verification/SKILL.md +0 -470
  156. package/prisma/skills/dmux-workflows/SKILL.md +0 -192
  157. package/prisma/skills/docker-patterns/SKILL.md +0 -365
  158. package/prisma/skills/documentation-lookup/SKILL.md +0 -91
  159. package/prisma/skills/dotnet-patterns/SKILL.md +0 -322
  160. package/prisma/skills/dynamic-workflow-mode/SKILL.md +0 -124
  161. package/prisma/skills/e2e-testing/SKILL.md +0 -327
  162. package/prisma/skills/ecc-guide/SKILL.md +0 -190
  163. package/prisma/skills/ecc-recipes/SKILL.md +0 -149
  164. package/prisma/skills/ecc-tools-cost-audit/SKILL.md +0 -161
  165. package/prisma/skills/email-ops/SKILL.md +0 -122
  166. package/prisma/skills/energy-procurement/SKILL.md +0 -228
  167. package/prisma/skills/enterprise-agent-ops/SKILL.md +0 -51
  168. package/prisma/skills/error-handling/SKILL.md +0 -377
  169. package/prisma/skills/eval-harness/SKILL.md +0 -271
  170. package/prisma/skills/evm-token-decimals/SKILL.md +0 -131
  171. package/prisma/skills/exa-search/SKILL.md +0 -108
  172. package/prisma/skills/fal-ai-media/SKILL.md +0 -289
  173. package/prisma/skills/fastapi-patterns/SKILL.md +0 -514
  174. package/prisma/skills/finance-billing-ops/SKILL.md +0 -128
  175. package/prisma/skills/flox-environments/SKILL.md +0 -497
  176. package/prisma/skills/flutter-dart-code-review/SKILL.md +0 -436
  177. package/prisma/skills/foundation-models-on-device/SKILL.md +0 -243
  178. package/prisma/skills/frontend-a11y/SKILL.md +0 -446
  179. package/prisma/skills/frontend-design-direction/SKILL.md +0 -93
  180. package/prisma/skills/frontend-patterns/SKILL.md +0 -657
  181. package/prisma/skills/frontend-slides/SKILL.md +0 -185
  182. package/prisma/skills/frontend-slides/STYLE_PRESETS.md +0 -330
  183. package/prisma/skills/frontend-slides/animation-patterns.md +0 -122
  184. package/prisma/skills/frontend-slides/html-template.md +0 -419
  185. package/prisma/skills/frontend-slides/scripts/export-pdf.sh +0 -418
  186. package/prisma/skills/frontend-slides/scripts/extract-pptx.py +0 -96
  187. package/prisma/skills/frontend-slides/viewport-base.css +0 -153
  188. package/prisma/skills/fsharp-testing/SKILL.md +0 -281
  189. package/prisma/skills/gan-style-harness/SKILL.md +0 -279
  190. package/prisma/skills/gateguard/SKILL.md +0 -133
  191. package/prisma/skills/generating-python-installer/SKILL.md +0 -820
  192. package/prisma/skills/git-workflow/SKILL.md +0 -716
  193. package/prisma/skills/github-ops/SKILL.md +0 -145
  194. package/prisma/skills/golang-patterns/SKILL.md +0 -675
  195. package/prisma/skills/golang-testing/SKILL.md +0 -721
  196. package/prisma/skills/google-workspace-ops/SKILL.md +0 -96
  197. package/prisma/skills/growth-log/SKILL.md +0 -128
  198. package/prisma/skills/healthcare-cdss-patterns/SKILL.md +0 -246
  199. package/prisma/skills/healthcare-emr-patterns/SKILL.md +0 -160
  200. package/prisma/skills/healthcare-eval-harness/SKILL.md +0 -208
  201. package/prisma/skills/healthcare-phi-compliance/SKILL.md +0 -146
  202. package/prisma/skills/hermes-imports/SKILL.md +0 -89
  203. package/prisma/skills/hexagonal-architecture/SKILL.md +0 -277
  204. package/prisma/skills/hipaa-compliance/SKILL.md +0 -79
  205. package/prisma/skills/homelab-network-readiness/SKILL.md +0 -170
  206. package/prisma/skills/homelab-network-setup/SKILL.md +0 -130
  207. package/prisma/skills/homelab-pihole-dns/SKILL.md +0 -275
  208. package/prisma/skills/homelab-vlan-segmentation/SKILL.md +0 -312
  209. package/prisma/skills/homelab-wireguard-vpn/SKILL.md +0 -306
  210. package/prisma/skills/hookify-rules/SKILL.md +0 -128
  211. package/prisma/skills/inherit-legacy-style/SKILL.md +0 -157
  212. package/prisma/skills/intent-driven-development/SKILL.md +0 -360
  213. package/prisma/skills/inventory-demand-planning/SKILL.md +0 -247
  214. package/prisma/skills/investor-materials/SKILL.md +0 -97
  215. package/prisma/skills/investor-outreach/SKILL.md +0 -92
  216. package/prisma/skills/ios-icon-gen/SKILL.md +0 -158
  217. package/prisma/skills/ios-icon-gen/scripts/generate_icons.swift +0 -258
  218. package/prisma/skills/ios-icon-gen/scripts/iconify_gen.sh +0 -235
  219. package/prisma/skills/iterative-retrieval/SKILL.md +0 -212
  220. package/prisma/skills/ito-basket-compare/SKILL.md +0 -64
  221. package/prisma/skills/ito-data-atlas-agent/SKILL.md +0 -64
  222. package/prisma/skills/ito-market-intelligence/SKILL.md +0 -61
  223. package/prisma/skills/ito-trade-planner/SKILL.md +0 -68
  224. package/prisma/skills/java-coding-standards/SKILL.md +0 -384
  225. package/prisma/skills/jira-integration/SKILL.md +0 -303
  226. package/prisma/skills/jpa-patterns/SKILL.md +0 -152
  227. package/prisma/skills/knowledge-ops/SKILL.md +0 -155
  228. package/prisma/skills/kotlin-coroutines-flows/SKILL.md +0 -285
  229. package/prisma/skills/kotlin-exposed-patterns/SKILL.md +0 -720
  230. package/prisma/skills/kotlin-ktor-patterns/SKILL.md +0 -690
  231. package/prisma/skills/kotlin-patterns/SKILL.md +0 -712
  232. package/prisma/skills/kotlin-testing/SKILL.md +0 -825
  233. package/prisma/skills/kubernetes-patterns/SKILL.md +0 -756
  234. package/prisma/skills/laravel-patterns/SKILL.md +0 -416
  235. package/prisma/skills/laravel-plugin-discovery/SKILL.md +0 -230
  236. package/prisma/skills/laravel-security/SKILL.md +0 -948
  237. package/prisma/skills/laravel-tdd/SKILL.md +0 -675
  238. package/prisma/skills/laravel-verification/SKILL.md +0 -180
  239. package/prisma/skills/latency-critical-systems/SKILL.md +0 -74
  240. package/prisma/skills/lead-intelligence/SKILL.md +0 -322
  241. package/prisma/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
  242. package/prisma/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
  243. package/prisma/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
  244. package/prisma/skills/lead-intelligence/agents/signal-scorer.md +0 -60
  245. package/prisma/skills/liquid-glass-design/SKILL.md +0 -279
  246. package/prisma/skills/llm-trading-agent-security/SKILL.md +0 -147
  247. package/prisma/skills/logistics-exception-management/SKILL.md +0 -222
  248. package/prisma/skills/loop-design-check/SKILL.md +0 -143
  249. package/prisma/skills/mailtrap-email-integration/SKILL.md +0 -77
  250. package/prisma/skills/make-interfaces-feel-better/SKILL.md +0 -152
  251. package/prisma/skills/manim-video/SKILL.md +0 -90
  252. package/prisma/skills/manim-video/assets/network_graph_scene.py +0 -52
  253. package/prisma/skills/market-research/SKILL.md +0 -76
  254. package/prisma/skills/marketing-campaign/SKILL.md +0 -114
  255. package/prisma/skills/mcp-server-patterns/SKILL.md +0 -70
  256. package/prisma/skills/messages-ops/SKILL.md +0 -105
  257. package/prisma/skills/ml-adoption-playbook/SKILL.md +0 -57
  258. package/prisma/skills/mle-workflow/SKILL.md +0 -347
  259. package/prisma/skills/motion-advanced/SKILL.md +0 -596
  260. package/prisma/skills/motion-foundations/SKILL.md +0 -299
  261. package/prisma/skills/motion-patterns/SKILL.md +0 -434
  262. package/prisma/skills/motion-ui/SKILL.md +0 -576
  263. package/prisma/skills/mysql-patterns/SKILL.md +0 -413
  264. package/prisma/skills/nanoclaw-repl/SKILL.md +0 -34
  265. package/prisma/skills/nestjs-patterns/SKILL.md +0 -231
  266. package/prisma/skills/netmiko-ssh-automation/SKILL.md +0 -174
  267. package/prisma/skills/network-bgp-diagnostics/SKILL.md +0 -168
  268. package/prisma/skills/network-config-validation/SKILL.md +0 -211
  269. package/prisma/skills/network-interface-health/SKILL.md +0 -153
  270. package/prisma/skills/nextjs-turbopack/SKILL.md +0 -58
  271. package/prisma/skills/nodejs-keccak256/SKILL.md +0 -103
  272. package/prisma/skills/nutrient-document-processing/SKILL.md +0 -168
  273. package/prisma/skills/nuxt4-patterns/SKILL.md +0 -101
  274. package/prisma/skills/openclaw-persona-forge/SKILL.md +0 -289
  275. package/prisma/skills/openclaw-persona-forge/gacha.py +0 -224
  276. package/prisma/skills/openclaw-persona-forge/gacha.sh +0 -5
  277. package/prisma/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
  278. package/prisma/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
  279. package/prisma/skills/openclaw-persona-forge/references/error-handling.md +0 -53
  280. package/prisma/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
  281. package/prisma/skills/openclaw-persona-forge/references/naming-system.md +0 -39
  282. package/prisma/skills/openclaw-persona-forge/references/output-template.md +0 -166
  283. package/prisma/skills/opensource-pipeline/SKILL.md +0 -256
  284. package/prisma/skills/orch-add-feature/SKILL.md +0 -45
  285. package/prisma/skills/orch-build-mvp/SKILL.md +0 -49
  286. package/prisma/skills/orch-change-feature/SKILL.md +0 -43
  287. package/prisma/skills/orch-fix-defect/SKILL.md +0 -43
  288. package/prisma/skills/orch-pipeline/SKILL.md +0 -121
  289. package/prisma/skills/orch-refine-code/SKILL.md +0 -44
  290. package/prisma/skills/parallel-execution-optimizer/SKILL.md +0 -73
  291. package/prisma/skills/perl-patterns/SKILL.md +0 -505
  292. package/prisma/skills/perl-security/SKILL.md +0 -504
  293. package/prisma/skills/perl-testing/SKILL.md +0 -476
  294. package/prisma/skills/plan-orchestrate/SKILL.md +0 -263
  295. package/prisma/skills/plankton-code-quality/SKILL.md +0 -237
  296. package/prisma/skills/postgres-patterns/SKILL.md +0 -148
  297. package/prisma/skills/prediction-market-oracle-research/SKILL.md +0 -64
  298. package/prisma/skills/prediction-market-risk-review/SKILL.md +0 -61
  299. package/prisma/skills/prisma-patterns/SKILL.md +0 -401
  300. package/prisma/skills/product-capability/SKILL.md +0 -142
  301. package/prisma/skills/product-lens/SKILL.md +0 -93
  302. package/prisma/skills/production-audit/SKILL.md +0 -207
  303. package/prisma/skills/production-scheduling/SKILL.md +0 -238
  304. package/prisma/skills/project-flow-ops/SKILL.md +0 -112
  305. package/prisma/skills/prompt-optimizer/SKILL.md +0 -398
  306. package/prisma/skills/python-patterns/SKILL.md +0 -751
  307. package/prisma/skills/python-testing/SKILL.md +0 -817
  308. package/prisma/skills/pytorch-patterns/SKILL.md +0 -397
  309. package/prisma/skills/quality-nonconformance/SKILL.md +0 -260
  310. package/prisma/skills/quarkus-patterns/SKILL.md +0 -723
  311. package/prisma/skills/quarkus-security/SKILL.md +0 -468
  312. package/prisma/skills/quarkus-tdd/SKILL.md +0 -812
  313. package/prisma/skills/quarkus-verification/SKILL.md +0 -480
  314. package/prisma/skills/ralphinho-rfc-pipeline/SKILL.md +0 -68
  315. package/prisma/skills/react-native-patterns/SKILL.md +0 -326
  316. package/prisma/skills/react-patterns/SKILL.md +0 -342
  317. package/prisma/skills/react-performance/SKILL.md +0 -575
  318. package/prisma/skills/react-testing/SKILL.md +0 -424
  319. package/prisma/skills/recsys-pipeline-architect/SKILL.md +0 -115
  320. package/prisma/skills/recursive-decision-ledger/SKILL.md +0 -80
  321. package/prisma/skills/redis-patterns/SKILL.md +0 -404
  322. package/prisma/skills/regex-vs-llm-structured-text/SKILL.md +0 -221
  323. package/prisma/skills/remotion-video-creation/SKILL.md +0 -43
  324. package/prisma/skills/remotion-video-creation/rules/3d.md +0 -86
  325. package/prisma/skills/remotion-video-creation/rules/animations.md +0 -29
  326. package/prisma/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
  327. package/prisma/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
  328. package/prisma/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
  329. package/prisma/skills/remotion-video-creation/rules/assets.md +0 -78
  330. package/prisma/skills/remotion-video-creation/rules/audio.md +0 -172
  331. package/prisma/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
  332. package/prisma/skills/remotion-video-creation/rules/can-decode.md +0 -75
  333. package/prisma/skills/remotion-video-creation/rules/charts.md +0 -58
  334. package/prisma/skills/remotion-video-creation/rules/compositions.md +0 -146
  335. package/prisma/skills/remotion-video-creation/rules/display-captions.md +0 -126
  336. package/prisma/skills/remotion-video-creation/rules/extract-frames.md +0 -229
  337. package/prisma/skills/remotion-video-creation/rules/fonts.md +0 -152
  338. package/prisma/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
  339. package/prisma/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
  340. package/prisma/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
  341. package/prisma/skills/remotion-video-creation/rules/gifs.md +0 -138
  342. package/prisma/skills/remotion-video-creation/rules/images.md +0 -130
  343. package/prisma/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
  344. package/prisma/skills/remotion-video-creation/rules/lottie.md +0 -67
  345. package/prisma/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
  346. package/prisma/skills/remotion-video-creation/rules/measuring-text.md +0 -143
  347. package/prisma/skills/remotion-video-creation/rules/sequencing.md +0 -106
  348. package/prisma/skills/remotion-video-creation/rules/tailwind.md +0 -11
  349. package/prisma/skills/remotion-video-creation/rules/text-animations.md +0 -20
  350. package/prisma/skills/remotion-video-creation/rules/timing.md +0 -179
  351. package/prisma/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
  352. package/prisma/skills/remotion-video-creation/rules/transitions.md +0 -122
  353. package/prisma/skills/remotion-video-creation/rules/trimming.md +0 -52
  354. package/prisma/skills/remotion-video-creation/rules/videos.md +0 -171
  355. package/prisma/skills/repo-scan/SKILL.md +0 -79
  356. package/prisma/skills/research-ops/SKILL.md +0 -113
  357. package/prisma/skills/returns-reverse-logistics/SKILL.md +0 -240
  358. package/prisma/skills/rules-distill/SKILL.md +0 -265
  359. package/prisma/skills/rules-distill/scripts/scan-rules.sh +0 -58
  360. package/prisma/skills/rules-distill/scripts/scan-skills.sh +0 -129
  361. package/prisma/skills/rust-patterns/SKILL.md +0 -500
  362. package/prisma/skills/rust-testing/SKILL.md +0 -501
  363. package/prisma/skills/safety-guard/SKILL.md +0 -76
  364. package/prisma/skills/santa-method/SKILL.md +0 -307
  365. package/prisma/skills/scientific-db-pubmed-database/SKILL.md +0 -176
  366. package/prisma/skills/scientific-db-uspto-database/SKILL.md +0 -178
  367. package/prisma/skills/scientific-pkg-gget/SKILL.md +0 -167
  368. package/prisma/skills/scientific-thinking-literature-review/SKILL.md +0 -193
  369. package/prisma/skills/scientific-thinking-scholar-evaluation/SKILL.md +0 -161
  370. package/prisma/skills/search-first/SKILL.md +0 -183
  371. package/prisma/skills/security-bounty-hunter/SKILL.md +0 -100
  372. package/prisma/skills/security-review/SKILL.md +0 -504
  373. package/prisma/skills/security-review/cloud-infrastructure-security.md +0 -361
  374. package/prisma/skills/security-scan/SKILL.md +0 -166
  375. package/prisma/skills/seo/SKILL.md +0 -155
  376. package/prisma/skills/skill-comply/SKILL.md +0 -59
  377. package/prisma/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
  378. package/prisma/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
  379. package/prisma/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
  380. package/prisma/skills/skill-comply/prompts/classifier.md +0 -24
  381. package/prisma/skills/skill-comply/prompts/scenario_generator.md +0 -62
  382. package/prisma/skills/skill-comply/prompts/spec_generator.md +0 -42
  383. package/prisma/skills/skill-comply/pyproject.toml +0 -15
  384. package/prisma/skills/skill-comply/scripts/__init__.py +0 -0
  385. package/prisma/skills/skill-comply/scripts/classifier.py +0 -85
  386. package/prisma/skills/skill-comply/scripts/grader.py +0 -124
  387. package/prisma/skills/skill-comply/scripts/parser.py +0 -107
  388. package/prisma/skills/skill-comply/scripts/report.py +0 -170
  389. package/prisma/skills/skill-comply/scripts/run.py +0 -127
  390. package/prisma/skills/skill-comply/scripts/runner.py +0 -194
  391. package/prisma/skills/skill-comply/scripts/scenario_generator.py +0 -70
  392. package/prisma/skills/skill-comply/scripts/spec_generator.py +0 -72
  393. package/prisma/skills/skill-comply/scripts/utils.py +0 -13
  394. package/prisma/skills/skill-comply/tests/test_grader.py +0 -197
  395. package/prisma/skills/skill-comply/tests/test_parser.py +0 -90
  396. package/prisma/skills/skill-comply/tests/test_runner.py +0 -172
  397. package/prisma/skills/skill-scout/SKILL.md +0 -141
  398. package/prisma/skills/skill-stocktake/SKILL.md +0 -195
  399. package/prisma/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
  400. package/prisma/skills/skill-stocktake/scripts/save-results.sh +0 -56
  401. package/prisma/skills/skill-stocktake/scripts/scan.sh +0 -170
  402. package/prisma/skills/social-graph-ranker/SKILL.md +0 -155
  403. package/prisma/skills/social-publisher/SKILL.md +0 -130
  404. package/prisma/skills/springboot-patterns/SKILL.md +0 -315
  405. package/prisma/skills/springboot-security/SKILL.md +0 -273
  406. package/prisma/skills/springboot-tdd/SKILL.md +0 -159
  407. package/prisma/skills/springboot-verification/SKILL.md +0 -232
  408. package/prisma/skills/strategic-compact/SKILL.md +0 -136
  409. package/prisma/skills/swift-actor-persistence/SKILL.md +0 -144
  410. package/prisma/skills/swift-concurrency-6-2/SKILL.md +0 -216
  411. package/prisma/skills/swift-protocol-di-testing/SKILL.md +0 -191
  412. package/prisma/skills/swiftui-patterns/SKILL.md +0 -259
  413. package/prisma/skills/taste/SKILL.md +0 -264
  414. package/prisma/skills/taste/references/genre-taxonomy.md +0 -87
  415. package/prisma/skills/tdd-workflow/SKILL.md +0 -583
  416. package/prisma/skills/team-agent-orchestration/SKILL.md +0 -111
  417. package/prisma/skills/team-builder/SKILL.md +0 -169
  418. package/prisma/skills/terminal-ops/SKILL.md +0 -110
  419. package/prisma/skills/tinystruct-patterns/SKILL.md +0 -279
  420. package/prisma/skills/tinystruct-patterns/references/architecture.md +0 -90
  421. package/prisma/skills/tinystruct-patterns/references/data-handling.md +0 -60
  422. package/prisma/skills/tinystruct-patterns/references/database.md +0 -99
  423. package/prisma/skills/tinystruct-patterns/references/routing.md +0 -64
  424. package/prisma/skills/tinystruct-patterns/references/system-usage.md +0 -97
  425. package/prisma/skills/tinystruct-patterns/references/testing.md +0 -72
  426. package/prisma/skills/token-budget-advisor/SKILL.md +0 -134
  427. package/prisma/skills/ui-demo/SKILL.md +0 -466
  428. package/prisma/skills/ui-to-vue/SKILL.md +0 -135
  429. package/prisma/skills/uncloud/SKILL.md +0 -344
  430. package/prisma/skills/unified-notifications-ops/SKILL.md +0 -188
  431. package/prisma/skills/verification-loop/SKILL.md +0 -127
  432. package/prisma/skills/video-editing/SKILL.md +0 -311
  433. package/prisma/skills/videodb/SKILL.md +0 -375
  434. package/prisma/skills/videodb/reference/api-reference.md +0 -550
  435. package/prisma/skills/videodb/reference/capture-reference.md +0 -407
  436. package/prisma/skills/videodb/reference/capture.md +0 -101
  437. package/prisma/skills/videodb/reference/editor.md +0 -443
  438. package/prisma/skills/videodb/reference/generative.md +0 -331
  439. package/prisma/skills/videodb/reference/rtstream-reference.md +0 -564
  440. package/prisma/skills/videodb/reference/rtstream.md +0 -65
  441. package/prisma/skills/videodb/reference/search.md +0 -230
  442. package/prisma/skills/videodb/reference/streaming.md +0 -406
  443. package/prisma/skills/videodb/reference/use-cases.md +0 -118
  444. package/prisma/skills/videodb/scripts/ws_listener.py +0 -282
  445. package/prisma/skills/visa-doc-translate/README.md +0 -86
  446. package/prisma/skills/visa-doc-translate/SKILL.md +0 -117
  447. package/prisma/skills/vite-patterns/SKILL.md +0 -450
  448. package/prisma/skills/vue-patterns/SKILL.md +0 -471
  449. package/prisma/skills/windows-desktop-e2e/SKILL.md +0 -888
  450. package/prisma/skills/workspace-surface-audit/SKILL.md +0 -126
  451. package/prisma/skills/x-api/SKILL.md +0 -235
@@ -1,229 +0,0 @@
1
- ---
2
- name: extract-frames
3
- description: Extract frames from videos at specific timestamps using Mediabunny
4
- metadata:
5
- tags: frames, extract, video, thumbnail, filmstrip, canvas
6
- ---
7
-
8
- # Extracting frames from videos
9
-
10
- Use Mediabunny to extract frames from videos at specific timestamps. This is useful for generating thumbnails, filmstrips, or processing individual frames.
11
-
12
- ## The `extractFrames()` function
13
-
14
- This function can be copy-pasted into any project.
15
-
16
- ```tsx
17
- import {
18
- ALL_FORMATS,
19
- Input,
20
- UrlSource,
21
- VideoSample,
22
- VideoSampleSink,
23
- } from "mediabunny";
24
-
25
- type Options = {
26
- track: { width: number; height: number };
27
- container: string;
28
- durationInSeconds: number | null;
29
- };
30
-
31
- export type ExtractFramesTimestampsInSecondsFn = (
32
- options: Options
33
- ) => Promise<number[]> | number[];
34
-
35
- export type ExtractFramesProps = {
36
- src: string;
37
- timestampsInSeconds: number[] | ExtractFramesTimestampsInSecondsFn;
38
- onVideoSample: (sample: VideoSample) => void;
39
- signal?: AbortSignal;
40
- };
41
-
42
- export async function extractFrames({
43
- src,
44
- timestampsInSeconds,
45
- onVideoSample,
46
- signal,
47
- }: ExtractFramesProps): Promise<void> {
48
- using input = new Input({
49
- formats: ALL_FORMATS,
50
- source: new UrlSource(src),
51
- });
52
-
53
- const [durationInSeconds, format, videoTrack] = await Promise.all([
54
- input.computeDuration(),
55
- input.getFormat(),
56
- input.getPrimaryVideoTrack(),
57
- ]);
58
-
59
- if (!videoTrack) {
60
- throw new Error("No video track found in the input");
61
- }
62
-
63
- if (signal?.aborted) {
64
- throw new Error("Aborted");
65
- }
66
-
67
- const timestamps =
68
- typeof timestampsInSeconds === "function"
69
- ? await timestampsInSeconds({
70
- track: {
71
- width: videoTrack.displayWidth,
72
- height: videoTrack.displayHeight,
73
- },
74
- container: format.name,
75
- durationInSeconds,
76
- })
77
- : timestampsInSeconds;
78
-
79
- if (timestamps.length === 0) {
80
- return;
81
- }
82
-
83
- if (signal?.aborted) {
84
- throw new Error("Aborted");
85
- }
86
-
87
- const sink = new VideoSampleSink(videoTrack);
88
-
89
- for await (using videoSample of sink.samplesAtTimestamps(timestamps)) {
90
- if (signal?.aborted) {
91
- break;
92
- }
93
-
94
- if (!videoSample) {
95
- continue;
96
- }
97
-
98
- onVideoSample(videoSample);
99
- }
100
- }
101
- ```
102
-
103
- ## Basic usage
104
-
105
- Extract frames at specific timestamps:
106
-
107
- ```tsx
108
- await extractFrames({
109
- src: "https://remotion.media/video.mp4",
110
- timestampsInSeconds: [0, 1, 2, 3, 4],
111
- onVideoSample: (sample) => {
112
- const canvas = document.createElement("canvas");
113
- canvas.width = sample.displayWidth;
114
- canvas.height = sample.displayHeight;
115
- const ctx = canvas.getContext("2d");
116
- sample.draw(ctx!, 0, 0);
117
- },
118
- });
119
- ```
120
-
121
- ## Creating a filmstrip
122
-
123
- Use a callback function to dynamically calculate timestamps based on video metadata:
124
-
125
- ```tsx
126
- const canvasWidth = 500;
127
- const canvasHeight = 80;
128
- const fromSeconds = 0;
129
- const toSeconds = 10;
130
-
131
- await extractFrames({
132
- src: "https://remotion.media/video.mp4",
133
- timestampsInSeconds: async ({ track, durationInSeconds }) => {
134
- const aspectRatio = track.width / track.height;
135
- const amountOfFramesFit = Math.ceil(
136
- canvasWidth / (canvasHeight * aspectRatio)
137
- );
138
- const segmentDuration = toSeconds - fromSeconds;
139
- const timestamps: number[] = [];
140
-
141
- for (let i = 0; i < amountOfFramesFit; i++) {
142
- timestamps.push(
143
- fromSeconds + (segmentDuration / amountOfFramesFit) * (i + 0.5)
144
- );
145
- }
146
-
147
- return timestamps;
148
- },
149
- onVideoSample: (sample) => {
150
- console.log(`Frame at ${sample.timestamp}s`);
151
-
152
- const canvas = document.createElement("canvas");
153
- canvas.width = sample.displayWidth;
154
- canvas.height = sample.displayHeight;
155
- const ctx = canvas.getContext("2d");
156
- sample.draw(ctx!, 0, 0);
157
- },
158
- });
159
- ```
160
-
161
- ## Cancellation with AbortSignal
162
-
163
- Cancel frame extraction after a timeout:
164
-
165
- ```tsx
166
- const controller = new AbortController();
167
-
168
- setTimeout(() => controller.abort(), 5000);
169
-
170
- try {
171
- await extractFrames({
172
- src: "https://remotion.media/video.mp4",
173
- timestampsInSeconds: [0, 1, 2, 3, 4],
174
- onVideoSample: (sample) => {
175
- using frame = sample;
176
- const canvas = document.createElement("canvas");
177
- canvas.width = frame.displayWidth;
178
- canvas.height = frame.displayHeight;
179
- const ctx = canvas.getContext("2d");
180
- frame.draw(ctx!, 0, 0);
181
- },
182
- signal: controller.signal,
183
- });
184
-
185
- console.log("Frame extraction complete!");
186
- } catch (error) {
187
- console.error("Frame extraction was aborted or failed:", error);
188
- }
189
- ```
190
-
191
- ## Timeout with Promise.race
192
-
193
- ```tsx
194
- const controller = new AbortController();
195
-
196
- const timeoutPromise = new Promise<never>((_, reject) => {
197
- const timeoutId = setTimeout(() => {
198
- controller.abort();
199
- reject(new Error("Frame extraction timed out after 10 seconds"));
200
- }, 10000);
201
-
202
- controller.signal.addEventListener("abort", () => clearTimeout(timeoutId), {
203
- once: true,
204
- });
205
- });
206
-
207
- try {
208
- await Promise.race([
209
- extractFrames({
210
- src: "https://remotion.media/video.mp4",
211
- timestampsInSeconds: [0, 1, 2, 3, 4],
212
- onVideoSample: (sample) => {
213
- using frame = sample;
214
- const canvas = document.createElement("canvas");
215
- canvas.width = frame.displayWidth;
216
- canvas.height = frame.displayHeight;
217
- const ctx = canvas.getContext("2d");
218
- frame.draw(ctx!, 0, 0);
219
- },
220
- signal: controller.signal,
221
- }),
222
- timeoutPromise,
223
- ]);
224
-
225
- console.log("Frame extraction complete!");
226
- } catch (error) {
227
- console.error("Frame extraction was aborted or failed:", error);
228
- }
229
- ```
@@ -1,152 +0,0 @@
1
- ---
2
- name: fonts
3
- description: Loading Google Fonts and local fonts in Remotion
4
- metadata:
5
- tags: fonts, google-fonts, typography, text
6
- ---
7
-
8
- # Using fonts in Remotion
9
-
10
- ## Google Fonts with @remotion/google-fonts
11
-
12
- The recommended way to use Google Fonts. It's type-safe and automatically blocks rendering until the font is ready.
13
-
14
- ### Prerequisites
15
-
16
- First, the @remotion/google-fonts package needs to be installed.
17
- If it is not installed, use the following command:
18
-
19
- ```bash
20
- npx remotion add @remotion/google-fonts # If project uses npm
21
- bunx remotion add @remotion/google-fonts # If project uses bun
22
- yarn remotion add @remotion/google-fonts # If project uses yarn
23
- pnpm exec remotion add @remotion/google-fonts # If project uses pnpm
24
- ```
25
-
26
- ```tsx
27
- import { loadFont } from "@remotion/google-fonts/Lobster";
28
-
29
- const { fontFamily } = loadFont();
30
-
31
- export const MyComposition = () => {
32
- return <div style={{ fontFamily }}>Hello World</div>;
33
- };
34
- ```
35
-
36
- Preferrably, specify only needed weights and subsets to reduce file size:
37
-
38
- ```tsx
39
- import { loadFont } from "@remotion/google-fonts/Roboto";
40
-
41
- const { fontFamily } = loadFont("normal", {
42
- weights: ["400", "700"],
43
- subsets: ["latin"],
44
- });
45
- ```
46
-
47
- ### Waiting for font to load
48
-
49
- Use `waitUntilDone()` if you need to know when the font is ready:
50
-
51
- ```tsx
52
- import { loadFont } from "@remotion/google-fonts/Lobster";
53
-
54
- const { fontFamily, waitUntilDone } = loadFont();
55
-
56
- await waitUntilDone();
57
- ```
58
-
59
- ## Local fonts with @remotion/fonts
60
-
61
- For local font files, use the `@remotion/fonts` package.
62
-
63
- ### Prerequisites
64
-
65
- First, install @remotion/fonts:
66
-
67
- ```bash
68
- npx remotion add @remotion/fonts # If project uses npm
69
- bunx remotion add @remotion/fonts # If project uses bun
70
- yarn remotion add @remotion/fonts # If project uses yarn
71
- pnpm exec remotion add @remotion/fonts # If project uses pnpm
72
- ```
73
-
74
- ### Loading a local font
75
-
76
- Place your font file in the `public/` folder and use `loadFont()`:
77
-
78
- ```tsx
79
- import { loadFont } from "@remotion/fonts";
80
- import { staticFile } from "remotion";
81
-
82
- await loadFont({
83
- family: "MyFont",
84
- url: staticFile("MyFont-Regular.woff2"),
85
- });
86
-
87
- export const MyComposition = () => {
88
- return <div style={{ fontFamily: "MyFont" }}>Hello World</div>;
89
- };
90
- ```
91
-
92
- ### Loading multiple weights
93
-
94
- Load each weight separately with the same family name:
95
-
96
- ```tsx
97
- import { loadFont } from "@remotion/fonts";
98
- import { staticFile } from "remotion";
99
-
100
- await Promise.all([
101
- loadFont({
102
- family: "Inter",
103
- url: staticFile("Inter-Regular.woff2"),
104
- weight: "400",
105
- }),
106
- loadFont({
107
- family: "Inter",
108
- url: staticFile("Inter-Bold.woff2"),
109
- weight: "700",
110
- }),
111
- ]);
112
- ```
113
-
114
- ### Available options
115
-
116
- ```tsx
117
- loadFont({
118
- family: "MyFont", // Required: name to use in CSS
119
- url: staticFile("font.woff2"), // Required: font file URL
120
- format: "woff2", // Optional: auto-detected from extension
121
- weight: "400", // Optional: font weight
122
- style: "normal", // Optional: normal or italic
123
- display: "block", // Optional: font-display behavior
124
- });
125
- ```
126
-
127
- ## Using in components
128
-
129
- Call `loadFont()` at the top level of your component or in a separate file that's imported early:
130
-
131
- ```tsx
132
- import { loadFont } from "@remotion/google-fonts/Montserrat";
133
-
134
- const { fontFamily } = loadFont("normal", {
135
- weights: ["400", "700"],
136
- subsets: ["latin"],
137
- });
138
-
139
- export const Title: React.FC<{ text: string }> = ({ text }) => {
140
- return (
141
- <h1
142
- style={{
143
- fontFamily,
144
- fontSize: 80,
145
- fontWeight: "bold",
146
- }}
147
- >
148
- {text}
149
- </h1>
150
- );
151
- };
152
- ```
@@ -1,58 +0,0 @@
1
- ---
2
- name: get-audio-duration
3
- description: Getting the duration of an audio file in seconds with Mediabunny
4
- metadata:
5
- tags: duration, audio, length, time, seconds, mp3, wav
6
- ---
7
-
8
- # Getting audio duration with Mediabunny
9
-
10
- Mediabunny can extract the duration of an audio file. It works in browser, Node.js, and Bun environments.
11
-
12
- ## Getting audio duration
13
-
14
- ```tsx
15
- import { Input, ALL_FORMATS, UrlSource } from "mediabunny";
16
-
17
- export const getAudioDuration = async (src: string) => {
18
- const input = new Input({
19
- formats: ALL_FORMATS,
20
- source: new UrlSource(src, {
21
- getRetryDelay: () => null,
22
- }),
23
- });
24
-
25
- const durationInSeconds = await input.computeDuration();
26
- return durationInSeconds;
27
- };
28
- ```
29
-
30
- ## Usage
31
-
32
- ```tsx
33
- const duration = await getAudioDuration("https://remotion.media/audio.mp3");
34
- console.log(duration); // e.g. 180.5 (seconds)
35
- ```
36
-
37
- ## Using with local files
38
-
39
- For local files, use `FileSource` instead of `UrlSource`:
40
-
41
- ```tsx
42
- import { Input, ALL_FORMATS, FileSource } from "mediabunny";
43
-
44
- const input = new Input({
45
- formats: ALL_FORMATS,
46
- source: new FileSource(file), // File object from input or drag-drop
47
- });
48
-
49
- const durationInSeconds = await input.computeDuration();
50
- ```
51
-
52
- ## Using with staticFile in Remotion
53
-
54
- ```tsx
55
- import { staticFile } from "remotion";
56
-
57
- const duration = await getAudioDuration(staticFile("audio.mp3"));
58
- ```
@@ -1,68 +0,0 @@
1
- ---
2
- name: get-video-dimensions
3
- description: Getting the width and height of a video file with Mediabunny
4
- metadata:
5
- tags: dimensions, width, height, resolution, size, video
6
- ---
7
-
8
- # Getting video dimensions with Mediabunny
9
-
10
- Mediabunny can extract the width and height of a video file. It works in browser, Node.js, and Bun environments.
11
-
12
- ## Getting video dimensions
13
-
14
- ```tsx
15
- import { Input, ALL_FORMATS, UrlSource } from "mediabunny";
16
-
17
- export const getVideoDimensions = async (src: string) => {
18
- const input = new Input({
19
- formats: ALL_FORMATS,
20
- source: new UrlSource(src, {
21
- getRetryDelay: () => null,
22
- }),
23
- });
24
-
25
- const videoTrack = await input.getPrimaryVideoTrack();
26
- if (!videoTrack) {
27
- throw new Error("No video track found");
28
- }
29
-
30
- return {
31
- width: videoTrack.displayWidth,
32
- height: videoTrack.displayHeight,
33
- };
34
- };
35
- ```
36
-
37
- ## Usage
38
-
39
- ```tsx
40
- const dimensions = await getVideoDimensions("https://remotion.media/video.mp4");
41
- console.log(dimensions.width); // e.g. 1920
42
- console.log(dimensions.height); // e.g. 1080
43
- ```
44
-
45
- ## Using with local files
46
-
47
- For local files, use `FileSource` instead of `UrlSource`:
48
-
49
- ```tsx
50
- import { Input, ALL_FORMATS, FileSource } from "mediabunny";
51
-
52
- const input = new Input({
53
- formats: ALL_FORMATS,
54
- source: new FileSource(file), // File object from input or drag-drop
55
- });
56
-
57
- const videoTrack = await input.getPrimaryVideoTrack();
58
- const width = videoTrack.displayWidth;
59
- const height = videoTrack.displayHeight;
60
- ```
61
-
62
- ## Using with staticFile in Remotion
63
-
64
- ```tsx
65
- import { staticFile } from "remotion";
66
-
67
- const dimensions = await getVideoDimensions(staticFile("video.mp4"));
68
- ```
@@ -1,58 +0,0 @@
1
- ---
2
- name: get-video-duration
3
- description: Getting the duration of a video file in seconds with Mediabunny
4
- metadata:
5
- tags: duration, video, length, time, seconds
6
- ---
7
-
8
- # Getting video duration with Mediabunny
9
-
10
- Mediabunny can extract the duration of a video file. It works in browser, Node.js, and Bun environments.
11
-
12
- ## Getting video duration
13
-
14
- ```tsx
15
- import { Input, ALL_FORMATS, UrlSource } from "mediabunny";
16
-
17
- export const getVideoDuration = async (src: string) => {
18
- const input = new Input({
19
- formats: ALL_FORMATS,
20
- source: new UrlSource(src, {
21
- getRetryDelay: () => null,
22
- }),
23
- });
24
-
25
- const durationInSeconds = await input.computeDuration();
26
- return durationInSeconds;
27
- };
28
- ```
29
-
30
- ## Usage
31
-
32
- ```tsx
33
- const duration = await getVideoDuration("https://remotion.media/video.mp4");
34
- console.log(duration); // e.g. 10.5 (seconds)
35
- ```
36
-
37
- ## Using with local files
38
-
39
- For local files, use `FileSource` instead of `UrlSource`:
40
-
41
- ```tsx
42
- import { Input, ALL_FORMATS, FileSource } from "mediabunny";
43
-
44
- const input = new Input({
45
- formats: ALL_FORMATS,
46
- source: new FileSource(file), // File object from input or drag-drop
47
- });
48
-
49
- const durationInSeconds = await input.computeDuration();
50
- ```
51
-
52
- ## Using with staticFile in Remotion
53
-
54
- ```tsx
55
- import { staticFile } from "remotion";
56
-
57
- const duration = await getVideoDuration(staticFile("video.mp4"));
58
- ```
@@ -1,138 +0,0 @@
1
- ---
2
- name: gif
3
- description: Displaying GIFs, APNG, AVIF and WebP in Remotion
4
- metadata:
5
- tags: gif, animation, images, animated, apng, avif, webp
6
- ---
7
-
8
- # Using Animated images in Remotion
9
-
10
- ## Basic usage
11
-
12
- Use `<AnimatedImage>` to display a GIF, APNG, AVIF or WebP image synchronized with Remotion's timeline:
13
-
14
- ```tsx
15
- import {AnimatedImage, staticFile} from 'remotion';
16
-
17
- export const MyComposition = () => {
18
- return <AnimatedImage src={staticFile('animation.gif')} width={500} height={500} />;
19
- };
20
- ```
21
-
22
- Remote URLs are also supported (must have CORS enabled):
23
-
24
- ```tsx
25
- <AnimatedImage src="https://example.com/animation.gif" width={500} height={500} />
26
- ```
27
-
28
- ## Sizing and fit
29
-
30
- Control how the image fills its container with the `fit` prop:
31
-
32
- ```tsx
33
- // Stretch to fill (default)
34
- <AnimatedImage src={staticFile("animation.gif")} width={500} height={300} fit="fill" />
35
-
36
- // Maintain aspect ratio, fit inside container
37
- <AnimatedImage src={staticFile("animation.gif")} width={500} height={300} fit="contain" />
38
-
39
- // Fill container, crop if needed
40
- <AnimatedImage src={staticFile("animation.gif")} width={500} height={300} fit="cover" />
41
- ```
42
-
43
- ## Playback speed
44
-
45
- Use `playbackRate` to control the animation speed:
46
-
47
- ```tsx
48
- <AnimatedImage src={staticFile("animation.gif")} width={500} height={500} playbackRate={2} /> {/* 2x speed */}
49
- <AnimatedImage src={staticFile("animation.gif")} width={500} height={500} playbackRate={0.5} /> {/* Half speed */}
50
- ```
51
-
52
- ## Looping behavior
53
-
54
- Control what happens when the animation finishes:
55
-
56
- ```tsx
57
- // Loop indefinitely (default)
58
- <AnimatedImage src={staticFile("animation.gif")} width={500} height={500} loopBehavior="loop" />
59
-
60
- // Play once, show final frame
61
- <AnimatedImage src={staticFile("animation.gif")} width={500} height={500} loopBehavior="pause-after-finish" />
62
-
63
- // Play once, then clear canvas
64
- <AnimatedImage src={staticFile("animation.gif")} width={500} height={500} loopBehavior="clear-after-finish" />
65
- ```
66
-
67
- ## Styling
68
-
69
- Use the `style` prop for additional CSS (use `width` and `height` props for sizing):
70
-
71
- ```tsx
72
- <AnimatedImage
73
- src={staticFile('animation.gif')}
74
- width={500}
75
- height={500}
76
- style={{
77
- borderRadius: 20,
78
- position: 'absolute',
79
- top: 100,
80
- left: 50,
81
- }}
82
- />
83
- ```
84
-
85
- ## Getting GIF duration
86
-
87
- Use `getGifDurationInSeconds()` from `@remotion/gif` to get the duration of a GIF.
88
-
89
- ```bash
90
- npx remotion add @remotion/gif # If project uses npm
91
- bunx remotion add @remotion/gif # If project uses bun
92
- yarn remotion add @remotion/gif # If project uses yarn
93
- pnpm exec remotion add @remotion/gif # If project uses pnpm
94
- ```
95
-
96
- ```tsx
97
- import {getGifDurationInSeconds} from '@remotion/gif';
98
- import {staticFile} from 'remotion';
99
-
100
- const duration = await getGifDurationInSeconds(staticFile('animation.gif'));
101
- console.log(duration); // e.g. 2.5
102
- ```
103
-
104
- This is useful for setting the composition duration to match the GIF:
105
-
106
- ```tsx
107
- import {getGifDurationInSeconds} from '@remotion/gif';
108
- import {staticFile, CalculateMetadataFunction} from 'remotion';
109
-
110
- const calculateMetadata: CalculateMetadataFunction = async () => {
111
- const duration = await getGifDurationInSeconds(staticFile('animation.gif'));
112
- return {
113
- durationInFrames: Math.ceil(duration * 30),
114
- };
115
- };
116
- ```
117
-
118
- ## Alternative
119
-
120
- If `<AnimatedImage>` does not work (only supported in Chrome and Firefox), you can use `<Gif>` from `@remotion/gif` instead.
121
-
122
- ```bash
123
- npx remotion add @remotion/gif # If project uses npm
124
- bunx remotion add @remotion/gif # If project uses bun
125
- yarn remotion add @remotion/gif # If project uses yarn
126
- pnpm exec remotion add @remotion/gif # If project uses pnpm
127
- ```
128
-
129
- ```tsx
130
- import {Gif} from '@remotion/gif';
131
- import {staticFile} from 'remotion';
132
-
133
- export const MyComposition = () => {
134
- return <Gif src={staticFile('animation.gif')} width={500} height={500} />;
135
- };
136
- ```
137
-
138
- The `<Gif>` component has the same props as `<AnimatedImage>` but only supports GIF files.