@litfamily/litopencode 1.0.7 → 1.0.9

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 (723) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README-Ko-KR.md +314 -31
  3. package/README.md +312 -29
  4. package/dist/activation-primary-prompts.d.ts +1 -0
  5. package/dist/activation-primary-prompts.js +16 -0
  6. package/dist/activation-probe.js +4 -1
  7. package/dist/activation-prompt-utils.d.ts +1 -1
  8. package/dist/activation-routing.d.ts +6 -1
  9. package/dist/activation-routing.js +174 -16
  10. package/dist/activation-workflow-prompts.d.ts +1 -1
  11. package/dist/activation-workflow-prompts.js +18 -17
  12. package/dist/activation.d.ts +3 -2
  13. package/dist/activation.js +6 -6
  14. package/dist/agents/defaults.js +14 -6
  15. package/dist/cli/command-aliases.js +24 -22
  16. package/dist/cli/doctor.js +3 -0
  17. package/dist/cli/install-report.d.ts +1 -0
  18. package/dist/cli/install-report.js +4 -0
  19. package/dist/cli/install.js +7 -4
  20. package/dist/cli/managed-skill-assets.d.ts +1 -1
  21. package/dist/cli/managed-skill-assets.js +15 -5
  22. package/dist/cli/motion-runtime.d.ts +6 -0
  23. package/dist/cli/motion-runtime.js +46 -0
  24. package/dist/cli/native-skill-install.js +32 -9
  25. package/dist/cli/native-skill-integrity.js +1 -0
  26. package/dist/cli/native-skills.d.ts +2 -0
  27. package/dist/cli/native-skills.js +2 -1
  28. package/dist/cli/office-dependencies.d.ts +14 -0
  29. package/dist/cli/office-dependencies.js +24 -0
  30. package/dist/cli.js +13 -3
  31. package/dist/commands.d.ts +2 -11
  32. package/dist/commands.js +9 -17
  33. package/dist/deliverable-hedge-guard.d.ts +20 -21
  34. package/dist/deliverable-hedge-guard.js +234 -275
  35. package/dist/features.d.ts +81 -2
  36. package/dist/features.js +80 -13
  37. package/dist/hooks.d.ts +3 -2
  38. package/dist/hooks.js +4 -4
  39. package/dist/ignition.d.ts +1 -1
  40. package/dist/ignition.js +15 -4
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/interface-handoff.d.ts +1 -0
  44. package/dist/interface-handoff.js +1 -0
  45. package/dist/motion-image-reads.d.ts +6 -0
  46. package/dist/motion-image-reads.js +46 -0
  47. package/dist/server.js +13 -11
  48. package/dist/skill-renames.d.ts +4 -2
  49. package/dist/skill-renames.js +12 -4
  50. package/dist/skills.d.ts +31 -3
  51. package/dist/skills.js +53 -9
  52. package/dist/tools.js +4 -4
  53. package/docs/ab/S11/baseline-desktop.webp +0 -0
  54. package/docs/ab/S11/baseline-phone.webp +0 -0
  55. package/docs/ab/S11/lit-desktop.webp +0 -0
  56. package/docs/ab/S11/lit-phone.webp +0 -0
  57. package/docs/ab/S3/baseline-desktop.webp +0 -0
  58. package/docs/ab/S3/baseline-phone.webp +0 -0
  59. package/docs/ab/S3/lit-desktop.webp +0 -0
  60. package/docs/ab/S3/lit-phone.webp +0 -0
  61. package/docs/ab/S4/baseline-desktop.webp +0 -0
  62. package/docs/ab/S4/baseline-phone.webp +0 -0
  63. package/docs/ab/S4/lit-desktop.webp +0 -0
  64. package/docs/ab/S4/lit-phone.webp +0 -0
  65. package/docs/ab/S5/lit-slides.webp +0 -0
  66. package/docs/ab/S7/lit-diagram.webp +0 -0
  67. package/docs/ab/S8/baseline-slides.webp +0 -0
  68. package/docs/ab/S8/lit-slides.webp +0 -0
  69. package/docs/ab/S9/lit-pages.webp +0 -0
  70. package/docs/assets/cover-motion-still.webp +0 -0
  71. package/docs/assets/cover-motion.webp +0 -0
  72. package/docs/assets/readme/badge-version.svg +1 -1
  73. package/docs/assets/skills/autoconference.webp +0 -0
  74. package/docs/assets/skills/automatic-guards.webp +0 -0
  75. package/docs/assets/skills/autoresearch.webp +0 -0
  76. package/docs/assets/skills/browser-drive.webp +0 -0
  77. package/docs/assets/skills/debugging.webp +0 -0
  78. package/docs/assets/skills/deep-interview.webp +0 -0
  79. package/docs/assets/skills/doctor-installer.webp +0 -0
  80. package/docs/assets/skills/durable-litgoal.webp +0 -0
  81. package/docs/assets/skills/frontend-ui-ux.webp +0 -0
  82. package/docs/assets/skills/lit-burnoff-file.webp +0 -0
  83. package/docs/assets/skills/lit-burnoff.webp +0 -0
  84. package/docs/assets/skills/lit-code.webp +0 -0
  85. package/docs/assets/skills/lit-commit.webp +0 -0
  86. package/docs/assets/skills/lit-comprehend.webp +0 -0
  87. package/docs/assets/skills/lit-crucible.webp +0 -0
  88. package/docs/assets/skills/lit-diagram-drawer.webp +0 -0
  89. package/docs/assets/skills/lit-docx.webp +0 -0
  90. package/docs/assets/skills/lit-fetch.webp +0 -0
  91. package/docs/assets/skills/lit-handoff.webp +0 -0
  92. package/docs/assets/skills/lit-humanizer.webp +0 -0
  93. package/docs/assets/skills/lit-init.webp +0 -0
  94. package/docs/assets/skills/lit-plan.webp +0 -0
  95. package/docs/assets/skills/lit-pptx.webp +0 -0
  96. package/docs/assets/skills/lit-recap.webp +0 -0
  97. package/docs/assets/skills/lit-scientific-visualization.webp +0 -0
  98. package/docs/assets/skills/lit-typographic-motion.webp +0 -0
  99. package/docs/assets/skills/litresearch.webp +0 -0
  100. package/docs/assets/skills/litwork.webp +0 -0
  101. package/docs/assets/skills/lsp-setup.webp +0 -0
  102. package/docs/assets/skills/lsp.webp +0 -0
  103. package/docs/assets/skills/readme-studio.webp +0 -0
  104. package/docs/assets/skills/refactor.webp +0 -0
  105. package/docs/assets/skills/review-work.webp +0 -0
  106. package/docs/assets/skills/rules.webp +0 -0
  107. package/docs/assets/skills/start-work.webp +0 -0
  108. package/docs/assets/skills/structural-search.webp +0 -0
  109. package/docs/assets/skills/visual-qa.webp +0 -0
  110. package/docs/assets/skills/wikify.webp +0 -0
  111. package/docs/reference-Ko-KR.md +5 -1
  112. package/docs/reference.md +6 -2
  113. package/package.json +1 -1
  114. package/rules/bundled-rules/lit-humanizer.md +12 -0
  115. package/skills/autoconference/SKILL.md +1 -1
  116. package/skills/autoconference/assets/report_template.md +1 -1
  117. package/skills/autoresearch/references/type-checklists.md +1 -1
  118. package/skills/browser-drive/SKILL.md +19 -5
  119. package/skills/browser-drive/scripts/capability-probe.mjs +26 -5
  120. package/skills/frontend-ui-ux/SKILL.md +10 -15
  121. package/skills/frontend-ui-ux/data/THIRD-PARTY-NOTICE.txt +10 -0
  122. package/skills/frontend-ui-ux/references/adaptive-layout.md +3 -11
  123. package/skills/frontend-ui-ux/references/brand-and-imagery.md +6 -11
  124. package/skills/frontend-ui-ux/references/complete-contract.md +10 -3
  125. package/skills/frontend-ui-ux/references/composition.md +1 -7
  126. package/skills/frontend-ui-ux/references/craft-floor.md +94 -0
  127. package/skills/frontend-ui-ux/references/creative-directions.md +1 -7
  128. package/skills/frontend-ui-ux/references/evidence-review.md +2 -12
  129. package/skills/frontend-ui-ux/references/implementation-platforms.md +1 -4
  130. package/skills/frontend-ui-ux/references/inclusive-interface.md +1 -3
  131. package/skills/frontend-ui-ux/references/interaction-motion.md +1 -7
  132. package/skills/frontend-ui-ux/references/motion-guide.md +125 -0
  133. package/skills/frontend-ui-ux/references/operating-lanes.md +2 -8
  134. package/skills/frontend-ui-ux/references/product-direction.md +1 -6
  135. package/skills/frontend-ui-ux/references/production.md +12 -5
  136. package/skills/frontend-ui-ux/references/redesign-playbook.md +1 -7
  137. package/skills/frontend-ui-ux/references/slop-register.md +103 -0
  138. package/skills/frontend-ui-ux/references/system-foundations.md +1 -8
  139. package/skills/frontend-ui-ux/references/taste-direction.md +4 -11
  140. package/skills/frontend-ui-ux/references/visual-language.md +1 -6
  141. package/skills/frontend-ui-ux/references/visual-reconstruction.md +2 -7
  142. package/skills/frontend-ui-ux/scripts/probe-page.mjs +326 -0
  143. package/skills/frontend-ui-ux/scripts/probe-server.mjs +24 -0
  144. package/skills/frontend-ui-ux/scripts/probe-static.mjs +42 -0
  145. package/skills/frontend-ui-ux/scripts/probe-thresholds.json +86 -0
  146. package/skills/frontend-ui-ux/scripts/probe.mjs +183 -0
  147. package/skills/lit-comprehend/SKILL.md +10 -11
  148. package/skills/lit-comprehend/references/artifact-template.md +2 -18
  149. package/skills/lit-comprehend/scripts/verify-explainer.ts +0 -14
  150. package/skills/lit-diagram-drawer/NOTICE.md +33 -0
  151. package/skills/lit-diagram-drawer/SKILL.md +101 -0
  152. package/skills/lit-diagram-drawer/assets/examples/type-architecture-dark.html +1 -0
  153. package/skills/lit-diagram-drawer/assets/examples/type-architecture-full.html +1 -0
  154. package/skills/lit-diagram-drawer/assets/examples/type-architecture-light.html +1 -0
  155. package/skills/lit-diagram-drawer/assets/examples/type-bar-dark.html +1 -0
  156. package/skills/lit-diagram-drawer/assets/examples/type-bar-full.html +1 -0
  157. package/skills/lit-diagram-drawer/assets/examples/type-bar-light.html +1 -0
  158. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-dark.html +1 -0
  159. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-full.html +1 -0
  160. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-light.html +1 -0
  161. package/skills/lit-diagram-drawer/assets/examples/type-bubble-dark.html +1 -0
  162. package/skills/lit-diagram-drawer/assets/examples/type-bubble-full.html +1 -0
  163. package/skills/lit-diagram-drawer/assets/examples/type-bubble-light.html +1 -0
  164. package/skills/lit-diagram-drawer/assets/examples/type-bump-dark.html +1 -0
  165. package/skills/lit-diagram-drawer/assets/examples/type-bump-full.html +1 -0
  166. package/skills/lit-diagram-drawer/assets/examples/type-bump-light.html +1 -0
  167. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-dark.html +1 -0
  168. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-full.html +1 -0
  169. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-light.html +1 -0
  170. package/skills/lit-diagram-drawer/assets/examples/type-datalake-dark.html +1 -0
  171. package/skills/lit-diagram-drawer/assets/examples/type-datalake-full.html +1 -0
  172. package/skills/lit-diagram-drawer/assets/examples/type-datalake-light.html +1 -0
  173. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-dark.html +1 -0
  174. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-full.html +1 -0
  175. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-light.html +1 -0
  176. package/skills/lit-diagram-drawer/assets/examples/type-dependency-dark.html +1 -0
  177. package/skills/lit-diagram-drawer/assets/examples/type-dependency-full.html +1 -0
  178. package/skills/lit-diagram-drawer/assets/examples/type-dependency-light.html +1 -0
  179. package/skills/lit-diagram-drawer/assets/examples/type-deployment-dark.html +1 -0
  180. package/skills/lit-diagram-drawer/assets/examples/type-deployment-full.html +1 -0
  181. package/skills/lit-diagram-drawer/assets/examples/type-deployment-light.html +1 -0
  182. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-dark.html +1 -0
  183. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-full.html +1 -0
  184. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-light.html +1 -0
  185. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-dark.html +1 -0
  186. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-full.html +1 -0
  187. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-light.html +1 -0
  188. package/skills/lit-diagram-drawer/assets/examples/type-er-dark.html +1 -0
  189. package/skills/lit-diagram-drawer/assets/examples/type-er-full.html +1 -0
  190. package/skills/lit-diagram-drawer/assets/examples/type-er-light.html +1 -0
  191. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-dark.html +1 -0
  192. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-full.html +1 -0
  193. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-light.html +1 -0
  194. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-dark.html +1 -0
  195. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-full.html +1 -0
  196. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-light.html +1 -0
  197. package/skills/lit-diagram-drawer/assets/examples/type-gantt-dark.html +1 -0
  198. package/skills/lit-diagram-drawer/assets/examples/type-gantt-full.html +1 -0
  199. package/skills/lit-diagram-drawer/assets/examples/type-gantt-light.html +1 -0
  200. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-dark.html +1 -0
  201. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-full.html +1 -0
  202. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-light.html +1 -0
  203. package/skills/lit-diagram-drawer/assets/examples/type-high-level-dark.html +1 -0
  204. package/skills/lit-diagram-drawer/assets/examples/type-high-level-full.html +1 -0
  205. package/skills/lit-diagram-drawer/assets/examples/type-high-level-light.html +1 -0
  206. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-dark.html +1 -0
  207. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-full.html +1 -0
  208. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-light.html +1 -0
  209. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-dark.html +1 -0
  210. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-full.html +1 -0
  211. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-light.html +1 -0
  212. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-dark.html +1 -0
  213. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-full.html +1 -0
  214. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-light.html +1 -0
  215. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-dark.html +1 -0
  216. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-full.html +1 -0
  217. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-light.html +1 -0
  218. package/skills/lit-diagram-drawer/assets/examples/type-it-state-dark.html +1 -0
  219. package/skills/lit-diagram-drawer/assets/examples/type-it-state-full.html +1 -0
  220. package/skills/lit-diagram-drawer/assets/examples/type-it-state-light.html +1 -0
  221. package/skills/lit-diagram-drawer/assets/examples/type-journey-dark.html +1 -0
  222. package/skills/lit-diagram-drawer/assets/examples/type-journey-full.html +1 -0
  223. package/skills/lit-diagram-drawer/assets/examples/type-journey-light.html +1 -0
  224. package/skills/lit-diagram-drawer/assets/examples/type-kanban-dark.html +1 -0
  225. package/skills/lit-diagram-drawer/assets/examples/type-kanban-full.html +1 -0
  226. package/skills/lit-diagram-drawer/assets/examples/type-kanban-light.html +1 -0
  227. package/skills/lit-diagram-drawer/assets/examples/type-layers-dark.html +1 -0
  228. package/skills/lit-diagram-drawer/assets/examples/type-layers-full.html +1 -0
  229. package/skills/lit-diagram-drawer/assets/examples/type-layers-light.html +1 -0
  230. package/skills/lit-diagram-drawer/assets/examples/type-line-dark.html +1 -0
  231. package/skills/lit-diagram-drawer/assets/examples/type-line-full.html +1 -0
  232. package/skills/lit-diagram-drawer/assets/examples/type-line-light.html +1 -0
  233. package/skills/lit-diagram-drawer/assets/examples/type-loop-dark.html +1 -0
  234. package/skills/lit-diagram-drawer/assets/examples/type-loop-full.html +1 -0
  235. package/skills/lit-diagram-drawer/assets/examples/type-loop-light.html +1 -0
  236. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-dark.html +1 -0
  237. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-full.html +1 -0
  238. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-light.html +1 -0
  239. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-dark.html +1 -0
  240. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-full.html +1 -0
  241. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-light.html +1 -0
  242. package/skills/lit-diagram-drawer/assets/examples/type-medallion-dark.html +1 -0
  243. package/skills/lit-diagram-drawer/assets/examples/type-medallion-full.html +1 -0
  244. package/skills/lit-diagram-drawer/assets/examples/type-medallion-light.html +1 -0
  245. package/skills/lit-diagram-drawer/assets/examples/type-nested-dark.html +1 -0
  246. package/skills/lit-diagram-drawer/assets/examples/type-nested-full.html +1 -0
  247. package/skills/lit-diagram-drawer/assets/examples/type-nested-light.html +1 -0
  248. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-dark.html +1 -0
  249. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-full.html +1 -0
  250. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-light.html +1 -0
  251. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-dark.html +1 -0
  252. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-full.html +1 -0
  253. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-light.html +1 -0
  254. package/skills/lit-diagram-drawer/assets/examples/type-polar-dark.html +1 -0
  255. package/skills/lit-diagram-drawer/assets/examples/type-polar-full.html +1 -0
  256. package/skills/lit-diagram-drawer/assets/examples/type-polar-light.html +1 -0
  257. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-dark.html +1 -0
  258. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-full.html +1 -0
  259. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-light.html +1 -0
  260. package/skills/lit-diagram-drawer/assets/examples/type-process-dark.html +1 -0
  261. package/skills/lit-diagram-drawer/assets/examples/type-process-full.html +1 -0
  262. package/skills/lit-diagram-drawer/assets/examples/type-process-light.html +1 -0
  263. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-dark.html +1 -0
  264. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-full.html +1 -0
  265. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-light.html +1 -0
  266. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-dark.html +1 -0
  267. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-full.html +1 -0
  268. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-light.html +1 -0
  269. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-dark.html +1 -0
  270. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-full.html +1 -0
  271. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-light.html +1 -0
  272. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-dark.html +1 -0
  273. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-full.html +1 -0
  274. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-light.html +1 -0
  275. package/skills/lit-diagram-drawer/assets/examples/type-radar-dark.html +1 -0
  276. package/skills/lit-diagram-drawer/assets/examples/type-radar-full.html +1 -0
  277. package/skills/lit-diagram-drawer/assets/examples/type-radar-light.html +1 -0
  278. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-dark.html +1 -0
  279. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-full.html +1 -0
  280. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-light.html +1 -0
  281. package/skills/lit-diagram-drawer/assets/examples/type-sankey-dark.html +1 -0
  282. package/skills/lit-diagram-drawer/assets/examples/type-sankey-full.html +1 -0
  283. package/skills/lit-diagram-drawer/assets/examples/type-sankey-light.html +1 -0
  284. package/skills/lit-diagram-drawer/assets/examples/type-scatter-dark.html +1 -0
  285. package/skills/lit-diagram-drawer/assets/examples/type-scatter-full.html +1 -0
  286. package/skills/lit-diagram-drawer/assets/examples/type-scatter-light.html +1 -0
  287. package/skills/lit-diagram-drawer/assets/examples/type-sequence-dark.html +1 -0
  288. package/skills/lit-diagram-drawer/assets/examples/type-sequence-full.html +1 -0
  289. package/skills/lit-diagram-drawer/assets/examples/type-sequence-light.html +1 -0
  290. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-dark.html +1 -0
  291. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-full.html +1 -0
  292. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-light.html +1 -0
  293. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-dark.html +1 -0
  294. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-full.html +1 -0
  295. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-light.html +1 -0
  296. package/skills/lit-diagram-drawer/assets/examples/type-state-dark.html +1 -0
  297. package/skills/lit-diagram-drawer/assets/examples/type-state-full.html +1 -0
  298. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-dark.html +1 -0
  299. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-full.html +1 -0
  300. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-light.html +1 -0
  301. package/skills/lit-diagram-drawer/assets/examples/type-state-light.html +1 -0
  302. package/skills/lit-diagram-drawer/assets/examples/type-story-map-dark.html +1 -0
  303. package/skills/lit-diagram-drawer/assets/examples/type-story-map-full.html +1 -0
  304. package/skills/lit-diagram-drawer/assets/examples/type-story-map-light.html +1 -0
  305. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-dark.html +1 -0
  306. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-full.html +1 -0
  307. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-light.html +1 -0
  308. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-dark.html +1 -0
  309. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-full.html +1 -0
  310. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-light.html +1 -0
  311. package/skills/lit-diagram-drawer/assets/examples/type-timeline-dark.html +1 -0
  312. package/skills/lit-diagram-drawer/assets/examples/type-timeline-full.html +1 -0
  313. package/skills/lit-diagram-drawer/assets/examples/type-timeline-light.html +1 -0
  314. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-dark.html +1 -0
  315. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-full.html +1 -0
  316. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-light.html +1 -0
  317. package/skills/lit-diagram-drawer/assets/examples/type-tree-dark.html +1 -0
  318. package/skills/lit-diagram-drawer/assets/examples/type-tree-full.html +1 -0
  319. package/skills/lit-diagram-drawer/assets/examples/type-tree-light.html +1 -0
  320. package/skills/lit-diagram-drawer/assets/examples/type-treemap-dark.html +1 -0
  321. package/skills/lit-diagram-drawer/assets/examples/type-treemap-full.html +1 -0
  322. package/skills/lit-diagram-drawer/assets/examples/type-treemap-light.html +1 -0
  323. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-dark.html +1 -0
  324. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-full.html +1 -0
  325. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-light.html +1 -0
  326. package/skills/lit-diagram-drawer/assets/examples/type-venn-dark.html +1 -0
  327. package/skills/lit-diagram-drawer/assets/examples/type-venn-full.html +1 -0
  328. package/skills/lit-diagram-drawer/assets/examples/type-venn-light.html +1 -0
  329. package/skills/lit-diagram-drawer/assets/examples/type-wardley-dark.html +1 -0
  330. package/skills/lit-diagram-drawer/assets/examples/type-wardley-full.html +1 -0
  331. package/skills/lit-diagram-drawer/assets/examples/type-wardley-light.html +1 -0
  332. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-dark.html +1 -0
  333. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-full.html +1 -0
  334. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-light.html +1 -0
  335. package/skills/lit-diagram-drawer/assets/fonts/OFL.txt +94 -0
  336. package/skills/lit-diagram-drawer/assets/fonts/PretendardVariable.woff2 +0 -0
  337. package/skills/lit-diagram-drawer/assets/fonts/provenance.json +23 -0
  338. package/skills/lit-diagram-drawer/assets/icons.html +231 -0
  339. package/skills/lit-diagram-drawer/assets/licenses/devicon-MIT.txt +20 -0
  340. package/skills/lit-diagram-drawer/assets/licenses/diagram-design-MIT.txt +21 -0
  341. package/skills/lit-diagram-drawer/assets/licenses/log-z-MIT.txt +21 -0
  342. package/skills/lit-diagram-drawer/assets/licenses/simple-icons-CC0.md +30 -0
  343. package/skills/lit-diagram-drawer/assets/licenses/tabler-MIT.txt +21 -0
  344. package/skills/lit-diagram-drawer/examples/01-service-architecture/after.html +1 -0
  345. package/skills/lit-diagram-drawer/examples/01-service-architecture/brief.md +33 -0
  346. package/skills/lit-diagram-drawer/examples/02-release-decision/after.html +1 -0
  347. package/skills/lit-diagram-drawer/examples/02-release-decision/brief.md +18 -0
  348. package/skills/lit-diagram-drawer/examples/03-data-retention/after.html +1 -0
  349. package/skills/lit-diagram-drawer/examples/03-data-retention/brief.md +19 -0
  350. package/skills/lit-diagram-drawer/examples/04-oauth-sequence/after.html +1 -0
  351. package/skills/lit-diagram-drawer/examples/04-oauth-sequence/brief.md +17 -0
  352. package/skills/lit-diagram-drawer/examples/05-review-lanes/after.html +1 -0
  353. package/skills/lit-diagram-drawer/examples/05-review-lanes/brief.md +17 -0
  354. package/skills/lit-diagram-drawer/examples/06-rollout-gates/after.html +1 -0
  355. package/skills/lit-diagram-drawer/examples/06-rollout-gates/brief.md +17 -0
  356. package/skills/lit-diagram-drawer/examples/07-deployment-boundary/after.html +1 -0
  357. package/skills/lit-diagram-drawer/examples/07-deployment-boundary/brief.md +19 -0
  358. package/skills/lit-diagram-drawer/examples/08-policy-traces/after.html +1 -0
  359. package/skills/lit-diagram-drawer/examples/08-policy-traces/brief.md +20 -0
  360. package/skills/lit-diagram-drawer/references/accessibility.md +37 -0
  361. package/skills/lit-diagram-drawer/references/export.md +17 -0
  362. package/skills/lit-diagram-drawer/references/import-drawio.md +13 -0
  363. package/skills/lit-diagram-drawer/references/import-excalidraw.md +11 -0
  364. package/skills/lit-diagram-drawer/references/import-mermaid.md +12 -0
  365. package/skills/lit-diagram-drawer/references/import-schema.md +28 -0
  366. package/skills/lit-diagram-drawer/references/korean-typography.md +34 -0
  367. package/skills/lit-diagram-drawer/references/motion.md +29 -0
  368. package/skills/lit-diagram-drawer/references/office-pptx-docx.md +28 -0
  369. package/skills/lit-diagram-drawer/references/output-spec.md +48 -0
  370. package/skills/lit-diagram-drawer/references/primitive-annotation.md +12 -0
  371. package/skills/lit-diagram-drawer/references/primitive-icons.md +21 -0
  372. package/skills/lit-diagram-drawer/references/primitive-sketchy.md +11 -0
  373. package/skills/lit-diagram-drawer/references/primitive-terminal.md +11 -0
  374. package/skills/lit-diagram-drawer/references/profiles.md +24 -0
  375. package/skills/lit-diagram-drawer/references/semantic-patterns.md +27 -0
  376. package/skills/lit-diagram-drawer/references/style-guide.md +67 -0
  377. package/skills/lit-diagram-drawer/references/type-architecture.md +51 -0
  378. package/skills/lit-diagram-drawer/references/type-bar.md +51 -0
  379. package/skills/lit-diagram-drawer/references/type-beeswarm.md +49 -0
  380. package/skills/lit-diagram-drawer/references/type-bubble.md +49 -0
  381. package/skills/lit-diagram-drawer/references/type-bump.md +49 -0
  382. package/skills/lit-diagram-drawer/references/type-catalog.json +1433 -0
  383. package/skills/lit-diagram-drawer/references/type-data-flow.md +51 -0
  384. package/skills/lit-diagram-drawer/references/type-datalake.md +49 -0
  385. package/skills/lit-diagram-drawer/references/type-db-schema.md +49 -0
  386. package/skills/lit-diagram-drawer/references/type-dependency.md +49 -0
  387. package/skills/lit-diagram-drawer/references/type-deployment.md +49 -0
  388. package/skills/lit-diagram-drawer/references/type-dp-integration.md +49 -0
  389. package/skills/lit-diagram-drawer/references/type-dp-security-matrix.md +49 -0
  390. package/skills/lit-diagram-drawer/references/type-er.md +49 -0
  391. package/skills/lit-diagram-drawer/references/type-fishbone.md +49 -0
  392. package/skills/lit-diagram-drawer/references/type-flowchart.md +49 -0
  393. package/skills/lit-diagram-drawer/references/type-gantt.md +49 -0
  394. package/skills/lit-diagram-drawer/references/type-heatmap.md +53 -0
  395. package/skills/lit-diagram-drawer/references/type-high-level-vertical.md +53 -0
  396. package/skills/lit-diagram-drawer/references/type-high-level.md +53 -0
  397. package/skills/lit-diagram-drawer/references/type-import-drawio.md +53 -0
  398. package/skills/lit-diagram-drawer/references/type-import-excalidraw.md +53 -0
  399. package/skills/lit-diagram-drawer/references/type-import-mermaid.md +53 -0
  400. package/skills/lit-diagram-drawer/references/type-it-state.md +54 -0
  401. package/skills/lit-diagram-drawer/references/type-journey.md +54 -0
  402. package/skills/lit-diagram-drawer/references/type-kanban.md +54 -0
  403. package/skills/lit-diagram-drawer/references/type-layers.md +54 -0
  404. package/skills/lit-diagram-drawer/references/type-line.md +54 -0
  405. package/skills/lit-diagram-drawer/references/type-loop-terminal.md +53 -0
  406. package/skills/lit-diagram-drawer/references/type-loop.md +54 -0
  407. package/skills/lit-diagram-drawer/references/type-marimekko.md +54 -0
  408. package/skills/lit-diagram-drawer/references/type-medallion.md +54 -0
  409. package/skills/lit-diagram-drawer/references/type-nested.md +59 -0
  410. package/skills/lit-diagram-drawer/references/type-org-chart.md +58 -0
  411. package/skills/lit-diagram-drawer/references/type-paved-road-animated.md +72 -0
  412. package/skills/lit-diagram-drawer/references/type-polar.md +67 -0
  413. package/skills/lit-diagram-drawer/references/type-policy-trace-animated.md +69 -0
  414. package/skills/lit-diagram-drawer/references/type-process.md +58 -0
  415. package/skills/lit-diagram-drawer/references/type-pyramid.md +59 -0
  416. package/skills/lit-diagram-drawer/references/type-quadrant-consultant.md +60 -0
  417. package/skills/lit-diagram-drawer/references/type-quadrant.md +57 -0
  418. package/skills/lit-diagram-drawer/references/type-queue-animated.md +63 -0
  419. package/skills/lit-diagram-drawer/references/type-radar.md +57 -0
  420. package/skills/lit-diagram-drawer/references/type-ridgeline.md +63 -0
  421. package/skills/lit-diagram-drawer/references/type-sankey.md +68 -0
  422. package/skills/lit-diagram-drawer/references/type-scatter.md +60 -0
  423. package/skills/lit-diagram-drawer/references/type-sequence-oauth.md +66 -0
  424. package/skills/lit-diagram-drawer/references/type-sequence.md +63 -0
  425. package/skills/lit-diagram-drawer/references/type-slopegraph.md +65 -0
  426. package/skills/lit-diagram-drawer/references/type-state-lifecycle.md +53 -0
  427. package/skills/lit-diagram-drawer/references/type-state.md +59 -0
  428. package/skills/lit-diagram-drawer/references/type-story-map.md +52 -0
  429. package/skills/lit-diagram-drawer/references/type-streamgraph.md +53 -0
  430. package/skills/lit-diagram-drawer/references/type-swimlane.md +52 -0
  431. package/skills/lit-diagram-drawer/references/type-timeline.md +52 -0
  432. package/skills/lit-diagram-drawer/references/type-tree-block-decomposition.md +57 -0
  433. package/skills/lit-diagram-drawer/references/type-tree.md +54 -0
  434. package/skills/lit-diagram-drawer/references/type-treemap.md +54 -0
  435. package/skills/lit-diagram-drawer/references/type-uml-class.md +52 -0
  436. package/skills/lit-diagram-drawer/references/type-venn.md +51 -0
  437. package/skills/lit-diagram-drawer/references/type-wardley.md +52 -0
  438. package/skills/lit-diagram-drawer/references/type-waterfall.md +54 -0
  439. package/skills/lit-diagram-drawer/references/verifier-guide.md +59 -0
  440. package/skills/lit-diagram-drawer/scripts/block-registry.mjs +43 -0
  441. package/skills/lit-diagram-drawer/scripts/brief-contract.mjs +94 -0
  442. package/skills/lit-diagram-drawer/scripts/capability-probe.mjs +132 -0
  443. package/skills/lit-diagram-drawer/scripts/check-visible-text.mjs +15 -0
  444. package/skills/lit-diagram-drawer/scripts/craft-thresholds.json +15 -0
  445. package/skills/lit-diagram-drawer/scripts/diagram-metrics.mjs +216 -0
  446. package/skills/lit-diagram-drawer/scripts/doctor.mjs +8 -0
  447. package/skills/lit-diagram-drawer/scripts/drawio-extract.mjs +214 -0
  448. package/skills/lit-diagram-drawer/scripts/excalidraw-extract.mjs +151 -0
  449. package/skills/lit-diagram-drawer/scripts/export.mjs +133 -0
  450. package/skills/lit-diagram-drawer/scripts/import-shared.mjs +130 -0
  451. package/skills/lit-diagram-drawer/scripts/mermaid-extract.mjs +173 -0
  452. package/skills/lit-diagram-drawer/scripts/office-safety.mjs +120 -0
  453. package/skills/lit-diagram-drawer/scripts/renderer-safety.mjs +46 -0
  454. package/skills/lit-diagram-drawer/scripts/test-block-registry.mjs +20 -0
  455. package/skills/lit-diagram-drawer/scripts/test-brief-contract.mjs +27 -0
  456. package/skills/lit-diagram-drawer/scripts/test-importers.mjs +119 -0
  457. package/skills/lit-diagram-drawer/scripts/test-office-safety.mjs +67 -0
  458. package/skills/lit-diagram-drawer/scripts/test-sequence-verifier.mjs +28 -0
  459. package/skills/lit-diagram-drawer/scripts/test-visual-quality.mjs +68 -0
  460. package/skills/lit-diagram-drawer/scripts/verify-all.mjs +74 -0
  461. package/skills/lit-diagram-drawer/scripts/verify-brief.mjs +47 -0
  462. package/skills/lit-diagram-drawer/scripts/verify-coverage.mjs +56 -0
  463. package/skills/lit-diagram-drawer/scripts/verify-diagram.mjs +26 -0
  464. package/skills/lit-diagram-drawer/scripts/verify-motion.mjs +12 -0
  465. package/skills/lit-diagram-drawer/scripts/verify-type.mjs +48 -0
  466. package/skills/lit-diagram-drawer/scripts/visual-quality.mjs +363 -0
  467. package/skills/lit-docx/LICENSE-MIT.txt +21 -0
  468. package/skills/lit-docx/SKILL.md +78 -0
  469. package/skills/lit-docx/references/frontmatter_schema.md +42 -0
  470. package/skills/lit-docx/references/journal_style_spec.md +17 -0
  471. package/skills/lit-docx/references/markdown_quality_checklist.md +37 -0
  472. package/skills/lit-docx/references/slop_phrase_list.yaml +58 -0
  473. package/skills/lit-docx/references/slop_rules.md +35 -0
  474. package/skills/lit-docx/requirements.in +5 -0
  475. package/skills/lit-docx/requirements.lock +289 -0
  476. package/skills/lit-docx/run.py +64 -0
  477. package/skills/lit-docx/scripts/clean_markdown.py +95 -0
  478. package/skills/lit-docx/scripts/convert_md_to_docx.py +1047 -0
  479. package/skills/lit-docx/scripts/convert_md_to_pdf.py +281 -0
  480. package/skills/lit-docx/scripts/convert_pdf.py +130 -0
  481. package/skills/lit-docx/scripts/craft-thresholds.json +11 -0
  482. package/skills/lit-docx/scripts/craft_docx.py +83 -0
  483. package/skills/lit-docx/scripts/edit_docx.py +297 -0
  484. package/skills/lit-docx/scripts/embed_images.py +78 -0
  485. package/skills/lit-docx/scripts/generate_docx_templates.py +491 -0
  486. package/skills/lit-docx/scripts/slop_lint.py +485 -0
  487. package/skills/lit-docx/scripts/visual_audit.py +41 -0
  488. package/skills/lit-docx/templates/docx/acs.docx +0 -0
  489. package/skills/lit-docx/templates/docx/elsevier.docx +0 -0
  490. package/skills/lit-docx/templates/docx/ieee.docx +0 -0
  491. package/skills/lit-docx/templates/docx/korean-generic.docx +0 -0
  492. package/skills/lit-docx/templates/docx/nature.docx +0 -0
  493. package/skills/lit-docx/templates/latex/acs/README.md +5 -0
  494. package/skills/lit-docx/templates/latex/acs/template.tex +37 -0
  495. package/skills/lit-docx/templates/latex/elsevier/README.md +5 -0
  496. package/skills/lit-docx/templates/latex/elsevier/template.tex +38 -0
  497. package/skills/lit-docx/templates/latex/ieee/README.md +5 -0
  498. package/skills/lit-docx/templates/latex/ieee/template.tex +37 -0
  499. package/skills/lit-docx/templates/latex/korean-generic/README.md +5 -0
  500. package/skills/lit-docx/templates/latex/korean-generic/template.tex +37 -0
  501. package/skills/lit-docx/templates/latex/nature/README.md +5 -0
  502. package/skills/lit-docx/templates/latex/nature/template.tex +37 -0
  503. package/skills/lit-docx/templates/registry.yaml +1366 -0
  504. package/skills/lit-humanizer/NOTICE +160 -0
  505. package/skills/lit-humanizer/SKILL.md +122 -0
  506. package/skills/lit-humanizer/assets/always-on-rule.md +9 -0
  507. package/skills/lit-humanizer/assets/report-skeleton.md +25 -0
  508. package/skills/lit-humanizer/assets/slide-text-skeleton.md +28 -0
  509. package/skills/lit-humanizer/examples/accessibility-note/after.md +7 -0
  510. package/skills/lit-humanizer/examples/accessibility-note/before.md +7 -0
  511. package/skills/lit-humanizer/examples/api-reference/after.md +9 -0
  512. package/skills/lit-humanizer/examples/api-reference/before.md +15 -0
  513. package/skills/lit-humanizer/examples/changelog/after.md +5 -0
  514. package/skills/lit-humanizer/examples/changelog/before.md +12 -0
  515. package/skills/lit-humanizer/examples/code-comments/after.md +10 -0
  516. package/skills/lit-humanizer/examples/code-comments/before.md +19 -0
  517. package/skills/lit-humanizer/examples/commit/after.md +5 -0
  518. package/skills/lit-humanizer/examples/commit/before.md +7 -0
  519. package/skills/lit-humanizer/examples/data-release/after.md +7 -0
  520. package/skills/lit-humanizer/examples/data-release/before.md +9 -0
  521. package/skills/lit-humanizer/examples/english-essay/after.md +5 -0
  522. package/skills/lit-humanizer/examples/english-essay/before.md +5 -0
  523. package/skills/lit-humanizer/examples/incident-update/after.md +7 -0
  524. package/skills/lit-humanizer/examples/incident-update/before.md +7 -0
  525. package/skills/lit-humanizer/examples/ko-essay/after.md +7 -0
  526. package/skills/lit-humanizer/examples/ko-essay/before.md +9 -0
  527. package/skills/lit-humanizer/examples/ko-report/after.md +9 -0
  528. package/skills/lit-humanizer/examples/ko-report/before.md +13 -0
  529. package/skills/lit-humanizer/examples/ko-slide/after.md +19 -0
  530. package/skills/lit-humanizer/examples/ko-slide/before.md +21 -0
  531. package/skills/lit-humanizer/examples/meeting-brief/after.md +9 -0
  532. package/skills/lit-humanizer/examples/meeting-brief/before.md +11 -0
  533. package/skills/lit-humanizer/examples/policy-faq/after.md +9 -0
  534. package/skills/lit-humanizer/examples/policy-faq/before.md +9 -0
  535. package/skills/lit-humanizer/examples/pr/after.md +15 -0
  536. package/skills/lit-humanizer/examples/pr/before.md +17 -0
  537. package/skills/lit-humanizer/examples/project-update/after.md +7 -0
  538. package/skills/lit-humanizer/examples/project-update/before.md +9 -0
  539. package/skills/lit-humanizer/examples/readme/after.md +12 -0
  540. package/skills/lit-humanizer/examples/readme/before.md +14 -0
  541. package/skills/lit-humanizer/examples/report/after.md +13 -0
  542. package/skills/lit-humanizer/examples/report/before.md +11 -0
  543. package/skills/lit-humanizer/examples/research-abstract/after.md +5 -0
  544. package/skills/lit-humanizer/examples/research-abstract/before.md +5 -0
  545. package/skills/lit-humanizer/examples/slides/after.md +19 -0
  546. package/skills/lit-humanizer/examples/slides/before.md +19 -0
  547. package/skills/lit-humanizer/examples/troubleshooting/after.md +11 -0
  548. package/skills/lit-humanizer/examples/troubleshooting/before.md +11 -0
  549. package/skills/lit-humanizer/fixtures/ko-metrics-golden.json +49 -0
  550. package/skills/lit-humanizer/fixtures/office/minimal.docx +0 -0
  551. package/skills/lit-humanizer/fixtures/office/minimal.pptx +0 -0
  552. package/skills/lit-humanizer/fixtures/pos-real.txt +26 -0
  553. package/skills/lit-humanizer/fixtures/rule-cases.json +306 -0
  554. package/skills/lit-humanizer/references/code-patterns.md +468 -0
  555. package/skills/lit-humanizer/references/deliverable-channels.md +111 -0
  556. package/skills/lit-humanizer/references/en-patterns-checklist.md +43 -0
  557. package/skills/lit-humanizer/references/en-patterns-content.md +243 -0
  558. package/skills/lit-humanizer/references/en-patterns-structure.md +375 -0
  559. package/skills/lit-humanizer/references/en-patterns.md +57 -0
  560. package/skills/lit-humanizer/references/ko-metrics.md +33 -0
  561. package/skills/lit-humanizer/references/ko-patterns-a-d.md +659 -0
  562. package/skills/lit-humanizer/references/ko-patterns-e-j.md +387 -0
  563. package/skills/lit-humanizer/references/ko-patterns.md +31 -0
  564. package/skills/lit-humanizer/references/rewrite-playbook.md +54 -0
  565. package/skills/lit-humanizer/references/taxonomy.md +153 -0
  566. package/skills/lit-humanizer/rules.json +884 -0
  567. package/skills/lit-humanizer/scripts/core.mjs +208 -0
  568. package/skills/lit-humanizer/scripts/detect.mjs +91 -0
  569. package/skills/lit-humanizer/scripts/extract_office_text.py +89 -0
  570. package/skills/lit-humanizer/scripts/guard-scan.mjs +36 -0
  571. package/skills/lit-humanizer/scripts/ko-metrics.mjs +124 -0
  572. package/skills/lit-humanizer/scripts/test-fixtures.mjs +54 -0
  573. package/skills/lit-humanizer/scripts/test-ko-metrics.mjs +27 -0
  574. package/skills/lit-pptx/FORBIDDEN_TERMS.json +55 -0
  575. package/skills/lit-pptx/NOTICE.md +3 -0
  576. package/skills/lit-pptx/SKILL.md +76 -0
  577. package/skills/lit-pptx/agents/analyst.md +49 -0
  578. package/skills/lit-pptx/agents/antithesis.md +59 -0
  579. package/skills/lit-pptx/agents/architect.md +44 -0
  580. package/skills/lit-pptx/agents/critic.md +42 -0
  581. package/skills/lit-pptx/agents/synthesizer.md +47 -0
  582. package/skills/lit-pptx/agents/thesis.md +33 -0
  583. package/skills/lit-pptx/assets/azure/circle-lg.png +0 -0
  584. package/skills/lit-pptx/assets/azure/circle-md.png +0 -0
  585. package/skills/lit-pptx/assets/azure/circle-sm.png +0 -0
  586. package/skills/lit-pptx/fonts/a2z-font/A2Z-Black.otf +0 -0
  587. package/skills/lit-pptx/fonts/a2z-font/A2Z-Bold.otf +0 -0
  588. package/skills/lit-pptx/fonts/a2z-font/A2Z-Light.otf +0 -0
  589. package/skills/lit-pptx/fonts/a2z-font/A2Z-Medium.otf +0 -0
  590. package/skills/lit-pptx/fonts/a2z-font/A2Z-Regular.otf +0 -0
  591. package/skills/lit-pptx/fonts/a2z-font/OFL.txt +94 -0
  592. package/skills/lit-pptx/fonts/a2z-font/SOURCE.md +29 -0
  593. package/skills/lit-pptx/package-lock.json +747 -0
  594. package/skills/lit-pptx/package.json +13 -0
  595. package/skills/lit-pptx/pretendard-font/LICENSE.txt +94 -0
  596. package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Bold.otf +0 -0
  597. package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Regular.otf +0 -0
  598. package/skills/lit-pptx/requirements.in +2 -0
  599. package/skills/lit-pptx/requirements.lock +285 -0
  600. package/skills/lit-pptx/run.mjs +71 -0
  601. package/skills/lit-pptx/scripts/check_ooxml.py +47 -0
  602. package/skills/lit-pptx/scripts/compile-deck.js +447 -0
  603. package/skills/lit-pptx/scripts/craft-thresholds.json +26 -0
  604. package/skills/lit-pptx/scripts/craft_extras.py +224 -0
  605. package/skills/lit-pptx/scripts/embed_fonts.py +204 -0
  606. package/skills/lit-pptx/scripts/layout_inventory.py +70 -0
  607. package/skills/lit-pptx/scripts/learn_template.py +433 -0
  608. package/skills/lit-pptx/scripts/lib/derive-palette.js +176 -0
  609. package/skills/lit-pptx/scripts/lib/directive-parser.js +244 -0
  610. package/skills/lit-pptx/scripts/lib/font-map.js +79 -0
  611. package/skills/lit-pptx/scripts/lib/gen-bg.js +85 -0
  612. package/skills/lit-pptx/scripts/lib/gen-gradient-assets.js +36 -0
  613. package/skills/lit-pptx/scripts/lib/layout-resolver.js +737 -0
  614. package/skills/lit-pptx/scripts/lib/markdown-loader.js +136 -0
  615. package/skills/lit-pptx/scripts/lib/render-adapter-html.js +364 -0
  616. package/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +1848 -0
  617. package/skills/lit-pptx/scripts/lib/slide-ast.js +534 -0
  618. package/skills/lit-pptx/scripts/lib/spec-validator.js +94 -0
  619. package/skills/lit-pptx/scripts/lib/template-registry.js +355 -0
  620. package/skills/lit-pptx/scripts/qa_deck.py +773 -0
  621. package/skills/lit-pptx/scripts/validate_pptx.py +206 -0
  622. package/skills/lit-pptx/specs/markdown-slide-spec-v1.md +251 -0
  623. package/skills/lit-pptx/specs/markdown-slide-spec-v2.md +223 -0
  624. package/skills/lit-pptx/specs/slide-ast-v1.schema.json +229 -0
  625. package/skills/lit-pptx/specs/slide-ast-v2.schema.json +144 -0
  626. package/skills/lit-pptx/specs/template-enrollment-contract.md +379 -0
  627. package/skills/lit-pptx/templates/bauhaus_light.css +4 -0
  628. package/skills/lit-pptx/templates/boilerplate_professional.css +508 -0
  629. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/capabilities.yaml +146 -0
  630. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +454 -0
  631. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +37 -0
  632. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +154 -0
  633. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +483 -0
  634. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +37 -0
  635. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/capabilities.yaml +179 -0
  636. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/layout-mapping.yaml +299 -0
  637. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/template.yaml +45 -0
  638. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +181 -0
  639. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/layout-mapping.yaml +299 -0
  640. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +44 -0
  641. package/skills/lit-scientific-visualization/SKILL.md +2 -0
  642. package/skills/lit-typographic-motion/NOTICE +23 -0
  643. package/skills/lit-typographic-motion/SKILL.md +77 -0
  644. package/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +25 -0
  645. package/skills/lit-typographic-motion/audio-analysis.py +52 -0
  646. package/skills/lit-typographic-motion/engine/browser.mjs +83 -0
  647. package/skills/lit-typographic-motion/engine/constants.mjs +177 -0
  648. package/skills/lit-typographic-motion/engine/contrast.mjs +101 -0
  649. package/skills/lit-typographic-motion/engine/encode.mjs +46 -0
  650. package/skills/lit-typographic-motion/engine/flash.mjs +216 -0
  651. package/skills/lit-typographic-motion/engine/look.mjs +166 -0
  652. package/skills/lit-typographic-motion/engine/page/common.js +105 -0
  653. package/skills/lit-typographic-motion/engine/page/engine.js +451 -0
  654. package/skills/lit-typographic-motion/engine/page/gl.js +213 -0
  655. package/skills/lit-typographic-motion/engine/page/lines.js +88 -0
  656. package/skills/lit-typographic-motion/engine/page/passes.js +144 -0
  657. package/skills/lit-typographic-motion/engine/page/post.js +119 -0
  658. package/skills/lit-typographic-motion/engine/page/scenes.js +187 -0
  659. package/skills/lit-typographic-motion/engine/page/type.js +321 -0
  660. package/skills/lit-typographic-motion/engine/png.mjs +139 -0
  661. package/skills/lit-typographic-motion/engine/sound.mjs +291 -0
  662. package/skills/lit-typographic-motion/engine/stage/capture.mjs +133 -0
  663. package/skills/lit-typographic-motion/engine/stage/clock.js +171 -0
  664. package/skills/lit-typographic-motion/engine/stage/frame-worker.mjs +47 -0
  665. package/skills/lit-typographic-motion/engine/stage/gate.mjs +119 -0
  666. package/skills/lit-typographic-motion/engine/stage/qa-page.js +158 -0
  667. package/skills/lit-typographic-motion/engine/stage/qa.mjs +208 -0
  668. package/skills/lit-typographic-motion/engine/stage/render.mjs +418 -0
  669. package/skills/lit-typographic-motion/engine/stage/scan.mjs +162 -0
  670. package/skills/lit-typographic-motion/engine/stage/stage-kit.js +310 -0
  671. package/skills/lit-typographic-motion/engine/stills.mjs +60 -0
  672. package/skills/lit-typographic-motion/engine/text.mjs +126 -0
  673. package/skills/lit-typographic-motion/engine/timing.mjs +289 -0
  674. package/skills/lit-typographic-motion/engine/treatment.mjs +254 -0
  675. package/skills/lit-typographic-motion/fonts/Archivo-100-400.ttf +0 -0
  676. package/skills/lit-typographic-motion/fonts/Archivo-100-700.ttf +0 -0
  677. package/skills/lit-typographic-motion/fonts/Archivo-100-900.ttf +0 -0
  678. package/skills/lit-typographic-motion/fonts/Archivo-125-400.ttf +0 -0
  679. package/skills/lit-typographic-motion/fonts/Archivo-125-700.ttf +0 -0
  680. package/skills/lit-typographic-motion/fonts/Archivo-125-900.ttf +0 -0
  681. package/skills/lit-typographic-motion/fonts/Archivo-75-400.ttf +0 -0
  682. package/skills/lit-typographic-motion/fonts/Archivo-75-700.ttf +0 -0
  683. package/skills/lit-typographic-motion/fonts/Archivo-75-900.ttf +0 -0
  684. package/skills/lit-typographic-motion/fonts/Archivo-OFL.txt +93 -0
  685. package/skills/lit-typographic-motion/fonts/Silkscreen-Bold.ttf +0 -0
  686. package/skills/lit-typographic-motion/fonts/Silkscreen-OFL.txt +93 -0
  687. package/skills/lit-typographic-motion/fonts/Silkscreen-Regular.ttf +0 -0
  688. package/skills/lit-typographic-motion/fonts/VT323-OFL.txt +93 -0
  689. package/skills/lit-typographic-motion/fonts/VT323-Regular.ttf +0 -0
  690. package/skills/lit-typographic-motion/fonts/pins.json +44 -0
  691. package/skills/lit-typographic-motion/fonts/stroke/CREDITS +52 -0
  692. package/skills/lit-typographic-motion/fonts/stroke/EMSAllure.svg +216 -0
  693. package/skills/lit-typographic-motion/fonts/stroke/EMSFelix.svg +216 -0
  694. package/skills/lit-typographic-motion/fonts/stroke/EMSOsmotron.svg +216 -0
  695. package/skills/lit-typographic-motion/fonts/stroke/EMSReadability.svg +216 -0
  696. package/skills/lit-typographic-motion/fonts/stroke/EMSTech.svg +217 -0
  697. package/skills/lit-typographic-motion/fonts/stroke/OFL.txt +85 -0
  698. package/skills/lit-typographic-motion/gate.mjs +593 -0
  699. package/skills/lit-typographic-motion/package-lock.json +78 -0
  700. package/skills/lit-typographic-motion/package.json +11 -0
  701. package/skills/lit-typographic-motion/probe.mjs +74 -0
  702. package/skills/lit-typographic-motion/references/authoring.md +110 -0
  703. package/skills/lit-typographic-motion/references/craft-loop.md +110 -0
  704. package/skills/lit-typographic-motion/references/runtime.md +88 -0
  705. package/skills/lit-typographic-motion/references/stage.md +164 -0
  706. package/skills/lit-typographic-motion/references/style-bibles.md +88 -0
  707. package/skills/lit-typographic-motion/references/treatment.md +143 -0
  708. package/skills/lit-typographic-motion/references/type-craft.md +55 -0
  709. package/skills/lit-typographic-motion/render.mjs +654 -0
  710. package/skills/lit-typographic-motion/requirements-audio.in +1 -0
  711. package/skills/lit-typographic-motion/requirements-audio.txt +790 -0
  712. package/skills/lit-typographic-motion/runtime.mjs +259 -0
  713. package/skills/lit-typographic-motion/word-timing-models.json +25 -0
  714. package/skills/litresearch/SKILL.md +41 -12
  715. package/skills/managed-skill-manifest.json +2367 -63
  716. package/skills/skill-rename-aliases.json +6 -1
  717. package/tools/check-pack-payload.mjs +22 -1
  718. package/tools/check-payload-substance.mjs +2 -2
  719. package/tools/payload-reference-exemptions.json +4 -0
  720. package/tools/payload-substance-allowlist.json +2 -3
  721. package/tools/payload-substance-parity.json +7 -7
  722. package/tools/version-manifests.json +4 -4
  723. package/skills/lit-korean/SKILL.md +0 -231
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "litopencode-office-pptx-runtime",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "type": "commonjs",
6
+ "dependencies": {
7
+ "pptxgenjs": "3.12.0",
8
+ "sharp": "0.35.4"
9
+ },
10
+ "overrides": {
11
+ "image-size": "2.0.4"
12
+ }
13
+ }
@@ -0,0 +1,94 @@
1
+ Copyright (c) 2021, Kil Hyung-jin (https://github.com/orioncactus/pretendard),
2
+ with Reserved Font Name Pretendard.
3
+
4
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
5
+ This license is copied below, and is also available with a FAQ at:
6
+ https://scripts.sil.org/OFL
7
+
8
+
9
+ -----------------------------------------------------------
10
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
11
+ -----------------------------------------------------------
12
+
13
+ PREAMBLE
14
+ The goals of the Open Font License (OFL) are to stimulate worldwide
15
+ development of collaborative font projects, to support the font creation
16
+ efforts of academic and linguistic communities, and to provide a free and
17
+ open framework in which fonts may be shared and improved in partnership
18
+ with others.
19
+
20
+ The OFL allows the licensed fonts to be used, studied, modified and
21
+ redistributed freely as long as they are not sold by themselves. The
22
+ fonts, including any derivative works, can be bundled, embedded,
23
+ redistributed and/or sold with any software provided that any reserved
24
+ names are not used by derivative works. The fonts and derivatives,
25
+ however, cannot be released under any other type of license. The
26
+ requirement for fonts to remain under this license does not apply
27
+ to any document created using the fonts or their derivatives.
28
+
29
+ DEFINITIONS
30
+ "Font Software" refers to the set of files released by the Copyright
31
+ Holder(s) under this license and clearly marked as such. This may
32
+ include source files, build scripts and documentation.
33
+
34
+ "Reserved Font Name" refers to any names specified as such after the
35
+ copyright statement(s).
36
+
37
+ "Original Version" refers to the collection of Font Software components as
38
+ distributed by the Copyright Holder(s).
39
+
40
+ "Modified Version" refers to any derivative made by adding to, deleting,
41
+ or substituting -- in part or in whole -- any of the components of the
42
+ Original Version, by changing formats or by porting the Font Software to a
43
+ new environment.
44
+
45
+ "Author" refers to any designer, engineer, programmer, technical
46
+ writer or other person who contributed to the Font Software.
47
+
48
+ PERMISSION & CONDITIONS
49
+ Permission is hereby granted, free of charge, to any person obtaining
50
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
51
+ redistribute, and sell modified and unmodified copies of the Font
52
+ Software, subject to the following conditions:
53
+
54
+ 1) Neither the Font Software nor any of its individual components,
55
+ in Original or Modified Versions, may be sold by itself.
56
+
57
+ 2) Original or Modified Versions of the Font Software may be bundled,
58
+ redistributed and/or sold with any software, provided that each copy
59
+ contains the above copyright notice and this license. These can be
60
+ included either as stand-alone text files, human-readable headers or
61
+ in the appropriate machine-readable metadata fields within text or
62
+ binary files as long as those fields can be easily viewed by the user.
63
+
64
+ 3) No Modified Version of the Font Software may use the Reserved Font
65
+ Name(s) unless explicit written permission is granted by the corresponding
66
+ Copyright Holder. This restriction only applies to the primary font name as
67
+ presented to the users.
68
+
69
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
70
+ Software shall not be used to promote, endorse or advertise any
71
+ Modified Version, except to acknowledge the contribution(s) of the
72
+ Copyright Holder(s) and the Author(s) or with their explicit written
73
+ permission.
74
+
75
+ 5) The Font Software, modified or unmodified, in part or in whole,
76
+ must be distributed entirely under this license, and must not be
77
+ distributed under any other license. The requirement for fonts to
78
+ remain under this license does not apply to any document created
79
+ using the Font Software.
80
+
81
+ TERMINATION
82
+ This license becomes null and void if any of the above conditions are
83
+ not met.
84
+
85
+ DISCLAIMER
86
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
87
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
88
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
89
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
90
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
91
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
92
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
93
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
94
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,2 @@
1
+ python-pptx==1.0.2
2
+ defusedxml==0.7.1
@@ -0,0 +1,285 @@
1
+ # This file was autogenerated by uv via the following command:
2
+ # uv pip compile --generate-hashes skills/lit-pptx/requirements.in -o skills/lit-pptx/requirements.lock
3
+ defusedxml==0.7.1 \
4
+ --hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \
5
+ --hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61
6
+ # via -r skills/lit-pptx/requirements.in
7
+ lxml==6.1.3 \
8
+ --hash=sha256:032a0a97eed428bd143c75a11118238546424ceb2fa311cca5f073aa44658dc4 \
9
+ --hash=sha256:05f5bce9af14fd1506997594bd81cee6d9c6b58ea80a39c058327aa6371ed9e9 \
10
+ --hash=sha256:0794e04ba343852c6d78e996c58ef4b8e579b4ecc72f8df0d4058bf843b4c96e \
11
+ --hash=sha256:0ab2467e405e748d93495fb5568e74044802b8d3ff2b2a1607c3f78c6e982de5 \
12
+ --hash=sha256:0bf5a3e397df2ec4258eb5eea4c1ac6cf013ca1abd04a176903bff20a70021fe \
13
+ --hash=sha256:0c0710ac085a157b593c38fbcacd950f15c4afa8e2057527185875ab302752bc \
14
+ --hash=sha256:0dee106e9aa97fb00541b1ed7827070564d0549c3d3fba8920e6b20fd980f748 \
15
+ --hash=sha256:0f17d83c48ee9dfd96abae3ac3e2108c76d2fc86ce96355e37b8da9f7f4ecc08 \
16
+ --hash=sha256:0feebef8d0521188d0157f758356072e840173aa61ca45b8b3f87959ac283dd5 \
17
+ --hash=sha256:13a620a3fcc20023f9e6ed5c383e00e826f1c2d5db554df2f67240760f9118e8 \
18
+ --hash=sha256:13d22c0d57355366b393936acf6b98a5e0edeadddd3fccbc6a846c50a76b8741 \
19
+ --hash=sha256:160fcf381f76c3aeac28a756bec44f48942a8f7245a87aa28e3a523b4d90cd87 \
20
+ --hash=sha256:16148acd77ed1d8836a56db883af2f5eed720f9723088110b16a0d08582130a6 \
21
+ --hash=sha256:170773d8a3cdc76259065523ddd978c44f9806e28605f08812e8f86783e44ac6 \
22
+ --hash=sha256:18293f8a8d8b6a8e71ef37706b659e3846a4261232158167b1ddf35f6994f633 \
23
+ --hash=sha256:18a4db52b5a7b53a3540b0b0f4123319334621ee8083d496de314d0bf06ff59a \
24
+ --hash=sha256:1a635e837b50a1819bebfedaac5916498ea024120969da8790500148fb0a894d \
25
+ --hash=sha256:1aeca87830c4fe649dcf93fe2b059525b71c72587f21be4ae4af7103082a79fa \
26
+ --hash=sha256:1b7c37339d7e75cab9a123a04248e243cefefb302ad6db566ea0c77cbcde421e \
27
+ --hash=sha256:1beb0f9909b26cee938df9ba56b15252a84429b1fc30ce6fca161390b9789a70 \
28
+ --hash=sha256:20384c2bbcbf87180c8c61eb60869699c1ec0cd09b62cfd13804022d860b0867 \
29
+ --hash=sha256:20428910dae17a1a93152a3ff2c0441d2f4932992c0797d65651dd0561f1792f \
30
+ --hash=sha256:207dfc3d47cf0e575e643bbc140dacc8863b39abaa1e5307cd64c7f2365b8a12 \
31
+ --hash=sha256:209c3ccbfe35a04ac6d24f0611f9d1cbf8025d49991b14acd935236234d6c156 \
32
+ --hash=sha256:2123e5aa075ac20d23c7af489255efd129cbfe190dbe88fd42598cc9df3199b6 \
33
+ --hash=sha256:21402998e4b78e7cce237d2788841aaa21ac9a4d1574d04dc2d12ee41ae807b5 \
34
+ --hash=sha256:2221e88679d1351e9a40aaee54bc65679b9795bbd0160bc3d5e36b163344eb75 \
35
+ --hash=sha256:22eec57e26c418cde02c051ce9914a365e52a7f135a565c6f0480242aeebab48 \
36
+ --hash=sha256:23c366231259cd75ad06495174701afb3fcb36a92917fa47de2d1f1bd9d95739 \
37
+ --hash=sha256:25f4118c438f96bb466e83108506d03d5c31b1bd2387e83e5b070bda6ded9c37 \
38
+ --hash=sha256:28a23fefdb345b2d4d0ff2860571b5ff9a89a28b6a120f720e8fb0324d346626 \
39
+ --hash=sha256:290f66b97ede0e552e1cb44a0fd8a74f9753ee635b50830a0b122fb72788d015 \
40
+ --hash=sha256:2b9b1325ca1c2a9a2dbb6eb913ae563313f2082ae60b03210f7e83ee80712274 \
41
+ --hash=sha256:2bec13085dc8ef48a3fe62f7dfcacfeda2c785cdf19cc8eeda2bb9ed081da165 \
42
+ --hash=sha256:2cae5d5c90a62d9139c512a0cb1aad1d182b022b5740daea2617eb5bf7fc658e \
43
+ --hash=sha256:2e01125896585139453cab8cb235893644d8815d7509520da95ae3ee8d1c1f79 \
44
+ --hash=sha256:2e62c569ec7531b679b184cbfe335c501c1d13c4b363560013019962eb630e6d \
45
+ --hash=sha256:2f5b2a2b9811b853b39bfa41367c6d78747b8e3e80e07fc5a24aae295c1a4d7d \
46
+ --hash=sha256:302f72413251c03f671e063c9414bed5dc8c927069e5abb69245521e51a4e81b \
47
+ --hash=sha256:32a409be3190b088f960ac92bfedfbef2f86c49ff940765e1548177592d20026 \
48
+ --hash=sha256:33cadd956b667997e4de1635fce9541f2e8ede2038fcde8cf55aa14d571d1bad \
49
+ --hash=sha256:379f8a75cf6eb7eef0af074b55f49ab73b868388a98de14646abcdfa4564bb11 \
50
+ --hash=sha256:3847e71a78cbbc1aff955dbbbaf2fff12153f611d3162c5beaa3395636cbc2f9 \
51
+ --hash=sha256:38fc4e4e4e084e0bd491949482527d406788045c546d4f8789e93fc527b91385 \
52
+ --hash=sha256:3a27ac6c780c8b8a1cd231b58407634cafc1c4cc28cd6c7141362df0f36351e7 \
53
+ --hash=sha256:3a48093cdb058a93af842ede9703520e810b05dcd0fc6d7190a06376c3bfb6bd \
54
+ --hash=sha256:3e42265103fb385d8642a78672edf376c6f7e1d3598a7a4f9cb1278f2f6b5f6f \
55
+ --hash=sha256:3e9a00d1c2c30936f7add097c41afc5da6556c580909104aafd382cac92a855c \
56
+ --hash=sha256:40983eabefd13da003e68170928c7acc011f0d095eefce5871a3c71c9385fb9a \
57
+ --hash=sha256:40bcbd9f94166ffe925811e730607385cec959f42fb1bb7dad83748680465221 \
58
+ --hash=sha256:41096ec0740a58dad03d3ae0c7486d306d20becefb13ceb1649835ab3eb64167 \
59
+ --hash=sha256:415e3a115c0d510e329020012834d1c0aa1c581ee53a218603e38abbc1dea70a \
60
+ --hash=sha256:41e2d428110b408e963b6fb18f9bbf1f5c027b56bd4b498d54556476c0aeb1c3 \
61
+ --hash=sha256:424aa5657141d306ba9ad1baab4b2c0a0719040075ee6c66aee9bb2dea2b5054 \
62
+ --hash=sha256:42632b4024ab24a6b488f559ac851312509888b6b80ae2aa11cf29a646a0d245 \
63
+ --hash=sha256:45222d94ddd511536f3b2f7d9deae3b2339b4ce0f075f1ca25703b07cad9dd21 \
64
+ --hash=sha256:4736e6c87e603146d8949d8501da621ad20c31015060d3fcf95ace2859f3e3e6 \
65
+ --hash=sha256:48542c9acba9ff9450bd18d871d2c2c8787fdb283572b623d206f1b927cd7d9e \
66
+ --hash=sha256:49fbc2682a9306135b7ec49e93f97f9c26689b9b7f96ed2742d8d6497e994d13 \
67
+ --hash=sha256:4a579dfb9c835f8ab47f4b8ed33440cbc75b806b73297208e6ec2a33e903740b \
68
+ --hash=sha256:4b061064b4a2fe8598a466d723d43dbcd5a610a5d5cfe02fb6226f5c17349f75 \
69
+ --hash=sha256:4e11e885e0704be185867fcf71b904d8f65d7d6877bc121f69870b0d0479ba7b \
70
+ --hash=sha256:4f4db7c7e954d289d71878938348b3d91b904a3e8210a11939359fb758a58e7d \
71
+ --hash=sha256:527195c188d7d0af748cd48d220ab8cdc5cb99be3d49ac4d9be7324d8abf9bc0 \
72
+ --hash=sha256:53258656846f5c48996b882fb4b135885e088a3ad3d96b4bc0530f95124d1f69 \
73
+ --hash=sha256:545ccc14fb05485f48b4439ec35beb16d5b5280eb6c81c658bd4707a2a119414 \
74
+ --hash=sha256:5609efdb0d3c95499c00046bc53648b3482ec2175b5503d6e611b3f0555dc71d \
75
+ --hash=sha256:5929d9df5e7e3379183be0e21f7d559618a5b61cb63280df6164019242e337ed \
76
+ --hash=sha256:5a143e6207579de8baeded4eaac9134413200359f1969d636f0bfb98ee8c3c8f \
77
+ --hash=sha256:5a721a98c649855963811b59b55755b30566e7f7fc40bdc9803d66dee9f811cf \
78
+ --hash=sha256:5cffe18571ccc51d742cd08cbb3f8b756de9311d18c7ea98f5d92f37b8fb60c2 \
79
+ --hash=sha256:5d12669a2c419b0e8dc423d23dea24bb82f6f9cb829f32e04674b0ba40322a7c \
80
+ --hash=sha256:5d582042c69857c364e8153de6e18e0da9b7b515a6a8113caf69a6ec8e0520f2 \
81
+ --hash=sha256:61116cec57ed69aebc70f37a545eec095339bb829efbdabcfb97c51e9536e158 \
82
+ --hash=sha256:611a51e61c92f62345a50b0035df6fc0d678f9299f33728826d831598862f59d \
83
+ --hash=sha256:623c8799c17128753c65699f1c3aa32402657393a9ad6db09ed8b98ddf76611d \
84
+ --hash=sha256:6374e9e382e5a98c9c5e66d41b357b470da1c54bce30f17f9dc4bcc58436cc1c \
85
+ --hash=sha256:66299564c046bc7e0cc5de5106601eae907e9fa5904cd68a323380a8502f7861 \
86
+ --hash=sha256:69cafd61aea04ebb3502c93c2aaa568b12931ca0802231e0b5de76bf8b6e74bd \
87
+ --hash=sha256:6a406d0b3cb207b0fa460ed4dc93e866f44f105da0169361cb18ff998a44c7f0 \
88
+ --hash=sha256:6ba4fe5bfbef6811a8e49b3719cde373ad399006c0c1ac184b7297116ecbba5d \
89
+ --hash=sha256:6cd11e7550d89e551a87dcec30f04b1fca32e86b68708aa01a4daa455d8605e5 \
90
+ --hash=sha256:6e1eb8a4cbffd5553680ad96be6680e364710656eced73d1dc90ec489df599a3 \
91
+ --hash=sha256:6ea2f13dce778ca072ccee598bca46a092ce192e8fd907b6c1f0e52c800529a0 \
92
+ --hash=sha256:71532ebf30be0048a45559b4fab15333fbaaf9042f658e878d918ecd0cf09805 \
93
+ --hash=sha256:73fc05988ed20809450474ba760a87c8ad4e455fc09783c02195e56ec634b41a \
94
+ --hash=sha256:75cc6569e86be5785b6188ef1642670c6adbc984e81ec35e224842ecd9eefcc8 \
95
+ --hash=sha256:773062aec2f2e56b2b22d37054123f0de8a22a4688a0c3376c3fe42685f975cf \
96
+ --hash=sha256:7ae4949f212a53b007dbc355884fda122545c5764a54256c9217e419a62a6559 \
97
+ --hash=sha256:7b2bb7d703bed7ac893bf7f40d97b5d9279d35d2ce460624ca28929eab0d5a3d \
98
+ --hash=sha256:7d0f5976aa2701996f759b30172925829867547bb073af0ae67d1307a0f0262c \
99
+ --hash=sha256:7d5a748d12dd9b535e0a130f60dae9ddf0adafbabe61e7864f55c7436c84547a \
100
+ --hash=sha256:7dd624c1eaa629ad44b59a1a0145fdf2d67895592dce94c9358b938b3d075e65 \
101
+ --hash=sha256:7f75b9b9fec2a9c6b18095c81865580e795b1441c429e42d22fcc82a77f40039 \
102
+ --hash=sha256:83e3a51e7933db700a0da0db31849db3a24022d9970da9bb73001e1d0326fd92 \
103
+ --hash=sha256:8499d464de86fab0f102313cce32a9bed9ab1f06ec813cf025cb790964fbb765 \
104
+ --hash=sha256:869dfcd4d381cb0ea87085cc4f011b9171b494ef21e76ad8665f6d5e2d1dc8a1 \
105
+ --hash=sha256:8753b8d51dbc86fd335ee31fcf7f3658e9f5c016d4edfb23f76ad295f4b8c9d0 \
106
+ --hash=sha256:887c021d9a977cff89cb273047c1352997b772a8908a25c21836861f69b92be1 \
107
+ --hash=sha256:88e719b9437f148f7e1465df845c758dd1598618cbea3a2fd1e61a715542f2b2 \
108
+ --hash=sha256:8a330c0ee5fa318c7b5cbbaad882baeca3f570357e7eb25ab34bf31008150758 \
109
+ --hash=sha256:8db38ff3fb7aee7d6a82ae4da2eef1178656fe1216841fbd24870062a9d60473 \
110
+ --hash=sha256:8e49a646acfab83c68974f4aa1d0a2acca9e88d7d627ae0fc13201b14b76d310 \
111
+ --hash=sha256:909f4e927bb051f7740d6367285fc60cdcfdaf0258c2dba4ff5ba7eadadc250c \
112
+ --hash=sha256:90f709b9accab6b2e4d14f5c8718203877a0486bcb3afd74d8b539ecd1e961d4 \
113
+ --hash=sha256:92d96586376fb79a33474797186bf993250152ee5c32650b67db78d54b92e6f3 \
114
+ --hash=sha256:93476b6514b373fc6ca67d26c442784f7807c86f00635bfe79f935c3eab2af17 \
115
+ --hash=sha256:97acecb11cbc411473f15b8d780df06d7a9f3a2aad9aca78364f56640c8fb70e \
116
+ --hash=sha256:97ce49699d87ebf8aad631b55d65b33219a4f1bfefbbf5bff19dc9af160aeaf9 \
117
+ --hash=sha256:9bde9ae026a55b9a192078dfa6e27dd0ca4a050171ab6272e92f97b757dfdf48 \
118
+ --hash=sha256:9e67324961ac9bbe616cce5100514d2e34d88665aeb07071e8b16eac55d06d94 \
119
+ --hash=sha256:9efe56a68179f3adc4de41861c9358931db03837c48dd5e1c78077b84dd07f3a \
120
+ --hash=sha256:a1932d7ce78a561367512c594fe66eac2b2ec9b9264cfd9b5f950622f4a116e2 \
121
+ --hash=sha256:a1cec0f99b9b914d39176347a93b7610dc09324491aee1cbc57cd291a41a1d55 \
122
+ --hash=sha256:a2e3f70673a1d5b82f38255f777d26cd855bf2092b1436c4867464a7892f9238 \
123
+ --hash=sha256:a43b3bdf11e477dc7770609d3477316f974354dfc8425d596f64f471cc8daf6e \
124
+ --hash=sha256:a5c18810318303ce9afb3f95e2ddb54834f96fa699a8600433fd5a93dcf44c56 \
125
+ --hash=sha256:a7eb78ba28b187e1e9203a55c60fcf70df2d22cb205fe6d51b9383d6097419f0 \
126
+ --hash=sha256:aa633613ff907ea91b9b0489a1f0da1b8725d8c6ccec6b77e8a1c9c235044bb0 \
127
+ --hash=sha256:aa9fd1ee2a5dacfc41039ed49ffeeacfa75bafbd255b69f3b578e11897a0e623 \
128
+ --hash=sha256:ace1d2c83b2bd24db5940600541140e87a325e119cb32d5fa9ad720d7e76648e \
129
+ --hash=sha256:b1cc980905221a5d8b3c476330730b3adb40ff80add71ffbdb6215ba055656f1 \
130
+ --hash=sha256:b37772102d44bb6628186accca3a121b1fa3a6b3d97518a8c29a5229ca4c0d0a \
131
+ --hash=sha256:b3ff39654f0ce6ebd4db154211136dbe7e8157bcc3bed2344c87f32c7c6ecb6c \
132
+ --hash=sha256:b477912f42c5c33405a10c759d22f80cf5af043ae02d95b9d8e5e5bc555739ed \
133
+ --hash=sha256:b49638355ea3bebba70da783ccbc630fd72afa16bc46c54474bfa1f9a915bbc6 \
134
+ --hash=sha256:b4fc6b03b9d9d90557274f571ab30e7fbbfc527955536935d96f98b6817a86e4 \
135
+ --hash=sha256:b50343241eb69fd85f7791cf8bcc7b1c4729826b7d59ba2f6b27db29638fa745 \
136
+ --hash=sha256:bc8dd3d9c93e70c3df974a201ac2958b6d77b465d813c51d1f15fa8e645763ae \
137
+ --hash=sha256:be5346653c0b0e34be96869ff9dbeba23860156f89a2896a64c64fb419260cb6 \
138
+ --hash=sha256:c00e26288784460885fe76e4d4b293573e0f791f52e6d60e27b42edf005922eb \
139
+ --hash=sha256:c1b50797ac246bb2942a04b6c0f69af0667aba7cf7535f39bbb1b3208fd5d128 \
140
+ --hash=sha256:c34ca1dc41bd86d9ff830d5bdf4e4a752bba6c54f7d2707027ce0eabd36084c9 \
141
+ --hash=sha256:c55e71a9b1db1f107efb60da49c093689b74c5c31a708e5379e2fd9439d4fbb5 \
142
+ --hash=sha256:c581b1d68b3845fb86c6b2983e755b29bf001461c59fa411d2c26a911b6559a9 \
143
+ --hash=sha256:c59e4265608da6a041f54646ecc0c9ecdbb19aaf14c4c684bb6c2114998cc415 \
144
+ --hash=sha256:c5e7ce578aa8a80910a72a8ca0bbea3baae10100827249001999726a788456d8 \
145
+ --hash=sha256:c66f858b82497173f73366795fc6ee8171620e75a338506d6b2e7bc16f5fca11 \
146
+ --hash=sha256:c6c0c13128a32eb04a51357e56a094e13aa8e6d3d1884de2e9ae923f6915e1a8 \
147
+ --hash=sha256:c9389b3784b56c58d933b5e0aecdf28f901b073ff385358d8a7d40907f6e14b2 \
148
+ --hash=sha256:ca0ec532ad2f5ba1e5ec120ac157769c57f01855b3d8bf37213f5d88abd9ba0a \
149
+ --hash=sha256:cad7617727a96d189bd6f979d0fadf765198c7934e85f4edaba9bf3ad919a300 \
150
+ --hash=sha256:cae82b5ca24b0c2beedb269f6e2a96f466acd926879ab00ae19f1a65cbf9ffb0 \
151
+ --hash=sha256:cc669256d28736f7f3a149df5c380c50ace2692ba3e62203d10656fade4a2145 \
152
+ --hash=sha256:ce1f220114959941170e22b8ad44279f6dee2dcef7591814d01ae805dc058889 \
153
+ --hash=sha256:cfb398886a7eb4c719161c3efcff2a1248febc53a4d8e5072d2d8a87fed84ac9 \
154
+ --hash=sha256:d077f21f4b16f0471353883748f126f62038760397c107bb9fad2ca94dc0dfb7 \
155
+ --hash=sha256:d0c5c362bc94f1929dc7e96e715bbe7bd17037f802e6d8f0d1545df9133c0559 \
156
+ --hash=sha256:d2765c18ce303149ee804b1f3dad11232726dd0a702d73a15cf19179ac8cc962 \
157
+ --hash=sha256:d44442effeb8781f392340c5dc8c6716fba41dbeacb82fd4c0f09026fb5ff682 \
158
+ --hash=sha256:d85dfab42dd672f87a7f76e9de7172962aee69fa12044f0d6e1a23cbd53fb80e \
159
+ --hash=sha256:d97c5227621af74b111882a290b10f371780a38eef9d9e730408fba2259b52fb \
160
+ --hash=sha256:d9a0d12846d6ce434fb3857918eef4315ec9b4769deb020c75828798614bfcfd \
161
+ --hash=sha256:d9b3e7d71bf6acff341233417abbdface29c647e3113892d9aaedc02eb4aa2bc \
162
+ --hash=sha256:da707f14ea3c35ee463d50acd596d6488e4b2b4ae7cf77a5bf93f55c023d63e8 \
163
+ --hash=sha256:da85db328e507da922d586c3c7416ec360ec22e9cd9e0700691afacde0c81f53 \
164
+ --hash=sha256:dc205732d593118cf701d986f40e9de7801bb2e371cb189ddbda9b7348f4d97e \
165
+ --hash=sha256:dc3a44689eea43eab836e5c98a8ab015dc2419987d1ea6eafc7c590cdff86bed \
166
+ --hash=sha256:dd5e90f34cffcfed97f36cf066325773d2b6021c60c29942e53a18b028501b1d \
167
+ --hash=sha256:ddcf547bea2aee967d6a77779376a45e77e610e8465147a1f3d7e20d539d6e32 \
168
+ --hash=sha256:e477aca0bc0d19f3b4ae9e4f2a1cfd687c31bf772d78734910658186b40b2477 \
169
+ --hash=sha256:e8b17e23df3e827a69d25af70990ca2420e92668aaffaeeb3cd2351d7916a023 \
170
+ --hash=sha256:e99e09ab7741f1281e2677f4c0058c7f5267d182530b09c87e4f6aa26adf3887 \
171
+ --hash=sha256:ea2c01cdb16dc12156e455007c406dfaaece0c89aa4ba0e3b47586779f951d41 \
172
+ --hash=sha256:ea6b1e9105b4b24a34c722432d9fb578f9ed83af21fa1abda639011e0f22bbb6 \
173
+ --hash=sha256:ebd054ad1737a68fb7c5c073d405cef2b88bb824e294de3b4a4e995b47f0e376 \
174
+ --hash=sha256:ec295280f4b37769256da025acf5890370355ac589c27e89caae0b5e9eedc702 \
175
+ --hash=sha256:f6449672f9c93316deb5e2839e18931f468670e44d5bd9b1301a5a9655d45c07 \
176
+ --hash=sha256:f683dc6300317700025e41d89a43e0276692ded16113a3c43eab704d605c58e5 \
177
+ --hash=sha256:f6b9d2aad499c769ee8287609ab0e6de99d8bcea99c6e6c2e64945259fd52fb2 \
178
+ --hash=sha256:f8b9c8ceebae6387d0dc77f7f4dbbfbfc962dba2efbfe6877486075a480726b4 \
179
+ --hash=sha256:fad67b12ffe0f71e02b4932b04883cbc76a9072bbd30731409d3523cf058b011 \
180
+ --hash=sha256:fbfb70ba01355251faf6b293171df49f73a88a1b6494db109ffea85442574458 \
181
+ --hash=sha256:fe91993149523aa59941b9e3c90e2eb45f57ad014697aef6c8b13339a59c019e \
182
+ --hash=sha256:febd35ef45f603c2d74b74655efdbf45e14f55fc0aef4ac82b663ca829b283e0 \
183
+ --hash=sha256:ff88a92cafde90888511242d1c54afcc1a8adbb6dc0a88fa7f87e29e92400d4a
184
+ # via python-pptx
185
+ pillow==12.3.0 \
186
+ --hash=sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb38bf756 \
187
+ --hash=sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a \
188
+ --hash=sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59 \
189
+ --hash=sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45 \
190
+ --hash=sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3 \
191
+ --hash=sha256:0dd2064cbc55aaec028ef5fbb60fa47bb6c3e7918e07ff17935284b227a9d2df \
192
+ --hash=sha256:0feb2e9d6ad6c9e3c06effe9d00f3f1e618a6643273576b016f591e9315a7139 \
193
+ --hash=sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b \
194
+ --hash=sha256:1182d52bc2d5e5d7d0949503aa7e36d12f42205dc287e4883f407b1988820d39 \
195
+ --hash=sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1bfe34ee6e \
196
+ --hash=sha256:1657923d2d45afb66526e5b933e5b3052e6bdea196c90d3abb2424e18c77dae8 \
197
+ --hash=sha256:186941b6aef820ad110fb01fb06eb925374dc3a21b17e37ec9a53b250c6fe2d1 \
198
+ --hash=sha256:1cca606cd25738df4ed873d5ad46bbdb3d83b5cbca291f6b4ff13a4df6b0bbe8 \
199
+ --hash=sha256:21900ce7ba264168cd50defae43cd75d25c833ad4ad6e73ffc5596d12e25ac89 \
200
+ --hash=sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e96ef72b5 \
201
+ --hash=sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf20648130 \
202
+ --hash=sha256:23d27a3e0307ec2244cc51e7287b919aa68d097504ebe19df4e76a98a3eea5bd \
203
+ --hash=sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d623832b5b0e28d \
204
+ --hash=sha256:251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b \
205
+ --hash=sha256:25b9b82bb22e6e2b3cd07b39c68b7b862001226cb3dff7130d1cb914121b39ed \
206
+ --hash=sha256:28ce87c5ab450a9dd970b52e5aca5fe63ed432d18a2eaddd1979a00a1ba24ace \
207
+ --hash=sha256:300557495eb45ebb8aec96c2da9c4be642fbf7cd937278b4013ba894ea8eb0eb \
208
+ --hash=sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c937177db558931 \
209
+ --hash=sha256:331b624368d4f1d069149002f25f44bc61c8919ce8ddb3c45bdad8f6e2d89510 \
210
+ --hash=sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b77f7a6 \
211
+ --hash=sha256:37dc8f7bbb66efe481bb60defacef820c950c24713fb44962ed6aa2a50966de1 \
212
+ --hash=sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce \
213
+ --hash=sha256:3edce1d53195db527e0191f84b71d02022de0540bf43a16ed734ed7537b07385 \
214
+ --hash=sha256:446c34dcc4324b084a53b705127dc15717b22c5e140ae0a3c38349d4efec071e \
215
+ --hash=sha256:4998562bf62a445225f22e07c896bb04b35b1b1f2eb6d760584c9c51d7a5f78c \
216
+ --hash=sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7 \
217
+ --hash=sha256:4e8c2a84d977f50b9daed6eeaf3baef67d00d5d74d932288f02cb94518ee3ace \
218
+ --hash=sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f3271df27d9c \
219
+ --hash=sha256:514435a37670e3e5e08f3945b68718b6ed329bb84367777e16f9f4dfe1e61a0f \
220
+ --hash=sha256:53aa02d20d10c3d814d536aa4e5ac9b84ca0ff5a88377963b085ad6822f93e64 \
221
+ --hash=sha256:5594fc43d548a7ed94949d139aa1341b270f1863f11cfd37f5a6c8b778a6b67f \
222
+ --hash=sha256:571b9fcb07b97ef3a492028fb3d2dc0993ca23a06138b0315286566d29ef718a \
223
+ --hash=sha256:57b3d78c95ba9059768b10e28b813002261d3f3dfc55cc48b0c988f625175827 \
224
+ --hash=sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700fc6eb17 \
225
+ --hash=sha256:6b02afb9b97f65fbca5f31db6a2a3ba21aa93030225f150fa3f249717e938fb4 \
226
+ --hash=sha256:6c0016e7b354317c4e9e525b937ac8596c38d2d232b419529b9cd7a1cd46e39a \
227
+ --hash=sha256:71d6097b330eea8fd15097780c8e89cb1a8ce7838669f48c5bacd6f663dd4701 \
228
+ --hash=sha256:756c768d0c9c2955feb7a56c37ea24aea2e369f8d36a88da270b6a9f19e62b5e \
229
+ --hash=sha256:78cb2c6865a35ab8ff8b75fd122f6033b92a62c82801110e48ddd6c936a45d91 \
230
+ --hash=sha256:7a743ff716f746fc19a9557f60dab1600d4613255f8a7aeb3cdde4db7eb15a66 \
231
+ --hash=sha256:85f998ea1848bc6757289e739cfbdda3a04adfd58b02fc018ce54d754a5ce468 \
232
+ --hash=sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c14da4fafc741c5f6217 \
233
+ --hash=sha256:877c3f311ff35410f690861c4409e7ccbf0cd2f878e50628a28e5a0bb689e658 \
234
+ --hash=sha256:8cd2f7bdda092d99c9fc2fb7391354f306d01443d22785d0cbfafa2e2c8bb418 \
235
+ --hash=sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a \
236
+ --hash=sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c \
237
+ --hash=sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b814ce40d4330 \
238
+ --hash=sha256:9e881fca225083806662a5c43d627d215f258ff43c890f831966c7d7ba9c7402 \
239
+ --hash=sha256:a2b55dd6b2a4c4b7d87ffa56bdb33fdc5fdb9a462173861a7bc097f17d91cb09 \
240
+ --hash=sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90b67d3e6bca2f1990930 \
241
+ --hash=sha256:a876864214e136f0eb367788dbd7df045f4806801518e2cfe9e13229cfe06d8f \
242
+ --hash=sha256:ae26d61dfa7a47befdc7572b521024e8745f3d809bd95ca9505a7bba9ef849ec \
243
+ --hash=sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a \
244
+ --hash=sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c87da7781a1e94 \
245
+ --hash=sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e46f93e92725468 \
246
+ --hash=sha256:b629de27fda84b42cde7edef0d85f13b958b47f6e9bbcbba9b673c562a89bd8b \
247
+ --hash=sha256:ba09209fbe443b4acccebe845d8a138b89a8f4fbaeedd44953490b5315d5e965 \
248
+ --hash=sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc70306f8 \
249
+ --hash=sha256:bcb46e2f9feff8d06323983bd83ed00c201fdcab3d74973e7072a889b3979fcd \
250
+ --hash=sha256:bcc33feacfaefce60c12fd500a277533bdc02b10a19f7f6d348763d8140bbba7 \
251
+ --hash=sha256:bf16ba1b4d0b6b7c8e534936632270cf70eb00dbe09005bc345b2677b726855c \
252
+ --hash=sha256:cf1845d02ad822a369a49f2bb9345b1614744267682e7a03527dc3bf6eea1777 \
253
+ --hash=sha256:d69141514cc30b774ceea5e3ed3a6635c8d8a96edf664689b890f4089111fb35 \
254
+ --hash=sha256:d9c7f76c0673154f044e9d78c8655fb4213f6ca31a836df48b40fe5d187717b9 \
255
+ --hash=sha256:dbce0b29841537a2fa4a214c2bbf14de3587c9680caa9b4e217568472490b28f \
256
+ --hash=sha256:dc624f6bc473dacdf7ef7eb8678d0d08edf15cd94fad6ae5c7d6cc67a4e4902f \
257
+ --hash=sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56ddd3ad0 \
258
+ --hash=sha256:e491916b378fba47242221bb9ead245211b70d504f495d105d17b14a24b4907c \
259
+ --hash=sha256:e795b7eb908249c4e43c7c99fac7c2c75dab0c43566e37db472a355f63693d71 \
260
+ --hash=sha256:e7e480451b9fa137494bccd3a7d69adbe8ac65a87d97be61e11f1b1050a5bac3 \
261
+ --hash=sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838 \
262
+ --hash=sha256:e9871b1ffbfa9656b60aeee92ed5136a5742696006fa322b29ea3d8da0ecc9cf \
263
+ --hash=sha256:e9aeb04d6aef139de265b29683e119b638208f88cf73cdd1658aa07221165321 \
264
+ --hash=sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26 \
265
+ --hash=sha256:f0606c8bf2cdefea14a43530f7657cbbb7ecf1c4222512492ef4a4434a9501ec \
266
+ --hash=sha256:f13c32a3abd6079a66d9526e18dad9b6d280384d49d7c54040cd57b6424041d9 \
267
+ --hash=sha256:f7401aebd7f581d7f83a439d87d474999317ee099218e5ad25d125290990ba65 \
268
+ --hash=sha256:fa4ecea169a355be7a3ade2c783e2ed12f0e40d2c5621cda8b3297faf7fbb9f5 \
269
+ --hash=sha256:fbd139c8447d25dd750ab79ee274cc5e1fe80fc56340ab10b18a195e1b6eca3e \
270
+ --hash=sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d \
271
+ --hash=sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f785b0a0198 \
272
+ --hash=sha256:ffd0c5368496f41b0944be820fcb7a838aa6e623d250b01acf2643939c3f99d7
273
+ # via python-pptx
274
+ python-pptx==1.0.2 \
275
+ --hash=sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba \
276
+ --hash=sha256:479a8af0eaf0f0d76b6f00b0887732874ad2e3188230315290cd1f9dd9cc7095
277
+ # via -r skills/lit-pptx/requirements.in
278
+ typing-extensions==4.16.0 \
279
+ --hash=sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8 \
280
+ --hash=sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5
281
+ # via python-pptx
282
+ xlsxwriter==3.2.9 \
283
+ --hash=sha256:254b1c37a368c444eac6e2f867405cc9e461b0ed97a3233b2ac1e574efb4140c \
284
+ --hash=sha256:9a5db42bc5dff014806c58a20b9eae7322a134abb6fce3c92c181bfb275ec5b3
285
+ # via python-pptx
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env node
2
+ // First-use runtime for the installed OpenCode skill. All installs stay in cache.
3
+ import { createHash } from "node:crypto";
4
+ import { existsSync, mkdirSync, mkdtempSync, copyFileSync, renameSync, rmSync, readFileSync } from "node:fs";
5
+ import { homedir, tmpdir } from "node:os";
6
+ import path from "node:path";
7
+ import { fileURLToPath } from "node:url";
8
+ import { spawnSync } from "node:child_process";
9
+
10
+ const root = path.dirname(fileURLToPath(import.meta.url));
11
+ const cache = path.join(process.env.XDG_CACHE_HOME || path.join(homedir(), ".cache"), "litopencode", "office");
12
+ const hash = (file) => createHash("sha256").update(readFileSync(path.join(root, file))).digest("hex").slice(0, 16);
13
+ const nodeRoot = path.join(cache, `node-${hash("package-lock.json")}`);
14
+ const pythonRoot = path.join(cache, `python-pptx-${hash("requirements.lock")}`);
15
+ const commands = {
16
+ compile: ["node", "scripts/compile-deck.js"],
17
+ qa: ["python", "scripts/qa_deck.py"],
18
+ embed: ["python", "scripts/embed_fonts.py"],
19
+ learn: ["python", "scripts/learn_template.py"],
20
+ validate: ["python", "scripts/validate_pptx.py"],
21
+ };
22
+
23
+ function run(binary, args, options = {}) {
24
+ const result = spawnSync(binary, args, { stdio: "inherit", cwd: root, ...options });
25
+ if (result.error) throw result.error;
26
+ if (result.status !== 0) process.exit(result.status || 1);
27
+ }
28
+
29
+ function prepareNode() {
30
+ if (existsSync(path.join(nodeRoot, "node_modules", "pptxgenjs"))) return;
31
+ mkdirSync(cache, { recursive: true });
32
+ const temporary = mkdtempSync(path.join(cache, "node-install-"));
33
+ try {
34
+ copyFileSync(path.join(root, "package.json"), path.join(temporary, "package.json"));
35
+ copyFileSync(path.join(root, "package-lock.json"), path.join(temporary, "package-lock.json"));
36
+ process.stderr.write("Installing LitOpenCode office Node dependencies in its cache.\n");
37
+ run("npm", ["ci", "--ignore-scripts", "--prefix", temporary]);
38
+ renameSync(temporary, nodeRoot);
39
+ } finally {
40
+ if (existsSync(temporary)) rmSync(temporary, { recursive: true, force: true });
41
+ }
42
+ }
43
+
44
+ function preparePython() {
45
+ const binary = path.join(pythonRoot, "bin", "python");
46
+ if (existsSync(binary)) return binary;
47
+ mkdirSync(cache, { recursive: true });
48
+ const temporary = mkdtempSync(path.join(cache, "python-install-"));
49
+ try {
50
+ process.stderr.write("Installing LitOpenCode office Python dependencies in its cache.\n");
51
+ run("python3", ["-m", "venv", temporary]);
52
+ run(path.join(temporary, "bin", "python"), ["-m", "pip", "install", "--disable-pip-version-check", "--require-hashes", "-r", path.join(root, "requirements.lock")]);
53
+ renameSync(temporary, pythonRoot);
54
+ } finally {
55
+ if (existsSync(temporary)) rmSync(temporary, { recursive: true, force: true });
56
+ }
57
+ return binary;
58
+ }
59
+
60
+ const [command, ...args] = process.argv.slice(2);
61
+ if (command === "doctor") {
62
+ console.log(JSON.stringify({ nodeReady: existsSync(path.join(nodeRoot, "node_modules", "pptxgenjs")), pythonReady: existsSync(path.join(pythonRoot, "bin", "python")) }));
63
+ } else if (Object.hasOwn(commands, command)) {
64
+ const [kind, script] = commands[command];
65
+ const binary = kind === "node" ? (prepareNode(), "node") : preparePython();
66
+ const env = kind === "node" ? { ...process.env, NODE_PATH: path.join(nodeRoot, "node_modules") } : { ...process.env, PYTHONDONTWRITEBYTECODE: "1" };
67
+ run(binary, [path.join(root, script), ...args], { env, cwd: process.cwd() });
68
+ } else {
69
+ console.error("Usage: node run.mjs <compile|qa|embed|learn|validate|doctor> [arguments]");
70
+ process.exit(2);
71
+ }
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env python3
2
+ """Check a PPTX package after font embedding without external schema files."""
3
+
4
+ import argparse
5
+ import posixpath
6
+ import zipfile
7
+ from pathlib import Path
8
+ from xml.etree import ElementTree as ET
9
+
10
+ from pptx import Presentation
11
+
12
+
13
+ def check(path):
14
+ with zipfile.ZipFile(path) as archive:
15
+ names = set(archive.namelist())
16
+ if archive.testzip() is not None:
17
+ raise ValueError("ZIP CRC check failed")
18
+ required = {"[Content_Types].xml", "_rels/.rels", "ppt/presentation.xml"}
19
+ if not required <= names:
20
+ raise ValueError("missing required OOXML part")
21
+ content_types = ET.fromstring(archive.read("[Content_Types].xml"))
22
+ declared = {node.attrib.get("PartName", "").lstrip("/") for node in content_types if node.tag.endswith("Override")}
23
+ if "ppt/presentation.xml" not in declared:
24
+ raise ValueError("presentation content type missing")
25
+ for name in names:
26
+ if not name.endswith(".rels"):
27
+ continue
28
+ root = ET.fromstring(archive.read(name))
29
+ base = "" if name == "_rels/.rels" else posixpath.dirname(posixpath.dirname(name))
30
+ for relation in root:
31
+ target = relation.attrib.get("Target", "")
32
+ if relation.attrib.get("TargetMode") == "External":
33
+ continue
34
+ resolved = posixpath.normpath(posixpath.join(base, target.lstrip("/")))
35
+ if target.startswith("/"):
36
+ resolved = target.lstrip("/")
37
+ if resolved not in names:
38
+ raise ValueError(f"missing relationship target: {name} -> {target}")
39
+ Presentation(str(path))
40
+
41
+
42
+ if __name__ == "__main__":
43
+ parser = argparse.ArgumentParser()
44
+ parser.add_argument("pptx", type=Path)
45
+ args = parser.parse_args()
46
+ check(args.pptx)
47
+ print("OOXML integrity PASS")