@fprad0/skill-master-mcp 0.0.12 → 1.0.1

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 (353) hide show
  1. package/CHANGELOG.md +100 -88
  2. package/README.md +472 -472
  3. package/VERSION.md +9 -9
  4. package/bin/lib/bootstrap-global-core.mjs +34 -0
  5. package/bin/lib/client-config.mjs +287 -285
  6. package/bin/lib/doctor-core.mjs +202 -0
  7. package/bin/lib/menu-core.mjs +1792 -1514
  8. package/bin/lib/operation-result.mjs +59 -0
  9. package/bin/lib/register-clients-core.mjs +247 -0
  10. package/bin/lib/skill-installation.mjs +215 -215
  11. package/bin/lib/update-cli-core.mjs +117 -0
  12. package/bin/skill-master-activation.mjs +165 -163
  13. package/bin/skill-master-bootstrap-global.mjs +61 -49
  14. package/bin/skill-master-configure-private-registry.mjs +3 -3
  15. package/bin/skill-master-doctor.mjs +239 -228
  16. package/bin/skill-master-eval-activation.mjs +32 -32
  17. package/bin/skill-master-install-global-skills.mjs +59 -59
  18. package/bin/skill-master-install-project-skills.mjs +97 -97
  19. package/bin/skill-master-menu.mjs +489 -378
  20. package/bin/skill-master-register-clients.mjs +232 -153
  21. package/bin/skill-master-success-skills.mjs +357 -307
  22. package/bin/skill-master-update.mjs +121 -72
  23. package/bin/skill-master.mjs +3 -3
  24. package/dist/activation.d.ts.map +1 -1
  25. package/dist/activation.js +12 -0
  26. package/dist/activation.js.map +1 -1
  27. package/dist/prompt-router.d.ts.map +1 -1
  28. package/dist/prompt-router.js +19 -0
  29. package/dist/prompt-router.js.map +1 -1
  30. package/dist/recommender.d.ts.map +1 -1
  31. package/dist/recommender.js +4 -1
  32. package/dist/recommender.js.map +1 -1
  33. package/docs/architecture/APRENDIZADO_DE_IMPLEMENTACOES_BEM_SUCEDIDAS.md +125 -125
  34. package/docs/architecture/ARQUITETURA_AUTO_UPDATE.md +9 -9
  35. package/docs/architecture/PLANO_MASTER_ACIONAMENTO_AUTOMATICO_E_APRENDIZADO.md +341 -341
  36. package/docs/architecture/REDE_SEGURA_DE_SKILLS.md +148 -148
  37. package/docs/operations/GUIA_MULTI_COMPUTADOR.md +262 -262
  38. package/docs/operations/GUIA_NPM_PRIVADO.md +294 -294
  39. package/docs/operations/GUIA_NPM_PUBLICO.md +147 -147
  40. package/docs/operations/MENU_VISUAL_EVIDENCE_2026-06-28.md +66 -66
  41. package/docs/operations/assets/menu-frame-compact.html +36 -33
  42. package/docs/operations/assets/menu-frame-dna-hero.html +87 -0
  43. package/docs/operations/assets/menu-frame-fine-helix.html +89 -0
  44. package/docs/operations/assets/menu-frame-large.html +44 -41
  45. package/docs/operations/assets/menu-frame-running.html +41 -38
  46. package/docs/operations/assets/menu-frame-score-10-contact-sheet.html +184 -0
  47. package/docs/operations/cross-platform-auth-transfer/ANALISE_COMPATIBILIDADE_MCP_2026-06-28.md +140 -140
  48. package/docs/operations/cross-platform-auth-transfer/README_TRANSFERENCIA.md +85 -85
  49. package/docs/operations/reborn-menu-cyberpunk-transfer/ANALISE_MENU_REBORN_CYBERPUNK_2026-06-28.md +174 -174
  50. package/docs/operations/reborn-menu-cyberpunk-transfer/HANDOFF_IMPLEMENTACAO_REBORN_CYBERPUNK_2026-06-28.md +119 -119
  51. package/docs/operations/reborn-menu-cyberpunk-transfer/ORDEM_DE_EXECUCAO_MENU_REBORN_CYBERPUNK.md +134 -134
  52. package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA.md +84 -84
  53. package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA_REBORN_PACKAGE.md +56 -56
  54. package/docs/operations/token-economy-transfer/ANALISE_AVANCADA_ECONOMIA_TOKENS_2026-06-30.md +141 -0
  55. package/docs/operations/token-economy-transfer/PLANO_DEV_SENIOR_MASTER_TOKEN_ECONOMY_2026-06-30.md +171 -0
  56. package/docs/operations/token-economy-transfer/README_TRANSFERENCIA_TOKEN_ECONOMY.md +31 -0
  57. package/docs/planning/MENU_RUNTIME_CORRECTION_PLAN_2026-06-30.md +551 -0
  58. package/docs/planning/V0_0_9_APROVACAO_CRITICA_MENSAGENS_DE_VENDA.md +85 -85
  59. package/docs/planning/V0_0_9_FONTES_E_CRITERIOS_DE_AUTORIDADE.md +139 -139
  60. package/docs/planning/V0_0_9_MATRIZ_SKILLS_MULTIDISCIPLINARES.md +105 -105
  61. package/docs/planning/V0_0_9_POLITICA_MORAL_CATOLICA_PARA_IA.md +181 -181
  62. package/docs/planning/V0_0_9_PROMPTS_EXECUCAO.md +59 -59
  63. package/docs/planning/V0_0_9_ROADMAP_DISCERNIMENTO_E_CONHECIMENTO_AMPLO.md +181 -181
  64. package/docs/planning/mcp-1.0.0/00_RESUMO_EXECUTIVO_AUDITORIA_MENU.md +118 -0
  65. package/docs/planning/mcp-1.0.0/01_MATRIZ_TESTES_MENU_E_RESULTADOS.md +250 -0
  66. package/docs/planning/mcp-1.0.0/02_PLANO_CORRECAO_ATIVAR_SKILL_APRENDIDA.md +200 -0
  67. package/docs/planning/mcp-1.0.0/03_PLANO_COMPATIBILIDADE_WINDOWS_LINUX_MACOS.md +167 -0
  68. package/docs/planning/mcp-1.0.0/04_PLANO_UI_CYBERPUNK_PIXEL_ART_E_PERFORMANCE.md +165 -0
  69. package/docs/planning/mcp-1.0.0/05_PROMPT_TASK_EXECUCAO_CORRECOES.md +151 -0
  70. package/docs/planning/mcp-1.0.0/06_CHECKLIST_REGRESSAO_PRE_RELEASE.md +159 -0
  71. package/docs/planning/mcp-1.0.0/07_RELATORIO_APLICACAO_CORRECOES_MENU_SKILL_MASTER.md +136 -0
  72. package/docs/planning/mcp-1.0.0/08_AUDITORIA_CRITICA_MENU_NOTA_E_DNA_REFINADO.md +184 -0
  73. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/00_PROMPT_TASK_MASTER_NOTA_10_10.md +103 -0
  74. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/01_PROMPT_TASK_FINE_HELIX_DNA.md +116 -0
  75. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/02_PROMPT_TASK_DNA_HERO_BOOT_AND_MOTION.md +109 -0
  76. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/03_PROMPT_TASK_MENU_UX_HELP_ERROR_COPY.md +99 -0
  77. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/04_PROMPT_TASK_EVIDENCE_RENDERER_1_0_0.md +97 -0
  78. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/05_PROMPT_TASK_CROSS_PLATFORM_UTF8_MOJIBAKE.md +99 -0
  79. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/06_PROMPT_TASK_VISUAL_REGRESSION_QA.md +105 -0
  80. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/07_PROMPT_TASK_PRE_RELEASE_SCORE_GATE_10_10.md +104 -0
  81. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/README_ORDEM_EXECUCAO_NOTA_10_10.md +77 -0
  82. package/docs/prompt-tasks/PROMPT_TASK_001_BOOTSTRAP_SKILL_MASTER_MCP.md +6 -6
  83. package/docs/prompt-tasks/PROMPT_TASK_002_AUTO_UPDATE_LAUNCHER.md +6 -6
  84. package/docs/prompt-tasks/PROMPT_TASK_003_REMOTE_MANIFEST_AND_RELEASES.md +6 -6
  85. package/docs/prompt-tasks/PROMPT_TASK_004_MULTI_USER_DISTRIBUTION.md +6 -6
  86. package/docs/prompt-tasks/PROMPT_TASK_005_SECURITY_AND_QUALITY_GATE.md +6 -6
  87. package/docs/prompt-tasks/PROMPT_TASK_006_MASTER_ACIONAMENTO_APRENDIZADO.md +83 -83
  88. package/docs/prompt-tasks/PROMPT_TASK_007_PERSONA_ORQUESTRADORA.md +88 -88
  89. package/docs/prompt-tasks/PROMPT_TASK_008_PROMPT_ROUTER_MODOS_ATIVACAO.md +156 -156
  90. package/docs/prompt-tasks/PROMPT_TASK_009_PIPELINE_APRENDIZADO_SUCESSO.md +105 -105
  91. package/docs/prompt-tasks/PROMPT_TASK_010_EVALS_GOVERNANCA_ATIVACAO.md +119 -119
  92. package/docs/prompt-tasks/PROMPT_TASK_011_MENU_NOTIFICACOES_NOTION.md +120 -120
  93. package/docs/prompt-tasks/PROMPT_TASK_012_MENU_CYBERPUNK_PIXEL_FRAME.md +123 -123
  94. package/docs/prompt-tasks/PROMPT_TASK_013_MENU_FLUID_DNA_ANIMATION.md +114 -114
  95. package/docs/prompt-tasks/PROMPT_TASK_014_MENU_FUNCTIONAL_PARITY_QA.md +157 -157
  96. package/docs/prompt-tasks/PROMPT_TASK_015_TRANSFER_RELEASE_HANDOFF.md +127 -127
  97. package/docs/prompt-tasks/PROMPT_TASK_016_CROSS_PLATFORM_MCP_AUTH_REGISTRATION.md +107 -107
  98. package/docs/prompt-tasks/PROMPT_TASK_018_NPM_PUBLISH_2FA_SETUP.md +80 -80
  99. package/docs/prompt-tasks/PROMPT_TASK_019_TOKEN_ECONOMY_GLOBAL_SKILLS.md +56 -0
  100. package/docs/prompt-tasks/PROMPT_TASK_MASTER_EXECUTOR.md +6 -6
  101. package/docs/skill-candidates/v0.0.10/cli-creator/LICENSE.txt +201 -201
  102. package/docs/skill-candidates/v0.0.10/cli-creator/SKILL.md +160 -160
  103. package/docs/skill-candidates/v0.0.10/cli-creator/agents/openai.yaml +4 -4
  104. package/docs/skill-candidates/v0.0.10/cli-creator/references/agent-cli-patterns.md +154 -154
  105. package/docs/skill-candidates/v0.0.10/developer-workstation-ops/SKILL.md +32 -32
  106. package/docs/skill-candidates/v0.0.10/figma/LICENSE.txt +1 -1
  107. package/docs/skill-candidates/v0.0.10/figma/SKILL.md +42 -42
  108. package/docs/skill-candidates/v0.0.10/figma/agents/openai.yaml +14 -14
  109. package/docs/skill-candidates/v0.0.10/figma/assets/figma-small.svg +3 -3
  110. package/docs/skill-candidates/v0.0.10/figma/assets/icon.svg +28 -28
  111. package/docs/skill-candidates/v0.0.10/figma/references/figma-mcp-config.md +35 -35
  112. package/docs/skill-candidates/v0.0.10/figma/references/figma-tools-and-prompts.md +34 -34
  113. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/LICENSE.TXT +1 -1
  114. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/SKILL.md +349 -349
  115. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/agents/openai.yaml +14 -14
  116. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/figma-small.svg +3 -3
  117. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/icon.svg +28 -28
  118. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/references/mapping-checklist.md +7 -7
  119. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/scripts/normalize_node_id.py +25 -25
  120. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/LICENSE.TXT +1 -1
  121. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/SKILL.md +537 -537
  122. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/agents/openai.yaml +14 -14
  123. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/figma-small.svg +3 -3
  124. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/icon.svg +28 -28
  125. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/references/rule-template.md +15 -15
  126. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/scripts/check_agents_md.sh +9 -9
  127. package/docs/skill-candidates/v0.0.10/figma-generate-design/LICENSE.TXT +1 -1
  128. package/docs/skill-candidates/v0.0.10/figma-generate-design/SKILL.md +341 -341
  129. package/docs/skill-candidates/v0.0.10/figma-generate-design/agents/openai.yaml +14 -14
  130. package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/figma-small.svg +3 -3
  131. package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/icon.svg +28 -28
  132. package/docs/skill-candidates/v0.0.10/figma-generate-design/maintainers.yml +1 -1
  133. package/docs/skill-candidates/v0.0.10/figma-generate-library/LICENSE.TXT +1 -1
  134. package/docs/skill-candidates/v0.0.10/figma-generate-library/SKILL.md +314 -314
  135. package/docs/skill-candidates/v0.0.10/figma-generate-library/agents/openai.yaml +14 -14
  136. package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/figma-small.svg +3 -3
  137. package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/icon.svg +28 -28
  138. package/docs/skill-candidates/v0.0.10/figma-generate-library/maintainers.yml +3 -3
  139. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/code-connect-setup.md +260 -260
  140. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/component-creation.md +1014 -1014
  141. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/discovery-phase.md +518 -518
  142. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/documentation-creation.md +834 -834
  143. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/error-recovery.md +540 -540
  144. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/naming-conventions.md +527 -527
  145. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/token-creation.md +962 -962
  146. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/bindVariablesToComponent.js +110 -110
  147. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/cleanupOrphans.js +127 -127
  148. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createComponentWithVariants.js +148 -148
  149. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createDocumentationPage.js +139 -139
  150. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createSemanticTokens.js +108 -108
  151. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createVariableCollection.js +49 -49
  152. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/inspectFileStructure.js +121 -121
  153. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/rehydrateState.js +92 -92
  154. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/validateCreation.js +83 -83
  155. package/docs/skill-candidates/v0.0.10/figma-implement-design/LICENSE.txt +1 -1
  156. package/docs/skill-candidates/v0.0.10/figma-implement-design/SKILL.md +258 -258
  157. package/docs/skill-candidates/v0.0.10/figma-implement-design/agents/openai.yaml +14 -14
  158. package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/figma-small.svg +3 -3
  159. package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/icon.svg +28 -28
  160. package/docs/skill-candidates/v0.0.10/figma-use/LICENSE.TXT +1 -1
  161. package/docs/skill-candidates/v0.0.10/figma-use/SKILL.md +233 -233
  162. package/docs/skill-candidates/v0.0.10/figma-use/agents/openai.yaml +14 -14
  163. package/docs/skill-candidates/v0.0.10/figma-use/assets/figma-small.svg +3 -3
  164. package/docs/skill-candidates/v0.0.10/figma-use/assets/icon.svg +28 -28
  165. package/docs/skill-candidates/v0.0.10/figma-use/maintainers.yml +1 -1
  166. package/docs/skill-candidates/v0.0.10/figma-use/references/api-reference.md +301 -301
  167. package/docs/skill-candidates/v0.0.10/figma-use/references/common-patterns.md +512 -512
  168. package/docs/skill-candidates/v0.0.10/figma-use/references/component-patterns.md +488 -488
  169. package/docs/skill-candidates/v0.0.10/figma-use/references/effect-style-patterns.md +123 -123
  170. package/docs/skill-candidates/v0.0.10/figma-use/references/gotchas.md +599 -599
  171. package/docs/skill-candidates/v0.0.10/figma-use/references/maintainers.yml +12 -12
  172. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-patterns.md +513 -513
  173. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.d.ts +11293 -11293
  174. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.index.md +441 -441
  175. package/docs/skill-candidates/v0.0.10/figma-use/references/text-style-patterns.md +203 -203
  176. package/docs/skill-candidates/v0.0.10/figma-use/references/validation-and-recovery.md +109 -109
  177. package/docs/skill-candidates/v0.0.10/figma-use/references/variable-patterns.md +354 -354
  178. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/maintainers.yml +9 -9
  179. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--creating.md +17 -17
  180. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--using.md +17 -17
  181. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components.md +50 -50
  182. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-effect-styles.md +52 -52
  183. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-text-styles.md +90 -90
  184. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--creating.md +13 -13
  185. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--using.md +13 -13
  186. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables.md +64 -64
  187. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds.md +41 -41
  188. package/docs/skill-candidates/v0.0.10/frontend-design/LICENSE.txt +177 -177
  189. package/docs/skill-candidates/v0.0.10/frontend-design/SKILL.md +55 -55
  190. package/docs/skill-candidates/v0.0.10/frontend-ui-ux-systems/SKILL.md +32 -32
  191. package/docs/skill-candidates/v0.0.10/github/SKILL.md +74 -74
  192. package/docs/skill-candidates/v0.0.10/github/agents/openai.yaml +6 -6
  193. package/docs/skill-candidates/v0.0.10/github/assets/github-small.svg +3 -3
  194. package/docs/skill-candidates/v0.0.10/image-graphic-design-rendering/SKILL.md +28 -28
  195. package/docs/skill-candidates/v0.0.10/language-quality-pt-en-fr-it-ru/SKILL.md +28 -28
  196. package/docs/skill-candidates/v0.0.10/math-physics-reasoning/SKILL.md +28 -28
  197. package/docs/skill-candidates/v0.0.10/mcp-builder/LICENSE.txt +201 -201
  198. package/docs/skill-candidates/v0.0.10/mcp-builder/SKILL.md +236 -236
  199. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/evaluation.md +601 -601
  200. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/mcp_best_practices.md +249 -249
  201. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/node_mcp_server.md +969 -969
  202. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/python_mcp_server.md +718 -718
  203. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/connections.py +151 -151
  204. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/evaluation.py +373 -373
  205. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/example_evaluation.xml +22 -22
  206. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/requirements.txt +2 -2
  207. package/docs/skill-candidates/v0.0.10/mcp-client-readiness/SKILL.md +31 -31
  208. package/docs/skill-candidates/v0.0.10/openai-docs/LICENSE.txt +201 -201
  209. package/docs/skill-candidates/v0.0.10/openai-docs/SKILL.md +161 -161
  210. package/docs/skill-candidates/v0.0.10/openai-docs/agents/openai.yaml +14 -14
  211. package/docs/skill-candidates/v0.0.10/openai-docs/assets/openai-small.svg +3 -3
  212. package/docs/skill-candidates/v0.0.10/openai-docs/references/latest-model.md +37 -37
  213. package/docs/skill-candidates/v0.0.10/openai-docs/references/prompting-guide.md +244 -244
  214. package/docs/skill-candidates/v0.0.10/openai-docs/references/upgrade-guide.md +181 -181
  215. package/docs/skill-candidates/v0.0.10/openai-docs/scripts/fetch-codex-manual.mjs +598 -598
  216. package/docs/skill-candidates/v0.0.10/openai-docs/scripts/resolve-latest-model-info.js +147 -147
  217. package/docs/skill-candidates/v0.0.10/playwright/NOTICE.txt +14 -14
  218. package/docs/skill-candidates/v0.0.10/playwright/SKILL.md +147 -147
  219. package/docs/skill-candidates/v0.0.10/playwright/agents/openai.yaml +6 -6
  220. package/docs/skill-candidates/v0.0.10/playwright/assets/playwright-small.svg +3 -3
  221. package/docs/skill-candidates/v0.0.10/playwright/references/cli.md +116 -116
  222. package/docs/skill-candidates/v0.0.10/playwright/references/workflows.md +95 -95
  223. package/docs/skill-candidates/v0.0.10/playwright/scripts/playwright_cli.sh +25 -25
  224. package/docs/skill-candidates/v0.0.10/polyglot-backend-engineering/SKILL.md +32 -32
  225. package/docs/skill-candidates/v0.0.10/screenshot/LICENSE.txt +201 -201
  226. package/docs/skill-candidates/v0.0.10/screenshot/SKILL.md +267 -267
  227. package/docs/skill-candidates/v0.0.10/screenshot/agents/openai.yaml +6 -6
  228. package/docs/skill-candidates/v0.0.10/screenshot/assets/screenshot-small.svg +5 -5
  229. package/docs/skill-candidates/v0.0.10/screenshot/scripts/ensure_macos_permissions.sh +54 -54
  230. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_display_info.swift +22 -22
  231. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_permissions.swift +40 -40
  232. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_window_info.swift +126 -126
  233. package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.ps1 +163 -163
  234. package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.py +585 -585
  235. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/SKILL.md +62 -62
  236. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/agents/openai.yaml +4 -4
  237. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/activation-policy.md +77 -77
  238. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/human-approval-policy.md +83 -83
  239. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/persona-dev-senior-master.md +46 -46
  240. package/docs/skill-candidates/v0.0.10/terminal-menu-operations/SKILL.md +30 -30
  241. package/docs/skill-candidates/v0.0.10/terminal-pixel-art-tui/SKILL.md +43 -43
  242. package/docs/skill-candidates/v0.0.10/webapp-testing/LICENSE.txt +201 -201
  243. package/docs/skill-candidates/v0.0.10/webapp-testing/SKILL.md +95 -95
  244. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/console_logging.py +34 -34
  245. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/element_discovery.py +39 -39
  246. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/static_html_automation.py +32 -32
  247. package/docs/skill-candidates/v0.0.10/webapp-testing/scripts/with_server.py +105 -105
  248. package/docs/skill-candidates/v0.0.10/winui-app/LICENSE.txt +201 -201
  249. package/docs/skill-candidates/v0.0.10/winui-app/SKILL.md +94 -94
  250. package/docs/skill-candidates/v0.0.10/winui-app/agents/openai.yaml +5 -5
  251. package/docs/skill-candidates/v0.0.10/winui-app/config.yaml +50 -50
  252. package/docs/skill-candidates/v0.0.10/winui-app/references/_sections.md +96 -96
  253. package/docs/skill-candidates/v0.0.10/winui-app/references/accessibility-input-and-localization.md +51 -51
  254. package/docs/skill-candidates/v0.0.10/winui-app/references/build-run-and-launch-verification.md +72 -72
  255. package/docs/skill-candidates/v0.0.10/winui-app/references/community-toolkit-controls-and-helpers.md +57 -57
  256. package/docs/skill-candidates/v0.0.10/winui-app/references/controls-layout-and-adaptive-ui.md +84 -84
  257. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-environment-audit-and-remediation.md +82 -82
  258. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-setup-and-project-selection.md +67 -67
  259. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-template-first-recovery.md +62 -62
  260. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-winui-app-structure.md +62 -62
  261. package/docs/skill-candidates/v0.0.10/winui-app/references/motion-animations-and-polish.md +45 -45
  262. package/docs/skill-candidates/v0.0.10/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -46
  263. package/docs/skill-candidates/v0.0.10/winui-app/references/sample-source-map.md +37 -37
  264. package/docs/skill-candidates/v0.0.10/winui-app/references/shell-navigation-and-windowing.md +67 -67
  265. package/docs/skill-candidates/v0.0.10/winui-app/references/styling-theming-materials-and-icons.md +71 -71
  266. package/docs/skill-candidates/v0.0.10/winui-app/references/testing-debugging-and-review-checklists.md +77 -77
  267. package/docs/skill-candidates/v0.0.10/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -52
  268. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/SKILL.md +398 -398
  269. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/common-patterns.md +330 -330
  270. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/complete-examples.md +871 -871
  271. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/component-patterns.md +501 -501
  272. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/data-fetching.md +766 -766
  273. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/file-organization.md +501 -501
  274. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/loading-and-error-states.md +500 -500
  275. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/performance.md +405 -405
  276. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/routing-guide.md +363 -363
  277. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/styling-guide.md +427 -427
  278. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/typescript-standards.md +417 -417
  279. package/docs/skill-candidates/v0.0.11/git-version-control-ops/SKILL.md +34 -34
  280. package/docs/skill-candidates/v0.0.11/go-engineering/SKILL.md +34 -34
  281. package/docs/skill-candidates/v0.0.11/java-engineering/SKILL.md +34 -34
  282. package/docs/skill-candidates/v0.0.11/javascript-engineering/SKILL.md +34 -34
  283. package/docs/skill-candidates/v0.0.11/json-contract-design/SKILL.md +34 -34
  284. package/docs/skill-candidates/v0.0.11/multi-client-mcp-ops/SKILL.md +36 -36
  285. package/docs/skill-candidates/v0.0.11/nextjs/SKILL.md +745 -745
  286. package/docs/skill-candidates/v0.0.11/nextjs/agents/openai.yaml +3 -3
  287. package/docs/skill-candidates/v0.0.11/nextjs/references/app-router-files.md +94 -94
  288. package/docs/skill-candidates/v0.0.11/python-engineering/SKILL.md +34 -34
  289. package/docs/skill-candidates/v0.0.11/ruby-engineering/SKILL.md +34 -34
  290. package/docs/skill-candidates/v0.0.11/senior-fullstack/SKILL.md +209 -209
  291. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/architecture_patterns.md +103 -103
  292. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/development_workflows.md +103 -103
  293. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/tech_stack_guide.md +103 -103
  294. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/code_quality_analyzer.py +114 -114
  295. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/fullstack_scaffolder.py +114 -114
  296. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/project_scaffolder.py +114 -114
  297. package/docs/skill-candidates/v0.0.11/shadcn/SKILL.md +573 -573
  298. package/docs/skill-candidates/v0.0.11/shadcn/agents/openai.yaml +3 -3
  299. package/docs/skill-candidates/v0.0.11/sql-postgresql-engineering/SKILL.md +34 -34
  300. package/docs/skill-candidates/v0.0.11/terminal-shell-ops/SKILL.md +34 -34
  301. package/docs/skill-candidates/v0.0.11/typescript-expert/SKILL.md +429 -429
  302. package/docs/skill-candidates/v0.0.11/typescript-expert/references/tsconfig-strict.json +91 -91
  303. package/docs/skill-candidates/v0.0.11/typescript-expert/references/typescript-cheatsheet.md +383 -383
  304. package/docs/skill-candidates/v0.0.11/typescript-expert/references/utility-types.ts +335 -335
  305. package/docs/skill-candidates/v0.0.11/typescript-expert/scripts/ts_diagnostic.py +203 -203
  306. package/docs/skill-candidates/v0.0.11/ui-component-primitives/SKILL.md +34 -34
  307. package/docs/skill-candidates/v0.0.11/web-mobile-design-systems/SKILL.md +34 -34
  308. package/docs/skill-candidates/v0.0.11/windows-linux-platform-ops/SKILL.md +34 -34
  309. package/docs/skill-candidates/v0.0.12/context-compression-handoff/SKILL.md +47 -0
  310. package/docs/skill-candidates/v0.0.12/csharp-senior-master-engineering/SKILL.md +32 -32
  311. package/docs/skill-candidates/v0.0.12/css-senior-master-engineering/SKILL.md +32 -32
  312. package/docs/skill-candidates/v0.0.12/go-senior-master-engineering/SKILL.md +32 -32
  313. package/docs/skill-candidates/v0.0.12/html-senior-master-engineering/SKILL.md +32 -32
  314. package/docs/skill-candidates/v0.0.12/javascript-senior-master-engineering/SKILL.md +32 -32
  315. package/docs/skill-candidates/v0.0.12/json-senior-master-engineering/SKILL.md +32 -32
  316. package/docs/skill-candidates/v0.0.12/prompt-budget-gate/SKILL.md +46 -0
  317. package/docs/skill-candidates/v0.0.12/python-senior-master-engineering/SKILL.md +32 -32
  318. package/docs/skill-candidates/v0.0.12/react-senior-master-engineering/SKILL.md +32 -32
  319. package/docs/skill-candidates/v0.0.12/ruby-senior-master-engineering/SKILL.md +32 -32
  320. package/docs/skill-candidates/v0.0.12/senior-master-code-optimizer/SKILL.md +48 -48
  321. package/docs/skill-candidates/v0.0.12/sql-senior-master-engineering/SKILL.md +31 -31
  322. package/docs/skill-candidates/v0.0.12/token-economy-orchestrator/SKILL.md +38 -0
  323. package/docs/skill-candidates/v0.0.12/typescript-senior-master-engineering/SKILL.md +35 -35
  324. package/docs/skill-candidates/v0.0.9/ai-ethics-human-dignity/SKILL.md +32 -32
  325. package/docs/skill-candidates/v0.0.9/broad-domain-router/SKILL.md +41 -41
  326. package/docs/skill-candidates/v0.0.9/catholic-moral-discernment/SKILL.md +31 -31
  327. package/docs/skill-candidates/v0.0.9/engineering-systems-master/SKILL.md +31 -31
  328. package/docs/skill-candidates/v0.0.9/language-quality-pt-en-fr/SKILL.md +28 -28
  329. package/docs/skill-candidates/v0.0.9/math-science-reasoning/SKILL.md +29 -29
  330. package/docs/skill-candidates/v0.0.9/philosophy-sociology-discernment/SKILL.md +28 -28
  331. package/docs/skill-candidates/v0.0.9/professional-boundary-triage/SKILL.md +40 -40
  332. package/docs/skill-candidates/v0.0.9/release-ethics-gate/SKILL.md +32 -32
  333. package/docs/skill-candidates/v0.0.9/source-authority-reviewer/SKILL.md +31 -31
  334. package/examples/client-configs/claude-code.commands.md +21 -21
  335. package/examples/client-configs/claude-code.project.mcp.json +18 -18
  336. package/examples/client-configs/claude-desktop.macos.json +18 -18
  337. package/examples/client-configs/claude-desktop.windows.json +20 -20
  338. package/examples/client-configs/codex.windows.toml +11 -11
  339. package/examples/client-configs/gemini-code-assist.intellij.mcp.json +18 -18
  340. package/examples/client-configs/gemini.linux.settings.json +21 -21
  341. package/examples/client-configs/gemini.windows.settings.json +23 -23
  342. package/examples/client-configs/generic-stdio.json +16 -16
  343. package/manifests/channels/beta.json +24 -24
  344. package/manifests/channels/stable.json +25 -25
  345. package/network/approved-skills.json +54 -54
  346. package/network/unapproved-skill-candidates.json +110 -110
  347. package/package.json +89 -86
  348. package/scripts/configure-private-registry.mjs +208 -208
  349. package/scripts/lib/private-registry.mjs +97 -97
  350. package/scripts/render-menu-evidence.mjs +196 -130
  351. package/scripts/verify-menu-actions.mjs +112 -107
  352. package/scripts/verify-menu-visual.mjs +90 -0
  353. package/sources.json +11 -11
