@imgly/codesign-mcp 0.1.0

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 (816) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +158 -0
  3. package/assets/docs/api/SKILL.md +49 -0
  4. package/assets/docs/api/index.d.ts +10518 -0
  5. package/assets/docs/guide/SKILL.md +142 -0
  6. package/assets/docs/guide/actions.md +1038 -0
  7. package/assets/docs/guide/animation/create/base.md +467 -0
  8. package/assets/docs/guide/animation/create/text.md +453 -0
  9. package/assets/docs/guide/animation/create.md +558 -0
  10. package/assets/docs/guide/animation/edit.md +501 -0
  11. package/assets/docs/guide/animation/overview.md +22 -0
  12. package/assets/docs/guide/animation/types.md +430 -0
  13. package/assets/docs/guide/animation.md +23 -0
  14. package/assets/docs/guide/api/AssetAPI.md +602 -0
  15. package/assets/docs/guide/api/BlockAPI.md +6152 -0
  16. package/assets/docs/guide/api/CreativeEngine.md +180 -0
  17. package/assets/docs/guide/api/EditorAPI.md +1261 -0
  18. package/assets/docs/guide/api/EventAPI.md +25 -0
  19. package/assets/docs/guide/api/SceneAPI.md +729 -0
  20. package/assets/docs/guide/api/VariableAPI.md +59 -0
  21. package/assets/docs/guide/api/types.md +71 -0
  22. package/assets/docs/guide/api-reference/overview.md +20 -0
  23. package/assets/docs/guide/automation/auto-resize.md +412 -0
  24. package/assets/docs/guide/automation/batch-processing.md +474 -0
  25. package/assets/docs/guide/automation/data-merge.md +406 -0
  26. package/assets/docs/guide/automation/design-generation.md +107 -0
  27. package/assets/docs/guide/automation/overview.md +16 -0
  28. package/assets/docs/guide/automation.md +24 -0
  29. package/assets/docs/guide/browser-support.md +38 -0
  30. package/assets/docs/guide/capabilities.md +18 -0
  31. package/assets/docs/guide/colors/adjust.md +551 -0
  32. package/assets/docs/guide/colors/apply.md +349 -0
  33. package/assets/docs/guide/colors/basics.md +440 -0
  34. package/assets/docs/guide/colors/conversion.md +504 -0
  35. package/assets/docs/guide/colors/create-color-palette.md +426 -0
  36. package/assets/docs/guide/colors/for-print/cmyk.md +577 -0
  37. package/assets/docs/guide/colors/for-print/spot.md +751 -0
  38. package/assets/docs/guide/colors/for-print.md +21 -0
  39. package/assets/docs/guide/colors/for-screen/p3.md +60 -0
  40. package/assets/docs/guide/colors/for-screen/srgb.md +463 -0
  41. package/assets/docs/guide/colors/for-screen.md +21 -0
  42. package/assets/docs/guide/colors/overview.md +20 -0
  43. package/assets/docs/guide/colors/replace.md +535 -0
  44. package/assets/docs/guide/colors.md +28 -0
  45. package/assets/docs/guide/compatibility.md +27 -0
  46. package/assets/docs/guide/concepts/architecture.md +99 -0
  47. package/assets/docs/guide/concepts/assets.md +360 -0
  48. package/assets/docs/guide/concepts/blocks.md +750 -0
  49. package/assets/docs/guide/concepts/buffers.md +546 -0
  50. package/assets/docs/guide/concepts/design-units.md +333 -0
  51. package/assets/docs/guide/concepts/edit-modes.md +431 -0
  52. package/assets/docs/guide/concepts/editing-workflow.md +303 -0
  53. package/assets/docs/guide/concepts/events.md +466 -0
  54. package/assets/docs/guide/concepts/headless-mode/browser.md +291 -0
  55. package/assets/docs/guide/concepts/pages.md +396 -0
  56. package/assets/docs/guide/concepts/resources.md +496 -0
  57. package/assets/docs/guide/concepts/scenes.md +443 -0
  58. package/assets/docs/guide/concepts/templating.md +194 -0
  59. package/assets/docs/guide/concepts/terminology.md +296 -0
  60. package/assets/docs/guide/concepts/undo-and-history.md +461 -0
  61. package/assets/docs/guide/concepts.md +38 -0
  62. package/assets/docs/guide/configuration.md +469 -0
  63. package/assets/docs/guide/conversion/overview.md +22 -0
  64. package/assets/docs/guide/conversion/to-base64.md +234 -0
  65. package/assets/docs/guide/conversion/to-pdf.md +616 -0
  66. package/assets/docs/guide/conversion/to-png.md +290 -0
  67. package/assets/docs/guide/conversion.md +23 -0
  68. package/assets/docs/guide/create-audio/audio/add-music.md +430 -0
  69. package/assets/docs/guide/create-audio/audio/add-sound-effects.md +664 -0
  70. package/assets/docs/guide/create-audio/audio/loop.md +370 -0
  71. package/assets/docs/guide/create-audio/audio.md +336 -0
  72. package/assets/docs/guide/create-composition/add-background.md +395 -0
  73. package/assets/docs/guide/create-composition/blend-modes.md +372 -0
  74. package/assets/docs/guide/create-composition/collage.md +432 -0
  75. package/assets/docs/guide/create-composition/group-and-ungroup.md +388 -0
  76. package/assets/docs/guide/create-composition/layer-management.md +503 -0
  77. package/assets/docs/guide/create-composition/layout.md +396 -0
  78. package/assets/docs/guide/create-composition/lock-design.md +362 -0
  79. package/assets/docs/guide/create-composition/multi-page.md +204 -0
  80. package/assets/docs/guide/create-composition/overview.md +18 -0
  81. package/assets/docs/guide/create-composition/programmatic.md +593 -0
  82. package/assets/docs/guide/create-composition.md +30 -0
  83. package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +688 -0
  84. package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +600 -0
  85. package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +647 -0
  86. package/assets/docs/guide/create-templates/add-dynamic-content.md +307 -0
  87. package/assets/docs/guide/create-templates/add-to-template-library.md +297 -0
  88. package/assets/docs/guide/create-templates/edit-or-remove.md +441 -0
  89. package/assets/docs/guide/create-templates/from-scratch.md +558 -0
  90. package/assets/docs/guide/create-templates/import/from-scene-file.md +440 -0
  91. package/assets/docs/guide/create-templates/import.md +244 -0
  92. package/assets/docs/guide/create-templates/lock.md +325 -0
  93. package/assets/docs/guide/create-templates/overview.md +16 -0
  94. package/assets/docs/guide/create-templates.md +32 -0
  95. package/assets/docs/guide/create-video/audio/adjust-speed.md +302 -0
  96. package/assets/docs/guide/create-video/audio/adjust-volume.md +346 -0
  97. package/assets/docs/guide/create-video/control.md +285 -0
  98. package/assets/docs/guide/create-video/limitations.md +396 -0
  99. package/assets/docs/guide/create-video/overview.md +224 -0
  100. package/assets/docs/guide/create-video/timeline-editor.md +622 -0
  101. package/assets/docs/guide/create-video/update-caption-presets.md +676 -0
  102. package/assets/docs/guide/create-video.md +32 -0
  103. package/assets/docs/guide/edit-image/add-watermark.md +497 -0
  104. package/assets/docs/guide/edit-image/overview.md +22 -0
  105. package/assets/docs/guide/edit-image/remove-bg.md +420 -0
  106. package/assets/docs/guide/edit-image/replace-colors.md +680 -0
  107. package/assets/docs/guide/edit-image/transform/crop.md +523 -0
  108. package/assets/docs/guide/edit-image/transform/move.md +279 -0
  109. package/assets/docs/guide/edit-image/transform/resize.md +301 -0
  110. package/assets/docs/guide/edit-image/transform/rotate.md +408 -0
  111. package/assets/docs/guide/edit-image/transform/scale.md +278 -0
  112. package/assets/docs/guide/edit-image/transform.md +24 -0
  113. package/assets/docs/guide/edit-image/vectorize.md +204 -0
  114. package/assets/docs/guide/edit-image.md +25 -0
  115. package/assets/docs/guide/edit-video/add-captions.md +589 -0
  116. package/assets/docs/guide/edit-video/add-watermark.md +429 -0
  117. package/assets/docs/guide/edit-video/join-and-arrange.md +540 -0
  118. package/assets/docs/guide/edit-video/redaction.md +544 -0
  119. package/assets/docs/guide/edit-video/split.md +634 -0
  120. package/assets/docs/guide/edit-video/transform/crop.md +380 -0
  121. package/assets/docs/guide/edit-video/transform/flip.md +182 -0
  122. package/assets/docs/guide/edit-video/transform/move.md +413 -0
  123. package/assets/docs/guide/edit-video/transform/resize.md +534 -0
  124. package/assets/docs/guide/edit-video/transform/rotate.md +312 -0
  125. package/assets/docs/guide/edit-video/transform/scale.md +603 -0
  126. package/assets/docs/guide/edit-video/transform.md +25 -0
  127. package/assets/docs/guide/edit-video/trim.md +773 -0
  128. package/assets/docs/guide/engine-interface.md +108 -0
  129. package/assets/docs/guide/export-save-publish/create-thumbnail.md +292 -0
  130. package/assets/docs/guide/export-save-publish/export/compress.md +639 -0
  131. package/assets/docs/guide/export-save-publish/export/overview.md +576 -0
  132. package/assets/docs/guide/export-save-publish/export/partial-export.md +694 -0
  133. package/assets/docs/guide/export-save-publish/export/size-limits.md +401 -0
  134. package/assets/docs/guide/export-save-publish/export/to-html5.md +474 -0
  135. package/assets/docs/guide/export-save-publish/export/to-jpeg.md +312 -0
  136. package/assets/docs/guide/export-save-publish/export/to-mp4.md +364 -0
  137. package/assets/docs/guide/export-save-publish/export/to-pdf.md +389 -0
  138. package/assets/docs/guide/export-save-publish/export/to-png.md +255 -0
  139. package/assets/docs/guide/export-save-publish/export/to-raw-data.md +303 -0
  140. package/assets/docs/guide/export-save-publish/export/to-webp.md +261 -0
  141. package/assets/docs/guide/export-save-publish/export/with-color-mask.md +278 -0
  142. package/assets/docs/guide/export-save-publish/export.md +36 -0
  143. package/assets/docs/guide/export-save-publish/for-printing.md +423 -0
  144. package/assets/docs/guide/export-save-publish/for-social-media.md +318 -0
  145. package/assets/docs/guide/export-save-publish/pre-export-validation.md +698 -0
  146. package/assets/docs/guide/export-save-publish/save.md +340 -0
  147. package/assets/docs/guide/export-save-publish/store-custom-metadata.md +367 -0
  148. package/assets/docs/guide/file-format-support.md +34 -0
  149. package/assets/docs/guide/fills/color.md +678 -0
  150. package/assets/docs/guide/fills/image.md +539 -0
  151. package/assets/docs/guide/fills/overview.md +144 -0
  152. package/assets/docs/guide/fills/video.md +641 -0
  153. package/assets/docs/guide/fills.md +24 -0
  154. package/assets/docs/guide/filters-and-effects/apply.md +1019 -0
  155. package/assets/docs/guide/filters-and-effects/blur.md +382 -0
  156. package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +445 -0
  157. package/assets/docs/guide/filters-and-effects/create-custom-filters.md +614 -0
  158. package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +426 -0
  159. package/assets/docs/guide/filters-and-effects/distortion.md +527 -0
  160. package/assets/docs/guide/filters-and-effects/duotone.md +602 -0
  161. package/assets/docs/guide/filters-and-effects/gradients.md +1311 -0
  162. package/assets/docs/guide/filters-and-effects/overview.md +22 -0
  163. package/assets/docs/guide/filters-and-effects/support.md +623 -0
  164. package/assets/docs/guide/filters-and-effects.md +28 -0
  165. package/assets/docs/guide/get-started/agent-skills.md +119 -0
  166. package/assets/docs/guide/get-started/build-with-ai.md +45 -0
  167. package/assets/docs/guide/get-started/mcp-server.md +119 -0
  168. package/assets/docs/guide/get-started/overview.md +28 -0
  169. package/assets/docs/guide/get-started/vanilla-js/quickstart.md +175 -0
  170. package/assets/docs/guide/grid-and-rulers.md +222 -0
  171. package/assets/docs/guide/guides/export-save-publish/export/audio.md +224 -0
  172. package/assets/docs/guide/guides/text/rendering-internals.md +796 -0
  173. package/assets/docs/guide/guides.md +49 -0
  174. package/assets/docs/guide/import-media/asset-library.md +23 -0
  175. package/assets/docs/guide/import-media/asset-panel/basics.md +324 -0
  176. package/assets/docs/guide/import-media/asset-panel/customize.md +478 -0
  177. package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +415 -0
  178. package/assets/docs/guide/import-media/asset-panel/thumbnails.md +633 -0
  179. package/assets/docs/guide/import-media/capture-from-camera/record-video.md +137 -0
  180. package/assets/docs/guide/import-media/capture-from-camera.md +20 -0
  181. package/assets/docs/guide/import-media/concepts.md +173 -0
  182. package/assets/docs/guide/import-media/content-json-schema.md +615 -0
  183. package/assets/docs/guide/import-media/default-assets.md +381 -0
  184. package/assets/docs/guide/import-media/edit-or-remove-assets.md +489 -0
  185. package/assets/docs/guide/import-media/file-format-support.md +178 -0
  186. package/assets/docs/guide/import-media/from-local-source/user-upload.md +438 -0
  187. package/assets/docs/guide/import-media/from-local-source.md +20 -0
  188. package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +390 -0
  189. package/assets/docs/guide/import-media/from-remote-source/getty-images.md +627 -0
  190. package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +625 -0
  191. package/assets/docs/guide/import-media/from-remote-source/pexels.md +692 -0
  192. package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +473 -0
  193. package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +497 -0
  194. package/assets/docs/guide/import-media/from-remote-source/third-party.md +51 -0
  195. package/assets/docs/guide/import-media/from-remote-source/unsplash.md +914 -0
  196. package/assets/docs/guide/import-media/from-remote-source/your-server.md +764 -0
  197. package/assets/docs/guide/import-media/from-remote-source.md +28 -0
  198. package/assets/docs/guide/import-media/overview.md +32 -0
  199. package/assets/docs/guide/import-media/retrieve-mimetype.md +274 -0
  200. package/assets/docs/guide/import-media/size-limits.md +20 -0
  201. package/assets/docs/guide/import-media/source-sets.md +476 -0
  202. package/assets/docs/guide/import-media.md +32 -0
  203. package/assets/docs/guide/insert-media/audio.md +291 -0
  204. package/assets/docs/guide/insert-media/images.md +380 -0
  205. package/assets/docs/guide/insert-media/position-and-align.md +734 -0
  206. package/assets/docs/guide/insert-media/shapes-or-stickers.md +799 -0
  207. package/assets/docs/guide/insert-media/videos.md +308 -0
  208. package/assets/docs/guide/insert-media.md +24 -0
  209. package/assets/docs/guide/key-capabilities.md +24 -0
  210. package/assets/docs/guide/key-concepts.md +83 -0
  211. package/assets/docs/guide/licensing.md +45 -0
  212. package/assets/docs/guide/llms-txt.md +53 -0
  213. package/assets/docs/guide/open-the-editor/blank-canvas.md +124 -0
  214. package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +228 -0
  215. package/assets/docs/guide/open-the-editor/from-image.md +205 -0
  216. package/assets/docs/guide/open-the-editor/from-template.md +189 -0
  217. package/assets/docs/guide/open-the-editor/from-video.md +274 -0
  218. package/assets/docs/guide/open-the-editor/import-design/from-archive.md +504 -0
  219. package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +680 -0
  220. package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +865 -0
  221. package/assets/docs/guide/open-the-editor/import-design.md +481 -0
  222. package/assets/docs/guide/open-the-editor/load-scene.md +178 -0
  223. package/assets/docs/guide/open-the-editor/overview.md +20 -0
  224. package/assets/docs/guide/open-the-editor/set-zoom-level.md +303 -0
  225. package/assets/docs/guide/open-the-editor/uri-resolver.md +347 -0
  226. package/assets/docs/guide/open-the-editor.md +29 -0
  227. package/assets/docs/guide/outlines/overview.md +14 -0
  228. package/assets/docs/guide/outlines/shadows-and-glows.md +515 -0
  229. package/assets/docs/guide/outlines/strokes.md +292 -0
  230. package/assets/docs/guide/outlines.md +22 -0
  231. package/assets/docs/guide/overview.md +22 -0
  232. package/assets/docs/guide/performance.md +217 -0
  233. package/assets/docs/guide/plugins/asset-sources.md +553 -0
  234. package/assets/docs/guide/plugins/print-ready-pdf.md +549 -0
  235. package/assets/docs/guide/plugins.md +36 -0
  236. package/assets/docs/guide/rules/asset-handling.md +180 -0
  237. package/assets/docs/guide/rules/common-pitfalls.md +272 -0
  238. package/assets/docs/guide/rules/content-fill-mode.md +29 -0
  239. package/assets/docs/guide/rules/enforce-brand-guidelines.md +672 -0
  240. package/assets/docs/guide/rules/lock-content.md +478 -0
  241. package/assets/docs/guide/rules/moderate-content.md +761 -0
  242. package/assets/docs/guide/rules/overview.md +514 -0
  243. package/assets/docs/guide/rules/silent-init-errors.md +137 -0
  244. package/assets/docs/guide/rules/verify-properties-before-use.md +78 -0
  245. package/assets/docs/guide/rules.md +23 -0
  246. package/assets/docs/guide/security.md +199 -0
  247. package/assets/docs/guide/serve-assets.md +332 -0
  248. package/assets/docs/guide/settings.md +199 -0
  249. package/assets/docs/guide/shapes.md +23 -0
  250. package/assets/docs/guide/starterkits/3d-mockup-editor.md +748 -0
  251. package/assets/docs/guide/starterkits/advanced-editor.md +698 -0
  252. package/assets/docs/guide/starterkits/advanced-video-editor.md +696 -0
  253. package/assets/docs/guide/starterkits/ai-editor.md +749 -0
  254. package/assets/docs/guide/starterkits/airtable-image-editor.md +672 -0
  255. package/assets/docs/guide/starterkits/apparel-ui.md +188 -0
  256. package/assets/docs/guide/starterkits/assets.md +27 -0
  257. package/assets/docs/guide/starterkits/auto-resize.md +586 -0
  258. package/assets/docs/guide/starterkits/automated-video-generation.md +692 -0
  259. package/assets/docs/guide/starterkits/background-removal-editor.md +480 -0
  260. package/assets/docs/guide/starterkits/content-moderation.md +863 -0
  261. package/assets/docs/guide/starterkits/creative-automation.md +28 -0
  262. package/assets/docs/guide/starterkits/custom-built-uis.md +26 -0
  263. package/assets/docs/guide/starterkits/customization.md +29 -0
  264. package/assets/docs/guide/starterkits/cutout-lines-editor.md +470 -0
  265. package/assets/docs/guide/starterkits/data-merge.md +850 -0
  266. package/assets/docs/guide/starterkits/design-editor.md +698 -0
  267. package/assets/docs/guide/starterkits/design-generation.md +719 -0
  268. package/assets/docs/guide/starterkits/design-validation.md +808 -0
  269. package/assets/docs/guide/starterkits/editor-ui-configurations.md +14 -0
  270. package/assets/docs/guide/starterkits/export-options.md +724 -0
  271. package/assets/docs/guide/starterkits/export-using-renderer.md +708 -0
  272. package/assets/docs/guide/starterkits/extensibility.md +28 -0
  273. package/assets/docs/guide/starterkits/force-crop-editor.md +675 -0
  274. package/assets/docs/guide/starterkits/form-based-template-adoption.md +522 -0
  275. package/assets/docs/guide/starterkits/getty-images-editor.md +700 -0
  276. package/assets/docs/guide/starterkits/html5-ads-exporter.md +719 -0
  277. package/assets/docs/guide/starterkits/indesign-template-import.md +580 -0
  278. package/assets/docs/guide/starterkits/layouts-editor.md +724 -0
  279. package/assets/docs/guide/starterkits/mobile-ui.md +185 -0
  280. package/assets/docs/guide/starterkits/mockup-editor.md +745 -0
  281. package/assets/docs/guide/starterkits/multi-image-generation.md +542 -0
  282. package/assets/docs/guide/starterkits/page-sizes-editor.md +657 -0
  283. package/assets/docs/guide/starterkits/pexels-image-editor.md +665 -0
  284. package/assets/docs/guide/starterkits/photo-editor.md +755 -0
  285. package/assets/docs/guide/starterkits/photo-ui.md +186 -0
  286. package/assets/docs/guide/starterkits/photobook-ui.md +188 -0
  287. package/assets/docs/guide/starterkits/placeholders.md +678 -0
  288. package/assets/docs/guide/starterkits/player.md +405 -0
  289. package/assets/docs/guide/starterkits/plugins.md +25 -0
  290. package/assets/docs/guide/starterkits/postcard-editor.md +202 -0
  291. package/assets/docs/guide/starterkits/pptx-template-import.md +581 -0
  292. package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +746 -0
  293. package/assets/docs/guide/starterkits/product-editor.md +773 -0
  294. package/assets/docs/guide/starterkits/psd-template-import.md +580 -0
  295. package/assets/docs/guide/starterkits/qr-code-editor.md +470 -0
  296. package/assets/docs/guide/starterkits/single-page-editor.md +661 -0
  297. package/assets/docs/guide/starterkits/start-with-image.md +684 -0
  298. package/assets/docs/guide/starterkits/start-with-video.md +651 -0
  299. package/assets/docs/guide/starterkits/t-shirt-designer.md +742 -0
  300. package/assets/docs/guide/starterkits/templating.md +23 -0
  301. package/assets/docs/guide/starterkits/theming.md +662 -0
  302. package/assets/docs/guide/starterkits/translation-internationalization.md +662 -0
  303. package/assets/docs/guide/starterkits/unsplash-editor.md +839 -0
  304. package/assets/docs/guide/starterkits/vectorizer-editor.md +466 -0
  305. package/assets/docs/guide/starterkits/version-history.md +745 -0
  306. package/assets/docs/guide/starterkits/video-animations.md +853 -0
  307. package/assets/docs/guide/starterkits/video-captions.md +884 -0
  308. package/assets/docs/guide/starterkits/video-editing.md +25 -0
  309. package/assets/docs/guide/starterkits/video-editor.md +696 -0
  310. package/assets/docs/guide/starterkits/video-export-options.md +676 -0
  311. package/assets/docs/guide/starterkits/viewer.md +400 -0
  312. package/assets/docs/guide/starterkits.md +41 -0
  313. package/assets/docs/guide/stickers-and-shapes/combine.md +743 -0
  314. package/assets/docs/guide/stickers-and-shapes/create-cutout.md +425 -0
  315. package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +794 -0
  316. package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +290 -0
  317. package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +211 -0
  318. package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +362 -0
  319. package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +208 -0
  320. package/assets/docs/guide/stickers.md +21 -0
  321. package/assets/docs/guide/text/add.md +641 -0
  322. package/assets/docs/guide/text/adjust-spacing.md +288 -0
  323. package/assets/docs/guide/text/auto-size.md +404 -0
  324. package/assets/docs/guide/text/custom-fonts.md +401 -0
  325. package/assets/docs/guide/text/decorations.md +330 -0
  326. package/assets/docs/guide/text/edit.md +458 -0
  327. package/assets/docs/guide/text/effects.md +244 -0
  328. package/assets/docs/guide/text/emojis.md +310 -0
  329. package/assets/docs/guide/text/enumerations.md +258 -0
  330. package/assets/docs/guide/text/language-support.md +604 -0
  331. package/assets/docs/guide/text/overview.md +14 -0
  332. package/assets/docs/guide/text/styling.md +390 -0
  333. package/assets/docs/guide/text/text-designs.md +834 -0
  334. package/assets/docs/guide/text.md +33 -0
  335. package/assets/docs/guide/to-v1-10.md +131 -0
  336. package/assets/docs/guide/to-v1-13.md +165 -0
  337. package/assets/docs/guide/to-v1-19.md +315 -0
  338. package/assets/docs/guide/to-v1-32.md +110 -0
  339. package/assets/docs/guide/to-v1-69.md +468 -0
  340. package/assets/docs/guide/to-v1-72.md +193 -0
  341. package/assets/docs/guide/upgrade.md +25 -0
  342. package/assets/docs/guide/use-templates/apply-template.md +279 -0
  343. package/assets/docs/guide/use-templates/generate.md +405 -0
  344. package/assets/docs/guide/use-templates/library.md +450 -0
  345. package/assets/docs/guide/use-templates/overview.md +20 -0
  346. package/assets/docs/guide/use-templates/programmatic.md +482 -0
  347. package/assets/docs/guide/use-templates/replace-content.md +399 -0
  348. package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +428 -0
  349. package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +337 -0
  350. package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +853 -0
  351. package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +1045 -0
  352. package/assets/docs/guide/user-interface/ai-integration/image-generation.md +641 -0
  353. package/assets/docs/guide/user-interface/ai-integration/integrate.md +966 -0
  354. package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +99 -0
  355. package/assets/docs/guide/user-interface/ai-integration/text-generation.md +498 -0
  356. package/assets/docs/guide/user-interface/ai-integration/video-generation.md +493 -0
  357. package/assets/docs/guide/user-interface/ai-integration.md +30 -0
  358. package/assets/docs/guide/user-interface/appearance/change-ui-font.md +316 -0
  359. package/assets/docs/guide/user-interface/appearance/custom-labels.md +509 -0
  360. package/assets/docs/guide/user-interface/appearance/icons.md +373 -0
  361. package/assets/docs/guide/user-interface/appearance/theming.md +665 -0
  362. package/assets/docs/guide/user-interface/appearance.md +23 -0
  363. package/assets/docs/guide/user-interface/build-your-own-ui.md +620 -0
  364. package/assets/docs/guide/user-interface/customization/canvas-menu.md +412 -0
  365. package/assets/docs/guide/user-interface/customization/canvas.md +281 -0
  366. package/assets/docs/guide/user-interface/customization/color-palette.md +413 -0
  367. package/assets/docs/guide/user-interface/customization/crop-presets.md +384 -0
  368. package/assets/docs/guide/user-interface/customization/disable-or-enable.md +676 -0
  369. package/assets/docs/guide/user-interface/customization/dock.md +399 -0
  370. package/assets/docs/guide/user-interface/customization/force-crop.md +289 -0
  371. package/assets/docs/guide/user-interface/customization/inspector-bar.md +371 -0
  372. package/assets/docs/guide/user-interface/customization/navigation-bar.md +516 -0
  373. package/assets/docs/guide/user-interface/customization/page-format.md +436 -0
  374. package/assets/docs/guide/user-interface/customization/panel.md +605 -0
  375. package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +531 -0
  376. package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +358 -0
  377. package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +374 -0
  378. package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +323 -0
  379. package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +294 -0
  380. package/assets/docs/guide/user-interface/customization/quick-start.md +12 -0
  381. package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +519 -0
  382. package/assets/docs/guide/user-interface/customization/reference/component-reference.md +333 -0
  383. package/assets/docs/guide/user-interface/customization/reference.md +12 -0
  384. package/assets/docs/guide/user-interface/customization.md +39 -0
  385. package/assets/docs/guide/user-interface/localization.md +633 -0
  386. package/assets/docs/guide/user-interface/overview.md +167 -0
  387. package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +411 -0
  388. package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +721 -0
  389. package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +331 -0
  390. package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +553 -0
  391. package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +672 -0
  392. package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +415 -0
  393. package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +521 -0
  394. package/assets/docs/guide/user-interface/ui-extensions.md +26 -0
  395. package/assets/docs/guide/user-interface.md +25 -0
  396. package/assets/docs/guide/what-is-cesdk.md +319 -0
  397. package/assets/docs/handbook/SKILL.md +521 -0
  398. package/assets/prompts/evals-assetGenerate.md +12 -0
  399. package/assets/prompts/evals-brutalistCore.md +34 -0
  400. package/assets/prompts/evals-danskCatalogue.md +31 -0
  401. package/assets/prompts/evals-exportRoundTrip.md +12 -0
  402. package/assets/prompts/evals-inspectPriorCode.md +16 -0
  403. package/assets/prompts/evals-listProjectFiles.md +6 -0
  404. package/assets/prompts/evals-readAndExplainScript.md +6 -0
  405. package/assets/prompts/evals-resumeAcrossRestart.md +15 -0
  406. package/assets/prompts/evals-rewindRecovery.md +10 -0
  407. package/assets/prompts/evals-searchAcrossFiles.md +6 -0
  408. package/assets/prompts/evals-weddingCard.md +20 -0
  409. package/assets/prompts/explain.md +6 -0
  410. package/assets/prompts/review.md +6 -0
  411. package/dist/assets/inline.generated.d.ts +2 -0
  412. package/dist/assets/inline.generated.d.ts.map +1 -0
  413. package/dist/assets/inline.generated.js +413 -0
  414. package/dist/assets/inline.generated.js.map +1 -0
  415. package/dist/assets/load-browser.d.ts +8 -0
  416. package/dist/assets/load-browser.d.ts.map +1 -0
  417. package/dist/assets/load-browser.js +11 -0
  418. package/dist/assets/load-browser.js.map +1 -0
  419. package/dist/assets/load-node.d.ts +8 -0
  420. package/dist/assets/load-node.d.ts.map +1 -0
  421. package/dist/assets/load-node.js +11 -0
  422. package/dist/assets/load-node.js.map +1 -0
  423. package/dist/cli/http.d.ts +2 -0
  424. package/dist/cli/http.d.ts.map +1 -0
  425. package/dist/cli/http.js +231 -0
  426. package/dist/cli/http.js.map +1 -0
  427. package/dist/cli/redirect-console.d.ts +10 -0
  428. package/dist/cli/redirect-console.d.ts.map +1 -0
  429. package/dist/cli/redirect-console.js +18 -0
  430. package/dist/cli/redirect-console.js.map +1 -0
  431. package/dist/cli/resolve-license.d.ts +2 -0
  432. package/dist/cli/resolve-license.d.ts.map +1 -0
  433. package/dist/cli/resolve-license.js +13 -0
  434. package/dist/cli/resolve-license.js.map +1 -0
  435. package/dist/cli/stdio.d.ts +2 -0
  436. package/dist/cli/stdio.d.ts.map +1 -0
  437. package/dist/cli/stdio.js +124 -0
  438. package/dist/cli/stdio.js.map +1 -0
  439. package/dist/cli/trial-license.generated.d.ts +2 -0
  440. package/dist/cli/trial-license.generated.d.ts.map +1 -0
  441. package/dist/cli/trial-license.generated.js +4 -0
  442. package/dist/cli/trial-license.generated.js.map +1 -0
  443. package/dist/cli.d.ts +3 -0
  444. package/dist/cli.d.ts.map +1 -0
  445. package/dist/cli.js +64 -0
  446. package/dist/cli.js.map +1 -0
  447. package/dist/config.d.ts +61 -0
  448. package/dist/config.d.ts.map +1 -0
  449. package/dist/config.js +102 -0
  450. package/dist/config.js.map +1 -0
  451. package/dist/cross-ref.d.ts +2 -0
  452. package/dist/cross-ref.d.ts.map +1 -0
  453. package/dist/cross-ref.js +31 -0
  454. package/dist/cross-ref.js.map +1 -0
  455. package/dist/dashboard/router.d.ts +3 -0
  456. package/dist/dashboard/router.d.ts.map +1 -0
  457. package/dist/dashboard/router.js +19 -0
  458. package/dist/dashboard/router.js.map +1 -0
  459. package/dist/dashboard/spa-assets.generated.d.ts +2 -0
  460. package/dist/dashboard/spa-assets.generated.d.ts.map +1 -0
  461. package/dist/dashboard/spa-assets.generated.js +220 -0
  462. package/dist/dashboard/spa-assets.generated.js.map +1 -0
  463. package/dist/engine/asset-sources.d.ts +17 -0
  464. package/dist/engine/asset-sources.d.ts.map +1 -0
  465. package/dist/engine/asset-sources.js +75 -0
  466. package/dist/engine/asset-sources.js.map +1 -0
  467. package/dist/engine/cesdk-adapter.d.ts +10 -0
  468. package/dist/engine/cesdk-adapter.d.ts.map +1 -0
  469. package/dist/engine/cesdk-adapter.js +19 -0
  470. package/dist/engine/cesdk-adapter.js.map +1 -0
  471. package/dist/engine/index.d.ts +3 -0
  472. package/dist/engine/index.d.ts.map +1 -0
  473. package/dist/engine/index.js +3 -0
  474. package/dist/engine/index.js.map +1 -0
  475. package/dist/engine/mutex.d.ts +5 -0
  476. package/dist/engine/mutex.d.ts.map +1 -0
  477. package/dist/engine/mutex.js +42 -0
  478. package/dist/engine/mutex.js.map +1 -0
  479. package/dist/engine/session.d.ts +50 -0
  480. package/dist/engine/session.d.ts.map +1 -0
  481. package/dist/engine/session.js +95 -0
  482. package/dist/engine/session.js.map +1 -0
  483. package/dist/engine/uri-resolver.d.ts +14 -0
  484. package/dist/engine/uri-resolver.d.ts.map +1 -0
  485. package/dist/engine/uri-resolver.js +12 -0
  486. package/dist/engine/uri-resolver.js.map +1 -0
  487. package/dist/frontmatter.d.ts +15 -0
  488. package/dist/frontmatter.d.ts.map +1 -0
  489. package/dist/frontmatter.js +46 -0
  490. package/dist/frontmatter.js.map +1 -0
  491. package/dist/gateway/hosted-stub.d.ts +6 -0
  492. package/dist/gateway/hosted-stub.d.ts.map +1 -0
  493. package/dist/gateway/hosted-stub.js +11 -0
  494. package/dist/gateway/hosted-stub.js.map +1 -0
  495. package/dist/gateway/index.d.ts +4 -0
  496. package/dist/gateway/index.d.ts.map +1 -0
  497. package/dist/gateway/index.js +4 -0
  498. package/dist/gateway/index.js.map +1 -0
  499. package/dist/gateway/local.d.ts +14 -0
  500. package/dist/gateway/local.d.ts.map +1 -0
  501. package/dist/gateway/local.js +41 -0
  502. package/dist/gateway/local.js.map +1 -0
  503. package/dist/gateway/types.d.ts +24 -0
  504. package/dist/gateway/types.d.ts.map +1 -0
  505. package/dist/gateway/types.js +7 -0
  506. package/dist/gateway/types.js.map +1 -0
  507. package/dist/http/server.d.ts +80 -0
  508. package/dist/http/server.d.ts.map +1 -0
  509. package/dist/http/server.js +183 -0
  510. package/dist/http/server.js.map +1 -0
  511. package/dist/http/session-manager.d.ts +42 -0
  512. package/dist/http/session-manager.d.ts.map +1 -0
  513. package/dist/http/session-manager.js +82 -0
  514. package/dist/http/session-manager.js.map +1 -0
  515. package/dist/http/workspace-auth.d.ts +9 -0
  516. package/dist/http/workspace-auth.d.ts.map +1 -0
  517. package/dist/http/workspace-auth.js +29 -0
  518. package/dist/http/workspace-auth.js.map +1 -0
  519. package/dist/index.d.ts +10 -0
  520. package/dist/index.d.ts.map +1 -0
  521. package/dist/index.js +10 -0
  522. package/dist/index.js.map +1 -0
  523. package/dist/metrics/mount.d.ts +11 -0
  524. package/dist/metrics/mount.d.ts.map +1 -0
  525. package/dist/metrics/mount.js +13 -0
  526. package/dist/metrics/mount.js.map +1 -0
  527. package/dist/metrics/recorder.d.ts +55 -0
  528. package/dist/metrics/recorder.d.ts.map +1 -0
  529. package/dist/metrics/recorder.js +97 -0
  530. package/dist/metrics/recorder.js.map +1 -0
  531. package/dist/revisions/hash.d.ts +7 -0
  532. package/dist/revisions/hash.d.ts.map +1 -0
  533. package/dist/revisions/hash.js +24 -0
  534. package/dist/revisions/hash.js.map +1 -0
  535. package/dist/revisions/index.d.ts +4 -0
  536. package/dist/revisions/index.d.ts.map +1 -0
  537. package/dist/revisions/index.js +4 -0
  538. package/dist/revisions/index.js.map +1 -0
  539. package/dist/revisions/store.d.ts +69 -0
  540. package/dist/revisions/store.d.ts.map +1 -0
  541. package/dist/revisions/store.js +196 -0
  542. package/dist/revisions/store.js.map +1 -0
  543. package/dist/revisions/types.d.ts +39 -0
  544. package/dist/revisions/types.d.ts.map +1 -0
  545. package/dist/revisions/types.js +2 -0
  546. package/dist/revisions/types.js.map +1 -0
  547. package/dist/server.d.ts +51 -0
  548. package/dist/server.d.ts.map +1 -0
  549. package/dist/server.js +175 -0
  550. package/dist/server.js.map +1 -0
  551. package/dist/skill-tools.d.ts +3 -0
  552. package/dist/skill-tools.d.ts.map +1 -0
  553. package/dist/skill-tools.js +105 -0
  554. package/dist/skill-tools.js.map +1 -0
  555. package/dist/test/test/cli/dispatcher.test.d.ts +2 -0
  556. package/dist/test/test/cli/dispatcher.test.d.ts.map +1 -0
  557. package/dist/test/test/cli/dispatcher.test.js +47 -0
  558. package/dist/test/test/cli/dispatcher.test.js.map +1 -0
  559. package/dist/test/test/cross-ref.test.d.ts +2 -0
  560. package/dist/test/test/cross-ref.test.d.ts.map +1 -0
  561. package/dist/test/test/cross-ref.test.js +39 -0
  562. package/dist/test/test/cross-ref.test.js.map +1 -0
  563. package/dist/test/test/engine/session.test.d.ts +2 -0
  564. package/dist/test/test/engine/session.test.d.ts.map +1 -0
  565. package/dist/test/test/engine/session.test.js +144 -0
  566. package/dist/test/test/engine/session.test.js.map +1 -0
  567. package/dist/test/test/engine/uri-resolver.test.d.ts +2 -0
  568. package/dist/test/test/engine/uri-resolver.test.d.ts.map +1 -0
  569. package/dist/test/test/engine/uri-resolver.test.js +38 -0
  570. package/dist/test/test/engine/uri-resolver.test.js.map +1 -0
  571. package/dist/test/test/frontmatter.test.d.ts +2 -0
  572. package/dist/test/test/frontmatter.test.d.ts.map +1 -0
  573. package/dist/test/test/frontmatter.test.js +55 -0
  574. package/dist/test/test/frontmatter.test.js.map +1 -0
  575. package/dist/test/test/gateway/hosted-stub.test.d.ts +2 -0
  576. package/dist/test/test/gateway/hosted-stub.test.d.ts.map +1 -0
  577. package/dist/test/test/gateway/hosted-stub.test.js +11 -0
  578. package/dist/test/test/gateway/hosted-stub.test.js.map +1 -0
  579. package/dist/test/test/gateway/local.test.d.ts +2 -0
  580. package/dist/test/test/gateway/local.test.d.ts.map +1 -0
  581. package/dist/test/test/gateway/local.test.js +29 -0
  582. package/dist/test/test/gateway/local.test.js.map +1 -0
  583. package/dist/test/test/handbook-contract.test.d.ts +2 -0
  584. package/dist/test/test/handbook-contract.test.d.ts.map +1 -0
  585. package/dist/test/test/handbook-contract.test.js +71 -0
  586. package/dist/test/test/handbook-contract.test.js.map +1 -0
  587. package/dist/test/test/http/server.test.d.ts +2 -0
  588. package/dist/test/test/http/server.test.d.ts.map +1 -0
  589. package/dist/test/test/http/server.test.js +245 -0
  590. package/dist/test/test/http/server.test.js.map +1 -0
  591. package/dist/test/test/http/session-manager.test.d.ts +2 -0
  592. package/dist/test/test/http/session-manager.test.d.ts.map +1 -0
  593. package/dist/test/test/http/session-manager.test.js +83 -0
  594. package/dist/test/test/http/session-manager.test.js.map +1 -0
  595. package/dist/test/test/revisions/hash.test.d.ts +2 -0
  596. package/dist/test/test/revisions/hash.test.d.ts.map +1 -0
  597. package/dist/test/test/revisions/hash.test.js +33 -0
  598. package/dist/test/test/revisions/hash.test.js.map +1 -0
  599. package/dist/test/test/revisions/store.test.d.ts +2 -0
  600. package/dist/test/test/revisions/store.test.d.ts.map +1 -0
  601. package/dist/test/test/revisions/store.test.js +245 -0
  602. package/dist/test/test/revisions/store.test.js.map +1 -0
  603. package/dist/test/test/server.test.d.ts +2 -0
  604. package/dist/test/test/server.test.d.ts.map +1 -0
  605. package/dist/test/test/server.test.js +157 -0
  606. package/dist/test/test/server.test.js.map +1 -0
  607. package/dist/test/test/skill-tools.test.d.ts +2 -0
  608. package/dist/test/test/skill-tools.test.d.ts.map +1 -0
  609. package/dist/test/test/skill-tools.test.js +84 -0
  610. package/dist/test/test/skill-tools.test.js.map +1 -0
  611. package/dist/test/test/smoke.test.d.ts +2 -0
  612. package/dist/test/test/smoke.test.d.ts.map +1 -0
  613. package/dist/test/test/smoke.test.js +8 -0
  614. package/dist/test/test/smoke.test.js.map +1 -0
  615. package/dist/test/test/tools/asset-generate.test.d.ts +2 -0
  616. package/dist/test/test/tools/asset-generate.test.d.ts.map +1 -0
  617. package/dist/test/test/tools/asset-generate.test.js +66 -0
  618. package/dist/test/test/tools/asset-generate.test.js.map +1 -0
  619. package/dist/test/test/tools/edit.test.d.ts +2 -0
  620. package/dist/test/test/tools/edit.test.d.ts.map +1 -0
  621. package/dist/test/test/tools/edit.test.js +205 -0
  622. package/dist/test/test/tools/edit.test.js.map +1 -0
  623. package/dist/test/test/tools/export.test.d.ts +2 -0
  624. package/dist/test/test/tools/export.test.d.ts.map +1 -0
  625. package/dist/test/test/tools/export.test.js +144 -0
  626. package/dist/test/test/tools/export.test.js.map +1 -0
  627. package/dist/test/test/tools/history.test.d.ts +2 -0
  628. package/dist/test/test/tools/history.test.d.ts.map +1 -0
  629. package/dist/test/test/tools/history.test.js +29 -0
  630. package/dist/test/test/tools/history.test.js.map +1 -0
  631. package/dist/test/test/tools/inspect.test.d.ts +2 -0
  632. package/dist/test/test/tools/inspect.test.d.ts.map +1 -0
  633. package/dist/test/test/tools/inspect.test.js +62 -0
  634. package/dist/test/test/tools/inspect.test.js.map +1 -0
  635. package/dist/test/test/tools/list.test.d.ts +2 -0
  636. package/dist/test/test/tools/list.test.d.ts.map +1 -0
  637. package/dist/test/test/tools/list.test.js +23 -0
  638. package/dist/test/test/tools/list.test.js.map +1 -0
  639. package/dist/test/test/tools/open-editor.test.d.ts +2 -0
  640. package/dist/test/test/tools/open-editor.test.d.ts.map +1 -0
  641. package/dist/test/test/tools/open-editor.test.js +53 -0
  642. package/dist/test/test/tools/open-editor.test.js.map +1 -0
  643. package/dist/test/test/tools/preview.test.d.ts +2 -0
  644. package/dist/test/test/tools/preview.test.d.ts.map +1 -0
  645. package/dist/test/test/tools/preview.test.js +73 -0
  646. package/dist/test/test/tools/preview.test.js.map +1 -0
  647. package/dist/test/test/tools/rename.test.d.ts +2 -0
  648. package/dist/test/test/tools/rename.test.d.ts.map +1 -0
  649. package/dist/test/test/tools/rename.test.js +17 -0
  650. package/dist/test/test/tools/rename.test.js.map +1 -0
  651. package/dist/test/test/viewer/broadcaster.test.d.ts +2 -0
  652. package/dist/test/test/viewer/broadcaster.test.d.ts.map +1 -0
  653. package/dist/test/test/viewer/broadcaster.test.js +53 -0
  654. package/dist/test/test/viewer/broadcaster.test.js.map +1 -0
  655. package/dist/test/test/viewer/resource-route.test.d.ts +2 -0
  656. package/dist/test/test/viewer/resource-route.test.d.ts.map +1 -0
  657. package/dist/test/test/viewer/resource-route.test.js +70 -0
  658. package/dist/test/test/viewer/resource-route.test.js.map +1 -0
  659. package/dist/test/test/viewer/router.test.d.ts +2 -0
  660. package/dist/test/test/viewer/router.test.d.ts.map +1 -0
  661. package/dist/test/test/viewer/router.test.js +171 -0
  662. package/dist/test/test/viewer/router.test.js.map +1 -0
  663. package/dist/test/test/viewer/url-builder.test.d.ts +2 -0
  664. package/dist/test/test/viewer/url-builder.test.d.ts.map +1 -0
  665. package/dist/test/test/viewer/url-builder.test.js +31 -0
  666. package/dist/test/test/viewer/url-builder.test.js.map +1 -0
  667. package/dist/test/test/workspace/hosted-stub.test.d.ts +2 -0
  668. package/dist/test/test/workspace/hosted-stub.test.d.ts.map +1 -0
  669. package/dist/test/test/workspace/hosted-stub.test.js +30 -0
  670. package/dist/test/test/workspace/hosted-stub.test.js.map +1 -0
  671. package/dist/test/test/workspace/in-memory.test.d.ts +2 -0
  672. package/dist/test/test/workspace/in-memory.test.d.ts.map +1 -0
  673. package/dist/test/test/workspace/in-memory.test.js +4 -0
  674. package/dist/test/test/workspace/in-memory.test.js.map +1 -0
  675. package/dist/test/test/workspace/node-fs.test.d.ts +2 -0
  676. package/dist/test/test/workspace/node-fs.test.d.ts.map +1 -0
  677. package/dist/test/test/workspace/node-fs.test.js +20 -0
  678. package/dist/test/test/workspace/node-fs.test.js.map +1 -0
  679. package/dist/test/test/workspace/shared-contract.d.ts +3 -0
  680. package/dist/test/test/workspace/shared-contract.d.ts.map +1 -0
  681. package/dist/test/test/workspace/shared-contract.js +92 -0
  682. package/dist/test/test/workspace/shared-contract.js.map +1 -0
  683. package/dist/test/tsconfig.test.tsbuildinfo +1 -0
  684. package/dist/test/vitest.config.d.ts +3 -0
  685. package/dist/test/vitest.config.d.ts.map +1 -0
  686. package/dist/test/vitest.config.js +8 -0
  687. package/dist/test/vitest.config.js.map +1 -0
  688. package/dist/tools/asset-generate.d.ts +12 -0
  689. package/dist/tools/asset-generate.d.ts.map +1 -0
  690. package/dist/tools/asset-generate.js +112 -0
  691. package/dist/tools/asset-generate.js.map +1 -0
  692. package/dist/tools/asset-search.d.ts +10 -0
  693. package/dist/tools/asset-search.d.ts.map +1 -0
  694. package/dist/tools/asset-search.js +120 -0
  695. package/dist/tools/asset-search.js.map +1 -0
  696. package/dist/tools/content-types.d.ts +11 -0
  697. package/dist/tools/content-types.d.ts.map +1 -0
  698. package/dist/tools/content-types.js +2 -0
  699. package/dist/tools/content-types.js.map +1 -0
  700. package/dist/tools/edit.d.ts +29 -0
  701. package/dist/tools/edit.d.ts.map +1 -0
  702. package/dist/tools/edit.js +165 -0
  703. package/dist/tools/edit.js.map +1 -0
  704. package/dist/tools/engine.d.ts +31 -0
  705. package/dist/tools/engine.d.ts.map +1 -0
  706. package/dist/tools/engine.js +59 -0
  707. package/dist/tools/engine.js.map +1 -0
  708. package/dist/tools/export.d.ts +19 -0
  709. package/dist/tools/export.d.ts.map +1 -0
  710. package/dist/tools/export.js +179 -0
  711. package/dist/tools/export.js.map +1 -0
  712. package/dist/tools/history.d.ts +7 -0
  713. package/dist/tools/history.d.ts.map +1 -0
  714. package/dist/tools/history.js +54 -0
  715. package/dist/tools/history.js.map +1 -0
  716. package/dist/tools/index.d.ts +35 -0
  717. package/dist/tools/index.d.ts.map +1 -0
  718. package/dist/tools/index.js +72 -0
  719. package/dist/tools/index.js.map +1 -0
  720. package/dist/tools/inspect.d.ts +7 -0
  721. package/dist/tools/inspect.d.ts.map +1 -0
  722. package/dist/tools/inspect.js +80 -0
  723. package/dist/tools/inspect.js.map +1 -0
  724. package/dist/tools/list.d.ts +7 -0
  725. package/dist/tools/list.d.ts.map +1 -0
  726. package/dist/tools/list.js +18 -0
  727. package/dist/tools/list.js.map +1 -0
  728. package/dist/tools/metrics.d.ts +11 -0
  729. package/dist/tools/metrics.d.ts.map +1 -0
  730. package/dist/tools/metrics.js +28 -0
  731. package/dist/tools/metrics.js.map +1 -0
  732. package/dist/tools/open-editor.d.ts +10 -0
  733. package/dist/tools/open-editor.d.ts.map +1 -0
  734. package/dist/tools/open-editor.js +62 -0
  735. package/dist/tools/open-editor.js.map +1 -0
  736. package/dist/tools/preview.d.ts +12 -0
  737. package/dist/tools/preview.d.ts.map +1 -0
  738. package/dist/tools/preview.js +104 -0
  739. package/dist/tools/preview.js.map +1 -0
  740. package/dist/tools/rename.d.ts +7 -0
  741. package/dist/tools/rename.d.ts.map +1 -0
  742. package/dist/tools/rename.js +39 -0
  743. package/dist/tools/rename.js.map +1 -0
  744. package/dist/tools/result.d.ts +12 -0
  745. package/dist/tools/result.d.ts.map +1 -0
  746. package/dist/tools/result.js +55 -0
  747. package/dist/tools/result.js.map +1 -0
  748. package/dist/tools/save.d.ts +19 -0
  749. package/dist/tools/save.d.ts.map +1 -0
  750. package/dist/tools/save.js +117 -0
  751. package/dist/tools/save.js.map +1 -0
  752. package/dist/viewer/broadcaster.d.ts +13 -0
  753. package/dist/viewer/broadcaster.d.ts.map +1 -0
  754. package/dist/viewer/broadcaster.js +44 -0
  755. package/dist/viewer/broadcaster.js.map +1 -0
  756. package/dist/viewer/index.d.ts +7 -0
  757. package/dist/viewer/index.d.ts.map +1 -0
  758. package/dist/viewer/index.js +7 -0
  759. package/dist/viewer/index.js.map +1 -0
  760. package/dist/viewer/listener.d.ts +16 -0
  761. package/dist/viewer/listener.d.ts.map +1 -0
  762. package/dist/viewer/listener.js +30 -0
  763. package/dist/viewer/listener.js.map +1 -0
  764. package/dist/viewer/presigned-r2-url-builder.d.ts +30 -0
  765. package/dist/viewer/presigned-r2-url-builder.d.ts.map +1 -0
  766. package/dist/viewer/presigned-r2-url-builder.js +40 -0
  767. package/dist/viewer/presigned-r2-url-builder.js.map +1 -0
  768. package/dist/viewer/resource-route.d.ts +9 -0
  769. package/dist/viewer/resource-route.d.ts.map +1 -0
  770. package/dist/viewer/resource-route.js +59 -0
  771. package/dist/viewer/resource-route.js.map +1 -0
  772. package/dist/viewer/router.d.ts +20 -0
  773. package/dist/viewer/router.d.ts.map +1 -0
  774. package/dist/viewer/router.js +142 -0
  775. package/dist/viewer/router.js.map +1 -0
  776. package/dist/viewer/session-mount.d.ts +10 -0
  777. package/dist/viewer/session-mount.d.ts.map +1 -0
  778. package/dist/viewer/session-mount.js +24 -0
  779. package/dist/viewer/session-mount.js.map +1 -0
  780. package/dist/viewer/spa-assets.generated.d.ts +2 -0
  781. package/dist/viewer/spa-assets.generated.d.ts.map +1 -0
  782. package/dist/viewer/spa-assets.generated.js +989 -0
  783. package/dist/viewer/spa-assets.generated.js.map +1 -0
  784. package/dist/viewer/url-builder.d.ts +48 -0
  785. package/dist/viewer/url-builder.d.ts.map +1 -0
  786. package/dist/viewer/url-builder.js +38 -0
  787. package/dist/viewer/url-builder.js.map +1 -0
  788. package/dist/workspace/hosted-stub.d.ts +28 -0
  789. package/dist/workspace/hosted-stub.d.ts.map +1 -0
  790. package/dist/workspace/hosted-stub.js +44 -0
  791. package/dist/workspace/hosted-stub.js.map +1 -0
  792. package/dist/workspace/in-memory.d.ts +23 -0
  793. package/dist/workspace/in-memory.d.ts.map +1 -0
  794. package/dist/workspace/in-memory.js +161 -0
  795. package/dist/workspace/in-memory.js.map +1 -0
  796. package/dist/workspace/index.d.ts +6 -0
  797. package/dist/workspace/index.d.ts.map +1 -0
  798. package/dist/workspace/index.js +6 -0
  799. package/dist/workspace/index.js.map +1 -0
  800. package/dist/workspace/node-fs.d.ts +23 -0
  801. package/dist/workspace/node-fs.d.ts.map +1 -0
  802. package/dist/workspace/node-fs.js +90 -0
  803. package/dist/workspace/node-fs.js.map +1 -0
  804. package/dist/workspace/s3.d.ts +32 -0
  805. package/dist/workspace/s3.d.ts.map +1 -0
  806. package/dist/workspace/s3.js +191 -0
  807. package/dist/workspace/s3.js.map +1 -0
  808. package/dist/workspace/scoped.d.ts +32 -0
  809. package/dist/workspace/scoped.d.ts.map +1 -0
  810. package/dist/workspace/scoped.js +76 -0
  811. package/dist/workspace/scoped.js.map +1 -0
  812. package/dist/workspace/types.d.ts +75 -0
  813. package/dist/workspace/types.d.ts.map +1 -0
  814. package/dist/workspace/types.js +18 -0
  815. package/dist/workspace/types.js.map +1 -0
  816. package/package.json +80 -0
