appiq-solution 1.1.0 → 1.3.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/#NEW APP PROMPT/ARCHITECTURE.md +279 -0
- package/#NEW APP PROMPT/ARCHITECTURE_UNIFIED.md +414 -0
- package/#NEW APP PROMPT/accesibility_prompt.md +103 -0
- package/#NEW APP PROMPT/clean-code.mdc +55 -0
- package/#NEW APP PROMPT/codequality.mdc +47 -0
- package/#NEW APP PROMPT/flutter-ai-rules/LICENSE +21 -0
- package/#NEW APP PROMPT/flutter-ai-rules/README.md +104 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/README.md +25 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart.md +192 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart__under_6K.md +99 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_bloc_mocktail.md +308 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_bloc_mocktail__under_6K.md +87 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_change_notifier.md +254 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_change_notifier__under_6K.md +98 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_provider.md +261 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_provider__under_6K.md +105 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_riverpod_mockito.md +371 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_riverpod_mockito__under_6K.md +92 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_bloc.md +287 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_bloc__under_6K.md +68 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_riverpod.md +375 -0
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_riverpod__under_6K.md +106 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/flutter_ai_rules.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/mocktail_md_01.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/mocktail_md_02.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/bloc.md +94 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/dart_3_updates.md +93 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/effective_dart.md +105 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_app_architecture.md +57 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_change_notifier.md +62 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_errors.md +11 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/mockito.md +31 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/mocktail.md +24 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/provider.md +69 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/riverpod.md +188 -0
- package/#NEW APP PROMPT/generate ssh.md +4 -0
- package/#NEW APP PROMPT/project_ai_prompt.md +544 -0
- package/{CHANGELOG.md → #Tools/APPIQ-METHOD/CHANGELOG.md} +173 -119
- package/#Tools/APPIQ-METHOD/README.md +139 -0
- package/#Tools/APPIQ-METHOD/appiq_start.md +232 -0
- package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/architect.md +0 -6
- package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/bmad-orchestrator.md +84 -0
- package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/dev.md +9 -23
- package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/pm.md +1 -3
- package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/qa.md +0 -17
- package/#Tools/APPIQ-METHOD/bmad-core/data/technical-preferences.md +3 -0
- package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/fullstack-architecture-tmpl.yaml +5 -12
- package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/user-guide.md +9 -10
- package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/working-in-the-brownfield.md +36 -39
- package/#Tools/APPIQ-METHOD/deployment/DEPLOYMENT_GUIDE.md +426 -0
- package/#Tools/APPIQ-METHOD/deployment/GITHUB_RELEASE_GUIDE.md +326 -0
- package/#Tools/APPIQ-METHOD/deployment/README.md +331 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-all.yaml +14 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-fullstack.yaml +18 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-ide-minimal.yaml +10 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-no-ui.yaml +13 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/analyst.md +81 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/architect.md +84 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/bmad-master.md +108 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/bmad-orchestrator.md +234 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/dev.md +76 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/pm.md +79 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/po.md +76 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/qa.md +69 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/sm.md +62 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/ux-expert.md +66 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/architect-checklist.md +443 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/change-checklist.md +182 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/pm-checklist.md +375 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/po-master-checklist.md +441 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/story-dod-checklist.md +101 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/story-draft-checklist.md +156 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/bmad-kb.md +803 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/brainstorming-techniques.md +36 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/elicitation-methods.md +134 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/technical-preferences.md +3 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/advanced-elicitation.md +117 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/brownfield-create-epic.md +160 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/brownfield-create-story.md +147 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/correct-course.md +70 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-brownfield-story.md +304 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-deep-research-prompt.md +289 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-next-story.md +112 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/document-project.md +341 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/facilitate-brainstorming-session.md +136 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/generate-ai-frontend-prompt.md +51 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/index-docs.md +179 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/kb-mode-interaction.md +75 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/review-story.md +145 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/shard-doc.md +187 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/validate-next-story.md +134 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/architecture-tmpl.yaml +650 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brownfield-architecture-tmpl.yaml +476 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brownfield-prd-tmpl.yaml +280 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/competitor-analysis-tmpl.yaml +293 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/front-end-architecture-tmpl.yaml +206 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/front-end-spec-tmpl.yaml +349 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/fullstack-architecture-tmpl.yaml +805 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/market-research-tmpl.yaml +252 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/prd-tmpl.yaml +202 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/project-brief-tmpl.yaml +221 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/story-tmpl.yaml +137 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/user-guide.md +250 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-fullstack.yaml +297 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-service.yaml +187 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-ui.yaml +197 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-fullstack.yaml +240 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-service.yaml +206 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-ui.yaml +235 -0
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/working-in-the-brownfield.md +361 -0
- package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/config.yaml +1 -1
- package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/config.yaml +1 -1
- package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/config.yaml +1 -1
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-cross-platform.yaml +22 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-flutter.yaml +20 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-minimal.yaml +13 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-react-native.yaml +20 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.md +1487 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.md +279 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.md +649 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.md +339 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.md +622 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.md +1027 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.md +1451 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/checklists/mobile-development-checklist.md +490 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/config.yaml +54 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/data/bmad-kb.md +292 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/data/flutter-development-guidelines.md +483 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/tasks/existing-app-analysis.md +645 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/tasks/platform-selection.md +489 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/templates/mobile-architecture-tmpl.yaml +437 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/templates/mobile-prd-tmpl.yaml +408 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-app-development-init.yaml +555 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-flutter.yaml +336 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-react-native.yaml +345 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-flutter.yaml +281 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-react-native.yaml +283 -0
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-platform-selection.yaml +404 -0
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/appiq.md +273 -0
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/claude-appiq.md +294 -0
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/cursor-appiq.md +516 -0
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/universal-appiq.md +448 -0
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/windsurf-appiq.md +698 -0
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/start.md +211 -0
- package/#Tools/APPIQ-METHOD/deployment/build-release.sh +449 -0
- package/#Tools/APPIQ-METHOD/deployment/create-release.sh +196 -0
- package/#Tools/APPIQ-METHOD/deployment/dist/appiq_installer.sh +678 -0
- package/#Tools/APPIQ-METHOD/deployment/docs/main_prd.md +36 -0
- package/#Tools/APPIQ-METHOD/deployment/init_appiq.sh +805 -0
- package/#Tools/APPIQ-METHOD/deployment/init_appiq_v2.sh +678 -0
- package/#Tools/APPIQ-METHOD/deployment/installers/appiq-global.sh +91 -0
- package/#Tools/APPIQ-METHOD/deployment/installers/claude-integration.sh +281 -0
- package/#Tools/APPIQ-METHOD/deployment/installers/cursor-integration.sh +257 -0
- package/#Tools/APPIQ-METHOD/deployment/installers/terminal-integration.sh +645 -0
- package/#Tools/APPIQ-METHOD/deployment/installers/windsurf-integration.sh +350 -0
- package/#Tools/APPIQ-METHOD/deployment/package-v2.sh +97 -0
- package/#Tools/APPIQ-METHOD/deployment/package.sh +363 -0
- package/#Tools/APPIQ-METHOD/deployment/quick-install.sh +57 -0
- package/#Tools/APPIQ-METHOD/dist/agents/analyst.txt +2882 -0
- package/#Tools/APPIQ-METHOD/dist/agents/architect.txt +3543 -0
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-master.txt +8756 -0
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-orchestrator.txt +1601 -0
- package/#Tools/APPIQ-METHOD/dist/agents/dev.txt +428 -0
- package/#Tools/APPIQ-METHOD/dist/agents/pm.txt +2227 -0
- package/#Tools/APPIQ-METHOD/dist/agents/po.txt +1364 -0
- package/#Tools/APPIQ-METHOD/dist/agents/qa.txt +386 -0
- package/#Tools/APPIQ-METHOD/dist/agents/sm.txt +668 -0
- package/#Tools/APPIQ-METHOD/dist/agents/ux-expert.txt +701 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +2408 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +1631 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +822 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +11100 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +4047 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +3744 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +465 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +990 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +15578 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +2077 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.txt +1530 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.txt +322 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.txt +692 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.txt +382 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.txt +665 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.txt +1070 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.txt +1494 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/teams/mobile-team-cross-platform.txt +15613 -0
- package/#Tools/APPIQ-METHOD/dist/teams/team-all.txt +11171 -0
- package/#Tools/APPIQ-METHOD/dist/teams/team-fullstack.txt +10501 -0
- package/#Tools/APPIQ-METHOD/dist/teams/team-ide-minimal.txt +3618 -0
- package/#Tools/APPIQ-METHOD/dist/teams/team-no-ui.txt +9060 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/README.md +3 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +13 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +71 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +78 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +64 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +201 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +160 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +8 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +254 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +651 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +111 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +216 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +308 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +613 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +356 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +343 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +253 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +484 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +183 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +175 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +14 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +80 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +77 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +78 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +65 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +396 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +203 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +201 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +132 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/config.yaml +6 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +776 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +590 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +111 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +151 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +184 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +308 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +200 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +1030 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +356 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +705 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +256 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +484 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +183 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +175 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/README.md +147 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +71 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +484 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/config.yaml +9 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +308 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +160 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +154 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +424 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +629 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-cross-platform.yaml +22 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-flutter.yaml +20 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-minimal.yaml +13 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-react-native.yaml +20 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.md +1487 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.md +279 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.md +649 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.md +339 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.md +622 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.md +1027 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.md +1451 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/checklists/mobile-development-checklist.md +490 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/config.yaml +54 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/data/bmad-kb.md +292 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/data/flutter-development-guidelines.md +483 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/tasks/existing-app-analysis.md +645 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/tasks/platform-selection.md +489 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/templates/mobile-architecture-tmpl.yaml +437 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/templates/mobile-prd-tmpl.yaml +408 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-app-development-init.yaml +555 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-flutter.yaml +336 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-react-native.yaml +345 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-flutter.yaml +281 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-react-native.yaml +283 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-platform-selection.yaml +404 -0
- package/#Tools/APPIQ-METHOD/package-bmad-backup.json +78 -0
- package/#Tools/APPIQ-METHOD/package.json +93 -0
- package/#Tools/APPIQ-METHOD/slash-commands/appiq.md +273 -0
- package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/claude-appiq.md +294 -0
- package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/cursor-appiq.md +516 -0
- package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/universal-appiq.md +448 -0
- package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/windsurf-appiq.md +698 -0
- package/#Tools/APPIQ-METHOD/slash-commands/start.md +211 -0
- package/#Tools/APPIQ-METHOD/tools/bmad-npx-wrapper.js +41 -0
- package/#Tools/APPIQ-METHOD/tools/builders/web-builder.js +681 -0
- package/#Tools/APPIQ-METHOD/tools/bump-all-versions.js +106 -0
- package/#Tools/APPIQ-METHOD/tools/bump-expansion-version.js +83 -0
- package/#Tools/APPIQ-METHOD/tools/cli.js +152 -0
- package/#Tools/APPIQ-METHOD/tools/installer/README.md +8 -0
- package/#Tools/APPIQ-METHOD/tools/installer/bin/bmad.js +469 -0
- package/#Tools/APPIQ-METHOD/tools/installer/config/ide-agent-config.yaml +58 -0
- package/#Tools/APPIQ-METHOD/tools/installer/config/install.config.yaml +92 -0
- package/#Tools/APPIQ-METHOD/tools/installer/lib/config-loader.js +253 -0
- package/#Tools/APPIQ-METHOD/tools/installer/lib/file-manager.js +411 -0
- package/#Tools/APPIQ-METHOD/tools/installer/lib/ide-base-setup.js +227 -0
- package/#Tools/APPIQ-METHOD/tools/installer/lib/ide-setup.js +1096 -0
- package/#Tools/APPIQ-METHOD/tools/installer/lib/installer.js +1746 -0
- package/#Tools/APPIQ-METHOD/tools/installer/lib/memory-profiler.js +224 -0
- package/#Tools/APPIQ-METHOD/tools/installer/lib/module-manager.js +110 -0
- package/#Tools/APPIQ-METHOD/tools/installer/lib/resource-locator.js +310 -0
- package/#Tools/APPIQ-METHOD/tools/installer/package.json +43 -0
- package/#Tools/APPIQ-METHOD/tools/lib/dependency-resolver.js +179 -0
- package/#Tools/APPIQ-METHOD/tools/lib/yaml-utils.js +29 -0
- package/#Tools/APPIQ-METHOD/tools/md-assets/web-agent-startup-instructions.md +39 -0
- package/#Tools/APPIQ-METHOD/tools/semantic-release-sync-installer.js +30 -0
- package/#Tools/APPIQ-METHOD/tools/sync-installer-version.js +34 -0
- package/#Tools/APPIQ-METHOD/tools/update-expansion-version.js +54 -0
- package/#Tools/APPIQ-METHOD/tools/upgraders/v3-to-v4-upgrader.js +763 -0
- package/#Tools/APPIQ-METHOD/tools/version-bump.js +79 -0
- package/#Tools/APPIQ-METHOD/tools/yaml-format.js +240 -0
- package/#Tools/SkyReels-V2/.pre-commit-config.yaml +25 -0
- package/#Tools/SkyReels-V2/LICENSE.txt +38 -0
- package/#Tools/SkyReels-V2/README.md +766 -0
- package/#Tools/SkyReels-V2/generate_video.py +161 -0
- package/#Tools/SkyReels-V2/generate_video_df.py +220 -0
- package/#Tools/SkyReels-V2/requirements.txt +16 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/README.md +278 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/examples/test.csv +5 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/examples/test_result.csv +5 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/infer_fusion_caption.sh +9 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/infer_struct_caption.sh +8 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/requirements.txt +3 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/gradio_fusion_caption.py +146 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/gradio_struct_caption.py +92 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/utils.py +19 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/vllm_fusion_caption.py +256 -0
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/vllm_struct_caption.py +156 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/__init__.py +1 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/distributed/xdit_context_parallel.py +286 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/__init__.py +69 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/attention.py +179 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/clip.py +525 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/t5.py +454 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/tokenizers.py +78 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/transformer.py +839 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/vae.py +639 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/xlm_roberta.py +165 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/__init__.py +5 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/diffusion_forcing_pipeline.py +659 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/image2video_pipeline.py +156 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/prompt_enhancer.py +65 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/text2video_pipeline.py +110 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/scheduler/__init__.py +0 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/scheduler/fm_solvers_unipc.py +759 -0
- package/#Tools/SuperClaude/.claude/commands/analyze.md +36 -0
- package/#Tools/SuperClaude/.claude/commands/build.md +35 -0
- package/#Tools/SuperClaude/.claude/commands/cleanup.md +46 -0
- package/#Tools/SuperClaude/.claude/commands/deploy.md +55 -0
- package/#Tools/SuperClaude/.claude/commands/design.md +91 -0
- package/#Tools/SuperClaude/.claude/commands/dev-setup.md +37 -0
- package/#Tools/SuperClaude/.claude/commands/document.md +99 -0
- package/#Tools/SuperClaude/.claude/commands/estimate.md +69 -0
- package/#Tools/SuperClaude/.claude/commands/explain.md +85 -0
- package/#Tools/SuperClaude/.claude/commands/git.md +47 -0
- package/#Tools/SuperClaude/.claude/commands/improve.md +162 -0
- package/#Tools/SuperClaude/.claude/commands/index.md +159 -0
- package/#Tools/SuperClaude/.claude/commands/load.md +65 -0
- package/#Tools/SuperClaude/.claude/commands/migrate.md +76 -0
- package/#Tools/SuperClaude/.claude/commands/scan.md +163 -0
- package/#Tools/SuperClaude/.claude/commands/shared/ambiguity-check.yml +40 -0
- package/#Tools/SuperClaude/.claude/commands/shared/audit.yml +21 -0
- package/#Tools/SuperClaude/.claude/commands/shared/checkpoint.yml +28 -0
- package/#Tools/SuperClaude/.claude/commands/shared/cleanup-patterns.yml +107 -0
- package/#Tools/SuperClaude/.claude/commands/shared/command-memory.yml +52 -0
- package/#Tools/SuperClaude/.claude/commands/shared/command-templates.yml +167 -0
- package/#Tools/SuperClaude/.claude/commands/shared/config-validator.yml +206 -0
- package/#Tools/SuperClaude/.claude/commands/shared/constants.yml +311 -0
- package/#Tools/SuperClaude/.claude/commands/shared/documentation-dirs.yml +134 -0
- package/#Tools/SuperClaude/.claude/commands/shared/error-handling.yml +341 -0
- package/#Tools/SuperClaude/.claude/commands/shared/evidence.yml +75 -0
- package/#Tools/SuperClaude/.claude/commands/shared/execution-lifecycle.yml +277 -0
- package/#Tools/SuperClaude/.claude/commands/shared/git-operations.yml +217 -0
- package/#Tools/SuperClaude/.claude/commands/shared/git-workflow.yml +37 -0
- package/#Tools/SuperClaude/.claude/commands/shared/implementation.yml +199 -0
- package/#Tools/SuperClaude/.claude/commands/shared/loading-config.yml +73 -0
- package/#Tools/SuperClaude/.claude/commands/shared/mcp-flags.yml +109 -0
- package/#Tools/SuperClaude/.claude/commands/shared/migration-report.md +165 -0
- package/#Tools/SuperClaude/.claude/commands/shared/patterns.yml +155 -0
- package/#Tools/SuperClaude/.claude/commands/shared/performance.yml +317 -0
- package/#Tools/SuperClaude/.claude/commands/shared/planning-mode.yml +51 -0
- package/#Tools/SuperClaude/.claude/commands/shared/research-first.yml +278 -0
- package/#Tools/SuperClaude/.claude/commands/shared/session-recovery.yml +144 -0
- package/#Tools/SuperClaude/.claude/commands/shared/severity-levels.yml +252 -0
- package/#Tools/SuperClaude/.claude/commands/shared/task-system.yml +380 -0
- package/#Tools/SuperClaude/.claude/commands/shared/task-ultracompressed.yml +88 -0
- package/#Tools/SuperClaude/.claude/commands/shared/templates/feature-template.md +59 -0
- package/#Tools/SuperClaude/.claude/commands/shared/templates/task-ultracompressed.md +26 -0
- package/#Tools/SuperClaude/.claude/commands/shared/thinking-modes.yml +61 -0
- package/#Tools/SuperClaude/.claude/commands/shared/ultracompressed.yml +97 -0
- package/#Tools/SuperClaude/.claude/commands/shared/user-experience.yml +208 -0
- package/#Tools/SuperClaude/.claude/commands/shared/validation.yml +54 -0
- package/#Tools/SuperClaude/.claude/commands/shared/workflow-chains.yml +138 -0
- package/#Tools/SuperClaude/.claude/commands/spawn.md +106 -0
- package/#Tools/SuperClaude/.claude/commands/task.md +110 -0
- package/#Tools/SuperClaude/.claude/commands/test.md +67 -0
- package/#Tools/SuperClaude/.claude/commands/troubleshoot.md +93 -0
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/bug_report.yml +114 -0
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/feature_request.yml +119 -0
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/question.yml +87 -0
- package/#Tools/SuperClaude/.github/pull_request_template.md +62 -0
- package/#Tools/SuperClaude/CHANGELOG.md +109 -0
- package/#Tools/SuperClaude/CLAUDE.md +95 -0
- package/#Tools/SuperClaude/CODE_OF_CONDUCT.md +45 -0
- package/#Tools/SuperClaude/CONTRIBUTING.md +225 -0
- package/#Tools/SuperClaude/Commands_Cheat_Sheet.md +160 -0
- package/#Tools/SuperClaude/LICENSE +21 -0
- package/#Tools/SuperClaude/MCP.md +117 -0
- package/#Tools/SuperClaude/PERSONAS.md +115 -0
- package/#Tools/SuperClaude/README.md +249 -0
- package/#Tools/SuperClaude/RULES.md +220 -0
- package/#Tools/SuperClaude/SECURITY.md +91 -0
- package/#Tools/SuperClaude/install.sh +296 -0
- package/#Tools/claude-talk-to-figma-mcp/.github/workflows/test.yml +36 -0
- package/#Tools/claude-talk-to-figma-mcp/CHANGELOG.md +88 -0
- package/#Tools/claude-talk-to-figma-mcp/Dockerfile +16 -0
- package/#Tools/claude-talk-to-figma-mcp/LICENSE +22 -0
- package/#Tools/claude-talk-to-figma-mcp/TESTING.md +216 -0
- package/#Tools/claude-talk-to-figma-mcp/bun.lock +964 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/00-analisis.md +151 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/01-tools-refactor.md +370 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/02-tools-refactor-backlog.md +253 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/03-tools-refactor-test.md +138 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/04-tools-refactor-channel-error.md +133 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/04-tools-refactor-test-backlog.md +0 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/05-tools-refactor-four-tools-error.md +356 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/06-tools-refactor-four-tools-error-backlog.md +425 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/prompt-dev-nodejs-bun.md +105 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01-prompt.md +135 -0
- package/#Tools/claude-talk-to-figma-mcp/context/02/00-analisis.md +131 -0
- package/#Tools/claude-talk-to-figma-mcp/context/02/01-plan.md +162 -0
- package/#Tools/claude-talk-to-figma-mcp/context/02/02-backlog.md +241 -0
- package/#Tools/claude-talk-to-figma-mcp/context/02-analisis.md +202 -0
- package/#Tools/claude-talk-to-figma-mcp/context/99-notas.md +139 -0
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-analisis.md +221 -0
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-claude-tests.md +152 -0
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-npm-publishing.md +272 -0
- package/#Tools/claude-talk-to-figma-mcp/images/claude-talk-to-figma.png +0 -0
- package/#Tools/claude-talk-to-figma-mcp/images/mcp-figma-plugin-configuration.png +0 -0
- package/#Tools/claude-talk-to-figma-mcp/jest.config.cjs +25 -0
- package/#Tools/claude-talk-to-figma-mcp/package.json +67 -0
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-es.md +82 -0
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-gal.md +80 -0
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-pt.md +80 -0
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-specialist.md +80 -0
- package/#Tools/claude-talk-to-figma-mcp/readme.md +307 -0
- package/#Tools/claude-talk-to-figma-mcp/scripts/configure-claude.js +90 -0
- package/#Tools/claude-talk-to-figma-mcp/scripts/setup.sh +30 -0
- package/#Tools/claude-talk-to-figma-mcp/scripts/test-integration.js +339 -0
- package/#Tools/claude-talk-to-figma-mcp/smithery.yaml +26 -0
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/code.js +3295 -0
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/manifest.json +24 -0
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/setcharacters.js +215 -0
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/ui.html +656 -0
- package/#Tools/claude-talk-to-figma-mcp/src/socket.ts +349 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/bun.lock +246 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/config/config.ts +22 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/package.json +31 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/prompts/index.ts +297 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/server.ts +62 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/component-tools.ts +48 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/creation-tools.ts +620 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/document-tools.ts +390 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/index.ts +28 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/modification-tools.ts +408 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/text-tools.ts +531 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tsconfig.json +18 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/types/color.ts +13 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/types/index.ts +87 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/defaults.ts +23 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/figma-helpers.ts +142 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/logger.ts +8 -0
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/websocket.ts +258 -0
- package/#Tools/claude-talk-to-figma-mcp/tests/fixtures/test-data.ts +32 -0
- package/#Tools/claude-talk-to-figma-mcp/tests/integration/set-fill-color.test.ts +309 -0
- package/#Tools/claude-talk-to-figma-mcp/tests/integration/set-stroke-color.test.ts +387 -0
- package/#Tools/claude-talk-to-figma-mcp/tests/setup.ts +7 -0
- package/#Tools/claude-talk-to-figma-mcp/tests/unit/utils/defaults.test.ts +131 -0
- package/#Tools/claude-talk-to-figma-mcp/tsconfig.json +17 -0
- package/#Tools/claude-talk-to-figma-mcp/tsup.config.ts +14 -0
- package/#Tools/jwt creator/AuthKey_MZ7UQGFV2Q.p8 +6 -0
- package/#Tools/jwt creator/generate_apple_jwt.js +18 -0
- package/#Tools/jwt creator/node_modules/.package-lock.json +145 -0
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/.travis.yml +4 -0
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/LICENSE.txt +12 -0
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/README.md +50 -0
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/index.js +41 -0
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/package.json +21 -0
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/test.js +42 -0
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/CODEOWNERS +1 -0
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/LICENSE +201 -0
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/README.md +65 -0
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/package.json +46 -0
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.d.ts +17 -0
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js +187 -0
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js +23 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/LICENSE +21 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/README.md +396 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/decode.js +30 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/index.js +8 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/JsonWebTokenError.js +14 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/NotBeforeError.js +13 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/TokenExpiredError.js +13 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js +3 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/psSupported.js +3 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js +3 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/timespan.js +18 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js +66 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/package.json +71 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/sign.js +253 -0
- package/#Tools/jwt creator/node_modules/jsonwebtoken/verify.js +263 -0
- package/#Tools/jwt creator/node_modules/jwa/LICENSE +17 -0
- package/#Tools/jwt creator/node_modules/jwa/README.md +150 -0
- package/#Tools/jwt creator/node_modules/jwa/index.js +266 -0
- package/#Tools/jwt creator/node_modules/jwa/package.json +37 -0
- package/#Tools/jwt creator/node_modules/jws/CHANGELOG.md +34 -0
- package/#Tools/jwt creator/node_modules/jws/LICENSE +17 -0
- package/#Tools/jwt creator/node_modules/jws/index.js +22 -0
- package/#Tools/jwt creator/node_modules/jws/lib/data-stream.js +55 -0
- package/#Tools/jwt creator/node_modules/jws/lib/sign-stream.js +78 -0
- package/#Tools/jwt creator/node_modules/jws/lib/tostring.js +10 -0
- package/#Tools/jwt creator/node_modules/jws/lib/verify-stream.js +120 -0
- package/#Tools/jwt creator/node_modules/jws/package.json +34 -0
- package/#Tools/jwt creator/node_modules/jws/readme.md +255 -0
- package/#Tools/jwt creator/node_modules/lodash.includes/LICENSE +47 -0
- package/#Tools/jwt creator/node_modules/lodash.includes/README.md +18 -0
- package/#Tools/jwt creator/node_modules/lodash.includes/index.js +745 -0
- package/#Tools/jwt creator/node_modules/lodash.includes/package.json +17 -0
- package/#Tools/jwt creator/node_modules/lodash.isboolean/LICENSE +22 -0
- package/#Tools/jwt creator/node_modules/lodash.isboolean/README.md +18 -0
- package/#Tools/jwt creator/node_modules/lodash.isboolean/index.js +70 -0
- package/#Tools/jwt creator/node_modules/lodash.isboolean/package.json +17 -0
- package/#Tools/jwt creator/node_modules/lodash.isinteger/LICENSE +47 -0
- package/#Tools/jwt creator/node_modules/lodash.isinteger/README.md +18 -0
- package/#Tools/jwt creator/node_modules/lodash.isinteger/index.js +265 -0
- package/#Tools/jwt creator/node_modules/lodash.isinteger/package.json +17 -0
- package/#Tools/jwt creator/node_modules/lodash.isnumber/LICENSE +22 -0
- package/#Tools/jwt creator/node_modules/lodash.isnumber/README.md +18 -0
- package/#Tools/jwt creator/node_modules/lodash.isnumber/index.js +79 -0
- package/#Tools/jwt creator/node_modules/lodash.isnumber/package.json +17 -0
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/LICENSE +47 -0
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/README.md +18 -0
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/index.js +139 -0
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/package.json +17 -0
- package/#Tools/jwt creator/node_modules/lodash.isstring/LICENSE +22 -0
- package/#Tools/jwt creator/node_modules/lodash.isstring/README.md +18 -0
- package/#Tools/jwt creator/node_modules/lodash.isstring/index.js +95 -0
- package/#Tools/jwt creator/node_modules/lodash.isstring/package.json +17 -0
- package/#Tools/jwt creator/node_modules/lodash.once/LICENSE +47 -0
- package/#Tools/jwt creator/node_modules/lodash.once/README.md +18 -0
- package/#Tools/jwt creator/node_modules/lodash.once/index.js +294 -0
- package/#Tools/jwt creator/node_modules/lodash.once/package.json +17 -0
- package/#Tools/jwt creator/node_modules/ms/index.js +162 -0
- package/#Tools/jwt creator/node_modules/ms/license.md +21 -0
- package/#Tools/jwt creator/node_modules/ms/package.json +38 -0
- package/#Tools/jwt creator/node_modules/ms/readme.md +59 -0
- package/#Tools/jwt creator/node_modules/safe-buffer/LICENSE +21 -0
- package/#Tools/jwt creator/node_modules/safe-buffer/README.md +584 -0
- package/#Tools/jwt creator/node_modules/safe-buffer/index.d.ts +187 -0
- package/#Tools/jwt creator/node_modules/safe-buffer/index.js +65 -0
- package/#Tools/jwt creator/node_modules/safe-buffer/package.json +51 -0
- package/#Tools/jwt creator/node_modules/semver/LICENSE +15 -0
- package/#Tools/jwt creator/node_modules/semver/README.md +664 -0
- package/#Tools/jwt creator/node_modules/semver/bin/semver.js +191 -0
- package/#Tools/jwt creator/node_modules/semver/classes/comparator.js +143 -0
- package/#Tools/jwt creator/node_modules/semver/classes/index.js +7 -0
- package/#Tools/jwt creator/node_modules/semver/classes/range.js +556 -0
- package/#Tools/jwt creator/node_modules/semver/classes/semver.js +319 -0
- package/#Tools/jwt creator/node_modules/semver/functions/clean.js +8 -0
- package/#Tools/jwt creator/node_modules/semver/functions/cmp.js +54 -0
- package/#Tools/jwt creator/node_modules/semver/functions/coerce.js +62 -0
- package/#Tools/jwt creator/node_modules/semver/functions/compare-build.js +9 -0
- package/#Tools/jwt creator/node_modules/semver/functions/compare-loose.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/compare.js +7 -0
- package/#Tools/jwt creator/node_modules/semver/functions/diff.js +60 -0
- package/#Tools/jwt creator/node_modules/semver/functions/eq.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/gt.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/gte.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/inc.js +21 -0
- package/#Tools/jwt creator/node_modules/semver/functions/lt.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/lte.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/major.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/minor.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/neq.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/parse.js +18 -0
- package/#Tools/jwt creator/node_modules/semver/functions/patch.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/prerelease.js +8 -0
- package/#Tools/jwt creator/node_modules/semver/functions/rcompare.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/rsort.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/satisfies.js +12 -0
- package/#Tools/jwt creator/node_modules/semver/functions/sort.js +5 -0
- package/#Tools/jwt creator/node_modules/semver/functions/valid.js +8 -0
- package/#Tools/jwt creator/node_modules/semver/index.js +91 -0
- package/#Tools/jwt creator/node_modules/semver/internal/constants.js +37 -0
- package/#Tools/jwt creator/node_modules/semver/internal/debug.js +11 -0
- package/#Tools/jwt creator/node_modules/semver/internal/identifiers.js +25 -0
- package/#Tools/jwt creator/node_modules/semver/internal/lrucache.js +42 -0
- package/#Tools/jwt creator/node_modules/semver/internal/parse-options.js +17 -0
- package/#Tools/jwt creator/node_modules/semver/internal/re.js +223 -0
- package/#Tools/jwt creator/node_modules/semver/package.json +78 -0
- package/#Tools/jwt creator/node_modules/semver/preload.js +4 -0
- package/#Tools/jwt creator/node_modules/semver/range.bnf +16 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/gtr.js +6 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/intersects.js +9 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/ltr.js +6 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/max-satisfying.js +27 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/min-satisfying.js +26 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/min-version.js +63 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/outside.js +82 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/simplify.js +49 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/subset.js +249 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/to-comparators.js +10 -0
- package/#Tools/jwt creator/node_modules/semver/ranges/valid.js +13 -0
- package/#Tools/jwt creator/package-lock.json +150 -0
- package/#Tools/jwt creator/package.json +5 -0
- package/#Tools/package.json +94 -0
- package/SuperClaude/.claude/commands/analyze.md +36 -0
- package/SuperClaude/.claude/commands/build.md +35 -0
- package/SuperClaude/.claude/commands/cleanup.md +46 -0
- package/SuperClaude/.claude/commands/deploy.md +55 -0
- package/SuperClaude/.claude/commands/design.md +91 -0
- package/SuperClaude/.claude/commands/dev-setup.md +37 -0
- package/SuperClaude/.claude/commands/document.md +99 -0
- package/SuperClaude/.claude/commands/estimate.md +69 -0
- package/SuperClaude/.claude/commands/explain.md +85 -0
- package/SuperClaude/.claude/commands/git.md +47 -0
- package/SuperClaude/.claude/commands/improve.md +162 -0
- package/SuperClaude/.claude/commands/index.md +159 -0
- package/SuperClaude/.claude/commands/load.md +65 -0
- package/SuperClaude/.claude/commands/migrate.md +76 -0
- package/SuperClaude/.claude/commands/scan.md +163 -0
- package/SuperClaude/.claude/commands/shared/ambiguity-check.yml +40 -0
- package/SuperClaude/.claude/commands/shared/audit.yml +21 -0
- package/SuperClaude/.claude/commands/shared/checkpoint.yml +28 -0
- package/SuperClaude/.claude/commands/shared/cleanup-patterns.yml +107 -0
- package/SuperClaude/.claude/commands/shared/command-memory.yml +52 -0
- package/SuperClaude/.claude/commands/shared/command-templates.yml +167 -0
- package/SuperClaude/.claude/commands/shared/config-validator.yml +206 -0
- package/SuperClaude/.claude/commands/shared/constants.yml +311 -0
- package/SuperClaude/.claude/commands/shared/documentation-dirs.yml +134 -0
- package/SuperClaude/.claude/commands/shared/error-handling.yml +341 -0
- package/SuperClaude/.claude/commands/shared/evidence.yml +75 -0
- package/SuperClaude/.claude/commands/shared/execution-lifecycle.yml +277 -0
- package/SuperClaude/.claude/commands/shared/git-operations.yml +217 -0
- package/SuperClaude/.claude/commands/shared/git-workflow.yml +37 -0
- package/SuperClaude/.claude/commands/shared/implementation.yml +199 -0
- package/SuperClaude/.claude/commands/shared/loading-config.yml +73 -0
- package/SuperClaude/.claude/commands/shared/mcp-flags.yml +109 -0
- package/SuperClaude/.claude/commands/shared/migration-report.md +165 -0
- package/SuperClaude/.claude/commands/shared/patterns.yml +155 -0
- package/SuperClaude/.claude/commands/shared/performance.yml +317 -0
- package/SuperClaude/.claude/commands/shared/planning-mode.yml +51 -0
- package/SuperClaude/.claude/commands/shared/research-first.yml +278 -0
- package/SuperClaude/.claude/commands/shared/session-recovery.yml +144 -0
- package/SuperClaude/.claude/commands/shared/severity-levels.yml +252 -0
- package/SuperClaude/.claude/commands/shared/task-system.yml +380 -0
- package/SuperClaude/.claude/commands/shared/task-ultracompressed.yml +88 -0
- package/SuperClaude/.claude/commands/shared/templates/feature-template.md +59 -0
- package/SuperClaude/.claude/commands/shared/templates/task-ultracompressed.md +26 -0
- package/SuperClaude/.claude/commands/shared/thinking-modes.yml +61 -0
- package/SuperClaude/.claude/commands/shared/ultracompressed.yml +97 -0
- package/SuperClaude/.claude/commands/shared/user-experience.yml +208 -0
- package/SuperClaude/.claude/commands/shared/validation.yml +54 -0
- package/SuperClaude/.claude/commands/shared/workflow-chains.yml +138 -0
- package/SuperClaude/.claude/commands/spawn.md +106 -0
- package/SuperClaude/.claude/commands/task.md +110 -0
- package/SuperClaude/.claude/commands/test.md +67 -0
- package/SuperClaude/.claude/commands/troubleshoot.md +93 -0
- package/SuperClaude/.github/ISSUE_TEMPLATE/bug_report.yml +114 -0
- package/SuperClaude/.github/ISSUE_TEMPLATE/feature_request.yml +119 -0
- package/SuperClaude/.github/ISSUE_TEMPLATE/question.yml +87 -0
- package/SuperClaude/.github/pull_request_template.md +62 -0
- package/SuperClaude/CHANGELOG.md +109 -0
- package/SuperClaude/CLAUDE.md +95 -0
- package/SuperClaude/CODE_OF_CONDUCT.md +45 -0
- package/SuperClaude/CONTRIBUTING.md +225 -0
- package/SuperClaude/Commands_Cheat_Sheet.md +160 -0
- package/SuperClaude/LICENSE +21 -0
- package/SuperClaude/MCP.md +117 -0
- package/SuperClaude/PERSONAS.md +115 -0
- package/SuperClaude/README.md +249 -0
- package/SuperClaude/RULES.md +220 -0
- package/SuperClaude/SECURITY.md +91 -0
- package/SuperClaude/install.sh +296 -0
- package/appiq-mcp installer/How-to.md +250 -0
- package/appiq-mcp installer/LICENSE +21 -0
- package/appiq-mcp installer/README.md +235 -0
- package/appiq-mcp installer/index.js +672 -0
- package/appiq-mcp installer/my_mcps.md +105 -0
- package/appiq-mcp installer/package-lock.json +708 -0
- package/appiq-mcp installer/package.json +46 -0
- package/appiq-mcp installer/test-install.bat +60 -0
- package/appiq-mcp installer/test-install.sh +55 -0
- package/appiq-mcp installer/test-load.js +40 -0
- package/dist/agents/bmad-orchestrator.txt +111 -0
- package/dist/agents/pm.txt +0 -2
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +111 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +111 -0
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.txt +1530 -0
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.txt +322 -0
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.txt +692 -0
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.txt +382 -0
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.txt +665 -0
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.txt +1070 -0
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.txt +1494 -0
- package/dist/expansion-packs/bmad-mobile-app-dev/teams/mobile-team-cross-platform.txt +15613 -0
- package/dist/teams/team-all.txt +111 -2
- package/dist/teams/team-fullstack.txt +111 -2
- package/dist/teams/team-ide-minimal.txt +111 -0
- package/dist/teams/team-no-ui.txt +111 -2
- package/flutter/CLAUDE.md +58 -0
- package/flutter/punkt.claude/New Folder With Items/channel.md +221 -0
- package/flutter/punkt.claude/New Folder With Items/commands/add-translations.md +12 -0
- package/flutter/punkt.claude/New Folder With Items/commands/create-feature.md +168 -0
- package/flutter/punkt.claude/New Folder With Items/commands/explain-codebase.md +1 -0
- package/flutter/punkt.claude/New Folder With Items/commands/feature-business-logic.md +551 -0
- package/flutter/punkt.claude/New Folder With Items/commands/feature-data-layer.md +924 -0
- package/flutter/punkt.claude/New Folder With Items/commands/feature-domain-layer.md +540 -0
- package/flutter/punkt.claude/New Folder With Items/commands/feature-integration.md +493 -0
- package/flutter/punkt.claude/New Folder With Items/commands/feature-localization.md +427 -0
- package/flutter/punkt.claude/New Folder With Items/commands/feature-ui-layer.md +300 -0
- package/flutter/punkt.claude/New Folder With Items/commands/git-commit.md +3 -0
- package/flutter/punkt.claude/New Folder With Items/commands/search-web.md +1 -0
- package/flutter/punkt.claude/punkt.claude/channel.md +225 -0
- package/flutter/punkt.claude/punkt.claude/commands/add-translations.md +60 -0
- package/flutter/punkt.claude/punkt.claude/commands/bug-fix.md +32 -0
- package/flutter/punkt.claude/punkt.claude/commands/checkdev.md +122 -0
- package/flutter/punkt.claude/punkt.claude/commands/create-feature.md +174 -0
- package/flutter/punkt.claude/punkt.claude/commands/dev.md +79 -0
- package/flutter/punkt.claude/punkt.claude/commands/explain-codebase.md +1 -0
- package/flutter/punkt.claude/punkt.claude/commands/feature-business-logic.md +430 -0
- package/flutter/punkt.claude/punkt.claude/commands/feature-data-layer.md +572 -0
- package/flutter/punkt.claude/punkt.claude/commands/feature-domain-layer.md +537 -0
- package/flutter/punkt.claude/punkt.claude/commands/feature-integration.md +493 -0
- package/flutter/punkt.claude/punkt.claude/commands/feature-localization.md +427 -0
- package/flutter/punkt.claude/punkt.claude/commands/feature-ui-layer.md +831 -0
- package/flutter/punkt.claude/punkt.claude/commands/git-commit.md +3 -0
- package/flutter/punkt.claude/punkt.claude/commands/manage-translations.md +433 -0
- package/flutter/punkt.claude/punkt.claude/commands/search-web.md +1 -0
- package/flutter/punkt.claude/punkt.claude/developer_check.md +121 -0
- package/package.json +71 -18
- package/tools/bmad-npx-wrapper.js +7 -5
- package/tools/installer/bin/bmad.js +0 -14
- package/tools/installer/lib/installer.js +2 -28
- package/tools/installer/package-lock.json +89 -89
- package/tools/installer/package.json +1 -1
- package/web/CLAUDE.md +58 -0
- package/.bmad-config.json +0 -13
- package/.cursor/commands/analyze.md +0 -27
- package/.cursor/commands/appiq.md +0 -27
- package/.cursor/commands/help.md +0 -27
- package/.cursor/commands/story.md +0 -27
- package/DEVELOPMENT_GUIDE.md +0 -855
- package/NPM-README.md +0 -138
- package/README.md +0 -255
- package/SMART_WORKFLOW_GUIDE.md +0 -401
- package/activate-appiq.js +0 -81
- package/appiq-solution/README.md +0 -226
- package/bmad-core/agents/bmad-smart-launcher.md +0 -170
- package/bmad-core/checklists/security-validation-checklist.md +0 -332
- package/bmad-core/data/backend-services-integration.md +0 -686
- package/bmad-core/data/shadcn-ui-integration.md +0 -388
- package/bmad-core/data/technical-preferences.md +0 -149
- package/bmad-core/enhanced-ide-development-workflow.md +0 -43
- package/bmad-core/tasks/intelligent-epic-creation.md +0 -234
- package/bmad-core/tasks/smart-project-analysis.md +0 -289
- package/commands/README.md +0 -28
- package/commands/analyze.md +0 -27
- package/commands/appiq.md +0 -27
- package/commands/help.md +0 -27
- package/commands/story.md +0 -27
- package/expansion-packs/bmad-flutter-mobile-dev/agent-teams/flutter-mobile-team.yaml +0 -23
- package/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-cubit-agent.md +0 -133
- package/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-data-agent.md +0 -160
- package/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-domain-agent.md +0 -153
- package/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-ui-agent.md +0 -122
- package/expansion-packs/bmad-flutter-mobile-dev/agents/shared-components-agent.md +0 -161
- package/expansion-packs/bmad-flutter-mobile-dev/checklists/flutter-story-dod-checklist.md +0 -194
- package/expansion-packs/bmad-flutter-mobile-dev/config.yaml +0 -41
- package/expansion-packs/bmad-flutter-mobile-dev/data/flutter-development-guidelines.md +0 -551
- package/expansion-packs/bmad-flutter-mobile-dev/templates/flutter-mobile-architecture-tmpl.yaml +0 -530
- package/expansion-packs/bmad-flutter-mobile-dev/workflows/flutter-ui-first-development.yaml +0 -220
- package/install-appiq.sh +0 -41
- package/tasks/todo.md +0 -275
- package/tools/appiq-installer.js +0 -2621
- package/tools/epic-solution-installer.js +0 -538
- package/tools/flattener/main.js +0 -570
- package/tools/setup-ide-commands.js +0 -345
- package/tools/smart-installer.js +0 -589
- /package/{.github → #Tools/APPIQ-METHOD/.github}/FUNDING.yaml +0 -0
- /package/{.github → #Tools/APPIQ-METHOD/.github}/ISSUE_TEMPLATE/bug_report.md +0 -0
- /package/{.github → #Tools/APPIQ-METHOD/.github}/ISSUE_TEMPLATE/feature_request.md +0 -0
- /package/{.github → #Tools/APPIQ-METHOD/.github}/workflows/release.yaml +0 -0
- /package/{.releaserc.json → #Tools/APPIQ-METHOD/.releaserc.json} +0 -0
- /package/{.vscode → #Tools/APPIQ-METHOD/.vscode}/settings.json +0 -0
- /package/{CONTRIBUTING.md → #Tools/APPIQ-METHOD/CONTRIBUTING.md} +0 -0
- /package/{LICENSE → #Tools/APPIQ-METHOD/LICENSE} +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agent-teams/team-all.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agent-teams/team-fullstack.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agent-teams/team-ide-minimal.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agent-teams/team-no-ui.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/analyst.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/bmad-master.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/po.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/sm.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/agents/ux-expert.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/checklists/architect-checklist.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/checklists/change-checklist.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/checklists/pm-checklist.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/checklists/po-master-checklist.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/checklists/story-dod-checklist.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/checklists/story-draft-checklist.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/core-config.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/data/bmad-kb.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/data/brainstorming-techniques.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/data/elicitation-methods.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/advanced-elicitation.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/brownfield-create-epic.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/brownfield-create-story.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/correct-course.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/create-brownfield-story.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/create-deep-research-prompt.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/create-next-story.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/document-project.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/facilitate-brainstorming-session.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/generate-ai-frontend-prompt.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/index-docs.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/kb-mode-interaction.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/review-story.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/shard-doc.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/tasks/validate-next-story.md +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/architecture-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/brainstorming-output-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/brownfield-architecture-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/brownfield-prd-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/competitor-analysis-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/front-end-architecture-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/front-end-spec-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/market-research-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/prd-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/project-brief-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/templates/story-tmpl.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/workflows/brownfield-fullstack.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/workflows/brownfield-service.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/workflows/brownfield-ui.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/workflows/greenfield-fullstack.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/workflows/greenfield-service.yaml +0 -0
- /package/{bmad-core → #Tools/APPIQ-METHOD/bmad-core}/workflows/greenfield-ui.yaml +0 -0
- /package/{common → #Tools/APPIQ-METHOD/common}/tasks/create-doc.md +0 -0
- /package/{common → #Tools/APPIQ-METHOD/common}/tasks/execute-checklist.md +0 -0
- /package/{common → #Tools/APPIQ-METHOD/common}/utils/bmad-doc-template.md +0 -0
- /package/{common → #Tools/APPIQ-METHOD/common}/utils/workflow-management.md +0 -0
- /package/{bmad-core/core-config.yaml.bak → #Tools/APPIQ-METHOD/deployment/build/bmad-core/core-config.yaml} +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/README.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/agents/game-architect.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/agents/game-designer.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/agents/game-developer.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/agents/game-sm.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/README.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/data/bmad-kb.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -0
- /package/{expansion-packs → #Tools/APPIQ-METHOD/deployment/build/expansion-packs}/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -0
- /package/{docs → #Tools/APPIQ-METHOD/docs}/GUIDING-PRINCIPLES.md +0 -0
- /package/{docs → #Tools/APPIQ-METHOD/docs}/core-architecture.md +0 -0
- /package/{docs → #Tools/APPIQ-METHOD/docs}/expansion-packs.md +0 -0
- /package/{docs → #Tools/APPIQ-METHOD/docs}/how-to-contribute-with-pull-requests.md +0 -0
- /package/{docs → #Tools/APPIQ-METHOD/docs}/versioning-and-releases.md +0 -0
- /package/{docs → #Tools/APPIQ-METHOD/docs}/versions.md +0 -0
- /package/{bmad-core/bmad-core/user-guide.md → #Tools/SkyReels-V2/skyreels_v2_infer/distributed/__init__.py} +0 -0
@@ -0,0 +1,656 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<title>Claude MCP Plugin</title>
|
6
|
+
<style>
|
7
|
+
body {
|
8
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
9
|
+
Helvetica, Arial, sans-serif;
|
10
|
+
margin: 0;
|
11
|
+
padding: 20px;
|
12
|
+
color: #e0e0e0;
|
13
|
+
background-color: #1e1e1e;
|
14
|
+
}
|
15
|
+
.container {
|
16
|
+
display: flex;
|
17
|
+
flex-direction: column;
|
18
|
+
height: 100%;
|
19
|
+
}
|
20
|
+
h1 {
|
21
|
+
font-size: 16px;
|
22
|
+
font-weight: 600;
|
23
|
+
margin-bottom: 10px;
|
24
|
+
color: #ffffff;
|
25
|
+
}
|
26
|
+
h2 {
|
27
|
+
font-size: 14px;
|
28
|
+
font-weight: 600;
|
29
|
+
margin-top: 20px;
|
30
|
+
margin-bottom: 8px;
|
31
|
+
color: #ffffff;
|
32
|
+
}
|
33
|
+
button {
|
34
|
+
background-color: #18a0fb;
|
35
|
+
border: none;
|
36
|
+
color: white;
|
37
|
+
padding: 8px 12px;
|
38
|
+
border-radius: 6px;
|
39
|
+
margin-top: 8px;
|
40
|
+
margin-bottom: 8px;
|
41
|
+
cursor: pointer;
|
42
|
+
font-size: 14px;
|
43
|
+
transition: background-color 0.2s;
|
44
|
+
}
|
45
|
+
button:hover {
|
46
|
+
background-color: #0d8ee0;
|
47
|
+
}
|
48
|
+
button.secondary {
|
49
|
+
background-color: #3d3d3d;
|
50
|
+
color: #e0e0e0;
|
51
|
+
}
|
52
|
+
button.secondary:hover {
|
53
|
+
background-color: #4d4d4d;
|
54
|
+
}
|
55
|
+
button:disabled {
|
56
|
+
background-color: #333333;
|
57
|
+
color: #666666;
|
58
|
+
cursor: not-allowed;
|
59
|
+
}
|
60
|
+
input {
|
61
|
+
border: 1px solid #444444;
|
62
|
+
border-radius: 4px;
|
63
|
+
padding: 8px;
|
64
|
+
margin-bottom: 12px;
|
65
|
+
font-size: 14px;
|
66
|
+
width: 100%;
|
67
|
+
box-sizing: border-box;
|
68
|
+
background-color: #2d2d2d;
|
69
|
+
color: #e0e0e0;
|
70
|
+
}
|
71
|
+
label {
|
72
|
+
display: block;
|
73
|
+
margin-bottom: 4px;
|
74
|
+
font-size: 12px;
|
75
|
+
font-weight: 500;
|
76
|
+
color: #cccccc;
|
77
|
+
}
|
78
|
+
.status {
|
79
|
+
margin-top: 16px;
|
80
|
+
padding: 12px;
|
81
|
+
border-radius: 6px;
|
82
|
+
font-size: 14px;
|
83
|
+
}
|
84
|
+
.status.connected {
|
85
|
+
background-color: #1a472a;
|
86
|
+
color: #4ade80;
|
87
|
+
}
|
88
|
+
.status.disconnected {
|
89
|
+
background-color: #471a1a;
|
90
|
+
color: #ff9999;
|
91
|
+
}
|
92
|
+
.status.info {
|
93
|
+
background-color: #1a3147;
|
94
|
+
color: #66b3ff;
|
95
|
+
}
|
96
|
+
.section {
|
97
|
+
margin-bottom: 24px;
|
98
|
+
}
|
99
|
+
.hidden {
|
100
|
+
display: none;
|
101
|
+
}
|
102
|
+
.logo {
|
103
|
+
width: 50px;
|
104
|
+
height: 50px;
|
105
|
+
}
|
106
|
+
.header {
|
107
|
+
display: flex;
|
108
|
+
align-items: center;
|
109
|
+
margin-bottom: 16px;
|
110
|
+
}
|
111
|
+
.header-text {
|
112
|
+
margin-left: 12px;
|
113
|
+
}
|
114
|
+
.header-text h1 {
|
115
|
+
margin: 0;
|
116
|
+
font-size: 16px;
|
117
|
+
}
|
118
|
+
.header-text p {
|
119
|
+
margin: 4px 0 0 0;
|
120
|
+
font-size: 12px;
|
121
|
+
color: #999999;
|
122
|
+
}
|
123
|
+
.tabs {
|
124
|
+
display: flex;
|
125
|
+
border-bottom: 1px solid #444444;
|
126
|
+
margin-bottom: 16px;
|
127
|
+
}
|
128
|
+
.tab {
|
129
|
+
padding: 8px 16px;
|
130
|
+
cursor: pointer;
|
131
|
+
font-size: 14px;
|
132
|
+
font-weight: 500;
|
133
|
+
color: #999999;
|
134
|
+
}
|
135
|
+
.tab.active {
|
136
|
+
border-bottom: 2px solid #18a0fb;
|
137
|
+
color: #18a0fb;
|
138
|
+
}
|
139
|
+
.tab-content {
|
140
|
+
display: none;
|
141
|
+
}
|
142
|
+
.tab-content.active {
|
143
|
+
display: block;
|
144
|
+
}
|
145
|
+
.link {
|
146
|
+
color: #18a0fb;
|
147
|
+
text-decoration: none;
|
148
|
+
cursor: pointer;
|
149
|
+
}
|
150
|
+
.link:hover {
|
151
|
+
text-decoration: underline;
|
152
|
+
}
|
153
|
+
.header-logo {
|
154
|
+
height: 50px;
|
155
|
+
width: 50px;
|
156
|
+
display: flex;
|
157
|
+
align-items: center;
|
158
|
+
justify-content: center;
|
159
|
+
border-radius: 16px;
|
160
|
+
background-color: #333;
|
161
|
+
}
|
162
|
+
.header-logo-image {
|
163
|
+
width: 100%;
|
164
|
+
}
|
165
|
+
/* Progress styles */
|
166
|
+
.operation-complete {
|
167
|
+
color: #4ade80;
|
168
|
+
}
|
169
|
+
.operation-error {
|
170
|
+
color: #ff9999;
|
171
|
+
}
|
172
|
+
</style>
|
173
|
+
</head>
|
174
|
+
<body>
|
175
|
+
<div class="container">
|
176
|
+
<div class="header">
|
177
|
+
<div class="header-logo">
|
178
|
+
<img
|
179
|
+
class="header-logo-image"
|
180
|
+
src="data:image/png;base64,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" />
|
181
|
+
</div>
|
182
|
+
<div class="header-text">
|
183
|
+
<h1>Claude Talk To Figma Plugin</h1>
|
184
|
+
<p>Connect Figma to Claude AI using MCP</p>
|
185
|
+
</div>
|
186
|
+
</div>
|
187
|
+
|
188
|
+
<div class="tabs">
|
189
|
+
<div id="tab-connection" class="tab active">Connection</div>
|
190
|
+
<div id="tab-about" class="tab">About</div>
|
191
|
+
</div>
|
192
|
+
|
193
|
+
<div id="content-connection" class="tab-content active">
|
194
|
+
<div class="section">
|
195
|
+
<label for="port">WebSocket Server Port</label>
|
196
|
+
<div style="display: flex; gap: 8px">
|
197
|
+
<input
|
198
|
+
type="number"
|
199
|
+
id="port"
|
200
|
+
placeholder="3055"
|
201
|
+
value="3055"
|
202
|
+
min="1024"
|
203
|
+
max="65535"
|
204
|
+
/>
|
205
|
+
<button id="btn-connect" class="primary">Connect</button>
|
206
|
+
</div>
|
207
|
+
</div>
|
208
|
+
|
209
|
+
<div id="connection-status" class="status disconnected">
|
210
|
+
Not connected to Claude MCP server
|
211
|
+
</div>
|
212
|
+
|
213
|
+
<div class="section">
|
214
|
+
<button id="btn-disconnect" class="secondary" disabled>
|
215
|
+
Disconnect
|
216
|
+
</button>
|
217
|
+
</div>
|
218
|
+
|
219
|
+
<!-- Add Progress Bar Section -->
|
220
|
+
<div id="progress-container" class="section hidden">
|
221
|
+
<h2>Operation Progress</h2>
|
222
|
+
<div id="progress-message">No operation in progress</div>
|
223
|
+
<div style="width: 100%; background-color: #444; border-radius: 4px; margin-top: 8px;">
|
224
|
+
<div id="progress-bar" style="width: 0%; height: 8px; background-color: #18a0fb; border-radius: 4px; transition: width 0.3s;"></div>
|
225
|
+
</div>
|
226
|
+
<div style="display: flex; justify-content: space-between; margin-top: 4px; font-size: 12px;">
|
227
|
+
<div id="progress-status">Not started</div>
|
228
|
+
<div id="progress-percentage">0%</div>
|
229
|
+
</div>
|
230
|
+
</div>
|
231
|
+
</div>
|
232
|
+
|
233
|
+
<div id="content-about" class="tab-content">
|
234
|
+
<div class="section">
|
235
|
+
<h2>About Claude Talk To Figma Plugin</h2>
|
236
|
+
<p>
|
237
|
+
This plugin allows Claude AI to communicate with Figma, enabling
|
238
|
+
AI-assisted design operations. Based on work by
|
239
|
+
<a
|
240
|
+
class="link"
|
241
|
+
onclick="window.open(`https://github.com/sonnylazuardi`, '_blank')"
|
242
|
+
>Sonny</a
|
243
|
+
>
|
244
|
+
</p>
|
245
|
+
<p>Version: 1.0.0</p>
|
246
|
+
|
247
|
+
<h2>How to Use</h2>
|
248
|
+
<ol>
|
249
|
+
<li>Make sure the MCP server is running in Claude Desktop</li>
|
250
|
+
<li>Connect to the server using the port number (default: 3055)</li>
|
251
|
+
<li>Once connected, you can interact with Figma through Claude</li>
|
252
|
+
</ol>
|
253
|
+
</div>
|
254
|
+
</div>
|
255
|
+
</div>
|
256
|
+
|
257
|
+
<script>
|
258
|
+
// WebSocket connection state
|
259
|
+
const state = {
|
260
|
+
connected: false,
|
261
|
+
socket: null,
|
262
|
+
serverPort: 3055,
|
263
|
+
pendingRequests: new Map(),
|
264
|
+
channel: null,
|
265
|
+
};
|
266
|
+
|
267
|
+
// UI Elements
|
268
|
+
const portInput = document.getElementById("port");
|
269
|
+
const connectButton = document.getElementById("btn-connect");
|
270
|
+
const disconnectButton = document.getElementById("btn-disconnect");
|
271
|
+
const connectionStatus = document.getElementById("connection-status");
|
272
|
+
|
273
|
+
// Tabs
|
274
|
+
const tabs = document.querySelectorAll(".tab");
|
275
|
+
const tabContents = document.querySelectorAll(".tab-content");
|
276
|
+
|
277
|
+
// Add UI elements for progress tracking
|
278
|
+
const progressContainer = document.getElementById("progress-container");
|
279
|
+
const progressBar = document.getElementById("progress-bar");
|
280
|
+
const progressMessage = document.getElementById("progress-message");
|
281
|
+
const progressStatus = document.getElementById("progress-status");
|
282
|
+
const progressPercentage = document.getElementById("progress-percentage");
|
283
|
+
|
284
|
+
// Initialize UI
|
285
|
+
function updateConnectionStatus(isConnected, message) {
|
286
|
+
state.connected = isConnected;
|
287
|
+
connectionStatus.innerHTML =
|
288
|
+
message ||
|
289
|
+
(isConnected
|
290
|
+
? "Connected to Claude MCP server"
|
291
|
+
: "Not connected to Claude MCP server");
|
292
|
+
connectionStatus.className = `status ${
|
293
|
+
isConnected ? "connected" : "disconnected"
|
294
|
+
}`;
|
295
|
+
|
296
|
+
connectButton.disabled = isConnected;
|
297
|
+
disconnectButton.disabled = !isConnected;
|
298
|
+
portInput.disabled = isConnected;
|
299
|
+
}
|
300
|
+
|
301
|
+
// Connect to WebSocket server
|
302
|
+
async function connectToServer(port) {
|
303
|
+
try {
|
304
|
+
if (state.connected && state.socket) {
|
305
|
+
updateConnectionStatus(true, "Already connected to server");
|
306
|
+
return;
|
307
|
+
}
|
308
|
+
|
309
|
+
state.serverPort = port;
|
310
|
+
state.socket = new WebSocket(`ws://localhost:${port}`);
|
311
|
+
|
312
|
+
state.socket.onopen = () => {
|
313
|
+
// Generate random channel name
|
314
|
+
const channelName = generateChannelName();
|
315
|
+
console.log("Joining channel:", channelName);
|
316
|
+
state.channel = channelName;
|
317
|
+
|
318
|
+
// Join the channel using the same format as App.tsx
|
319
|
+
state.socket.send(
|
320
|
+
JSON.stringify({
|
321
|
+
type: "join",
|
322
|
+
channel: channelName.trim(),
|
323
|
+
})
|
324
|
+
);
|
325
|
+
};
|
326
|
+
|
327
|
+
state.socket.onmessage = (event) => {
|
328
|
+
try {
|
329
|
+
const data = JSON.parse(event.data);
|
330
|
+
console.log("Received message:", data);
|
331
|
+
|
332
|
+
if (data.type === "system") {
|
333
|
+
// Successfully joined channel
|
334
|
+
if (data.message && data.message.result) {
|
335
|
+
state.connected = true;
|
336
|
+
const channelName = data.channel;
|
337
|
+
updateConnectionStatus(
|
338
|
+
true,
|
339
|
+
`Connected to server on port ${port} in channel: <strong>${channelName}</strong>`
|
340
|
+
);
|
341
|
+
|
342
|
+
// Notify the plugin code
|
343
|
+
parent.postMessage(
|
344
|
+
{
|
345
|
+
pluginMessage: {
|
346
|
+
type: "notify",
|
347
|
+
message: `Connected to Claude MCP server on port ${port} in channel: ${channelName}`,
|
348
|
+
},
|
349
|
+
},
|
350
|
+
"*"
|
351
|
+
);
|
352
|
+
}
|
353
|
+
} else if (data.type === "error") {
|
354
|
+
console.error("Error:", data.message);
|
355
|
+
updateConnectionStatus(false, `Error: ${data.message}`);
|
356
|
+
state.socket.close();
|
357
|
+
}
|
358
|
+
|
359
|
+
handleSocketMessage(data);
|
360
|
+
} catch (error) {
|
361
|
+
console.error("Error parsing message:", error);
|
362
|
+
}
|
363
|
+
};
|
364
|
+
|
365
|
+
state.socket.onclose = () => {
|
366
|
+
state.connected = false;
|
367
|
+
state.socket = null;
|
368
|
+
updateConnectionStatus(false, "Disconnected from server");
|
369
|
+
};
|
370
|
+
|
371
|
+
state.socket.onerror = (error) => {
|
372
|
+
console.error("WebSocket error:", error);
|
373
|
+
updateConnectionStatus(false, "Connection error");
|
374
|
+
state.connected = false;
|
375
|
+
state.socket = null;
|
376
|
+
};
|
377
|
+
} catch (error) {
|
378
|
+
console.error("Connection error:", error);
|
379
|
+
updateConnectionStatus(
|
380
|
+
false,
|
381
|
+
`Connection error: ${error.message || "Unknown error"}`
|
382
|
+
);
|
383
|
+
}
|
384
|
+
}
|
385
|
+
|
386
|
+
// Disconnect from websocket server
|
387
|
+
function disconnectFromServer() {
|
388
|
+
if (state.socket) {
|
389
|
+
state.socket.close();
|
390
|
+
state.socket = null;
|
391
|
+
state.connected = false;
|
392
|
+
updateConnectionStatus(false, "Disconnected from server");
|
393
|
+
}
|
394
|
+
}
|
395
|
+
|
396
|
+
// Handle messages from the WebSocket
|
397
|
+
async function handleSocketMessage(payload) {
|
398
|
+
const data = payload.message;
|
399
|
+
console.log("handleSocketMessage", data);
|
400
|
+
|
401
|
+
// If it's a response to a previous request
|
402
|
+
if (data.id && state.pendingRequests.has(data.id)) {
|
403
|
+
const { resolve, reject } = state.pendingRequests.get(data.id);
|
404
|
+
state.pendingRequests.delete(data.id);
|
405
|
+
|
406
|
+
if (data.error) {
|
407
|
+
reject(new Error(data.error));
|
408
|
+
} else {
|
409
|
+
resolve(data.result);
|
410
|
+
}
|
411
|
+
return;
|
412
|
+
}
|
413
|
+
|
414
|
+
// If it's a new command
|
415
|
+
if (data.command) {
|
416
|
+
try {
|
417
|
+
// Send the command to the plugin code
|
418
|
+
parent.postMessage(
|
419
|
+
{
|
420
|
+
pluginMessage: {
|
421
|
+
type: "execute-command",
|
422
|
+
id: data.id,
|
423
|
+
command: data.command,
|
424
|
+
params: data.params,
|
425
|
+
},
|
426
|
+
},
|
427
|
+
"*"
|
428
|
+
);
|
429
|
+
} catch (error) {
|
430
|
+
// Send error back to WebSocket
|
431
|
+
sendErrorResponse(
|
432
|
+
data.id,
|
433
|
+
error.message || "Error executing command"
|
434
|
+
);
|
435
|
+
}
|
436
|
+
}
|
437
|
+
}
|
438
|
+
|
439
|
+
// Send a command to the WebSocket server
|
440
|
+
async function sendCommand(command, params) {
|
441
|
+
return new Promise((resolve, reject) => {
|
442
|
+
if (!state.connected || !state.socket) {
|
443
|
+
reject(new Error("Not connected to server"));
|
444
|
+
return;
|
445
|
+
}
|
446
|
+
|
447
|
+
const id = generateId();
|
448
|
+
state.pendingRequests.set(id, { resolve, reject });
|
449
|
+
|
450
|
+
state.socket.send(
|
451
|
+
JSON.stringify({
|
452
|
+
id,
|
453
|
+
type: "message",
|
454
|
+
channel: state.channel,
|
455
|
+
message: {
|
456
|
+
id,
|
457
|
+
command,
|
458
|
+
params,
|
459
|
+
},
|
460
|
+
})
|
461
|
+
);
|
462
|
+
|
463
|
+
// Set timeout to reject the promise after 30 seconds
|
464
|
+
setTimeout(() => {
|
465
|
+
if (state.pendingRequests.has(id)) {
|
466
|
+
state.pendingRequests.delete(id);
|
467
|
+
reject(new Error("Request timed out"));
|
468
|
+
}
|
469
|
+
}, 30000);
|
470
|
+
});
|
471
|
+
}
|
472
|
+
|
473
|
+
// Send success response back to WebSocket
|
474
|
+
function sendSuccessResponse(id, result) {
|
475
|
+
if (!state.connected || !state.socket) {
|
476
|
+
console.error("Cannot send response: socket not connected");
|
477
|
+
return;
|
478
|
+
}
|
479
|
+
|
480
|
+
state.socket.send(
|
481
|
+
JSON.stringify({
|
482
|
+
id,
|
483
|
+
type: "message",
|
484
|
+
channel: state.channel,
|
485
|
+
message: {
|
486
|
+
id,
|
487
|
+
result,
|
488
|
+
},
|
489
|
+
})
|
490
|
+
);
|
491
|
+
}
|
492
|
+
|
493
|
+
// Send error response back to WebSocket
|
494
|
+
function sendErrorResponse(id, errorMessage) {
|
495
|
+
if (!state.connected || !state.socket) {
|
496
|
+
console.error("Cannot send error response: socket not connected");
|
497
|
+
return;
|
498
|
+
}
|
499
|
+
|
500
|
+
state.socket.send(
|
501
|
+
JSON.stringify({
|
502
|
+
id,
|
503
|
+
error: errorMessage,
|
504
|
+
})
|
505
|
+
);
|
506
|
+
}
|
507
|
+
|
508
|
+
// Helper to generate unique IDs
|
509
|
+
function generateId() {
|
510
|
+
return (
|
511
|
+
Date.now().toString(36) + Math.random().toString(36).substr(2, 5)
|
512
|
+
);
|
513
|
+
}
|
514
|
+
|
515
|
+
// Add this function after the generateId() function
|
516
|
+
function generateChannelName() {
|
517
|
+
const characters = "abcdefghijklmnopqrstuvwxyz0123456789";
|
518
|
+
let result = "";
|
519
|
+
for (let i = 0; i < 8; i++) {
|
520
|
+
result += characters.charAt(
|
521
|
+
Math.floor(Math.random() * characters.length)
|
522
|
+
);
|
523
|
+
}
|
524
|
+
return result;
|
525
|
+
}
|
526
|
+
|
527
|
+
// Tab switching
|
528
|
+
tabs.forEach((tab) => {
|
529
|
+
tab.addEventListener("click", () => {
|
530
|
+
tabs.forEach((t) => t.classList.remove("active"));
|
531
|
+
tabContents.forEach((c) => c.classList.remove("active"));
|
532
|
+
|
533
|
+
tab.classList.add("active");
|
534
|
+
const contentId = "content-" + tab.id.split("-")[1];
|
535
|
+
document.getElementById(contentId).classList.add("active");
|
536
|
+
});
|
537
|
+
});
|
538
|
+
|
539
|
+
// Connect to server
|
540
|
+
connectButton.addEventListener("click", () => {
|
541
|
+
const port = parseInt(portInput.value, 10) || 3055;
|
542
|
+
updateConnectionStatus(false, "Connecting...");
|
543
|
+
connectionStatus.className = "status info";
|
544
|
+
connectToServer(port);
|
545
|
+
});
|
546
|
+
|
547
|
+
// Disconnect from server
|
548
|
+
disconnectButton.addEventListener("click", () => {
|
549
|
+
updateConnectionStatus(false, "Disconnecting...");
|
550
|
+
connectionStatus.className = "status info";
|
551
|
+
disconnectFromServer();
|
552
|
+
});
|
553
|
+
|
554
|
+
// Function to update progress UI
|
555
|
+
function updateProgressUI(progressData) {
|
556
|
+
// Show progress container if hidden
|
557
|
+
progressContainer.classList.remove("hidden");
|
558
|
+
|
559
|
+
// Update progress bar
|
560
|
+
const progress = progressData.progress || 0;
|
561
|
+
progressBar.style.width = `${progress}%`;
|
562
|
+
progressPercentage.textContent = `${progress}%`;
|
563
|
+
|
564
|
+
// Update message
|
565
|
+
progressMessage.textContent = progressData.message || "Operation in progress";
|
566
|
+
|
567
|
+
// Update status text based on operation state
|
568
|
+
if (progressData.status === 'started') {
|
569
|
+
progressStatus.textContent = "Started";
|
570
|
+
progressStatus.className = "";
|
571
|
+
} else if (progressData.status === 'in_progress') {
|
572
|
+
progressStatus.textContent = "In Progress";
|
573
|
+
progressStatus.className = "";
|
574
|
+
} else if (progressData.status === 'completed') {
|
575
|
+
progressStatus.textContent = "Completed";
|
576
|
+
progressStatus.className = "operation-complete";
|
577
|
+
|
578
|
+
// Hide progress container after 5 seconds
|
579
|
+
setTimeout(() => {
|
580
|
+
progressContainer.classList.add("hidden");
|
581
|
+
}, 5000);
|
582
|
+
} else if (progressData.status === 'error') {
|
583
|
+
progressStatus.textContent = "Error";
|
584
|
+
progressStatus.className = "operation-error";
|
585
|
+
}
|
586
|
+
}
|
587
|
+
|
588
|
+
// Send operation progress update to server
|
589
|
+
function sendProgressUpdateToServer(progressData) {
|
590
|
+
if (!state.connected || !state.socket) {
|
591
|
+
console.error("Cannot send progress update: socket not connected");
|
592
|
+
return;
|
593
|
+
}
|
594
|
+
|
595
|
+
console.log("Sending progress update to server:", progressData);
|
596
|
+
|
597
|
+
state.socket.send(
|
598
|
+
JSON.stringify({
|
599
|
+
id: progressData.commandId,
|
600
|
+
type: "progress_update",
|
601
|
+
channel: state.channel,
|
602
|
+
message: {
|
603
|
+
id: progressData.commandId,
|
604
|
+
type: "progress_update",
|
605
|
+
data: progressData
|
606
|
+
}
|
607
|
+
})
|
608
|
+
);
|
609
|
+
}
|
610
|
+
|
611
|
+
// Reset progress UI
|
612
|
+
function resetProgressUI() {
|
613
|
+
progressContainer.classList.add("hidden");
|
614
|
+
progressBar.style.width = "0%";
|
615
|
+
progressMessage.textContent = "No operation in progress";
|
616
|
+
progressStatus.textContent = "Not started";
|
617
|
+
progressStatus.className = "";
|
618
|
+
progressPercentage.textContent = "0%";
|
619
|
+
}
|
620
|
+
|
621
|
+
// Listen for messages from the plugin code
|
622
|
+
window.onmessage = (event) => {
|
623
|
+
const message = event.data.pluginMessage;
|
624
|
+
if (!message) return;
|
625
|
+
|
626
|
+
console.log("Received message from plugin:", message);
|
627
|
+
|
628
|
+
switch (message.type) {
|
629
|
+
case "connection-status":
|
630
|
+
updateConnectionStatus(message.connected, message.message);
|
631
|
+
break;
|
632
|
+
case "auto-connect":
|
633
|
+
connectButton.click();
|
634
|
+
break;
|
635
|
+
case "auto-disconnect":
|
636
|
+
disconnectButton.click();
|
637
|
+
break;
|
638
|
+
case "command-result":
|
639
|
+
// Forward the result from plugin code back to WebSocket
|
640
|
+
sendSuccessResponse(message.id, message.result);
|
641
|
+
break;
|
642
|
+
case "command-error":
|
643
|
+
// Forward the error from plugin code back to WebSocket
|
644
|
+
sendErrorResponse(message.id, message.error);
|
645
|
+
break;
|
646
|
+
case "command_progress":
|
647
|
+
// Update UI with progress information
|
648
|
+
updateProgressUI(message);
|
649
|
+
// Forward progress update to server
|
650
|
+
sendProgressUpdateToServer(message);
|
651
|
+
break;
|
652
|
+
}
|
653
|
+
};
|
654
|
+
</script>
|
655
|
+
</body>
|
656
|
+
</html>
|