@sarjallab09/figma-intelligence 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +67 -36
  2. package/dist/bin/cli.js +2 -0
  3. package/dist/design-bridge/bridge.js +2 -0
  4. package/dist/figma-bridge-plugin/bridge-relay.js +2 -0
  5. package/dist/figma-bridge-plugin/code.js +1 -0
  6. package/{figma-bridge-plugin → dist/figma-bridge-plugin}/package-lock.json +0 -3
  7. package/dist/figma-bridge-plugin/ui.html +4970 -0
  8. package/dist/figma-intelligence-layer/dist/index.js +2 -0
  9. package/dist/scripts/clean-existing-chunks.js +2 -0
  10. package/dist/scripts/connect-ai-tool.js +2 -0
  11. package/dist/scripts/convert-hub-pdfs.js +2 -0
  12. package/dist/scripts/figma-mcp-status.js +2 -0
  13. package/dist/scripts/register-codex-mcp.js +2 -0
  14. package/dist/scripts/test-copilot-chat.js +2 -0
  15. package/package.json +11 -8
  16. package/bin/cli.js +0 -859
  17. package/design-bridge/bridge.js +0 -196
  18. package/design-bridge/lib/assets.js +0 -367
  19. package/design-bridge/lib/prompt.js +0 -85
  20. package/design-bridge/lib/server.js +0 -66
  21. package/design-bridge/lib/stitch.js +0 -37
  22. package/design-bridge/lib/tokens.js +0 -82
  23. package/design-bridge/package-lock.json +0 -579
  24. package/figma-bridge-plugin/README.md +0 -97
  25. package/figma-bridge-plugin/anthropic-chat-runner.js +0 -192
  26. package/figma-bridge-plugin/bridge-relay.js +0 -2505
  27. package/figma-bridge-plugin/chat-runner.js +0 -485
  28. package/figma-bridge-plugin/code.js +0 -1534
  29. package/figma-bridge-plugin/codex-runner.js +0 -505
  30. package/figma-bridge-plugin/component-schemas.js +0 -110
  31. package/figma-bridge-plugin/content-context.js +0 -869
  32. package/figma-bridge-plugin/create-button.js +0 -216
  33. package/figma-bridge-plugin/gemini-cli-runner.js +0 -291
  34. package/figma-bridge-plugin/gemini-runner.js +0 -187
  35. package/figma-bridge-plugin/html-to-figma.js +0 -927
  36. package/figma-bridge-plugin/knowledge-hub/.gitkeep +0 -0
  37. package/figma-bridge-plugin/knowledge-hub/uspec-references/anatomy-spec.md +0 -159
  38. package/figma-bridge-plugin/knowledge-hub/uspec-references/api-spec.md +0 -162
  39. package/figma-bridge-plugin/knowledge-hub/uspec-references/color-spec.md +0 -148
  40. package/figma-bridge-plugin/knowledge-hub/uspec-references/full-spec-template.md +0 -314
  41. package/figma-bridge-plugin/knowledge-hub/uspec-references/property-spec.md +0 -175
  42. package/figma-bridge-plugin/knowledge-hub/uspec-references/screen-reader-spec.md +0 -180
  43. package/figma-bridge-plugin/knowledge-hub/uspec-references/structure-spec.md +0 -165
  44. package/figma-bridge-plugin/perplexity-runner.js +0 -188
  45. package/figma-bridge-plugin/references/SKILL.md +0 -178
  46. package/figma-bridge-plugin/references/anatomy-spec.md +0 -159
  47. package/figma-bridge-plugin/references/api-spec.md +0 -162
  48. package/figma-bridge-plugin/references/color-spec.md +0 -148
  49. package/figma-bridge-plugin/references/full-spec-template.md +0 -314
  50. package/figma-bridge-plugin/references/property-spec.md +0 -175
  51. package/figma-bridge-plugin/references/screen-reader-spec.md +0 -180
  52. package/figma-bridge-plugin/references/structure-spec.md +0 -165
  53. package/figma-bridge-plugin/shared-prompt-config.js +0 -645
  54. package/figma-bridge-plugin/spec-helpers/build-table.js +0 -269
  55. package/figma-bridge-plugin/spec-helpers/classify-elements.js +0 -189
  56. package/figma-bridge-plugin/spec-helpers/index.js +0 -35
  57. package/figma-bridge-plugin/spec-helpers/parse-figma-link.js +0 -49
  58. package/figma-bridge-plugin/spec-helpers/position-markers.js +0 -158
  59. package/figma-bridge-plugin/stitch-auth.js +0 -322
  60. package/figma-bridge-plugin/stitch-runner.js +0 -1427
  61. package/figma-bridge-plugin/token-resolver.js +0 -107
  62. package/figma-bridge-plugin/ui.html +0 -4542
  63. package/figma-intelligence-layer/.env.example +0 -39
  64. package/figma-intelligence-layer/docs/local-image-generation.md +0 -60
  65. package/figma-intelligence-layer/examples/comfyui-workflow-template.example.json +0 -101
  66. package/figma-intelligence-layer/jest.config.js +0 -14
  67. package/figma-intelligence-layer/mcp-config.json +0 -19
  68. package/figma-intelligence-layer/package-lock.json +0 -5892
  69. package/figma-intelligence-layer/scripts/setup-comfyui-local.sh +0 -67
  70. package/figma-intelligence-layer/scripts/start-comfyui.sh +0 -33
  71. package/figma-intelligence-layer/src/index.ts +0 -2233
  72. package/figma-intelligence-layer/src/shared/auto-layout-validator.ts +0 -404
  73. package/figma-intelligence-layer/src/shared/cache.ts +0 -187
  74. package/figma-intelligence-layer/src/shared/color-operations.ts +0 -533
  75. package/figma-intelligence-layer/src/shared/color-utils.ts +0 -138
  76. package/figma-intelligence-layer/src/shared/component-script-builder.ts +0 -413
  77. package/figma-intelligence-layer/src/shared/component-templates.ts +0 -2767
  78. package/figma-intelligence-layer/src/shared/concept-taxonomy.ts +0 -694
  79. package/figma-intelligence-layer/src/shared/decision-log.ts +0 -128
  80. package/figma-intelligence-layer/src/shared/design-system-context.ts +0 -568
  81. package/figma-intelligence-layer/src/shared/design-system-intelligence.ts +0 -131
  82. package/figma-intelligence-layer/src/shared/design-system-matcher.ts +0 -184
  83. package/figma-intelligence-layer/src/shared/design-system-normalizers.ts +0 -196
  84. package/figma-intelligence-layer/src/shared/design-system-tokens.ts +0 -295
  85. package/figma-intelligence-layer/src/shared/dtcg-validator.ts +0 -530
  86. package/figma-intelligence-layer/src/shared/enrichment-pipeline.ts +0 -671
  87. package/figma-intelligence-layer/src/shared/figma-bridge.ts +0 -1418
  88. package/figma-intelligence-layer/src/shared/font-config.ts +0 -126
  89. package/figma-intelligence-layer/src/shared/icon-catalog.ts +0 -360
  90. package/figma-intelligence-layer/src/shared/icon-fetch.ts +0 -80
  91. package/figma-intelligence-layer/src/shared/prototype-script-builder.ts +0 -162
  92. package/figma-intelligence-layer/src/shared/response-compression.ts +0 -440
  93. package/figma-intelligence-layer/src/shared/semantic-token-catalog.ts +0 -324
  94. package/figma-intelligence-layer/src/shared/token-binder.ts +0 -505
  95. package/figma-intelligence-layer/src/shared/token-math.ts +0 -427
  96. package/figma-intelligence-layer/src/shared/token-naming.ts +0 -468
  97. package/figma-intelligence-layer/src/shared/token-utils.ts +0 -420
  98. package/figma-intelligence-layer/src/shared/types.ts +0 -346
  99. package/figma-intelligence-layer/src/shared/typography-presets.ts +0 -94
  100. package/figma-intelligence-layer/src/shared/unsplash.ts +0 -165
  101. package/figma-intelligence-layer/src/shared/vision-client.ts +0 -607
  102. package/figma-intelligence-layer/src/shared/vision-provider-anthropic.ts +0 -334
  103. package/figma-intelligence-layer/src/shared/vision-provider-openai.ts +0 -446
  104. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotate-handler.ts +0 -782
  105. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotate-renderer.ts +0 -496
  106. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotation-kit.ts +0 -230
  107. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/colorblind-sim.ts +0 -66
  108. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/index.ts +0 -810
  109. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-analyzer.ts +0 -1191
  110. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-figma-page.ts +0 -1346
  111. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-handler.ts +0 -148
  112. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/vpat-figma-page.ts +0 -499
  113. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/vpat-report.ts +0 -910
  114. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/wcag-checker.ts +0 -989
  115. package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/wcag-criteria.ts +0 -1160
  116. package/figma-intelligence-layer/src/tools/phase1-vision/design-from-ref/index.ts +0 -424
  117. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/component-recognizer.ts +0 -38
  118. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/ds-matcher.ts +0 -111
  119. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/font-matcher.ts +0 -114
  120. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/icon-resolver.ts +0 -103
  121. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/index.ts +0 -1060
  122. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/layout-segmenter.ts +0 -18
  123. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/token-inferencer.ts +0 -39
  124. package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/vision-pipeline.ts +0 -58
  125. package/figma-intelligence-layer/src/tools/phase1-vision/sketch-to-design/index.ts +0 -298
  126. package/figma-intelligence-layer/src/tools/phase1-vision/visual-audit/index.ts +0 -197
  127. package/figma-intelligence-layer/src/tools/phase2-accuracy/component-audit/index.ts +0 -494
  128. package/figma-intelligence-layer/src/tools/phase2-accuracy/intent-translator/index.ts +0 -356
  129. package/figma-intelligence-layer/src/tools/phase2-accuracy/layout-intelligence/container-patterns.ts +0 -123
  130. package/figma-intelligence-layer/src/tools/phase2-accuracy/layout-intelligence/index.ts +0 -663
  131. package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/built-in-rules.yaml +0 -56
  132. package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/index.ts +0 -614
  133. package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/rule-engine.ts +0 -113
  134. package/figma-intelligence-layer/src/tools/phase2-accuracy/theme-generator/color-theory.ts +0 -178
  135. package/figma-intelligence-layer/src/tools/phase2-accuracy/theme-generator/index.ts +0 -470
  136. package/figma-intelligence-layer/src/tools/phase2-accuracy/variant-expander/index.ts +0 -429
  137. package/figma-intelligence-layer/src/tools/phase2-accuracy/variant-expander/token-override-maps.ts +0 -226
  138. package/figma-intelligence-layer/src/tools/phase3-generation/ai-image-insert/index.ts +0 -535
  139. package/figma-intelligence-layer/src/tools/phase3-generation/component-archaeologist/index.ts +0 -660
  140. package/figma-intelligence-layer/src/tools/phase3-generation/component-archaeologist/pattern-fingerprints.ts +0 -209
  141. package/figma-intelligence-layer/src/tools/phase3-generation/composition-builder/index.ts +0 -540
  142. package/figma-intelligence-layer/src/tools/phase3-generation/figma-animated-build.ts +0 -391
  143. package/figma-intelligence-layer/src/tools/phase3-generation/page-architect/index.ts +0 -2019
  144. package/figma-intelligence-layer/src/tools/phase3-generation/page-architect/screen-templates.ts +0 -131
  145. package/figma-intelligence-layer/src/tools/phase3-generation/prototype-map/index.ts +0 -381
  146. package/figma-intelligence-layer/src/tools/phase3-generation/prototype-wire/index.ts +0 -565
  147. package/figma-intelligence-layer/src/tools/phase3-generation/swarm-build/index.ts +0 -764
  148. package/figma-intelligence-layer/src/tools/phase3-generation/system-drift/index.ts +0 -535
  149. package/figma-intelligence-layer/src/tools/phase3-generation/unsplash-search/index.ts +0 -84
  150. package/figma-intelligence-layer/src/tools/phase3-generation/url-to-frame/index.ts +0 -401
  151. package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/css-animations.ts +0 -68
  152. package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/framer-motion.ts +0 -78
  153. package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/swift-animations.ts +0 -93
  154. package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/index.ts +0 -596
  155. package/figma-intelligence-layer/src/tools/phase4-sync/ci-check/index.ts +0 -462
  156. package/figma-intelligence-layer/src/tools/phase4-sync/export-tokens/index.ts +0 -1470
  157. package/figma-intelligence-layer/src/tools/phase4-sync/generate-component-code/index.ts +0 -829
  158. package/figma-intelligence-layer/src/tools/phase4-sync/handoff-spec/index.ts +0 -702
  159. package/figma-intelligence-layer/src/tools/phase4-sync/icon-library-sync/index.ts +0 -483
  160. package/figma-intelligence-layer/src/tools/phase4-sync/sync-from-code/index.ts +0 -501
  161. package/figma-intelligence-layer/src/tools/phase4-sync/sync-from-code/storybook-parser.ts +0 -106
  162. package/figma-intelligence-layer/src/tools/phase4-sync/watch-docs/index.ts +0 -676
  163. package/figma-intelligence-layer/src/tools/phase4-sync/webhook-listener/index.ts +0 -560
  164. package/figma-intelligence-layer/src/tools/phase5-governance/apg-doc/index.ts +0 -1043
  165. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/component-detection.ts +0 -620
  166. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/anatomy.ts +0 -331
  167. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/color-tokens.ts +0 -77
  168. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/properties.ts +0 -54
  169. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/snapshot.ts +0 -287
  170. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/spacing.ts +0 -71
  171. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/states.ts +0 -43
  172. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/typography.ts +0 -71
  173. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/index.ts +0 -221
  174. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/_default.ts +0 -166
  175. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/accordion.ts +0 -232
  176. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/alert.ts +0 -234
  177. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/avatar-group.ts +0 -270
  178. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/avatar.ts +0 -249
  179. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/badge.ts +0 -231
  180. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/banner.ts +0 -293
  181. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/breadcrumb.ts +0 -240
  182. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/button.ts +0 -243
  183. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/calendar.ts +0 -307
  184. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/card.ts +0 -143
  185. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/checkbox.ts +0 -227
  186. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/chip.ts +0 -233
  187. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/combobox.ts +0 -282
  188. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/datepicker.ts +0 -276
  189. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/divider.ts +0 -223
  190. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/drawer.ts +0 -255
  191. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/dropdown-menu.ts +0 -289
  192. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/empty-state.ts +0 -261
  193. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/file-uploader.ts +0 -290
  194. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/form.ts +0 -265
  195. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/grid.ts +0 -238
  196. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/icon.ts +0 -255
  197. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/index.ts +0 -128
  198. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/inline-edit.ts +0 -286
  199. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/inline-message.ts +0 -255
  200. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/input.ts +0 -330
  201. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/link.ts +0 -247
  202. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/list.ts +0 -250
  203. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/menu.ts +0 -247
  204. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/modal.ts +0 -144
  205. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/navbar.ts +0 -264
  206. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/navigation.ts +0 -251
  207. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/number-input.ts +0 -261
  208. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/pagination.ts +0 -248
  209. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/popover.ts +0 -270
  210. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/progress.ts +0 -251
  211. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/radio.ts +0 -142
  212. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/range-slider.ts +0 -282
  213. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/rating.ts +0 -250
  214. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/search.ts +0 -258
  215. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/segmented-control.ts +0 -265
  216. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/select.ts +0 -319
  217. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/skeleton.ts +0 -256
  218. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/slider.ts +0 -232
  219. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/spinner.ts +0 -239
  220. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/status-dot.ts +0 -252
  221. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/stepper.ts +0 -270
  222. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/table.ts +0 -244
  223. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tabs.ts +0 -143
  224. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tag.ts +0 -243
  225. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/textarea.ts +0 -259
  226. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/time-picker.ts +0 -293
  227. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toast.ts +0 -144
  228. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toggle.ts +0 -289
  229. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toolbar.ts +0 -267
  230. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tooltip.ts +0 -232
  231. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/treeview.ts +0 -257
  232. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/typography.ts +0 -319
  233. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/legacy-compat.ts +0 -121
  234. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/anatomy-diagram.ts +0 -430
  235. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/figma-page.ts +0 -312
  236. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/json.ts +0 -129
  237. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/markdown.ts +0 -78
  238. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/visual-doc.ts +0 -2333
  239. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/accessibility.ts +0 -100
  240. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/anatomy.ts +0 -32
  241. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/color-tokens.ts +0 -59
  242. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/content-guidance.ts +0 -18
  243. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/design-tokens.ts +0 -53
  244. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/interaction-rules.ts +0 -19
  245. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/overview.ts +0 -91
  246. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/properties-api.ts +0 -71
  247. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/qa-criteria.ts +0 -19
  248. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/related-components.ts +0 -110
  249. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/responsive.ts +0 -19
  250. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/size-specs.ts +0 -67
  251. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/spacing-structure.ts +0 -58
  252. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/state-specs.ts +0 -79
  253. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/states.ts +0 -50
  254. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/type-hierarchy.ts +0 -33
  255. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/typography.ts +0 -55
  256. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/usage-guidelines.ts +0 -73
  257. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/variants.ts +0 -81
  258. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/types.ts +0 -409
  259. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/index.ts +0 -198
  260. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/renderer.ts +0 -701
  261. package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/types.ts +0 -88
  262. package/figma-intelligence-layer/src/tools/phase5-governance/decision-log/index.ts +0 -135
  263. package/figma-intelligence-layer/src/tools/phase5-governance/design-decision-log/index.ts +0 -491
  264. package/figma-intelligence-layer/src/tools/phase5-governance/ds-primitives/index.ts +0 -416
  265. package/figma-intelligence-layer/src/tools/phase5-governance/ds-scaffolder/index.ts +0 -722
  266. package/figma-intelligence-layer/src/tools/phase5-governance/ds-variables/index.ts +0 -449
  267. package/figma-intelligence-layer/src/tools/phase5-governance/health-report/index.ts +0 -393
  268. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/index.ts +0 -406
  269. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/figma-page.ts +0 -292
  270. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/json.ts +0 -24
  271. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/markdown.ts +0 -172
  272. package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/naming-guide.ts +0 -409
  273. package/figma-intelligence-layer/src/tools/phase5-governance/token-analytics/index.ts +0 -594
  274. package/figma-intelligence-layer/src/tools/phase5-governance/token-docs/index.ts +0 -710
  275. package/figma-intelligence-layer/src/tools/phase5-governance/token-migrate/index.ts +0 -458
  276. package/figma-intelligence-layer/src/tools/phase5-governance/token-naming/index.ts +0 -134
  277. package/figma-intelligence-layer/tests/apg-doc.test.ts +0 -101
  278. package/figma-intelligence-layer/tests/design-system-context.test.ts +0 -152
  279. package/figma-intelligence-layer/tests/design-system-matcher.test.ts +0 -144
  280. package/figma-intelligence-layer/tests/figma-bridge.test.ts +0 -83
  281. package/figma-intelligence-layer/tests/generate-image-and-insert.test.ts +0 -56
  282. package/figma-intelligence-layer/tests/screen-cloner-regression.test.ts +0 -69
  283. package/figma-intelligence-layer/tests/smoke.test.ts +0 -174
  284. package/figma-intelligence-layer/tests/spec-generator.test.ts +0 -127
  285. package/figma-intelligence-layer/tests/token-migrate.test.ts +0 -21
  286. package/figma-intelligence-layer/tests/token-naming.test.ts +0 -30
  287. package/figma-intelligence-layer/tsconfig.json +0 -19
  288. package/scripts/clean-existing-chunks.js +0 -179
  289. package/scripts/connect-ai-tool.js +0 -490
  290. package/scripts/convert-hub-pdfs.js +0 -425
  291. package/scripts/figma-mcp-status.js +0 -349
  292. package/scripts/register-codex-mcp.js +0 -96
  293. /package/{design-bridge → dist/design-bridge}/.env.example +0 -0
  294. /package/{design-bridge → dist/design-bridge}/package.json +0 -0
  295. /package/{figma-bridge-plugin → dist/figma-bridge-plugin}/manifest.json +0 -0
  296. /package/{figma-bridge-plugin → dist/figma-bridge-plugin}/package.json +0 -0
  297. /package/{figma-intelligence-layer → dist/figma-intelligence-layer}/package.json +0 -0
