@amrhas82/agentic-kit 1.7.0 → 1.7.6

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 (1278) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +110 -183
  3. package/docs/INSTALLATION_DEMO.md +4 -4
  4. package/docs/INTEGRATION_ISSUES_9.1.md +2 -2
  5. package/docs/KNOWLEDGE_BASE.md +16 -16
  6. package/docs/PACKAGE_BASELINE.md +9 -9
  7. package/docs/UPDATED_VARIANT_CONFIGURATION.md +14 -14
  8. package/docs/VARIANT_CONFIGURATION.md +2 -2
  9. package/package.json +1 -1
  10. package/packages/ampcode/AGENT.md +49 -505
  11. package/packages/ampcode/agents/1-create-prd.md +69 -40
  12. package/packages/ampcode/agents/2-generate-tasks.md +113 -25
  13. package/packages/ampcode/agents/3-process-task-list.md +125 -71
  14. package/packages/ampcode/agents/backlog-manager.md +169 -0
  15. package/packages/ampcode/agents/code-developer.md +118 -0
  16. package/packages/{claude/agents/context-initializer.md → ampcode/agents/context-builder.md} +53 -146
  17. package/packages/ampcode/agents/feature-planner.md +155 -0
  18. package/packages/ampcode/agents/{business-analyst.md → market-researcher.md} +57 -9
  19. package/packages/ampcode/agents/master.md +107 -18
  20. package/packages/ampcode/agents/orchestrator.md +95 -42
  21. package/packages/{claude/agents/qa-test-architect.md → ampcode/agents/quality-assurance.md} +53 -22
  22. package/packages/ampcode/agents/{scrum-master.md → story-writer.md} +52 -16
  23. package/packages/{claude/agents/holistic-architect.md → ampcode/agents/system-architect.md} +45 -3
  24. package/packages/{claude/agents/ux-expert.md → ampcode/agents/ui-designer.md} +50 -16
  25. package/packages/ampcode/commands/brainstorming.md +5 -3
  26. package/packages/ampcode/commands/code-review.md +7 -154
  27. package/packages/ampcode/commands/condition-based-waiting.md +4 -2
  28. package/packages/ampcode/commands/debug.md +20 -0
  29. package/packages/ampcode/commands/docs-builder/templates.md +572 -0
  30. package/packages/ampcode/commands/docs-builder.md +106 -0
  31. package/packages/ampcode/commands/explain.md +18 -0
  32. package/packages/ampcode/commands/git-commit.md +14 -0
  33. package/packages/ampcode/commands/optimize.md +20 -0
  34. package/packages/ampcode/commands/refactor.md +21 -0
  35. package/packages/ampcode/commands/review.md +18 -0
  36. package/packages/ampcode/commands/root-cause-tracing.md +4 -2
  37. package/packages/ampcode/commands/security.md +21 -0
  38. package/packages/ampcode/commands/ship.md +18 -0
  39. package/packages/ampcode/commands/skill-creator.md +3 -1
  40. package/packages/ampcode/commands/subagent-spawning.md +81 -0
  41. package/packages/ampcode/commands/systematic-debugging.md +3 -344
  42. package/packages/ampcode/commands/test-driven-development.md +27 -1
  43. package/packages/ampcode/commands/test-generate.md +18 -0
  44. package/packages/ampcode/commands/testing-anti-patterns.md +3 -1
  45. package/packages/ampcode/commands/verification-before-completion.md +14 -1
  46. package/packages/ampcode/variants.json +44 -22
  47. package/packages/claude/CLAUDE.md +55 -515
  48. package/packages/claude/agents/1-create-prd.md +69 -40
  49. package/packages/claude/agents/2-generate-tasks.md +113 -25
  50. package/packages/claude/agents/3-process-task-list.md +125 -72
  51. package/packages/claude/agents/backlog-manager.md +169 -0
  52. package/packages/claude/agents/code-developer.md +118 -0
  53. package/packages/claude/agents/context-builder.md +198 -0
  54. package/packages/claude/agents/feature-planner.md +155 -0
  55. package/packages/claude/agents/{business-analyst.md → market-researcher.md} +57 -9
  56. package/packages/claude/agents/master.md +107 -19
  57. package/packages/claude/agents/orchestrator.md +92 -39
  58. package/packages/{ampcode/agents/qa-test-architect.md → claude/agents/quality-assurance.md} +53 -22
  59. package/packages/claude/agents/{scrum-master.md → story-writer.md} +52 -16
  60. package/packages/{ampcode/agents/holistic-architect.md → claude/agents/system-architect.md} +45 -3
  61. package/packages/{ampcode/agents/ux-expert.md → claude/agents/ui-designer.md} +50 -16
  62. package/packages/claude/commands/debug.md +20 -0
  63. package/packages/claude/commands/explain.md +18 -0
  64. package/packages/claude/commands/git-commit.md +14 -0
  65. package/packages/claude/commands/optimize.md +20 -0
  66. package/packages/claude/commands/refactor.md +21 -0
  67. package/packages/claude/commands/review.md +18 -0
  68. package/packages/claude/commands/security.md +21 -0
  69. package/packages/claude/commands/ship.md +18 -0
  70. package/packages/claude/commands/test-generate.md +18 -0
  71. package/packages/claude/skills/brainstorming/SKILL.md +4 -2
  72. package/packages/claude/skills/code-review/SKILL.md +7 -5
  73. package/packages/claude/skills/condition-based-waiting/SKILL.md +2 -0
  74. package/packages/claude/skills/docs-builder/SKILL.md +106 -0
  75. package/packages/claude/skills/docs-builder/references/templates.md +572 -0
  76. package/packages/claude/skills/root-cause-tracing/SKILL.md +2 -0
  77. package/packages/claude/skills/skill-creator/SKILL.md +2 -0
  78. package/packages/claude/skills/subagent-spawning/SKILL.md +81 -0
  79. package/packages/claude/skills/systematic-debugging/SKILL.md +3 -2
  80. package/packages/claude/skills/test-driven-development/SKILL.md +28 -0
  81. package/packages/claude/skills/testing-anti-patterns/SKILL.md +2 -0
  82. package/packages/claude/skills/verification-before-completion/SKILL.md +13 -0
  83. package/packages/claude/variants.json +46 -19
  84. package/packages/droid/AGENTS.md +49 -519
  85. package/packages/droid/commands/brainstorming.md +11 -4
  86. package/packages/droid/commands/code-review.md +46 -31
  87. package/packages/droid/commands/{condition-based-waiting/condition-based-waiting.md → condition-based-waiting.md} +41 -52
  88. package/packages/droid/commands/debug.md +20 -0
  89. package/packages/droid/commands/docs-builder/templates.md +572 -0
  90. package/packages/droid/commands/docs-builder.md +106 -0
  91. package/packages/droid/commands/explain.md +18 -0
  92. package/packages/droid/commands/git-commit.md +14 -0
  93. package/packages/droid/commands/optimize.md +20 -0
  94. package/packages/droid/commands/refactor.md +21 -0
  95. package/packages/droid/commands/review.md +18 -0
  96. package/packages/droid/commands/{root-cause-tracing/root-cause-tracing.md → root-cause-tracing.md} +64 -99
  97. package/packages/droid/commands/security.md +21 -0
  98. package/packages/droid/commands/ship.md +18 -0
  99. package/packages/droid/commands/skill-creator.md +211 -0
  100. package/packages/droid/commands/subagent-spawning.md +81 -0
  101. package/packages/droid/commands/systematic-debugging.md +221 -139
  102. package/packages/droid/commands/test-driven-development.md +237 -78
  103. package/packages/droid/commands/test-generate.md +18 -0
  104. package/packages/droid/commands/testing-anti-patterns.md +129 -73
  105. package/packages/droid/commands/verification-before-completion.md +90 -89
  106. package/packages/droid/droids/1-create-prd.md +69 -41
  107. package/packages/droid/droids/2-generate-tasks.md +113 -26
  108. package/packages/droid/droids/3-process-task-list.md +125 -72
  109. package/packages/droid/droids/backlog-manager.md +169 -0
  110. package/packages/droid/droids/code-developer.md +118 -0
  111. package/packages/droid/droids/context-builder.md +198 -0
  112. package/packages/droid/droids/feature-planner.md +155 -0
  113. package/packages/droid/droids/{business-analyst.md → market-researcher.md} +57 -9
  114. package/packages/droid/droids/master.md +107 -18
  115. package/packages/droid/droids/orchestrator.md +95 -42
  116. package/packages/droid/droids/{qa-test-architect.md → quality-assurance.md} +53 -22
  117. package/packages/droid/droids/{scrum-master.md → story-writer.md} +52 -16
  118. package/packages/droid/droids/{holistic-architect.md → system-architect.md} +45 -3
  119. package/packages/droid/droids/{ux-expert.md → ui-designer.md} +50 -16
  120. package/packages/droid/variants.json +44 -22
  121. package/packages/opencode/AGENTS.md +49 -515
  122. package/packages/opencode/agent/1-create-prd.md +69 -40
  123. package/packages/opencode/agent/2-generate-tasks.md +113 -26
  124. package/packages/opencode/agent/3-process-task-list.md +124 -71
  125. package/packages/opencode/agent/backlog-manager.md +173 -0
  126. package/packages/opencode/agent/code-developer.md +122 -0
  127. package/packages/opencode/agent/context-builder.md +202 -0
  128. package/packages/opencode/agent/feature-planner.md +159 -0
  129. package/packages/opencode/agent/{business-analyst.md → market-researcher.md} +58 -10
  130. package/packages/opencode/agent/master.md +107 -18
  131. package/packages/opencode/agent/orchestrator.md +95 -42
  132. package/packages/opencode/agent/{qa-test-architect.md → quality-assurance.md} +53 -22
  133. package/packages/opencode/agent/{scrum-master.md → story-writer.md} +52 -16
  134. package/packages/opencode/agent/{holistic-architect.md → system-architect.md} +45 -3
  135. package/packages/opencode/agent/{ux-expert.md → ui-designer.md} +50 -16
  136. package/packages/opencode/command/brainstorming.md +11 -4
  137. package/packages/opencode/command/code-review.md +46 -31
  138. package/packages/opencode/command/condition-based-waiting.md +41 -52
  139. package/packages/opencode/command/debug.md +20 -0
  140. package/packages/opencode/command/docs-builder/templates.md +572 -0
  141. package/packages/opencode/command/docs-builder.md +106 -0
  142. package/packages/opencode/command/explain.md +18 -0
  143. package/packages/opencode/command/git-commit.md +14 -0
  144. package/packages/opencode/command/optimize.md +20 -0
  145. package/packages/opencode/command/refactor.md +21 -0
  146. package/packages/opencode/command/review.md +18 -0
  147. package/packages/opencode/command/root-cause-tracing.md +64 -99
  148. package/packages/opencode/command/security.md +21 -0
  149. package/packages/opencode/command/ship.md +18 -0
  150. package/packages/opencode/command/skill-creator.md +157 -142
  151. package/packages/opencode/command/subagent-spawning.md +81 -0
  152. package/packages/opencode/command/systematic-debugging.md +221 -139
  153. package/packages/opencode/command/test-driven-development.md +237 -78
  154. package/packages/opencode/command/test-generate.md +18 -0
  155. package/packages/opencode/command/testing-anti-patterns.md +129 -73
  156. package/packages/opencode/command/verification-before-completion.md +90 -89
  157. package/packages/opencode/opencode.jsonc +37 -85
  158. package/packages/opencode/variants.json +44 -22
  159. package/packages/subagentic-manual.md +329 -147
  160. package/packages/ampcode/agents/context-initializer.md +0 -291
  161. package/packages/ampcode/agents/full-stack-dev.md +0 -80
  162. package/packages/ampcode/agents/product-manager.md +0 -82
  163. package/packages/ampcode/agents/product-owner.md +0 -97
  164. package/packages/ampcode/commands/README.md +0 -76
  165. package/packages/ampcode/commands/algorithmic-art/templates/generator_template.js +0 -223
  166. package/packages/ampcode/commands/algorithmic-art/templates/viewer.html +0 -599
  167. package/packages/ampcode/commands/algorithmic-art.md +0 -405
  168. package/packages/ampcode/commands/artifacts-builder/scripts/bundle-artifact.sh +0 -54
  169. package/packages/ampcode/commands/artifacts-builder/scripts/init-artifact.sh +0 -322
  170. package/packages/ampcode/commands/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  171. package/packages/ampcode/commands/artifacts-builder.md +0 -74
  172. package/packages/ampcode/commands/brand-guidelines.md +0 -73
  173. package/packages/ampcode/commands/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  174. package/packages/ampcode/commands/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  175. package/packages/ampcode/commands/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  176. package/packages/ampcode/commands/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -93
  177. package/packages/ampcode/commands/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  178. package/packages/ampcode/commands/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -93
  179. package/packages/ampcode/commands/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  180. package/packages/ampcode/commands/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  181. package/packages/ampcode/commands/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  182. package/packages/ampcode/commands/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  183. package/packages/ampcode/commands/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  184. package/packages/ampcode/commands/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  185. package/packages/ampcode/commands/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  186. package/packages/ampcode/commands/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  187. package/packages/ampcode/commands/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -93
  188. package/packages/ampcode/commands/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  189. package/packages/ampcode/commands/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -94
  190. package/packages/ampcode/commands/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  191. package/packages/ampcode/commands/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  192. package/packages/ampcode/commands/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -93
  193. package/packages/ampcode/commands/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  194. package/packages/ampcode/commands/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -93
  195. package/packages/ampcode/commands/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  196. package/packages/ampcode/commands/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  197. package/packages/ampcode/commands/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  198. package/packages/ampcode/commands/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  199. package/packages/ampcode/commands/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  200. package/packages/ampcode/commands/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  201. package/packages/ampcode/commands/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  202. package/packages/ampcode/commands/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  203. package/packages/ampcode/commands/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  204. package/packages/ampcode/commands/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  205. package/packages/ampcode/commands/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  206. package/packages/ampcode/commands/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  207. package/packages/ampcode/commands/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  208. package/packages/ampcode/commands/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  209. package/packages/ampcode/commands/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  210. package/packages/ampcode/commands/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -93
  211. package/packages/ampcode/commands/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  212. package/packages/ampcode/commands/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  213. package/packages/ampcode/commands/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  214. package/packages/ampcode/commands/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  215. package/packages/ampcode/commands/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  216. package/packages/ampcode/commands/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  217. package/packages/ampcode/commands/canvas-design/canvas-fonts/Jura-OFL.txt +0 -93
  218. package/packages/ampcode/commands/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  219. package/packages/ampcode/commands/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  220. package/packages/ampcode/commands/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  221. package/packages/ampcode/commands/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  222. package/packages/ampcode/commands/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  223. package/packages/ampcode/commands/canvas-design/canvas-fonts/Lora-OFL.txt +0 -93
  224. package/packages/ampcode/commands/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  225. package/packages/ampcode/commands/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  226. package/packages/ampcode/commands/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -93
  227. package/packages/ampcode/commands/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  228. package/packages/ampcode/commands/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  229. package/packages/ampcode/commands/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  230. package/packages/ampcode/commands/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  231. package/packages/ampcode/commands/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -93
  232. package/packages/ampcode/commands/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  233. package/packages/ampcode/commands/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  234. package/packages/ampcode/commands/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -93
  235. package/packages/ampcode/commands/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -93
  236. package/packages/ampcode/commands/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  237. package/packages/ampcode/commands/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  238. package/packages/ampcode/commands/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -93
  239. package/packages/ampcode/commands/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  240. package/packages/ampcode/commands/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -93
  241. package/packages/ampcode/commands/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  242. package/packages/ampcode/commands/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  243. package/packages/ampcode/commands/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -93
  244. package/packages/ampcode/commands/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  245. package/packages/ampcode/commands/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -93
  246. package/packages/ampcode/commands/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  247. package/packages/ampcode/commands/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  248. package/packages/ampcode/commands/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  249. package/packages/ampcode/commands/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  250. package/packages/ampcode/commands/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -93
  251. package/packages/ampcode/commands/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  252. package/packages/ampcode/commands/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -93
  253. package/packages/ampcode/commands/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  254. package/packages/ampcode/commands/canvas-design.md +0 -130
  255. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  256. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  257. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  258. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  259. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  260. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  261. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  262. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  263. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  264. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  265. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  266. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  267. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  268. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  269. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  270. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  271. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  272. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  273. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  274. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  275. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  276. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  277. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  278. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  279. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  280. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  281. package/packages/ampcode/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  282. package/packages/ampcode/commands/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  283. package/packages/ampcode/commands/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  284. package/packages/ampcode/commands/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  285. package/packages/ampcode/commands/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  286. package/packages/ampcode/commands/docx/ooxml/schemas/mce/mc.xsd +0 -75
  287. package/packages/ampcode/commands/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  288. package/packages/ampcode/commands/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  289. package/packages/ampcode/commands/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  290. package/packages/ampcode/commands/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  291. package/packages/ampcode/commands/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  292. package/packages/ampcode/commands/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  293. package/packages/ampcode/commands/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  294. package/packages/ampcode/commands/docx/ooxml/scripts/pack.py +0 -159
  295. package/packages/ampcode/commands/docx/ooxml/scripts/unpack.py +0 -29
  296. package/packages/ampcode/commands/docx/ooxml/scripts/validate.py +0 -69
  297. package/packages/ampcode/commands/docx/ooxml/scripts/validation/__init__.py +0 -15
  298. package/packages/ampcode/commands/docx/ooxml/scripts/validation/base.py +0 -951
  299. package/packages/ampcode/commands/docx/ooxml/scripts/validation/docx.py +0 -274
  300. package/packages/ampcode/commands/docx/ooxml/scripts/validation/pptx.py +0 -315
  301. package/packages/ampcode/commands/docx/ooxml/scripts/validation/redlining.py +0 -279
  302. package/packages/ampcode/commands/docx/scripts/__init__.py +0 -1
  303. package/packages/ampcode/commands/docx/scripts/document.py +0 -1276
  304. package/packages/ampcode/commands/docx/scripts/templates/comments.xml +0 -3
  305. package/packages/ampcode/commands/docx/scripts/templates/commentsExtended.xml +0 -3
  306. package/packages/ampcode/commands/docx/scripts/templates/commentsExtensible.xml +0 -3
  307. package/packages/ampcode/commands/docx/scripts/templates/commentsIds.xml +0 -3
  308. package/packages/ampcode/commands/docx/scripts/templates/people.xml +0 -3
  309. package/packages/ampcode/commands/docx/scripts/utilities.py +0 -374
  310. package/packages/ampcode/commands/docx.md +0 -1163
  311. package/packages/ampcode/commands/internal-comms/examples/3p-updates.md +0 -47
  312. package/packages/ampcode/commands/internal-comms/examples/company-newsletter.md +0 -65
  313. package/packages/ampcode/commands/internal-comms/examples/faq-answers.md +0 -30
  314. package/packages/ampcode/commands/internal-comms/examples/general-comms.md +0 -16
  315. package/packages/ampcode/commands/internal-comms.md +0 -32
  316. package/packages/ampcode/commands/mcp-builder/reference/evaluation.md +0 -602
  317. package/packages/ampcode/commands/mcp-builder/reference/mcp_best_practices.md +0 -915
  318. package/packages/ampcode/commands/mcp-builder/reference/node_mcp_server.md +0 -916
  319. package/packages/ampcode/commands/mcp-builder/reference/python_mcp_server.md +0 -752
  320. package/packages/ampcode/commands/mcp-builder/scripts/connections.py +0 -151
  321. package/packages/ampcode/commands/mcp-builder/scripts/evaluation.py +0 -373
  322. package/packages/ampcode/commands/mcp-builder/scripts/example_evaluation.xml +0 -22
  323. package/packages/ampcode/commands/mcp-builder/scripts/requirements.txt +0 -2
  324. package/packages/ampcode/commands/mcp-builder.md +0 -328
  325. package/packages/ampcode/commands/pdf/scripts/check_bounding_boxes.py +0 -70
  326. package/packages/ampcode/commands/pdf/scripts/check_bounding_boxes_test.py +0 -226
  327. package/packages/ampcode/commands/pdf/scripts/check_fillable_fields.py +0 -12
  328. package/packages/ampcode/commands/pdf/scripts/convert_pdf_to_images.py +0 -35
  329. package/packages/ampcode/commands/pdf/scripts/create_validation_image.py +0 -41
  330. package/packages/ampcode/commands/pdf/scripts/extract_form_field_info.py +0 -152
  331. package/packages/ampcode/commands/pdf/scripts/fill_fillable_fields.py +0 -114
  332. package/packages/ampcode/commands/pdf/scripts/fill_pdf_form_with_annotations.py +0 -108
  333. package/packages/ampcode/commands/pdf.md +0 -1117
  334. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  335. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  336. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  337. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  338. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  339. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  340. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  341. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  342. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  343. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  344. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  345. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  346. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  347. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  348. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  349. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  350. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  351. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  352. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  353. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  354. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  355. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  356. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  357. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  358. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  359. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  360. package/packages/ampcode/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  361. package/packages/ampcode/commands/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  362. package/packages/ampcode/commands/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  363. package/packages/ampcode/commands/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  364. package/packages/ampcode/commands/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  365. package/packages/ampcode/commands/pptx/ooxml/schemas/mce/mc.xsd +0 -75
  366. package/packages/ampcode/commands/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  367. package/packages/ampcode/commands/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  368. package/packages/ampcode/commands/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  369. package/packages/ampcode/commands/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  370. package/packages/ampcode/commands/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  371. package/packages/ampcode/commands/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  372. package/packages/ampcode/commands/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  373. package/packages/ampcode/commands/pptx/ooxml/scripts/pack.py +0 -159
  374. package/packages/ampcode/commands/pptx/ooxml/scripts/unpack.py +0 -29
  375. package/packages/ampcode/commands/pptx/ooxml/scripts/validate.py +0 -69
  376. package/packages/ampcode/commands/pptx/ooxml/scripts/validation/__init__.py +0 -15
  377. package/packages/ampcode/commands/pptx/ooxml/scripts/validation/base.py +0 -951
  378. package/packages/ampcode/commands/pptx/ooxml/scripts/validation/docx.py +0 -274
  379. package/packages/ampcode/commands/pptx/ooxml/scripts/validation/pptx.py +0 -315
  380. package/packages/ampcode/commands/pptx/ooxml/scripts/validation/redlining.py +0 -279
  381. package/packages/ampcode/commands/pptx/scripts/html2pptx.js +0 -979
  382. package/packages/ampcode/commands/pptx/scripts/inventory.py +0 -1020
  383. package/packages/ampcode/commands/pptx/scripts/rearrange.py +0 -231
  384. package/packages/ampcode/commands/pptx/scripts/replace.py +0 -385
  385. package/packages/ampcode/commands/pptx/scripts/thumbnail.py +0 -450
  386. package/packages/ampcode/commands/pptx.md +0 -1542
  387. package/packages/ampcode/commands/slack-gif-creator/core/color_palettes.py +0 -302
  388. package/packages/ampcode/commands/slack-gif-creator/core/easing.py +0 -230
  389. package/packages/ampcode/commands/slack-gif-creator/core/frame_composer.py +0 -469
  390. package/packages/ampcode/commands/slack-gif-creator/core/gif_builder.py +0 -246
  391. package/packages/ampcode/commands/slack-gif-creator/core/typography.py +0 -357
  392. package/packages/ampcode/commands/slack-gif-creator/core/validators.py +0 -264
  393. package/packages/ampcode/commands/slack-gif-creator/core/visual_effects.py +0 -494
  394. package/packages/ampcode/commands/slack-gif-creator/templates/bounce.py +0 -106
  395. package/packages/ampcode/commands/slack-gif-creator/templates/explode.py +0 -331
  396. package/packages/ampcode/commands/slack-gif-creator/templates/fade.py +0 -329
  397. package/packages/ampcode/commands/slack-gif-creator/templates/flip.py +0 -291
  398. package/packages/ampcode/commands/slack-gif-creator/templates/kaleidoscope.py +0 -211
  399. package/packages/ampcode/commands/slack-gif-creator/templates/morph.py +0 -329
  400. package/packages/ampcode/commands/slack-gif-creator/templates/move.py +0 -293
  401. package/packages/ampcode/commands/slack-gif-creator/templates/pulse.py +0 -268
  402. package/packages/ampcode/commands/slack-gif-creator/templates/shake.py +0 -127
  403. package/packages/ampcode/commands/slack-gif-creator/templates/slide.py +0 -291
  404. package/packages/ampcode/commands/slack-gif-creator/templates/spin.py +0 -269
  405. package/packages/ampcode/commands/slack-gif-creator/templates/wiggle.py +0 -300
  406. package/packages/ampcode/commands/slack-gif-creator/templates/zoom.py +0 -312
  407. package/packages/ampcode/commands/slack-gif-creator.md +0 -646
  408. package/packages/ampcode/commands/theme-factory/themes/arctic-frost.md +0 -19
  409. package/packages/ampcode/commands/theme-factory/themes/botanical-garden.md +0 -19
  410. package/packages/ampcode/commands/theme-factory/themes/desert-rose.md +0 -19
  411. package/packages/ampcode/commands/theme-factory/themes/forest-canopy.md +0 -19
  412. package/packages/ampcode/commands/theme-factory/themes/golden-hour.md +0 -19
  413. package/packages/ampcode/commands/theme-factory/themes/midnight-galaxy.md +0 -19
  414. package/packages/ampcode/commands/theme-factory/themes/modern-minimalist.md +0 -19
  415. package/packages/ampcode/commands/theme-factory/themes/ocean-depths.md +0 -19
  416. package/packages/ampcode/commands/theme-factory/themes/sunset-boulevard.md +0 -19
  417. package/packages/ampcode/commands/theme-factory/themes/tech-innovation.md +0 -19
  418. package/packages/ampcode/commands/theme-factory.md +0 -58
  419. package/packages/ampcode/commands/webapp-testing/examples/console_logging.py +0 -35
  420. package/packages/ampcode/commands/webapp-testing/examples/element_discovery.py +0 -40
  421. package/packages/ampcode/commands/webapp-testing/examples/static_html_automation.py +0 -33
  422. package/packages/ampcode/commands/webapp-testing/scripts/with_server.py +0 -106
  423. package/packages/ampcode/commands/webapp-testing.md +0 -96
  424. package/packages/ampcode/commands/xlsx/recalc.py +0 -178
  425. package/packages/ampcode/commands/xlsx.md +0 -289
  426. package/packages/ampcode/resources/agent-teams.yaml +0 -50
  427. package/packages/ampcode/resources/checklists.md +0 -1724
  428. package/packages/ampcode/resources/data.md +0 -1372
  429. package/packages/ampcode/resources/task-briefs.md +0 -4428
  430. package/packages/ampcode/resources/templates.yaml +0 -5810
  431. package/packages/ampcode/resources/workflows.yaml +0 -1513
  432. package/packages/ampcode/subagentic-manual.md +0 -170
  433. package/packages/claude/.claude-plugin/marketplace.json +0 -67
  434. package/packages/claude/.claude-plugin/plugin-lite.json +0 -44
  435. package/packages/claude/.claude-plugin/plugin-pro.json +0 -189
  436. package/packages/claude/.claude-plugin/plugin-standard.json +0 -153
  437. package/packages/claude/.claude-plugin/plugin.json +0 -47
  438. package/packages/claude/agents/full-stack-dev.md +0 -80
  439. package/packages/claude/agents/product-manager.md +0 -82
  440. package/packages/claude/agents/product-owner.md +0 -97
  441. package/packages/claude/hooks/register-agents.js +0 -123
  442. package/packages/claude/hooks/session-start.js +0 -166
  443. package/packages/claude/resources/agent-teams.yaml +0 -50
  444. package/packages/claude/resources/checklists.md +0 -1724
  445. package/packages/claude/resources/data.md +0 -1372
  446. package/packages/claude/resources/task-briefs.md +0 -4428
  447. package/packages/claude/resources/templates.yaml +0 -5810
  448. package/packages/claude/resources/workflows.yaml +0 -1513
  449. package/packages/claude/skills/README.md +0 -76
  450. package/packages/claude/skills/algorithmic-art/LICENSE.txt +0 -202
  451. package/packages/claude/skills/algorithmic-art/SKILL.md +0 -405
  452. package/packages/claude/skills/algorithmic-art/templates/generator_template.js +0 -223
  453. package/packages/claude/skills/algorithmic-art/templates/viewer.html +0 -599
  454. package/packages/claude/skills/artifacts-builder/LICENSE.txt +0 -202
  455. package/packages/claude/skills/artifacts-builder/SKILL.md +0 -74
  456. package/packages/claude/skills/artifacts-builder/scripts/bundle-artifact.sh +0 -54
  457. package/packages/claude/skills/artifacts-builder/scripts/init-artifact.sh +0 -322
  458. package/packages/claude/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  459. package/packages/claude/skills/brand-guidelines/LICENSE.txt +0 -202
  460. package/packages/claude/skills/brand-guidelines/SKILL.md +0 -73
  461. package/packages/claude/skills/canvas-design/LICENSE.txt +0 -202
  462. package/packages/claude/skills/canvas-design/SKILL.md +0 -130
  463. package/packages/claude/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  464. package/packages/claude/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  465. package/packages/claude/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  466. package/packages/claude/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -93
  467. package/packages/claude/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  468. package/packages/claude/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -93
  469. package/packages/claude/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  470. package/packages/claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  471. package/packages/claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  472. package/packages/claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  473. package/packages/claude/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  474. package/packages/claude/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  475. package/packages/claude/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  476. package/packages/claude/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  477. package/packages/claude/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -93
  478. package/packages/claude/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  479. package/packages/claude/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -94
  480. package/packages/claude/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  481. package/packages/claude/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  482. package/packages/claude/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -93
  483. package/packages/claude/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  484. package/packages/claude/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -93
  485. package/packages/claude/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  486. package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  487. package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  488. package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  489. package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  490. package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  491. package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  492. package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  493. package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  494. package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  495. package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  496. package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  497. package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  498. package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  499. package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  500. package/packages/claude/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -93
  501. package/packages/claude/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  502. package/packages/claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  503. package/packages/claude/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  504. package/packages/claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  505. package/packages/claude/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  506. package/packages/claude/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  507. package/packages/claude/skills/canvas-design/canvas-fonts/Jura-OFL.txt +0 -93
  508. package/packages/claude/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  509. package/packages/claude/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  510. package/packages/claude/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  511. package/packages/claude/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  512. package/packages/claude/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  513. package/packages/claude/skills/canvas-design/canvas-fonts/Lora-OFL.txt +0 -93
  514. package/packages/claude/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  515. package/packages/claude/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  516. package/packages/claude/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -93
  517. package/packages/claude/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  518. package/packages/claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  519. package/packages/claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  520. package/packages/claude/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  521. package/packages/claude/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -93
  522. package/packages/claude/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  523. package/packages/claude/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  524. package/packages/claude/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -93
  525. package/packages/claude/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -93
  526. package/packages/claude/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  527. package/packages/claude/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  528. package/packages/claude/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -93
  529. package/packages/claude/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  530. package/packages/claude/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -93
  531. package/packages/claude/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  532. package/packages/claude/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  533. package/packages/claude/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -93
  534. package/packages/claude/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  535. package/packages/claude/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -93
  536. package/packages/claude/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  537. package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  538. package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  539. package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  540. package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -93
  541. package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  542. package/packages/claude/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -93
  543. package/packages/claude/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  544. package/packages/claude/skills/docx/LICENSE.txt +0 -30
  545. package/packages/claude/skills/docx/SKILL.md +0 -197
  546. package/packages/claude/skills/docx/docx-js.md +0 -350
  547. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  548. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  549. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  550. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  551. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  552. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  553. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  554. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  555. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  556. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  557. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  558. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  559. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  560. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  561. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  562. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  563. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  564. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  565. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  566. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  567. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  568. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  569. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  570. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  571. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  572. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  573. package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  574. package/packages/claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  575. package/packages/claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  576. package/packages/claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  577. package/packages/claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  578. package/packages/claude/skills/docx/ooxml/schemas/mce/mc.xsd +0 -75
  579. package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  580. package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  581. package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  582. package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  583. package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  584. package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  585. package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  586. package/packages/claude/skills/docx/ooxml/scripts/pack.py +0 -159
  587. package/packages/claude/skills/docx/ooxml/scripts/unpack.py +0 -29
  588. package/packages/claude/skills/docx/ooxml/scripts/validate.py +0 -69
  589. package/packages/claude/skills/docx/ooxml/scripts/validation/__init__.py +0 -15
  590. package/packages/claude/skills/docx/ooxml/scripts/validation/base.py +0 -951
  591. package/packages/claude/skills/docx/ooxml/scripts/validation/docx.py +0 -274
  592. package/packages/claude/skills/docx/ooxml/scripts/validation/pptx.py +0 -315
  593. package/packages/claude/skills/docx/ooxml/scripts/validation/redlining.py +0 -279
  594. package/packages/claude/skills/docx/ooxml.md +0 -610
  595. package/packages/claude/skills/docx/scripts/__init__.py +0 -1
  596. package/packages/claude/skills/docx/scripts/document.py +0 -1276
  597. package/packages/claude/skills/docx/scripts/templates/comments.xml +0 -3
  598. package/packages/claude/skills/docx/scripts/templates/commentsExtended.xml +0 -3
  599. package/packages/claude/skills/docx/scripts/templates/commentsExtensible.xml +0 -3
  600. package/packages/claude/skills/docx/scripts/templates/commentsIds.xml +0 -3
  601. package/packages/claude/skills/docx/scripts/templates/people.xml +0 -3
  602. package/packages/claude/skills/docx/scripts/utilities.py +0 -374
  603. package/packages/claude/skills/internal-comms/LICENSE.txt +0 -202
  604. package/packages/claude/skills/internal-comms/SKILL.md +0 -32
  605. package/packages/claude/skills/internal-comms/examples/3p-updates.md +0 -47
  606. package/packages/claude/skills/internal-comms/examples/company-newsletter.md +0 -65
  607. package/packages/claude/skills/internal-comms/examples/faq-answers.md +0 -30
  608. package/packages/claude/skills/internal-comms/examples/general-comms.md +0 -16
  609. package/packages/claude/skills/mcp-builder/LICENSE.txt +0 -202
  610. package/packages/claude/skills/mcp-builder/SKILL.md +0 -328
  611. package/packages/claude/skills/mcp-builder/reference/evaluation.md +0 -602
  612. package/packages/claude/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
  613. package/packages/claude/skills/mcp-builder/reference/node_mcp_server.md +0 -916
  614. package/packages/claude/skills/mcp-builder/reference/python_mcp_server.md +0 -752
  615. package/packages/claude/skills/mcp-builder/scripts/connections.py +0 -151
  616. package/packages/claude/skills/mcp-builder/scripts/evaluation.py +0 -373
  617. package/packages/claude/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
  618. package/packages/claude/skills/mcp-builder/scripts/requirements.txt +0 -2
  619. package/packages/claude/skills/pdf/LICENSE.txt +0 -30
  620. package/packages/claude/skills/pdf/SKILL.md +0 -294
  621. package/packages/claude/skills/pdf/forms.md +0 -205
  622. package/packages/claude/skills/pdf/reference.md +0 -612
  623. package/packages/claude/skills/pdf/scripts/check_bounding_boxes.py +0 -70
  624. package/packages/claude/skills/pdf/scripts/check_bounding_boxes_test.py +0 -226
  625. package/packages/claude/skills/pdf/scripts/check_fillable_fields.py +0 -12
  626. package/packages/claude/skills/pdf/scripts/convert_pdf_to_images.py +0 -35
  627. package/packages/claude/skills/pdf/scripts/create_validation_image.py +0 -41
  628. package/packages/claude/skills/pdf/scripts/extract_form_field_info.py +0 -152
  629. package/packages/claude/skills/pdf/scripts/fill_fillable_fields.py +0 -114
  630. package/packages/claude/skills/pdf/scripts/fill_pdf_form_with_annotations.py +0 -108
  631. package/packages/claude/skills/pptx/LICENSE.txt +0 -30
  632. package/packages/claude/skills/pptx/SKILL.md +0 -484
  633. package/packages/claude/skills/pptx/html2pptx.md +0 -625
  634. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  635. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  636. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  637. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  638. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  639. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  640. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  641. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  642. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  643. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  644. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  645. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  646. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  647. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  648. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  649. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  650. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  651. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  652. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  653. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  654. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  655. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  656. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  657. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  658. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  659. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  660. package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  661. package/packages/claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  662. package/packages/claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  663. package/packages/claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  664. package/packages/claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  665. package/packages/claude/skills/pptx/ooxml/schemas/mce/mc.xsd +0 -75
  666. package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  667. package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  668. package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  669. package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  670. package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  671. package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  672. package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  673. package/packages/claude/skills/pptx/ooxml/scripts/pack.py +0 -159
  674. package/packages/claude/skills/pptx/ooxml/scripts/unpack.py +0 -29
  675. package/packages/claude/skills/pptx/ooxml/scripts/validate.py +0 -69
  676. package/packages/claude/skills/pptx/ooxml/scripts/validation/__init__.py +0 -15
  677. package/packages/claude/skills/pptx/ooxml/scripts/validation/base.py +0 -951
  678. package/packages/claude/skills/pptx/ooxml/scripts/validation/docx.py +0 -274
  679. package/packages/claude/skills/pptx/ooxml/scripts/validation/pptx.py +0 -315
  680. package/packages/claude/skills/pptx/ooxml/scripts/validation/redlining.py +0 -279
  681. package/packages/claude/skills/pptx/ooxml.md +0 -427
  682. package/packages/claude/skills/pptx/scripts/html2pptx.js +0 -979
  683. package/packages/claude/skills/pptx/scripts/inventory.py +0 -1020
  684. package/packages/claude/skills/pptx/scripts/rearrange.py +0 -231
  685. package/packages/claude/skills/pptx/scripts/replace.py +0 -385
  686. package/packages/claude/skills/pptx/scripts/thumbnail.py +0 -450
  687. package/packages/claude/skills/slack-gif-creator/LICENSE.txt +0 -202
  688. package/packages/claude/skills/slack-gif-creator/SKILL.md +0 -646
  689. package/packages/claude/skills/slack-gif-creator/core/color_palettes.py +0 -302
  690. package/packages/claude/skills/slack-gif-creator/core/easing.py +0 -230
  691. package/packages/claude/skills/slack-gif-creator/core/frame_composer.py +0 -469
  692. package/packages/claude/skills/slack-gif-creator/core/gif_builder.py +0 -246
  693. package/packages/claude/skills/slack-gif-creator/core/typography.py +0 -357
  694. package/packages/claude/skills/slack-gif-creator/core/validators.py +0 -264
  695. package/packages/claude/skills/slack-gif-creator/core/visual_effects.py +0 -494
  696. package/packages/claude/skills/slack-gif-creator/requirements.txt +0 -4
  697. package/packages/claude/skills/slack-gif-creator/templates/bounce.py +0 -106
  698. package/packages/claude/skills/slack-gif-creator/templates/explode.py +0 -331
  699. package/packages/claude/skills/slack-gif-creator/templates/fade.py +0 -329
  700. package/packages/claude/skills/slack-gif-creator/templates/flip.py +0 -291
  701. package/packages/claude/skills/slack-gif-creator/templates/kaleidoscope.py +0 -211
  702. package/packages/claude/skills/slack-gif-creator/templates/morph.py +0 -329
  703. package/packages/claude/skills/slack-gif-creator/templates/move.py +0 -293
  704. package/packages/claude/skills/slack-gif-creator/templates/pulse.py +0 -268
  705. package/packages/claude/skills/slack-gif-creator/templates/shake.py +0 -127
  706. package/packages/claude/skills/slack-gif-creator/templates/slide.py +0 -291
  707. package/packages/claude/skills/slack-gif-creator/templates/spin.py +0 -269
  708. package/packages/claude/skills/slack-gif-creator/templates/wiggle.py +0 -300
  709. package/packages/claude/skills/slack-gif-creator/templates/zoom.py +0 -312
  710. package/packages/claude/skills/theme-factory/LICENSE.txt +0 -202
  711. package/packages/claude/skills/theme-factory/SKILL.md +0 -59
  712. package/packages/claude/skills/theme-factory/theme-showcase.pdf +0 -0
  713. package/packages/claude/skills/theme-factory/themes/arctic-frost.md +0 -19
  714. package/packages/claude/skills/theme-factory/themes/botanical-garden.md +0 -19
  715. package/packages/claude/skills/theme-factory/themes/desert-rose.md +0 -19
  716. package/packages/claude/skills/theme-factory/themes/forest-canopy.md +0 -19
  717. package/packages/claude/skills/theme-factory/themes/golden-hour.md +0 -19
  718. package/packages/claude/skills/theme-factory/themes/midnight-galaxy.md +0 -19
  719. package/packages/claude/skills/theme-factory/themes/modern-minimalist.md +0 -19
  720. package/packages/claude/skills/theme-factory/themes/ocean-depths.md +0 -19
  721. package/packages/claude/skills/theme-factory/themes/sunset-boulevard.md +0 -19
  722. package/packages/claude/skills/theme-factory/themes/tech-innovation.md +0 -19
  723. package/packages/claude/skills/webapp-testing/LICENSE.txt +0 -202
  724. package/packages/claude/skills/webapp-testing/SKILL.md +0 -96
  725. package/packages/claude/skills/webapp-testing/examples/console_logging.py +0 -35
  726. package/packages/claude/skills/webapp-testing/examples/element_discovery.py +0 -40
  727. package/packages/claude/skills/webapp-testing/examples/static_html_automation.py +0 -33
  728. package/packages/claude/skills/webapp-testing/scripts/with_server.py +0 -106
  729. package/packages/claude/skills/xlsx/LICENSE.txt +0 -30
  730. package/packages/claude/skills/xlsx/SKILL.md +0 -289
  731. package/packages/claude/skills/xlsx/recalc.py +0 -178
  732. package/packages/claude/subagentic-manual.md +0 -170
  733. package/packages/droid/commands/algorithmic-art/algorithmic-art.md +0 -159
  734. package/packages/droid/commands/algorithmic-art/templates/generator_template.js +0 -223
  735. package/packages/droid/commands/algorithmic-art/templates/viewer.html +0 -599
  736. package/packages/droid/commands/artifacts-builder/artifacts-builder.md +0 -285
  737. package/packages/droid/commands/artifacts-builder/scripts/bundle-artifact.sh +0 -54
  738. package/packages/droid/commands/artifacts-builder/scripts/init-artifact.sh +0 -322
  739. package/packages/droid/commands/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  740. package/packages/droid/commands/brand-guidelines.md +0 -123
  741. package/packages/droid/commands/canvas-design/canvas-design.md +0 -155
  742. package/packages/droid/commands/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  743. package/packages/droid/commands/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  744. package/packages/droid/commands/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  745. package/packages/droid/commands/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -93
  746. package/packages/droid/commands/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  747. package/packages/droid/commands/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -93
  748. package/packages/droid/commands/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  749. package/packages/droid/commands/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  750. package/packages/droid/commands/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  751. package/packages/droid/commands/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  752. package/packages/droid/commands/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  753. package/packages/droid/commands/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  754. package/packages/droid/commands/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  755. package/packages/droid/commands/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  756. package/packages/droid/commands/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -93
  757. package/packages/droid/commands/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  758. package/packages/droid/commands/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -94
  759. package/packages/droid/commands/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  760. package/packages/droid/commands/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  761. package/packages/droid/commands/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -93
  762. package/packages/droid/commands/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  763. package/packages/droid/commands/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -93
  764. package/packages/droid/commands/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  765. package/packages/droid/commands/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  766. package/packages/droid/commands/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  767. package/packages/droid/commands/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  768. package/packages/droid/commands/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  769. package/packages/droid/commands/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  770. package/packages/droid/commands/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  771. package/packages/droid/commands/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  772. package/packages/droid/commands/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  773. package/packages/droid/commands/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  774. package/packages/droid/commands/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  775. package/packages/droid/commands/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  776. package/packages/droid/commands/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  777. package/packages/droid/commands/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  778. package/packages/droid/commands/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  779. package/packages/droid/commands/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -93
  780. package/packages/droid/commands/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  781. package/packages/droid/commands/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  782. package/packages/droid/commands/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  783. package/packages/droid/commands/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  784. package/packages/droid/commands/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  785. package/packages/droid/commands/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  786. package/packages/droid/commands/canvas-design/canvas-fonts/Jura-OFL.txt +0 -93
  787. package/packages/droid/commands/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  788. package/packages/droid/commands/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  789. package/packages/droid/commands/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  790. package/packages/droid/commands/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  791. package/packages/droid/commands/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  792. package/packages/droid/commands/canvas-design/canvas-fonts/Lora-OFL.txt +0 -93
  793. package/packages/droid/commands/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  794. package/packages/droid/commands/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  795. package/packages/droid/commands/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -93
  796. package/packages/droid/commands/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  797. package/packages/droid/commands/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  798. package/packages/droid/commands/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  799. package/packages/droid/commands/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  800. package/packages/droid/commands/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -93
  801. package/packages/droid/commands/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  802. package/packages/droid/commands/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  803. package/packages/droid/commands/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -93
  804. package/packages/droid/commands/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -93
  805. package/packages/droid/commands/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  806. package/packages/droid/commands/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  807. package/packages/droid/commands/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -93
  808. package/packages/droid/commands/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  809. package/packages/droid/commands/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -93
  810. package/packages/droid/commands/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  811. package/packages/droid/commands/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  812. package/packages/droid/commands/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -93
  813. package/packages/droid/commands/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  814. package/packages/droid/commands/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -93
  815. package/packages/droid/commands/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  816. package/packages/droid/commands/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  817. package/packages/droid/commands/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  818. package/packages/droid/commands/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  819. package/packages/droid/commands/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -93
  820. package/packages/droid/commands/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  821. package/packages/droid/commands/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -93
  822. package/packages/droid/commands/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  823. package/packages/droid/commands/docx/docx.md +0 -255
  824. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  825. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  826. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  827. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  828. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  829. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  830. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  831. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  832. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  833. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  834. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  835. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  836. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  837. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  838. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  839. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  840. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  841. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  842. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  843. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  844. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  845. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  846. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  847. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  848. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  849. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  850. package/packages/droid/commands/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  851. package/packages/droid/commands/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  852. package/packages/droid/commands/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  853. package/packages/droid/commands/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  854. package/packages/droid/commands/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  855. package/packages/droid/commands/docx/ooxml/schemas/mce/mc.xsd +0 -75
  856. package/packages/droid/commands/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  857. package/packages/droid/commands/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  858. package/packages/droid/commands/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  859. package/packages/droid/commands/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  860. package/packages/droid/commands/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  861. package/packages/droid/commands/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  862. package/packages/droid/commands/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  863. package/packages/droid/commands/docx/ooxml/scripts/pack.py +0 -159
  864. package/packages/droid/commands/docx/ooxml/scripts/unpack.py +0 -29
  865. package/packages/droid/commands/docx/ooxml/scripts/validate.py +0 -69
  866. package/packages/droid/commands/docx/ooxml/scripts/validation/__init__.py +0 -15
  867. package/packages/droid/commands/docx/ooxml/scripts/validation/base.py +0 -951
  868. package/packages/droid/commands/docx/ooxml/scripts/validation/docx.py +0 -274
  869. package/packages/droid/commands/docx/ooxml/scripts/validation/pptx.py +0 -315
  870. package/packages/droid/commands/docx/ooxml/scripts/validation/redlining.py +0 -279
  871. package/packages/droid/commands/docx/scripts/__init__.py +0 -1
  872. package/packages/droid/commands/docx/scripts/document.py +0 -1276
  873. package/packages/droid/commands/docx/scripts/templates/comments.xml +0 -3
  874. package/packages/droid/commands/docx/scripts/templates/commentsExtended.xml +0 -3
  875. package/packages/droid/commands/docx/scripts/templates/commentsExtensible.xml +0 -3
  876. package/packages/droid/commands/docx/scripts/templates/commentsIds.xml +0 -3
  877. package/packages/droid/commands/docx/scripts/templates/people.xml +0 -3
  878. package/packages/droid/commands/docx/scripts/utilities.py +0 -374
  879. package/packages/droid/commands/internal-comms/examples/3p-updates.md +0 -47
  880. package/packages/droid/commands/internal-comms/examples/company-newsletter.md +0 -65
  881. package/packages/droid/commands/internal-comms/examples/faq-answers.md +0 -30
  882. package/packages/droid/commands/internal-comms/examples/general-comms.md +0 -16
  883. package/packages/droid/commands/internal-comms/internal-comms.md +0 -142
  884. package/packages/droid/commands/mcp-builder/mcp-builder.md +0 -282
  885. package/packages/droid/commands/mcp-builder/reference/evaluation.md +0 -602
  886. package/packages/droid/commands/mcp-builder/reference/mcp_best_practices.md +0 -915
  887. package/packages/droid/commands/mcp-builder/reference/node_mcp_server.md +0 -916
  888. package/packages/droid/commands/mcp-builder/reference/python_mcp_server.md +0 -752
  889. package/packages/droid/commands/mcp-builder/scripts/connections.py +0 -151
  890. package/packages/droid/commands/mcp-builder/scripts/evaluation.py +0 -373
  891. package/packages/droid/commands/mcp-builder/scripts/example_evaluation.xml +0 -22
  892. package/packages/droid/commands/mcp-builder/scripts/requirements.txt +0 -2
  893. package/packages/droid/commands/pdf/pdf.md +0 -194
  894. package/packages/droid/commands/pdf/scripts/check_bounding_boxes.py +0 -70
  895. package/packages/droid/commands/pdf/scripts/check_bounding_boxes_test.py +0 -226
  896. package/packages/droid/commands/pdf/scripts/check_fillable_fields.py +0 -12
  897. package/packages/droid/commands/pdf/scripts/convert_pdf_to_images.py +0 -35
  898. package/packages/droid/commands/pdf/scripts/create_validation_image.py +0 -41
  899. package/packages/droid/commands/pdf/scripts/extract_form_field_info.py +0 -152
  900. package/packages/droid/commands/pdf/scripts/fill_fillable_fields.py +0 -114
  901. package/packages/droid/commands/pdf/scripts/fill_pdf_form_with_annotations.py +0 -108
  902. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  903. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  904. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  905. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  906. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  907. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  908. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  909. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  910. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  911. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  912. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  913. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  914. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  915. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  916. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  917. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  918. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  919. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  920. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  921. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  922. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  923. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  924. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  925. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  926. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  927. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  928. package/packages/droid/commands/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  929. package/packages/droid/commands/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  930. package/packages/droid/commands/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  931. package/packages/droid/commands/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  932. package/packages/droid/commands/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  933. package/packages/droid/commands/pptx/ooxml/schemas/mce/mc.xsd +0 -75
  934. package/packages/droid/commands/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  935. package/packages/droid/commands/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  936. package/packages/droid/commands/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  937. package/packages/droid/commands/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  938. package/packages/droid/commands/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  939. package/packages/droid/commands/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  940. package/packages/droid/commands/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  941. package/packages/droid/commands/pptx/ooxml/scripts/pack.py +0 -159
  942. package/packages/droid/commands/pptx/ooxml/scripts/unpack.py +0 -29
  943. package/packages/droid/commands/pptx/ooxml/scripts/validate.py +0 -69
  944. package/packages/droid/commands/pptx/ooxml/scripts/validation/__init__.py +0 -15
  945. package/packages/droid/commands/pptx/ooxml/scripts/validation/base.py +0 -951
  946. package/packages/droid/commands/pptx/ooxml/scripts/validation/docx.py +0 -274
  947. package/packages/droid/commands/pptx/ooxml/scripts/validation/pptx.py +0 -315
  948. package/packages/droid/commands/pptx/ooxml/scripts/validation/redlining.py +0 -279
  949. package/packages/droid/commands/pptx/pptx.md +0 -272
  950. package/packages/droid/commands/pptx/scripts/html2pptx.js +0 -979
  951. package/packages/droid/commands/pptx/scripts/inventory.py +0 -1020
  952. package/packages/droid/commands/pptx/scripts/rearrange.py +0 -231
  953. package/packages/droid/commands/pptx/scripts/replace.py +0 -385
  954. package/packages/droid/commands/pptx/scripts/thumbnail.py +0 -450
  955. package/packages/droid/commands/skill-creator/skill-creator.md +0 -196
  956. package/packages/droid/commands/slack-gif-creator/core/color_palettes.py +0 -302
  957. package/packages/droid/commands/slack-gif-creator/core/easing.py +0 -230
  958. package/packages/droid/commands/slack-gif-creator/core/frame_composer.py +0 -469
  959. package/packages/droid/commands/slack-gif-creator/core/gif_builder.py +0 -246
  960. package/packages/droid/commands/slack-gif-creator/core/typography.py +0 -357
  961. package/packages/droid/commands/slack-gif-creator/core/validators.py +0 -264
  962. package/packages/droid/commands/slack-gif-creator/core/visual_effects.py +0 -494
  963. package/packages/droid/commands/slack-gif-creator/slack-gif-creator.md +0 -340
  964. package/packages/droid/commands/slack-gif-creator/templates/bounce.py +0 -106
  965. package/packages/droid/commands/slack-gif-creator/templates/explode.py +0 -331
  966. package/packages/droid/commands/slack-gif-creator/templates/fade.py +0 -329
  967. package/packages/droid/commands/slack-gif-creator/templates/flip.py +0 -291
  968. package/packages/droid/commands/slack-gif-creator/templates/kaleidoscope.py +0 -211
  969. package/packages/droid/commands/slack-gif-creator/templates/morph.py +0 -329
  970. package/packages/droid/commands/slack-gif-creator/templates/move.py +0 -293
  971. package/packages/droid/commands/slack-gif-creator/templates/pulse.py +0 -268
  972. package/packages/droid/commands/slack-gif-creator/templates/shake.py +0 -127
  973. package/packages/droid/commands/slack-gif-creator/templates/slide.py +0 -291
  974. package/packages/droid/commands/slack-gif-creator/templates/spin.py +0 -269
  975. package/packages/droid/commands/slack-gif-creator/templates/wiggle.py +0 -300
  976. package/packages/droid/commands/slack-gif-creator/templates/zoom.py +0 -312
  977. package/packages/droid/commands/theme-factory/theme-factory.md +0 -146
  978. package/packages/droid/commands/theme-factory/themes/arctic-frost.md +0 -19
  979. package/packages/droid/commands/theme-factory/themes/botanical-garden.md +0 -19
  980. package/packages/droid/commands/theme-factory/themes/desert-rose.md +0 -19
  981. package/packages/droid/commands/theme-factory/themes/forest-canopy.md +0 -19
  982. package/packages/droid/commands/theme-factory/themes/golden-hour.md +0 -19
  983. package/packages/droid/commands/theme-factory/themes/midnight-galaxy.md +0 -19
  984. package/packages/droid/commands/theme-factory/themes/modern-minimalist.md +0 -19
  985. package/packages/droid/commands/theme-factory/themes/ocean-depths.md +0 -19
  986. package/packages/droid/commands/theme-factory/themes/sunset-boulevard.md +0 -19
  987. package/packages/droid/commands/theme-factory/themes/tech-innovation.md +0 -19
  988. package/packages/droid/commands/webapp-testing/examples/console_logging.py +0 -35
  989. package/packages/droid/commands/webapp-testing/examples/element_discovery.py +0 -40
  990. package/packages/droid/commands/webapp-testing/examples/static_html_automation.py +0 -33
  991. package/packages/droid/commands/webapp-testing/scripts/with_server.py +0 -106
  992. package/packages/droid/commands/webapp-testing/webapp-testing.md +0 -275
  993. package/packages/droid/commands/xlsx/recalc.py +0 -178
  994. package/packages/droid/commands/xlsx/xlsx.md +0 -254
  995. package/packages/droid/droids/context-initializer.md +0 -291
  996. package/packages/droid/droids/full-stack-dev.md +0 -80
  997. package/packages/droid/droids/product-manager.md +0 -82
  998. package/packages/droid/droids/product-owner.md +0 -97
  999. package/packages/droid/resources/agent-teams.yaml +0 -50
  1000. package/packages/droid/resources/checklists.md +0 -1724
  1001. package/packages/droid/resources/data.md +0 -1372
  1002. package/packages/droid/resources/task-briefs.md +0 -4428
  1003. package/packages/droid/resources/templates.yaml +0 -5810
  1004. package/packages/droid/resources/workflows.yaml +0 -1513
  1005. package/packages/droid/subagentic-manual.md +0 -170
  1006. package/packages/opencode/agent/context-initializer.md +0 -295
  1007. package/packages/opencode/agent/full-stack-dev.md +0 -77
  1008. package/packages/opencode/agent/product-manager.md +0 -86
  1009. package/packages/opencode/agent/product-owner.md +0 -101
  1010. package/packages/opencode/command/README.md +0 -76
  1011. package/packages/opencode/command/algorithmic-art/templates/generator_template.js +0 -223
  1012. package/packages/opencode/command/algorithmic-art/templates/viewer.html +0 -599
  1013. package/packages/opencode/command/algorithmic-art.md +0 -159
  1014. package/packages/opencode/command/artifacts-builder/scripts/bundle-artifact.sh +0 -54
  1015. package/packages/opencode/command/artifacts-builder/scripts/init-artifact.sh +0 -322
  1016. package/packages/opencode/command/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  1017. package/packages/opencode/command/artifacts-builder.md +0 -285
  1018. package/packages/opencode/command/brand-guidelines.md +0 -123
  1019. package/packages/opencode/command/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  1020. package/packages/opencode/command/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  1021. package/packages/opencode/command/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  1022. package/packages/opencode/command/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -93
  1023. package/packages/opencode/command/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  1024. package/packages/opencode/command/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -93
  1025. package/packages/opencode/command/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  1026. package/packages/opencode/command/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  1027. package/packages/opencode/command/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  1028. package/packages/opencode/command/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  1029. package/packages/opencode/command/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  1030. package/packages/opencode/command/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  1031. package/packages/opencode/command/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  1032. package/packages/opencode/command/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  1033. package/packages/opencode/command/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -93
  1034. package/packages/opencode/command/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  1035. package/packages/opencode/command/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -94
  1036. package/packages/opencode/command/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  1037. package/packages/opencode/command/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  1038. package/packages/opencode/command/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -93
  1039. package/packages/opencode/command/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  1040. package/packages/opencode/command/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -93
  1041. package/packages/opencode/command/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  1042. package/packages/opencode/command/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  1043. package/packages/opencode/command/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  1044. package/packages/opencode/command/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  1045. package/packages/opencode/command/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  1046. package/packages/opencode/command/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  1047. package/packages/opencode/command/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  1048. package/packages/opencode/command/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  1049. package/packages/opencode/command/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  1050. package/packages/opencode/command/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  1051. package/packages/opencode/command/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  1052. package/packages/opencode/command/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  1053. package/packages/opencode/command/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  1054. package/packages/opencode/command/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  1055. package/packages/opencode/command/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  1056. package/packages/opencode/command/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -93
  1057. package/packages/opencode/command/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  1058. package/packages/opencode/command/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  1059. package/packages/opencode/command/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  1060. package/packages/opencode/command/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  1061. package/packages/opencode/command/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  1062. package/packages/opencode/command/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  1063. package/packages/opencode/command/canvas-design/canvas-fonts/Jura-OFL.txt +0 -93
  1064. package/packages/opencode/command/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  1065. package/packages/opencode/command/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  1066. package/packages/opencode/command/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  1067. package/packages/opencode/command/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  1068. package/packages/opencode/command/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  1069. package/packages/opencode/command/canvas-design/canvas-fonts/Lora-OFL.txt +0 -93
  1070. package/packages/opencode/command/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  1071. package/packages/opencode/command/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  1072. package/packages/opencode/command/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -93
  1073. package/packages/opencode/command/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  1074. package/packages/opencode/command/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  1075. package/packages/opencode/command/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  1076. package/packages/opencode/command/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  1077. package/packages/opencode/command/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -93
  1078. package/packages/opencode/command/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  1079. package/packages/opencode/command/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  1080. package/packages/opencode/command/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -93
  1081. package/packages/opencode/command/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -93
  1082. package/packages/opencode/command/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  1083. package/packages/opencode/command/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  1084. package/packages/opencode/command/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -93
  1085. package/packages/opencode/command/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  1086. package/packages/opencode/command/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -93
  1087. package/packages/opencode/command/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  1088. package/packages/opencode/command/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  1089. package/packages/opencode/command/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -93
  1090. package/packages/opencode/command/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  1091. package/packages/opencode/command/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -93
  1092. package/packages/opencode/command/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  1093. package/packages/opencode/command/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  1094. package/packages/opencode/command/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  1095. package/packages/opencode/command/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  1096. package/packages/opencode/command/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -93
  1097. package/packages/opencode/command/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  1098. package/packages/opencode/command/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -93
  1099. package/packages/opencode/command/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  1100. package/packages/opencode/command/canvas-design.md +0 -155
  1101. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  1102. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  1103. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  1104. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  1105. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  1106. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  1107. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  1108. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  1109. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  1110. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  1111. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  1112. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  1113. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  1114. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  1115. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  1116. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  1117. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  1118. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  1119. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  1120. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  1121. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  1122. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  1123. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  1124. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  1125. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  1126. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  1127. package/packages/opencode/command/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  1128. package/packages/opencode/command/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  1129. package/packages/opencode/command/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  1130. package/packages/opencode/command/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  1131. package/packages/opencode/command/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  1132. package/packages/opencode/command/docx/ooxml/schemas/mce/mc.xsd +0 -75
  1133. package/packages/opencode/command/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  1134. package/packages/opencode/command/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  1135. package/packages/opencode/command/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  1136. package/packages/opencode/command/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  1137. package/packages/opencode/command/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  1138. package/packages/opencode/command/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  1139. package/packages/opencode/command/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  1140. package/packages/opencode/command/docx/ooxml/scripts/pack.py +0 -159
  1141. package/packages/opencode/command/docx/ooxml/scripts/unpack.py +0 -29
  1142. package/packages/opencode/command/docx/ooxml/scripts/validate.py +0 -69
  1143. package/packages/opencode/command/docx/ooxml/scripts/validation/__init__.py +0 -15
  1144. package/packages/opencode/command/docx/ooxml/scripts/validation/base.py +0 -951
  1145. package/packages/opencode/command/docx/ooxml/scripts/validation/docx.py +0 -274
  1146. package/packages/opencode/command/docx/ooxml/scripts/validation/pptx.py +0 -315
  1147. package/packages/opencode/command/docx/ooxml/scripts/validation/redlining.py +0 -279
  1148. package/packages/opencode/command/docx/scripts/__init__.py +0 -1
  1149. package/packages/opencode/command/docx/scripts/document.py +0 -1276
  1150. package/packages/opencode/command/docx/scripts/templates/comments.xml +0 -3
  1151. package/packages/opencode/command/docx/scripts/templates/commentsExtended.xml +0 -3
  1152. package/packages/opencode/command/docx/scripts/templates/commentsExtensible.xml +0 -3
  1153. package/packages/opencode/command/docx/scripts/templates/commentsIds.xml +0 -3
  1154. package/packages/opencode/command/docx/scripts/templates/people.xml +0 -3
  1155. package/packages/opencode/command/docx/scripts/utilities.py +0 -374
  1156. package/packages/opencode/command/docx.md +0 -255
  1157. package/packages/opencode/command/internal-comms/examples/3p-updates.md +0 -47
  1158. package/packages/opencode/command/internal-comms/examples/company-newsletter.md +0 -65
  1159. package/packages/opencode/command/internal-comms/examples/faq-answers.md +0 -30
  1160. package/packages/opencode/command/internal-comms/examples/general-comms.md +0 -16
  1161. package/packages/opencode/command/internal-comms.md +0 -142
  1162. package/packages/opencode/command/mcp-builder/reference/evaluation.md +0 -602
  1163. package/packages/opencode/command/mcp-builder/reference/mcp_best_practices.md +0 -915
  1164. package/packages/opencode/command/mcp-builder/reference/node_mcp_server.md +0 -916
  1165. package/packages/opencode/command/mcp-builder/reference/python_mcp_server.md +0 -752
  1166. package/packages/opencode/command/mcp-builder/scripts/connections.py +0 -151
  1167. package/packages/opencode/command/mcp-builder/scripts/evaluation.py +0 -373
  1168. package/packages/opencode/command/mcp-builder/scripts/example_evaluation.xml +0 -22
  1169. package/packages/opencode/command/mcp-builder/scripts/requirements.txt +0 -2
  1170. package/packages/opencode/command/mcp-builder.md +0 -282
  1171. package/packages/opencode/command/pdf/scripts/check_bounding_boxes.py +0 -70
  1172. package/packages/opencode/command/pdf/scripts/check_bounding_boxes_test.py +0 -226
  1173. package/packages/opencode/command/pdf/scripts/check_fillable_fields.py +0 -12
  1174. package/packages/opencode/command/pdf/scripts/convert_pdf_to_images.py +0 -35
  1175. package/packages/opencode/command/pdf/scripts/create_validation_image.py +0 -41
  1176. package/packages/opencode/command/pdf/scripts/extract_form_field_info.py +0 -152
  1177. package/packages/opencode/command/pdf/scripts/fill_fillable_fields.py +0 -114
  1178. package/packages/opencode/command/pdf/scripts/fill_pdf_form_with_annotations.py +0 -108
  1179. package/packages/opencode/command/pdf.md +0 -194
  1180. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  1181. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  1182. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  1183. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  1184. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  1185. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  1186. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  1187. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  1188. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  1189. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  1190. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  1191. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  1192. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  1193. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  1194. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  1195. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  1196. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  1197. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  1198. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  1199. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  1200. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  1201. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  1202. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  1203. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  1204. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  1205. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  1206. package/packages/opencode/command/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  1207. package/packages/opencode/command/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  1208. package/packages/opencode/command/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  1209. package/packages/opencode/command/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  1210. package/packages/opencode/command/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  1211. package/packages/opencode/command/pptx/ooxml/schemas/mce/mc.xsd +0 -75
  1212. package/packages/opencode/command/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
  1213. package/packages/opencode/command/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
  1214. package/packages/opencode/command/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
  1215. package/packages/opencode/command/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
  1216. package/packages/opencode/command/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
  1217. package/packages/opencode/command/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  1218. package/packages/opencode/command/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
  1219. package/packages/opencode/command/pptx/ooxml/scripts/pack.py +0 -159
  1220. package/packages/opencode/command/pptx/ooxml/scripts/unpack.py +0 -29
  1221. package/packages/opencode/command/pptx/ooxml/scripts/validate.py +0 -69
  1222. package/packages/opencode/command/pptx/ooxml/scripts/validation/__init__.py +0 -15
  1223. package/packages/opencode/command/pptx/ooxml/scripts/validation/base.py +0 -951
  1224. package/packages/opencode/command/pptx/ooxml/scripts/validation/docx.py +0 -274
  1225. package/packages/opencode/command/pptx/ooxml/scripts/validation/pptx.py +0 -315
  1226. package/packages/opencode/command/pptx/ooxml/scripts/validation/redlining.py +0 -279
  1227. package/packages/opencode/command/pptx/scripts/html2pptx.js +0 -979
  1228. package/packages/opencode/command/pptx/scripts/inventory.py +0 -1020
  1229. package/packages/opencode/command/pptx/scripts/rearrange.py +0 -231
  1230. package/packages/opencode/command/pptx/scripts/replace.py +0 -385
  1231. package/packages/opencode/command/pptx/scripts/thumbnail.py +0 -450
  1232. package/packages/opencode/command/pptx.md +0 -272
  1233. package/packages/opencode/command/slack-gif-creator/core/color_palettes.py +0 -302
  1234. package/packages/opencode/command/slack-gif-creator/core/easing.py +0 -230
  1235. package/packages/opencode/command/slack-gif-creator/core/frame_composer.py +0 -469
  1236. package/packages/opencode/command/slack-gif-creator/core/gif_builder.py +0 -246
  1237. package/packages/opencode/command/slack-gif-creator/core/typography.py +0 -357
  1238. package/packages/opencode/command/slack-gif-creator/core/validators.py +0 -264
  1239. package/packages/opencode/command/slack-gif-creator/core/visual_effects.py +0 -494
  1240. package/packages/opencode/command/slack-gif-creator/templates/bounce.py +0 -106
  1241. package/packages/opencode/command/slack-gif-creator/templates/explode.py +0 -331
  1242. package/packages/opencode/command/slack-gif-creator/templates/fade.py +0 -329
  1243. package/packages/opencode/command/slack-gif-creator/templates/flip.py +0 -291
  1244. package/packages/opencode/command/slack-gif-creator/templates/kaleidoscope.py +0 -211
  1245. package/packages/opencode/command/slack-gif-creator/templates/morph.py +0 -329
  1246. package/packages/opencode/command/slack-gif-creator/templates/move.py +0 -293
  1247. package/packages/opencode/command/slack-gif-creator/templates/pulse.py +0 -268
  1248. package/packages/opencode/command/slack-gif-creator/templates/shake.py +0 -127
  1249. package/packages/opencode/command/slack-gif-creator/templates/slide.py +0 -291
  1250. package/packages/opencode/command/slack-gif-creator/templates/spin.py +0 -269
  1251. package/packages/opencode/command/slack-gif-creator/templates/wiggle.py +0 -300
  1252. package/packages/opencode/command/slack-gif-creator/templates/zoom.py +0 -312
  1253. package/packages/opencode/command/slack-gif-creator.md +0 -340
  1254. package/packages/opencode/command/theme-factory/themes/arctic-frost.md +0 -19
  1255. package/packages/opencode/command/theme-factory/themes/botanical-garden.md +0 -19
  1256. package/packages/opencode/command/theme-factory/themes/desert-rose.md +0 -19
  1257. package/packages/opencode/command/theme-factory/themes/forest-canopy.md +0 -19
  1258. package/packages/opencode/command/theme-factory/themes/golden-hour.md +0 -19
  1259. package/packages/opencode/command/theme-factory/themes/midnight-galaxy.md +0 -19
  1260. package/packages/opencode/command/theme-factory/themes/modern-minimalist.md +0 -19
  1261. package/packages/opencode/command/theme-factory/themes/ocean-depths.md +0 -19
  1262. package/packages/opencode/command/theme-factory/themes/sunset-boulevard.md +0 -19
  1263. package/packages/opencode/command/theme-factory/themes/tech-innovation.md +0 -19
  1264. package/packages/opencode/command/theme-factory.md +0 -146
  1265. package/packages/opencode/command/webapp-testing/examples/console_logging.py +0 -35
  1266. package/packages/opencode/command/webapp-testing/examples/element_discovery.py +0 -40
  1267. package/packages/opencode/command/webapp-testing/examples/static_html_automation.py +0 -33
  1268. package/packages/opencode/command/webapp-testing/scripts/with_server.py +0 -106
  1269. package/packages/opencode/command/webapp-testing.md +0 -275
  1270. package/packages/opencode/command/xlsx/recalc.py +0 -178
  1271. package/packages/opencode/command/xlsx.md +0 -254
  1272. package/packages/opencode/resources/agent-teams.yaml +0 -50
  1273. package/packages/opencode/resources/checklists.md +0 -1724
  1274. package/packages/opencode/resources/data.md +0 -1372
  1275. package/packages/opencode/resources/task-briefs.md +0 -4428
  1276. package/packages/opencode/resources/templates.yaml +0 -5810
  1277. package/packages/opencode/resources/workflows.yaml +0 -1513
  1278. package/packages/opencode/subagentic-manual.md +0 -170