@@ -1,441 +1,441 @@
1
- # Plugin API Index
2
-
3
- > Full typings: `plugin-api-standalone.d.ts` (11,292 lines)
4
- > Grep by symbol name to jump to definition. All `L#` line numbers refer to that file.
5
-
6
- ---
7
-
8
- ## figma.\* — PluginAPI (L24)
9
-
10
- ### Identity & State
11
-
12
- | Member | Type |
13
- | ------------------------------- | -------------------------------------------------------------------------------- |
14
- | `apiVersion` | `'1.0.0'` |
15
- | `editorType` | `'figma' \| 'figjam' \| 'dev' \| 'slides' \| 'buzz'` |
16
- | `mode` | `'default' \| 'textreview' \| 'inspect' \| 'codegen' \| 'linkpreview' \| 'auth'` |
17
- | `fileKey` | `string \| undefined` |
18
- | `root` | `DocumentNode` |
19
- | `currentPage` | `PageNode` — assign via `setCurrentPageAsync` |
20
- | `currentUser` | `User \| null` |
21
- | `mixed` | `unique symbol` — sentinel for mixed values in selection |
22
- | `skipInvisibleInstanceChildren` | `boolean` |
23
-
24
- ### Navigation & Lookup
25
-
26
- | Method | Returns |
27
- | --------------------------- | ------------------------------------------------------- |
28
- | `setCurrentPageAsync(page)` | `Promise<void>` — **MUST use this**; sync setter throws |
29
- | `getNodeByIdAsync(id)` | `Promise<BaseNode \| null>` |
30
- | `getNodeById(id)` | `BaseNode \| null` |
31
- | `getStyleByIdAsync(id)` | `Promise<BaseStyle \| null>` |
32
- | `getStyleById(id)` | `BaseStyle \| null` |
33
-
34
- ### Create Nodes
35
-
36
- | Method | Returns |
37
- | ----------------------------------- | --------------------------- |
38
- | `createFrame()` | `FrameNode` |
39
- | `createComponent()` | `ComponentNode` |
40
- | `createComponentFromNode(node)` | `ComponentNode` |
41
- | `createRectangle()` | `RectangleNode` |
42
- | `createEllipse()` | `EllipseNode` |
43
- | `createLine()` | `LineNode` |
44
- | `createPolygon()` | `PolygonNode` |
45
- | `createStar()` | `StarNode` |
46
- | `createVector()` | `VectorNode` |
47
- | `createText()` | `TextNode` |
48
- | `createSection()` | `SectionNode` |
49
- | `createPage()` | `PageNode` |
50
- | `createSlice()` | `SliceNode` |
51
- | `createBooleanOperation()` | `BooleanOperationNode` |
52
- | `createTable(rows?, cols?)` | `TableNode` |
53
- | `createImage(data: Uint8Array)` | `Image` |
54
- | `createNodeFromSvg(svg)` | `FrameNode` |
55
- | `createNodeFromJSXAsync(jsx)` | `Promise<SceneNode>` |
56
- | `importComponentByKeyAsync(key)` | `Promise<ComponentNode>` |
57
- | `importComponentSetByKeyAsync(key)` | `Promise<ComponentSetNode>` |
58
- | `importStyleByKeyAsync(key)` | `Promise<BaseStyle>` |
59
-
60
- ### Styles (Local)
61
-
62
- | Method | Returns |
63
- | ---------------------------------- | --------------- |
64
- | `createPaintStyle()` | `PaintStyle` |
65
- | `createTextStyle()` | `TextStyle` |
66
- | `createEffectStyle()` | `EffectStyle` |
67
- | `createGridStyle()` | `GridStyle` |
68
- | `getLocalPaintStyles()` / `Async` | `PaintStyle[]` |
69
- | `getLocalTextStyles()` / `Async` | `TextStyle[]` |
70
- | `getLocalEffectStyles()` / `Async` | `EffectStyle[]` |
71
- | `getLocalGridStyles()` / `Async` | `GridStyle[]` |
72
-
73
- ### Fonts
74
-
75
- | Method | Notes |
76
- | --------------------------- | ---------------------------------- |
77
- | `loadFontAsync(fontName)` | **MUST call before any text edit** |
78
- | `listAvailableFontsAsync()` | `Promise<Font[]>` |
79
- | `hasMissingFont` | `boolean` |
80
-
81
- ### Plugin Lifecycle
82
-
83
- | Method | Notes |
84
- | --------------------------------------- | ------------------------------------------------------------ |
85
- | `closePlugin(message?)` | **MUST call on success paths** |
86
- | `closePluginWithFailure(message?)` | **MUST call in catch blocks — never use closePlugin for errors** |
87
- | `commitUndo()` | Snapshot to undo history |
88
- | `triggerUndo()` | Revert to last snapshot |
89
- | `saveVersionHistoryAsync(title, desc?)` | `Promise<VersionHistoryResult>` |
90
- | `notify(message, options?)` | **throws "not implemented" in use_figma — do not use** |
91
- | `openExternal(url)` | Opens URL in browser |
92
-
93
- ### Sub-APIs (properties on figma)
94
-
95
- | Property | Interface | L# |
96
- | --------------------- | ------------------------ | ----- |
97
- | `figma.variables` | `VariablesAPI` | L2016 |
98
- | `figma.ui` | `UIAPI` | L2604 |
99
- | `figma.util` | `UtilAPI` | L2691 |
100
- | `figma.constants` | `ConstantsAPI` | L2809 |
101
- | `figma.clientStorage` | `ClientStorageAPI` | L2531 |
102
- | `figma.viewport` | `ViewportAPI` | L3086 |
103
- | `figma.parameters` | `ParametersAPI` | L3292 |
104
- | `figma.teamLibrary` | `TeamLibraryAPI` | L2372 |
105
- | `figma.annotations` | `AnnotationsAPI` | L2187 |
106
- | `figma.codegen` | `CodegenAPI` | L2871 |
107
- | `figma.textreview?` | `TextReviewAPI` | L3166 |
108
- | `figma.payments?` | `PaymentsAPI` | L2420 |
109
- | `figma.buzz` | `BuzzAPI` | L2211 |
110
- | `figma.timer?` | `TimerAPI` (FigJam only) | L3053 |
111
-
112
- ---
113
-
114
- ## VariablesAPI — figma.variables (L2016)
115
-
116
- ```
117
- getVariableById(id) Variable | null
118
- getVariableByIdAsync(id) Promise<Variable | null>
119
- getVariableCollectionById(id) VariableCollection | null
120
- getVariableCollectionByIdAsync(id) Promise<VariableCollection | null>
121
- getLocalVariables(type?) Variable[] ← sync works; filter by VariableResolvedDataType
122
- getLocalVariablesAsync(type?) Promise<Variable[]>
123
- getLocalVariableCollections() VariableCollection[] ← sync works
124
- getLocalVariableCollectionsAsync() Promise<VariableCollection[]> ← may not be available; use sync
125
- createVariable(name, collection, type) Variable
126
- createVariableCollection(name) VariableCollection
127
- createVariableAlias(variable) VariableAlias
128
- importVariableByKeyAsync(key) Promise<Variable>
129
- setBoundVariableForPaint(paint, field, variable) → returns NEW paint — reassign
130
- setBoundVariableForEffect(effect, field, variable) → returns NEW effect — reassign
131
- setBoundVariableForLayoutGrid(grid, field, variable)
132
- ```
133
-
134
- **Variable (L10204):** `name`, `resolvedType`, `codeSyntax`, `scopes`, `hiddenFromPublishing`, `valuesByMode`, `variableCollectionId`
135
-
136
- - `setVariableCodeSyntax(platform, value)` — platform: `'WEB' | 'ANDROID' | 'iOS'`
137
- - `setValueForMode(collectionId, modeId, value)`
138
- - `remove()`
139
-
140
- **VariableCollection (L10418):** `name`, `modes`, `variableIds`, `defaultModeId`, `hiddenFromPublishing`
141
-
142
- - `addMode(name)` → `modeId`; `removeMode(modeId)`; `renameMode(modeId, name)`
143
-
144
- ---
145
-
146
- ## Node Types
147
-
148
- ### Concrete Scene Nodes
149
-
150
- | Node | L# | Key characteristics |
151
- | ---------------------- | ------ | -------------------------------------------------- |
152
- | `DocumentNode` | L8960 | Root; `children: PageNode[]` |
153
- | `PageNode` | L9119 | `children`, local styles, `backgrounds` |
154
- | `FrameNode` | L9311 | `DefaultFrameMixin` — auto-layout, clips, children |
155
- | `GroupNode` | L9321 | Children only, no auto-layout |
156
- | `ComponentNode` | L9678 | Like Frame + publishable |
157
- | `ComponentSetNode` | L9653 | Variant set container |
158
- | `InstanceNode` | L9719 | Like Frame; `mainComponent`, `detach()` |
159
- | `RectangleNode` | L9378 | `DefaultShapeMixin` + corners |
160
- | `EllipseNode` | L9410 | + `arcData` |
161
- | `LineNode` | L9396 | |
162
- | `PolygonNode` | L9430 | |
163
- | `StarNode` | L9450 | |
164
- | `VectorNode` | L9476 | Vector paths |
165
- | `TextNode` | L9493 | Rich text, fonts, segments |
166
- | `TextPathNode` | L9564 | Text along path |
167
- | `BooleanOperationNode` | L9792 | `booleanOperation` property |
168
- | `SliceNode` | L9368 | Export only |
169
- | `SectionNode` | L10754 | Grouping + fills |
170
- | `TableNode` | L9862 | `TableCellNode` children |
171
-
172
- **FigJam only:** `StickyNode` L9812, `ConnectorNode` L10121, `ShapeWithTextNode` L9999, `StampNode` L9838, `CodeBlockNode` L10080, `EmbedNode` L10661, `LinkUnfurlNode` L10701, `MediaNode` L10721
173
-
174
- **Slides only:** `SlideNode` L10784, `SlideRowNode` L10809, `SlideGridNode` L10822
175
-
176
- **Union types:**
177
-
178
- ```
179
- type SceneNode (L10917) = FrameNode | GroupNode | SliceNode | RectangleNode | LineNode
180
- | EllipseNode | PolygonNode | StarNode | VectorNode | TextNode | ComponentSetNode
181
- | ComponentNode | InstanceNode | BooleanOperationNode | SectionNode | ...
182
- type BaseNode (L10913) = DocumentNode | PageNode | SceneNode
183
- ```
184
-
185
- ---
186
-
187
- ## Mixin Interfaces
188
-
189
- | Mixin | L# | Provides |
190
- | ---------------------------- | ----- | ----------------------------------------------------------------------------------------------- |
191
- | `BaseNodeMixin` | L5284 | `id`, `name`, `type`, `parent`, `remove()`, plugin data |
192
- | `SceneNodeMixin` | L5561 | `visible`, `locked`, `opacity`, variable bindings |
193
- | `ChildrenMixin` | L5773 | `children`, `appendChild()`, `insertChild()`, `findAll()`, `findOne()`, `findAllWithCriteria()` |
194
- | `LayoutMixin` | L6135 | `x`, `y`, `width`, `height`, `rotation`, `resize()`, `rescale()` |
195
- | `AutoLayoutMixin` | L6436 | `layoutMode`, axis alignment, padding, `itemSpacing`, `layoutSizingHorizontal/Vertical` |
196
- | `AutoLayoutChildrenMixin` | L7064 | `layoutAlign`, `layoutGrow`, sizing — **set AFTER `appendChild()`** |
197
- | `GridLayoutMixin` | L6939 | CSS Grid tracks, gap, template |
198
- | `GridChildrenMixin` | L7127 | grid child positioning |
199
- | `GeometryMixin` | L7485 | `fills`, `strokes`, `strokeWeight`, `strokeAlign` |
200
- | `MinimalFillsMixin` | L7328 | `fills` only |
201
- | `MinimalStrokesMixin` | L7246 | `strokes`, `strokeWeight` |
202
- | `BlendMixin` | L6339 | `opacity`, `blendMode`, `isMask`, `effects` |
203
- | `CornerMixin` | L7537 | `cornerRadius`, `cornerSmoothing` |
204
- | `RectangleCornerMixin` | L7560 | Per-corner radii |
205
- | `ExportMixin` | L7577 | `exportSettings`, `exportAsync()` |
206
- | `ReactionMixin` | L7704 | `reactions` (prototyping) |
207
- | `PublishableMixin` | L7875 | `description`, `key`, `getPublishStatusAsync()` |
208
- | `VariantMixin` | L8182 | `variantProperties` |
209
- | `ComponentPropertiesMixin` | L8229 | `componentProperties`, `addComponentProperty()` |
210
- | `PluginDataMixin` | L5443 | `getPluginData()`, `setPluginData()`, `getSharedPluginData()` |
211
- | `FramePrototypingMixin` | L7651 | `overflowDirection`, `numberOfFixedChildren` |
212
- | `BaseFrameMixin` | L7939 | ChildrenMixin + LayoutMixin + AutoLayoutMixin + GeometryMixin + … |
213
- | `DefaultFrameMixin` | L7997 | BaseFrameMixin + FramePrototypingMixin + ReactionMixin |
214
- | `DefaultShapeMixin` | L7928 | BlendMixin + GeometryMixin + LayoutMixin + ExportMixin + ReactionMixin |
215
- | `ExplicitVariableModesMixin` | L9084 | `setExplicitVariableModeForCollection()` |
216
-
217
- ---
218
-
219
- ## Paint & Fill (L4302)
220
-
221
- | Type | L# | Notes |
222
- | --------------- | ----- | --------------------------------------------------------------------------------- |
223
- | `SolidPaint` | L4302 | `type:'SOLID'`, `color: RGB`, `opacity`, `visible`, `blendMode` |
224
- | `GradientPaint` | L4357 | `type: 'GRADIENT_LINEAR\|RADIAL\|ANGULAR\|DIAMOND'`, `gradientStops: ColorStop[]` |
225
- | `ImagePaint` | L4377 | `type:'IMAGE'`, `imageHash`, `scaleMode` |
226
- | `VideoPaint` | L4413 | `type:'VIDEO'` |
227
- | `PatternPaint` | L4449 | `type:'PATTERN'` |
228
- | `type Paint` | L4481 | Union of all five |
229
- | `ColorStop` | L4271 | `{ position: number, color: RGBA }` |
230
- | `ImageFilters` | L4290 | exposure, contrast, saturation, etc. |
231
-
232
- > **CRITICAL**: Fills/strokes are **read-only arrays** — clone, modify, reassign.
233
-
234
- ---
235
-
236
- ## Effects (L3966)
237
-
238
- | Type | L# |
239
- | ---------------------------------- | ----- |
240
- | `DropShadowEffect` | L3966 |
241
- | `InnerShadowEffect` | L4009 |
242
- | `BlurEffect` (Normal/Progressive) | L4048 |
243
- | `NoiseEffect` (Mono/Duo/Multitone) | L4105 |
244
- | `TextureEffect` | L4180 |
245
- | `GlassEffect` | L4209 |
246
- | `type Effect` | L4250 |
247
-
248
- ---
249
-
250
- ## Typography
251
-
252
- | Type | L# | Notes |
253
- | ------------------- | ----- | -------------------------------------------------------------------------------------- |
254
- | `FontName` | L3697 | `{ family: string, style: string }` |
255
- | `TextNode` | L9493 | `characters`, `textAlignHorizontal`, `fontSize`, `fontName`, `getStyledTextSegments()` |
256
- | `StyledTextSegment` | L4882 | Per-range text properties |
257
- | `LetterSpacing` | L4826 | `{ value, unit: 'PIXELS'\|'PERCENT' }` |
258
- | `LineHeight` | L4830 | `{ value, unit } \| { unit: 'AUTO' }` |
259
- | `TextCase` | L3701 | `'ORIGINAL'\|'UPPER'\|'LOWER'\|'TITLE'\|'SMALL_CAPS'` |
260
- | `TextDecoration` | L3702 | `'NONE'\|'UNDERLINE'\|'STRIKETHROUGH'` |
261
- | `OpenTypeFeature` | L3728 | Ligatures, numerals, etc. |
262
-
263
- ---
264
-
265
- ## Variables & Bindings
266
-
267
- | Type | L# | Notes |
268
- | ----------------------------- | ------ | ------------------------------------------------------------- |
269
- | `Variable` | L10204 | Core variable object |
270
- | `VariableCollection` | L10418 | Collection of variables + modes |
271
- | `VariableAlias` | L10172 | Reference to another variable |
272
- | `VariableValue` | L10176 | `boolean \| string \| number \| RGB \| RGBA \| VariableAlias` |
273
- | `VariableResolvedDataType` | L10171 | `'BOOLEAN' \| 'COLOR' \| 'FLOAT' \| 'STRING'` |
274
- | `VariableDataType` | L5023 | Includes `'VARIABLE_ALIAS' \| 'EXPRESSION'` |
275
- | `VariableScope` | L10177 | Where variable can be applied |
276
- | `CodeSyntaxPlatform` | L10203 | `'WEB' \| 'ANDROID' \| 'iOS'` |
277
- | `VariableBindableNodeField` | L5712 | Node fields that accept variable binding |
278
- | `VariableBindableTextField` | L5739 | Text-specific bindable fields |
279
- | `VariableBindablePaintField` | L5748 | `'color'` |
280
- | `VariableBindableEffectField` | L5751 | `'color'\|'radius'\|'spread'\|'offsetX'\|'offsetY'` |
281
-
282
- ---
283
-
284
- ## Styles
285
-
286
- | Interface | L# | Notes |
287
- | ---------------- | ------ | ------------------------------------------------------ |
288
- | `BaseStyleMixin` | L10977 | `name`, `id`, `key`, `type`, `description`, `remove()` |
289
- | `PaintStyle` | L11002 | `type:'PAINT'`, `paints: Paint[]` |
290
- | `TextStyle` | L11018 | `type:'TEXT'`, font properties |
291
- | `EffectStyle` | L11087 | `type:'EFFECT'`, `effects: Effect[]` |
292
- | `GridStyle` | L11103 | `type:'GRID'`, `layoutGrids` |
293
- | `type BaseStyle` | L11119 | Union of all four |
294
- | `type StyleType` | L10955 | `'PAINT' \| 'TEXT' \| 'EFFECT' \| 'GRID'` |
295
-
296
- ---
297
-
298
- ## Primitives & Geometry
299
-
300
- | Type | L# | Shape |
301
- | ---------------- | ----- | --------------------------------------------- |
302
- | `Vector` | L3667 | `{ x: number, y: number }` |
303
- | `Rect` | L3671 | `{ x, y, width, height }` |
304
- | `RGB` | L3680 | `{ r, g, b }` — **0–1 range, not 0–255** |
305
- | `RGBA` | L3688 | `{ r, g, b, a }` — **0–1 range** |
306
- | `Transform` | L3666 | `[[a,b,tx],[c,d,ty]]` 2×3 affine matrix |
307
- | `ArcData` | L3958 | `{ startingAngle, endingAngle, innerRadius }` |
308
- | `Constraints` | L4264 | `{ horizontal, vertical }: ConstraintType` |
309
- | `ConstraintType` | L4260 | `'MIN'\|'CENTER'\|'MAX'\|'STRETCH'\|'SCALE'` |
310
- | `VectorPath` | L4792 | `{ windingRule, data: string }` |
311
- | `VectorNetwork` | L4775 | vertices + segments + regions |
312
- | `Guide` | L4482 | `{ axis, offset }` |
313
-
314
- ---
315
-
316
- ## Prototyping
317
-
318
- | Type | L# | Notes |
319
- | --------------------- | ----- | --------------------------------------------------------- |
320
- | `Reaction` | L5015 | trigger + action pair |
321
- | `Trigger` | L5146 | what initiates the reaction |
322
- | `Action` | L5064 | what happens |
323
- | `Transition` | L5145 | `SimpleTransition \| DirectionalTransition` |
324
- | `Easing` | L5182 | easing curve definition |
325
- | `Navigation` | L5178 | `'NAVIGATE'\|'SWAP'\|'OVERLAY'\|'SCROLL_TO'\|'CHANGE_TO'` |
326
- | `OverflowDirection` | L5215 | `'NONE'\|'HORIZONTAL'\|'VERTICAL'\|'BOTH'` |
327
- | `OverlayPositionType` | L5219 | overlay placement |
328
-
329
- ---
330
-
331
- ## Events & Changes
332
-
333
- | Type | L# | Notes |
334
- | --------------------- | ----- | --------------------------------------------------------------- |
335
- | `ArgFreeEventType` | L11 | `'selectionchange'\|'currentpagechange'\|'close'\|timer events` |
336
- | `RunEvent` | L3321 | plugin run with parameters |
337
- | `DropEvent` | L3339 | drag-and-drop |
338
- | `DocumentChangeEvent` | L3359 | any document change |
339
- | `NodeChangeEvent` | L3626 | node property changes |
340
- | `NodeChangeProperty` | L3499 | all watchable property names |
341
- | `StyleChangeEvent` | L3365 | style create/delete/update |
342
- | `DocumentChange` | L3489 | `CreateChange \| DeleteChange \| PropertyChange` |
343
- | `TextReviewEvent` | L3657 | text review mode |
344
-
345
- ---
346
-
347
- ## Export
348
-
349
- | Type | L# | Notes |
350
- | --------------------------- | ----- | --------------------------------------------- |
351
- | `ExportSettingsImage` | L4561 | PNG/JPG/WEBP/BMP |
352
- | `ExportSettingsSVG` | L4634 | |
353
- | `ExportSettingsPDF` | L4653 | |
354
- | `ExportSettingsREST` | L4667 | |
355
- | `ExportSettingsConstraints` | L4554 | `{ type: 'SCALE'\|'WIDTH'\|'HEIGHT', value }` |
356
-
357
- ---
358
-
359
- ## Key Sub-API Surfaces
360
-
361
- **ClientStorageAPI (L2531):** `getAsync(key)`, `setAsync(key, value)`, `keysAsync()`, `deleteAsync(key)`
362
-
363
- **ViewportAPI (L3086):** `center: Vector`, `zoom: number`, `scrollAndZoomIntoView(nodes)`, `bounds: Rect`
364
-
365
- **UtilAPI (L2691):** `solidPaint(hex, opacity?)`, `rgba(r,g,b,a?)`, `rgb(r,g,b)`, `colorToHex(color)`, `loadImageAsync(url)`, `clone(val)`
366
-
367
- **TeamLibraryAPI (L2372):** `getAvailableLibraryVariableCollectionsAsync()`, `importVariableByKeyAsync(key)`
368
-
369
- **Image (L11120):** `hash`, `getBytesAsync()`, `getSizeAsync()`
370
-
371
- ---
372
-
373
- ## All Symbols (flat — grep these against the .d.ts file)
374
-
375
- To find any symbol: `grep -n "^interface Foo\|^type Foo\|^declare type Foo" plugin-api-standalone.d.ts`
376
-
377
- ```
378
- PluginAPI VariablesAPI AnnotationsAPI TeamLibraryAPI
379
- UIAPI UtilAPI ViewportAPI ClientStorageAPI
380
- ConstantsAPI CodegenAPI PaymentsAPI TextReviewAPI
381
- ParametersAPI TimerAPI BuzzAPI DevResourcesAPI
382
-
383
- DocumentNode PageNode FrameNode GroupNode
384
- ComponentNode ComponentSetNode InstanceNode RectangleNode
385
- EllipseNode LineNode PolygonNode StarNode
386
- VectorNode TextNode TextPathNode BooleanOperationNode
387
- SliceNode SectionNode TableNode TableCellNode
388
- StickyNode ConnectorNode ShapeWithTextNode StampNode
389
- CodeBlockNode EmbedNode LinkUnfurlNode MediaNode
390
- WidgetNode SlideNode SlideRowNode SlideGridNode
391
- TransformGroupNode HighlightNode WashiTapeNode
392
-
393
- BaseNodeMixin SceneNodeMixin ChildrenMixin LayoutMixin
394
- AutoLayoutMixin AutoLayoutChildrenMixin GridLayoutMixin GridChildrenMixin
395
- GeometryMixin MinimalFillsMixin MinimalStrokesMixin BlendMixin
396
- MinimalBlendMixin CornerMixin RectangleCornerMixin ExportMixin
397
- ReactionMixin PublishableMixin VariantMixin ComponentPropertiesMixin
398
- PluginDataMixin DevResourcesMixin DevStatusMixin StickableMixin
399
- ConstraintMixin DimensionAndPositionMixin AspectRatioLockMixin FramePrototypingMixin
400
- BaseFrameMixin DefaultFrameMixin DefaultShapeMixin OpaqueNodeMixin
401
- VectorLikeMixin ComplexStrokesMixin IndividualStrokesMixin ContainerMixin
402
- AnnotationsMixin MeasurementsMixin ExplicitVariableModesMixin
403
-
404
- Variable VariableCollection VariableAlias ExtendedVariableCollection
405
- LibraryVariableCollection LibraryVariable
406
- VariableValue VariableResolvedDataType VariableDataType VariableScope
407
- CodeSyntaxPlatform VariableBindableNodeField VariableBindableTextField
408
- VariableBindablePaintField VariableBindableEffectField VariableBindableLayoutGridField
409
-
410
- SolidPaint GradientPaint ImagePaint VideoPaint
411
- PatternPaint Paint ColorStop ImageFilters
412
- DropShadowEffect InnerShadowEffect BlurEffect NoiseEffect
413
- TextureEffect GlassEffect Effect
414
- LayoutGrid RowsColsLayoutGrid GridLayoutGrid
415
-
416
- PaintStyle TextStyle EffectStyle GridStyle
417
- BaseStyle BaseStyleMixin StyleType
418
-
419
- FontName Font LetterSpacing LineHeight
420
- TextCase TextDecoration TextDecorationStyle FontStyle
421
- OpenTypeFeature StyledTextSegment LeadingTrim
422
-
423
- Vector Rect RGB RGBA
424
- Transform ArcData Constraints ConstraintType
425
- VectorPath VectorNetwork VectorVertex VectorSegment
426
- VectorRegion Guide BlendMode MaskType
427
-
428
- Reaction Trigger Action Transition
429
- Easing Navigation OverflowDirection OverlayPositionType
430
- OverlayBackground PublishStatus
431
-
432
- ArgFreeEventType RunEvent DropEvent DocumentChangeEvent
433
- NodeChangeEvent NodeChangeProperty StyleChangeEvent DocumentChange
434
- TextReviewEvent SlidesViewChangeEvent CanvasViewChangeEvent
435
-
436
- ExportSettingsImage ExportSettingsSVG ExportSettingsPDF ExportSettingsREST
437
- ExportSettingsConstraints
438
-
439
- User ActiveUser BaseUser Image
440
- Video VersionHistoryResult FindAllCriteria
441
- ```
1
+ # Plugin API Index
2
+
3
+ > Full typings: `plugin-api-standalone.d.ts` (11,292 lines)
4
+ > Grep by symbol name to jump to definition. All `L#` line numbers refer to that file.
5
+
6
+ ---
7
+
8
+ ## figma.\* — PluginAPI (L24)
9
+
10
+ ### Identity & State
11
+
12
+ | Member | Type |
13
+ | ------------------------------- | -------------------------------------------------------------------------------- |
14
+ | `apiVersion` | `'1.0.0'` |
15
+ | `editorType` | `'figma' \| 'figjam' \| 'dev' \| 'slides' \| 'buzz'` |
16
+ | `mode` | `'default' \| 'textreview' \| 'inspect' \| 'codegen' \| 'linkpreview' \| 'auth'` |
17
+ | `fileKey` | `string \| undefined` |
18
+ | `root` | `DocumentNode` |
19
+ | `currentPage` | `PageNode` — assign via `setCurrentPageAsync` |
20
+ | `currentUser` | `User \| null` |
21
+ | `mixed` | `unique symbol` — sentinel for mixed values in selection |
22
+ | `skipInvisibleInstanceChildren` | `boolean` |
23
+
24
+ ### Navigation & Lookup
25
+
26
+ | Method | Returns |
27
+ | --------------------------- | ------------------------------------------------------- |
28
+ | `setCurrentPageAsync(page)` | `Promise<void>` — **MUST use this**; sync setter throws |
29
+ | `getNodeByIdAsync(id)` | `Promise<BaseNode \| null>` |
30
+ | `getNodeById(id)` | `BaseNode \| null` |
31
+ | `getStyleByIdAsync(id)` | `Promise<BaseStyle \| null>` |
32
+ | `getStyleById(id)` | `BaseStyle \| null` |
33
+
34
+ ### Create Nodes
35
+
36
+ | Method | Returns |
37
+ | ----------------------------------- | --------------------------- |
38
+ | `createFrame()` | `FrameNode` |
39
+ | `createComponent()` | `ComponentNode` |
40
+ | `createComponentFromNode(node)` | `ComponentNode` |
41
+ | `createRectangle()` | `RectangleNode` |
42
+ | `createEllipse()` | `EllipseNode` |
43
+ | `createLine()` | `LineNode` |
44
+ | `createPolygon()` | `PolygonNode` |
45
+ | `createStar()` | `StarNode` |
46
+ | `createVector()` | `VectorNode` |
47
+ | `createText()` | `TextNode` |
48
+ | `createSection()` | `SectionNode` |
49
+ | `createPage()` | `PageNode` |
50
+ | `createSlice()` | `SliceNode` |
51
+ | `createBooleanOperation()` | `BooleanOperationNode` |
52
+ | `createTable(rows?, cols?)` | `TableNode` |
53
+ | `createImage(data: Uint8Array)` | `Image` |
54
+ | `createNodeFromSvg(svg)` | `FrameNode` |
55
+ | `createNodeFromJSXAsync(jsx)` | `Promise<SceneNode>` |
56
+ | `importComponentByKeyAsync(key)` | `Promise<ComponentNode>` |
57
+ | `importComponentSetByKeyAsync(key)` | `Promise<ComponentSetNode>` |
58
+ | `importStyleByKeyAsync(key)` | `Promise<BaseStyle>` |
59
+
60
+ ### Styles (Local)
61
+
62
+ | Method | Returns |
63
+ | ---------------------------------- | --------------- |
64
+ | `createPaintStyle()` | `PaintStyle` |
65
+ | `createTextStyle()` | `TextStyle` |
66
+ | `createEffectStyle()` | `EffectStyle` |
67
+ | `createGridStyle()` | `GridStyle` |
68
+ | `getLocalPaintStyles()` / `Async` | `PaintStyle[]` |
69
+ | `getLocalTextStyles()` / `Async` | `TextStyle[]` |
70
+ | `getLocalEffectStyles()` / `Async` | `EffectStyle[]` |
71
+ | `getLocalGridStyles()` / `Async` | `GridStyle[]` |
72
+
73
+ ### Fonts
74
+
75
+ | Method | Notes |
76
+ | --------------------------- | ---------------------------------- |
77
+ | `loadFontAsync(fontName)` | **MUST call before any text edit** |
78
+ | `listAvailableFontsAsync()` | `Promise<Font[]>` |
79
+ | `hasMissingFont` | `boolean` |
80
+
81
+ ### Plugin Lifecycle
82
+
83
+ | Method | Notes |
84
+ | --------------------------------------- | ------------------------------------------------------------ |
85
+ | `closePlugin(message?)` | **MUST call on success paths** |
86
+ | `closePluginWithFailure(message?)` | **MUST call in catch blocks — never use closePlugin for errors** |
87
+ | `commitUndo()` | Snapshot to undo history |
88
+ | `triggerUndo()` | Revert to last snapshot |
89
+ | `saveVersionHistoryAsync(title, desc?)` | `Promise<VersionHistoryResult>` |
90
+ | `notify(message, options?)` | **throws "not implemented" in use_figma — do not use** |
91
+ | `openExternal(url)` | Opens URL in browser |
92
+
93
+ ### Sub-APIs (properties on figma)
94
+
95
+ | Property | Interface | L# |
96
+ | --------------------- | ------------------------ | ----- |
97
+ | `figma.variables` | `VariablesAPI` | L2016 |
98
+ | `figma.ui` | `UIAPI` | L2604 |
99
+ | `figma.util` | `UtilAPI` | L2691 |
100
+ | `figma.constants` | `ConstantsAPI` | L2809 |
101
+ | `figma.clientStorage` | `ClientStorageAPI` | L2531 |
102
+ | `figma.viewport` | `ViewportAPI` | L3086 |
103
+ | `figma.parameters` | `ParametersAPI` | L3292 |
104
+ | `figma.teamLibrary` | `TeamLibraryAPI` | L2372 |
105
+ | `figma.annotations` | `AnnotationsAPI` | L2187 |
106
+ | `figma.codegen` | `CodegenAPI` | L2871 |
107
+ | `figma.textreview?` | `TextReviewAPI` | L3166 |
108
+ | `figma.payments?` | `PaymentsAPI` | L2420 |
109
+ | `figma.buzz` | `BuzzAPI` | L2211 |
110
+ | `figma.timer?` | `TimerAPI` (FigJam only) | L3053 |
111
+
112
+ ---
113
+
114
+ ## VariablesAPI — figma.variables (L2016)
115
+
116
+ ```
117
+ getVariableById(id) Variable | null
118
+ getVariableByIdAsync(id) Promise<Variable | null>
119
+ getVariableCollectionById(id) VariableCollection | null
120
+ getVariableCollectionByIdAsync(id) Promise<VariableCollection | null>
121
+ getLocalVariables(type?) Variable[] ← sync works; filter by VariableResolvedDataType
122
+ getLocalVariablesAsync(type?) Promise<Variable[]>
123
+ getLocalVariableCollections() VariableCollection[] ← sync works
124
+ getLocalVariableCollectionsAsync() Promise<VariableCollection[]> ← may not be available; use sync
125
+ createVariable(name, collection, type) Variable
126
+ createVariableCollection(name) VariableCollection
127
+ createVariableAlias(variable) VariableAlias
128
+ importVariableByKeyAsync(key) Promise<Variable>
129
+ setBoundVariableForPaint(paint, field, variable) → returns NEW paint — reassign
130
+ setBoundVariableForEffect(effect, field, variable) → returns NEW effect — reassign
131
+ setBoundVariableForLayoutGrid(grid, field, variable)
132
+ ```
133
+
134
+ **Variable (L10204):** `name`, `resolvedType`, `codeSyntax`, `scopes`, `hiddenFromPublishing`, `valuesByMode`, `variableCollectionId`
135
+
136
+ - `setVariableCodeSyntax(platform, value)` — platform: `'WEB' | 'ANDROID' | 'iOS'`
137
+ - `setValueForMode(collectionId, modeId, value)`
138
+ - `remove()`
139
+
140
+ **VariableCollection (L10418):** `name`, `modes`, `variableIds`, `defaultModeId`, `hiddenFromPublishing`
141
+
142
+ - `addMode(name)` → `modeId`; `removeMode(modeId)`; `renameMode(modeId, name)`
143
+
144
+ ---
145
+
146
+ ## Node Types
147
+
148
+ ### Concrete Scene Nodes
149
+
150
+ | Node | L# | Key characteristics |
151
+ | ---------------------- | ------ | -------------------------------------------------- |
152
+ | `DocumentNode` | L8960 | Root; `children: PageNode[]` |
153
+ | `PageNode` | L9119 | `children`, local styles, `backgrounds` |
154
+ | `FrameNode` | L9311 | `DefaultFrameMixin` — auto-layout, clips, children |
155
+ | `GroupNode` | L9321 | Children only, no auto-layout |
156
+ | `ComponentNode` | L9678 | Like Frame + publishable |
157
+ | `ComponentSetNode` | L9653 | Variant set container |
158
+ | `InstanceNode` | L9719 | Like Frame; `mainComponent`, `detach()` |
159
+ | `RectangleNode` | L9378 | `DefaultShapeMixin` + corners |
160
+ | `EllipseNode` | L9410 | + `arcData` |
161
+ | `LineNode` | L9396 | |
162
+ | `PolygonNode` | L9430 | |
163
+ | `StarNode` | L9450 | |
164
+ | `VectorNode` | L9476 | Vector paths |
165
+ | `TextNode` | L9493 | Rich text, fonts, segments |
166
+ | `TextPathNode` | L9564 | Text along path |
167
+ | `BooleanOperationNode` | L9792 | `booleanOperation` property |
168
+ | `SliceNode` | L9368 | Export only |
169
+ | `SectionNode` | L10754 | Grouping + fills |
170
+ | `TableNode` | L9862 | `TableCellNode` children |
171
+
172
+ **FigJam only:** `StickyNode` L9812, `ConnectorNode` L10121, `ShapeWithTextNode` L9999, `StampNode` L9838, `CodeBlockNode` L10080, `EmbedNode` L10661, `LinkUnfurlNode` L10701, `MediaNode` L10721
173
+
174
+ **Slides only:** `SlideNode` L10784, `SlideRowNode` L10809, `SlideGridNode` L10822
175
+
176
+ **Union types:**
177
+
178
+ ```
179
+ type SceneNode (L10917) = FrameNode | GroupNode | SliceNode | RectangleNode | LineNode
180
+ | EllipseNode | PolygonNode | StarNode | VectorNode | TextNode | ComponentSetNode
181
+ | ComponentNode | InstanceNode | BooleanOperationNode | SectionNode | ...
182
+ type BaseNode (L10913) = DocumentNode | PageNode | SceneNode
183
+ ```
184
+
185
+ ---
186
+
187
+ ## Mixin Interfaces
188
+
189
+ | Mixin | L# | Provides |
190
+ | ---------------------------- | ----- | ----------------------------------------------------------------------------------------------- |
191
+ | `BaseNodeMixin` | L5284 | `id`, `name`, `type`, `parent`, `remove()`, plugin data |
192
+ | `SceneNodeMixin` | L5561 | `visible`, `locked`, `opacity`, variable bindings |
193
+ | `ChildrenMixin` | L5773 | `children`, `appendChild()`, `insertChild()`, `findAll()`, `findOne()`, `findAllWithCriteria()` |
194
+ | `LayoutMixin` | L6135 | `x`, `y`, `width`, `height`, `rotation`, `resize()`, `rescale()` |
195
+ | `AutoLayoutMixin` | L6436 | `layoutMode`, axis alignment, padding, `itemSpacing`, `layoutSizingHorizontal/Vertical` |
196
+ | `AutoLayoutChildrenMixin` | L7064 | `layoutAlign`, `layoutGrow`, sizing — **set AFTER `appendChild()`** |
197
+ | `GridLayoutMixin` | L6939 | CSS Grid tracks, gap, template |
198
+ | `GridChildrenMixin` | L7127 | grid child positioning |
199
+ | `GeometryMixin` | L7485 | `fills`, `strokes`, `strokeWeight`, `strokeAlign` |
200
+ | `MinimalFillsMixin` | L7328 | `fills` only |
201
+ | `MinimalStrokesMixin` | L7246 | `strokes`, `strokeWeight` |
202
+ | `BlendMixin` | L6339 | `opacity`, `blendMode`, `isMask`, `effects` |
203
+ | `CornerMixin` | L7537 | `cornerRadius`, `cornerSmoothing` |
204
+ | `RectangleCornerMixin` | L7560 | Per-corner radii |
205
+ | `ExportMixin` | L7577 | `exportSettings`, `exportAsync()` |
206
+ | `ReactionMixin` | L7704 | `reactions` (prototyping) |
207
+ | `PublishableMixin` | L7875 | `description`, `key`, `getPublishStatusAsync()` |
208
+ | `VariantMixin` | L8182 | `variantProperties` |
209
+ | `ComponentPropertiesMixin` | L8229 | `componentProperties`, `addComponentProperty()` |
210
+ | `PluginDataMixin` | L5443 | `getPluginData()`, `setPluginData()`, `getSharedPluginData()` |
211
+ | `FramePrototypingMixin` | L7651 | `overflowDirection`, `numberOfFixedChildren` |
212
+ | `BaseFrameMixin` | L7939 | ChildrenMixin + LayoutMixin + AutoLayoutMixin + GeometryMixin + … |
213
+ | `DefaultFrameMixin` | L7997 | BaseFrameMixin + FramePrototypingMixin + ReactionMixin |
214
+ | `DefaultShapeMixin` | L7928 | BlendMixin + GeometryMixin + LayoutMixin + ExportMixin + ReactionMixin |
215
+ | `ExplicitVariableModesMixin` | L9084 | `setExplicitVariableModeForCollection()` |
216
+
217
+ ---
218
+
219
+ ## Paint & Fill (L4302)
220
+
221
+ | Type | L# | Notes |
222
+ | --------------- | ----- | --------------------------------------------------------------------------------- |
223
+ | `SolidPaint` | L4302 | `type:'SOLID'`, `color: RGB`, `opacity`, `visible`, `blendMode` |
224
+ | `GradientPaint` | L4357 | `type: 'GRADIENT_LINEAR\|RADIAL\|ANGULAR\|DIAMOND'`, `gradientStops: ColorStop[]` |
225
+ | `ImagePaint` | L4377 | `type:'IMAGE'`, `imageHash`, `scaleMode` |
226
+ | `VideoPaint` | L4413 | `type:'VIDEO'` |
227
+ | `PatternPaint` | L4449 | `type:'PATTERN'` |
228
+ | `type Paint` | L4481 | Union of all five |
229
+ | `ColorStop` | L4271 | `{ position: number, color: RGBA }` |
230
+ | `ImageFilters` | L4290 | exposure, contrast, saturation, etc. |
231
+
232
+ > **CRITICAL**: Fills/strokes are **read-only arrays** — clone, modify, reassign.
233
+
234
+ ---
235
+
236
+ ## Effects (L3966)
237
+
238
+ | Type | L# |
239
+ | ---------------------------------- | ----- |
240
+ | `DropShadowEffect` | L3966 |
241
+ | `InnerShadowEffect` | L4009 |
242
+ | `BlurEffect` (Normal/Progressive) | L4048 |
243
+ | `NoiseEffect` (Mono/Duo/Multitone) | L4105 |
244
+ | `TextureEffect` | L4180 |
245
+ | `GlassEffect` | L4209 |
246
+ | `type Effect` | L4250 |
247
+
248
+ ---
249
+
250
+ ## Typography
251
+
252
+ | Type | L# | Notes |
253
+ | ------------------- | ----- | -------------------------------------------------------------------------------------- |
254
+ | `FontName` | L3697 | `{ family: string, style: string }` |
255
+ | `TextNode` | L9493 | `characters`, `textAlignHorizontal`, `fontSize`, `fontName`, `getStyledTextSegments()` |
256
+ | `StyledTextSegment` | L4882 | Per-range text properties |
257
+ | `LetterSpacing` | L4826 | `{ value, unit: 'PIXELS'\|'PERCENT' }` |
258
+ | `LineHeight` | L4830 | `{ value, unit } \| { unit: 'AUTO' }` |
259
+ | `TextCase` | L3701 | `'ORIGINAL'\|'UPPER'\|'LOWER'\|'TITLE'\|'SMALL_CAPS'` |
260
+ | `TextDecoration` | L3702 | `'NONE'\|'UNDERLINE'\|'STRIKETHROUGH'` |
261
+ | `OpenTypeFeature` | L3728 | Ligatures, numerals, etc. |
262
+
263
+ ---
264
+
265
+ ## Variables & Bindings
266
+
267
+ | Type | L# | Notes |
268
+ | ----------------------------- | ------ | ------------------------------------------------------------- |
269
+ | `Variable` | L10204 | Core variable object |
270
+ | `VariableCollection` | L10418 | Collection of variables + modes |
271
+ | `VariableAlias` | L10172 | Reference to another variable |
272
+ | `VariableValue` | L10176 | `boolean \| string \| number \| RGB \| RGBA \| VariableAlias` |
273
+ | `VariableResolvedDataType` | L10171 | `'BOOLEAN' \| 'COLOR' \| 'FLOAT' \| 'STRING'` |
274
+ | `VariableDataType` | L5023 | Includes `'VARIABLE_ALIAS' \| 'EXPRESSION'` |
275
+ | `VariableScope` | L10177 | Where variable can be applied |
276
+ | `CodeSyntaxPlatform` | L10203 | `'WEB' \| 'ANDROID' \| 'iOS'` |
277
+ | `VariableBindableNodeField` | L5712 | Node fields that accept variable binding |
278
+ | `VariableBindableTextField` | L5739 | Text-specific bindable fields |
279
+ | `VariableBindablePaintField` | L5748 | `'color'` |
280
+ | `VariableBindableEffectField` | L5751 | `'color'\|'radius'\|'spread'\|'offsetX'\|'offsetY'` |
281
+
282
+ ---
283
+
284
+ ## Styles
285
+
286
+ | Interface | L# | Notes |
287
+ | ---------------- | ------ | ------------------------------------------------------ |
288
+ | `BaseStyleMixin` | L10977 | `name`, `id`, `key`, `type`, `description`, `remove()` |
289
+ | `PaintStyle` | L11002 | `type:'PAINT'`, `paints: Paint[]` |
290
+ | `TextStyle` | L11018 | `type:'TEXT'`, font properties |
291
+ | `EffectStyle` | L11087 | `type:'EFFECT'`, `effects: Effect[]` |
292
+ | `GridStyle` | L11103 | `type:'GRID'`, `layoutGrids` |
293
+ | `type BaseStyle` | L11119 | Union of all four |
294
+ | `type StyleType` | L10955 | `'PAINT' \| 'TEXT' \| 'EFFECT' \| 'GRID'` |
295
+
296
+ ---
297
+
298
+ ## Primitives & Geometry
299
+
300
+ | Type | L# | Shape |
301
+ | ---------------- | ----- | --------------------------------------------- |
302
+ | `Vector` | L3667 | `{ x: number, y: number }` |
303
+ | `Rect` | L3671 | `{ x, y, width, height }` |
304
+ | `RGB` | L3680 | `{ r, g, b }` — **0–1 range, not 0–255** |
305
+ | `RGBA` | L3688 | `{ r, g, b, a }` — **0–1 range** |
306
+ | `Transform` | L3666 | `[[a,b,tx],[c,d,ty]]` 2×3 affine matrix |
307
+ | `ArcData` | L3958 | `{ startingAngle, endingAngle, innerRadius }` |
308
+ | `Constraints` | L4264 | `{ horizontal, vertical }: ConstraintType` |
309
+ | `ConstraintType` | L4260 | `'MIN'\|'CENTER'\|'MAX'\|'STRETCH'\|'SCALE'` |
310
+ | `VectorPath` | L4792 | `{ windingRule, data: string }` |
311
+ | `VectorNetwork` | L4775 | vertices + segments + regions |
312
+ | `Guide` | L4482 | `{ axis, offset }` |
313
+
314
+ ---
315
+
316
+ ## Prototyping
317
+
318
+ | Type | L# | Notes |
319
+ | --------------------- | ----- | --------------------------------------------------------- |
320
+ | `Reaction` | L5015 | trigger + action pair |
321
+ | `Trigger` | L5146 | what initiates the reaction |
322
+ | `Action` | L5064 | what happens |
323
+ | `Transition` | L5145 | `SimpleTransition \| DirectionalTransition` |
324
+ | `Easing` | L5182 | easing curve definition |
325
+ | `Navigation` | L5178 | `'NAVIGATE'\|'SWAP'\|'OVERLAY'\|'SCROLL_TO'\|'CHANGE_TO'` |
326
+ | `OverflowDirection` | L5215 | `'NONE'\|'HORIZONTAL'\|'VERTICAL'\|'BOTH'` |
327
+ | `OverlayPositionType` | L5219 | overlay placement |
328
+
329
+ ---
330
+
331
+ ## Events & Changes
332
+
333
+ | Type | L# | Notes |
334
+ | --------------------- | ----- | --------------------------------------------------------------- |
335
+ | `ArgFreeEventType` | L11 | `'selectionchange'\|'currentpagechange'\|'close'\|timer events` |
336
+ | `RunEvent` | L3321 | plugin run with parameters |
337
+ | `DropEvent` | L3339 | drag-and-drop |
338
+ | `DocumentChangeEvent` | L3359 | any document change |
339
+ | `NodeChangeEvent` | L3626 | node property changes |
340
+ | `NodeChangeProperty` | L3499 | all watchable property names |
341
+ | `StyleChangeEvent` | L3365 | style create/delete/update |
342
+ | `DocumentChange` | L3489 | `CreateChange \| DeleteChange \| PropertyChange` |
343
+ | `TextReviewEvent` | L3657 | text review mode |
344
+
345
+ ---
346
+
347
+ ## Export
348
+
349
+ | Type | L# | Notes |
350
+ | --------------------------- | ----- | --------------------------------------------- |
351
+ | `ExportSettingsImage` | L4561 | PNG/JPG/WEBP/BMP |
352
+ | `ExportSettingsSVG` | L4634 | |
353
+ | `ExportSettingsPDF` | L4653 | |
354
+ | `ExportSettingsREST` | L4667 | |
355
+ | `ExportSettingsConstraints` | L4554 | `{ type: 'SCALE'\|'WIDTH'\|'HEIGHT', value }` |
356
+
357
+ ---
358
+
359
+ ## Key Sub-API Surfaces
360
+
361
+ **ClientStorageAPI (L2531):** `getAsync(key)`, `setAsync(key, value)`, `keysAsync()`, `deleteAsync(key)`
362
+
363
+ **ViewportAPI (L3086):** `center: Vector`, `zoom: number`, `scrollAndZoomIntoView(nodes)`, `bounds: Rect`
364
+
365
+ **UtilAPI (L2691):** `solidPaint(hex, opacity?)`, `rgba(r,g,b,a?)`, `rgb(r,g,b)`, `colorToHex(color)`, `loadImageAsync(url)`, `clone(val)`
366
+
367
+ **TeamLibraryAPI (L2372):** `getAvailableLibraryVariableCollectionsAsync()`, `importVariableByKeyAsync(key)`
368
+
369
+ **Image (L11120):** `hash`, `getBytesAsync()`, `getSizeAsync()`
370
+
371
+ ---
372
+
373
+ ## All Symbols (flat — grep these against the .d.ts file)
374
+
375
+ To find any symbol: `grep -n "^interface Foo\|^type Foo\|^declare type Foo" plugin-api-standalone.d.ts`
376
+
377
+ ```
378
+ PluginAPI VariablesAPI AnnotationsAPI TeamLibraryAPI
379
+ UIAPI UtilAPI ViewportAPI ClientStorageAPI
380
+ ConstantsAPI CodegenAPI PaymentsAPI TextReviewAPI
381
+ ParametersAPI TimerAPI BuzzAPI DevResourcesAPI
382
+
383
+ DocumentNode PageNode FrameNode GroupNode
384
+ ComponentNode ComponentSetNode InstanceNode RectangleNode
385
+ EllipseNode LineNode PolygonNode StarNode
386
+ VectorNode TextNode TextPathNode BooleanOperationNode
387
+ SliceNode SectionNode TableNode TableCellNode
388
+ StickyNode ConnectorNode ShapeWithTextNode StampNode
389
+ CodeBlockNode EmbedNode LinkUnfurlNode MediaNode
390
+ WidgetNode SlideNode SlideRowNode SlideGridNode
391
+ TransformGroupNode HighlightNode WashiTapeNode
392
+
393
+ BaseNodeMixin SceneNodeMixin ChildrenMixin LayoutMixin
394
+ AutoLayoutMixin AutoLayoutChildrenMixin GridLayoutMixin GridChildrenMixin
395
+ GeometryMixin MinimalFillsMixin MinimalStrokesMixin BlendMixin
396
+ MinimalBlendMixin CornerMixin RectangleCornerMixin ExportMixin
397
+ ReactionMixin PublishableMixin VariantMixin ComponentPropertiesMixin
398
+ PluginDataMixin DevResourcesMixin DevStatusMixin StickableMixin
399
+ ConstraintMixin DimensionAndPositionMixin AspectRatioLockMixin FramePrototypingMixin
400
+ BaseFrameMixin DefaultFrameMixin DefaultShapeMixin OpaqueNodeMixin
401
+ VectorLikeMixin ComplexStrokesMixin IndividualStrokesMixin ContainerMixin
402
+ AnnotationsMixin MeasurementsMixin ExplicitVariableModesMixin
403
+
404
+ Variable VariableCollection VariableAlias ExtendedVariableCollection
405
+ LibraryVariableCollection LibraryVariable
406
+ VariableValue VariableResolvedDataType VariableDataType VariableScope
407
+ CodeSyntaxPlatform VariableBindableNodeField VariableBindableTextField
408
+ VariableBindablePaintField VariableBindableEffectField VariableBindableLayoutGridField
409
+
410
+ SolidPaint GradientPaint ImagePaint VideoPaint
411
+ PatternPaint Paint ColorStop ImageFilters
412
+ DropShadowEffect InnerShadowEffect BlurEffect NoiseEffect
413
+ TextureEffect GlassEffect Effect
414
+ LayoutGrid RowsColsLayoutGrid GridLayoutGrid
415
+
416
+ PaintStyle TextStyle EffectStyle GridStyle
417
+ BaseStyle BaseStyleMixin StyleType
418
+
419
+ FontName Font LetterSpacing LineHeight
420
+ TextCase TextDecoration TextDecorationStyle FontStyle
421
+ OpenTypeFeature StyledTextSegment LeadingTrim
422
+
423
+ Vector Rect RGB RGBA
424
+ Transform ArcData Constraints ConstraintType
425
+ VectorPath VectorNetwork VectorVertex VectorSegment
426
+ VectorRegion Guide BlendMode MaskType
427
+
428
+ Reaction Trigger Action Transition
429
+ Easing Navigation OverflowDirection OverlayPositionType
430
+ OverlayBackground PublishStatus
431
+
432
+ ArgFreeEventType RunEvent DropEvent DocumentChangeEvent
433
+ NodeChangeEvent NodeChangeProperty StyleChangeEvent DocumentChange
434
+ TextReviewEvent SlidesViewChangeEvent CanvasViewChangeEvent
435
+
436
+ ExportSettingsImage ExportSettingsSVG ExportSettingsPDF ExportSettingsREST
437
+ ExportSettingsConstraints
438
+
439
+ User ActiveUser BaseUser Image
440
+ Video VersionHistoryResult FindAllCriteria
441
+ ```