package/README.md CHANGED
@@ -3,35 +3,30 @@
3
3
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
4
4
  [![npm](https://img.shields.io/npm/v/@sarjallab09/figma-intelligence)](https://www.npmjs.com/package/@sarjallab09/figma-intelligence)
5
5
  [![License: CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-nd/4.0/)
6
- [![MCP Tools](https://img.shields.io/badge/MCP%20tools-88-blue)]()
6
+ [![MCP Tools](https://img.shields.io/badge/MCP%20tools-90-blue)]()
7
7
 
8
- > 88 AI-powered design tools for Figma. Works with your Claude, OpenAI Codex, or Gemini CLI subscription. One command to set up.
8
+ > 90 AI-powered design tools for Figma. Works with your Claude, OpenAI Codex, or Gemini CLI subscription. One command to set up.
9
9
 
10
10
  ```
11
- You (chat in Figma plugin) ◄──► Local Relay ◄──► Claude / OpenAI Codex / Gemini CLI
11
+ You (chat in Figma plugin) <---> Local Relay <---> Claude / OpenAI Codex / Gemini CLI
12
12
  ```
13
13
 
14
14
  ---
15
15
 
16
- ## Quick Start (3 steps)
16
+ ## Quick Start
17
17
 
18
- ### 1. Install the Figma plugin
18
+ ### Step 1: Install an AI CLI and log in
19
19
 
20
- Search **"Figma Intelligence"** in the Figma Community plugins, or install it from the plugin page.
21
-
22
- > **Note:** Requires Figma Desktop app — the browser version won't work.
23
-
24
- ### 2. Install an AI CLI and log in
25
-
26
- You need at least one. All three use your existing subscription — no extra API costs.
20
+ You need at least one. All four use your existing subscription no extra API costs.
27
21
 
28
22
  | Provider | Install | Log in |
29
23
  |---|---|---|
30
24
  | **Claude** | [claude.ai/download](https://claude.ai/download) | `claude login` |
31
25
  | **OpenAI Codex** | `npm install -g @openai/codex` | `codex login` |
32
26
  | **Google Gemini** | `npm install -g @google/gemini-cli` | `gemini` (opens Google sign-in) |
27
+ | **GitHub Copilot** | `npm install -g @github/copilot` | `copilot` then type `/login` (GitHub device flow) |
33
28
 
34
- ### 3. Run setup
29
+ ### Step 2: Run setup
35
30
 
36
31
  Open your terminal and run:
37
32
 
@@ -45,9 +40,50 @@ This will:
45
40
  - Ask for your **Figma Personal Access Token** ([how to get one](#figma-personal-access-token))
46
41
  - Register the MCP server with your detected providers
47
42
  - Start the local relay server
43
+ - Copy the Figma plugin files to `~/.figma-intelligence/plugin/`
48
44
  - Optionally install as a background service (macOS)
49
45
 
50
- **That's it.** Open the plugin in Figma — it auto-connects.
46
+ ### Step 3: Load the plugin in Figma (one-time)
47
+
48
+ After setup completes, you need to import the plugin into Figma. **You only do this once** — after that, the plugin stays in your Figma permanently.
49
+
50
+ > **Note:** Requires Figma Desktop app — the browser version won't work.
51
+
52
+ 1. **Open any file** in Figma Desktop
53
+ *(The plugin menu only works when a file is open)*
54
+
55
+ 2. **Open the Resources panel** by pressing **Shift + I**
56
+ *(or click the grid-like icon in the top toolbar)*
57
+
58
+ 3. In the Resources panel:
59
+ - Click the **"Plugins"** tab at the top
60
+ - Click the **three-dot menu** ( **...** ) in the top-right corner of the panel
61
+ - Select **"Import plugin from manifest..."**
62
+
63
+ 4. **A file picker opens.** Navigate to and select:
64
+
65
+ ```
66
+ ~/.figma-intelligence/plugin/manifest.json
67
+ ```
68
+
69
+ > **Can't see the folder?** The `.figma-intelligence` folder is hidden by default.
70
+ > Press **Cmd + Shift + .** (period) in the file picker to reveal hidden folders.
71
+ > Then go to: **Home** > **.figma-intelligence** > **plugin** > **manifest.json**
72
+
73
+ The setup command also opens this folder in Finder for you automatically.
74
+
75
+ 5. **Click Open** — the plugin is now installed!
76
+
77
+ ### Step 4: Open the plugin
78
+
79
+ You can open the plugin any time using one of these methods:
80
+
81
+ - **Right-click** anywhere on the canvas > **Plugins** > **Figma Intelligence**
82
+ - Press **Shift + I** > click **Plugins** tab > search **"Figma Intelligence"**
83
+
84
+ > **Pro tip:** Right-click the plugin name and select **"Save to favorites"** — this pins it to the top of your Plugins menu for instant access.
85
+
86
+ **That's it.** The plugin auto-connects to the relay server. Start chatting!
51
87
 
52
88
  ---
53
89
 
@@ -73,6 +109,7 @@ npx @sarjallab09/figma-intelligence stop # Stop the relay server
73
109
  npx @sarjallab09/figma-intelligence status # Show relay + provider status
74
110
  npx @sarjallab09/figma-intelligence doctor # Diagnose issues
75
111
  npx @sarjallab09/figma-intelligence setup # Full setup (first time or reconfigure)
112
+ npx @sarjallab09/figma-intelligence update # Update plugin files to latest version
76
113
  ```
77
114
 
78
115
  ---
@@ -91,17 +128,29 @@ Then open the Figma plugin — it reconnects automatically.
91
128
 
92
129
  ---
93
130
 
131
+ ## Updating to a new version
132
+
133
+ When a new version is released:
134
+
135
+ ```bash
136
+ npx @sarjallab09/figma-intelligence@latest update
137
+ ```
138
+
139
+ This copies the latest plugin files to your local folder. Figma automatically picks up the changes — just close and reopen the plugin.
140
+
141
+ ---
142
+
94
143
  ## What does this do?
95
144
 
96
145
  Type something like *"Make a login screen with a blue button"* and the AI will actually create the components and layers in your Figma file — not just describe how to do it.
97
146
 
98
- The plugin exposes **88 MCP tools** across 5 phases:
147
+ The plugin exposes **90 MCP tools** across 5 phases:
99
148
 
100
149
  | Phase | Tools | Examples |
101
150
  |---|---|---|
102
151
  | **Visual Intelligence** | 7 | Screen cloning, visual audit, accessibility audit, sketch-to-design |
103
152
  | **Design System Accuracy** | 6 | Intent translation, layout intelligence, variant expansion, linting |
104
- | **Generation & Scaffolding** | 13 | Page architect, swarm build, prototype wiring, composition builder |
153
+ | **Generation & Scaffolding** | 14 | Page architect, swarm build, prototype wiring, composition builder |
105
154
  | **Sync & Bidirectionality** | 9 | Token export (16 formats), component code gen, handoff specs |
106
155
  | **Governance & Health** | 15 | Health reports, token docs, design system scaffolding, DTCG validation |
107
156
  | **Node Operations** | 38 | Create, read, update, delete nodes, variables, styles, components |
@@ -158,6 +207,8 @@ The active provider will show its signed-in email in the auth strip when availab
158
207
  | **"npm: command not found"** | Node.js is not installed — download it from [nodejs.org](https://nodejs.org) |
159
208
  | **Plugin shows "Server offline"** | Run `npx @sarjallab09/figma-intelligence start` in your terminal |
160
209
  | **Plugin shows setup guide** | Follow the on-screen steps — run the setup command in your terminal |
210
+ | **Plugin not found in Figma** | Import it: press Shift+I > Plugins tab > ... menu > "Import plugin from manifest..." > select `~/.figma-intelligence/plugin/manifest.json` |
211
+ | **Can't see .figma-intelligence folder** | Press **Cmd + Shift + .** in the file picker to show hidden folders |
161
212
  | **Not sure what is broken** | Run `npx @sarjallab09/figma-intelligence doctor` for full diagnostics |
162
213
  | **Chat does nothing / no response** | Run `claude login` / `codex login` / `gemini` to authenticate your AI provider |
163
214
  | **Gemini doesn't build in Figma** | Install Gemini CLI: `npm i -g @google/gemini-cli`, run `gemini` to sign in, re-run setup |
@@ -166,26 +217,6 @@ The active provider will show its signed-in email in the auth strip when availab
166
217
 
167
218
  ---
168
219
 
169
- ## Folder structure (for the curious)
170
-
171
- ```
172
- bin/cli.js ← CLI entrypoint (npx @sarjallab09/figma-intelligence)
173
- figma-bridge-plugin/
174
- manifest.json ← Figma plugin manifest
175
- bridge-relay.js ← local WebSocket relay server
176
- chat-runner.js ← connects Claude to the plugin chat
177
- codex-runner.js ← connects OpenAI Codex to the plugin chat
178
- gemini-cli-runner.js ← connects Gemini CLI to the plugin chat
179
- ui.html / code.js ← plugin UI panel (Chat / Code / Design+Code)
180
- figma-intelligence-layer/
181
- src/tools/ ← 88 MCP tool implementations (5 phases)
182
- dist/index.js ← built MCP server (created by setup)
183
- design-bridge/ ← Asset MCP bridge (Unsplash, Pexels, Iconify)
184
- scripts/ ← Utility scripts (status, connect)
185
- ```
186
-
187
- ---
188
-
189
220
  ## Contributing
190
221
 
191
222
  1. Fork the repo and create a feature branch
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';const _0x502a7d=_0x385c;(function(_0x1b5c84,_0x711f57){const _0x105f36=_0x385c,_0x19bb4b=_0x1b5c84();while(!![]){try{const _0x480679=parseInt(_0x105f36(0x154))/0x1+parseInt(_0x105f36(0x12f))/0x2*(-parseInt(_0x105f36(0x220))/0x3)+parseInt(_0x105f36(0x139))/0x4*(-parseInt(_0x105f36(0x12c))/0x5)+-parseInt(_0x105f36(0x155))/0x6+parseInt(_0x105f36(0x168))/0x7+-parseInt(_0x105f36(0x1a1))/0x8*(parseInt(_0x105f36(0x11a))/0x9)+parseInt(_0x105f36(0x1c5))/0xa;if(_0x480679===_0x711f57)break;else _0x19bb4b['push'](_0x19bb4b['shift']());}catch(_0x4e078b){_0x19bb4b['push'](_0x19bb4b['shift']());}}}(_0x1939,0x44406));const {spawn,spawnSync,execSync}=require('child_process'),fs=require('fs'),path=require(_0x502a7d(0x22e)),os=require('os'),readline=require(_0x502a7d(0x1d7)),ROOT_DIR=path[_0x502a7d(0x15b)](__dirname,'..'),RELAY_SCRIPT=path[_0x502a7d(0x1a9)](ROOT_DIR,'figma-bridge-plugin','bridge-relay.js'),MCP_BUILD=path['join'](ROOT_DIR,'figma-intelligence-layer',_0x502a7d(0x1f5),_0x502a7d(0x1ef)),MCP_SRC=path[_0x502a7d(0x1a9)](ROOT_DIR,'figma-intelligence-layer'),BRIDGE_DIR=path[_0x502a7d(0x1a9)](ROOT_DIR,_0x502a7d(0x211)),DESIGN_BRIDGE_DIR=path['join'](ROOT_DIR,'design-bridge'),DATA_DIR=path['join'](os[_0x502a7d(0x23b)](),'.figma-intelligence'),PID_FILE=path['join'](DATA_DIR,'relay.pid'),LOG_FILE=path[_0x502a7d(0x1a9)](DATA_DIR,_0x502a7d(0x171)),PORT=parseInt(process.env.BRIDGE_PORT||'9001',0xa),PLIST_LABEL=_0x502a7d(0x25e),PLIST_DIR=path[_0x502a7d(0x1a9)](os[_0x502a7d(0x23b)](),'Library',_0x502a7d(0x13b)),PLIST_PATH=path['join'](PLIST_DIR,PLIST_LABEL+_0x502a7d(0x182));function _0x1939(){const _0x5da25a=['yLH6Ceu','ls1LBNy','r2vTAw5PoIbUB3qGAw5ZDgfSBgvKicHUCg0GAsaTzYbaz29Vz2XLl2DLBwLUAs1JBgKP','rvz5Awy','q2HLy2TPBMCGquKGChjVDMLKzxiGyxv0AgvUDgLJyxrPB24UlI4','yMLU','ExLADKe','zMLNBweTyNjPzgDLlxbSDwDPBG','rMLNBweGDg9Rzw46ig5VDcbZzxq','Ben3zvu','t3bLBMvKihrOzsbWBhvNAw4GzM9SzgvYigLUiezPBMrLCIbMB3iGEw91','sevwwgO','ywXSB3C','AMnovhu','l3vZCI9SB2nHBc9IAw4','z0vtvuq','q2XHDwrLoIbPBNn0ywXSzwqGyNv0ig5VDcbSB2DNzwqGAw4Gkhj1BIaNy2XHDwrLigXVz2LUjYK','u2HHCNaGAw1Hz2uGBw9KDwXLie9l','sxzwvMK','BeLHEvK','icbqyxn0zsb5B3vYihrVA2vUoIa','uMvNAxn0zxjLzcb3AxrOienSyxvKzsbdB2rL','nJiXmZi3sM5JreH1','Be9hCeG','icbxzwjtB2nRzxq6ihDZoI8VBg9JywXOB3n0oG','C0jbrKK','BM9Kzv9TB2r1BgvZ','A2v5CW','icdINjqG','icaGicbdyw4NDcbZzwuGDgHLigzVBgrLCJ8GuhjLC3mGienTzcaRifnOAwz0icSGlIaGDg8GC2HVDYbOAwrKzw4GzMLSzxm','C29Tzq','DLHYq0K','qMnIv0q','BhvzA0m','icbjBNn0ywXSAw5Nia','icaGicbuAgvUignSAwnRihrOzsaG4OUVicbTzw51icH0B3aTCMLNAhqGy29YBMvYkq','Cgf0Aa','tw5hCLO','icbuBYb1CgrHDguGBgf0zxi6ig5WEcbaC2fYAMfSBgfImdKVzMLNBweTAw50zwXSAwDLBMnLihvWzgf0zq','ywnQuuu','zgLY','rMLNBweGsw50zwXSAwDLBMnLifn0yxr1CW','ruvisvG','z2vTAw5PlwnSAs1Vyxv0Aa','DxrMoa','BM9Kzq','l3vZCI9ZyMLU','uNvUicDUChGGzMLNBweTAw50zwXSAwDLBMnLigHLBhaNigzVCIb1C2fNzs4','wgD3Dxa','Ag9TzwrPCG','wK9yyuG','uM5VuvG','r2v0ig9UztOGrMLNBweGrgvZA3rVCca+iefJy291BNqGu2v0DgLUz3mGpIbtzwn1CML0Esa+ifbLCNnVBMfSigfJy2vZCYb0B2TLBNm','Bwf0y2G','u2HHywi','sLHpBKG','tunqihnLCNzLCIbKAwqGBM90ihjLC3bVBMq','yxDhEwC','rw9lAfK','DNrMsue','vg8GC3rVCdOGBgf1BMnOy3rSihvUBg9Hzca','uMvSyxKGC3rHCNrLzcaOueLeoIa','wuXXqLa','Derpwgy','B2f1DgHFy3jLzhmUANnVBG','zxHPDa','BwfPBI1Hy2nVDw50','tunqihnLCNzLCIbKzxbLBMrLBMnPzxmGAw5ZDgfSBgvK','BhnVzG','yxv0Ac5QC29U','icdILidILiaGsg93ihrVig9Wzw4GDgHLihbSDwDPBIbLDMvYEsb0Aw1LiokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGokuGa','CxvUzMG','sKjnrMG','uMvSyxKGzMfPBgvKihrVihn0yxj0lIbdAgvJAYbSB2DZoG','ugX1z2LUigzPBgvZihvWzgf0zwq','AwDUB3jL','uNvUicDUChGGzMLNBweTAw50zwXSAwDLBMnLihn0B3aNigzPCNn0ig9YihvZzsbcuKLer0vFue9svd05mdaYig5WEcbMAwDTys1PBNrLBgXPz2vUy2uGC3rHCNq','q291BgqGBM90ihjLz2LZDgvYihDPDgGGr2vTAw5P','u0XLtvC','DMvYC2LVBG','CNfxrvy','tgriqwe','r2vTAw5PoIbPBNn0ywXSzwqGyNv0ig5VDcbSB2DNzwqGAw4Gkhj1BIaNz2vTAw5PjYK','qNjPzgDLihjLBgf5','y29TlMzPz21HlwLUDgvSBgLNzw5Jzs5ICMLKz2uTCMvSyxK','zgfYD2LU','q291BgqGBM90ihjLz2LZDgvYihDPDgGGq2XHDwrLienVzgu','CfrbDKy','vvDzsu8','uhDvqwi','CgfqvfC','icdINyWG','Bg9Nz2vKsw4','DwKUAhrTBa','yvrwu3y','Aw5JBhvKzxm','ueDytvy','CgXHDgzVCM0','z2vTAw5P','sxHQEvy','icaGicaOvgHLihbSDwDPBIbTzw51ig9UBhKGD29YA3mGD2HLBIbHigzPBguGAxmGB3bLBIK','EevxsLi','s2P0wvO','rKLhtufFqLjjreDfx1bpuLq9otaWmq','icbZDgfYDcaGicbtDgfYDcb0AguGyNjPzgDLihjLBgf5ihnLCNzLCIaOzgvMyxvSDcK','ls1OzwXW','BfPdqwm','wu9vuL9gsuDnqv9ut0TftL9irvjf','lMnSyxvKzq','rfPsq0O','D2HPy2G','wLb5C3y','icbZDg9WicaGicbtDg9WihrOzsbYzwXHEsbZzxj2zxi','icaGicbtzwXLy3qGiKLTCg9YDcbWBhvNAw4GzNjVBsbTyw5PzMvZDc4UlIi','m3WWFdH8nxW5Fdr8mNW3Fdz8mq','igLUC3rHBgWGzMfPBgvKoIa','AwzXwLy','qxPMqvC','yuLnqvO','icdIMQaG','igLUihvZzsaODw5RBM93BIbWCM9JzxnZkq','C3rHDhvZ','q1DYvwq','ugvTqwu','yvjqEve','Dg9mB3DLCKnHC2u','mtqXmdnprvrNtNm','t2LeC1C','u1zwseG','AxHbtKi','pc9ZDhjPBMC+cIaGicaGicaGpgTLEt5qqvripc9RzxK+cIaGicaGicaGphn0CMLUzZ4','DxbKyxrL','qNvPBgqGzMfPBgvKoIa','4Psu4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psy','C3rKzxjY','CvLfqNK','vwverLi','q0zZtfC','CgTPBgW','r3L1ugy','m3WWFdj8nxW0Fde','uLDyrfe','zezHv3u','ug9YDca','nu5ywM1TDW','icbZDgf0DxmGicbtAg93ihjLBgf5icSGq0Xjigf1DgGGC3rHDhvZ','tM8GquKGq0XjigLZigXVz2DLzcbPBI4Gtg9NigLUihrVigf0igXLyxn0ig9UzsbWCM92AwrLCG','nfH3CgnQza','r2vTAw5P','icboB3CGB3bLBIb5B3vYiezPz21HihbSDwDPBIaTigL0ihDPBgWGyxv0BY1JB25Uzwn0lG','cIaGica8l2rPy3q+cIaGica8A2v5pLj1BKf0tg9HzdWVA2v5pGOGicaGphrYDwuVpGOGicaGpgTLEt5lzwvWqwXPDMu8l2TLEt4kicaGidX0CNvLlZ4kicaGidXRzxK+u3rHBMrHCMrpDxrqyxrOpc9RzxK+cIaGica8C3rYAw5NpG','BeTMwwq','rMLNBweGDg9Rzw46ia','lwLuq1a6','tM8GDg9Rzw4GChjVDMLKzwqUifnLDcbPDcbSyxrLCIbPBIb+lY5JBgf1zguVC2v0DgLUz3mUANnVBG','wfj6q2S','r0vnsu5jx0jjtL9qqvri','mJiZndy0nfnysNjKBW','AhHYtvC','tgf1BMnOqwDLBNrZ','tunqihrVB2WGCgvYBwLZC2LVBNmGyxv0BY1LBMfIBgvK','tgnfB2S','icbmB2nHDgLVBJOG','uwnxr0G','tM8GquKGq0XjigLUC3rHBgXLzc4Gsw5ZDgfSBcbHDcbSzwfZDcbVBMu6ignSyxvKzsWGy29KzxGSig9YigDLBwLUAq','sxrSuuC','AM1yqwC','icbwuYbdB2rLoIbdBwqRu2HPzNqRuca+icDszwXVywqGv2LUzg93jW','Au10tgS','q0Xbvurfx0jjtL9qqvri','u3rHCNrPBMCGrMLNBweGsw50zwXSAwDLBMnLihjLBgf5ihnLCNzLCI4UlG','C3rKB3v0','icbdBgf1zguGq29KztOGzxHPDcb0zxjTAw5HBcbHBMqGCNvUicDJBgf1zguNigfNywLU','C3bSAxq','C2TVsxC','y29WEuzPBgvtEw5J','DMTkuu0','CvjhBvC','l3vZCI9IAw4','Ae1xzhO','ic0GCMvXDwLYzxmGpJ0GmtG','CMvHzezPBgvtEw5J','A2PiyNy','DMfSDwvZ','mJKXmJmYr1zeD3bo','nZq0ntq2twHkv0f6','vuP2Dw0','sfLZC3m','v2zTDuK','wKTAwLi','zMLUzc1Nzw5LCMLJlxbHC3n3B3jK','CMvZB2X2zq','tM8GC3vWCg9YDgvKiefjienmssbMB3vUzc4Gsw5ZDgfSBcbHDcbSzwfZDcbVBMu6','rwf4C1y','DhLNBgm','A0XPCeu','q291BgqGBM90ihjLz2LZDgvYihDPDgGGq29KzxG','C3rVCa','CgvYBwLZC2LVBNm','zxHPC3rZu3LUyW','DevLs0e','AwnkzLG','y2XVC2u','icdIHPiGt3iGChjLC3mGu2HPzNqGkYbjiokgKIbqBhvNAw5ZihrHyIdIHPiGC2vHCMnOicjgAwDTysbjBNrLBgXPz2vUy2uI','mZe0ndyXmfDnuKHguq','vNrJCKS','CufuBM8','icdILidILiaGuMvZDgfYDcb0AgvZzsbHChbZihrVihbPy2SGDxaGtunqignOyw5NzxmG4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa','rhjZCLa','tvDgwvy','Bgf1BMnOy3rS','u0D2uum','DKzKD2e','CMvSyxKUBg9N','lcbWB3j0ia','Dw5Yzwy','EeXws3C','EwrVyK0','zw1HAwW','vhD6yve','uevyruXtx0fqsv9lrvK','BwnW','uw1zsK0','zKfgwM4','zgLYBMfTzq','DfDMs2m','vw5RBM93BIbJB21Tyw5KoIa','Dw5SB2fK','C0rWDuu','AxzYwey','lNbSAxn0','sfLNq2e','icbbDMfPBgfIBguGChjVDMLKzxjZoG','igLZC3vLkhmPigzVDw5KlIbgAxGGDgHLBsbHBMqGCNvUigrVy3rVCIbHz2fPBI4','tM8GquKGChjVDMLKzxjZigfYzsbSB2DNzwqGAw4Uifj1BIbVBMuGB2y6','C2XPy2u','ChvZAa','DxrirNO','icbOzwXWicaGicbtAg93ihrOAxmGAgvSCcbTzxnZywDL','v2Dlrvq','DhjPBq','C3rYAw5NAwz5','rgvZAwDUigjYAwrNzq','vufit2S','vwDLuK4','AxnbCNjHEq','r2vTAw5PienmssbUB3qGzM91BMqUieLUC3rHBgWGD2L0AdOGBNbTigKGlwCGqgDVB2DSzs9Nzw1PBMKTy2XP','DwLXv28','swDtv0C','swDAzgm','BMfTzq','te1Qzgq','y2XHDwrL','D012yu8','cIaGvgvZDgLUzYbnq1aGC2vYDMvYigHHBMrZAgfRzs4UlG','qLz4t0C','tM9Kzs5QCYa','uezHCwm','uMvNAxn0zxjPBMCGtunqihnLCNzLCNmUlI4','z0n5C3O','ExjnDvq','odu2wxb4wfL4','CgX1z2LU','vxbKyxrPBMCGrMLNBweGsw50zwXSAwDLBMnLihbSDwDPBIbMAwXLCY4UlG','Ae5Usum','zxbvsgm','wMn2tLy','CgfYC2u','pc9ZDhjPBMC+cIaGicaGicaGphn0CMLUzZ4','AM9PBG','icbKB2n0B3iGicbeAwfNBM9ZzsbJB21TB24GAxnZDwvZ','CxvLC3rPB24','s2v0txe','ugX1z2LUigzPBgvZignVCgLLzcb0BYa','icaYlIbqCMvZCYaGu2HPzNqGkYbjicb0BYbVCgvUihrOzsbszxnVDxjJzxmGCgfUzwW','C3rHCNq','qKvOAva','icbqCMvZCYbfBNrLCIb0BYbRzwvWlcbVCIbWyxn0zsbHig5LDYb0B2TLBJOG','vKDTEw4','Bg9N','BKHLzMy','pc9ZDhjPBMC+','C2vJDxjPDhK','q2XHDwrLienmssbPBNn0ywXSzwqGyNv0ig5VDcbSB2DNzwqGAw4U','icbJBgf1zguGBg9NAw4','qxP4y3O','q2XHDwrLoIbSB2DNzwqGAw4','zNLnsvy','qNzqvve','zg9JDg9Y','CKLbCNe','igfZia','r2vTAw5PienmssbPBNn0ywXSzwqGyNv0ig5VDcbSB2DNzwqGAw4U','tKzNvuG','zgPmyMe','AhzxquK','BwfUAwzLC3qUANnVBG','odaZnZm1mgDSCxL2wa','ywrK','u0Lhvevstq','AgvSyLa','rKLhtufFqundrvntx1rps0vo','BwnWx19KzxnPz24TyNjPzgDLx18Q','Aevxr2C','cIaGicaGicaGpgTLEt5dtefvrevFqKLox1bbveG8l2TLEt4kicaGicaGica8C3rYAw5NpG','DxnLCG','teLyAgm','BNHXuLC','sw5ZDgfSBgvKigfZigXVz2LUihnLCNzPy2uGkgf1Dg8TC3rHCNrZig9UihjLyM9VDcK','zLnjshC','r2vTAw5PoIbSB2DNzwqGAw4','BwTKAxjtEw5J','C2v0DgLUz3mUANnVBG','tuXREwy','r25KDM0','CMvHzgXPBMu','BwnWu2vYDMvYCW','BgvUz3rO','l2jPBG','q291BgqGBM90igLUC3rHBgWGBgf1BMnOzcbZzxj2AwnLlIbuAguGCMvSyxKGD2fZihn0yxj0zwqGBwfUDwfSBhKGAw5ZDgvHzc4','sw5ZDgfSBgLUzYbKzxbLBMrLBMnPzxmUlI4','CMvTB3zL','zvvPyKy','icaZlIbdBgLJAYb0AguGiLbSDwDPBNmIihrHyIbHDcb0AguGDg9Wig9MihrOzsbWyw5LBa','C3rKAw4','uNPby2i','wMPJDeG','D3jPDgvgAwXLu3LUyW','B3vOsuC','uMvNAxn0zxjLzcb3AxrOieDLBwLUAsbdteK','pc9ZDhjPBMC+cIaGica8A2v5pLn0yw5KyxjKrxjYB3jqyxrOpc9RzxK+cIaGica8C3rYAw5NpG','y2HPBgrFChjVy2vZCW','Cef0qxG','vxnHz2u6ig5WEcbMAwDTys1PBNrLBgXPz2vUy2uGpgnVBw1HBMq+','vfjvB3y','CMvWzwf0','rKLhtufFqundrvntx1rps0vopq','AuvAA2e','y29KzxG','Aw5KzxGUANm','icbbBgWGy2HLy2TZihbHC3nLzceGww91CIbZzxr1CcbPCYbOzwfSDgH5lG','zMLNBweTAw50zwXSAwDLBMnLlwXHEwvY','yxjNDG','y2XPzw50x2vTywLS','qKjothy','zgLZDa','l0fWCgXPy2f0Aw9UCY9dB2rLEc5HChaVq29UDgvUDhmVuMvZB3vYy2vZl2nVzgv4','icbmB2DZoIa','ve1Mz2e','vu5tueXbu0HFqundrvntx0Tfwq','BeXbzem','vNDyt2i','qLz0rMG','zMvQwNi','CgLK','pc9ZDhjPBMC+cIaGica8A2v5pKvUDMLYB25Tzw50vMfYAwfIBgvZpc9RzxK+cIaGica8zgLJDd4kicaGicaGica8A2v5pKHptuu8l2TLEt4kicaGicaGica8C3rYAw5NpG','tNrHA1u','DMzzzw4','t3bLBKfjienVzgv4ig5VDcbMB3vUzc4Gsw5ZDgfSBcb3AxrOoIbUCg0GAsaTzYbaB3bLBMfPl2nVzgv4','sg9fvve','uLnOwNu','zw52','Aw5ZDgfSBa','ugH4q1y','ChvgwuK','BNbT'];_0x1939=function(){return _0x5da25a;};return _0x1939();}function log(_0x5414a6){const _0x3955c1=_0x502a7d;console[_0x3955c1(0x1b3)](_0x5414a6);}function success(_0xddce37){console['log']('\x20\x20✔\x20'+_0xddce37);}function warn(_0x146a33){const _0x52fba5=_0x502a7d;console['log'](_0x52fba5(0x113)+_0x146a33);}function fail(_0x486355){console['log']('\x20\x20❌\x20'+_0x486355);}function info(_0x4d07d9){console['log']('\x20\x20ℹ\x20'+_0x4d07d9);}function run(_0x4afea9,_0x18927c,_0x22e067={}){const _0x371771=_0x502a7d,_0x31c65f={'RNfoZ':function(_0x4088f1,_0x1e2f49){return _0x4088f1===_0x1e2f49;}},_0x3582df=spawnSync(_0x4afea9,_0x18927c,{'encoding':'utf8','shell':!![],..._0x22e067});return{'ok':_0x31c65f['RNfoZ'](_0x3582df['status'],0x0),'stdout':(_0x3582df[_0x371771(0x147)]||'')['trim'](),'stderr':(_0x3582df['stderr']||'')[_0x371771(0x18c)]()};}function which(_0x1c7c08){const _0x3ad085=_0x502a7d,_0x47c231={'uXTaF':function(_0xb11fa4,_0x426a5,_0x30fe1f){return _0xb11fa4(_0x426a5,_0x30fe1f);},'aRPyQ':_0x3ad085(0x278)},_0x5b12e0=_0x47c231['uXTaF'](run,_0x47c231[_0x3ad085(0x118)],[_0x1c7c08]);return _0x5b12e0['ok']?_0x5b12e0['stdout']:null;}function extractEmail(_0x1ad37f){const _0x14928c=_0x502a7d,_0x4153d8=_0x1ad37f[_0x14928c(0x23f)](/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/);return _0x4153d8?_0x4153d8[0x0]:'';}function maskToken(_0x145649){const _0x3cf3a1=_0x502a7d;if(!_0x145649||_0x145649['length']<0x8)return'(not\x20set)';return _0x145649[_0x3cf3a1(0x187)](0x0,0x4)+'....'+_0x145649[_0x3cf3a1(0x187)](-0x4);}function ensureDataDir(){fs['mkdirSync'](DATA_DIR,{'recursive':!![]});}function isPortInUse(_0x38fc5e){const _0x734129=_0x502a7d,_0x567e0c={'msfbS':function(_0x2c7489,_0x1073c5,_0x4cfc62){return _0x2c7489(_0x1073c5,_0x4cfc62);},'KcIEr':_0x734129(0x24e)},_0x3acc3f=_0x567e0c['msfbS'](run,_0x567e0c['KcIEr'],['-n','-P',_0x734129(0x135)+_0x38fc5e,'-sTCP:LISTEN']);return _0x3acc3f['ok']&&_0x3acc3f['stdout'][_0x734129(0x1d9)]>0x0;}function getRelayPid(){const _0x2c650=_0x502a7d,_0x385d40={'flpKY':function(_0x50e374,_0x1bc8b5,_0x48cb57){return _0x50e374(_0x1bc8b5,_0x48cb57);},'lZCAc':function(_0x36d0e6,_0x91588b){return _0x36d0e6(_0x91588b);}};if(!fs['existsSync'](PID_FILE))return null;const _0x2631ee=_0x385d40['flpKY'](parseInt,fs[_0x2c650(0x151)](PID_FILE,'utf8')['trim'](),0xa);if(_0x385d40[_0x2c650(0x274)](isNaN,_0x2631ee))return null;try{return process['kill'](_0x2631ee,0x0),_0x2631ee;}catch{return null;}}function prompt(_0x34bf90){return new Promise(_0x45d2e0=>{const _0x5f55f8=_0x385c,_0x2d7720={'IgZdc':function(_0x5c1f2a,_0x25e1d6){return _0x5c1f2a(_0x25e1d6);}},_0x274edc=readline['createInterface']({'input':process[_0x5f55f8(0x1e0)],'output':process[_0x5f55f8(0x147)]});_0x274edc[_0x5f55f8(0x1ab)](_0x34bf90,_0x607206=>{const _0x2742f6=_0x5f55f8;_0x274edc[_0x2742f6(0x166)](),_0x2d7720[_0x2742f6(0x195)](_0x45d2e0,_0x607206[_0x2742f6(0x18c)]());});});}function detectCLIs(){const _0x291801=_0x502a7d,_0x241989={'vVlIE':function(_0x29b228,_0x3f9ff5,_0x2981a4,_0x11dc1a){return _0x29b228(_0x3f9ff5,_0x2981a4,_0x11dc1a);},'qunfh':'auth','JXOnH':function(_0x1fded8,_0xeca65f){return _0x1fded8+_0xeca65f;},'kLipE':function(_0xc3c532,_0x1e591c){return _0xc3c532(_0x1e591c);},'acjQE':_0x291801(0x1a3),'UgeRN':_0x291801(0x254),'jcNTu':function(_0x26540c,_0x3575a4){return _0x26540c(_0x3575a4);},'iEZka':function(_0x55971b,_0x167070){return _0x55971b+_0x167070;},'jeyrP':function(_0x4f409c,_0x4632c2){return _0x4f409c(_0x4632c2);},'GsVfs':'/Applications/Codex.app/Contents/Resources/codex','jmXAg':function(_0x50daf5,_0x3aff22){return _0x50daf5!==_0x3aff22;},'ugTGP':'RShZu','ZcvNV':'login','uAYWb':'status','icJfX':function(_0x5f07d0,_0x4936ea){return _0x5f07d0+_0x4936ea;},'PhxCV':function(_0x4fdde4,_0x4ff335){return _0x4fdde4===_0x4ff335;},'vfYen':_0x291801(0x245),'draDS':function(_0x3457df,_0x59d4d2){return _0x3457df===_0x59d4d2;},'EVyif':function(_0x3d9dc9,_0x26ffcb,_0x16225a){return _0x3d9dc9(_0x26ffcb,_0x16225a);},'kWBpe':'security','RVOVk':_0x291801(0x15a),'TQJPB':'main-account','BVtFh':'ZEoLB','AQIOc':_0x291801(0x236),'BvPUQ':_0x291801(0x1ce),'TwzaQ':'.gemini','DoYtT':_0x291801(0x24a),'UwBLp':'credentials.json','aIMAZ':_0x291801(0x24f)},_0x3ae121={},_0x182815=_0x241989['jcNTu'](which,'claude');if(_0x182815){const _0x33b61f=run(_0x182815,[_0x241989[_0x291801(0x251)],'status']),_0x27859c=_0x241989[_0x291801(0x1ed)](_0x241989['iEZka'](_0x33b61f['stdout'],'\x20'),_0x33b61f[_0x291801(0x122)]);_0x3ae121[_0x291801(0x198)]={'bin':_0x182815,'loggedIn':_0x33b61f['ok'],'email':_0x241989[_0x291801(0x217)](extractEmail,_0x27859c)};}let _0x4b77c2=_0x241989['jeyrP'](which,'codex');!_0x4b77c2&&fs[_0x291801(0x163)](_0x291801(0x1f6))&&(_0x4b77c2=_0x241989['GsVfs']);if(_0x4b77c2){if(_0x241989[_0x291801(0x142)](_0x241989['ugTGP'],_0x291801(0x204))){_0x30ebd0(_0x291801(0x22c)+_0x4fd77c[_0x291801(0x196)]+'...');const _0x465140=_0x241989['vVlIE'](_0x536e20,'npm',[_0x291801(0x206)],{'cwd':_0x367649[_0x291801(0x232)]});_0x465140['ok']?_0x21aa49(_0x3d7582[_0x291801(0x196)]+'\x20dependencies\x20installed'):(_0x4614af(_0x793484['name']+'\x20install\x20failed:\x20'+_0x465140['stderr']),_0x4f05c1[_0x291801(0x24b)](0x1));}else{const _0x1c2eab=run(_0x4b77c2,[_0x241989[_0x291801(0x1a6)],_0x241989['uAYWb']]),_0x230620=_0x241989[_0x291801(0x165)](_0x241989[_0x291801(0x165)](_0x1c2eab['stdout'],'\x20'),_0x1c2eab['stderr']);_0x3ae121['codex']={'bin':_0x4b77c2,'loggedIn':_0x1c2eab['ok'],'email':extractEmail(_0x230620)};}}const _0xd88402=_0x241989['kLipE'](which,'gemini');if(_0xd88402){if(_0x241989[_0x291801(0x207)](_0x241989[_0x291801(0x201)],'aMIjm')){const _0x2f2e14=_0x1b90dc(_0x1de72c,[_0x241989['qunfh'],_0x291801(0x115)]),_0x5a44be=_0x241989[_0x291801(0x241)](_0x2f2e14['stdout'],'\x20')+_0x2f2e14['stderr'];_0x5bd13b['claude']={'bin':_0x41dfbd,'loggedIn':_0x2f2e14['ok'],'email':_0x445c58(_0x5a44be)};}else{let _0x5036b3=![],_0x1fc7cc='';if(_0x241989['draDS'](process['platform'],'darwin')){const _0x2971dd=_0x241989[_0x291801(0x20d)](run,_0x241989['kWBpe'],[_0x241989['RVOVk'],'-s',_0x291801(0x235),'-a',_0x241989['TQJPB']]);if(_0x2971dd['ok']){_0x5036b3=!![];try{if(_0x291801(0x110)===_0x241989[_0x291801(0x1fc)])_0x241989[_0x291801(0x15f)](_0x1a6556,'Figma\x20token:\x20'+_0x15e29f(_0x3033da));else{const _0xdefa65=run(_0x291801(0x1b6),['find-generic-password','-s','gemini-cli-oauth','-a',_0x291801(0x24c),'-w']);if(_0xdefa65['ok']&&_0xdefa65['stdout'])try{const _0xb2cb03=JSON['parse'](Buffer['from'](_0xdefa65['stdout'],'base64')['toString'](_0x241989['AQIOc']));_0x1fc7cc=_0xb2cb03['email']||_0xb2cb03['client_email']||'';}catch{try{const _0x317d51=JSON['parse'](_0xdefa65['stdout']);_0x1fc7cc=_0x317d51[_0x291801(0x176)]||_0x317d51['client_email']||'';}catch{}}}}catch{}}}if(!_0x5036b3){if('sKZnE'===_0x241989[_0x291801(0x1bc)]){const _0x1cbfb0=_0x291801(0x10e)['split']('|');let _0x2ad424=0x0;while(!![]){switch(_0x1cbfb0[_0x2ad424++]){case'0':_0x241989['kLipE'](_0x1d273c,'');continue;case'1':_0x429a55('');continue;case'2':_0x241989['kLipE'](_0x1bf450,'');continue;case'3':_0x1299ae();continue;case'4':_0x329514('\x20\x20Location:\x20'+_0x41ba2b);continue;case'5':_0x19ec16();continue;case'6':_0x241989[_0x291801(0x15f)](_0x37f42c,'\x20\x20If\x20the\x20plugin\x20is\x20open,\x20close\x20and\x20reopen\x20it\x20to\x20see\x20updates.');continue;case'7':_0x26afcd('\x20\x20Figma\x20will\x20pick\x20up\x20the\x20changes\x20automatically.');continue;case'8':_0x2c1ab4(_0x241989[_0x291801(0x231)]);continue;case'9':_0x3251d6(_0x241989[_0x291801(0x190)]);continue;}break;}}else{const _0x2a809d=[path[_0x291801(0x1a9)](os[_0x291801(0x23b)](),_0x241989['TwzaQ'],_0x241989['DoYtT']),path[_0x291801(0x1a9)](os['homedir'](),'.gemini',_0x241989['UwBLp']),path['join'](os['homedir'](),_0x241989[_0x291801(0x177)],_0x241989[_0x291801(0x112)])];for(const _0x2eb6ec of _0x2a809d){if(fs[_0x291801(0x163)](_0x2eb6ec)){_0x5036b3=!![];try{const _0x5cd222=JSON['parse'](fs[_0x291801(0x151)](_0x2eb6ec,_0x241989['AQIOc']));_0x1fc7cc=_0x5cd222[_0x291801(0x176)]||_0x5cd222[_0x291801(0x1f3)]||_0x5cd222[_0x291801(0x1cd)]&&_0x5cd222[_0x291801(0x1cd)][_0x291801(0x176)]||'';}catch{}break;}}}}_0x3ae121['gemini']={'bin':_0xd88402,'loggedIn':_0x5036b3,'email':_0x1fc7cc};}}return _0x3ae121;}function registerMcpWithClaude(_0x29d168,_0x20796f,_0x29de1f={}){const _0x4b0393=_0x502a7d,_0x71e978={'UeDFR':_0x4b0393(0x179),'iHCWs':'design-bridge','HMczh':_0x4b0393(0x271),'pAtAx':'ENABLE_DECISION_LOG=true','Tpjqf':_0x4b0393(0x1cd),'RBPbn':_0x4b0393(0x1f1)};run(_0x29d168,[_0x71e978['UeDFR'],'remove',_0x4b0393(0x1f1)]),run(_0x29d168,[_0x71e978[_0x4b0393(0x124)],_0x4b0393(0x1dd),_0x71e978['iHCWs']]);const _0x3de3e4=['-e',_0x4b0393(0x1ec)+_0x20796f,'-e',_0x71e978['HMczh'],'-e',_0x71e978[_0x4b0393(0x1e8)]];if(_0x29de1f['UNSPLASH_ACCESS_KEY'])_0x3de3e4[_0x4b0393(0x188)]('-e','UNSPLASH_ACCESS_KEY='+_0x29de1f[_0x4b0393(0x1f9)]);if(_0x29de1f[_0x4b0393(0x178)])_0x3de3e4[_0x4b0393(0x188)]('-e','PEXELS_API_KEY='+_0x29de1f[_0x4b0393(0x178)]);const _0x25f0ba=run(_0x29d168,[_0x71e978[_0x4b0393(0x124)],_0x4b0393(0x1c6),'-s',_0x71e978['Tpjqf'],..._0x3de3e4,_0x71e978['RBPbn'],'--','node',MCP_BUILD]);return _0x25f0ba['ok'];}function registerMcpWithCodex(_0x280cf4,_0x1b1df5){const _0x36a6de=_0x502a7d,_0x4d1fe7={'xEWJR':function(_0x4c20f8,_0x33cbee,_0xd9e52a){return _0x4c20f8(_0x33cbee,_0xd9e52a);},'tyglc':_0x36a6de(0x1dd),'wFZZr':'figma-intelligence-layer','nrHRy':'add','hvWAI':_0x36a6de(0x20b),'KHXfi':'ENABLE_DECISION_LOG=true','rqWEV':'node'};_0x4d1fe7['xEWJR'](run,_0x280cf4,['mcp',_0x4d1fe7[_0x36a6de(0x15e)],_0x4d1fe7['wFZZr']]);const _0x30f5b7=_0x4d1fe7[_0x36a6de(0x26f)](run,_0x280cf4,[_0x36a6de(0x179),_0x4d1fe7['nrHRy'],_0x36a6de(0x1f1),_0x4d1fe7['hvWAI'],'FIGMA_ACCESS_TOKEN='+_0x1b1df5,_0x4d1fe7['hvWAI'],'FIGMA_BRIDGE_PORT=9001',_0x4d1fe7[_0x36a6de(0x1c3)],_0x4d1fe7['KHXfi'],'--',_0x4d1fe7[_0x36a6de(0x25a)],MCP_BUILD]);return _0x30f5b7['ok'];}function registerMcpWithGemini(_0x388a29){const _0x49f70a=_0x502a7d,_0x467392={'zbFGS':'utf8','VwXOb':'9001','ESGfa':'true'},_0x5aaa05=path[_0x49f70a(0x1a9)](os[_0x49f70a(0x23b)](),'.gemini'),_0x4776d8=path['join'](_0x5aaa05,_0x49f70a(0x1d4));fs[_0x49f70a(0x1d3)](_0x5aaa05,{'recursive':!![]});let _0xeb05b0={};if(fs['existsSync'](_0x4776d8))try{_0xeb05b0=JSON[_0x49f70a(0x1a7)](fs[_0x49f70a(0x151)](_0x4776d8,_0x467392['zbFGS']));}catch{}if(!_0xeb05b0[_0x49f70a(0x1d8)])_0xeb05b0['mcpServers']={};return _0xeb05b0[_0x49f70a(0x1d8)]['figma-intelligence-layer']={'command':_0x49f70a(0x237),'args':[MCP_BUILD],'env':{'FIGMA_ACCESS_TOKEN':_0x388a29,'FIGMA_BRIDGE_PORT':_0x467392[_0x49f70a(0x1fb)],'ENABLE_DECISION_LOG':_0x467392['ESGfa']}},fs['writeFileSync'](_0x4776d8,JSON[_0x49f70a(0x18d)](_0xeb05b0,null,0x2)),!![];}function writeClaudePermissions(){const _0x29aa7f=_0x502a7d,_0x399152={'bJkGx':'settings.json','BIhfX':_0x29aa7f(0x236),'rIArq':_0x29aa7f(0x1ca)},_0x4115d1=path[_0x29aa7f(0x1a9)](os[_0x29aa7f(0x23b)](),_0x29aa7f(0x276),_0x399152['bJkGx']);let _0xd15b71={};if(fs[_0x29aa7f(0x163)](_0x4115d1))try{_0xd15b71=JSON[_0x29aa7f(0x1a7)](fs[_0x29aa7f(0x151)](_0x4115d1,_0x399152['BIhfX']));}catch{}if(!_0xd15b71['permissions'])_0xd15b71['permissions']={};if(!Array[_0x29aa7f(0x191)](_0xd15b71[_0x29aa7f(0x162)][_0x29aa7f(0x216)]))_0xd15b71['permissions'][_0x29aa7f(0x216)]=[];const _0x4f6e35=['mcp__figma-intelligence-layer__*',_0x399152[_0x29aa7f(0x1be)]];for(const _0x50fd68 of _0x4f6e35){if(!_0xd15b71['permissions'][_0x29aa7f(0x216)][_0x29aa7f(0x269)](_0x50fd68))_0xd15b71['permissions']['allow'][_0x29aa7f(0x188)](_0x50fd68);}fs[_0x29aa7f(0x1d3)](path['dirname'](_0x4115d1),{'recursive':!![]}),fs[_0x29aa7f(0x1e3)](_0x4115d1,JSON['stringify'](_0xd15b71,null,0x2));}async function cmdStart(){const _0x54050d=_0x502a7d,_0xc64029={'uAGiY':'utf8','xLVKw':'figma-intelligence-layer','ttxSD':function(_0x58b738,_0x35fb95){return _0x58b738!==_0x35fb95;},'QPLuA':'YOUR_FIGMA_TOKEN_HERE','HEVXj':function(_0x404b3d,_0x389cfc){return _0x404b3d(_0x389cfc);},'gzAlJ':function(_0x448d53){return _0x448d53();},'sbQre':function(_0x2e8248,_0x20f118){return _0x2e8248(_0x20f118);},'LdHAa':function(_0x71427f,_0x47a61f){return _0x71427f(_0x47a61f);},'uCWzG':'/usr/local/bin','pTAvF':'/usr/bin','lOGpH':'/sbin','RWXDQ':function(_0x2cae52,_0x10e2b8){return _0x2cae52+_0x10e2b8;},'NtakU':function(_0x3dd0be,_0x441cf8){return _0x3dd0be(_0x441cf8);},'MUiAR':function(_0x245bbb,_0x19427f){return _0x245bbb(_0x19427f);},'HYgCa':function(_0x45fde4,_0x3e86ea){return _0x45fde4(_0x3e86ea);},'gCysz':function(_0x13c65c,_0x103395){return _0x13c65c(_0x103395);},'OiDsW':'\x20\x20claude\x20login','MWFYV':function(_0x498b86,_0x52cf9f){return _0x498b86(_0x52cf9f);},'TMfga':_0x54050d(0x253)};ensureDataDir();const _0x2d02e1=_0xc64029['gzAlJ'](getRelayPid);if(_0x2d02e1){_0xc64029['sbQre'](success,'Relay\x20already\x20running\x20(PID:\x20'+_0x2d02e1+')'),_0xc64029[_0x54050d(0x25b)](log,_0x54050d(0x222)+PORT),log(_0x54050d(0x1f7)+LOG_FILE);return;}if(isPortInUse(PORT)){warn(_0x54050d(0x12b)+PORT+'\x20is\x20already\x20in\x20use\x20by\x20another\x20process.'),_0xc64029[_0x54050d(0x215)](info,_0x54050d(0x256));return;}if(!fs['existsSync'](RELAY_SCRIPT)){fail('Bridge\x20relay\x20not\x20found.\x20Run\x20\x27npx\x20figma-intelligence\x20setup\x27\x20first.');return;}const _0xd8c2bf=_0xc64029['gzAlJ'](detectCLIs),_0x907708=new Set([_0xc64029['uCWzG'],_0xc64029[_0x54050d(0x261)],_0x54050d(0x1da),_0x54050d(0x238),_0xc64029[_0x54050d(0x221)]]);if(_0xd8c2bf['claude'])_0x907708[_0x54050d(0x1c6)](path[_0x54050d(0x17c)](_0xd8c2bf['claude']['bin']));if(_0xd8c2bf[_0x54050d(0x1ee)])_0x907708[_0x54050d(0x1c6)](path[_0x54050d(0x17c)](_0xd8c2bf['codex']['bin']));if(_0xd8c2bf[_0x54050d(0x26c)])_0x907708[_0x54050d(0x1c6)](path[_0x54050d(0x17c)](_0xd8c2bf['gemini'][_0x54050d(0x20f)]));const _0x329077={...process.env,'HOME':os['homedir'](),'PATH':_0xc64029[_0x54050d(0x129)]([..._0x907708]['join'](':')+':',process.env.PATH||'')};if(_0xd8c2bf['claude'])_0x329077[_0x54050d(0x145)]=_0xd8c2bf['claude'][_0x54050d(0x20f)];if(_0xd8c2bf['codex'])_0x329077['CODEX_BIN_PATH']=_0xd8c2bf[_0x54050d(0x1ee)]['bin'];if(_0xd8c2bf[_0x54050d(0x26c)])_0x329077[_0x54050d(0x138)]=_0xd8c2bf['gemini'][_0x54050d(0x20f)];log(''),_0xc64029['LdHAa'](log,_0x54050d(0x146));const _0x45ec6b=fs['openSync'](LOG_FILE,'a'),_0x502737=spawn(_0x54050d(0x237),[RELAY_SCRIPT],{'cwd':BRIDGE_DIR,'env':_0x329077,'detached':!![],'stdio':[_0x54050d(0x255),_0x45ec6b,_0x45ec6b]});_0x502737[_0x54050d(0x173)](),fs['writeFileSync'](PID_FILE,_0xc64029[_0x54050d(0x200)](String,_0x502737['pid'])),await new Promise(_0x209db7=>setTimeout(_0x209db7,0x7d0));if(getRelayPid()){_0xc64029[_0x54050d(0x200)](success,_0x54050d(0x247)+_0x502737[_0x54050d(0x1fe)]+')'),_0xc64029['MUiAR'](log,_0x54050d(0x222)+PORT),log(_0x54050d(0x1f7)+LOG_FILE),_0xc64029['HYgCa'](log,'');const _0x34fa00=Object[_0x54050d(0x153)](_0xd8c2bf)[_0x54050d(0x228)](_0x5ea99e=>_0x5ea99e['loggedIn']);if(_0x34fa00){_0xc64029[_0x54050d(0x183)](log,_0x54050d(0x184));if(_0xd8c2bf[_0x54050d(0x198)]?.[_0x54050d(0x266)])success('Claude'+(_0xd8c2bf['claude']['email']?'\x20('+_0xd8c2bf['claude'][_0x54050d(0x176)]+')':''));if(_0xd8c2bf[_0x54050d(0x1ee)]?.['loggedIn'])_0xc64029[_0x54050d(0x19f)](success,'OpenAI\x20Codex'+(_0xd8c2bf['codex'][_0x54050d(0x176)]?'\x20('+_0xd8c2bf['codex']['email']+')':''));if(_0xd8c2bf['gemini']?.['loggedIn'])_0xc64029[_0x54050d(0x19f)](success,_0x54050d(0x130)+(_0xd8c2bf[_0x54050d(0x26c)]['email']?'\x20('+_0xd8c2bf['gemini'][_0x54050d(0x176)]+')':''));}else{if(_0x54050d(0x11d)==='ixANB')warn(_0x54050d(0x186)),info(_0xc64029[_0x54050d(0x11b)]),_0xc64029[_0x54050d(0x16d)](info,'\x20\x20codex\x20login'),info('\x20\x20gemini');else{const _0x11c37a=_0x13d61d['parse'](_0x367f76[_0x54050d(0x151)](_0x4b71fc,_0xc64029['uAGiY'])),_0x5b88f2=_0x11c37a?.[_0x54050d(0x1d8)]?.[_0xc64029[_0x54050d(0x174)]]?.[_0x54050d(0x205)]?.[_0x54050d(0x1c9)]||'';_0x5b88f2&&_0xc64029['ttxSD'](_0x5b88f2,_0xc64029['QPLuA'])?_0xc64029['HEVXj'](_0x423e95,_0x54050d(0x134)+_0x3e1814(_0x5b88f2)):_0x47dfaf(_0x54050d(0x212));}}log(''),log(_0x54050d(0x131));}else fail(_0xc64029[_0x54050d(0x1f8)]),log('\x20\x20'+LOG_FILE);}function cmdStop(){const _0x23cd8d=_0x502a7d,_0x3a4c67={'DZRCJ':function(_0x7c2a13,_0xfe8461){return _0x7c2a13(_0xfe8461);},'paPTW':function(_0x552e3c){return _0x552e3c();},'tHbZa':_0x23cd8d(0x1c7),'luYkC':function(_0xb5d379,_0x23bba3){return _0xb5d379===_0x23bba3;},'quWik':_0x23cd8d(0x25f),'SMbHL':function(_0x44f858,_0x361fe1){return _0x44f858===_0x361fe1;},'NdqpO':'fJynp','MnGrZ':function(_0x191c6b,_0x1a870a,_0xb1683f){return _0x191c6b(_0x1a870a,_0xb1683f);},'lKfYd':_0x23cd8d(0x17f),'MKCOn':function(_0x2f8f9f,_0x4ca1b6){return _0x2f8f9f(_0x4ca1b6);},'usFuh':function(_0x304cdd,_0xef4ad2){return _0x304cdd(_0xef4ad2);}};let _0x5dfa73=![];const _0x395ea8=_0x3a4c67[_0x23cd8d(0x264)](getRelayPid);if(_0x395ea8){try{process['kill'](_0x395ea8,_0x3a4c67['tHbZa']),_0x5dfa73=!![],_0x3a4c67[_0x23cd8d(0x277)](success,'Stopped\x20relay\x20(PID:\x20'+_0x395ea8+')');}catch(_0x53c19e){_0x3a4c67['DZRCJ'](warn,'Could\x20not\x20stop\x20PID\x20'+_0x395ea8+':\x20'+_0x53c19e['message']);}try{fs['unlinkSync'](PID_FILE);}catch{}}_0x3a4c67[_0x23cd8d(0x22b)](process[_0x23cd8d(0x26b)],_0x3a4c67['quWik'])&&fs['existsSync'](PLIST_PATH)&&(_0x3a4c67['SMbHL'](_0x3a4c67['NdqpO'],'fJynp')?(_0x3a4c67[_0x23cd8d(0x22f)](run,_0x23cd8d(0x16e),[_0x3a4c67[_0x23cd8d(0x133)],PLIST_PATH]),_0x3a4c67['MKCOn'](info,'Unloaded\x20launchd\x20service'),_0x5dfa73=!![]):_0x3a4c67[_0x23cd8d(0x277)](_0x3bc70c,_0x12dfcb)?_0x3a4c67[_0x23cd8d(0x277)](_0x515b92,'Registered\x20with\x20Gemini\x20CLI'):_0x4ae10f(_0x23cd8d(0x257)));const _0xf40764=run(_0x23cd8d(0x126),['-f','bridge-relay.js']);if(_0xf40764['ok'])_0x5dfa73=!![];_0x5dfa73?_0x3a4c67[_0x23cd8d(0x277)](success,'Relay\x20stopped'):_0x3a4c67['usFuh'](info,'No\x20relay\x20process\x20found');}function cmdStatus(){const _0x399ac7=_0x502a7d,_0x270174={'CFsLW':function(_0x271664,_0x3f1e4a){return _0x271664(_0x3f1e4a);},'IHbuh':'Could\x20not\x20register\x20with\x20Claude\x20Code','DrsrP':function(_0x215704,_0x39630a){return _0x215704(_0x39630a);},'ueIHD':_0x399ac7(0x233),'FrwAU':function(_0x3ad65c,_0x3ca0ba){return _0x3ad65c(_0x3ca0ba);},'nHeff':'LBhJD','IxjyV':function(_0x35d456,_0x38f8d9){return _0x35d456(_0x38f8d9);},'ZOXaH':function(_0x25490a,_0x109cac){return _0x25490a(_0x109cac);},'SGvQC':function(_0x3ad993){return _0x3ad993();},'ZjctH':_0x399ac7(0x1d6),'TlQTN':_0x399ac7(0x21a),'hMWdz':function(_0x2d5243,_0xfff9b7){return _0x2d5243===_0xfff9b7;},'SuXfc':'OpenAI\x20Codex:\x20not\x20installed\x20(npm\x20i\x20-g\x20@openai/codex)','yNWiD':function(_0x54dd75,_0x4925c4){return _0x54dd75!==_0x4925c4;},'kcwsJ':_0x399ac7(0x144),'WcxWo':_0x399ac7(0x25c),'xQQwZ':function(_0x569948,_0x1873f2){return _0x569948(_0x1873f2);},'BVxOG':_0x399ac7(0x20c),'LMjdd':function(_0x28d815,_0x3dc212){return _0x28d815(_0x3dc212);},'neHNg':'.claude','uiqWo':function(_0x72d682,_0x539881){return _0x72d682!==_0x539881;},'yrMuT':'YOUR_FIGMA_TOKEN_HERE','hSLBn':function(_0x230332,_0x145776){return _0x230332(_0x145776);},'Azxcz':'Figma\x20token:\x20not\x20set','wMvaO':function(_0x40abd5,_0x4410d1){return _0x40abd5(_0x4410d1);},'BEhiP':'Could\x20not\x20read\x20Claude\x20settings','EEHIX':function(_0x49bcf1,_0x56b03c){return _0x49bcf1(_0x56b03c);}};log(''),_0x270174[_0x399ac7(0x16c)](log,_0x270174['ueIHD']),_0x270174[_0x399ac7(0x16c)](log,'='[_0x399ac7(0x1eb)](0x32)),log('');const _0x427fee=getRelayPid(),_0x2b520d=_0x270174['FrwAU'](isPortInUse,PORT);if(_0x427fee)_0x270174[_0x399ac7(0x1b4)]!==_0x270174[_0x399ac7(0x1b4)]?_0x2e1bc5[_0x399ac7(0x14b)](_0x54209e,_0x54c830['join'](_0xf6547a,_0x58af5c)):_0x270174['CFsLW'](success,'Relay:\x20RUNNING\x20(PID:\x20'+_0x427fee+_0x399ac7(0x172)+PORT+')');else _0x2b520d?_0x270174[_0x399ac7(0x26d)](warn,'Relay:\x20Port\x20'+PORT+_0x399ac7(0x114)):'uuVdw'!=='jTmaG'?_0x270174[_0x399ac7(0x16c)](fail,'Relay:\x20NOT\x20RUNNING'):_0x270174[_0x399ac7(0x125)](_0x1980df,_0x399ac7(0x1ba)+(_0x3e17bb['claude']['email']?'\x20as\x20'+_0x137a6b[_0x399ac7(0x198)]['email']:''));fs['existsSync'](MCP_BUILD)?success('MCP\x20server:\x20BUILT'):fail('MCP\x20server:\x20NOT\x20BUILT\x20(run\x20\x27npx\x20figma-intelligence\x20setup\x27)');_0x270174[_0x399ac7(0x23c)](log,'');const _0x1bc1a1=_0x270174[_0x399ac7(0x16f)](detectCLIs);log('AI\x20Providers:');_0x1bc1a1[_0x399ac7(0x198)]?_0x399ac7(0x1d6)!==_0x270174[_0x399ac7(0x1e2)]?_0xdfb672(_0x30bb27['claude'][_0x399ac7(0x20f)],_0x503242)?_0x508370('Registered\x20with\x20Claude\x20Code'):_0x524168(_0x270174['IHbuh']):_0x1bc1a1['claude']['loggedIn']?_0x270174['FrwAU'](success,'Claude:\x20logged\x20in'+(_0x1bc1a1[_0x399ac7(0x198)][_0x399ac7(0x176)]?_0x399ac7(0x1bf)+_0x1bc1a1['claude'][_0x399ac7(0x176)]:'')):warn(_0x270174['TlQTN']):info('Claude:\x20not\x20installed\x20(https://claude.ai/download)');_0x1bc1a1[_0x399ac7(0x1ee)]?_0x1bc1a1['codex'][_0x399ac7(0x266)]?_0x270174['DrsrP'](success,'OpenAI\x20Codex:\x20logged\x20in'+(_0x1bc1a1[_0x399ac7(0x1ee)]['email']?_0x399ac7(0x1bf)+_0x1bc1a1['codex']['email']:'')):_0x270174[_0x399ac7(0x14f)](_0x399ac7(0x141),'fZpmn')?_0x270174[_0x399ac7(0x125)](_0x4b40d8,'\x20\x20'+_0x366547+'\x20issue(s)\x20found.\x20Fix\x20them\x20and\x20run\x20doctor\x20again.'):warn('OpenAI\x20Codex:\x20installed\x20but\x20not\x20logged\x20in\x20(run\x20\x27codex\x20login\x27)'):info(_0x270174['SuXfc']);_0x1bc1a1[_0x399ac7(0x26c)]?_0x1bc1a1[_0x399ac7(0x26c)][_0x399ac7(0x266)]?_0x270174['yNWiD']('DmjtG',_0x270174['kcwsJ'])?success(_0x399ac7(0x1d2)+(_0x1bc1a1['gemini']['email']?'\x20as\x20'+_0x1bc1a1['gemini']['email']:'')):(_0x270174[_0x399ac7(0x125)](_0x48e2f2,'Relay\x20not\x20running\x20(run\x20\x27npx\x20figma-intelligence\x20start\x27)'),_0x2cbec1++):warn(_0x270174['WcxWo']):_0x270174['xQQwZ'](info,_0x270174[_0x399ac7(0x19b)]);_0x270174[_0x399ac7(0x197)](log,'');const _0x401964=path[_0x399ac7(0x1a9)](os[_0x399ac7(0x23b)](),_0x270174['neHNg'],'settings.json');if(fs['existsSync'](_0x401964))try{const _0x349ff2=JSON[_0x399ac7(0x1a7)](fs['readFileSync'](_0x401964,_0x399ac7(0x236))),_0x3525d0=_0x349ff2?.['mcpServers']?.[_0x399ac7(0x1f1)]?.['env']?.[_0x399ac7(0x1c9)]||'';_0x3525d0&&_0x270174[_0x399ac7(0x193)](_0x3525d0,_0x270174[_0x399ac7(0x1a0)])?success('Figma\x20token:\x20'+_0x270174['hSLBn'](maskToken,_0x3525d0)):_0x270174['IxjyV'](warn,_0x270174[_0x399ac7(0x1b9)]);}catch{_0x270174[_0x399ac7(0x199)](warn,_0x270174[_0x399ac7(0x1b0)]);}_0x270174[_0x399ac7(0x234)](log,'');}function cmdDoctor(){const _0x58307f=_0x502a7d,_0x2024f7={'gESUD':_0x58307f(0x227),'QcWGH':function(_0x17ee11,_0x52f2e5){return _0x17ee11(_0x52f2e5);},'ZHxEu':'Codex\x20CLI\x20installed\x20but\x20not\x20logged\x20in.','utHFz':'Run\x20\x27codex\x20login\x27\x20to\x20authenticate','fAFZn':_0x58307f(0x18b),'LVRtr':'Bridge\x20relay\x20dependencies\x20installed','PDjeN':'Bridge\x20relay\x20dependencies\x20missing\x20(run\x20\x27npx\x20figma-intelligence\x20setup\x27)','kTiyv':_0x58307f(0x24d),'IgSWG':function(_0x573ada,_0x164e2a){return _0x573ada(_0x164e2a);},'ePFJK':'MCP\x20server\x20dependencies\x20missing\x20(run\x20\x27npx\x20figma-intelligence\x20setup\x27)','xCfKF':function(_0x54ff79,_0x228d97){return _0x54ff79!==_0x228d97;},'lLAdC':_0x58307f(0x249),'OyLTA':function(_0x54b4b8){return _0x54b4b8();},'AppcQ':function(_0xc86753,_0x53a91f){return _0xc86753>_0x53a91f;},'CJdTq':_0x58307f(0x140),'kjHbv':function(_0x594d0b,_0x1b099a){return _0x594d0b(_0x1b099a);},'vFdwa':_0x58307f(0x21b),'HNyWY':function(_0x1eeabf,_0x169ab7,_0x4dd390,_0x5b0d1f){return _0x1eeabf(_0x169ab7,_0x4dd390,_0x5b0d1f);},'vzSgR':'node','UQsyn':_0x58307f(0x242),'HYsss':_0x58307f(0x1f0),'ivrXF':function(_0x232356,_0xfcb59c){return _0x232356(_0xfcb59c);}};log(''),_0x2024f7['QcWGH'](log,'Figma\x20Intelligence\x20Doctor'),_0x2024f7[_0x58307f(0x13f)](log,'='[_0x58307f(0x1eb)](0x32)),_0x2024f7['QcWGH'](log,'');let _0x514e38=0x0;const _0x5e5c5a=process[_0x58307f(0x259)],_0x3ea7ae=parseInt(_0x5e5c5a['slice'](0x1),0xa);_0x3ea7ae>=0x12?_0x2024f7['QcWGH'](success,_0x58307f(0x19c)+_0x5e5c5a):(fail(_0x58307f(0x19c)+_0x5e5c5a+_0x58307f(0x150)),_0x514e38++);const _0x23e259=path[_0x58307f(0x1a9)](BRIDGE_DIR,_0x58307f(0x224)),_0x548942=path[_0x58307f(0x1a9)](MCP_SRC,'node_modules');fs[_0x58307f(0x163)](_0x23e259)?_0x2024f7['fAFZn']===_0x2024f7[_0x58307f(0x17b)]?success(_0x2024f7['LVRtr']):(_0xbc0d37(_0x2024f7[_0x58307f(0x219)]),_0x15fb69('')):(fail(_0x2024f7['PDjeN']),_0x514e38++);fs['existsSync'](_0x548942)?success(_0x2024f7['kTiyv']):(_0x2024f7[_0x58307f(0x194)](fail,_0x2024f7['ePFJK']),_0x514e38++);fs['existsSync'](MCP_BUILD)?success('MCP\x20server\x20built'):(fail('MCP\x20server\x20not\x20built'),_0x514e38++);const _0x38511f=getRelayPid();if(_0x38511f)success('Relay\x20running\x20(PID:\x20'+_0x38511f+')');else _0x2024f7[_0x58307f(0x13f)](isPortInUse,PORT)?(warn('Port\x20'+PORT+'\x20in\x20use\x20but\x20not\x20by\x20our\x20relay'),_0x514e38++):_0x2024f7['xCfKF'](_0x2024f7[_0x58307f(0x1fa)],_0x2024f7[_0x58307f(0x1fa)])?(_0x2024f7[_0x58307f(0x13f)](_0x5b43fd,_0x2024f7['ZHxEu']),_0xd5d0e3(_0x2024f7[_0x58307f(0x189)])):(fail('Relay\x20not\x20running\x20(run\x20\x27npx\x20figma-intelligence\x20start\x27)'),_0x514e38++);const _0x474baf=_0x2024f7['OyLTA'](detectCLIs),_0x4f178e=_0x2024f7['AppcQ'](Object[_0x58307f(0x225)](_0x474baf)['length'],0x0),_0x430fd2=Object['values'](_0x474baf)['some'](_0x1472fb=>_0x1472fb[_0x58307f(0x266)]);if(!_0x4f178e)fail(_0x2024f7['CJdTq']),_0x514e38++;else!_0x430fd2?(_0x2024f7[_0x58307f(0x152)](fail,_0x58307f(0x12e)),_0x514e38++):success('AI\x20provider(s)\x20authenticated');try{require(path['join'](MCP_SRC,'node_modules','sharp')),success(_0x2024f7[_0x58307f(0x170)]);}catch{warn('Sharp\x20module\x20not\x20loadable\x20(some\x20vision\x20tools\x20may\x20not\x20work)');}if(fs['existsSync'](MCP_BUILD)){log(_0x58307f(0x19a));const _0x3f2d39=_0x2024f7['HNyWY'](run,_0x2024f7['vzSgR'],['-e','\x0a\x20\x20\x20\x20\x20\x20const\x20{\x20spawn\x20}\x20=\x20require(\x27child_process\x27);\x0a\x20\x20\x20\x20\x20\x20const\x20p\x20=\x20spawn(\x27node\x27,\x20[\x27'+MCP_BUILD+'\x27],\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20env:\x20{\x20...process.env,\x20FIGMA_ACCESS_TOKEN:\x20\x27test\x27,\x20FIGMA_BRIDGE_PORT:\x20\x270\x27\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20stdio:\x20[\x27pipe\x27,\x20\x27pipe\x27,\x20\x27pipe\x27]\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20const\x20msg\x20=\x20JSON.stringify({\x20jsonrpc:\x20\x272.0\x27,\x20id:\x201,\x20method:\x20\x27initialize\x27,\x20params:\x20{\x20protocolVersion:\x20\x272024-11-05\x27,\x20capabilities:\x20{},\x20clientInfo:\x20{\x20name:\x20\x27doctor\x27,\x20version:\x20\x271.0.0\x27\x20}\x20}\x20});\x0a\x20\x20\x20\x20\x20\x20let\x20responded\x20=\x20false;\x0a\x20\x20\x20\x20\x20\x20p.stdout.on(\x27data\x27,\x20()\x20=>\x20{\x20if\x20(!responded)\x20{\x20responded\x20=\x20true;\x20console.log(\x27ok\x27);\x20p.kill();\x20}\x20});\x0a\x20\x20\x20\x20\x20\x20p.stdin.write(msg\x20+\x20\x27\x5cn\x27);\x0a\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20{\x20if\x20(!responded)\x20console.log(\x27timeout\x27);\x20p.kill();\x20process.exit(0);\x20},\x205000);\x0a\x20\x20\x20\x20'],{'timeout':0x1f40});_0x3f2d39[_0x58307f(0x147)]['includes']('ok')?success('MCP\x20server\x20responds\x20to\x20handshake'):(_0x2024f7['QcWGH'](fail,_0x2024f7['UQsyn']),_0x514e38++);}_0x2024f7[_0x58307f(0x152)](log,''),_0x514e38===0x0?log(_0x2024f7[_0x58307f(0x157)]):_0x2024f7[_0x58307f(0x181)](log,'\x20\x20'+_0x514e38+_0x58307f(0x185)),_0x2024f7[_0x58307f(0x152)](log,'');}function _0x385c(_0x1ae0d1,_0x177ac2){_0x1ae0d1=_0x1ae0d1-0x10b;const _0x19396f=_0x1939();let _0x385ca5=_0x19396f[_0x1ae0d1];if(_0x385c['oXcFgb']===undefined){var _0x2b4e63=function(_0x42f98c){const _0x522210='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45d1eb='',_0x514bd1='';for(let _0x21d218=0x0,_0x36c76c,_0x5f1dbf,_0x321ad5=0x0;_0x5f1dbf=_0x42f98c['charAt'](_0x321ad5++);~_0x5f1dbf&&(_0x36c76c=_0x21d218%0x4?_0x36c76c*0x40+_0x5f1dbf:_0x5f1dbf,_0x21d218++%0x4)?_0x45d1eb+=String['fromCharCode'](0xff&_0x36c76c>>(-0x2*_0x21d218&0x6)):0x0){_0x5f1dbf=_0x522210['indexOf'](_0x5f1dbf);}for(let _0x738be6=0x0,_0x6ca673=_0x45d1eb['length'];_0x738be6<_0x6ca673;_0x738be6++){_0x514bd1+='%'+('00'+_0x45d1eb['charCodeAt'](_0x738be6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x514bd1);};_0x385c['wMYZMK']=_0x2b4e63,_0x385c['ZagEjM']={},_0x385c['oXcFgb']=!![];}const _0x525134=_0x19396f[0x0],_0x3a39d6=_0x1ae0d1+_0x525134,_0x321b7e=_0x385c['ZagEjM'][_0x3a39d6];return!_0x321b7e?(_0x385ca5=_0x385c['wMYZMK'](_0x385ca5),_0x385c['ZagEjM'][_0x3a39d6]=_0x385ca5):_0x385ca5=_0x321b7e,_0x385ca5;}async function cmdSetup(){const _0x64f39c=_0x502a7d,_0x5c48d2={'AzfAW':function(_0x4a2a5d,_0x562ae8){return _0x4a2a5d===_0x562ae8;},'fyMIV':'MCP\x20server\x20built','kZZBb':'figma-intelligence-layer','BBNLv':function(_0x2a8fc0,_0x302dc0){return _0x2a8fc0!==_0x302dc0;},'SLeMW':function(_0x11467f,_0x328e25){return _0x11467f(_0x328e25);},'rlHqD':_0x64f39c(0x121),'BcbWD':function(_0x54d9b2,_0x227bd7){return _0x54d9b2<_0x227bd7;},'ouhIG':_0x64f39c(0x203),'eUibF':function(_0x404750,_0x202128){return _0x404750(_0x202128);},'MLkyf':function(_0x1afe1c,_0x5cf5de){return _0x1afe1c(_0x5cf5de);},'RCxtC':_0x64f39c(0x1b7),'dFaWu':function(_0x2d6ab5,_0xa1a64f){return _0x2d6ab5(_0xa1a64f);},'qYEBy':'Claude\x20CLI\x20not\x20found.\x20Install\x20from:\x20https://claude.ai/download','GyuPf':'Run\x20\x27codex\x20login\x27\x20to\x20authenticate','PwUAb':function(_0x56e8ec,_0x2eae3a){return _0x56e8ec(_0x2eae3a);},'OicNm':function(_0x16f858,_0x449bd9){return _0x16f858!==_0x449bd9;},'XwiKS':_0x64f39c(0x1c0),'SfSnA':'Run\x20\x27gemini\x27\x20to\x20authenticate\x20via\x20Google','skoIw':function(_0x31078d,_0x294509){return _0x31078d(_0x294509);},'QmYJM':_0x64f39c(0x15c),'tEeKA':function(_0x1d4dce,_0x1dd05c){return _0x1d4dce(_0x1dd05c);},'SVVHH':function(_0x4ce35c,_0x217585){return _0x4ce35c(_0x217585);},'tWfKc':'No\x20AI\x20provider\x20is\x20logged\x20in.\x20Log\x20in\x20to\x20at\x20least\x20one:','VqKQL':_0x64f39c(0x1b8),'YzFDo':'MCP\x20server','qATno':function(_0x486b6c,_0x26739b){return _0x486b6c(_0x26739b);},'KDnDn':function(_0x1abb23,_0x552ca1){return _0x1abb23(_0x552ca1);},'vXrCI':function(_0x197a3f,_0xcb6bb){return _0x197a3f===_0xcb6bb;},'RzAcb':_0x64f39c(0x244),'qRGmW':'Building\x20MCP\x20server...','dgGkf':function(_0x16da9d,_0x3cb966,_0x4febf3,_0x516245){return _0x16da9d(_0x3cb966,_0x4febf3,_0x516245);},'rIhqT':_0x64f39c(0x209),'ukSoE':'run','hEWGg':function(_0x233bde,_0x41b041){return _0x233bde(_0x41b041);},'TjrLl':'Figma\x20Personal\x20Access\x20Token','hNnIC':function(_0x594ce0,_0x505c20){return _0x594ce0(_0x505c20);},'fejZr':'Required\x20to\x20read\x20your\x20Figma\x20files.','fSIHw':_0x64f39c(0x23e),'hxrMW':_0x64f39c(0x180),'lCweU':_0x64f39c(0x236),'sBAFI':function(_0x576da7,_0x4fa8fe){return _0x576da7!==_0x4fa8fe;},'XCIfI':_0x64f39c(0x275),'bXzpE':'pAdrf','SDcGd':function(_0x2bab58,_0x1a3098){return _0x2bab58(_0x1a3098);},'LCKcr':_0x64f39c(0x1b1),'aTVSv':function(_0x550186,_0x470a66){return _0x550186(_0x470a66);},'VGmyn':_0x64f39c(0x21e),'UAHOk':_0x64f39c(0x136),'lIayY':_0x64f39c(0x19e),'lzBIJ':function(_0x375630,_0x2f9083,_0x22a732){return _0x375630(_0x2f9083,_0x22a732);},'JTXWo':_0x64f39c(0x260),'PFaqc':function(_0xbe0aca,_0x24cfea){return _0xbe0aca!==_0x24cfea;},'EaxsV':function(_0xdb7217,_0x2e1cff){return _0xdb7217(_0x2e1cff);},'HSPoO':function(_0x759d0d,_0x3493e2){return _0x759d0d(_0x3493e2);},'FMJhS':'Starting\x20relay\x20server...','IiMWV':function(_0x57ecc2,_0x234306){return _0x57ecc2===_0x234306;},'Shaab':'lRmOu','LcEok':function(_0x343601,_0x107c11){return _0x343601(_0x107c11);},'Dxykp':'\x20\x20Install\x20as\x20login\x20service\x20(auto-starts\x20on\x20reboot)?\x20[Y/n]:\x20','PemAe':function(_0x300dbb,_0x4f8477){return _0x300dbb(_0x4f8477);},'ZKZZR':'Copying\x20plugin\x20files...','vkJQM':'\x20\x20Setup\x20complete!','FZExw':function(_0x49978f){return _0x49978f();},'iKAIS':function(_0x11a226,_0x1e7626){return _0x11a226(_0x1e7626);},'IvVVi':_0x64f39c(0x148),'SoNEV':function(_0x4eb981,_0x1ffe03){return _0x4eb981(_0x1ffe03);},'PGXMV':_0x64f39c(0x143)};log(''),log('┌─────────────────────────────────────────────────────┐'),log('│\x20\x20\x20\x20\x20\x20\x20\x20Figma\x20Intelligence\x20—\x20Setup\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20│'),_0x5c48d2[_0x64f39c(0x258)](log,_0x5c48d2['rlHqD']),log(''),ensureDataDir();const _0x1de6d6=parseInt(process['version'][_0x64f39c(0x187)](0x1),0xa);_0x5c48d2[_0x64f39c(0x22a)](_0x1de6d6,0x12)&&('DWXUL'!==_0x5c48d2[_0x64f39c(0x1e4)]?(fail(_0x64f39c(0x19c)+process['version']+'\x20is\x20too\x20old.\x20Install\x20Node.js\x2018+\x20from\x20https://nodejs.org'),process[_0x64f39c(0x24b)](0x1)):_0x738be6[_0x64f39c(0x1b3)](_0x64f39c(0x226)+_0x6ca673));success(_0x64f39c(0x19c)+process['version']),log(''),_0x5c48d2[_0x64f39c(0x1de)](log,_0x64f39c(0x20e));const _0x33c320=detectCLIs();_0x33c320[_0x64f39c(0x198)]?_0x33c320['claude'][_0x64f39c(0x266)]?_0x5c48d2['SLeMW'](success,'Claude\x20logged\x20in'+(_0x33c320[_0x64f39c(0x198)]['email']?_0x64f39c(0x1bf)+_0x33c320['claude']['email']:'')):(_0x5c48d2[_0x64f39c(0x1d5)](warn,_0x5c48d2['RCxtC']),_0x5c48d2[_0x64f39c(0x12a)](info,'Run\x20\x27claude\x20login\x27\x20to\x20authenticate')):info(_0x5c48d2[_0x64f39c(0x123)]);_0x33c320['codex']?_0x33c320[_0x64f39c(0x1ee)][_0x64f39c(0x266)]?success('Codex\x20logged\x20in'+(_0x33c320['codex'][_0x64f39c(0x176)]?_0x64f39c(0x1bf)+_0x33c320['codex']['email']:'')):(warn('Codex\x20CLI\x20installed\x20but\x20not\x20logged\x20in.'),info(_0x5c48d2[_0x64f39c(0x127)])):_0x5c48d2[_0x64f39c(0x263)](info,_0x64f39c(0x202));_0x33c320[_0x64f39c(0x26c)]?_0x33c320[_0x64f39c(0x26c)]['loggedIn']?_0x5c48d2['OicNm']('PjZrO','PjZrO')?_0x562b79('Codex\x20logged\x20in'+(_0x329a7c['codex'][_0x64f39c(0x176)]?'\x20as\x20'+_0x41b49e['codex'][_0x64f39c(0x176)]:'')):success('Gemini\x20logged\x20in'+(_0x33c320[_0x64f39c(0x26c)][_0x64f39c(0x176)]?'\x20as\x20'+_0x33c320[_0x64f39c(0x26c)]['email']:'')):(warn(_0x5c48d2['XwiKS']),_0x5c48d2['eUibF'](info,_0x5c48d2['SfSnA'])):_0x5c48d2['skoIw'](info,_0x64f39c(0x192));const _0x364f84=Object['values'](_0x33c320)['some'](_0x4253cc=>_0x4253cc['loggedIn']);if(!Object['keys'](_0x33c320)[_0x64f39c(0x1d9)]){const _0x190c50=_0x64f39c(0x128)['split']('|');let _0x22b858=0x0;while(!![]){switch(_0x190c50[_0x22b858++]){case'0':fail(_0x5c48d2[_0x64f39c(0x17a)]);continue;case'1':process[_0x64f39c(0x24b)](0x1);continue;case'2':_0x5c48d2['dFaWu'](info,'\x20\x20Claude:\x20\x20\x20\x20\x20\x20\x20https://claude.ai/download');continue;case'3':log('');continue;case'4':_0x5c48d2['tEeKA'](info,'\x20\x20Gemini\x20CLI:\x20\x20\x20npm\x20i\x20-g\x20@google/gemini-cli');continue;case'5':_0x5c48d2['SVVHH'](info,'\x20\x20OpenAI\x20Codex:\x20npm\x20i\x20-g\x20@openai/codex');continue;}break;}}if(!_0x364f84){_0x5c48d2['tEeKA'](log,''),fail(_0x5c48d2[_0x64f39c(0x17d)]);if(_0x33c320['claude'])info(_0x5c48d2['VqKQL']);if(_0x33c320['codex'])_0x5c48d2[_0x64f39c(0x1d5)](info,'\x20\x20codex\x20login');if(_0x33c320[_0x64f39c(0x26c)])info('\x20\x20gemini');process['exit'](0x1);}log(''),_0x5c48d2[_0x64f39c(0x14a)](log,_0x64f39c(0x1dc));const _0x3804a8=[{'name':_0x64f39c(0x25d),'dir':BRIDGE_DIR},{'name':_0x5c48d2['YzFDo'],'dir':MCP_SRC}];fs[_0x64f39c(0x163)](DESIGN_BRIDGE_DIR)&&_0x3804a8[_0x64f39c(0x188)]({'name':_0x64f39c(0x18e),'dir':DESIGN_BRIDGE_DIR});for(const _0x34cc8e of _0x3804a8){_0x5c48d2[_0x64f39c(0x16a)](log,'\x20\x20Installing\x20'+_0x34cc8e[_0x64f39c(0x196)]+'...');const _0x22197e=run(_0x64f39c(0x209),['install'],{'cwd':_0x34cc8e['dir']});if(_0x22197e['ok'])_0x5c48d2['KDnDn'](success,_0x34cc8e[_0x64f39c(0x196)]+'\x20dependencies\x20installed');else{if(_0x5c48d2[_0x64f39c(0x229)](_0x5c48d2['RzAcb'],_0x5c48d2[_0x64f39c(0x1e1)]))fail(_0x34cc8e[_0x64f39c(0x196)]+_0x64f39c(0x10f)+_0x22197e[_0x64f39c(0x122)]),process['exit'](0x1);else{const _0x3658ff=_0x31120c(_0x588986,_0x594c9b,{'encoding':_0x64f39c(0x236),'shell':!![],..._0x5da679});return{'ok':MhVEne[_0x64f39c(0x111)](_0x3658ff[_0x64f39c(0x115)],0x0),'stdout':(_0x3658ff[_0x64f39c(0x147)]||'')[_0x64f39c(0x18c)](),'stderr':(_0x3658ff['stderr']||'')[_0x64f39c(0x18c)]()};}}}log(''),_0x5c48d2[_0x64f39c(0x12a)](log,_0x5c48d2[_0x64f39c(0x14d)]);const _0x6498ee=_0x5c48d2['dgGkf'](run,_0x5c48d2['rIhqT'],[_0x5c48d2['ukSoE'],'build'],{'cwd':MCP_SRC});_0x6498ee['ok']?_0x5c48d2[_0x64f39c(0x16a)](success,_0x5c48d2['fyMIV']):(fail(_0x64f39c(0x120)+_0x6498ee['stderr']),process['exit'](0x1));_0x5c48d2['hEWGg'](log,''),log(_0x5c48d2['TjrLl']),_0x5c48d2['hNnIC'](info,_0x5c48d2[_0x64f39c(0x1fd)]),info(_0x5c48d2[_0x64f39c(0x1d1)]),log('');let _0x1ae906='';const _0xb3dfbf=path[_0x64f39c(0x1a9)](os[_0x64f39c(0x23b)](),_0x64f39c(0x276),'settings.json');if(fs[_0x64f39c(0x163)](_0xb3dfbf))try{if(_0x5c48d2[_0x64f39c(0x13a)]===_0x64f39c(0x208))_0x1b0a33(_0x5c48d2[_0x64f39c(0x1bb)]);else{const _0x593f23=JSON[_0x64f39c(0x1a7)](fs['readFileSync'](_0xb3dfbf,_0x5c48d2[_0x64f39c(0x213)])),_0x1213c5=_0x593f23?.['mcpServers']?.[_0x64f39c(0x1f1)]?.['env']?.['FIGMA_ACCESS_TOKEN']||'';if(_0x1213c5&&_0x5c48d2[_0x64f39c(0x223)](_0x1213c5,_0x5c48d2['XCIfI']))_0x1ae906=_0x1213c5;}}catch{}let _0xb21377;if(_0x1ae906){if(_0x5c48d2[_0x64f39c(0x20a)]===_0x5c48d2[_0x64f39c(0x20a)]){_0x5c48d2['SDcGd'](log,'\x20\x20Found\x20existing\x20token:\x20'+maskToken(_0x1ae906));const _0x4dae50=await _0x5c48d2['SVVHH'](prompt,_0x5c48d2['LCKcr']);_0xb21377=_0x4dae50||_0x1ae906;}else{const _0x8bc204=_0x3b1f98[_0x64f39c(0x1a7)](_0x111eac['readFileSync'](_0xebd0c8,_0x64f39c(0x236))),_0x9b2a69=_0x8bc204?.['mcpServers']?.[_0x5c48d2['kZZBb']]?.[_0x64f39c(0x205)]?.[_0x64f39c(0x1c9)]||'';if(_0x9b2a69&&_0x5c48d2[_0x64f39c(0x1f4)](_0x9b2a69,_0x64f39c(0x275)))_0x178dcf=_0x9b2a69;}}else _0xb21377=await _0x5c48d2[_0x64f39c(0x268)](prompt,_0x5c48d2[_0x64f39c(0x1b2)]),!_0xb21377&&(_0xb21377=_0x5c48d2['XCIfI'],warn(_0x5c48d2[_0x64f39c(0x18f)]));_0x5c48d2[_0x64f39c(0x16a)](log,''),log(_0x5c48d2[_0x64f39c(0x21d)]);_0x33c320[_0x64f39c(0x198)]&&(_0x5c48d2['lzBIJ'](registerMcpWithClaude,_0x33c320['claude'][_0x64f39c(0x20f)],_0xb21377)?_0x5c48d2[_0x64f39c(0x12a)](success,_0x64f39c(0x21f)):_0x5c48d2[_0x64f39c(0x1a4)](warn,_0x5c48d2['JTXWo']));_0x33c320[_0x64f39c(0x1ee)]&&('aNySl'==='aNySl'?registerMcpWithCodex(_0x33c320['codex'][_0x64f39c(0x20f)],_0xb21377)?_0x5c48d2['SVVHH'](success,'Registered\x20with\x20Codex'):warn(_0x64f39c(0x160)):(_0xfd87a9('Node.js\x20'+_0x42922c+'\x20-\x20requires\x20>=\x2018'),_0x552455++));_0x33c320[_0x64f39c(0x26c)]&&(registerMcpWithGemini(_0xb21377)?_0x5c48d2[_0x64f39c(0x19d)]('BCRdU',_0x64f39c(0x156))?success(_0x64f39c(0x1e5)):_0x3920cd[_0x64f39c(0x1b3)](_0x64f39c(0x265)+_0x2ba184):_0x5c48d2[_0x64f39c(0x15d)](warn,_0x64f39c(0x257)));writeClaudePermissions(),_0x5c48d2['skoIw'](success,_0x64f39c(0x13c)),_0x5c48d2['KDnDn'](log,''),_0x5c48d2['HSPoO'](log,_0x5c48d2['FMJhS']),await cmdStart();if(_0x5c48d2['IiMWV'](process[_0x64f39c(0x26b)],_0x64f39c(0x25f))){if(_0x5c48d2[_0x64f39c(0x240)]===_0x64f39c(0x1cf))_0x21d218[_0x64f39c(0x1b3)](_0x36c76c);else{_0x5c48d2[_0x64f39c(0x13d)](log,'');const _0x37698e=await _0x5c48d2[_0x64f39c(0x164)](prompt,_0x5c48d2['Dxykp']);(!_0x37698e||_0x5c48d2['PFaqc'](_0x37698e[_0x64f39c(0x119)](),'n'))&&_0x5c48d2[_0x64f39c(0x117)](installLaunchdService,_0x33c320);}}log(''),_0x5c48d2[_0x64f39c(0x1cb)](log,_0x5c48d2[_0x64f39c(0x159)]),copyPluginFiles(),success(_0x64f39c(0x1ad)+PLUGIN_DIR),_0x5c48d2[_0x64f39c(0x11c)](log,''),_0x5c48d2[_0x64f39c(0x268)](log,'='['repeat'](0x35)),log(_0x5c48d2[_0x64f39c(0x14c)]),_0x5c48d2['dFaWu'](log,'='['repeat'](0x35)),_0x5c48d2['FZExw'](printPluginLoadInstructions),log(_0x64f39c(0x16b)),log(''),_0x5c48d2['iKAIS'](info,_0x5c48d2[_0x64f39c(0x21c)]),_0x5c48d2['SoNEV'](info,_0x5c48d2[_0x64f39c(0x26a)]),_0x5c48d2['dFaWu'](log,''),log(_0x64f39c(0x230)),log('');}function installLaunchdService(_0x100fad){const _0xff96ee=_0x502a7d,_0x22ce4e={'MwBNM':_0xff96ee(0x1da),'Kacpy':function(_0x41b9d4,_0x39c45c,_0x14fc39){return _0x41b9d4(_0x39c45c,_0x14fc39);},'NPxOL':_0xff96ee(0x16e),'NSBPQ':'unload','ohNFV':function(_0x5a1d09,_0x2e4034,_0x335847){return _0x5a1d09(_0x2e4034,_0x335847);},'lzkvp':'load','GSRGO':function(_0x4e36ef,_0x10cd87){return _0x4e36ef(_0x10cd87);},'VtcrK':_0xff96ee(0x1d0)},_0x2b684e=[_0xff96ee(0x218),_0xff96ee(0x14e),_0x22ce4e['MwBNM'],_0xff96ee(0x238),'/sbin'];if(_0x100fad[_0xff96ee(0x198)])_0x2b684e['unshift'](path['dirname'](_0x100fad['claude']['bin']));if(_0x100fad['codex'])_0x2b684e['unshift'](path[_0xff96ee(0x17c)](_0x100fad['codex']['bin']));if(_0x100fad[_0xff96ee(0x26c)])_0x2b684e['unshift'](path[_0xff96ee(0x17c)](_0x100fad[_0xff96ee(0x26c)]['bin']));const _0x56236c=[...new Set(_0x2b684e)]['join'](':'),_0x1d2a79=process['execPath'];_0x22ce4e['Kacpy'](run,_0x22ce4e['NPxOL'],[_0x22ce4e['NSBPQ'],PLIST_PATH]),fs['mkdirSync'](PLIST_DIR,{'recursive':!![]});const _0x15e859='<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<!DOCTYPE\x20plist\x20PUBLIC\x20\x22-//Apple//DTD\x20PLIST\x201.0//EN\x22\x20\x22http://www.apple.com/DTDs/PropertyList-1.0.dtd\x22>\x0a<plist\x20version=\x221.0\x22>\x0a<dict>\x0a\x20\x20\x20\x20<key>Label</key>\x0a\x20\x20\x20\x20<string>'+PLIST_LABEL+'</string>\x0a\x20\x20\x20\x20<key>ProgramArguments</key>\x0a\x20\x20\x20\x20<array>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<string>'+_0x1d2a79+_0xff96ee(0x1a8)+RELAY_SCRIPT+'</string>\x0a\x20\x20\x20\x20</array>\x0a\x20\x20\x20\x20<key>WorkingDirectory</key>\x0a\x20\x20\x20\x20<string>'+BRIDGE_DIR+_0xff96ee(0x1ff)+os['homedir']()+_0xff96ee(0x11e)+_0x56236c+_0xff96ee(0x1b5)+(_0x100fad[_0xff96ee(0x198)]?_0xff96ee(0x1cc)+_0x100fad['claude'][_0xff96ee(0x20f)]+'</string>':'')+(_0x100fad['codex']?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<key>CODEX_BIN_PATH</key>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<string>'+_0x100fad[_0xff96ee(0x1ee)]['bin']+_0xff96ee(0x1b5):'')+(_0x100fad[_0xff96ee(0x26c)]?'\x0a\x20\x20\x20\x20\x20\x20\x20\x20<key>GEMINI_BIN_PATH</key>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<string>'+_0x100fad[_0xff96ee(0x26c)]['bin']+_0xff96ee(0x1b5):'')+_0xff96ee(0x132)+LOG_FILE+_0xff96ee(0x1e6)+LOG_FILE+'</string>\x0a</dict>\x0a</plist>';fs[_0xff96ee(0x1e3)](PLIST_PATH,_0x15e859);const _0x5fb9fb=_0x22ce4e['ohNFV'](run,_0x22ce4e['NPxOL'],[_0x22ce4e['lzkvp'],PLIST_PATH]);_0x5fb9fb['ok']?(_0x22ce4e['GSRGO'](success,_0x22ce4e[_0xff96ee(0x169)]),info(_0xff96ee(0x246)+PLIST_PATH)):warn(_0xff96ee(0x1db));}const PLUGIN_DIR=path[_0x502a7d(0x1a9)](DATA_DIR,_0x502a7d(0x1a2));function copyPluginFiles(){const _0x2d2caa=_0x502a7d,_0xc09835={'LPNOy':_0x2d2caa(0x1c4),'UWYIO':_0x2d2caa(0x267)};fs[_0x2d2caa(0x1d3)](PLUGIN_DIR,{'recursive':!![]});const _0x169752=[_0xc09835['LPNOy'],'code.js',_0xc09835[_0x2d2caa(0x262)]];for(const _0xd95e83 of _0x169752){const _0x30c3d3=path['join'](BRIDGE_DIR,_0xd95e83);fs['existsSync'](_0x30c3d3)&&fs[_0x2d2caa(0x14b)](_0x30c3d3,path[_0x2d2caa(0x1a9)](PLUGIN_DIR,_0xd95e83));}return PLUGIN_DIR;}function printPluginLoadInstructions(){const _0x2a7e98=_0x502a7d,_0x209e45={'cWudT':_0x2a7e98(0x1c4),'YLqBP':function(_0x2cc4a6,_0x5026b9){return _0x2cc4a6(_0x5026b9);},'KjtYZ':function(_0x5537a1,_0x4a3631){return _0x5537a1(_0x4a3631);},'ydobM':'\x20\x20──\x20Load\x20Plugin\x20in\x20Figma\x20(one-time\x20setup)\x20──────────────────','epUHc':'\x20\x201.\x20Open\x20any\x20file\x20in\x20Figma\x20Desktop','TRUov':'\x20\x20\x20\x20\x20(or\x20click\x20the\x20grid-like\x20icon\x20in\x20the\x20top\x20toolbar)','sDfaD':_0x2a7e98(0x22d),'yyZvA':function(_0x2e28fb,_0x551b47){return _0x2e28fb(_0x551b47);},'RnoQX':function(_0x1384e1,_0x488ea4){return _0x1384e1(_0x488ea4);},'CWrUd':'\x20\x204.\x20A\x20file\x20picker\x20opens.\x20Select\x20this\x20file:','QYvkA':_0x2a7e98(0x25f),'NFgUH':_0x2a7e98(0x227),'XUuuM':function(_0x687de0,_0x115a7a){return _0x687de0(_0x115a7a);},'JBMFh':_0x2a7e98(0x250),'helbP':_0x2a7e98(0x167),'djLba':function(_0x5c49f5,_0x4da4af){return _0x5c49f5(_0x4da4af);},'XRzCk':'\x20\x20Tip:\x20Right-click\x20the\x20plugin\x20→\x20\x22Save\x20to\x20favorites\x22\x20for\x20quick\x20access!','KetMq':_0x2a7e98(0x214)},_0x4508d1=path[_0x2a7e98(0x1a9)](PLUGIN_DIR,_0x209e45['cWudT']);_0x209e45[_0x2a7e98(0x248)](log,''),_0x209e45['KjtYZ'](log,_0x209e45[_0x2a7e98(0x175)]),log(''),log(_0x209e45[_0x2a7e98(0x1a5)]),log(_0x2a7e98(0x26e)),_0x209e45[_0x2a7e98(0x270)](log,''),log(_0x2a7e98(0x1ae)),log(_0x209e45[_0x2a7e98(0x1ea)]),log(''),_0x209e45[_0x2a7e98(0x248)](log,_0x2a7e98(0x1df)),log(_0x209e45['sDfaD']),_0x209e45[_0x2a7e98(0x270)](log,_0x2a7e98(0x10d)),_0x209e45[_0x2a7e98(0x210)](log,''),_0x209e45['RnoQX'](log,_0x209e45[_0x2a7e98(0x116)]),_0x209e45['yyZvA'](log,''),log('\x20\x20\x20\x20\x20'+_0x4508d1),log('');process[_0x2a7e98(0x26b)]===_0x209e45['QYvkA']&&(_0x209e45[_0x2a7e98(0x248)](log,_0x209e45[_0x2a7e98(0x1c1)]),_0x209e45[_0x2a7e98(0x23d)](log,''));_0x209e45['XUuuM'](log,'\x20\x205.\x20Click\x20Open\x20—\x20done!\x20The\x20plugin\x20is\x20now\x20installed.'),_0x209e45['XUuuM'](log,''),_0x209e45[_0x2a7e98(0x248)](log,_0x209e45[_0x2a7e98(0x252)]),log(''),log('\x20\x20→\x20Right-click\x20on\x20canvas\x20→\x20Plugins\x20→\x20Figma\x20Intelligence'),log(_0x209e45[_0x2a7e98(0x1c8)]),_0x209e45[_0x2a7e98(0x1c2)](log,''),log(_0x209e45[_0x2a7e98(0x137)]),_0x209e45['yyZvA'](log,'');if(process[_0x2a7e98(0x26b)]==='darwin')try{const {execSync:_0x4af6fb}=require(_0x2a7e98(0x1e7));_0x4af6fb('open\x20\x22'+PLUGIN_DIR+'\x22'),_0x209e45['YLqBP'](success,_0x209e45[_0x2a7e98(0x1ac)]);}catch{}}async function cmdUpdate(){const _0x38c2ae=_0x502a7d,_0x549206={'GPhHE':'4|9|2|8|6|0|1|3|7|5','Xgwup':function(_0x37b257,_0x2f461d){return _0x37b257(_0x2f461d);},'ZPysv':'\x20\x20Figma\x20will\x20pick\x20up\x20the\x20changes\x20automatically.','odUKw':function(_0x293485){return _0x293485();},'WfmuI':function(_0x376f0d,_0x4034b5){return _0x376f0d(_0x4034b5);},'usEPc':function(_0x4a3806,_0x55d461){return _0x4a3806(_0x55d461);},'awGyg':'\x20\x20If\x20the\x20plugin\x20is\x20open,\x20close\x20and\x20reopen\x20it\x20to\x20see\x20updates.'},_0x1f14ec=_0x549206['GPhHE'][_0x38c2ae(0x149)]('|');let _0xcb040a=0x0;while(!![]){switch(_0x1f14ec[_0xcb040a++]){case'0':log(_0x38c2ae(0x13e)+PLUGIN_DIR);continue;case'1':_0x549206[_0x38c2ae(0x23a)](log,'');continue;case'2':log(_0x38c2ae(0x1a3));continue;case'3':log(_0x549206[_0x38c2ae(0x10b)]);continue;case'4':_0x549206['odUKw'](ensureDataDir);continue;case'5':_0x549206['WfmuI'](log,'');continue;case'6':_0x549206['usEPc'](success,'Plugin\x20files\x20updated');continue;case'7':log(_0x549206[_0x38c2ae(0x243)]);continue;case'8':copyPluginFiles();continue;case'9':_0x549206[_0x38c2ae(0x158)](log,'');continue;}break;}}const command=process[_0x502a7d(0x1f2)][0x2]||_0x502a7d(0x1af);switch(command){case _0x502a7d(0x1af):cmdStart();break;case _0x502a7d(0x161):cmdStop();break;case'status':cmdStatus();break;case _0x502a7d(0x1bd):cmdDoctor();break;case'setup':cmdSetup();break;case _0x502a7d(0x11f):cmdUpdate();break;case'help':case _0x502a7d(0x273):case'-h':log(''),log('Figma\x20Intelligence\x20CLI'),log(''),log(_0x502a7d(0x1e9)),log(''),log('Commands:'),log(_0x502a7d(0x272)),log(_0x502a7d(0x10c)),log(_0x502a7d(0x12d)),log(_0x502a7d(0x1aa)),log('\x20\x20setup\x20\x20\x20\x20Full\x20interactive\x20setup\x20(install\x20deps,\x20register\x20MCP,\x20start\x20relay)'),log('\x20\x20update\x20\x20\x20Update\x20plugin\x20files\x20to\x20latest\x20version'),log(_0x502a7d(0x18a)),log('');break;default:fail(_0x502a7d(0x17e)+command),log(_0x502a7d(0x239)),process['exit'](0x1);}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ const _0x2a4093=_0x528d;(function(_0x68f05d,_0x5a5d94){const _0x5bab35=_0x528d,_0x2c4962=_0x68f05d();while(!![]){try{const _0x4ec8e3=-parseInt(_0x5bab35(0x247))/0x1+-parseInt(_0x5bab35(0x27e))/0x2*(-parseInt(_0x5bab35(0x193))/0x3)+-parseInt(_0x5bab35(0x225))/0x4+parseInt(_0x5bab35(0x273))/0x5*(parseInt(_0x5bab35(0x17f))/0x6)+parseInt(_0x5bab35(0x29c))/0x7+-parseInt(_0x5bab35(0x2c3))/0x8+parseInt(_0x5bab35(0x200))/0x9;if(_0x4ec8e3===_0x5a5d94)break;else _0x2c4962['push'](_0x2c4962['shift']());}catch(_0x23e53b){_0x2c4962['push'](_0x2c4962['shift']());}}}(_0x2d0a,0x8802f));function w({name:_0x4b6103,version:_0x15227a,tools:_0x4bc033}){const _0xdb62f=_0x528d,_0xe4d612={'gToxZ':function(_0x59ab87,_0x2a02e7,_0x2545d0){return _0x59ab87(_0x2a02e7,_0x2545d0);},'sgwpO':_0xdb62f(0x1ca),'atZbx':'Iizfw','fxHHb':function(_0x2aab44,_0x4216b9){return _0x2aab44===_0x4216b9;},'hTstI':'cEMbE','Qvjgx':'text','zvQXK':'DcCQl','cOEIV':function(_0x3b3755,_0x32c557){return _0x3b3755+_0x32c557;},'ShBDZ':_0xdb62f(0x1c1)};return{'start'(){const _0x3a4a6a=_0xdb62f,_0x3a79b7={'wQZdp':function(_0x468dd8,_0x2558cf){return _0x468dd8(_0x2558cf);},'jkWer':function(_0x116ec4,_0x170868,_0x593d4a){const _0x12bc71=_0x528d;return _0xe4d612[_0x12bc71(0x286)](_0x116ec4,_0x170868,_0x593d4a);},'BbuXo':_0xe4d612[_0x3a4a6a(0x2d8)],'AZlTd':'oaRhA','poclQ':_0xe4d612['atZbx'],'ghsja':function(_0x58622a,_0x5bb429){const _0x423e0f=_0x3a4a6a;return _0xe4d612[_0x423e0f(0x1c7)](_0x58622a,_0x5bb429);},'lqIzS':_0x3a4a6a(0x28b),'kvhZf':_0xe4d612['hTstI'],'QwNqt':function(_0x4414c1,_0x1ffb3f){const _0x156fb2=_0x3a4a6a;return _0xe4d612[_0x156fb2(0x1c7)](_0x4414c1,_0x1ffb3f);},'racGv':'initialize','KiAZE':_0xe4d612['Qvjgx'],'cmnAy':_0xe4d612['zvQXK'],'cASEU':function(_0x471f22,_0xc449af){const _0x16c256=_0x3a4a6a;return _0xe4d612[_0x16c256(0x22b)](_0x471f22,_0xc449af);},'zAHlb':_0x3a4a6a(0x25e)};process['stdin'][_0x3a4a6a(0x1d5)](_0xe4d612[_0x3a4a6a(0x295)]);let _0x4ebd96='';process[_0x3a4a6a(0x2b4)]['on'](_0x3a4a6a(0x2c7),_0x1ef496=>{const _0x64111c=_0x3a4a6a,_0x535325={'RpSWC':function(_0x1cce7b,_0x4321ac){const _0x1e5fbb=_0x528d;return _0x3a79b7[_0x1e5fbb(0x1ff)](_0x1cce7b,_0x4321ac);}};_0x4ebd96+=_0x1ef496;let _0x1bd4eb=_0x4ebd96[_0x64111c(0x1c3)]('\x0a');_0x4ebd96=_0x1bd4eb[_0x64111c(0x257)](),_0x1bd4eb['forEach'](_0x4f3dab=>{_0x4f3dab['trim']()&&_0x535325['RpSWC'](_0x23cb08,_0x4f3dab['trim']());});});async function _0x23cb08(_0x2e4be6){const _0x142225=_0x3a4a6a,_0x4001a7={'kiYcT':_0x3a79b7[_0x142225(0x1ec)]};if(_0x3a79b7['AZlTd']!=='lyDpc'){let _0x537467;try{if(_0x3a79b7[_0x142225(0x234)]===_0x142225(0x204)){let _0x50d778=_0x50ea41[_0x142225(0x2af)]();return _0x134ced[_0x142225(0x20c)](_0x33b306)['find'](_0x374556=>_0x50d778['includes'](_0x374556))||_0x142225(0x298);}else _0x537467=JSON['parse'](_0x2e4be6);}catch{if(_0x3a79b7['ghsja'](_0x3a79b7[_0x142225(0x281)],_0x3a79b7['kvhZf'])){let _0x5a5e26={'modern':'6366F1','editorial':'DC2626','luxury':_0x4001a7['kiYcT'],'tech':_0x142225(0x299)},_0x27edd2=_0x5a5e26[_0x54b8e2]||_0x5a5e26['modern'];return this['resolvePaletteFromSeed']('#'+_0x27edd2,_0x142225(0x1a1),_0xfe20f4);}else return;}if(_0x3a79b7['QwNqt'](_0x537467[_0x142225(0x2a8)],_0x3a79b7[_0x142225(0x1c2)]))_0x5e458a(_0x537467['id'],{'protocolVersion':_0x142225(0x1ce),'capabilities':{'tools':{}},'serverInfo':{'name':_0x4b6103,'version':_0x15227a}});else{if(_0x537467[_0x142225(0x2a8)]==='tools/list')_0x5e458a(_0x537467['id'],{'tools':Object[_0x142225(0x1f0)](_0x4bc033)['map'](([_0x4c2bea,_0x4d3d6d])=>({'name':_0x4c2bea,'description':_0x4d3d6d[_0x142225(0x241)],'inputSchema':_0x4d3d6d['inputSchema']}))});else{if(_0x537467[_0x142225(0x2a8)]==='tools/call'){let {name:_0x24d1bf,arguments:_0x2ecf67}=_0x537467['params'],_0x1bbebc=_0x4bc033[_0x24d1bf];if(!_0x1bbebc){_0x3a79b7[_0x142225(0x25b)](_0xd5f5a7,_0x537467['id'],_0x142225(0x274)+_0x24d1bf);return;}try{let _0xb67871=await _0x1bbebc[_0x142225(0x1bc)](_0x2ecf67||{});_0x5e458a(_0x537467['id'],{'content':[{'type':_0x3a79b7[_0x142225(0x23b)],'text':JSON[_0x142225(0x1b7)](_0xb67871,null,0x2)}]});}catch(_0x17ce7c){_0xd5f5a7(_0x537467['id'],_0x17ce7c[_0x142225(0x1da)]);}}}}}else _0x3a79b7['jkWer'](_0x3c1178,_0xa162a1['id'],_0x3576e3['message']);}function _0x5e458a(_0x41afb2,_0x4903e6){const _0x82d5f2=_0x3a4a6a;if(_0x3a79b7['ghsja'](_0x3a79b7[_0x82d5f2(0x251)],'DcCQl')){let _0x1bcb5b=JSON['stringify']({'jsonrpc':'2.0','id':_0x41afb2,'result':_0x4903e6});process['stdout']['write'](_0x3a79b7['cASEU'](_0x1bcb5b,'\x0a'));}else this[_0x82d5f2(0x190)]=_0x2d4787,this[_0x82d5f2(0x211)]=_0x59a3fb,this[_0x82d5f2(0x253)]=_0x2a51e6||_0x82d5f2(0x24d);}function _0xd5f5a7(_0x514290,_0x246907){const _0xfee36a=_0x3a4a6a;let _0x1e199f=JSON['stringify']({'jsonrpc':_0x3a79b7['zAHlb'],'id':_0x514290,'error':{'code':-0x7f5b,'message':_0x246907}});process['stdout'][_0xfee36a(0x279)](_0x1e199f+'\x0a');}}};}var S={'fintech':'photo-1611974789855-9c2a0a7236a3','finance':'photo-1554224155-6726b3ff858f','banking':'photo-1501167786227-4cba60f6d58f','saas':_0x2a4093(0x20e),'dashboard':'photo-1460925895917-afdab827c52f','analytics':_0x2a4093(0x2ad),'health':'photo-1576091160399-112ba8d25d1d','medical':_0x2a4093(0x1f4),'food':_0x2a4093(0x1e4),'restaurant':_0x2a4093(0x17b),'travel':_0x2a4093(0x210),'hotel':_0x2a4093(0x259),'ecommerce':'photo-1607082348824-0a96f2a4b9da','shop':_0x2a4093(0x2cf),'team':'photo-1522071820081-009f0129c71c','people':'photo-1529156069898-49953e39b3ac','abstract':_0x2a4093(0x26f),'hero':'photo-1557804506-669a67965ba0','tech':_0x2a4093(0x192),'code':_0x2a4093(0x216),'education':_0x2a4093(0x1fe),'nature':_0x2a4093(0x26e),'city':_0x2a4093(0x22f),'architecture':'photo-1486325212027-8081e485255e','fitness':'photo-1571019613454-1cb2f99b2d8b','music':'photo-1511379938547-c1f69419868d','art':'photo-1500462918059-b1a0cb512f1d','startup':_0x2a4093(0x18d),'office':_0x2a4093(0x29f),'minimal':_0x2a4093(0x26f),'dark':'photo-1534796636912-3b95b3ab5986','gradient':_0x2a4093(0x245)},P={'navigation':[_0x2a4093(0x24e),'lucide:x','lucide:chevron-down',_0x2a4093(0x28c),'lucide:arrow-right','lucide:arrow-left'],'user':[_0x2a4093(0x235),'lucide:users','lucide:user-circle',_0x2a4093(0x262),'lucide:log-out'],'action':[_0x2a4093(0x2aa),_0x2a4093(0x2b8),_0x2a4093(0x2a5),'lucide:copy','lucide:share-2','lucide:download'],'status':[_0x2a4093(0x296),'lucide:check-circle','lucide:x-circle','lucide:alert-circle',_0x2a4093(0x2ae)],'content':[_0x2a4093(0x2b5),_0x2a4093(0x2c1),'lucide:bookmark','lucide:eye',_0x2a4093(0x205)],'media':[_0x2a4093(0x1ed),_0x2a4093(0x18f),'lucide:music',_0x2a4093(0x1f1),'lucide:pause'],'data':[_0x2a4093(0x271),'lucide:trending-up','lucide:trending-down',_0x2a4093(0x20f),'lucide:activity'],'settings':[_0x2a4093(0x20a),'lucide:sliders','lucide:filter',_0x2a4093(0x227),'lucide:bell'],'ecommerce':['lucide:shopping-cart',_0x2a4093(0x1de),_0x2a4093(0x17a),_0x2a4093(0x258),'lucide:tag'],'social':['lucide:twitter','lucide:github',_0x2a4093(0x24f),'lucide:instagram',_0x2a4093(0x24b)]},f=class{constructor(_0x56ba48){const _0x1edd6c=_0x2a4093;this['config']=_0x56ba48,this[_0x1edd6c(0x2d9)]=_0x56ba48[_0x1edd6c(0x2d9)]||process.env.PIXABAY_API_KEY||'';}async['resolveImages'](_0x144ac7,_0x2f69b7=0x5,_0xccbad2=_0x2a4093(0x2b0)){const _0x122701=_0x2a4093,_0xe9b61={'hRWlv':_0x122701(0x26b),'GrKAx':_0x122701(0x185),'pJqgj':function(_0x1e8c7f,_0x57053f){return _0x1e8c7f(_0x57053f);},'jBaxa':function(_0x206860,_0x4c1fda,_0x4158cb){return _0x206860(_0x4c1fda,_0x4158cb);},'lWrIn':_0x122701(0x23e),'flWFy':function(_0x6ba56b,_0x5b01b3){return _0x6ba56b>=_0x5b01b3;},'hQoyg':function(_0x37d560,_0x4f0203){return _0x37d560<_0x4f0203;},'vUVlx':function(_0x155854,_0x3bf926){return _0x155854-_0x3bf926;},'PfuiY':function(_0x1722b1,_0x51f269){return _0x1722b1(_0x51f269);}};let _0x358860=this[_0x122701(0x1dc)](_0x144ac7),_0x42fd47=[];if(this[_0x122701(0x23c)]['unsplashKey'])try{if('uXRwZ'!==_0xe9b61['GrKAx'])_0x37e0f1=_0x1d64d9[_0x122701(0x1aa)](_0x837fd6);else{let _0x1e7f5a='https://api.unsplash.com/search/photos?query='+_0xe9b61['pJqgj'](encodeURIComponent,_0x144ac7)+'&per_page='+_0x2f69b7+_0x122701(0x28e)+_0xccbad2,_0x540155=await _0xe9b61[_0x122701(0x1f2)](fetch,_0x1e7f5a,{'headers':{'Authorization':'Client-ID\x20'+this[_0x122701(0x23c)]['unsplashKey']}});if(_0x540155['ok']&&((await _0x540155[_0x122701(0x179)]())['results']?.['forEach'](_0x377299=>{const _0x3ce59a=_0x122701;_0x42fd47['push']({'url':_0x377299[_0x3ce59a(0x1d7)][_0x3ce59a(0x19b)]+'&w=1200&h=800&fit=crop&auto=format&q=80','thumb':_0x377299[_0x3ce59a(0x1d7)]['small'],'alt':_0x377299[_0x3ce59a(0x1ea)]||_0x144ac7,'source':'unsplash','credit':_0x377299[_0x3ce59a(0x28d)]['name']});}),_0x42fd47[_0x122701(0x19f)]>=_0x2f69b7))return _0x42fd47['slice'](0x0,_0x2f69b7);}}catch{}if(this['config'][_0x122701(0x19e)]&&_0x42fd47[_0x122701(0x19f)]<_0x2f69b7)try{if(_0xe9b61[_0x122701(0x284)]!==_0xe9b61['lWrIn'])return _0xd285f2[_0x122701(0x1c3)]('-')[_0x122701(0x180)](_0x327469=>_0x327469[0x0]['toUpperCase']()+_0x327469['slice'](0x1))[_0x122701(0x1df)]('');else{let _0x70835=await fetch('https://api.pexels.com/v1/search?query='+encodeURIComponent(_0x144ac7)+'&per_page='+_0x2f69b7,{'headers':{'Authorization':this['config'][_0x122701(0x19e)]}});if(_0x70835['ok']&&((await _0x70835['json']())[_0x122701(0x242)]?.['forEach'](_0x31167e=>{const _0x241291=_0x122701;_0x42fd47['length']<_0x2f69b7&&_0x42fd47['push']({'url':_0x31167e[_0x241291(0x283)]['large2x'],'thumb':_0x31167e[_0x241291(0x283)][_0x241291(0x1a5)],'alt':_0x31167e['alt']||_0x144ac7,'source':_0xe9b61['hRWlv'],'credit':_0x31167e['photographer']});}),_0xe9b61['flWFy'](_0x42fd47[_0x122701(0x19f)],_0x2f69b7)))return _0x42fd47;}}catch{}if(this[_0x122701(0x2d9)]&&this[_0x122701(0x23c)]['usePixabay']&&_0xe9b61['hQoyg'](_0x42fd47[_0x122701(0x19f)],_0x2f69b7))try{let _0x5e503c=_0xe9b61['vUVlx'](_0x2f69b7,_0x42fd47['length']),_0x3ff19a=await _0xe9b61['PfuiY'](fetch,_0x122701(0x1d6)+encodeURIComponent(_0x144ac7)+'&key='+this[_0x122701(0x2d9)]+'&image_type=photo&per_page='+_0x5e503c+_0x122701(0x29b));_0x3ff19a['ok']&&(await _0x3ff19a[_0x122701(0x179)]())[_0x122701(0x26c)]?.['forEach'](_0x5cf02f=>{const _0x5ad824=_0x122701;_0x42fd47[_0x5ad824(0x19f)]<_0x2f69b7&&_0x42fd47[_0x5ad824(0x1ac)]({'url':_0x5cf02f['largeImageURL'],'thumb':_0x5cf02f[_0x5ad824(0x280)],'alt':_0x5cf02f[_0x5ad824(0x2ce)]||_0x144ac7,'source':_0x5ad824(0x198),'credit':_0x5cf02f[_0x5ad824(0x28d)]});});}catch{}if(_0xe9b61['hQoyg'](_0x42fd47['length'],_0x2f69b7)){let _0x3097eb=S[_0x358860]||S[_0x122701(0x298)];for(let _0x17bc9e=_0x42fd47[_0x122701(0x19f)];_0x17bc9e<_0x2f69b7;_0x17bc9e++){let _0x127cb8=_0x3097eb+'?w=1200&h=800&fit=crop&auto=format&q=80';_0x42fd47['push']({'url':_0x122701(0x20d)+_0x127cb8+'&sig='+_0x17bc9e,'thumb':_0x122701(0x20d)+_0x127cb8+'&w=400&sig='+_0x17bc9e,'alt':_0x144ac7,'source':_0x122701(0x1bb),'credit':_0x122701(0x282)});}}return _0x42fd47[_0x122701(0x18b)](0x0,_0x2f69b7);}async[_0x2a4093(0x261)](_0x4b22f0,_0x3a4d4f=!0x1){const _0xefa3f3=_0x2a4093,_0x4ab536={'sFgSB':_0xefa3f3(0x1ca),'gzEqO':_0xefa3f3(0x299),'UtebZ':_0xefa3f3(0x1a1)};let _0x444ae9={'modern':_0xefa3f3(0x2a6),'editorial':_0xefa3f3(0x1db),'luxury':_0x4ab536['sFgSB'],'tech':_0x4ab536[_0xefa3f3(0x217)]},_0x863e05=_0x444ae9[_0x4b22f0]||_0x444ae9[_0xefa3f3(0x1c8)];return this[_0xefa3f3(0x199)]('#'+_0x863e05,_0x4ab536['UtebZ'],_0x3a4d4f);}async['resolvePaletteFromSeed'](_0x48dba0,_0x42a04f=_0x2a4093(0x1a1),_0x4f87e3=!0x1){const _0x44aeaa=_0x2a4093,_0x42c257={'KKPxb':function(_0x13c88b,_0x413306){return _0x13c88b(_0x413306);}};let _0x1b608f=_0x48dba0['replace']('#','');if(this[_0x44aeaa(0x23c)]['useColorAPI'])try{if(_0x44aeaa(0x2d7)===_0x44aeaa(0x1bf))return!!(this['apiKey']&&this['projectId']);else{let _0x53d1e8=_0x44aeaa(0x268)+_0x1b608f+_0x44aeaa(0x1a9)+_0x42a04f+'&count=6',_0xee0280=await _0x42c257['KKPxb'](fetch,_0x53d1e8);if(_0xee0280['ok']){let _0x3fa801=(await _0xee0280['json']())[_0x44aeaa(0x25c)][_0x44aeaa(0x180)](_0x398485=>_0x398485[_0x44aeaa(0x22c)][_0x44aeaa(0x228)]);return this[_0x44aeaa(0x1a6)](_0x3fa801,_0x4f87e3);}}}catch{}return this['_fallbackPalette'](_0x1b608f,_0x4f87e3);}[_0x2a4093(0x1a6)](_0x1502cf,_0x4af316){const _0x4bba13=_0x2a4093,_0x498437={'JmGin':'#FFFFFF','bLGEN':'#26262A','FMAfZ':_0x4bba13(0x2d1),'wvdmV':_0x4bba13(0x2de),'OkQvB':'#52525B','BikTX':'#27272A','VORgA':_0x4bba13(0x1dd),'VcDJC':_0x4bba13(0x186)};return{'accent':_0x1502cf[0x0],'accentSoft':_0x1502cf[0x1],'primary':_0x1502cf[0x2],'secondary':_0x1502cf[0x3],'bgPrimary':_0x4af316?'#0F0F10':_0x498437[_0x4bba13(0x1ae)],'bgSecondary':_0x4af316?'#1A1A1C':_0x4bba13(0x291),'bgTertiary':_0x4af316?_0x498437[_0x4bba13(0x1a4)]:_0x498437[_0x4bba13(0x2a4)],'textPrimary':_0x4af316?'#FAFAFA':'#0A0A0B','textSecondary':_0x4af316?_0x498437['wvdmV']:_0x498437[_0x4bba13(0x1a7)],'textTertiary':_0x4af316?_0x4bba13(0x1bd):_0x498437[_0x4bba13(0x1d8)],'border':_0x4af316?_0x498437[_0x4bba13(0x226)]:_0x498437['VORgA'],'borderStrong':_0x4af316?'#3F3F46':_0x498437['VcDJC']};}[_0x2a4093(0x22a)](_0x2fd82d,_0xa6fee1){const _0xee109c=_0x2a4093,_0x3027b7={'yCqIo':'#6366F1','ngNiE':'#EEF2FF','rlQwS':_0xee109c(0x1d9),'FqRib':_0xee109c(0x2a2),'WkdxT':'#F87171','YlvNC':'#FFFBEB','oVqiR':'#92400E','RWsmh':_0xee109c(0x260),'QFbjB':'#F0F9FF','IKVTR':'#38BDF8','fuLli':'#1A1A1C','QNiqQ':_0xee109c(0x1c0),'HgWBq':_0xee109c(0x2d1),'QHplG':_0xee109c(0x2b1),'aXmZt':'#A1A1AA','SbFrV':_0xee109c(0x246)};let _0x1ee70d={'6366F1':{'accent':_0x3027b7[_0xee109c(0x1c6)],'accentSoft':_0x3027b7[_0xee109c(0x27b)],'primary':'#4F46E5','secondary':'#818CF8'},'DC2626':{'accent':_0x3027b7[_0xee109c(0x20b)],'accentSoft':_0x3027b7[_0xee109c(0x2cb)],'primary':_0xee109c(0x277),'secondary':_0x3027b7[_0xee109c(0x2be)]},'B45309':{'accent':'#B45309','accentSoft':_0x3027b7[_0xee109c(0x196)],'primary':_0x3027b7[_0xee109c(0x1d4)],'secondary':_0x3027b7[_0xee109c(0x187)]},'0EA5E9':{'accent':'#0EA5E9','accentSoft':_0x3027b7[_0xee109c(0x21a)],'primary':_0xee109c(0x206),'secondary':_0x3027b7['IKVTR']}};return{..._0x1ee70d[_0x2fd82d]||_0x1ee70d[_0xee109c(0x2a6)],'bgPrimary':_0xa6fee1?_0xee109c(0x239):_0xee109c(0x1b6),'bgSecondary':_0xa6fee1?_0x3027b7['fuLli']:'#F7F7F8','bgTertiary':_0xa6fee1?_0x3027b7[_0xee109c(0x289)]:_0x3027b7[_0xee109c(0x1a0)],'textPrimary':_0xa6fee1?_0xee109c(0x2d6):_0x3027b7['QHplG'],'textSecondary':_0xa6fee1?_0x3027b7[_0xee109c(0x1e7)]:_0x3027b7[_0xee109c(0x195)],'textTertiary':_0xa6fee1?_0xee109c(0x1bd):'#A1A1AA','border':_0xa6fee1?'#27272A':_0xee109c(0x1dd),'borderStrong':_0xa6fee1?'#3F3F46':'#D4D4D8'};}async[_0x2a4093(0x29e)](_0x15f961,_0x4b0d78=0xc){const _0x1ad302=_0x2a4093,_0x9d7e06={'jhmVo':_0x1ad302(0x2c5),'lZcLD':_0x1ad302(0x2b9),'RqlLo':_0x1ad302(0x189),'CWJFD':'settings','BAgTp':'user'};let _0x443a48=_0x15f961[_0x1ad302(0x2af)](),_0x193af3=[_0x9d7e06[_0x1ad302(0x1e3)],_0x9d7e06[_0x1ad302(0x2c6)],_0x9d7e06['RqlLo']];/(shop|cart|product|buy|store)/['test'](_0x443a48)?_0x193af3=['ecommerce',_0x1ad302(0x2b9),_0x9d7e06['RqlLo']]:/(data|chart|metric|analytic|stat)/[_0x1ad302(0x287)](_0x443a48)?_0x193af3=[_0x1ad302(0x2c7),_0x9d7e06[_0x1ad302(0x290)],_0x9d7e06['RqlLo']]:/(social|share|follow|like)/[_0x1ad302(0x287)](_0x443a48)?_0x193af3=['social','content',_0x1ad302(0x2b9)]:/(user|profile|account|team)/[_0x1ad302(0x287)](_0x443a48)&&(_0x193af3=[_0x9d7e06[_0x1ad302(0x19c)],'action',_0x9d7e06['CWJFD']]);let _0x2dfced=_0x193af3['flatMap'](_0xbc84bf=>P[_0xbc84bf]||[])['slice'](0x0,_0x4b0d78);return this['config']['useIconify']?this['fetchIconSVGs'](_0x2dfced):{'names':_0x2dfced,'source':'lucide-react','importLine':_0x1ad302(0x248)+_0x2dfced[_0x1ad302(0x180)](_0x3b39fc=>this[_0x1ad302(0x2a3)](_0x3b39fc['split'](':')[0x1]))['join'](',\x20')+'\x20}\x20from\x20\x27lucide-react\x27'};}async[_0x2a4093(0x1e2)](_0x2c5a5e){const _0x149855=_0x2a4093,_0x35675c={'gBkEt':_0x149855(0x278),'diIfT':function(_0x3b3c2d,_0x375398){return _0x3b3c2d(_0x375398);}};let _0xbf7a47={};return await Promise[_0x149855(0x2a9)](_0x2c5a5e['map'](async _0x3b79f3=>{const _0x55a44c=_0x149855;try{let [_0x2a842e,_0x309a03]=_0x3b79f3['includes'](':')?_0x3b79f3['split'](':'):[_0x35675c[_0x55a44c(0x288)],_0x3b79f3],_0xeaf3ff=await _0x35675c['diIfT'](fetch,_0x55a44c(0x1c5)+_0x2a842e+'/'+_0x309a03+_0x55a44c(0x267));_0xeaf3ff['ok']&&(_0xbf7a47[_0x3b79f3]={'svg':await _0xeaf3ff[_0x55a44c(0x2b7)](),'name':_0x3b79f3,'set':_0x2a842e,'icon':_0x309a03});}catch{}})),_0xbf7a47;}async[_0x2a4093(0x181)](_0x48f3fc){const _0x7d0f2b=_0x2a4093,_0x1a7e54={'Hkkcg':_0x7d0f2b(0x19a),'TkEKy':'JetBrains\x20Mono','RPQQr':'https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,700,800&display=swap','ZcNQg':'Playfair\x20Display','scVwg':'Source\x20Serif\x204','iAfni':_0x7d0f2b(0x2cc),'phiBG':_0x7d0f2b(0x1fc),'yXVmi':'https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Jost:wght@300;400;500&display=swap','cmzkk':_0x7d0f2b(0x1c9),'oNTXy':'https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600&family=IBM+Plex+Mono:wght@400;500&display=swap'};let _0x15b3fe={'modern':{'display':'Cabinet\x20Grotesk','body':_0x1a7e54[_0x7d0f2b(0x1b8)],'mono':_0x1a7e54['TkEKy'],'googleUrl':_0x7d0f2b(0x202),'cdnUrl':_0x1a7e54['RPQQr']},'editorial':{'display':_0x1a7e54['ZcNQg'],'body':_0x1a7e54['scVwg'],'mono':_0x7d0f2b(0x1c9),'googleUrl':_0x1a7e54['iAfni'],'cdnUrl':null},'luxury':{'display':_0x1a7e54[_0x7d0f2b(0x23a)],'body':'Jost','mono':'Courier\x20Prime','googleUrl':_0x1a7e54['yXVmi'],'cdnUrl':null},'tech':{'display':_0x7d0f2b(0x255),'body':_0x7d0f2b(0x2a7),'mono':_0x1a7e54[_0x7d0f2b(0x25d)],'googleUrl':_0x1a7e54['oNTXy'],'cdnUrl':null}};return _0x15b3fe[_0x48f3fc]||_0x15b3fe[_0x7d0f2b(0x1c8)];}async[_0x2a4093(0x270)](_0x2ac896){const _0xfdeeec=_0x2a4093,_0x2fdeb4={'gPpKP':'#EF4444','wGNdA':_0xfdeeec(0x1cd),'dfvDy':_0xfdeeec(0x178),'KIddh':_0xfdeeec(0x18c),'UmATZ':_0xfdeeec(0x2a0),'BwsJp':'22px','bfsVb':'28px','LNkZr':_0xfdeeec(0x220),'syOmL':'1.1','WMmDQ':_0xfdeeec(0x2bb),'TbrSN':'-0.03em','zCUBJ':'0.05em','NRWLk':'0.1em','OwUtg':'4px','ADFVj':'12px','wPnEn':'16px','sqqOR':'48px','mqcVa':_0xfdeeec(0x1ef),'YEiZQ':'96px','cDtUu':'8px','QtvGG':function(_0x31c709,_0x104656,_0x510b70){return _0x31c709(_0x104656,_0x510b70);},'zMsXz':function(_0x35bc71,_0x4461d3){return _0x35bc71(_0x4461d3);},'DAXnd':_0xfdeeec(0x28a),'UezDy':'https://jsonplaceholder.typicode.com/users','AJKzf':function(_0x810895,_0x463642){return _0x810895===_0x463642;},'reClK':'qOYpe','CNLku':_0xfdeeec(0x215),'qXDKE':_0xfdeeec(0x2da)};let _0x3be234=_0x2ac896['toLowerCase'](),_0x53a8f9={};if(this['config']['useJsonPlaceholder']!==!0x1)try{if(/(user|profile|team|people|member)/['test'](_0x3be234)){if(_0xfdeeec(0x28a)!==_0x2fdeb4['DAXnd']){let _0x3c4df9=_0x442d6b?_0x4f727f['dark']:_0x54000e[_0xfdeeec(0x229)];return{'colors':{'--bg-primary':_0x753d58['bgPrimary'],'--bg-secondary':_0x12a9b7['bgSecondary'],'--bg-tertiary':_0x347436['bgTertiary'],'--text-primary':_0x1465ef[_0xfdeeec(0x17c)],'--text-secondary':_0x59ae00[_0xfdeeec(0x244)],'--text-tertiary':_0x265fd1['textTertiary'],'--accent':_0x574c2e['accent'],'--accent-soft':_0x716511[_0xfdeeec(0x2a1)],'--primary':_0x1becf2[_0xfdeeec(0x1b3)],'--secondary':_0x2c22c6[_0xfdeeec(0x2bf)],'--border':_0x52d119['border'],'--border-strong':_0x5dff9b[_0xfdeeec(0x275)],'--success':'#10B981','--error':_0x2fdeb4[_0xfdeeec(0x2b6)],'--warning':_0x2fdeb4[_0xfdeeec(0x231)]},'typography':{'--font-display':'\x27'+_0x439e2a[_0xfdeeec(0x230)]+'\x27,\x20sans-serif','--font-body':'\x27'+_0x420645[_0xfdeeec(0x285)]+_0xfdeeec(0x2d0),'--font-mono':'\x27'+_0x673cd['mono']+_0xfdeeec(0x21e),'--text-xs':_0x2fdeb4[_0xfdeeec(0x26d)],'--text-sm':'13px','--text-base':_0x2fdeb4[_0xfdeeec(0x292)],'--text-lg':_0x2fdeb4['UmATZ'],'--text-xl':_0x2fdeb4['BwsJp'],'--text-2xl':_0x2fdeb4[_0xfdeeec(0x1b9)],'--text-3xl':_0x2fdeb4[_0xfdeeec(0x25a)],'--text-4xl':_0xfdeeec(0x183),'--text-5xl':_0xfdeeec(0x240),'--leading-tight':_0x2fdeb4['syOmL'],'--leading-snug':_0x2fdeb4[_0xfdeeec(0x1f7)],'--leading-body':_0xfdeeec(0x254),'--tracking-tight':_0x2fdeb4[_0xfdeeec(0x19d)],'--tracking-normal':'0','--tracking-wide':_0x2fdeb4['zCUBJ'],'--tracking-widest':_0x2fdeb4['NRWLk']},'spacing':{'--space-1':_0x2fdeb4['OwUtg'],'--space-2':_0xfdeeec(0x1a2),'--space-3':_0x2fdeb4['ADFVj'],'--space-4':_0x2fdeb4['wPnEn'],'--space-5':'20px','--space-6':_0xfdeeec(0x243),'--space-8':_0xfdeeec(0x2d4),'--space-10':'40px','--space-12':_0x2fdeb4[_0xfdeeec(0x18a)],'--space-16':'64px','--space-20':_0x2fdeb4['mqcVa'],'--space-24':_0x2fdeb4[_0xfdeeec(0x219)]},'radii':{'--radius-xs':_0x2fdeb4[_0xfdeeec(0x2ba)],'--radius-sm':_0x2fdeb4['cDtUu'],'--radius-md':_0x2fdeb4[_0xfdeeec(0x1e6)],'--radius-lg':_0x2fdeb4['wPnEn'],'--radius-xl':_0xfdeeec(0x243),'--radius-full':'9999px'},'shadows':{'--shadow-xs':_0x3c4df9['xs'],'--shadow-sm':_0x3c4df9['sm'],'--shadow-md':_0x3c4df9['md'],'--shadow-lg':_0x3c4df9['lg'],'--shadow-xl':_0x3c4df9['xl']}};}else{let _0x3d8177=await _0x2fdeb4[_0xfdeeec(0x1d3)](fetch,_0x2fdeb4[_0xfdeeec(0x1d2)]);_0x3d8177['ok']&&(_0x53a8f9[_0xfdeeec(0x249)]=await _0x3d8177['json']());}}if(/(post|article|blog|news|content)/[_0xfdeeec(0x287)](_0x3be234)){if(_0x2fdeb4[_0xfdeeec(0x221)](_0x2fdeb4[_0xfdeeec(0x263)],_0x2fdeb4[_0xfdeeec(0x1fa)])){Gjplob[_0xfdeeec(0x1af)](_0xb01450,_0xa0bc8c['id'],'Unknown\x20tool:\x20'+_0x65f3f5);return;}else{let _0x33640a=await fetch(_0xfdeeec(0x21d));_0x33640a['ok']&&(_0x53a8f9['posts']=await _0x33640a[_0xfdeeec(0x179)]());}}if(/(comment|review|feedback)/[_0xfdeeec(0x287)](_0x3be234)){if(_0x2fdeb4[_0xfdeeec(0x224)]!==_0x2fdeb4[_0xfdeeec(0x224)]){_0x4ae90b+=_0x4ead70;let _0x162607=_0xd9ddf1['split']('\x0a');_0x2f0720=_0x162607[_0xfdeeec(0x257)](),_0x162607[_0xfdeeec(0x1f6)](_0x426074=>{const _0x158439=_0xfdeeec;_0x426074['trim']()&&Gjplob[_0x158439(0x1d3)](_0x5851ef,_0x426074['trim']());});}else{let _0x921cdf=await fetch('https://jsonplaceholder.typicode.com/comments?_limit=5');_0x921cdf['ok']&&(_0x53a8f9[_0xfdeeec(0x21b)]=await _0x921cdf[_0xfdeeec(0x179)]());}}}catch{}return _0x53a8f9;}async['resolveAvatars'](_0x4ae53a=0x5){const _0x24964f=_0x2a4093,_0x317d36={'bVpei':'notionists','RhQyY':function(_0x48a4ec,_0x345b1b){return _0x48a4ec*_0x345b1b;},'aPEJq':'Alex','qMgMk':_0x24964f(0x266)};if(!this['config'][_0x24964f(0x1ba)])return[];let _0x13e33b=['avataaars',_0x24964f(0x1e1),_0x24964f(0x252),'lorelei',_0x317d36['bVpei']],_0x3d057e=_0x13e33b[Math['floor'](_0x317d36[_0x24964f(0x2d5)](Math['random'](),_0x13e33b['length']))],_0x1879fa=[_0x317d36[_0x24964f(0x1f9)],_0x24964f(0x2ca),'Morgan',_0x24964f(0x272),'Casey',_0x24964f(0x212),_0x317d36['qMgMk'],_0x24964f(0x1e0)];return Array['from']({'length':_0x4ae53a},(_0x4ae998,_0xc47277)=>({'url':'https://api.dicebear.com/9.x/'+_0x3d057e+'/svg?seed='+_0x1879fa[_0xc47277%_0x1879fa[_0x24964f(0x19f)]]+'&size=128','name':_0x1879fa[_0xc47277%_0x1879fa[_0x24964f(0x19f)]],'style':_0x3d057e}));}async[_0x2a4093(0x1e8)](){const _0x524de7=_0x2a4093,_0x5ea0d4={'HRRsQ':function(_0x2da1cd,_0x54b228){return _0x2da1cd(_0x54b228);},'jOKLi':function(_0x577837,_0x3f28f1,_0x20395f){return _0x577837(_0x3f28f1,_0x20395f);},'nzduD':_0x524de7(0x17d),'gmgkf':_0x524de7(0x208),'Ckrqq':function(_0x3b71f2,_0x4f3130){return _0x3b71f2(_0x4f3130);},'WKsiZ':'https://jsonplaceholder.typicode.com/users?_limit=1'};let _0x14b5af=await Promise[_0x524de7(0x2a9)]([this[_0x524de7(0x23c)]['unsplashKey']?_0x5ea0d4[_0x524de7(0x27c)](fetch,_0x524de7(0x27d)+this['config'][_0x524de7(0x1cf)])['then'](_0x2598f0=>_0x2598f0['ok']):Promise['resolve'](!0x1),this[_0x524de7(0x23c)]['pexelsKey']?_0x5ea0d4[_0x524de7(0x2b2)](fetch,_0x5ea0d4[_0x524de7(0x1b4)],{'headers':{'Authorization':this[_0x524de7(0x23c)][_0x524de7(0x19e)]}})[_0x524de7(0x26a)](_0x3f7357=>_0x3f7357['ok']):Promise[_0x524de7(0x209)](!0x1),fetch(_0x524de7(0x22d))['then'](_0xb6e0c0=>_0xb6e0c0['ok'])['catch'](()=>!0x1),fetch(_0x5ea0d4[_0x524de7(0x2dc)])[_0x524de7(0x26a)](_0x575a0f=>_0x575a0f['ok'])[_0x524de7(0x238)](()=>!0x1),fetch(_0x524de7(0x2bc))['then'](_0x28f6be=>_0x28f6be['ok'])[_0x524de7(0x238)](()=>!0x1),_0x5ea0d4['Ckrqq'](fetch,_0x5ea0d4['WKsiZ'])[_0x524de7(0x26a)](_0x2109a5=>_0x2109a5['ok'])['catch'](()=>!0x1)]);return{'unsplash':{'active':_0x14b5af[0x0][_0x524de7(0x228)],'keyRequired':!0x0},'pexels':{'active':_0x14b5af[0x1]['value'],'keyRequired':!0x0},'colorAPI':{'active':_0x14b5af[0x2]['value'],'keyRequired':!0x1},'iconify':{'active':_0x14b5af[0x3][_0x524de7(0x228)],'keyRequired':!0x1},'dicebear':{'active':_0x14b5af[0x4]['value'],'keyRequired':!0x1},'jsonPlaceholder':{'active':_0x14b5af[0x5][_0x524de7(0x228)],'keyRequired':!0x1},'googleFonts':{'active':!0x0,'keyRequired':!0x1},'pixabay':{'active':!0x0,'keyRequired':!0x1}};}[_0x2a4093(0x1dc)](_0x533779){const _0x5b5468=_0x2a4093;let _0x121a88=_0x533779['toLowerCase']();return Object[_0x5b5468(0x20c)](S)['find'](_0x5e6af3=>_0x121a88['includes'](_0x5e6af3))||_0x5b5468(0x298);}['_toPascalCase'](_0x4eb40e){const _0x27eb09=_0x2a4093;return _0x4eb40e[_0x27eb09(0x1c3)]('-')['map'](_0x24670e=>_0x24670e[0x0]['toUpperCase']()+_0x24670e[_0x27eb09(0x18b)](0x1))['join']('');}},E={'light':{'xs':_0x2a4093(0x2b3),'sm':'0\x202px\x208px\x20rgba(0,0,0,0.06),\x200\x201px\x202px\x20rgba(0,0,0,0.04)','md':_0x2a4093(0x1fb),'lg':_0x2a4093(0x2d2),'xl':_0x2a4093(0x182)},'dark':{'xs':'0\x201px\x202px\x20rgba(0,0,0,0.20)','sm':_0x2a4093(0x1b2),'md':_0x2a4093(0x1ad),'lg':_0x2a4093(0x18e),'xl':'0\x2024px\x2064px\x20rgba(0,0,0,0.56)'}},y=class{['generate']({palette:_0x3da567,fonts:_0x4ad6e6,theme:_0x1459ff,darkMode:_0x24cea0}){const _0x26d8a6=_0x2a4093,_0x2ae7e7={'tedff':_0x26d8a6(0x1f5),'CjeNE':_0x26d8a6(0x1d1),'QhUDf':'13px','kOVmr':'22px','HiHev':_0x26d8a6(0x220),'ixZyw':'1.3','iyfMt':'0.1em','jLnmm':_0x26d8a6(0x22e),'jWKJT':_0x26d8a6(0x213),'xqyaa':_0x26d8a6(0x240),'efYET':'80px','sQOsJ':_0x26d8a6(0x2ab),'xJNmR':'12px','VfCEq':_0x26d8a6(0x236)};let _0xb06024=_0x24cea0?E[_0x26d8a6(0x29d)]:E[_0x26d8a6(0x229)];return{'colors':{'--bg-primary':_0x3da567[_0x26d8a6(0x27f)],'--bg-secondary':_0x3da567['bgSecondary'],'--bg-tertiary':_0x3da567['bgTertiary'],'--text-primary':_0x3da567[_0x26d8a6(0x17c)],'--text-secondary':_0x3da567['textSecondary'],'--text-tertiary':_0x3da567['textTertiary'],'--accent':_0x3da567['accent'],'--accent-soft':_0x3da567['accentSoft'],'--primary':_0x3da567['primary'],'--secondary':_0x3da567[_0x26d8a6(0x2bf)],'--border':_0x3da567['border'],'--border-strong':_0x3da567[_0x26d8a6(0x275)],'--success':_0x2ae7e7['tedff'],'--error':_0x2ae7e7['CjeNE'],'--warning':_0x26d8a6(0x1cd)},'typography':{'--font-display':'\x27'+_0x4ad6e6['display']+'\x27,\x20sans-serif','--font-body':'\x27'+_0x4ad6e6['body']+_0x26d8a6(0x2d0),'--font-mono':'\x27'+_0x4ad6e6['mono']+'\x27,\x20monospace','--text-xs':_0x26d8a6(0x178),'--text-sm':_0x2ae7e7['QhUDf'],'--text-base':_0x26d8a6(0x18c),'--text-lg':'18px','--text-xl':_0x2ae7e7[_0x26d8a6(0x23f)],'--text-2xl':_0x26d8a6(0x269),'--text-3xl':_0x2ae7e7[_0x26d8a6(0x276)],'--text-4xl':_0x26d8a6(0x183),'--text-5xl':_0x26d8a6(0x240),'--leading-tight':'1.1','--leading-snug':_0x2ae7e7['ixZyw'],'--leading-body':_0x26d8a6(0x254),'--tracking-tight':'-0.03em','--tracking-normal':'0','--tracking-wide':'0.05em','--tracking-widest':_0x2ae7e7[_0x26d8a6(0x2c8)]},'spacing':{'--space-1':_0x26d8a6(0x2ab),'--space-2':_0x26d8a6(0x1a2),'--space-3':_0x26d8a6(0x218),'--space-4':_0x2ae7e7['jLnmm'],'--space-5':_0x2ae7e7[_0x26d8a6(0x191)],'--space-6':'24px','--space-8':'32px','--space-10':'40px','--space-12':_0x26d8a6(0x183),'--space-16':_0x2ae7e7[_0x26d8a6(0x1e9)],'--space-20':_0x2ae7e7['efYET'],'--space-24':_0x26d8a6(0x2c0)},'radii':{'--radius-xs':_0x2ae7e7['sQOsJ'],'--radius-sm':'8px','--radius-md':_0x2ae7e7[_0x26d8a6(0x222)],'--radius-lg':'16px','--radius-xl':'24px','--radius-full':_0x2ae7e7[_0x26d8a6(0x256)]},'shadows':{'--shadow-xs':_0xb06024['xs'],'--shadow-sm':_0xb06024['sm'],'--shadow-md':_0xb06024['md'],'--shadow-lg':_0xb06024['lg'],'--shadow-xl':_0xb06024['xl']}};}},b=class{[_0x2a4093(0x233)]({tokens:_0x556400,fonts:_0x3c2c82,images:_0x4879cf,icons:_0x2f5970,mockData:_0x4ec94d,avatars:_0x1340cb,stitchOutput:_0x14fdf5,platform:_0x199d43,darkMode:_0x1d55fb}){const _0x4a43c0=_0x2a4093;let _0x3df8b0=_0x2f5970['importLine']?'Icons\x20(import\x20from\x20lucide-react):\x0a'+_0x2f5970[_0x4a43c0(0x237)]:_0x4a43c0(0x294)+Object[_0x4a43c0(0x20c)](_0x2f5970)['slice'](0x0,0x8)['map'](_0x191991=>'•\x20'+_0x191991)[_0x4a43c0(0x1df)]('\x0a'),_0x79a387=_0x4879cf['slice'](0x0,0x5)[_0x4a43c0(0x180)]((_0x757e08,_0x1acae5)=>'•\x20Image\x20'+(_0x1acae5+0x1)+':\x20'+_0x757e08['url']+'\x0a\x20\x20Alt:\x20\x22'+_0x757e08[_0x4a43c0(0x214)]+'\x22\x20|\x20Source:\x20'+_0x757e08[_0x4a43c0(0x184)])['join']('\x0a'),_0x33daf6=_0x1340cb[_0x4a43c0(0x18b)](0x0,0x3)['map']((_0x1617e7,_0x9153f5)=>'•\x20Avatar\x20'+(_0x9153f5+0x1)+':\x20'+_0x1617e7['url']+'\x20('+_0x1617e7[_0x4a43c0(0x1be)]+')')['join']('\x0a'),_0x14157a=[...Object[_0x4a43c0(0x1f0)](_0x556400['colors']),...Object['entries'](_0x556400[_0x4a43c0(0x194)]),...Object['entries'](_0x556400['spacing']),...Object[_0x4a43c0(0x1f0)](_0x556400['radii']),...Object[_0x4a43c0(0x1f0)](_0x556400[_0x4a43c0(0x27a)])]['map'](([_0x5142ea,_0x272492])=>'\x20\x20'+_0x5142ea+':\x20'+_0x272492+';')['join']('\x0a'),_0x4f6efe=_0x14fdf5?_0x4a43c0(0x2dd)+_0x14fdf5['html']?.['slice'](0x0,0x7d0)+'...\x0a':'';return _0x4a43c0(0x1a8)+_0x199d43+_0x4a43c0(0x25f)+_0x4f6efe+'\x0a\x0a━━━\x20MANDATORY:\x20USE\x20THESE\x20EXACT\x20PRE-RESOLVED\x20ASSETS\x20━━━━━━━━━━━\x0a\x0aFONTS\x20—\x20Load\x20BOTH\x20these\x20URLs\x20in\x20JSX\x20(not\x20useEffect):\x0a\x20\x20Display:\x20\x27'+_0x3c2c82[_0x4a43c0(0x230)]+_0x4a43c0(0x1e5)+(_0x3c2c82[_0x4a43c0(0x17e)]||'via\x20Google\x20Fonts')+'\x0a\x20\x20Body:\x20\x20\x20\x20\x27'+_0x3c2c82['body']+_0x4a43c0(0x2d3)+_0x3c2c82[_0x4a43c0(0x21c)]+'\x0a\x0aIMAGES\x20—\x20Use\x20these\x20EXACT\x20URLs\x20(real\x20photos,\x20not\x20placeholders):\x0a'+_0x79a387+'\x0a\x0aAVATARS\x20—\x20Use\x20for\x20user\x20lists,\x20testimonials,\x20teams:\x0a'+_0x33daf6+'\x0a\x0a'+_0x3df8b0+'\x0a\x0a━━━\x20DESIGN\x20TOKENS\x20—\x20USE\x20THESE\x20EXACT\x20VALUES\x20━━━━━━━━━━━━━━━━━━\x0a\x0a:root\x20{\x0a'+_0x14157a+'\x0a}\x0a\x0a━━━\x20IMPLEMENTATION\x20RULES\x20(NON-NEGOTIABLE)\x20━━━━━━━━━━━━━━━━━━━\x0a\x0a1.\x20FONTS:\x20Load\x20with\x20<link>\x20in\x20JSX\x20return.\x20Never\x20useEffect.\x20Never\x20document.head.\x0a2.\x20COLORS:\x20Every\x20color\x20must\x20reference\x20a\x20CSS\x20variable.\x20Zero\x20hardcoded\x20hex.\x0a3.\x20SPACING:\x20Use\x20only\x20--space-*\x20variables.\x20No\x20magic\x20numbers.\x0a4.\x20TYPOGRAPHY:\x20Letter-spacing\x20on\x20ALL\x20headings:\x20var(--tracking-tight)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Line-height\x20on\x20body:\x20var(--leading-body)\x0a5.\x20CARDS:\x20hover\x20→\x20translateY(-4px)\x20+\x20shadow\x20upgrade.\x20Always.\x0a6.\x20TRANSITIONS:\x20transition:\x20all\x200.2s\x20cubic-bezier(0.4,\x200,\x200.2,\x201)\x20on\x20ALL\x20interactive\x20elements\x0a7.\x20IMAGES:\x20Use\x20Img\x20component\x20with\x20onError\x20fallback.\x20NEVER\x20broken\x20images.\x0a8.\x20SECTIONS:\x20Alternate\x20--bg-primary\x20and\x20--bg-secondary\x0a9.\x20MOBILE:\x20useBreakpoint(768)\x20hook\x20on\x20all\x20grids\x0a10.\x20EYEBROW:\x20Every\x20section\x20gets\x20a\x2012px\x20uppercase\x20tracked\x20label\x20above\x20the\x20heading\x0a11.\x20ANIMATION:\x20Staggered\x20fade-in\x20on\x20page\x20load.\x20Cards\x20animate\x20on\x20scroll.\x0a12.\x20SHADOWS:\x20Use\x20shadow\x20hierarchy\x20—\x20cards\x20use\x20--shadow-md,\x20hover\x20uses\x20--shadow-lg\x0a13.\x20BORDER-RADIUS:\x20Use\x20--radius-lg\x20(16px)\x20for\x20cards,\x20--radius-full\x20for\x20pills/badges\x0a\x0a━━━\x20COMPONENT\x20QUALITY\x20STANDARDS\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x0a\x0aNav:\x20\x20\x20\x20sticky,\x20backdropFilter\x20blur(20px),\x20scroll-aware\x20border\x0aHero:\x20\x20\x20full-bleed\x20image\x20with\x20gradient\x20overlay,\x20bold\x20headline,\x20CTA\x20pair\x0aCards:\x20\x20real\x20photos,\x20proper\x20shadow,\x20hover\x20lift,\x20loading\x20skeleton\x0aButtons:\x20primary\x20(solid\x20accent),\x20secondary\x20(ghost),\x20tertiary\x20(text)\x0aForms:\x20\x20focus\x20rings,\x20validation\x20states,\x20inline\x20labels\x0aFooter:\x20multi-column,\x20muted\x20text,\x20proper\x20spacing\x0a\x0a'+(_0x4ec94d['users']?_0x4a43c0(0x1cc)+JSON['stringify'](_0x4ec94d[_0x4a43c0(0x249)]['slice'](0x0,0x3),null,0x2)+'\x0aUse\x20this\x20for\x20realistic\x20user/team\x20sections.':'')+_0x4a43c0(0x28f);}},x=class{constructor({apiKey:_0x336c29,projectId:_0xc420ea,mode:_0x3db48b}){const _0x5e7bf5=_0x2a4093,_0x2c102d={'fHiNg':function(_0x53995d,_0x52d126){return _0x53995d||_0x52d126;}};this[_0x5e7bf5(0x190)]=_0x336c29,this['projectId']=_0xc420ea,this[_0x5e7bf5(0x253)]=_0x2c102d['fHiNg'](_0x3db48b,_0x5e7bf5(0x24d));}['isConfigured'](){return!!(this['apiKey']&&this['projectId']);}async['generate'](_0x48c858,_0x32ba06=_0x2a4093(0x1fd)){const _0x37f926=_0x2a4093,_0x3228a2={'KVwYu':'https://stitch.googleapis.com/v1/designs:generate'};if(!this[_0x37f926(0x1b0)]())return null;try{let _0xa92752=await fetch(_0x3228a2[_0x37f926(0x2ac)],{'method':'POST','headers':{'Authorization':'Bearer\x20'+this[_0x37f926(0x190)],'Content-Type':_0x37f926(0x2c2),'x-goog-user-project':this['projectId']},'body':JSON[_0x37f926(0x1b7)]({'prompt':_0x48c858,'platform':_0x32ba06,'mode':this['mode']})});return _0xa92752['ok']?await _0xa92752[_0x37f926(0x179)]():null;}catch{return null;}}};function _0x528d(_0xa773e7,_0x39c6c0){_0xa773e7=_0xa773e7-0x178;const _0x2d0afb=_0x2d0a();let _0x528de7=_0x2d0afb[_0xa773e7];if(_0x528d['uJbjZi']===undefined){var _0x1d931c=function(_0x295c82){const _0x29aa90='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45cbef='',_0x5cbd02='';for(let _0xe0388e=0x0,_0x21fbb3,_0x35a248,_0x4ae90b=0x0;_0x35a248=_0x295c82['charAt'](_0x4ae90b++);~_0x35a248&&(_0x21fbb3=_0xe0388e%0x4?_0x21fbb3*0x40+_0x35a248:_0x35a248,_0xe0388e++%0x4)?_0x45cbef+=String['fromCharCode'](0xff&_0x21fbb3>>(-0x2*_0xe0388e&0x6)):0x0){_0x35a248=_0x29aa90['indexOf'](_0x35a248);}for(let _0x4ead70=0x0,_0xd9ddf1=_0x45cbef['length'];_0x4ead70<_0xd9ddf1;_0x4ead70++){_0x5cbd02+='%'+('00'+_0x45cbef['charCodeAt'](_0x4ead70)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5cbd02);};_0x528d['VURknv']=_0x1d931c,_0x528d['CpSzmu']={},_0x528d['uJbjZi']=!![];}const _0x1e904a=_0x2d0afb[0x0],_0x55e797=_0xa773e7+_0x1e904a,_0x202b0e=_0x528d['CpSzmu'][_0x55e797];return!_0x202b0e?(_0x528de7=_0x528d['VURknv'](_0x528de7),_0x528d['CpSzmu'][_0x55e797]=_0x528de7):_0x528de7=_0x202b0e,_0x528de7;}import _0x17d811 from'dotenv';function _0x2d0a(){const _0x13d41a=['yM9VBgvHBG','zxHWzxjPBwvUDgfS','BhvJAwrLoM1LBNu','BhvJAwrLoMXPBMTLzgLU','z2vUzxjHDgu','y21UqxK','BwLJywG','Bw9Kzq','ms42','u3bHy2uGr3jVDgvZAW','vMzdrxe','Cg9W','BhvJAwrLoNbHy2THz2u','CgHVDg8Tmtu0mJmXndGZms0WnJHJzdfKyMzLzwi','te5RwNi','AMTxzxi','y29SB3jZ','y216A2S','mI4W','igLUDgvYzMfJzs4kcG','i0q5nZCWnG','CMvZB2X2zvbHBgv0Dgu','BhvJAwrLoMXVzY1PBG','CMvdBeS','C3rYAw5N','yxjYyxK','uxvPBM4','lNn2zZ9JB2XVCJ1JDxjYzw50q29SB3i','Ahr0Chm6lY93D3CUDgHLy29SB3jHCgKUy29Tl3nJAgvTzt9OzxG9','mJHWEa','DgHLBG','Cgv4zwXZ','AgL0CW','zgz2rhK','CgHVDg8Tmtq0mtK3ndiZmtuZms1JnJiYn2rInZzInMu','CgHVDg8TmtyXodaWnte4mJm4nc1HodnHogjKntDMyMu','CMvZB2X2zu1Vy2TeyxrH','BhvJAwrLoMjHCI1JAgfYDc0Y','vgf5Bg9Y','ntG5mJeWq1fWD25U','vw5RBM93BIb0B29SoIa','yM9YzgvYu3rYB25N','sgLizxy','i0i5mumXqW','BhvJAwrL','D3jPDgu','C2HHzg93CW','BMDoAuu','sfjsC1e','Ahr0Chm6lY9HCgKUDw5ZCgXHC2GUy29Tl3bOB3rVCY9Yyw5KB20/y2XPzw50x2LKpq','mtu5ndK4oeDNBuzPra','yMDqCMLTyxj5','ChjLDMLLD1vsta','BhfjELm','vw5ZCgXHC2G','C3jJ','BfDYsw4','yM9KEq','z1rVEfO','DgvZDa','z0jRrxq','uu5PCve','EfLsC0i','vxHNAKu','BhvJAwrLoMnOzxzYB24TCMLNAhq','DxnLCG','jM9YAwvUDgf0Aw9Upq','cGPpDxrWDxq6ieeGC2LUz2XLignVBxbSzxrLifjLywn0iePtwcbMAwXLlIbezwzHDwX0igv4Cg9YDc4GwMvYBYbYzxf1AxjLzcbWCM9WCY4GuhjVzhvJDgLVBIbYzwfKEs4','q1DkrKq','i0y3rJDgoa','s0LKzgG','q2HLy2SGD2HPy2GGqvbjCYbHCMuGywn0AxzLigfUzcb0AgvPCIbZDgf0DxmU','swnVBNmGkgLUBgLUzsbtvKDZihbYzs1YzxnVBhzLzcK6cG','u2HcrfO','BhvJAwrLoMnOzwnR','Cg9YDhjHAxq','ywjZDhjHy3q','mevbnuu5','r2v0ifnwrYbPy29Uihn0CMLUz3mGzM9YigeGBgLZDcbVzIbPy29Uig5HBwvZigzYB20GswnVBMLMEsaOthvJAwrLlcbqAg9ZCgHVCIWGsgvYB2LJB25ZlcbLDgmUkq','jNnHzMvZzwfYy2G9Dhj1zq','mJaXnty2ngHIB3jSvW','zgfYAW','CMvZB2X2zuLJB25Z','CgHVDg8Tmtq5nZm2nJiXnJu0oc0ZnZuYnJa3mdi5n2m','mtHWEa','ywnJzw50u29MDa','i0zfrJjgmG','x3rVugfZy2fSq2fZzq','rK1bzLO','BhvJAwrLoNrYyxnO','nJm2nKyX','sujnifbSzxGGu2fUCW','Bwv0Ag9K','ywXSu2v0DgXLza','BhvJAwrLoNbSDxm','nhb4','s1z3wxu','CgHVDg8TmtuXode4nJi4ntu4os0YzJC2ndLKztGZzta','BhvJAwrLoMLUzM8','Dg9mB3DLCKnHC2u','BgfUzhnJyxbL','iZbbmeeWqG','AK9ltgK','mcaXChGGmNb4ihjNyMeOmcWWldaSmc4WnsK','C3rKAw4','BhvJAwrLoNn0yxi','z1bWs1a','Dgv4Da','BhvJAwrLoMvKAxq','ywn0Aw9U','t3DvDgC','ms4Z','Ahr0Chm6lY9HCgKUzgLJzwjLyxiUy29TlZKUEc9HDMf0ywfHCNmVC3zNp3nLzwq9DgvZDa','r2vUzxjHDguGysbJB21WBgv0zsWGChjVzhvJDgLVBI1XDwfSAxr5ifvjihDPDgGGCMvHBcbPBwfNzxmSigLJB25ZlcbMB250CYbHBMqGy29SB3iGDg9Rzw5ZlIbszxr1CM5ZifjLywn0l0HutuWGy29Kzs4','v2TKEfq','C2vJB25Kyxj5','otzWEa','BhvJAwrLoMHLyxj0','yxbWBgLJyxrPB24VANnVBG','nJC2nZG1nLbRvMjpDq','qKTsC0C','BMf2AwDHDgLVBG','BfPJteq','zgf0yq','AxLMtxq','DgvJAa','sM9YzgfU','rNfsAwi','Ahr0Chm6lY9MB250CY5NB29NBgvHCgLZlMnVBs9JC3mYp2zHBwLSEt1qBgf5zMfPCITeAxnWBgf5oML0ywWSD2DODeaWldqWmdSWldCWmdSXldqWmczMyw1PBhK9u291CMnLk1nLCMLMkZq6AxrHBcXVChn6lhDNAhramcW4lI42mcWZmda7mcW4lI42mcW0mda7mcW4lI42mcW2mdaMzgLZCgXHEt1ZD2fW','Bw9IAwXL','DgfNCW','CgHVDg8Tmtq0mtK4nJmWmdKXnY02ndy3ngjKnJaWzdG','jYWGC2fUCY1ZzxjPzG','i0vfruvgma','mca4ChGGmZjWEcbYz2jHkdaSmcWWldaUmtaPlcaWidrWEca4ChGGCMDIysGWldaSmcWWlJa0kq','jYaGicaG4OAsica','mZjWEa','uMHrEvK','i0zbrKfgqq','DgvNEhi','C2D3Ce8','CgL4ywjHEuTLEq','yvruuvG','swnVBIbUyw1LCYbLlMCUifSIBhvJAwrLoMfYCM93lxjPz2H0iIWGiNbOB3nWAg9YoNn0yxiIlcaIAgvYB2LJB25ZoMjLBgWIxq','z21NA2y','cLn0AxrJAcbcyxnLierLC2LNBJOkvxnLihrOAxmGsfrntc9du1mGyxmGDgHLigXHEw91DcbMB3vUzgf0Aw9Ulcb0AgvUigvUAgfUy2uGAxq6cG','i0eXqtfbqq','mtfWEa','ANnVBG','BhvJAwrLoMnYzwrPDc1JyxjK','CgHVDg8TmtqXndiZnta3nZqYoc0ZmZG5odLHmMu4yZa','Dgv4DfbYAw1HCNK','Ahr0Chm6lY9HCgKUCgv4zwXZlMnVBs92ms9ZzwfYy2G/CxvLCNK9DgvZDczWzxjFCgfNzt0X','y2rUvxjS','ndHqqMjgsum','BwfW','CMvZB2X2zuzVBNrZ','mcaYnhb4idy0ChGGCMDIysGWldaSmcWWlJe0kq','ndHWEa','C291CMnL','DvHsD1O','i0q0rdreoa','uLDZBwG','Bhv4Dxj5','C3rHDhvZ','C3fXt1i','C2XPy2u','mtvWEa','CgHVDg8Tmtu1oteZnJu1ns05mZaZyMfLytHLyMq','mca4ChGGmZjWEcbYz2jHkdaSmcWWldaUndaPlcaWidrWEca4ChGGCMDIysGWldaSmcWWlJe2kq','BhvJAwrLoNzPzgvV','yxbPs2v5','ALDlsLq','CgHVDg8TmtuXodC3mdy2mdqZos00nJm2mtKWywy0nZu','m1LtD3LnwG','DhLWB2DYyxbOEq','u2jgCLy','wwX2tKm','ms4WlJa','CgL4ywjHEq','CMvZB2X2zvbHBgv0DgvgCM9Tu2vLza','re0Gu2fUCW','CMf3','qKfNvha','vgjYu04','Cgv4zwXZs2v5','BgvUz3rO','sgDxqNe','yw5HBg9NAwm','ohb4','AwnVBNm','yKXhru4','C21HBgW','x2j1AwXKugfSzxr0zuzYB21tD2f0y2HLCW','t2TrDKi','ww91igfYzsbHihDVCMXKlwnSyxnZifvjigvUz2LUzwvYlIbcDwLSzcbHignVBxbSzxrLlcbWCM9KDwn0Aw9UlwDYywrLia','jM1Vzgu9','CgfYC2u','B25SAw5L','ChvZAa','mca0ChGGmtzWEcbYz2jHkdaSmcWWldaUmZiPlcaWidjWEca0ChGGCMDIysGWldaSmcWWlJe2kq','sM1hAw4','uxr2r0C','AxndB25MAwD1CMvK','zgvZAwDUlwjYAwrNzq','mcaYChGGohb4ihjNyMeOmcWWldaSmc4YncKSidaGmxb4idjWEcbYz2jHkdaSmcWWldaUmtyP','ChjPBwfYEq','BNPKDuq','ywnJzw50','i0zgrKzgrG','C3rYAw5NAwz5','sgTRy2C','yMzZvMi','DxnLrgLJzujLyxi','Dw5ZCgXHC2GTC291CMnL','AgfUzgXLCG','iZCXnZe3qq','BMfTzq','uK5VD1q','iZi2mJyYqq','DxrMoa','CMfJr3y','C3bSAxq','CxvHza','Ahr0Chm6lY9HCgKUAwnVBMLMEs5KzxnPz24V','EunXsw8','zNHisgi','Bw9KzxjU','sujnifbSzxGGtw9UBW','qJq1mZa5','rMLUzcbYzwfSihbOB3rVz3jHCgH5igzVCIbHigDPDMvUihrVCgLJlIbszxr1CM5ZifvsthmGzNjVBsbvBNnWBgfZAc9qzxHLBhmVugL4ywjHEs4','cK1Vy2SGvxnLCNmGrgf0ysbbDMfPBgfIBgu6cG','i0y1ouuWqG','mJaYnc0Xms0Wnq','Dw5ZCgXHC2HlzxK','Afrmv2e','i0vgndq0na','vwv6rhK','EK1ZwhO','B1zXAvi','C2v0rw5JB2rPBMC','Ahr0Chm6lY9WAxHHyMf5lMnVBs9HCgKVp3e9','DxjSCW','D3zKBvy','i0rdmJyYnG','BwvZC2fNzq','remYnJi2','x2v4DhjHy3rlzxL3B3jK','i0u0rtrfnW','BhvJAwrLoNnOB3bWAw5NlwjHzW','AM9PBG','rhjLDW','CgvYC29Uyxm','zMv0y2Hjy29Uu1zhCW','AMHTvM8','CgHVDg8Tmtu1ntm5nJi3mY0ZnJDLytrLyJrKyJu','jYaG4OAsica','qurgvMO','yvHTwNq','y2HLy2TbBgXbueLZ','Ehf5ywe','ywX0x2rLC2nYAxb0Aw9U','yxv0BW','qMj1wg8','BhvJAwrLoMLTywDL','CMvZB2X2zuLTywDLCW','odbWEa','zw50CMLLCW','BhvJAwrLoNbSyxK','AKjHEge','v2HHDcbvssb0BYbIDwLSza','CgHVDg8Tmtu1otC1nZe0oc01yZm1mgqWzdnJnty','iZeWqJK4mq','zM9YrwfJAa','v01Trfe','r2v0igeGy29TCgXLDguGzgvZAwDUihrVA2vUihnLDcaOy29SB3jZlcb0ExbVz3jHCgH5lcbZCgfJAw5NlcbZAgfKB3DZlcbYywrPAsKGzM9YigeGDgHLBwuU','yvbfsNe','q05mA3u','mca0ChGGmtzWEcbYz2jHkdaSmcWWldaUmdGPlcaWidjWEca0ChGGCMDIysGWldaSmcWWlJa0kq','q29YBw9Yyw50ieDHCMfTB25K','D2vI','CgHVDg8TmtuYmZa1mdG1nda1oc04zgy5mdeXmgm5zJe','D1fAzha','ota5odGXmwr3r0vTwq','zwrPDg9YAwfS','Ahr0Chm6lY9MB250CY5NB29NBgvHCgLZlMnVBs9JC3mYp2zHBwLSEt1etsTtyw5ZoML0ywWSB3bZEIX3z2H0qdaSos4UndaSmZaWoZaSos4UndaSndaWoZaSos4UndaSntaWoZaSos4UndaSnZaWjMzHBwLSEt1kzxrcCMfPBNmRtw9UBZP3z2H0qdqWmdS1mdaMzgLZCgXHEt1ZD2fW','Dhj1zq','u2rsuwi','BhvJAwrLoM1LC3nHz2uTy2LYy2XL','iZaYodrdnW','CMvZB2X2zuf2yxrHCNm','Ahr0Chm6lY9HCgKUAwnVBMLMEs5KzxnPz24VBhvJAwrLl3n0yxiUC3zN','CMvZB2X2zq','BhvJAwrLoNnLDhrPBMDZ','CMXrD1m','A2v5CW','Ahr0Chm6lY9PBwfNzxmUDw5ZCgXHC2GUy29TlW','CgHVDg8Tmtu1mti4oda0os1IzwjKytrLmZHMnZe','BhvJAwrLoNbPzs1JAgfYDa','CgHVDg8Tmtq4ody0nJK1mZaXnc04nwnIndrLmJu4mJG','ChjVAMvJDeLK','uMLSzxK','mJbWEa','ywX0','BevUAuW','CgHVDg8Tmtq2mtC0oti4mdy4nc1Ky2nIytyZmguYzJy','z3PfCu8','mtjWEa','wuvPwLe','uuzIAKi','y29TBwvUDhm','z29Vz2XLvxjS','Ahr0Chm6lY9QC29UCgXHy2vOB2XKzxiUDhLWAwnVzguUy29Tl3bVC3rZp19SAw1PDd02','jYWGBw9UB3nWywnL','C2vLza','mZzWEa','quPlEMy','EePoBvi','C3rHCNq','CvHes0u','mZKWntGYneHlDgToqq','qMLRvfG','BhvJAwrLoNnLyxjJAa','DMfSDwu','BgLNAhq','x2zHBgXIywnRugfSzxr0zq','y09fsvy','Agv4','Ahr0Chm6lY93D3CUDgHLy29SB3jHCgKUy29Tl2LKp2HLEd02rdi4rdK','mtzWEa','CgHVDg8Tmtq3nZK1otG1odyXnY02n2y4nwnMngyXzgy','zgLZCgXHEq','D0Dozee','r2vUzxjHDguGysbOyxjTB25PB3vZignVBg9YihbHBgv0DguGzM9YigeGz2L2zw4GDgHLBwuGB3iGC2vLzcbJB2XVCI4','yNvPBgq','Cg9JBfe','BhvJAwrLoNvZzxi','otK5oxb4','Aw1WB3j0tgLUzq','y2f0y2G','iZbgmeyXma','CgHPqKC','s2LbwKu','y29UzMLN','B2jQzwn0','CxfsCLO','A09wBxi','nJrWEa','zgvZy3jPChrPB24','CgHVDg9Z','mJrWEa','Dgv4DfnLy29UzgfYEq','CgHVDg8Tmtu1nZy4mJiYnc01yJG1otbJzdLLyZu','iZuYnti1qG','nJu5nJiWuMTcEeL3','Aw1WB3j0ihSG','DxnLCNm','C3f1yxjL','BhvJAwrLoNLVDxr1yMu'];_0x2d0a=function(){return _0x13d41a;};return _0x2d0a();}_0x17d811['config']();var p=new f({'unsplashKey':process.env.UNSPLASH_ACCESS_KEY,'pexelsKey':process.env.PEXELS_API_KEY,'googleFontsKey':process.env.GOOGLE_FONTS_API_KEY,'useColorAPI':process.env.USE_COLOR_API==='true','useIconify':process.env.USE_ICONIFY===_0x2a4093(0x203),'useDiceBear':process.env.USE_DICEBEAR==='true','usePixabay':process.env.USE_PIXABAY===_0x2a4093(0x203)}),F=new y(),k=new b(),v=new x({'apiKey':process.env.STITCH_API_KEY,'projectId':process.env.GOOGLE_CLOUD_PROJECT,'mode':process.env.STITCH_MODE||_0x2a4093(0x24d)}),O=w({'name':_0x2a4093(0x1b1),'version':_0x2a4093(0x197),'tools':{'generate_ui':{'description':_0x2a4093(0x2bd),'inputSchema':{'type':'object','properties':{'prompt':{'type':_0x2a4093(0x264),'description':_0x2a4093(0x1f3)},'theme':{'type':'string','enum':['auto',_0x2a4093(0x1c8),_0x2a4093(0x201),_0x2a4093(0x188),'tech'],'default':_0x2a4093(0x1eb)},'darkMode':{'type':'boolean','default':!0x1},'platform':{'type':_0x2a4093(0x264),'enum':[_0x2a4093(0x1fd),_0x2a4093(0x2cd)],'default':'web'}},'required':['prompt']},'handler':async({prompt:_0x44f1a7,theme:_0x384ae9=_0x2a4093(0x1eb),darkMode:_0x23dc32=!0x1,platform:_0x8b9ef0=_0x2a4093(0x1fd)})=>{const _0x393d51=_0x2a4093,_0x16826b={'wVDEQ':function(_0x4bec65,_0x49968e){return _0x4bec65===_0x49968e;},'BKRsG':function(_0x544a57,_0x4bcd9e){return _0x544a57(_0x4bcd9e);}};let _0x2889fe=_0x16826b['wVDEQ'](_0x384ae9,'auto')?_0x16826b[_0x393d51(0x2c4)](T,_0x44f1a7):_0x384ae9,[_0xd2f592,_0x402c58,_0x2e4147,_0x43d455,_0x36f9af,_0x2b0921]=await Promise['all']([p[_0x393d51(0x1ee)](_0x44f1a7,0x5),p['resolveIcons'](_0x44f1a7,0xc),p['resolvePalette'](_0x2889fe,_0x23dc32),p[_0x393d51(0x181)](_0x2889fe),p[_0x393d51(0x270)](_0x44f1a7),p[_0x393d51(0x207)](0x3)]),_0x31a126=F[_0x393d51(0x250)]({'palette':_0x2e4147,'fonts':_0x43d455,'theme':_0x2889fe,'darkMode':_0x23dc32}),_0xa7a5e7=null;return v[_0x393d51(0x1b0)]()&&(_0xa7a5e7=await v['generate'](_0x44f1a7,_0x8b9ef0)['catch'](()=>null)),{'systemPrompt':k['build']({'tokens':_0x31a126,'fonts':_0x43d455,'images':_0xd2f592,'icons':_0x402c58,'mockData':_0x36f9af,'avatars':_0x2b0921,'stitchOutput':_0xa7a5e7,'platform':_0x8b9ef0,'darkMode':_0x23dc32}),'resolvedAssets':{'images':_0xd2f592,'icons':_0x402c58,'palette':_0x2e4147,'fonts':_0x43d455,'mockData':_0x36f9af,'avatars':_0x2b0921},'tokens':_0x31a126,'stitchAvailable':!!_0xa7a5e7};}},'resolve_images':{'description':_0x2a4093(0x1cb),'inputSchema':{'type':'object','properties':{'query':{'type':_0x2a4093(0x264)},'count':{'type':'number','default':0x5},'orientation':{'type':'string','enum':['landscape',_0x2a4093(0x297),_0x2a4093(0x24a)],'default':'landscape'}},'required':['query']},'handler':async({query:_0x4516b8,count:_0x32b75c=0x5,orientation:_0x14159f=_0x2a4093(0x2b0)})=>p['resolveImages'](_0x4516b8,_0x32b75c,_0x14159f)},'resolve_palette':{'description':_0x2a4093(0x232),'inputSchema':{'type':_0x2a4093(0x23d),'properties':{'seed':{'type':_0x2a4093(0x264),'description':'Hex\x20color\x20or\x20theme\x20name\x20(e.g.\x20#6D28D9\x20or\x20\x22ocean\x22)'},'mode':{'type':'string','enum':['analogic','complement','triad',_0x2a4093(0x1c4)],'default':_0x2a4093(0x1a1)},'darkMode':{'type':_0x2a4093(0x24c),'default':!0x1}},'required':[_0x2a4093(0x21f)]},'handler':async({seed:_0x444360,mode:_0x5eac0f=_0x2a4093(0x1a1),darkMode:_0x505a48=!0x1})=>p[_0x2a4093(0x199)](_0x444360,_0x5eac0f,_0x505a48)},'resolve_icons':{'description':_0x2a4093(0x29a),'inputSchema':{'type':_0x2a4093(0x23d),'properties':{'icons':{'type':_0x2a4093(0x265),'items':{'type':'string'},'description':_0x2a4093(0x2db)}},'required':[_0x2a4093(0x1a3)]},'handler':async({icons:_0x536abf})=>p['fetchIconSVGs'](_0x536abf)},'get_design_tokens':{'description':_0x2a4093(0x1f8),'inputSchema':{'type':_0x2a4093(0x23d),'properties':{'theme':{'type':'string','enum':[_0x2a4093(0x1c8),'editorial','luxury','tech'],'default':_0x2a4093(0x1c8)},'darkMode':{'type':'boolean','default':!0x1},'accentColor':{'type':'string','description':'Optional\x20hex\x20accent\x20color\x20to\x20override\x20default'}}},'handler':async({theme:_0x44e99f='modern',darkMode:_0x472e60=!0x1,accentColor:_0x3d79a6})=>{const _0x15cca3=_0x2a4093;let _0x39c908=await p[_0x15cca3(0x261)](_0x44e99f,_0x472e60);return _0x3d79a6&&(_0x39c908[_0x15cca3(0x1b5)]=_0x3d79a6),F['generate']({'palette':_0x39c908,'theme':_0x44e99f,'darkMode':_0x472e60});}},'status':{'description':_0x2a4093(0x293),'inputSchema':{'type':'object','properties':{}},'handler':async()=>{const _0x171279=_0x2a4093;let _0x2da7b3=await p['checkAllAPIs']();return{'bridge':_0x171279(0x1ab),'version':_0x171279(0x197),'theme':process.env.DEFAULT_THEME||_0x171279(0x1eb),'apis':_0x2da7b3,'stitchConfigured':v['isConfigured']()};}}}});function T(_0x582b0d){const _0x55b323=_0x2a4093,_0x7b63={'wrWNV':'luxury','ymJvB':function(_0x19e3da,_0x2d89ae){return _0x19e3da===_0x2d89ae;},'hTLWa':'auto','iOomS':_0x55b323(0x1c8)};let _0x16831f=_0x582b0d['toLowerCase']();return/(finance|bank|saas|dashboard|enterprise|analytics|data|metrics)/[_0x55b323(0x287)](_0x16831f)?_0x55b323(0x2c9):/(luxury|fashion|jewelry|beauty|premium|boutique|haute|couture)/[_0x55b323(0x287)](_0x16831f)?_0x7b63['wrWNV']:/(magazine|editorial|blog|news|article|media|journal|story)/['test'](_0x16831f)?'editorial':_0x7b63['ymJvB'](process.env.DEFAULT_THEME,_0x7b63[_0x55b323(0x1d0)])?_0x7b63['iOomS']:process.env.DEFAULT_THEME||_0x55b323(0x1c8);}O[_0x2a4093(0x223)](),console['error']('MCP\x20Design\x20Bridge\x20running\x20—\x20all\x20APIs\x20active');