@@ -1,979 +0,0 @@
1
- /**
2
- * html2pptx - Convert HTML slide to pptxgenjs slide with positioned elements
3
- *
4
- * USAGE:
5
- * const pptx = new pptxgen();
6
- * pptx.layout = 'LAYOUT_16x9'; // Must match HTML body dimensions
7
- *
8
- * const { slide, placeholders } = await html2pptx('slide.html', pptx);
9
- * slide.addChart(pptx.charts.LINE, data, placeholders[0]);
10
- *
11
- * await pptx.writeFile('output.pptx');
12
- *
13
- * FEATURES:
14
- * - Converts HTML to PowerPoint with accurate positioning
15
- * - Supports text, images, shapes, and bullet lists
16
- * - Extracts placeholder elements (class="placeholder") with positions
17
- * - Handles CSS gradients, borders, and margins
18
- *
19
- * VALIDATION:
20
- * - Uses body width/height from HTML for viewport sizing
21
- * - Throws error if HTML dimensions don't match presentation layout
22
- * - Throws error if content overflows body (with overflow details)
23
- *
24
- * RETURNS:
25
- * { slide, placeholders } where placeholders is an array of { id, x, y, w, h }
26
- */
27
-
28
- const { chromium } = require('playwright');
29
- const path = require('path');
30
- const sharp = require('sharp');
31
-
32
- const PT_PER_PX = 0.75;
33
- const PX_PER_IN = 96;
34
- const EMU_PER_IN = 914400;
35
-
36
- // Helper: Get body dimensions and check for overflow
37
- async function getBodyDimensions(page) {
38
- const bodyDimensions = await page.evaluate(() => {
39
- const body = document.body;
40
- const style = window.getComputedStyle(body);
41
-
42
- return {
43
- width: parseFloat(style.width),
44
- height: parseFloat(style.height),
45
- scrollWidth: body.scrollWidth,
46
- scrollHeight: body.scrollHeight
47
- };
48
- });
49
-
50
- const errors = [];
51
- const widthOverflowPx = Math.max(0, bodyDimensions.scrollWidth - bodyDimensions.width - 1);
52
- const heightOverflowPx = Math.max(0, bodyDimensions.scrollHeight - bodyDimensions.height - 1);
53
-
54
- const widthOverflowPt = widthOverflowPx * PT_PER_PX;
55
- const heightOverflowPt = heightOverflowPx * PT_PER_PX;
56
-
57
- if (widthOverflowPt > 0 || heightOverflowPt > 0) {
58
- const directions = [];
59
- if (widthOverflowPt > 0) directions.push(`${widthOverflowPt.toFixed(1)}pt horizontally`);
60
- if (heightOverflowPt > 0) directions.push(`${heightOverflowPt.toFixed(1)}pt vertically`);
61
- const reminder = heightOverflowPt > 0 ? ' (Remember: leave 0.5" margin at bottom of slide)' : '';
62
- errors.push(`HTML content overflows body by ${directions.join(' and ')}${reminder}`);
63
- }
64
-
65
- return { ...bodyDimensions, errors };
66
- }
67
-
68
- // Helper: Validate dimensions match presentation layout
69
- function validateDimensions(bodyDimensions, pres) {
70
- const errors = [];
71
- const widthInches = bodyDimensions.width / PX_PER_IN;
72
- const heightInches = bodyDimensions.height / PX_PER_IN;
73
-
74
- if (pres.presLayout) {
75
- const layoutWidth = pres.presLayout.width / EMU_PER_IN;
76
- const layoutHeight = pres.presLayout.height / EMU_PER_IN;
77
-
78
- if (Math.abs(layoutWidth - widthInches) > 0.1 || Math.abs(layoutHeight - heightInches) > 0.1) {
79
- errors.push(
80
- `HTML dimensions (${widthInches.toFixed(1)}" × ${heightInches.toFixed(1)}") ` +
81
- `don't match presentation layout (${layoutWidth.toFixed(1)}" × ${layoutHeight.toFixed(1)}")`
82
- );
83
- }
84
- }
85
- return errors;
86
- }
87
-
88
- function validateTextBoxPosition(slideData, bodyDimensions) {
89
- const errors = [];
90
- const slideHeightInches = bodyDimensions.height / PX_PER_IN;
91
- const minBottomMargin = 0.5; // 0.5 inches from bottom
92
-
93
- for (const el of slideData.elements) {
94
- // Check text elements (p, h1-h6, list)
95
- if (['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'list'].includes(el.type)) {
96
- const fontSize = el.style?.fontSize || 0;
97
- const bottomEdge = el.position.y + el.position.h;
98
- const distanceFromBottom = slideHeightInches - bottomEdge;
99
-
100
- if (fontSize > 12 && distanceFromBottom < minBottomMargin) {
101
- const getText = () => {
102
- if (typeof el.text === 'string') return el.text;
103
- if (Array.isArray(el.text)) return el.text.find(t => t.text)?.text || '';
104
- if (Array.isArray(el.items)) return el.items.find(item => item.text)?.text || '';
105
- return '';
106
- };
107
- const textPrefix = getText().substring(0, 50) + (getText().length > 50 ? '...' : '');
108
-
109
- errors.push(
110
- `Text box "${textPrefix}" ends too close to bottom edge ` +
111
- `(${distanceFromBottom.toFixed(2)}" from bottom, minimum ${minBottomMargin}" required)`
112
- );
113
- }
114
- }
115
- }
116
-
117
- return errors;
118
- }
119
-
120
- // Helper: Add background to slide
121
- async function addBackground(slideData, targetSlide, tmpDir) {
122
- if (slideData.background.type === 'image' && slideData.background.path) {
123
- let imagePath = slideData.background.path.startsWith('file://')
124
- ? slideData.background.path.replace('file://', '')
125
- : slideData.background.path;
126
- targetSlide.background = { path: imagePath };
127
- } else if (slideData.background.type === 'color' && slideData.background.value) {
128
- targetSlide.background = { color: slideData.background.value };
129
- }
130
- }
131
-
132
- // Helper: Add elements to slide
133
- function addElements(slideData, targetSlide, pres) {
134
- for (const el of slideData.elements) {
135
- if (el.type === 'image') {
136
- let imagePath = el.src.startsWith('file://') ? el.src.replace('file://', '') : el.src;
137
- targetSlide.addImage({
138
- path: imagePath,
139
- x: el.position.x,
140
- y: el.position.y,
141
- w: el.position.w,
142
- h: el.position.h
143
- });
144
- } else if (el.type === 'line') {
145
- targetSlide.addShape(pres.ShapeType.line, {
146
- x: el.x1,
147
- y: el.y1,
148
- w: el.x2 - el.x1,
149
- h: el.y2 - el.y1,
150
- line: { color: el.color, width: el.width }
151
- });
152
- } else if (el.type === 'shape') {
153
- const shapeOptions = {
154
- x: el.position.x,
155
- y: el.position.y,
156
- w: el.position.w,
157
- h: el.position.h,
158
- shape: el.shape.rectRadius > 0 ? pres.ShapeType.roundRect : pres.ShapeType.rect
159
- };
160
-
161
- if (el.shape.fill) {
162
- shapeOptions.fill = { color: el.shape.fill };
163
- if (el.shape.transparency != null) shapeOptions.fill.transparency = el.shape.transparency;
164
- }
165
- if (el.shape.line) shapeOptions.line = el.shape.line;
166
- if (el.shape.rectRadius > 0) shapeOptions.rectRadius = el.shape.rectRadius;
167
- if (el.shape.shadow) shapeOptions.shadow = el.shape.shadow;
168
-
169
- targetSlide.addText(el.text || '', shapeOptions);
170
- } else if (el.type === 'list') {
171
- const listOptions = {
172
- x: el.position.x,
173
- y: el.position.y,
174
- w: el.position.w,
175
- h: el.position.h,
176
- fontSize: el.style.fontSize,
177
- fontFace: el.style.fontFace,
178
- color: el.style.color,
179
- align: el.style.align,
180
- valign: 'top',
181
- lineSpacing: el.style.lineSpacing,
182
- paraSpaceBefore: el.style.paraSpaceBefore,
183
- paraSpaceAfter: el.style.paraSpaceAfter,
184
- margin: el.style.margin
185
- };
186
- if (el.style.margin) listOptions.margin = el.style.margin;
187
- targetSlide.addText(el.items, listOptions);
188
- } else {
189
- // Check if text is single-line (height suggests one line)
190
- const lineHeight = el.style.lineSpacing || el.style.fontSize * 1.2;
191
- const isSingleLine = el.position.h <= lineHeight * 1.5;
192
-
193
- let adjustedX = el.position.x;
194
- let adjustedW = el.position.w;
195
-
196
- // Make single-line text 2% wider to account for underestimate
197
- if (isSingleLine) {
198
- const widthIncrease = el.position.w * 0.02;
199
- const align = el.style.align;
200
-
201
- if (align === 'center') {
202
- // Center: expand both sides
203
- adjustedX = el.position.x - (widthIncrease / 2);
204
- adjustedW = el.position.w + widthIncrease;
205
- } else if (align === 'right') {
206
- // Right: expand to the left
207
- adjustedX = el.position.x - widthIncrease;
208
- adjustedW = el.position.w + widthIncrease;
209
- } else {
210
- // Left (default): expand to the right
211
- adjustedW = el.position.w + widthIncrease;
212
- }
213
- }
214
-
215
- const textOptions = {
216
- x: adjustedX,
217
- y: el.position.y,
218
- w: adjustedW,
219
- h: el.position.h,
220
- fontSize: el.style.fontSize,
221
- fontFace: el.style.fontFace,
222
- color: el.style.color,
223
- bold: el.style.bold,
224
- italic: el.style.italic,
225
- underline: el.style.underline,
226
- valign: 'top',
227
- lineSpacing: el.style.lineSpacing,
228
- paraSpaceBefore: el.style.paraSpaceBefore,
229
- paraSpaceAfter: el.style.paraSpaceAfter,
230
- inset: 0 // Remove default PowerPoint internal padding
231
- };
232
-
233
- if (el.style.align) textOptions.align = el.style.align;
234
- if (el.style.margin) textOptions.margin = el.style.margin;
235
- if (el.style.rotate !== undefined) textOptions.rotate = el.style.rotate;
236
- if (el.style.transparency !== null && el.style.transparency !== undefined) textOptions.transparency = el.style.transparency;
237
-
238
- targetSlide.addText(el.text, textOptions);
239
- }
240
- }
241
- }
242
-
243
- // Helper: Extract slide data from HTML page
244
- async function extractSlideData(page) {
245
- return await page.evaluate(() => {
246
- const PT_PER_PX = 0.75;
247
- const PX_PER_IN = 96;
248
-
249
- // Fonts that are single-weight and should not have bold applied
250
- // (applying bold causes PowerPoint to use faux bold which makes text wider)
251
- const SINGLE_WEIGHT_FONTS = ['impact'];
252
-
253
- // Helper: Check if a font should skip bold formatting
254
- const shouldSkipBold = (fontFamily) => {
255
- if (!fontFamily) return false;
256
- const normalizedFont = fontFamily.toLowerCase().replace(/['"]/g, '').split(',')[0].trim();
257
- return SINGLE_WEIGHT_FONTS.includes(normalizedFont);
258
- };
259
-
260
- // Unit conversion helpers
261
- const pxToInch = (px) => px / PX_PER_IN;
262
- const pxToPoints = (pxStr) => parseFloat(pxStr) * PT_PER_PX;
263
- const rgbToHex = (rgbStr) => {
264
- // Handle transparent backgrounds by defaulting to white
265
- if (rgbStr === 'rgba(0, 0, 0, 0)' || rgbStr === 'transparent') return 'FFFFFF';
266
-
267
- const match = rgbStr.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
268
- if (!match) return 'FFFFFF';
269
- return match.slice(1).map(n => parseInt(n).toString(16).padStart(2, '0')).join('');
270
- };
271
-
272
- const extractAlpha = (rgbStr) => {
273
- const match = rgbStr.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);
274
- if (!match || !match[4]) return null;
275
- const alpha = parseFloat(match[4]);
276
- return Math.round((1 - alpha) * 100);
277
- };
278
-
279
- const applyTextTransform = (text, textTransform) => {
280
- if (textTransform === 'uppercase') return text.toUpperCase();
281
- if (textTransform === 'lowercase') return text.toLowerCase();
282
- if (textTransform === 'capitalize') {
283
- return text.replace(/\b\w/g, c => c.toUpperCase());
284
- }
285
- return text;
286
- };
287
-
288
- // Extract rotation angle from CSS transform and writing-mode
289
- const getRotation = (transform, writingMode) => {
290
- let angle = 0;
291
-
292
- // Handle writing-mode first
293
- // PowerPoint: 90° = text rotated 90° clockwise (reads top to bottom, letters upright)
294
- // PowerPoint: 270° = text rotated 270° clockwise (reads bottom to top, letters upright)
295
- if (writingMode === 'vertical-rl') {
296
- // vertical-rl alone = text reads top to bottom = 90° in PowerPoint
297
- angle = 90;
298
- } else if (writingMode === 'vertical-lr') {
299
- // vertical-lr alone = text reads bottom to top = 270° in PowerPoint
300
- angle = 270;
301
- }
302
-
303
- // Then add any transform rotation
304
- if (transform && transform !== 'none') {
305
- // Try to match rotate() function
306
- const rotateMatch = transform.match(/rotate\((-?\d+(?:\.\d+)?)deg\)/);
307
- if (rotateMatch) {
308
- angle += parseFloat(rotateMatch[1]);
309
- } else {
310
- // Browser may compute as matrix - extract rotation from matrix
311
- const matrixMatch = transform.match(/matrix\(([^)]+)\)/);
312
- if (matrixMatch) {
313
- const values = matrixMatch[1].split(',').map(parseFloat);
314
- // matrix(a, b, c, d, e, f) where rotation = atan2(b, a)
315
- const matrixAngle = Math.atan2(values[1], values[0]) * (180 / Math.PI);
316
- angle += Math.round(matrixAngle);
317
- }
318
- }
319
- }
320
-
321
- // Normalize to 0-359 range
322
- angle = angle % 360;
323
- if (angle < 0) angle += 360;
324
-
325
- return angle === 0 ? null : angle;
326
- };
327
-
328
- // Get position/dimensions accounting for rotation
329
- const getPositionAndSize = (el, rect, rotation) => {
330
- if (rotation === null) {
331
- return { x: rect.left, y: rect.top, w: rect.width, h: rect.height };
332
- }
333
-
334
- // For 90° or 270° rotations, swap width and height
335
- // because PowerPoint applies rotation to the original (unrotated) box
336
- const isVertical = rotation === 90 || rotation === 270;
337
-
338
- if (isVertical) {
339
- // The browser shows us the rotated dimensions (tall box for vertical text)
340
- // But PowerPoint needs the pre-rotation dimensions (wide box that will be rotated)
341
- // So we swap: browser's height becomes PPT's width, browser's width becomes PPT's height
342
- const centerX = rect.left + rect.width / 2;
343
- const centerY = rect.top + rect.height / 2;
344
-
345
- return {
346
- x: centerX - rect.height / 2,
347
- y: centerY - rect.width / 2,
348
- w: rect.height,
349
- h: rect.width
350
- };
351
- }
352
-
353
- // For other rotations, use element's offset dimensions
354
- const centerX = rect.left + rect.width / 2;
355
- const centerY = rect.top + rect.height / 2;
356
- return {
357
- x: centerX - el.offsetWidth / 2,
358
- y: centerY - el.offsetHeight / 2,
359
- w: el.offsetWidth,
360
- h: el.offsetHeight
361
- };
362
- };
363
-
364
- // Parse CSS box-shadow into PptxGenJS shadow properties
365
- const parseBoxShadow = (boxShadow) => {
366
- if (!boxShadow || boxShadow === 'none') return null;
367
-
368
- // Browser computed style format: "rgba(0, 0, 0, 0.3) 2px 2px 8px 0px [inset]"
369
- // CSS format: "[inset] 2px 2px 8px 0px rgba(0, 0, 0, 0.3)"
370
-
371
- const insetMatch = boxShadow.match(/inset/);
372
-
373
- // IMPORTANT: PptxGenJS/PowerPoint doesn't properly support inset shadows
374
- // Only process outer shadows to avoid file corruption
375
- if (insetMatch) return null;
376
-
377
- // Extract color first (rgba or rgb at start)
378
- const colorMatch = boxShadow.match(/rgba?\([^)]+\)/);
379
-
380
- // Extract numeric values (handles both px and pt units)
381
- const parts = boxShadow.match(/([-\d.]+)(px|pt)/g);
382
-
383
- if (!parts || parts.length < 2) return null;
384
-
385
- const offsetX = parseFloat(parts[0]);
386
- const offsetY = parseFloat(parts[1]);
387
- const blur = parts.length > 2 ? parseFloat(parts[2]) : 0;
388
-
389
- // Calculate angle from offsets (in degrees, 0 = right, 90 = down)
390
- let angle = 0;
391
- if (offsetX !== 0 || offsetY !== 0) {
392
- angle = Math.atan2(offsetY, offsetX) * (180 / Math.PI);
393
- if (angle < 0) angle += 360;
394
- }
395
-
396
- // Calculate offset distance (hypotenuse)
397
- const offset = Math.sqrt(offsetX * offsetX + offsetY * offsetY) * PT_PER_PX;
398
-
399
- // Extract opacity from rgba
400
- let opacity = 0.5;
401
- if (colorMatch) {
402
- const opacityMatch = colorMatch[0].match(/[\d.]+\)$/);
403
- if (opacityMatch) {
404
- opacity = parseFloat(opacityMatch[0].replace(')', ''));
405
- }
406
- }
407
-
408
- return {
409
- type: 'outer',
410
- angle: Math.round(angle),
411
- blur: blur * 0.75, // Convert to points
412
- color: colorMatch ? rgbToHex(colorMatch[0]) : '000000',
413
- offset: offset,
414
- opacity
415
- };
416
- };
417
-
418
- // Parse inline formatting tags (<b>, <i>, <u>, <strong>, <em>, <span>) into text runs
419
- const parseInlineFormatting = (element, baseOptions = {}, runs = [], baseTextTransform = (x) => x) => {
420
- let prevNodeIsText = false;
421
-
422
- element.childNodes.forEach((node) => {
423
- let textTransform = baseTextTransform;
424
-
425
- const isText = node.nodeType === Node.TEXT_NODE || node.tagName === 'BR';
426
- if (isText) {
427
- const text = node.tagName === 'BR' ? '\n' : textTransform(node.textContent.replace(/\s+/g, ' '));
428
- const prevRun = runs[runs.length - 1];
429
- if (prevNodeIsText && prevRun) {
430
- prevRun.text += text;
431
- } else {
432
- runs.push({ text, options: { ...baseOptions } });
433
- }
434
-
435
- } else if (node.nodeType === Node.ELEMENT_NODE && node.textContent.trim()) {
436
- const options = { ...baseOptions };
437
- const computed = window.getComputedStyle(node);
438
-
439
- // Handle inline elements with computed styles
440
- if (node.tagName === 'SPAN' || node.tagName === 'B' || node.tagName === 'STRONG' || node.tagName === 'I' || node.tagName === 'EM' || node.tagName === 'U') {
441
- const isBold = computed.fontWeight === 'bold' || parseInt(computed.fontWeight) >= 600;
442
- if (isBold && !shouldSkipBold(computed.fontFamily)) options.bold = true;
443
- if (computed.fontStyle === 'italic') options.italic = true;
444
- if (computed.textDecoration && computed.textDecoration.includes('underline')) options.underline = true;
445
- if (computed.color && computed.color !== 'rgb(0, 0, 0)') {
446
- options.color = rgbToHex(computed.color);
447
- const transparency = extractAlpha(computed.color);
448
- if (transparency !== null) options.transparency = transparency;
449
- }
450
- if (computed.fontSize) options.fontSize = pxToPoints(computed.fontSize);
451
-
452
- // Apply text-transform on the span element itself
453
- if (computed.textTransform && computed.textTransform !== 'none') {
454
- const transformStr = computed.textTransform;
455
- textTransform = (text) => applyTextTransform(text, transformStr);
456
- }
457
-
458
- // Validate: Check for margins on inline elements
459
- if (computed.marginLeft && parseFloat(computed.marginLeft) > 0) {
460
- errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-left which is not supported in PowerPoint. Remove margin from inline elements.`);
461
- }
462
- if (computed.marginRight && parseFloat(computed.marginRight) > 0) {
463
- errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-right which is not supported in PowerPoint. Remove margin from inline elements.`);
464
- }
465
- if (computed.marginTop && parseFloat(computed.marginTop) > 0) {
466
- errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-top which is not supported in PowerPoint. Remove margin from inline elements.`);
467
- }
468
- if (computed.marginBottom && parseFloat(computed.marginBottom) > 0) {
469
- errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-bottom which is not supported in PowerPoint. Remove margin from inline elements.`);
470
- }
471
-
472
- // Recursively process the child node. This will flatten nested spans into multiple runs.
473
- parseInlineFormatting(node, options, runs, textTransform);
474
- }
475
- }
476
-
477
- prevNodeIsText = isText;
478
- });
479
-
480
- // Trim leading space from first run and trailing space from last run
481
- if (runs.length > 0) {
482
- runs[0].text = runs[0].text.replace(/^\s+/, '');
483
- runs[runs.length - 1].text = runs[runs.length - 1].text.replace(/\s+$/, '');
484
- }
485
-
486
- return runs.filter(r => r.text.length > 0);
487
- };
488
-
489
- // Extract background from body (image or color)
490
- const body = document.body;
491
- const bodyStyle = window.getComputedStyle(body);
492
- const bgImage = bodyStyle.backgroundImage;
493
- const bgColor = bodyStyle.backgroundColor;
494
-
495
- // Collect validation errors
496
- const errors = [];
497
-
498
- // Validate: Check for CSS gradients
499
- if (bgImage && (bgImage.includes('linear-gradient') || bgImage.includes('radial-gradient'))) {
500
- errors.push(
501
- 'CSS gradients are not supported. Use Sharp to rasterize gradients as PNG images first, ' +
502
- 'then reference with background-image: url(\'gradient.png\')'
503
- );
504
- }
505
-
506
- let background;
507
- if (bgImage && bgImage !== 'none') {
508
- // Extract URL from url("...") or url(...)
509
- const urlMatch = bgImage.match(/url\(["']?([^"')]+)["']?\)/);
510
- if (urlMatch) {
511
- background = {
512
- type: 'image',
513
- path: urlMatch[1]
514
- };
515
- } else {
516
- background = {
517
- type: 'color',
518
- value: rgbToHex(bgColor)
519
- };
520
- }
521
- } else {
522
- background = {
523
- type: 'color',
524
- value: rgbToHex(bgColor)
525
- };
526
- }
527
-
528
- // Process all elements
529
- const elements = [];
530
- const placeholders = [];
531
- const textTags = ['P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'UL', 'OL', 'LI'];
532
- const processed = new Set();
533
-
534
- document.querySelectorAll('*').forEach((el) => {
535
- if (processed.has(el)) return;
536
-
537
- // Validate text elements don't have backgrounds, borders, or shadows
538
- if (textTags.includes(el.tagName)) {
539
- const computed = window.getComputedStyle(el);
540
- const hasBg = computed.backgroundColor && computed.backgroundColor !== 'rgba(0, 0, 0, 0)';
541
- const hasBorder = (computed.borderWidth && parseFloat(computed.borderWidth) > 0) ||
542
- (computed.borderTopWidth && parseFloat(computed.borderTopWidth) > 0) ||
543
- (computed.borderRightWidth && parseFloat(computed.borderRightWidth) > 0) ||
544
- (computed.borderBottomWidth && parseFloat(computed.borderBottomWidth) > 0) ||
545
- (computed.borderLeftWidth && parseFloat(computed.borderLeftWidth) > 0);
546
- const hasShadow = computed.boxShadow && computed.boxShadow !== 'none';
547
-
548
- if (hasBg || hasBorder || hasShadow) {
549
- errors.push(
550
- `Text element <${el.tagName.toLowerCase()}> has ${hasBg ? 'background' : hasBorder ? 'border' : 'shadow'}. ` +
551
- 'Backgrounds, borders, and shadows are only supported on <div> elements, not text elements.'
552
- );
553
- return;
554
- }
555
- }
556
-
557
- // Extract placeholder elements (for charts, etc.)
558
- if (el.className && el.className.includes('placeholder')) {
559
- const rect = el.getBoundingClientRect();
560
- if (rect.width === 0 || rect.height === 0) {
561
- errors.push(
562
- `Placeholder "${el.id || 'unnamed'}" has ${rect.width === 0 ? 'width: 0' : 'height: 0'}. Check the layout CSS.`
563
- );
564
- } else {
565
- placeholders.push({
566
- id: el.id || `placeholder-${placeholders.length}`,
567
- x: pxToInch(rect.left),
568
- y: pxToInch(rect.top),
569
- w: pxToInch(rect.width),
570
- h: pxToInch(rect.height)
571
- });
572
- }
573
- processed.add(el);
574
- return;
575
- }
576
-
577
- // Extract images
578
- if (el.tagName === 'IMG') {
579
- const rect = el.getBoundingClientRect();
580
- if (rect.width > 0 && rect.height > 0) {
581
- elements.push({
582
- type: 'image',
583
- src: el.src,
584
- position: {
585
- x: pxToInch(rect.left),
586
- y: pxToInch(rect.top),
587
- w: pxToInch(rect.width),
588
- h: pxToInch(rect.height)
589
- }
590
- });
591
- processed.add(el);
592
- return;
593
- }
594
- }
595
-
596
- // Extract DIVs with backgrounds/borders as shapes
597
- const isContainer = el.tagName === 'DIV' && !textTags.includes(el.tagName);
598
- if (isContainer) {
599
- const computed = window.getComputedStyle(el);
600
- const hasBg = computed.backgroundColor && computed.backgroundColor !== 'rgba(0, 0, 0, 0)';
601
-
602
- // Validate: Check for unwrapped text content in DIV
603
- for (const node of el.childNodes) {
604
- if (node.nodeType === Node.TEXT_NODE) {
605
- const text = node.textContent.trim();
606
- if (text) {
607
- errors.push(
608
- `DIV element contains unwrapped text "${text.substring(0, 50)}${text.length > 50 ? '...' : ''}". ` +
609
- 'All text must be wrapped in <p>, <h1>-<h6>, <ul>, or <ol> tags to appear in PowerPoint.'
610
- );
611
- }
612
- }
613
- }
614
-
615
- // Check for background images on shapes
616
- const bgImage = computed.backgroundImage;
617
- if (bgImage && bgImage !== 'none') {
618
- errors.push(
619
- 'Background images on DIV elements are not supported. ' +
620
- 'Use solid colors or borders for shapes, or use slide.addImage() in PptxGenJS to layer images.'
621
- );
622
- return;
623
- }
624
-
625
- // Check for borders - both uniform and partial
626
- const borderTop = computed.borderTopWidth;
627
- const borderRight = computed.borderRightWidth;
628
- const borderBottom = computed.borderBottomWidth;
629
- const borderLeft = computed.borderLeftWidth;
630
- const borders = [borderTop, borderRight, borderBottom, borderLeft].map(b => parseFloat(b) || 0);
631
- const hasBorder = borders.some(b => b > 0);
632
- const hasUniformBorder = hasBorder && borders.every(b => b === borders[0]);
633
- const borderLines = [];
634
-
635
- if (hasBorder && !hasUniformBorder) {
636
- const rect = el.getBoundingClientRect();
637
- const x = pxToInch(rect.left);
638
- const y = pxToInch(rect.top);
639
- const w = pxToInch(rect.width);
640
- const h = pxToInch(rect.height);
641
-
642
- // Collect lines to add after shape (inset by half the line width to center on edge)
643
- if (parseFloat(borderTop) > 0) {
644
- const widthPt = pxToPoints(borderTop);
645
- const inset = (widthPt / 72) / 2; // Convert points to inches, then half
646
- borderLines.push({
647
- type: 'line',
648
- x1: x, y1: y + inset, x2: x + w, y2: y + inset,
649
- width: widthPt,
650
- color: rgbToHex(computed.borderTopColor)
651
- });
652
- }
653
- if (parseFloat(borderRight) > 0) {
654
- const widthPt = pxToPoints(borderRight);
655
- const inset = (widthPt / 72) / 2;
656
- borderLines.push({
657
- type: 'line',
658
- x1: x + w - inset, y1: y, x2: x + w - inset, y2: y + h,
659
- width: widthPt,
660
- color: rgbToHex(computed.borderRightColor)
661
- });
662
- }
663
- if (parseFloat(borderBottom) > 0) {
664
- const widthPt = pxToPoints(borderBottom);
665
- const inset = (widthPt / 72) / 2;
666
- borderLines.push({
667
- type: 'line',
668
- x1: x, y1: y + h - inset, x2: x + w, y2: y + h - inset,
669
- width: widthPt,
670
- color: rgbToHex(computed.borderBottomColor)
671
- });
672
- }
673
- if (parseFloat(borderLeft) > 0) {
674
- const widthPt = pxToPoints(borderLeft);
675
- const inset = (widthPt / 72) / 2;
676
- borderLines.push({
677
- type: 'line',
678
- x1: x + inset, y1: y, x2: x + inset, y2: y + h,
679
- width: widthPt,
680
- color: rgbToHex(computed.borderLeftColor)
681
- });
682
- }
683
- }
684
-
685
- if (hasBg || hasBorder) {
686
- const rect = el.getBoundingClientRect();
687
- if (rect.width > 0 && rect.height > 0) {
688
- const shadow = parseBoxShadow(computed.boxShadow);
689
-
690
- // Only add shape if there's background or uniform border
691
- if (hasBg || hasUniformBorder) {
692
- elements.push({
693
- type: 'shape',
694
- text: '', // Shape only - child text elements render on top
695
- position: {
696
- x: pxToInch(rect.left),
697
- y: pxToInch(rect.top),
698
- w: pxToInch(rect.width),
699
- h: pxToInch(rect.height)
700
- },
701
- shape: {
702
- fill: hasBg ? rgbToHex(computed.backgroundColor) : null,
703
- transparency: hasBg ? extractAlpha(computed.backgroundColor) : null,
704
- line: hasUniformBorder ? {
705
- color: rgbToHex(computed.borderColor),
706
- width: pxToPoints(computed.borderWidth)
707
- } : null,
708
- // Convert border-radius to rectRadius (in inches)
709
- // % values: 50%+ = circle (1), <50% = percentage of min dimension
710
- // pt values: divide by 72 (72pt = 1 inch)
711
- // px values: divide by 96 (96px = 1 inch)
712
- rectRadius: (() => {
713
- const radius = computed.borderRadius;
714
- const radiusValue = parseFloat(radius);
715
- if (radiusValue === 0) return 0;
716
-
717
- if (radius.includes('%')) {
718
- if (radiusValue >= 50) return 1;
719
- // Calculate percentage of smaller dimension
720
- const minDim = Math.min(rect.width, rect.height);
721
- return (radiusValue / 100) * pxToInch(minDim);
722
- }
723
-
724
- if (radius.includes('pt')) return radiusValue / 72;
725
- return radiusValue / PX_PER_IN;
726
- })(),
727
- shadow: shadow
728
- }
729
- });
730
- }
731
-
732
- // Add partial border lines
733
- elements.push(...borderLines);
734
-
735
- processed.add(el);
736
- return;
737
- }
738
- }
739
- }
740
-
741
- // Extract bullet lists as single text block
742
- if (el.tagName === 'UL' || el.tagName === 'OL') {
743
- const rect = el.getBoundingClientRect();
744
- if (rect.width === 0 || rect.height === 0) return;
745
-
746
- const liElements = Array.from(el.querySelectorAll('li'));
747
- const items = [];
748
- const ulComputed = window.getComputedStyle(el);
749
- const ulPaddingLeftPt = pxToPoints(ulComputed.paddingLeft);
750
-
751
- // Split: margin-left for bullet position, indent for text position
752
- // margin-left + indent = ul padding-left
753
- const marginLeft = ulPaddingLeftPt * 0.5;
754
- const textIndent = ulPaddingLeftPt * 0.5;
755
-
756
- liElements.forEach((li, idx) => {
757
- const isLast = idx === liElements.length - 1;
758
- const runs = parseInlineFormatting(li, { breakLine: false });
759
- // Clean manual bullets from first run
760
- if (runs.length > 0) {
761
- runs[0].text = runs[0].text.replace(/^[•\-\*▪▸]\s*/, '');
762
- runs[0].options.bullet = { indent: textIndent };
763
- }
764
- // Set breakLine on last run
765
- if (runs.length > 0 && !isLast) {
766
- runs[runs.length - 1].options.breakLine = true;
767
- }
768
- items.push(...runs);
769
- });
770
-
771
- const computed = window.getComputedStyle(liElements[0] || el);
772
-
773
- elements.push({
774
- type: 'list',
775
- items: items,
776
- position: {
777
- x: pxToInch(rect.left),
778
- y: pxToInch(rect.top),
779
- w: pxToInch(rect.width),
780
- h: pxToInch(rect.height)
781
- },
782
- style: {
783
- fontSize: pxToPoints(computed.fontSize),
784
- fontFace: computed.fontFamily.split(',')[0].replace(/['"]/g, '').trim(),
785
- color: rgbToHex(computed.color),
786
- transparency: extractAlpha(computed.color),
787
- align: computed.textAlign === 'start' ? 'left' : computed.textAlign,
788
- lineSpacing: computed.lineHeight && computed.lineHeight !== 'normal' ? pxToPoints(computed.lineHeight) : null,
789
- paraSpaceBefore: 0,
790
- paraSpaceAfter: pxToPoints(computed.marginBottom),
791
- // PptxGenJS margin array is [left, right, bottom, top]
792
- margin: [marginLeft, 0, 0, 0]
793
- }
794
- });
795
-
796
- liElements.forEach(li => processed.add(li));
797
- processed.add(el);
798
- return;
799
- }
800
-
801
- // Extract text elements (P, H1, H2, etc.)
802
- if (!textTags.includes(el.tagName)) return;
803
-
804
- const rect = el.getBoundingClientRect();
805
- const text = el.textContent.trim();
806
- if (rect.width === 0 || rect.height === 0 || !text) return;
807
-
808
- // Validate: Check for manual bullet symbols in text elements (not in lists)
809
- if (el.tagName !== 'LI' && /^[•\-\*▪▸○●◆◇■□]\s/.test(text.trimStart())) {
810
- errors.push(
811
- `Text element <${el.tagName.toLowerCase()}> starts with bullet symbol "${text.substring(0, 20)}...". ` +
812
- 'Use <ul> or <ol> lists instead of manual bullet symbols.'
813
- );
814
- return;
815
- }
816
-
817
- const computed = window.getComputedStyle(el);
818
- const rotation = getRotation(computed.transform, computed.writingMode);
819
- const { x, y, w, h } = getPositionAndSize(el, rect, rotation);
820
-
821
- const baseStyle = {
822
- fontSize: pxToPoints(computed.fontSize),
823
- fontFace: computed.fontFamily.split(',')[0].replace(/['"]/g, '').trim(),
824
- color: rgbToHex(computed.color),
825
- align: computed.textAlign === 'start' ? 'left' : computed.textAlign,
826
- lineSpacing: pxToPoints(computed.lineHeight),
827
- paraSpaceBefore: pxToPoints(computed.marginTop),
828
- paraSpaceAfter: pxToPoints(computed.marginBottom),
829
- // PptxGenJS margin array is [left, right, bottom, top] (not [top, right, bottom, left] as documented)
830
- margin: [
831
- pxToPoints(computed.paddingLeft),
832
- pxToPoints(computed.paddingRight),
833
- pxToPoints(computed.paddingBottom),
834
- pxToPoints(computed.paddingTop)
835
- ]
836
- };
837
-
838
- const transparency = extractAlpha(computed.color);
839
- if (transparency !== null) baseStyle.transparency = transparency;
840
-
841
- if (rotation !== null) baseStyle.rotate = rotation;
842
-
843
- const hasFormatting = el.querySelector('b, i, u, strong, em, span, br');
844
-
845
- if (hasFormatting) {
846
- // Text with inline formatting
847
- const transformStr = computed.textTransform;
848
- const runs = parseInlineFormatting(el, {}, [], (str) => applyTextTransform(str, transformStr));
849
-
850
- // Adjust lineSpacing based on largest fontSize in runs
851
- const adjustedStyle = { ...baseStyle };
852
- if (adjustedStyle.lineSpacing) {
853
- const maxFontSize = Math.max(
854
- adjustedStyle.fontSize,
855
- ...runs.map(r => r.options?.fontSize || 0)
856
- );
857
- if (maxFontSize > adjustedStyle.fontSize) {
858
- const lineHeightMultiplier = adjustedStyle.lineSpacing / adjustedStyle.fontSize;
859
- adjustedStyle.lineSpacing = maxFontSize * lineHeightMultiplier;
860
- }
861
- }
862
-
863
- elements.push({
864
- type: el.tagName.toLowerCase(),
865
- text: runs,
866
- position: { x: pxToInch(x), y: pxToInch(y), w: pxToInch(w), h: pxToInch(h) },
867
- style: adjustedStyle
868
- });
869
- } else {
870
- // Plain text - inherit CSS formatting
871
- const textTransform = computed.textTransform;
872
- const transformedText = applyTextTransform(text, textTransform);
873
-
874
- const isBold = computed.fontWeight === 'bold' || parseInt(computed.fontWeight) >= 600;
875
-
876
- elements.push({
877
- type: el.tagName.toLowerCase(),
878
- text: transformedText,
879
- position: { x: pxToInch(x), y: pxToInch(y), w: pxToInch(w), h: pxToInch(h) },
880
- style: {
881
- ...baseStyle,
882
- bold: isBold && !shouldSkipBold(computed.fontFamily),
883
- italic: computed.fontStyle === 'italic',
884
- underline: computed.textDecoration.includes('underline')
885
- }
886
- });
887
- }
888
-
889
- processed.add(el);
890
- });
891
-
892
- return { background, elements, placeholders, errors };
893
- });
894
- }
895
-
896
- async function html2pptx(htmlFile, pres, options = {}) {
897
- const {
898
- tmpDir = process.env.TMPDIR || '/tmp',
899
- slide = null
900
- } = options;
901
-
902
- try {
903
- // Use Chrome on macOS, default Chromium on Unix
904
- const launchOptions = { env: { TMPDIR: tmpDir } };
905
- if (process.platform === 'darwin') {
906
- launchOptions.channel = 'chrome';
907
- }
908
-
909
- const browser = await chromium.launch(launchOptions);
910
-
911
- let bodyDimensions;
912
- let slideData;
913
-
914
- const filePath = path.isAbsolute(htmlFile) ? htmlFile : path.join(process.cwd(), htmlFile);
915
- const validationErrors = [];
916
-
917
- try {
918
- const page = await browser.newPage();
919
- page.on('console', (msg) => {
920
- // Log the message text to your test runner's console
921
- console.log(`Browser console: ${msg.text()}`);
922
- });
923
-
924
- await page.goto(`file://${filePath}`);
925
-
926
- bodyDimensions = await getBodyDimensions(page);
927
-
928
- await page.setViewportSize({
929
- width: Math.round(bodyDimensions.width),
930
- height: Math.round(bodyDimensions.height)
931
- });
932
-
933
- slideData = await extractSlideData(page);
934
- } finally {
935
- await browser.close();
936
- }
937
-
938
- // Collect all validation errors
939
- if (bodyDimensions.errors && bodyDimensions.errors.length > 0) {
940
- validationErrors.push(...bodyDimensions.errors);
941
- }
942
-
943
- const dimensionErrors = validateDimensions(bodyDimensions, pres);
944
- if (dimensionErrors.length > 0) {
945
- validationErrors.push(...dimensionErrors);
946
- }
947
-
948
- const textBoxPositionErrors = validateTextBoxPosition(slideData, bodyDimensions);
949
- if (textBoxPositionErrors.length > 0) {
950
- validationErrors.push(...textBoxPositionErrors);
951
- }
952
-
953
- if (slideData.errors && slideData.errors.length > 0) {
954
- validationErrors.push(...slideData.errors);
955
- }
956
-
957
- // Throw all errors at once if any exist
958
- if (validationErrors.length > 0) {
959
- const errorMessage = validationErrors.length === 1
960
- ? validationErrors[0]
961
- : `Multiple validation errors found:\n${validationErrors.map((e, i) => ` ${i + 1}. ${e}`).join('\n')}`;
962
- throw new Error(errorMessage);
963
- }
964
-
965
- const targetSlide = slide || pres.addSlide();
966
-
967
- await addBackground(slideData, targetSlide, tmpDir);
968
- addElements(slideData, targetSlide, pres);
969
-
970
- return { slide: targetSlide, placeholders: slideData.placeholders };
971
- } catch (error) {
972
- if (!error.message.startsWith(htmlFile)) {
973
- throw new Error(`${htmlFile}: ${error.message}`);
974
- }
975
- throw error;
976
- }
977
- }
978
-
979
- module.exports = html2pptx;