@@ -0,0 +1,966 @@
1
+ > This is one page of the CE.SDK Vanilla JS/TS documentation. For a complete overview, see the [Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
2
+
3
+ **Navigation:** [Guides](./guides.md) > [AI Integration](./user-interface/ai-integration.md) > [Integrate AI Into CE.SDK](./user-interface/ai-integration/integrate.md)
4
+
5
+ ---
6
+
7
+ Add AI-powered generation capabilities to your CE.SDK application for generating images, videos, audio, and text using the `@imgly/plugin-ai-apps-web` package.
8
+
9
+ ![Integrate AI Into CE.SDK example showing the editor with AI capabilities](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
10
+
11
+ > **Reading time:** 15 minutes
12
+ >
13
+ > **Resources:**
14
+ >
15
+ > - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
16
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-user-interface-ai-integration-browser)
17
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-user-interface-ai-integration-browser)
18
+ > - [Live demo](https://img.ly/docs/cesdk/examples/guides-user-interface-ai-integration-browser/)
19
+
20
+ > **Looking for the easy path?:** The [IMG.LY AI Gateway](./user-interface/ai-integration/gateway-provider.md) is the fastest way to add AI generation to CE.SDK. We handle proxying, authentication, model routing, and billing — you only need a JWT-minting endpoint and a single gateway URL. The rest of this guide covers configuring upstream providers directly, which is useful when you need full control or already run your own proxy.
21
+
22
+ This tutorial will guide you through integrating AI-powered generation capabilities into your CreativeEditor SDK application using the `@imgly/plugin-ai-apps-web` package. You'll learn how to set up various AI providers for generating images, videos, audio, and text.
23
+
24
+ ```typescript file=@cesdk_web_examples/guides-user-interface-ai-integration-browser/browser.ts reference-only
25
+ import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
26
+
27
+ import {
28
+ BlurAssetSource,
29
+ CaptionPresetsAssetSource,
30
+ ColorPaletteAssetSource,
31
+ CropPresetsAssetSource,
32
+ DemoAssetSources,
33
+ EffectsAssetSource,
34
+ FiltersAssetSource,
35
+ PagePresetsAssetSource,
36
+ StickerAssetSource,
37
+ TextAssetSource,
38
+ TextComponentAssetSource,
39
+ TypefaceAssetSource,
40
+ UploadAssetSources,
41
+ VectorShapeAssetSource
42
+ } from '@cesdk/cesdk-js/plugins';
43
+ import { VideoEditorConfig } from './video-editor/plugin';
44
+ import AiApps from '@imgly/plugin-ai-apps-web';
45
+
46
+ // Import providers from individual AI generation packages
47
+ import Elevenlabs from '@imgly/plugin-ai-audio-generation-web/elevenlabs';
48
+ import FalAiImage from '@imgly/plugin-ai-image-generation-web/fal-ai';
49
+ import OpenAiImage from '@imgly/plugin-ai-image-generation-web/open-ai';
50
+ import Anthropic from '@imgly/plugin-ai-text-generation-web/anthropic';
51
+ import FalAiVideo from '@imgly/plugin-ai-video-generation-web/fal-ai';
52
+
53
+ // Import middleware utilities
54
+ import { uploadMiddleware } from '@imgly/plugin-ai-generation-web';
55
+
56
+ import packageJson from './package.json';
57
+
58
+ /**
59
+ * Upload to your image storage server.
60
+ * Replace this mock with your actual storage API call.
61
+ */
62
+ async function uploadToYourStorageServer(imageUrl: string) {
63
+ // In production, upload the image to your server:
64
+ // const response = await fetch('https://your-server.com/api/store-image', {
65
+ // method: 'POST',
66
+ // headers: { 'Content-Type': 'application/json' },
67
+ // body: JSON.stringify({
68
+ // imageUrl,
69
+ // metadata: { source: 'ai-generation' }
70
+ // })
71
+ // });
72
+ // return await response.json();
73
+
74
+ // Mock: Return a fake response
75
+ return { permanentUrl: imageUrl };
76
+ }
77
+
78
+ /**
79
+ * CE.SDK Plugin: AI Integration Guide
80
+ *
81
+ * Demonstrates how to integrate AI-powered generation capabilities:
82
+ * - Text generation and transformation (Anthropic)
83
+ * - Image generation (fal.ai, OpenAI)
84
+ * - Video generation (fal.ai)
85
+ * - Audio generation (ElevenLabs)
86
+ * - Using middleware for custom processing
87
+ * - Configuring UI integration
88
+ */
89
+ class Example implements EditorPlugin {
90
+ name = packageJson.name;
91
+
92
+ version = packageJson.version;
93
+
94
+ async initialize({ cesdk }: EditorPluginContext): Promise<void> {
95
+ if (!cesdk) {
96
+ throw new Error('CE.SDK instance is required for this plugin');
97
+ }
98
+
99
+ await cesdk.addPlugin(new VideoEditorConfig());
100
+
101
+ // Add asset source plugins
102
+ await cesdk.addPlugin(new BlurAssetSource());
103
+ await cesdk.addPlugin(new CaptionPresetsAssetSource());
104
+ await cesdk.addPlugin(new ColorPaletteAssetSource());
105
+ await cesdk.addPlugin(new CropPresetsAssetSource());
106
+ await cesdk.addPlugin(
107
+ new UploadAssetSources({
108
+ include: [
109
+ 'ly.img.image.upload',
110
+ 'ly.img.video.upload',
111
+ 'ly.img.audio.upload'
112
+ ]
113
+ })
114
+ );
115
+ await cesdk.addPlugin(
116
+ new DemoAssetSources({
117
+ include: [
118
+ 'ly.img.templates.video.*',
119
+ 'ly.img.image.*',
120
+ 'ly.img.audio.*',
121
+ 'ly.img.video.*'
122
+ ]
123
+ })
124
+ );
125
+ await cesdk.addPlugin(new EffectsAssetSource());
126
+ await cesdk.addPlugin(new FiltersAssetSource());
127
+ await cesdk.addPlugin(
128
+ new PagePresetsAssetSource({
129
+ include: [
130
+ 'ly.img.page.presets.instagram.*',
131
+ 'ly.img.page.presets.facebook.*',
132
+ 'ly.img.page.presets.x.*',
133
+ 'ly.img.page.presets.linkedin.*',
134
+ 'ly.img.page.presets.pinterest.*',
135
+ 'ly.img.page.presets.tiktok.*',
136
+ 'ly.img.page.presets.youtube.*',
137
+ 'ly.img.page.presets.video.*'
138
+ ]
139
+ })
140
+ );
141
+ await cesdk.addPlugin(new StickerAssetSource());
142
+ await cesdk.addPlugin(new TextAssetSource());
143
+ await cesdk.addPlugin(new TextComponentAssetSource());
144
+ await cesdk.addPlugin(new TypefaceAssetSource());
145
+ await cesdk.addPlugin(new VectorShapeAssetSource());
146
+
147
+ await cesdk.actions.run('scene.create', {
148
+ page: {
149
+ sourceId: 'ly.img.page.presets',
150
+ assetId: 'ly.img.page.presets.instagram.story',
151
+ color: { r: 0, g: 0, b: 0, a: 1 }
152
+ }
153
+
154
+ // Configure AI Apps dock position
155
+ cesdk.ui.setComponentOrder({ in: 'ly.img.dock' }, [
156
+ 'ly.img.ai.apps.dock',
157
+ ...cesdk.ui.getComponentOrder({ in: 'ly.img.dock' })
158
+ ]);
159
+
160
+ // Add AI options to canvas menu
161
+ cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.menu' }, [
162
+ 'ly.img.ai.text.canvasMenu',
163
+ 'ly.img.ai.image.canvasMenu',
164
+ ...cesdk.ui.getComponentOrder({ in: 'ly.img.canvas.menu' })
165
+ ]);
166
+
167
+ // Add the AI Apps plugin with all providers
168
+ cesdk.addPlugin(
169
+ AiApps({
170
+ // IMPORTANT: dryRun mode simulates generation without API calls
171
+ // Perfect for testing and development - remove for production use
172
+ dryRun: true,
173
+ providers: {
174
+ // Text generation and transformation
175
+ text2text: Anthropic.AnthropicProvider({
176
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
177
+ headers: {
178
+ 'x-client-version': '1.0.0',
179
+ 'x-request-source': 'cesdk-tutorial'
180
+ },
181
+ // Optional: Configure default property values
182
+ properties: {
183
+ temperature: { default: 0.7 },
184
+ maxTokens: { default: 500 }
185
+ }
186
+ }),
187
+
188
+ // Image generation - Multiple providers with selection UI
189
+ text2image: [
190
+ FalAiImage.RecraftV3({
191
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
192
+ headers: {
193
+ 'x-client-version': '1.0.0',
194
+ 'x-request-source': 'cesdk-tutorial'
195
+ },
196
+ // Add upload middleware to store generated images on your server
197
+ middleware: [
198
+ uploadMiddleware(async (output) => {
199
+ // Upload the generated image to your server
200
+ const result = await uploadToYourStorageServer(output.url);
201
+
202
+ // Return the output with your server's URL
203
+ return {
204
+ ...output,
205
+ url: result.permanentUrl
206
+ };
207
+ })
208
+ ]
209
+ }),
210
+ // Alternative with icon style support
211
+ FalAiImage.Recraft20b({
212
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
213
+ headers: {
214
+ 'x-client-version': '1.0.0',
215
+ 'x-request-source': 'cesdk-tutorial'
216
+ },
217
+ // Configure dynamic defaults based on style type
218
+ properties: {
219
+ style: { default: 'broken_line' },
220
+ image_size: { default: 'square_hd' }
221
+ }
222
+ }),
223
+ // Additional image provider for user selection
224
+ OpenAiImage.GptImage1.Text2Image({
225
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
226
+ headers: {
227
+ 'x-api-key': 'your-key',
228
+ 'x-request-source': 'cesdk-tutorial'
229
+ }
230
+ })
231
+ ],
232
+
233
+ // Image-to-image transformation
234
+ image2image: FalAiImage.GeminiFlashEdit({
235
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
236
+ headers: {
237
+ 'x-client-version': '1.0.0',
238
+ 'x-request-source': 'cesdk-tutorial'
239
+ }
240
+ }),
241
+
242
+ // Video generation - Multiple providers
243
+ text2video: [
244
+ FalAiVideo.MinimaxVideo01Live({
245
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
246
+ headers: {
247
+ 'x-client-version': '1.0.0',
248
+ 'x-request-source': 'cesdk-tutorial'
249
+ }
250
+ }),
251
+ FalAiVideo.PixverseV35TextToVideo({
252
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
253
+ headers: {
254
+ 'x-client-version': '1.0.0',
255
+ 'x-request-source': 'cesdk-tutorial'
256
+ }
257
+ })
258
+ ],
259
+ image2video: FalAiVideo.MinimaxVideo01LiveImageToVideo({
260
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
261
+ headers: {
262
+ 'x-client-version': '1.0.0',
263
+ 'x-request-source': 'cesdk-tutorial'
264
+ }
265
+ }),
266
+
267
+ // Audio generation
268
+ text2speech: Elevenlabs.ElevenMultilingualV2({
269
+ proxyUrl: 'https://your-server.com/api/elevenlabs-proxy',
270
+ headers: {
271
+ 'x-client-version': '1.0.0',
272
+ 'x-request-source': 'cesdk-tutorial'
273
+ }
274
+ }),
275
+ text2sound: Elevenlabs.ElevenSoundEffects({
276
+ proxyUrl: 'https://your-server.com/api/elevenlabs-proxy',
277
+ headers: {
278
+ 'x-client-version': '1.0.0',
279
+ 'x-request-source': 'cesdk-tutorial'
280
+ }
281
+ })
282
+ }
283
+ })
284
+ );
285
+
286
+ // Control AI features with Feature API
287
+ // Disable specific quick actions
288
+ cesdk.feature.set(
289
+ 'ly.img.plugin-ai-image-generation-web.quickAction.editImage',
290
+ () => false
291
+ );
292
+ cesdk.feature.set(
293
+ 'ly.img.plugin-ai-text-generation-web.quickAction.translate',
294
+ () => false
295
+ );
296
+
297
+ // Control input types for image/video generation
298
+ cesdk.feature.set(
299
+ 'ly.img.plugin-ai-image-generation-web.fromText',
300
+ () => true
301
+ );
302
+ cesdk.feature.set(
303
+ 'ly.img.plugin-ai-image-generation-web.fromImage',
304
+ () => false
305
+ );
306
+
307
+ // Hide provider selection dropdowns
308
+ cesdk.feature.set(
309
+ 'ly.img.plugin-ai-image-generation-web.providerSelect',
310
+ () => false
311
+ );
312
+
313
+ // Control style groups for specific providers
314
+ cesdk.feature.set(
315
+ 'ly.img.plugin-ai-image-generation-web.fal-ai/recraft-v3.style.vector',
316
+ () => false
317
+ );
318
+
319
+ console.log('AI integration guide initialized.');
320
+ }
321
+ }
322
+
323
+ export default Example;
324
+ ```
325
+
326
+ This guide covers installing AI generation packages, initializing CE.SDK, configuring the AI dock and canvas menu, setting up text, image, video, and audio providers, implementing middleware for custom processing, controlling features with the Feature API, and setting up proxy servers for secure API communication.
327
+
328
+ ## Prerequisites
329
+
330
+ - Basic knowledge of JavaScript/TypeScript and React
331
+ - Familiarity with CreativeEditor SDK
332
+ - API keys for AI services (Anthropic, fal.ai, ElevenLabs, etc.)
333
+
334
+ ## 1. Project Setup
335
+
336
+ First, set up your project and install the necessary packages:
337
+
338
+ ```bash
339
+ # Initialize a new project or use an existing one
340
+ npm install @cesdk/cesdk-js@$UBQ_VERSION$
341
+ npm install @imgly/plugin-ai-apps-web@$UBQ_VERSION$
342
+
343
+ # Install individual AI generation packages as needed
344
+ npm install @imgly/plugin-ai-image-generation-web@$UBQ_VERSION$
345
+ npm install @imgly/plugin-ai-video-generation-web@$UBQ_VERSION$
346
+ npm install @imgly/plugin-ai-audio-generation-web@$UBQ_VERSION$
347
+ npm install @imgly/plugin-ai-text-generation-web@$UBQ_VERSION$
348
+ ```
349
+
350
+ Import the providers from their respective packages:
351
+
352
+ ```typescript highlight=highlight-imports
353
+ // Import providers from individual AI generation packages
354
+ import Elevenlabs from '@imgly/plugin-ai-audio-generation-web/elevenlabs';
355
+ import FalAiImage from '@imgly/plugin-ai-image-generation-web/fal-ai';
356
+ import OpenAiImage from '@imgly/plugin-ai-image-generation-web/open-ai';
357
+ import Anthropic from '@imgly/plugin-ai-text-generation-web/anthropic';
358
+ import FalAiVideo from '@imgly/plugin-ai-video-generation-web/fal-ai';
359
+
360
+ // Import middleware utilities
361
+ import { uploadMiddleware } from '@imgly/plugin-ai-generation-web';
362
+ ```
363
+
364
+ ## 2. Initialize CE.SDK
365
+
366
+ Initialize CE.SDK to utilize all AI capabilities:
367
+
368
+ ```typescript highlight=highlight-setup
369
+ await cesdk.addPlugin(new VideoEditorConfig());
370
+
371
+ // Add asset source plugins
372
+ await cesdk.addPlugin(new BlurAssetSource());
373
+ await cesdk.addPlugin(new CaptionPresetsAssetSource());
374
+ await cesdk.addPlugin(new ColorPaletteAssetSource());
375
+ await cesdk.addPlugin(new CropPresetsAssetSource());
376
+ await cesdk.addPlugin(
377
+ new UploadAssetSources({
378
+ include: [
379
+ 'ly.img.image.upload',
380
+ 'ly.img.video.upload',
381
+ 'ly.img.audio.upload'
382
+ ]
383
+ })
384
+ );
385
+ await cesdk.addPlugin(
386
+ new DemoAssetSources({
387
+ include: [
388
+ 'ly.img.templates.video.*',
389
+ 'ly.img.image.*',
390
+ 'ly.img.audio.*',
391
+ 'ly.img.video.*'
392
+ ]
393
+ })
394
+ );
395
+ await cesdk.addPlugin(new EffectsAssetSource());
396
+ await cesdk.addPlugin(new FiltersAssetSource());
397
+ await cesdk.addPlugin(
398
+ new PagePresetsAssetSource({
399
+ include: [
400
+ 'ly.img.page.presets.instagram.*',
401
+ 'ly.img.page.presets.facebook.*',
402
+ 'ly.img.page.presets.x.*',
403
+ 'ly.img.page.presets.linkedin.*',
404
+ 'ly.img.page.presets.pinterest.*',
405
+ 'ly.img.page.presets.tiktok.*',
406
+ 'ly.img.page.presets.youtube.*',
407
+ 'ly.img.page.presets.video.*'
408
+ ]
409
+ })
410
+ );
411
+ await cesdk.addPlugin(new StickerAssetSource());
412
+ await cesdk.addPlugin(new TextAssetSource());
413
+ await cesdk.addPlugin(new TextComponentAssetSource());
414
+ await cesdk.addPlugin(new TypefaceAssetSource());
415
+ await cesdk.addPlugin(new VectorShapeAssetSource());
416
+
417
+ await cesdk.actions.run('scene.create', {
418
+ page: {
419
+ sourceId: 'ly.img.page.presets',
420
+ assetId: 'ly.img.page.presets.instagram.story',
421
+ color: { r: 0, g: 0, b: 0, a: 1 }
422
+ }
423
+ ```
424
+
425
+ ## 3. Configure UI Components
426
+
427
+ ### AI Dock Button
428
+
429
+ The main entry point for AI features is the AI dock button. Position it at the beginning of the dock:
430
+
431
+ ```typescript highlight=highlight-dock-position
432
+ // Configure AI Apps dock position
433
+ cesdk.ui.setComponentOrder({ in: 'ly.img.dock' }, [
434
+ 'ly.img.ai.apps.dock',
435
+ ...cesdk.ui.getComponentOrder({ in: 'ly.img.dock' })
436
+ ]);
437
+ ```
438
+
439
+ ### Canvas Menu Options
440
+
441
+ AI text and image transformations are available in the canvas context menu:
442
+
443
+ ```typescript highlight=highlight-canvas-menu
444
+ // Add AI options to canvas menu
445
+ cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.menu' }, [
446
+ 'ly.img.ai.text.canvasMenu',
447
+ 'ly.img.ai.image.canvasMenu',
448
+ ...cesdk.ui.getComponentOrder({ in: 'ly.img.canvas.menu' })
449
+ ]);
450
+ ```
451
+
452
+ ## 4. Add the AI Apps Plugin
453
+
454
+ Configure the AI Apps plugin with all providers:
455
+
456
+ ```typescript highlight=highlight-add-plugin
457
+ // Add the AI Apps plugin with all providers
458
+ cesdk.addPlugin(
459
+ AiApps({
460
+ // IMPORTANT: dryRun mode simulates generation without API calls
461
+ // Perfect for testing and development - remove for production use
462
+ dryRun: true,
463
+ providers: {
464
+ // Text generation and transformation
465
+ text2text: Anthropic.AnthropicProvider({
466
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
467
+ headers: {
468
+ 'x-client-version': '1.0.0',
469
+ 'x-request-source': 'cesdk-tutorial'
470
+ },
471
+ // Optional: Configure default property values
472
+ properties: {
473
+ temperature: { default: 0.7 },
474
+ maxTokens: { default: 500 }
475
+ }
476
+ }),
477
+
478
+ // Image generation - Multiple providers with selection UI
479
+ text2image: [
480
+ FalAiImage.RecraftV3({
481
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
482
+ headers: {
483
+ 'x-client-version': '1.0.0',
484
+ 'x-request-source': 'cesdk-tutorial'
485
+ },
486
+ // Add upload middleware to store generated images on your server
487
+ middleware: [
488
+ uploadMiddleware(async (output) => {
489
+ // Upload the generated image to your server
490
+ const result = await uploadToYourStorageServer(output.url);
491
+
492
+ // Return the output with your server's URL
493
+ return {
494
+ ...output,
495
+ url: result.permanentUrl
496
+ };
497
+ })
498
+ ]
499
+ }),
500
+ // Alternative with icon style support
501
+ FalAiImage.Recraft20b({
502
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
503
+ headers: {
504
+ 'x-client-version': '1.0.0',
505
+ 'x-request-source': 'cesdk-tutorial'
506
+ },
507
+ // Configure dynamic defaults based on style type
508
+ properties: {
509
+ style: { default: 'broken_line' },
510
+ image_size: { default: 'square_hd' }
511
+ }
512
+ }),
513
+ // Additional image provider for user selection
514
+ OpenAiImage.GptImage1.Text2Image({
515
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
516
+ headers: {
517
+ 'x-api-key': 'your-key',
518
+ 'x-request-source': 'cesdk-tutorial'
519
+ }
520
+ })
521
+ ],
522
+
523
+ // Image-to-image transformation
524
+ image2image: FalAiImage.GeminiFlashEdit({
525
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
526
+ headers: {
527
+ 'x-client-version': '1.0.0',
528
+ 'x-request-source': 'cesdk-tutorial'
529
+ }
530
+ }),
531
+
532
+ // Video generation - Multiple providers
533
+ text2video: [
534
+ FalAiVideo.MinimaxVideo01Live({
535
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
536
+ headers: {
537
+ 'x-client-version': '1.0.0',
538
+ 'x-request-source': 'cesdk-tutorial'
539
+ }
540
+ }),
541
+ FalAiVideo.PixverseV35TextToVideo({
542
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
543
+ headers: {
544
+ 'x-client-version': '1.0.0',
545
+ 'x-request-source': 'cesdk-tutorial'
546
+ }
547
+ })
548
+ ],
549
+ image2video: FalAiVideo.MinimaxVideo01LiveImageToVideo({
550
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
551
+ headers: {
552
+ 'x-client-version': '1.0.0',
553
+ 'x-request-source': 'cesdk-tutorial'
554
+ }
555
+ }),
556
+
557
+ // Audio generation
558
+ text2speech: Elevenlabs.ElevenMultilingualV2({
559
+ proxyUrl: 'https://your-server.com/api/elevenlabs-proxy',
560
+ headers: {
561
+ 'x-client-version': '1.0.0',
562
+ 'x-request-source': 'cesdk-tutorial'
563
+ }
564
+ }),
565
+ text2sound: Elevenlabs.ElevenSoundEffects({
566
+ proxyUrl: 'https://your-server.com/api/elevenlabs-proxy',
567
+ headers: {
568
+ 'x-client-version': '1.0.0',
569
+ 'x-request-source': 'cesdk-tutorial'
570
+ }
571
+ })
572
+ }
573
+ })
574
+ );
575
+ ```
576
+
577
+ ### Testing with Dry-Run Mode
578
+
579
+ During development, use `dryRun: true` to simulate AI generation without making actual API calls:
580
+
581
+ ```typescript highlight=highlight-dry-run
582
+ // IMPORTANT: dryRun mode simulates generation without API calls
583
+ // Perfect for testing and development - remove for production use
584
+ dryRun: true,
585
+ ```
586
+
587
+ This helps verify your integration and UI flows without incurring API costs or requiring valid API keys.
588
+
589
+ ## 5. AI Provider Configuration
590
+
591
+ Each AI provider type serves a specific purpose and creates different types of content:
592
+
593
+ ### Text Generation (Anthropic)
594
+
595
+ ```typescript highlight=highlight-text-provider
596
+ // Text generation and transformation
597
+ text2text: Anthropic.AnthropicProvider({
598
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
599
+ headers: {
600
+ 'x-client-version': '1.0.0',
601
+ 'x-request-source': 'cesdk-tutorial'
602
+ },
603
+ // Optional: Configure default property values
604
+ properties: {
605
+ temperature: { default: 0.7 },
606
+ maxTokens: { default: 500 }
607
+ }
608
+ }),
609
+ ```
610
+
611
+ The text provider enables capabilities like:
612
+
613
+ - Improving writing quality
614
+ - Fixing spelling and grammar
615
+ - Making text shorter or longer
616
+ - Changing tone (professional, casual, friendly)
617
+ - Translating to different languages
618
+ - Custom text transformations
619
+
620
+ ### Image Generation
621
+
622
+ Configure multiple image providers with selection UI:
623
+
624
+ ```typescript highlight=highlight-image-providers
625
+ // Image generation - Multiple providers with selection UI
626
+ text2image: [
627
+ FalAiImage.RecraftV3({
628
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
629
+ headers: {
630
+ 'x-client-version': '1.0.0',
631
+ 'x-request-source': 'cesdk-tutorial'
632
+ },
633
+ // Add upload middleware to store generated images on your server
634
+ middleware: [
635
+ uploadMiddleware(async (output) => {
636
+ // Upload the generated image to your server
637
+ const result = await uploadToYourStorageServer(output.url);
638
+
639
+ // Return the output with your server's URL
640
+ return {
641
+ ...output,
642
+ url: result.permanentUrl
643
+ };
644
+ })
645
+ ]
646
+ }),
647
+ // Alternative with icon style support
648
+ FalAiImage.Recraft20b({
649
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
650
+ headers: {
651
+ 'x-client-version': '1.0.0',
652
+ 'x-request-source': 'cesdk-tutorial'
653
+ },
654
+ // Configure dynamic defaults based on style type
655
+ properties: {
656
+ style: { default: 'broken_line' },
657
+ image_size: { default: 'square_hd' }
658
+ }
659
+ }),
660
+ // Additional image provider for user selection
661
+ OpenAiImage.GptImage1.Text2Image({
662
+ proxyUrl: 'http://your-proxy-server.com/api/proxy',
663
+ headers: {
664
+ 'x-api-key': 'your-key',
665
+ 'x-request-source': 'cesdk-tutorial'
666
+ }
667
+ })
668
+ ],
669
+
670
+ // Image-to-image transformation
671
+ image2image: FalAiImage.GeminiFlashEdit({
672
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
673
+ headers: {
674
+ 'x-client-version': '1.0.0',
675
+ 'x-request-source': 'cesdk-tutorial'
676
+ }
677
+ }),
678
+ ```
679
+
680
+ When multiple providers are configured, users will see a selection box to choose between them.
681
+
682
+ Image generation features include:
683
+
684
+ - Creating images from text descriptions
685
+ - Multiple style options (realistic, illustration, vector)
686
+ - Various size presets and custom dimensions
687
+ - Transforming existing images based on text prompts
688
+
689
+ ### Video Generation
690
+
691
+ ```typescript highlight=highlight-video-providers
692
+ // Video generation - Multiple providers
693
+ text2video: [
694
+ FalAiVideo.MinimaxVideo01Live({
695
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
696
+ headers: {
697
+ 'x-client-version': '1.0.0',
698
+ 'x-request-source': 'cesdk-tutorial'
699
+ }
700
+ }),
701
+ FalAiVideo.PixverseV35TextToVideo({
702
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
703
+ headers: {
704
+ 'x-client-version': '1.0.0',
705
+ 'x-request-source': 'cesdk-tutorial'
706
+ }
707
+ })
708
+ ],
709
+ image2video: FalAiVideo.MinimaxVideo01LiveImageToVideo({
710
+ proxyUrl: 'https://your-server.com/api/fal-ai-proxy',
711
+ headers: {
712
+ 'x-client-version': '1.0.0',
713
+ 'x-request-source': 'cesdk-tutorial'
714
+ }
715
+ }),
716
+ ```
717
+
718
+ Video generation capabilities include:
719
+
720
+ - Creating videos from text descriptions
721
+ - Transforming still images into videos
722
+ - Fixed output dimensions (typically 1280×720)
723
+ - 5-second video duration
724
+
725
+ ### Audio Generation (ElevenLabs)
726
+
727
+ ```typescript highlight=highlight-audio-providers
728
+ // Audio generation
729
+ text2speech: Elevenlabs.ElevenMultilingualV2({
730
+ proxyUrl: 'https://your-server.com/api/elevenlabs-proxy',
731
+ headers: {
732
+ 'x-client-version': '1.0.0',
733
+ 'x-request-source': 'cesdk-tutorial'
734
+ }
735
+ }),
736
+ text2sound: Elevenlabs.ElevenSoundEffects({
737
+ proxyUrl: 'https://your-server.com/api/elevenlabs-proxy',
738
+ headers: {
739
+ 'x-client-version': '1.0.0',
740
+ 'x-request-source': 'cesdk-tutorial'
741
+ }
742
+ })
743
+ ```
744
+
745
+ Audio generation features include:
746
+
747
+ - Text-to-speech with multiple voices
748
+ - Multilingual support
749
+ - Adjustable speaking speed
750
+ - Sound effect generation from text descriptions
751
+ - Creating ambient sounds and effects
752
+
753
+ ## 6. Using Middleware
754
+
755
+ The AI generation framework supports middleware that can enhance or modify the generation process. Middleware functions are executed in sequence and can perform operations before generation, after generation, or both.
756
+
757
+ ### Upload Middleware
758
+
759
+ The `uploadMiddleware` is useful when you need to store generated content on your server before it's used. First, create a helper function for your storage server:
760
+
761
+ ```typescript highlight=highlight-upload-function
762
+ /**
763
+ * Upload to your image storage server.
764
+ * Replace this mock with your actual storage API call.
765
+ */
766
+ async function uploadToYourStorageServer(imageUrl: string) {
767
+ // In production, upload the image to your server:
768
+ // const response = await fetch('https://your-server.com/api/store-image', {
769
+ // method: 'POST',
770
+ // headers: { 'Content-Type': 'application/json' },
771
+ // body: JSON.stringify({
772
+ // imageUrl,
773
+ // metadata: { source: 'ai-generation' }
774
+ // })
775
+ // });
776
+ // return await response.json();
777
+
778
+ // Mock: Return a fake response
779
+ return { permanentUrl: imageUrl };
780
+ }
781
+ ```
782
+
783
+ Then use `uploadMiddleware` to process generated outputs before they're added to the scene:
784
+
785
+ ```typescript highlight=highlight-upload-middleware
786
+ // Add upload middleware to store generated images on your server
787
+ middleware: [
788
+ uploadMiddleware(async (output) => {
789
+ // Upload the generated image to your server
790
+ const result = await uploadToYourStorageServer(output.url);
791
+
792
+ // Return the output with your server's URL
793
+ return {
794
+ ...output,
795
+ url: result.permanentUrl
796
+ };
797
+ })
798
+ ];
799
+ ```
800
+
801
+ Use cases for upload middleware:
802
+
803
+ - Storing generated assets in your own cloud storage
804
+ - Adding watermarks or processing assets before use
805
+ - Tracking/logging generated content
806
+ - Implementing licensing or rights management
807
+
808
+ ### Rate Limiting Middleware
809
+
810
+ To prevent abuse of AI services, you can implement rate limiting:
811
+
812
+ ```typescript
813
+ import { rateLimitMiddleware } from '@imgly/plugin-ai-generation-web';
814
+
815
+ // In your provider configuration
816
+ middleware: [
817
+ rateLimitMiddleware({
818
+ maxRequests: 10,
819
+ timeWindowMs: 60 * 60 * 1000, // 1 hour
820
+ onRateLimitExceeded: (input, options, info) => {
821
+ // Show a notice to the user
822
+ console.log(
823
+ `Rate limit reached: ${info.currentCount}/${info.maxRequests}`
824
+ );
825
+ return false; // Reject the request
826
+ }
827
+ })
828
+ ];
829
+ ```
830
+
831
+ ### Custom Error Handling Middleware
832
+
833
+ You can create custom middleware for error handling:
834
+
835
+ ```typescript
836
+ const errorMiddleware = async (input, options, next) => {
837
+ try {
838
+ return await next(input, options);
839
+ } catch (error) {
840
+ // Handle error (show UI notification, log, etc.)
841
+ console.error('Generation failed:', error);
842
+ // You can rethrow or return a fallback
843
+ throw error;
844
+ }
845
+ };
846
+ ```
847
+
848
+ ### Middleware Order
849
+
850
+ The order of middleware is important - they're executed in the sequence provided:
851
+
852
+ ```typescript
853
+ middleware: [
854
+ // Executes first
855
+ rateLimitMiddleware({ maxRequests: 10, timeWindowMs: 3600000 }),
856
+
857
+ // Executes second (only if rate limit wasn't exceeded)
858
+ loggingMiddleware(),
859
+
860
+ // Executes third (after generation completes)
861
+ uploadMiddleware(async (output) => {
862
+ /* ... */
863
+ })
864
+ ];
865
+ ```
866
+
867
+ ## 7. Controlling Features with Feature API
868
+
869
+ You can control which AI features are available to users using CE.SDK's Feature API:
870
+
871
+ ```typescript highlight=highlight-feature-control
872
+ // Control AI features with Feature API
873
+ // Disable specific quick actions
874
+ cesdk.feature.set(
875
+ 'ly.img.plugin-ai-image-generation-web.quickAction.editImage',
876
+ () => false
877
+ );
878
+ cesdk.feature.set(
879
+ 'ly.img.plugin-ai-text-generation-web.quickAction.translate',
880
+ () => false
881
+ );
882
+
883
+ // Control input types for image/video generation
884
+ cesdk.feature.set('ly.img.plugin-ai-image-generation-web.fromText', () => true);
885
+ cesdk.feature.set(
886
+ 'ly.img.plugin-ai-image-generation-web.fromImage',
887
+ () => false
888
+ );
889
+
890
+ // Hide provider selection dropdowns
891
+ cesdk.feature.set(
892
+ 'ly.img.plugin-ai-image-generation-web.providerSelect',
893
+ () => false
894
+ );
895
+
896
+ // Control style groups for specific providers
897
+ cesdk.feature.set(
898
+ 'ly.img.plugin-ai-image-generation-web.fal-ai/recraft-v3.style.vector',
899
+ () => false
900
+ );
901
+ ```
902
+
903
+ This is useful for:
904
+
905
+ - Creating different feature tiers for different user groups
906
+ - Simplifying the UI by hiding unused features
907
+ - Temporarily disabling features during maintenance
908
+
909
+ For more details on available feature flags, see the [@imgly/plugin-ai-generation-web documentation](https://github.com/imgly/plugins/tree/release-$UBQ_VERSION$/packages/plugin-ai-generation-web#available-feature-flags).
910
+
911
+ ## 8. Proxy Server Configuration
912
+
913
+ For security reasons, you should never include your AI service API keys directly in client-side code. Instead, you should set up proxy services that securely forward requests to AI providers while keeping your API keys secure on the server side.
914
+
915
+ Each AI provider configuration requires a `proxyUrl` parameter, which should point to your server-side endpoint that handles authentication and forwards requests to the AI service:
916
+
917
+ ```typescript
918
+ text2image: FalAiImage.RecraftV3({
919
+ proxyUrl: 'http://your-proxy-server.com/api/proxy'
920
+ });
921
+ ```
922
+
923
+ Your proxy server should handle authentication, forward requests to the appropriate AI service providers, and manage response streaming for optimal performance.
924
+
925
+ ## API Reference
926
+
927
+ | Method | Category | Purpose |
928
+ | ----------------------------------------------------------------- | ---------- | ------------------------------------------------------------ |
929
+ | `cesdk.addPlugin()` | Plugin | Register and initialize the AI Apps plugin with CE.SDK |
930
+ | `AiApps()` | Plugin | Create unified plugin instance with all AI provider types |
931
+ | `Anthropic.AnthropicProvider()` | Text | Configure Claude for text generation and transformation |
932
+ | `FalAiImage.RecraftV3()` | Image | Configure RecraftV3 text-to-image with vector/raster support |
933
+ | `FalAiImage.Recraft20b()` | Image | Configure Recraft20b text-to-image with icon styles |
934
+ | `FalAiImage.GeminiFlashEdit()` | Image | Configure Gemini Flash for image-to-image transformation |
935
+ | `OpenAiImage.GptImage1.Text2Image()` | Image | Configure GPT Image for text-to-image generation |
936
+ | `FalAiVideo.MinimaxVideo01Live()` | Video | Configure Minimax Video for text-to-video generation |
937
+ | `FalAiVideo.MinimaxVideo01LiveImageToVideo()` | Video | Configure Minimax Video for image-to-video transformation |
938
+ | `FalAiVideo.PixverseV35TextToVideo()` | Video | Configure Pixverse for text-to-video generation |
939
+ | `Elevenlabs.ElevenMultilingualV2()` | Audio | Configure ElevenLabs for multilingual text-to-speech |
940
+ | `Elevenlabs.ElevenSoundEffects()` | Audio | Configure ElevenLabs for sound effect generation |
941
+ | `uploadMiddleware()` | Middleware | Process and store generated outputs before use |
942
+ | `rateLimitMiddleware()` | Middleware | Limit generation requests per time window |
943
+ | `cesdk.feature.enable()` | Feature | Control visibility of AI features and providers |
944
+ | `cesdk.ui.setComponentOrder({ in: 'ly.img.dock' }, order)` | UI | Position AI Apps button in the dock |
945
+ | `cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.menu' }, order)` | UI | Add AI options to canvas context menu |
946
+ | `engine.asset.findAssets()` | Asset | Query generated assets from provider history sources |
947
+
948
+ ## Next Steps
949
+
950
+ - [IMG.LY AI Gateway](./user-interface/ai-integration/gateway-provider.md) — The easiest integration path: managed proxy, auth, and billing
951
+ - [Proxy Server](./user-interface/ai-integration/proxy-server.md) — Set up secure API communication for production
952
+ - [Text Generation](./user-interface/ai-integration/text-generation.md) — Deep dive into text generation and transformation
953
+ - [Image Generation](./user-interface/ai-integration/image-generation.md) — Advanced image generation configuration
954
+ - [Video Generation](./user-interface/ai-integration/video-generation.md) — Video generation with multiple providers
955
+ - [Audio Generation](./user-interface/ai-integration/audio-generation.md) — Text-to-speech and sound effects
956
+ - [Custom Provider](./user-interface/ai-integration/custom-provider.md) — Create custom AI providers
957
+ - [Asset Library Basics](./import-media/asset-panel/basics.md) — Work with generated assets
958
+
959
+ ---
960
+
961
+ ## More Resources
962
+
963
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
964
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
965
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
966
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support