@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.
- package/README.md +67 -36
- package/dist/bin/cli.js +2 -0
- package/dist/design-bridge/bridge.js +2 -0
- package/dist/figma-bridge-plugin/bridge-relay.js +2 -0
- package/dist/figma-bridge-plugin/code.js +1 -0
- package/{figma-bridge-plugin → dist/figma-bridge-plugin}/package-lock.json +0 -3
- package/dist/figma-bridge-plugin/ui.html +4970 -0
- package/dist/figma-intelligence-layer/dist/index.js +2 -0
- package/dist/scripts/clean-existing-chunks.js +2 -0
- package/dist/scripts/connect-ai-tool.js +2 -0
- package/dist/scripts/convert-hub-pdfs.js +2 -0
- package/dist/scripts/figma-mcp-status.js +2 -0
- package/dist/scripts/register-codex-mcp.js +2 -0
- package/dist/scripts/test-copilot-chat.js +2 -0
- package/package.json +11 -8
- package/bin/cli.js +0 -859
- package/design-bridge/bridge.js +0 -196
- package/design-bridge/lib/assets.js +0 -367
- package/design-bridge/lib/prompt.js +0 -85
- package/design-bridge/lib/server.js +0 -66
- package/design-bridge/lib/stitch.js +0 -37
- package/design-bridge/lib/tokens.js +0 -82
- package/design-bridge/package-lock.json +0 -579
- package/figma-bridge-plugin/README.md +0 -97
- package/figma-bridge-plugin/anthropic-chat-runner.js +0 -192
- package/figma-bridge-plugin/bridge-relay.js +0 -2505
- package/figma-bridge-plugin/chat-runner.js +0 -485
- package/figma-bridge-plugin/code.js +0 -1534
- package/figma-bridge-plugin/codex-runner.js +0 -505
- package/figma-bridge-plugin/component-schemas.js +0 -110
- package/figma-bridge-plugin/content-context.js +0 -869
- package/figma-bridge-plugin/create-button.js +0 -216
- package/figma-bridge-plugin/gemini-cli-runner.js +0 -291
- package/figma-bridge-plugin/gemini-runner.js +0 -187
- package/figma-bridge-plugin/html-to-figma.js +0 -927
- package/figma-bridge-plugin/knowledge-hub/.gitkeep +0 -0
- package/figma-bridge-plugin/knowledge-hub/uspec-references/anatomy-spec.md +0 -159
- package/figma-bridge-plugin/knowledge-hub/uspec-references/api-spec.md +0 -162
- package/figma-bridge-plugin/knowledge-hub/uspec-references/color-spec.md +0 -148
- package/figma-bridge-plugin/knowledge-hub/uspec-references/full-spec-template.md +0 -314
- package/figma-bridge-plugin/knowledge-hub/uspec-references/property-spec.md +0 -175
- package/figma-bridge-plugin/knowledge-hub/uspec-references/screen-reader-spec.md +0 -180
- package/figma-bridge-plugin/knowledge-hub/uspec-references/structure-spec.md +0 -165
- package/figma-bridge-plugin/perplexity-runner.js +0 -188
- package/figma-bridge-plugin/references/SKILL.md +0 -178
- package/figma-bridge-plugin/references/anatomy-spec.md +0 -159
- package/figma-bridge-plugin/references/api-spec.md +0 -162
- package/figma-bridge-plugin/references/color-spec.md +0 -148
- package/figma-bridge-plugin/references/full-spec-template.md +0 -314
- package/figma-bridge-plugin/references/property-spec.md +0 -175
- package/figma-bridge-plugin/references/screen-reader-spec.md +0 -180
- package/figma-bridge-plugin/references/structure-spec.md +0 -165
- package/figma-bridge-plugin/shared-prompt-config.js +0 -645
- package/figma-bridge-plugin/spec-helpers/build-table.js +0 -269
- package/figma-bridge-plugin/spec-helpers/classify-elements.js +0 -189
- package/figma-bridge-plugin/spec-helpers/index.js +0 -35
- package/figma-bridge-plugin/spec-helpers/parse-figma-link.js +0 -49
- package/figma-bridge-plugin/spec-helpers/position-markers.js +0 -158
- package/figma-bridge-plugin/stitch-auth.js +0 -322
- package/figma-bridge-plugin/stitch-runner.js +0 -1427
- package/figma-bridge-plugin/token-resolver.js +0 -107
- package/figma-bridge-plugin/ui.html +0 -4542
- package/figma-intelligence-layer/.env.example +0 -39
- package/figma-intelligence-layer/docs/local-image-generation.md +0 -60
- package/figma-intelligence-layer/examples/comfyui-workflow-template.example.json +0 -101
- package/figma-intelligence-layer/jest.config.js +0 -14
- package/figma-intelligence-layer/mcp-config.json +0 -19
- package/figma-intelligence-layer/package-lock.json +0 -5892
- package/figma-intelligence-layer/scripts/setup-comfyui-local.sh +0 -67
- package/figma-intelligence-layer/scripts/start-comfyui.sh +0 -33
- package/figma-intelligence-layer/src/index.ts +0 -2233
- package/figma-intelligence-layer/src/shared/auto-layout-validator.ts +0 -404
- package/figma-intelligence-layer/src/shared/cache.ts +0 -187
- package/figma-intelligence-layer/src/shared/color-operations.ts +0 -533
- package/figma-intelligence-layer/src/shared/color-utils.ts +0 -138
- package/figma-intelligence-layer/src/shared/component-script-builder.ts +0 -413
- package/figma-intelligence-layer/src/shared/component-templates.ts +0 -2767
- package/figma-intelligence-layer/src/shared/concept-taxonomy.ts +0 -694
- package/figma-intelligence-layer/src/shared/decision-log.ts +0 -128
- package/figma-intelligence-layer/src/shared/design-system-context.ts +0 -568
- package/figma-intelligence-layer/src/shared/design-system-intelligence.ts +0 -131
- package/figma-intelligence-layer/src/shared/design-system-matcher.ts +0 -184
- package/figma-intelligence-layer/src/shared/design-system-normalizers.ts +0 -196
- package/figma-intelligence-layer/src/shared/design-system-tokens.ts +0 -295
- package/figma-intelligence-layer/src/shared/dtcg-validator.ts +0 -530
- package/figma-intelligence-layer/src/shared/enrichment-pipeline.ts +0 -671
- package/figma-intelligence-layer/src/shared/figma-bridge.ts +0 -1418
- package/figma-intelligence-layer/src/shared/font-config.ts +0 -126
- package/figma-intelligence-layer/src/shared/icon-catalog.ts +0 -360
- package/figma-intelligence-layer/src/shared/icon-fetch.ts +0 -80
- package/figma-intelligence-layer/src/shared/prototype-script-builder.ts +0 -162
- package/figma-intelligence-layer/src/shared/response-compression.ts +0 -440
- package/figma-intelligence-layer/src/shared/semantic-token-catalog.ts +0 -324
- package/figma-intelligence-layer/src/shared/token-binder.ts +0 -505
- package/figma-intelligence-layer/src/shared/token-math.ts +0 -427
- package/figma-intelligence-layer/src/shared/token-naming.ts +0 -468
- package/figma-intelligence-layer/src/shared/token-utils.ts +0 -420
- package/figma-intelligence-layer/src/shared/types.ts +0 -346
- package/figma-intelligence-layer/src/shared/typography-presets.ts +0 -94
- package/figma-intelligence-layer/src/shared/unsplash.ts +0 -165
- package/figma-intelligence-layer/src/shared/vision-client.ts +0 -607
- package/figma-intelligence-layer/src/shared/vision-provider-anthropic.ts +0 -334
- package/figma-intelligence-layer/src/shared/vision-provider-openai.ts +0 -446
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotate-handler.ts +0 -782
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotate-renderer.ts +0 -496
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/a11y-annotation-kit.ts +0 -230
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/colorblind-sim.ts +0 -66
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/index.ts +0 -810
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-analyzer.ts +0 -1191
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-figma-page.ts +0 -1346
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/keyboard-sr-order-handler.ts +0 -148
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/vpat-figma-page.ts +0 -499
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/vpat-report.ts +0 -910
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/wcag-checker.ts +0 -989
- package/figma-intelligence-layer/src/tools/phase1-vision/a11y-audit/wcag-criteria.ts +0 -1160
- package/figma-intelligence-layer/src/tools/phase1-vision/design-from-ref/index.ts +0 -424
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/component-recognizer.ts +0 -38
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/ds-matcher.ts +0 -111
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/font-matcher.ts +0 -114
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/icon-resolver.ts +0 -103
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/index.ts +0 -1060
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/layout-segmenter.ts +0 -18
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/token-inferencer.ts +0 -39
- package/figma-intelligence-layer/src/tools/phase1-vision/screen-cloner/vision-pipeline.ts +0 -58
- package/figma-intelligence-layer/src/tools/phase1-vision/sketch-to-design/index.ts +0 -298
- package/figma-intelligence-layer/src/tools/phase1-vision/visual-audit/index.ts +0 -197
- package/figma-intelligence-layer/src/tools/phase2-accuracy/component-audit/index.ts +0 -494
- package/figma-intelligence-layer/src/tools/phase2-accuracy/intent-translator/index.ts +0 -356
- package/figma-intelligence-layer/src/tools/phase2-accuracy/layout-intelligence/container-patterns.ts +0 -123
- package/figma-intelligence-layer/src/tools/phase2-accuracy/layout-intelligence/index.ts +0 -663
- package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/built-in-rules.yaml +0 -56
- package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/index.ts +0 -614
- package/figma-intelligence-layer/src/tools/phase2-accuracy/lint-rules/rule-engine.ts +0 -113
- package/figma-intelligence-layer/src/tools/phase2-accuracy/theme-generator/color-theory.ts +0 -178
- package/figma-intelligence-layer/src/tools/phase2-accuracy/theme-generator/index.ts +0 -470
- package/figma-intelligence-layer/src/tools/phase2-accuracy/variant-expander/index.ts +0 -429
- package/figma-intelligence-layer/src/tools/phase2-accuracy/variant-expander/token-override-maps.ts +0 -226
- package/figma-intelligence-layer/src/tools/phase3-generation/ai-image-insert/index.ts +0 -535
- package/figma-intelligence-layer/src/tools/phase3-generation/component-archaeologist/index.ts +0 -660
- package/figma-intelligence-layer/src/tools/phase3-generation/component-archaeologist/pattern-fingerprints.ts +0 -209
- package/figma-intelligence-layer/src/tools/phase3-generation/composition-builder/index.ts +0 -540
- package/figma-intelligence-layer/src/tools/phase3-generation/figma-animated-build.ts +0 -391
- package/figma-intelligence-layer/src/tools/phase3-generation/page-architect/index.ts +0 -2019
- package/figma-intelligence-layer/src/tools/phase3-generation/page-architect/screen-templates.ts +0 -131
- package/figma-intelligence-layer/src/tools/phase3-generation/prototype-map/index.ts +0 -381
- package/figma-intelligence-layer/src/tools/phase3-generation/prototype-wire/index.ts +0 -565
- package/figma-intelligence-layer/src/tools/phase3-generation/swarm-build/index.ts +0 -764
- package/figma-intelligence-layer/src/tools/phase3-generation/system-drift/index.ts +0 -535
- package/figma-intelligence-layer/src/tools/phase3-generation/unsplash-search/index.ts +0 -84
- package/figma-intelligence-layer/src/tools/phase3-generation/url-to-frame/index.ts +0 -401
- package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/css-animations.ts +0 -68
- package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/framer-motion.ts +0 -78
- package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/code-generators/swift-animations.ts +0 -93
- package/figma-intelligence-layer/src/tools/phase4-sync/animation-specifier/index.ts +0 -596
- package/figma-intelligence-layer/src/tools/phase4-sync/ci-check/index.ts +0 -462
- package/figma-intelligence-layer/src/tools/phase4-sync/export-tokens/index.ts +0 -1470
- package/figma-intelligence-layer/src/tools/phase4-sync/generate-component-code/index.ts +0 -829
- package/figma-intelligence-layer/src/tools/phase4-sync/handoff-spec/index.ts +0 -702
- package/figma-intelligence-layer/src/tools/phase4-sync/icon-library-sync/index.ts +0 -483
- package/figma-intelligence-layer/src/tools/phase4-sync/sync-from-code/index.ts +0 -501
- package/figma-intelligence-layer/src/tools/phase4-sync/sync-from-code/storybook-parser.ts +0 -106
- package/figma-intelligence-layer/src/tools/phase4-sync/watch-docs/index.ts +0 -676
- package/figma-intelligence-layer/src/tools/phase4-sync/webhook-listener/index.ts +0 -560
- package/figma-intelligence-layer/src/tools/phase5-governance/apg-doc/index.ts +0 -1043
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/component-detection.ts +0 -620
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/anatomy.ts +0 -331
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/color-tokens.ts +0 -77
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/properties.ts +0 -54
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/snapshot.ts +0 -287
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/spacing.ts +0 -71
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/states.ts +0 -43
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/extractors/typography.ts +0 -71
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/index.ts +0 -221
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/_default.ts +0 -166
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/accordion.ts +0 -232
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/alert.ts +0 -234
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/avatar-group.ts +0 -270
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/avatar.ts +0 -249
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/badge.ts +0 -231
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/banner.ts +0 -293
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/breadcrumb.ts +0 -240
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/button.ts +0 -243
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/calendar.ts +0 -307
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/card.ts +0 -143
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/checkbox.ts +0 -227
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/chip.ts +0 -233
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/combobox.ts +0 -282
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/datepicker.ts +0 -276
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/divider.ts +0 -223
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/drawer.ts +0 -255
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/dropdown-menu.ts +0 -289
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/empty-state.ts +0 -261
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/file-uploader.ts +0 -290
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/form.ts +0 -265
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/grid.ts +0 -238
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/icon.ts +0 -255
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/index.ts +0 -128
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/inline-edit.ts +0 -286
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/inline-message.ts +0 -255
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/input.ts +0 -330
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/link.ts +0 -247
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/list.ts +0 -250
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/menu.ts +0 -247
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/modal.ts +0 -144
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/navbar.ts +0 -264
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/navigation.ts +0 -251
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/number-input.ts +0 -261
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/pagination.ts +0 -248
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/popover.ts +0 -270
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/progress.ts +0 -251
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/radio.ts +0 -142
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/range-slider.ts +0 -282
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/rating.ts +0 -250
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/search.ts +0 -258
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/segmented-control.ts +0 -265
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/select.ts +0 -319
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/skeleton.ts +0 -256
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/slider.ts +0 -232
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/spinner.ts +0 -239
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/status-dot.ts +0 -252
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/stepper.ts +0 -270
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/table.ts +0 -244
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tabs.ts +0 -143
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tag.ts +0 -243
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/textarea.ts +0 -259
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/time-picker.ts +0 -293
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toast.ts +0 -144
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toggle.ts +0 -289
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/toolbar.ts +0 -267
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/tooltip.ts +0 -232
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/treeview.ts +0 -257
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/knowledge/typography.ts +0 -319
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/legacy-compat.ts +0 -121
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/anatomy-diagram.ts +0 -430
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/figma-page.ts +0 -312
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/json.ts +0 -129
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/markdown.ts +0 -78
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/renderers/visual-doc.ts +0 -2333
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/accessibility.ts +0 -100
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/anatomy.ts +0 -32
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/color-tokens.ts +0 -59
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/content-guidance.ts +0 -18
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/design-tokens.ts +0 -53
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/interaction-rules.ts +0 -19
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/overview.ts +0 -91
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/properties-api.ts +0 -71
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/qa-criteria.ts +0 -19
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/related-components.ts +0 -110
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/responsive.ts +0 -19
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/size-specs.ts +0 -67
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/spacing-structure.ts +0 -58
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/state-specs.ts +0 -79
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/states.ts +0 -50
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/type-hierarchy.ts +0 -33
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/typography.ts +0 -55
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/usage-guidelines.ts +0 -73
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/sections/variants.ts +0 -81
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec/types.ts +0 -409
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/index.ts +0 -198
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/renderer.ts +0 -701
- package/figma-intelligence-layer/src/tools/phase5-governance/component-spec-sheet/types.ts +0 -88
- package/figma-intelligence-layer/src/tools/phase5-governance/decision-log/index.ts +0 -135
- package/figma-intelligence-layer/src/tools/phase5-governance/design-decision-log/index.ts +0 -491
- package/figma-intelligence-layer/src/tools/phase5-governance/ds-primitives/index.ts +0 -416
- package/figma-intelligence-layer/src/tools/phase5-governance/ds-scaffolder/index.ts +0 -722
- package/figma-intelligence-layer/src/tools/phase5-governance/ds-variables/index.ts +0 -449
- package/figma-intelligence-layer/src/tools/phase5-governance/health-report/index.ts +0 -393
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/index.ts +0 -406
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/figma-page.ts +0 -292
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/json.ts +0 -24
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/markdown.ts +0 -172
- package/figma-intelligence-layer/src/tools/phase5-governance/taxonomy-docs/renderers/naming-guide.ts +0 -409
- package/figma-intelligence-layer/src/tools/phase5-governance/token-analytics/index.ts +0 -594
- package/figma-intelligence-layer/src/tools/phase5-governance/token-docs/index.ts +0 -710
- package/figma-intelligence-layer/src/tools/phase5-governance/token-migrate/index.ts +0 -458
- package/figma-intelligence-layer/src/tools/phase5-governance/token-naming/index.ts +0 -134
- package/figma-intelligence-layer/tests/apg-doc.test.ts +0 -101
- package/figma-intelligence-layer/tests/design-system-context.test.ts +0 -152
- package/figma-intelligence-layer/tests/design-system-matcher.test.ts +0 -144
- package/figma-intelligence-layer/tests/figma-bridge.test.ts +0 -83
- package/figma-intelligence-layer/tests/generate-image-and-insert.test.ts +0 -56
- package/figma-intelligence-layer/tests/screen-cloner-regression.test.ts +0 -69
- package/figma-intelligence-layer/tests/smoke.test.ts +0 -174
- package/figma-intelligence-layer/tests/spec-generator.test.ts +0 -127
- package/figma-intelligence-layer/tests/token-migrate.test.ts +0 -21
- package/figma-intelligence-layer/tests/token-naming.test.ts +0 -30
- package/figma-intelligence-layer/tsconfig.json +0 -19
- package/scripts/clean-existing-chunks.js +0 -179
- package/scripts/connect-ai-tool.js +0 -490
- package/scripts/convert-hub-pdfs.js +0 -425
- package/scripts/figma-mcp-status.js +0 -349
- package/scripts/register-codex-mcp.js +0 -96
- /package/{design-bridge → dist/design-bridge}/.env.example +0 -0
- /package/{design-bridge → dist/design-bridge}/package.json +0 -0
- /package/{figma-bridge-plugin → dist/figma-bridge-plugin}/manifest.json +0 -0
- /package/{figma-bridge-plugin → dist/figma-bridge-plugin}/package.json +0 -0
- /package/{figma-intelligence-layer → dist/figma-intelligence-layer}/package.json +0 -0
package/README.md
CHANGED
|
@@ -3,35 +3,30 @@
|
|
|
3
3
|
[](https://nodejs.org)
|
|
4
4
|
[](https://www.npmjs.com/package/@sarjallab09/figma-intelligence)
|
|
5
5
|
[](https://creativecommons.org/licenses/by-nc-nd/4.0/)
|
|
6
|
-
[]()
|
|
7
7
|
|
|
8
|
-
>
|
|
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)
|
|
11
|
+
You (chat in Figma plugin) <---> Local Relay <---> Claude / OpenAI Codex / Gemini CLI
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
-
## Quick Start
|
|
16
|
+
## Quick Start
|
|
17
17
|
|
|
18
|
-
### 1
|
|
18
|
+
### Step 1: Install an AI CLI and log in
|
|
19
19
|
|
|
20
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
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 **
|
|
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** |
|
|
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
|
package/dist/bin/cli.js
ADDED
|
@@ -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');
|