bps-kit 1.0.1 → 1.0.2
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/package.json +1 -1
- package/templates/.agents/agents/backend-specialist.md +263 -0
- package/templates/.agents/agents/code-archaeologist.md +106 -0
- package/templates/.agents/agents/database-architect.md +226 -0
- package/templates/.agents/agents/debugger.md +225 -0
- package/templates/.agents/agents/devops-engineer.md +242 -0
- package/templates/.agents/agents/documentation-writer.md +104 -0
- package/templates/.agents/agents/explorer-agent.md +73 -0
- package/templates/.agents/agents/frontend-specialist.md +593 -0
- package/templates/.agents/agents/game-developer.md +162 -0
- package/templates/.agents/agents/mobile-developer.md +377 -0
- package/templates/.agents/agents/orchestrator.md +416 -0
- package/templates/.agents/agents/penetration-tester.md +188 -0
- package/templates/.agents/agents/performance-optimizer.md +187 -0
- package/templates/.agents/agents/product-manager.md +112 -0
- package/templates/.agents/agents/product-owner.md +95 -0
- package/templates/.agents/agents/project-planner.md +406 -0
- package/templates/.agents/agents/qa-automation-engineer.md +103 -0
- package/templates/.agents/agents/security-auditor.md +170 -0
- package/templates/.agents/agents/seo-specialist.md +111 -0
- package/templates/.agents/agents/test-engineer.md +158 -0
- package/templates/.agents/rules/GEMINI.md +219 -0
- package/templates/.agents/scripts/auto_preview.py +148 -0
- package/templates/.agents/scripts/checklist.py +217 -0
- package/templates/.agents/scripts/session_manager.py +120 -0
- package/templates/.agents/scripts/verify_all.py +327 -0
- package/templates/.agents/workflows/brainstorm.md +113 -0
- package/templates/.agents/workflows/create.md +59 -0
- package/templates/.agents/workflows/debug.md +103 -0
- package/templates/.agents/workflows/deploy.md +176 -0
- package/templates/.agents/workflows/enhance.md +63 -0
- package/templates/.agents/workflows/orchestrate.md +237 -0
- package/templates/.agents/workflows/plan.md +89 -0
- package/templates/.agents/workflows/preview.md +81 -0
- package/templates/.agents/workflows/setup-brain.md +39 -0
- package/templates/.agents/workflows/status.md +86 -0
- package/templates/.agents/workflows/test.md +144 -0
- package/templates/.agents/workflows/ui-ux-pro-max.md +296 -0
- package/templates/skills_normal/api-patterns/scripts/api_validator.py +211 -0
- package/templates/skills_normal/database-design/scripts/schema_validator.py +172 -0
- package/templates/skills_normal/frontend-design/scripts/accessibility_checker.py +183 -0
- package/templates/skills_normal/frontend-design/scripts/ux_audit.py +722 -0
- package/templates/skills_normal/git-pushing/scripts/smart_commit.sh +19 -0
- package/templates/skills_normal/lint-and-validate/scripts/lint_runner.py +184 -0
- package/templates/skills_normal/lint-and-validate/scripts/type_coverage.py +173 -0
- package/templates/skills_normal/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/templates/skills_normal/senior-fullstack/scripts/code_quality_analyzer.py +114 -0
- package/templates/skills_normal/senior-fullstack/scripts/fullstack_scaffolder.py +114 -0
- package/templates/skills_normal/senior-fullstack/scripts/project_scaffolder.py +114 -0
- package/templates/skills_normal/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/templates/skills_normal/testing-patterns/scripts/test_runner.py +219 -0
- package/templates/skills_normal/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/templates/vault/007/scripts/config.py +472 -0
- package/templates/vault/007/scripts/full_audit.py +1306 -0
- package/templates/vault/007/scripts/quick_scan.py +481 -0
- package/templates/vault/007/scripts/requirements.txt +26 -0
- package/templates/vault/007/scripts/scanners/__init__.py +0 -0
- package/templates/vault/007/scripts/scanners/dependency_scanner.py +1305 -0
- package/templates/vault/007/scripts/scanners/injection_scanner.py +1104 -0
- package/templates/vault/007/scripts/scanners/secrets_scanner.py +1008 -0
- package/templates/vault/007/scripts/score_calculator.py +693 -0
- package/templates/vault/agent-orchestrator/scripts/match_skills.py +329 -0
- package/templates/vault/agent-orchestrator/scripts/orchestrate.py +304 -0
- package/templates/vault/agent-orchestrator/scripts/requirements.txt +1 -0
- package/templates/vault/agent-orchestrator/scripts/scan_registry.py +508 -0
- package/templates/vault/ai-studio-image/scripts/config.py +613 -0
- package/templates/vault/ai-studio-image/scripts/generate.py +630 -0
- package/templates/vault/ai-studio-image/scripts/prompt_engine.py +424 -0
- package/templates/vault/ai-studio-image/scripts/requirements.txt +4 -0
- package/templates/vault/ai-studio-image/scripts/templates.py +349 -0
- package/templates/vault/android_ui_verification/scripts/verify_ui.sh +32 -0
- package/templates/vault/apify-audience-analysis/reference/scripts/run_actor.js +363 -0
- package/templates/vault/apify-brand-reputation-monitoring/reference/scripts/run_actor.js +363 -0
- package/templates/vault/apify-competitor-intelligence/reference/scripts/run_actor.js +363 -0
- package/templates/vault/apify-content-analytics/reference/scripts/run_actor.js +363 -0
- package/templates/vault/apify-ecommerce/reference/scripts/package.json +3 -0
- package/templates/vault/apify-ecommerce/reference/scripts/run_actor.js +369 -0
- package/templates/vault/apify-influencer-discovery/reference/scripts/run_actor.js +363 -0
- package/templates/vault/apify-lead-generation/reference/scripts/run_actor.js +363 -0
- package/templates/vault/apify-market-research/reference/scripts/run_actor.js +363 -0
- package/templates/vault/apify-trend-analysis/reference/scripts/run_actor.js +363 -0
- package/templates/vault/apify-ultimate-scraper/reference/scripts/run_actor.js +363 -0
- package/templates/vault/audio-transcriber/scripts/install-requirements.sh +190 -0
- package/templates/vault/audio-transcriber/scripts/transcribe.py +486 -0
- package/templates/vault/claude-monitor/scripts/api_bench.py +240 -0
- package/templates/vault/claude-monitor/scripts/config.py +69 -0
- package/templates/vault/claude-monitor/scripts/health_check.py +362 -0
- package/templates/vault/claude-monitor/scripts/monitor.py +296 -0
- package/templates/vault/content-creator/scripts/brand_voice_analyzer.py +185 -0
- package/templates/vault/content-creator/scripts/seo_optimizer.py +419 -0
- package/templates/vault/context-agent/scripts/active_context.py +227 -0
- package/templates/vault/context-agent/scripts/compressor.py +149 -0
- package/templates/vault/context-agent/scripts/config.py +69 -0
- package/templates/vault/context-agent/scripts/context_loader.py +155 -0
- package/templates/vault/context-agent/scripts/context_manager.py +302 -0
- package/templates/vault/context-agent/scripts/models.py +103 -0
- package/templates/vault/context-agent/scripts/project_registry.py +132 -0
- package/templates/vault/context-agent/scripts/requirements.txt +6 -0
- package/templates/vault/context-agent/scripts/search.py +115 -0
- package/templates/vault/context-agent/scripts/session_parser.py +206 -0
- package/templates/vault/context-agent/scripts/session_summary.py +319 -0
- package/templates/vault/context-guardian/scripts/context_snapshot.py +229 -0
- package/templates/vault/docx/ooxml/scripts/pack.py +159 -0
- package/templates/vault/docx/ooxml/scripts/unpack.py +29 -0
- package/templates/vault/docx/ooxml/scripts/validate.py +69 -0
- package/templates/vault/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/templates/vault/docx/ooxml/scripts/validation/base.py +951 -0
- package/templates/vault/docx/ooxml/scripts/validation/docx.py +274 -0
- package/templates/vault/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/templates/vault/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/templates/vault/docx/scripts/__init__.py +1 -0
- package/templates/vault/docx/scripts/document.py +1276 -0
- package/templates/vault/docx/scripts/templates/comments.xml +3 -0
- package/templates/vault/docx/scripts/templates/commentsExtended.xml +3 -0
- package/templates/vault/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/templates/vault/docx/scripts/templates/commentsIds.xml +3 -0
- package/templates/vault/docx/scripts/templates/people.xml +3 -0
- package/templates/vault/docx/scripts/utilities.py +374 -0
- package/templates/vault/docx-official/ooxml/scripts/pack.py +159 -0
- package/templates/vault/docx-official/ooxml/scripts/unpack.py +29 -0
- package/templates/vault/docx-official/ooxml/scripts/validate.py +69 -0
- package/templates/vault/docx-official/ooxml/scripts/validation/__init__.py +15 -0
- package/templates/vault/docx-official/ooxml/scripts/validation/base.py +951 -0
- package/templates/vault/docx-official/ooxml/scripts/validation/docx.py +274 -0
- package/templates/vault/docx-official/ooxml/scripts/validation/pptx.py +315 -0
- package/templates/vault/docx-official/ooxml/scripts/validation/redlining.py +279 -0
- package/templates/vault/docx-official/scripts/__init__.py +1 -0
- package/templates/vault/docx-official/scripts/document.py +1276 -0
- package/templates/vault/docx-official/scripts/templates/comments.xml +3 -0
- package/templates/vault/docx-official/scripts/templates/commentsExtended.xml +3 -0
- package/templates/vault/docx-official/scripts/templates/commentsExtensible.xml +3 -0
- package/templates/vault/docx-official/scripts/templates/commentsIds.xml +3 -0
- package/templates/vault/docx-official/scripts/templates/people.xml +3 -0
- package/templates/vault/docx-official/scripts/utilities.py +374 -0
- package/templates/vault/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/templates/vault/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
- package/templates/vault/i18n-localization/scripts/i18n_checker.py +241 -0
- package/templates/vault/instagram/scripts/account_setup.py +233 -0
- package/templates/vault/instagram/scripts/analyze.py +221 -0
- package/templates/vault/instagram/scripts/api_client.py +444 -0
- package/templates/vault/instagram/scripts/auth.py +411 -0
- package/templates/vault/instagram/scripts/comments.py +160 -0
- package/templates/vault/instagram/scripts/config.py +111 -0
- package/templates/vault/instagram/scripts/db.py +467 -0
- package/templates/vault/instagram/scripts/export.py +138 -0
- package/templates/vault/instagram/scripts/governance.py +233 -0
- package/templates/vault/instagram/scripts/hashtags.py +114 -0
- package/templates/vault/instagram/scripts/insights.py +170 -0
- package/templates/vault/instagram/scripts/media.py +65 -0
- package/templates/vault/instagram/scripts/messages.py +103 -0
- package/templates/vault/instagram/scripts/profile.py +58 -0
- package/templates/vault/instagram/scripts/publish.py +449 -0
- package/templates/vault/instagram/scripts/requirements.txt +5 -0
- package/templates/vault/instagram/scripts/run_all.py +189 -0
- package/templates/vault/instagram/scripts/schedule.py +189 -0
- package/templates/vault/instagram/scripts/serve_api.py +234 -0
- package/templates/vault/instagram/scripts/templates.py +155 -0
- package/templates/vault/junta-leiloeiros/scripts/db.py +216 -0
- package/templates/vault/junta-leiloeiros/scripts/export.py +137 -0
- package/templates/vault/junta-leiloeiros/scripts/requirements.txt +15 -0
- package/templates/vault/junta-leiloeiros/scripts/run_all.py +190 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/__init__.py +4 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/base_scraper.py +209 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/generic_scraper.py +110 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucap.py +110 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/juceac.py +72 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/juceal.py +72 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/juceb.py +68 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucec.py +63 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucema.py +211 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucemg.py +218 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucep.py +70 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucepa.py +74 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucepar.py +80 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucepe.py +78 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucepi.py +69 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucer.py +256 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucerja.py +170 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucern.py +71 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucesc.py +89 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucesp.py +233 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucetins.py +134 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucis_df.py +63 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/jucisrs.py +299 -0
- package/templates/vault/junta-leiloeiros/scripts/scraper/states.py +99 -0
- package/templates/vault/junta-leiloeiros/scripts/serve_api.py +164 -0
- package/templates/vault/junta-leiloeiros/scripts/web_scraper_fallback.py +233 -0
- package/templates/vault/last30days/scripts/last30days.py +521 -0
- package/templates/vault/last30days/scripts/lib/__init__.py +1 -0
- package/templates/vault/last30days/scripts/lib/cache.py +152 -0
- package/templates/vault/last30days/scripts/lib/dates.py +124 -0
- package/templates/vault/last30days/scripts/lib/dedupe.py +120 -0
- package/templates/vault/last30days/scripts/lib/env.py +149 -0
- package/templates/vault/last30days/scripts/lib/http.py +152 -0
- package/templates/vault/last30days/scripts/lib/models.py +175 -0
- package/templates/vault/last30days/scripts/lib/normalize.py +160 -0
- package/templates/vault/last30days/scripts/lib/openai_reddit.py +230 -0
- package/templates/vault/last30days/scripts/lib/reddit_enrich.py +232 -0
- package/templates/vault/last30days/scripts/lib/render.py +383 -0
- package/templates/vault/last30days/scripts/lib/schema.py +336 -0
- package/templates/vault/last30days/scripts/lib/score.py +311 -0
- package/templates/vault/last30days/scripts/lib/ui.py +324 -0
- package/templates/vault/last30days/scripts/lib/websearch.py +401 -0
- package/templates/vault/last30days/scripts/lib/xai_x.py +217 -0
- package/templates/vault/leiloeiro-avaliacao/scripts/governance.py +106 -0
- package/templates/vault/leiloeiro-avaliacao/scripts/requirements.txt +1 -0
- package/templates/vault/leiloeiro-edital/scripts/governance.py +106 -0
- package/templates/vault/leiloeiro-edital/scripts/requirements.txt +1 -0
- package/templates/vault/leiloeiro-ia/scripts/governance.py +106 -0
- package/templates/vault/leiloeiro-ia/scripts/requirements.txt +1 -0
- package/templates/vault/leiloeiro-juridico/scripts/governance.py +106 -0
- package/templates/vault/leiloeiro-juridico/scripts/requirements.txt +1 -0
- package/templates/vault/leiloeiro-mercado/scripts/governance.py +106 -0
- package/templates/vault/leiloeiro-mercado/scripts/requirements.txt +1 -0
- package/templates/vault/leiloeiro-risco/scripts/governance.py +106 -0
- package/templates/vault/leiloeiro-risco/scripts/requirements.txt +1 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/backend/src/db/database.ts +24 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/backend/src/db/db.ts +35 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/backend/src/db/index.ts +2 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/backend/src/db/migrations.ts +31 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/backend/src/db/schema.sql +8 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/backend/src/index.ts +44 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/backend/src/routes/todos.ts +155 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/backend/src/types/index.ts +35 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/App.css +384 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/App.tsx +81 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/api/todos.ts +57 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/components/ConfirmDialog.tsx +26 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/components/EmptyState.tsx +8 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/components/TodoForm.tsx +43 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/components/TodoItem.tsx +36 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/components/TodoList.tsx +27 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/hooks/useTodos.ts +81 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/index.css +48 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/main.tsx +10 -0
- package/templates/vault/loki-mode/examples/todo-app-generated/frontend/src/vite-env.d.ts +1 -0
- package/templates/vault/loki-mode/scripts/export-to-vibe-kanban.sh +178 -0
- package/templates/vault/loki-mode/scripts/loki-wrapper.sh +281 -0
- package/templates/vault/loki-mode/scripts/take-screenshots.js +55 -0
- package/templates/vault/matematico-tao/scripts/complexity_analyzer.py +544 -0
- package/templates/vault/matematico-tao/scripts/dependency_graph.py +538 -0
- package/templates/vault/mcp-builder/scripts/connections.py +151 -0
- package/templates/vault/mcp-builder/scripts/evaluation.py +373 -0
- package/templates/vault/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/templates/vault/mcp-builder/scripts/requirements.txt +2 -0
- package/templates/vault/mobile-design/scripts/mobile_audit.py +670 -0
- package/templates/vault/notebooklm/scripts/__init__.py +81 -0
- package/templates/vault/notebooklm/scripts/ask_question.py +256 -0
- package/templates/vault/notebooklm/scripts/auth_manager.py +358 -0
- package/templates/vault/notebooklm/scripts/browser_session.py +255 -0
- package/templates/vault/notebooklm/scripts/browser_utils.py +107 -0
- package/templates/vault/notebooklm/scripts/cleanup_manager.py +302 -0
- package/templates/vault/notebooklm/scripts/config.py +44 -0
- package/templates/vault/notebooklm/scripts/notebook_manager.py +410 -0
- package/templates/vault/notebooklm/scripts/run.py +102 -0
- package/templates/vault/notebooklm/scripts/setup_environment.py +204 -0
- package/templates/vault/pdf/scripts/check_bounding_boxes.py +70 -0
- package/templates/vault/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/templates/vault/pdf/scripts/check_fillable_fields.py +12 -0
- package/templates/vault/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/templates/vault/pdf/scripts/create_validation_image.py +41 -0
- package/templates/vault/pdf/scripts/extract_form_field_info.py +152 -0
- package/templates/vault/pdf/scripts/fill_fillable_fields.py +114 -0
- package/templates/vault/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/templates/vault/pdf-official/scripts/check_bounding_boxes.py +70 -0
- package/templates/vault/pdf-official/scripts/check_bounding_boxes_test.py +226 -0
- package/templates/vault/pdf-official/scripts/check_fillable_fields.py +12 -0
- package/templates/vault/pdf-official/scripts/convert_pdf_to_images.py +35 -0
- package/templates/vault/pdf-official/scripts/create_validation_image.py +41 -0
- package/templates/vault/pdf-official/scripts/extract_form_field_info.py +152 -0
- package/templates/vault/pdf-official/scripts/fill_fillable_fields.py +114 -0
- package/templates/vault/pdf-official/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/templates/vault/planning-with-files/scripts/check-complete.sh +44 -0
- package/templates/vault/planning-with-files/scripts/init-session.sh +120 -0
- package/templates/vault/pptx/ooxml/scripts/pack.py +159 -0
- package/templates/vault/pptx/ooxml/scripts/unpack.py +29 -0
- package/templates/vault/pptx/ooxml/scripts/validate.py +69 -0
- package/templates/vault/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/templates/vault/pptx/ooxml/scripts/validation/base.py +951 -0
- package/templates/vault/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/templates/vault/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/templates/vault/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/templates/vault/pptx/scripts/html2pptx.js +979 -0
- package/templates/vault/pptx/scripts/inventory.py +1020 -0
- package/templates/vault/pptx/scripts/rearrange.py +231 -0
- package/templates/vault/pptx/scripts/replace.py +385 -0
- package/templates/vault/pptx/scripts/thumbnail.py +450 -0
- package/templates/vault/pptx-official/ooxml/scripts/pack.py +159 -0
- package/templates/vault/pptx-official/ooxml/scripts/unpack.py +29 -0
- package/templates/vault/pptx-official/ooxml/scripts/validate.py +69 -0
- package/templates/vault/pptx-official/ooxml/scripts/validation/__init__.py +15 -0
- package/templates/vault/pptx-official/ooxml/scripts/validation/base.py +951 -0
- package/templates/vault/pptx-official/ooxml/scripts/validation/docx.py +274 -0
- package/templates/vault/pptx-official/ooxml/scripts/validation/pptx.py +315 -0
- package/templates/vault/pptx-official/ooxml/scripts/validation/redlining.py +279 -0
- package/templates/vault/pptx-official/scripts/html2pptx.js +979 -0
- package/templates/vault/pptx-official/scripts/inventory.py +1020 -0
- package/templates/vault/pptx-official/scripts/rearrange.py +231 -0
- package/templates/vault/pptx-official/scripts/replace.py +385 -0
- package/templates/vault/pptx-official/scripts/thumbnail.py +450 -0
- package/templates/vault/product-manager-toolkit/scripts/customer_interview_analyzer.py +441 -0
- package/templates/vault/product-manager-toolkit/scripts/rice_prioritizer.py +296 -0
- package/templates/vault/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
- package/templates/vault/scripts/.skill_cache.json +7538 -0
- package/templates/vault/scripts/skill_search.py +228 -0
- package/templates/vault/senior-architect/scripts/architecture_diagram_generator.py +114 -0
- package/templates/vault/senior-architect/scripts/dependency_analyzer.py +114 -0
- package/templates/vault/senior-architect/scripts/project_architect.py +114 -0
- package/templates/vault/shopify-development/scripts/requirements.txt +19 -0
- package/templates/vault/shopify-development/scripts/shopify_graphql.py +428 -0
- package/templates/vault/shopify-development/scripts/shopify_init.py +441 -0
- package/templates/vault/shopify-development/scripts/tests/test_shopify_init.py +379 -0
- package/templates/vault/skill-creator/scripts/init_skill.py +303 -0
- package/templates/vault/skill-creator/scripts/package_skill.py +110 -0
- package/templates/vault/skill-creator/scripts/quick_validate.py +95 -0
- package/templates/vault/skill-installer/scripts/detect_skills.py +318 -0
- package/templates/vault/skill-installer/scripts/install_skill.py +1708 -0
- package/templates/vault/skill-installer/scripts/package_skill.py +417 -0
- package/templates/vault/skill-installer/scripts/requirements.txt +1 -0
- package/templates/vault/skill-installer/scripts/validate_skill.py +430 -0
- package/templates/vault/skill-sentinel/scripts/analyzers/__init__.py +13 -0
- package/templates/vault/skill-sentinel/scripts/analyzers/code_quality.py +247 -0
- package/templates/vault/skill-sentinel/scripts/analyzers/cross_skill.py +134 -0
- package/templates/vault/skill-sentinel/scripts/analyzers/dependencies.py +121 -0
- package/templates/vault/skill-sentinel/scripts/analyzers/documentation.py +189 -0
- package/templates/vault/skill-sentinel/scripts/analyzers/governance_audit.py +153 -0
- package/templates/vault/skill-sentinel/scripts/analyzers/performance.py +164 -0
- package/templates/vault/skill-sentinel/scripts/analyzers/security.py +189 -0
- package/templates/vault/skill-sentinel/scripts/config.py +158 -0
- package/templates/vault/skill-sentinel/scripts/cost_optimizer.py +146 -0
- package/templates/vault/skill-sentinel/scripts/db.py +354 -0
- package/templates/vault/skill-sentinel/scripts/governance.py +58 -0
- package/templates/vault/skill-sentinel/scripts/recommender.py +228 -0
- package/templates/vault/skill-sentinel/scripts/report_generator.py +224 -0
- package/templates/vault/skill-sentinel/scripts/requirements.txt +1 -0
- package/templates/vault/skill-sentinel/scripts/run_audit.py +290 -0
- package/templates/vault/skill-sentinel/scripts/scanner.py +271 -0
- package/templates/vault/stability-ai/scripts/config.py +266 -0
- package/templates/vault/stability-ai/scripts/generate.py +687 -0
- package/templates/vault/stability-ai/scripts/requirements.txt +4 -0
- package/templates/vault/stability-ai/scripts/styles.py +174 -0
- package/templates/vault/telegram/assets/boilerplate/nodejs/src/bot-client.ts +86 -0
- package/templates/vault/telegram/assets/boilerplate/nodejs/src/handlers.ts +79 -0
- package/templates/vault/telegram/assets/boilerplate/nodejs/src/index.ts +32 -0
- package/templates/vault/telegram/scripts/send_message.py +143 -0
- package/templates/vault/telegram/scripts/setup_project.py +103 -0
- package/templates/vault/telegram/scripts/test_bot.py +144 -0
- package/templates/vault/typescript-expert/scripts/ts_diagnostic.py +203 -0
- package/templates/vault/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/templates/vault/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/templates/vault/ui-ux-pro-max/scripts/core.py +257 -0
- package/templates/vault/ui-ux-pro-max/scripts/design_system.py +487 -0
- package/templates/vault/ui-ux-pro-max/scripts/search.py +76 -0
- package/templates/vault/videodb/scripts/ws_listener.py +204 -0
- package/templates/vault/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/templates/vault/web-artifacts-builder/scripts/init-artifact.sh +322 -0
- package/templates/vault/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/templates/vault/webapp-testing/scripts/with_server.py +106 -0
- package/templates/vault/whatsapp-cloud-api/assets/boilerplate/nodejs/src/index.ts +125 -0
- package/templates/vault/whatsapp-cloud-api/assets/boilerplate/nodejs/src/template-manager.ts +67 -0
- package/templates/vault/whatsapp-cloud-api/assets/boilerplate/nodejs/src/types.ts +216 -0
- package/templates/vault/whatsapp-cloud-api/assets/boilerplate/nodejs/src/webhook-handler.ts +173 -0
- package/templates/vault/whatsapp-cloud-api/assets/boilerplate/nodejs/src/whatsapp-client.ts +193 -0
- package/templates/vault/whatsapp-cloud-api/scripts/send_test_message.py +137 -0
- package/templates/vault/whatsapp-cloud-api/scripts/setup_project.py +118 -0
- package/templates/vault/whatsapp-cloud-api/scripts/validate_config.py +190 -0
- package/templates/vault/youtube-summarizer/scripts/extract-transcript.py +65 -0
- package/templates/vault/youtube-summarizer/scripts/install-dependencies.sh +28 -0
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AI Studio Image — Templates Pre-configurados
|
|
3
|
+
|
|
4
|
+
Biblioteca de templates prontos para cenarios comuns de geracao de imagens.
|
|
5
|
+
Cada template inclui um prompt base, configuracoes ideais e contexto
|
|
6
|
+
adicional para o motor de humanizacao.
|
|
7
|
+
|
|
8
|
+
Uso:
|
|
9
|
+
python templates.py --list # Listar todos
|
|
10
|
+
python templates.py --list --mode influencer # Filtrar por modo
|
|
11
|
+
python templates.py --show cafe-lifestyle # Detalhes de um template
|
|
12
|
+
python templates.py --show all --json # Todos em JSON
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import argparse
|
|
16
|
+
import json
|
|
17
|
+
import sys
|
|
18
|
+
from pathlib import Path
|
|
19
|
+
|
|
20
|
+
sys.path.insert(0, str(Path(__file__).parent))
|
|
21
|
+
|
|
22
|
+
# =============================================================================
|
|
23
|
+
# TEMPLATES — MODO INFLUENCER
|
|
24
|
+
# =============================================================================
|
|
25
|
+
|
|
26
|
+
INFLUENCER_TEMPLATES = {
|
|
27
|
+
"cafe-lifestyle": {
|
|
28
|
+
"name": "Cafe Lifestyle",
|
|
29
|
+
"mode": "influencer",
|
|
30
|
+
"prompt": "Young person sitting in a cozy coffee shop, holding a warm latte with latte art, soft natural window light, wooden table with a book or phone nearby, relaxed genuine smile, casual trendy outfit",
|
|
31
|
+
"context": "Lifestyle cafe scene. Warm ambient tones, shallow depth of field on the cup, background slightly blurred with other customers. Morning or afternoon light from large windows.",
|
|
32
|
+
"suggested_format": "square",
|
|
33
|
+
"suggested_lighting": "indoor",
|
|
34
|
+
"suggested_humanization": "natural",
|
|
35
|
+
"tags": ["cafe", "coffee", "lifestyle", "relax", "morning"],
|
|
36
|
+
},
|
|
37
|
+
"outdoor-adventure": {
|
|
38
|
+
"name": "Outdoor Adventure",
|
|
39
|
+
"mode": "influencer",
|
|
40
|
+
"prompt": "Person on an outdoor trail or scenic viewpoint, wearing casual hiking or athletic clothes, natural landscape in background, wind slightly moving their hair, genuine excited expression looking at the view",
|
|
41
|
+
"context": "Adventure/travel content. Expansive natural scenery, golden or midday light, sense of freedom and exploration. Person is a small-to-medium part of the frame with landscape dominating.",
|
|
42
|
+
"suggested_format": "landscape",
|
|
43
|
+
"suggested_lighting": "golden-hour",
|
|
44
|
+
"suggested_humanization": "natural",
|
|
45
|
+
"tags": ["outdoor", "adventure", "travel", "nature", "hiking"],
|
|
46
|
+
},
|
|
47
|
+
"workspace-minimal": {
|
|
48
|
+
"name": "Workspace Minimal",
|
|
49
|
+
"mode": "influencer",
|
|
50
|
+
"prompt": "Clean minimalist desk setup with laptop, a cup of coffee, and a small plant, person's hands typing or writing in a notebook, warm indoor light, organized but lived-in workspace",
|
|
51
|
+
"context": "Productivity/work-from-home aesthetic. Top-down or 45-degree angle. Neutral color palette with one accent color. Focus on the hands and items, face not necessary.",
|
|
52
|
+
"suggested_format": "square",
|
|
53
|
+
"suggested_lighting": "indoor",
|
|
54
|
+
"suggested_humanization": "polished",
|
|
55
|
+
"tags": ["workspace", "desk", "productivity", "minimal", "home office"],
|
|
56
|
+
},
|
|
57
|
+
"fitness-natural": {
|
|
58
|
+
"name": "Fitness Natural",
|
|
59
|
+
"mode": "influencer",
|
|
60
|
+
"prompt": "Person doing a workout outdoors or in a bright gym, natural sweat on skin, focused expression, athletic wear, mid-exercise action shot, strong natural lighting",
|
|
61
|
+
"context": "Fitness content that feels real — not overly posed or filtered. Show genuine effort and energy. Natural body with real muscle definition. Outdoor park, trail, or well-lit gym.",
|
|
62
|
+
"suggested_format": "portrait",
|
|
63
|
+
"suggested_lighting": "morning",
|
|
64
|
+
"suggested_humanization": "natural",
|
|
65
|
+
"tags": ["fitness", "workout", "gym", "health", "exercise"],
|
|
66
|
+
},
|
|
67
|
+
"food-flat-lay": {
|
|
68
|
+
"name": "Food Flat Lay",
|
|
69
|
+
"mode": "influencer",
|
|
70
|
+
"prompt": "Top-down view of a beautifully arranged meal on a rustic table, hands reaching to pick up food or holding utensils, multiple dishes and drinks visible, natural daylight from above",
|
|
71
|
+
"context": "Food photography that looks homemade and genuine, not restaurant-styled. Imperfect plating, real portions, visible crumbs. Rustic wooden or textured surface. Include hands for human element.",
|
|
72
|
+
"suggested_format": "square",
|
|
73
|
+
"suggested_lighting": "indoor",
|
|
74
|
+
"suggested_humanization": "natural",
|
|
75
|
+
"tags": ["food", "flat lay", "meal", "cooking", "restaurant"],
|
|
76
|
+
},
|
|
77
|
+
"urban-street": {
|
|
78
|
+
"name": "Urban Street",
|
|
79
|
+
"mode": "influencer",
|
|
80
|
+
"prompt": "Person walking on a vibrant city street, urban architecture in background, casual stylish outfit, candid walking pose, street art or interesting storefronts visible",
|
|
81
|
+
"context": "Street style content. Urban environment with character — graffiti, neon signs, interesting buildings. Person caught mid-stride or pausing naturally. City energy and atmosphere.",
|
|
82
|
+
"suggested_format": "portrait",
|
|
83
|
+
"suggested_lighting": "overcast",
|
|
84
|
+
"suggested_humanization": "natural",
|
|
85
|
+
"tags": ["urban", "street", "city", "fashion", "walk"],
|
|
86
|
+
},
|
|
87
|
+
"golden-hour-portrait": {
|
|
88
|
+
"name": "Golden Hour Portrait",
|
|
89
|
+
"mode": "influencer",
|
|
90
|
+
"prompt": "Close-up portrait of a person during golden hour, warm sunlight hitting their face from the side, natural genuine smile or contemplative expression, wind in their hair, blurred warm background",
|
|
91
|
+
"context": "The classic golden hour portrait that gets maximum engagement. Warm amber backlighting, lens flare welcome, skin glowing naturally. Intimate framing, shoulders-up.",
|
|
92
|
+
"suggested_format": "portrait",
|
|
93
|
+
"suggested_lighting": "golden-hour",
|
|
94
|
+
"suggested_humanization": "natural",
|
|
95
|
+
"tags": ["portrait", "golden hour", "sunset", "face", "close-up"],
|
|
96
|
+
},
|
|
97
|
+
"mirror-selfie": {
|
|
98
|
+
"name": "Mirror Selfie",
|
|
99
|
+
"mode": "influencer",
|
|
100
|
+
"prompt": "Person taking a mirror selfie in a well-lit room, phone visible in hand, casual outfit, relaxed stance, clean mirror with slight reflections, real room visible in background",
|
|
101
|
+
"context": "The authentic mirror selfie. Room should look real — bed, furniture, some items around. Phone held at chest height. Natural pose, not overly practiced. Slight mirror spots or smudges add realism.",
|
|
102
|
+
"suggested_format": "stories",
|
|
103
|
+
"suggested_lighting": "indoor",
|
|
104
|
+
"suggested_humanization": "ultra",
|
|
105
|
+
"tags": ["selfie", "mirror", "ootd", "casual", "room"],
|
|
106
|
+
},
|
|
107
|
+
"product-in-use": {
|
|
108
|
+
"name": "Product In Use",
|
|
109
|
+
"mode": "influencer",
|
|
110
|
+
"prompt": "Close-up of hands using or holding a product naturally, real skin texture visible, product integrated into everyday scene, soft focus background showing daily environment",
|
|
111
|
+
"context": "Product photography that feels organic, not commercial. The product is being genuinely used, not displayed. Person's hands show real interaction. Background tells a story of daily life.",
|
|
112
|
+
"suggested_format": "square",
|
|
113
|
+
"suggested_lighting": "indoor",
|
|
114
|
+
"suggested_humanization": "natural",
|
|
115
|
+
"tags": ["product", "hands", "unboxing", "review", "close-up"],
|
|
116
|
+
},
|
|
117
|
+
"behind-scenes": {
|
|
118
|
+
"name": "Behind The Scenes",
|
|
119
|
+
"mode": "influencer",
|
|
120
|
+
"prompt": "Candid behind-the-scenes moment of someone working on a creative project, messy creative space, tools and materials around, genuine concentration or laughing moment, raw and unpolished feel",
|
|
121
|
+
"context": "The BTS content that humanizes a brand/person. Show the messy reality of creation. Cables, tools, half-finished work, coffee cups. The person is caught naturally, not posing for the camera.",
|
|
122
|
+
"suggested_format": "square",
|
|
123
|
+
"suggested_lighting": "indoor",
|
|
124
|
+
"suggested_humanization": "ultra",
|
|
125
|
+
"tags": ["bts", "behind scenes", "creative", "work", "candid"],
|
|
126
|
+
},
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
# =============================================================================
|
|
130
|
+
# TEMPLATES — MODO EDUCACIONAL
|
|
131
|
+
# =============================================================================
|
|
132
|
+
|
|
133
|
+
EDUCATIONAL_TEMPLATES = {
|
|
134
|
+
"tutorial-step": {
|
|
135
|
+
"name": "Tutorial Step",
|
|
136
|
+
"mode": "educacional",
|
|
137
|
+
"prompt": "Person demonstrating a step in a tutorial, clearly showing their hands performing an action, well-lit workspace, focused camera angle on the demonstration area, clean organized environment",
|
|
138
|
+
"context": "Educational step-by-step content. The action being demonstrated must be clearly visible. Good lighting on the work area. Person partially visible (hands, torso) to maintain human connection. Clean but not sterile environment.",
|
|
139
|
+
"suggested_format": "landscape",
|
|
140
|
+
"suggested_lighting": "indoor",
|
|
141
|
+
"suggested_humanization": "polished",
|
|
142
|
+
"tags": ["tutorial", "step", "demo", "how-to", "hands"],
|
|
143
|
+
},
|
|
144
|
+
"whiteboard-explain": {
|
|
145
|
+
"name": "Whiteboard Explanation",
|
|
146
|
+
"mode": "educacional",
|
|
147
|
+
"prompt": "Person standing next to a whiteboard or large screen with diagrams and notes, pointing at or writing on the board, professional but approachable appearance, bright well-lit room",
|
|
148
|
+
"context": "Teaching/explaining concept. The whiteboard content should be readable. Person looks engaged and enthusiastic about teaching. Natural classroom or meeting room setting. Good contrast between person and board.",
|
|
149
|
+
"suggested_format": "landscape",
|
|
150
|
+
"suggested_lighting": "indoor",
|
|
151
|
+
"suggested_humanization": "polished",
|
|
152
|
+
"tags": ["whiteboard", "explain", "teaching", "diagram", "class"],
|
|
153
|
+
},
|
|
154
|
+
"hands-on-demo": {
|
|
155
|
+
"name": "Hands-On Demo",
|
|
156
|
+
"mode": "educacional",
|
|
157
|
+
"prompt": "Close-up of hands performing a detailed task or craft, clear focus on the technique, tools and materials neatly arranged, good top-down or 45-degree lighting, educational context",
|
|
158
|
+
"context": "Focus entirely on the hands and the action. The technique being shown must be crystal clear. Professional lighting from above. Minimal distractions. This is about teaching a skill through visual demonstration.",
|
|
159
|
+
"suggested_format": "square",
|
|
160
|
+
"suggested_lighting": "indoor",
|
|
161
|
+
"suggested_humanization": "polished",
|
|
162
|
+
"tags": ["hands", "craft", "technique", "close-up", "skill"],
|
|
163
|
+
},
|
|
164
|
+
"before-after": {
|
|
165
|
+
"name": "Before/After Comparison",
|
|
166
|
+
"mode": "educacional",
|
|
167
|
+
"prompt": "Side-by-side or sequential comparison showing a transformation, clear visual difference between states, labeled or visually distinct sections, clean presentation",
|
|
168
|
+
"context": "Educational comparison content. The difference must be immediately obvious. Clean dividing line or clear spatial separation. Consistent lighting and angle between both states. Labels or indicators if helpful.",
|
|
169
|
+
"suggested_format": "landscape",
|
|
170
|
+
"suggested_lighting": "indoor",
|
|
171
|
+
"suggested_humanization": "polished",
|
|
172
|
+
"tags": ["before-after", "comparison", "transformation", "result"],
|
|
173
|
+
},
|
|
174
|
+
"tool-showcase": {
|
|
175
|
+
"name": "Tool Showcase",
|
|
176
|
+
"mode": "educacional",
|
|
177
|
+
"prompt": "Person using a software tool or application on a laptop/desktop screen, the interface clearly visible, person looking at screen with engaged expression, modern workspace",
|
|
178
|
+
"context": "Showing a tool or software in use. Screen content should be readable. Person provides human context but screen is the star. Modern, clean desk setup. Natural indoor lighting without glare on screen.",
|
|
179
|
+
"suggested_format": "landscape",
|
|
180
|
+
"suggested_lighting": "indoor",
|
|
181
|
+
"suggested_humanization": "polished",
|
|
182
|
+
"tags": ["tool", "software", "screen", "app", "tech"],
|
|
183
|
+
},
|
|
184
|
+
"classroom-natural": {
|
|
185
|
+
"name": "Natural Classroom",
|
|
186
|
+
"mode": "educacional",
|
|
187
|
+
"prompt": "Small group learning environment, instructor and students interacting naturally, diverse group, bright airy room, whiteboards or screens in background, genuine engagement and discussion",
|
|
188
|
+
"context": "Real classroom/workshop atmosphere. People are genuinely engaged — asking questions, taking notes, discussing. Not posed group photo. Natural interactions captured candidly. Diverse, inclusive group.",
|
|
189
|
+
"suggested_format": "landscape",
|
|
190
|
+
"suggested_lighting": "indoor",
|
|
191
|
+
"suggested_humanization": "natural",
|
|
192
|
+
"tags": ["classroom", "group", "workshop", "learning", "team"],
|
|
193
|
+
},
|
|
194
|
+
"infographic-human": {
|
|
195
|
+
"name": "Infographic with Human Element",
|
|
196
|
+
"mode": "educacional",
|
|
197
|
+
"prompt": "Person standing next to or gesturing towards a large data visualization, charts, or infographic display, professional attire, pointing at specific data points, conference or office setting",
|
|
198
|
+
"context": "Data presentation with human element. The person makes the data approachable. Professional but not corporate-stiff. Gesturing naturally at important data points. Display is readable and well-designed.",
|
|
199
|
+
"suggested_format": "landscape",
|
|
200
|
+
"suggested_lighting": "indoor",
|
|
201
|
+
"suggested_humanization": "polished",
|
|
202
|
+
"tags": ["infographic", "data", "charts", "presentation", "business"],
|
|
203
|
+
},
|
|
204
|
+
"interview-setup": {
|
|
205
|
+
"name": "Interview/Podcast Setup",
|
|
206
|
+
"mode": "educacional",
|
|
207
|
+
"prompt": "Two people in a casual interview or podcast setting, microphones visible, comfortable seating, natural conversation happening, warm lighting, professional but relaxed atmosphere",
|
|
208
|
+
"context": "Podcast/interview visual. Two people genuinely engaged in conversation. Visible but not distracting equipment (mic, headphones). Warm, inviting space. Eye contact between speakers. Natural gestures.",
|
|
209
|
+
"suggested_format": "landscape",
|
|
210
|
+
"suggested_lighting": "indoor",
|
|
211
|
+
"suggested_humanization": "natural",
|
|
212
|
+
"tags": ["interview", "podcast", "conversation", "two-people", "talk"],
|
|
213
|
+
},
|
|
214
|
+
"screen-recording-human": {
|
|
215
|
+
"name": "Screen Recording with Human",
|
|
216
|
+
"mode": "educacional",
|
|
217
|
+
"prompt": "Person sitting at desk with laptop open, screen showing content, person looking at camera or screen with friendly expression, webcam-style angle, headphones around neck",
|
|
218
|
+
"context": "The human face behind screen content. Classic educator/YouTuber setup. Person is approachable and trustworthy. Screen visible but not the main focus. Good lighting on face. Authentic home office or studio.",
|
|
219
|
+
"suggested_format": "landscape",
|
|
220
|
+
"suggested_lighting": "indoor",
|
|
221
|
+
"suggested_humanization": "natural",
|
|
222
|
+
"tags": ["screen", "webcam", "youtube", "educator", "laptop"],
|
|
223
|
+
},
|
|
224
|
+
"team-collaboration": {
|
|
225
|
+
"name": "Team Collaboration",
|
|
226
|
+
"mode": "educacional",
|
|
227
|
+
"prompt": "Small team of 3-4 people collaborating around a table or screen, post-it notes and materials visible, active discussion and brainstorming, natural diverse group, modern office or co-working space",
|
|
228
|
+
"context": "Real teamwork in action. People are actively contributing — writing, pointing, discussing. Messy creative energy with post-its, papers, laptops. Genuine interaction, not posed corporate photo. Diverse team.",
|
|
229
|
+
"suggested_format": "landscape",
|
|
230
|
+
"suggested_lighting": "indoor",
|
|
231
|
+
"suggested_humanization": "natural",
|
|
232
|
+
"tags": ["team", "collaboration", "brainstorm", "meeting", "group"],
|
|
233
|
+
},
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
# =============================================================================
|
|
238
|
+
# FUNCOES DE ACESSO
|
|
239
|
+
# =============================================================================
|
|
240
|
+
|
|
241
|
+
ALL_TEMPLATES = {**INFLUENCER_TEMPLATES, **EDUCATIONAL_TEMPLATES}
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
def get_template(name: str) -> dict | None:
|
|
245
|
+
"""Retorna um template pelo nome."""
|
|
246
|
+
return ALL_TEMPLATES.get(name)
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
def list_templates(mode: str | None = None) -> dict:
|
|
250
|
+
"""Lista templates disponiveis, opcionalmente filtrados por modo."""
|
|
251
|
+
if mode == "influencer":
|
|
252
|
+
return INFLUENCER_TEMPLATES
|
|
253
|
+
elif mode == "educacional":
|
|
254
|
+
return EDUCATIONAL_TEMPLATES
|
|
255
|
+
return ALL_TEMPLATES
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
def search_templates(query: str) -> list[dict]:
|
|
259
|
+
"""Busca templates por palavras-chave nas tags."""
|
|
260
|
+
query_lower = query.lower()
|
|
261
|
+
results = []
|
|
262
|
+
for name, tmpl in ALL_TEMPLATES.items():
|
|
263
|
+
tags = tmpl.get("tags", [])
|
|
264
|
+
if any(query_lower in tag for tag in tags) or query_lower in tmpl.get("prompt", "").lower():
|
|
265
|
+
results.append({"name": name, **tmpl})
|
|
266
|
+
return results
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
# =============================================================================
|
|
270
|
+
# CLI
|
|
271
|
+
# =============================================================================
|
|
272
|
+
|
|
273
|
+
def main():
|
|
274
|
+
parser = argparse.ArgumentParser(description="Templates de imagens humanizadas")
|
|
275
|
+
parser.add_argument("--list", action="store_true", help="Listar todos os templates")
|
|
276
|
+
parser.add_argument("--mode", choices=["influencer", "educacional"],
|
|
277
|
+
help="Filtrar por modo")
|
|
278
|
+
parser.add_argument("--show", help="Mostrar detalhes de um template")
|
|
279
|
+
parser.add_argument("--search", help="Buscar por palavra-chave")
|
|
280
|
+
parser.add_argument("--json", action="store_true", help="Output em JSON")
|
|
281
|
+
|
|
282
|
+
args = parser.parse_args()
|
|
283
|
+
|
|
284
|
+
if args.list:
|
|
285
|
+
templates = list_templates(args.mode)
|
|
286
|
+
if args.json:
|
|
287
|
+
print(json.dumps(templates, indent=2, ensure_ascii=False))
|
|
288
|
+
else:
|
|
289
|
+
current_mode = None
|
|
290
|
+
for name, tmpl in templates.items():
|
|
291
|
+
if tmpl["mode"] != current_mode:
|
|
292
|
+
current_mode = tmpl["mode"]
|
|
293
|
+
header = "INFLUENCER" if current_mode == "influencer" else "EDUCACIONAL"
|
|
294
|
+
print(f"\n{'='*50}")
|
|
295
|
+
print(f" MODO {header}")
|
|
296
|
+
print(f"{'='*50}")
|
|
297
|
+
|
|
298
|
+
print(f"\n {name}")
|
|
299
|
+
print(f" {tmpl['name']}")
|
|
300
|
+
print(f" Formato: {tmpl['suggested_format']} | "
|
|
301
|
+
f"Luz: {tmpl['suggested_lighting']} | "
|
|
302
|
+
f"Human: {tmpl['suggested_humanization']}")
|
|
303
|
+
print(f" Tags: {', '.join(tmpl.get('tags', []))}")
|
|
304
|
+
return
|
|
305
|
+
|
|
306
|
+
if args.show:
|
|
307
|
+
if args.show == "all":
|
|
308
|
+
templates = list_templates(args.mode)
|
|
309
|
+
print(json.dumps(templates, indent=2, ensure_ascii=False))
|
|
310
|
+
else:
|
|
311
|
+
tmpl = get_template(args.show)
|
|
312
|
+
if tmpl:
|
|
313
|
+
if args.json:
|
|
314
|
+
print(json.dumps({args.show: tmpl}, indent=2, ensure_ascii=False))
|
|
315
|
+
else:
|
|
316
|
+
print(f"\nTemplate: {tmpl['name']}")
|
|
317
|
+
print(f"Modo: {tmpl['mode']}")
|
|
318
|
+
print(f"Formato: {tmpl['suggested_format']}")
|
|
319
|
+
print(f"Luz: {tmpl['suggested_lighting']}")
|
|
320
|
+
print(f"Human: {tmpl['suggested_humanization']}")
|
|
321
|
+
print(f"Tags: {', '.join(tmpl.get('tags', []))}")
|
|
322
|
+
print(f"\nPrompt Base:")
|
|
323
|
+
print(f" {tmpl['prompt']}")
|
|
324
|
+
print(f"\nContexto:")
|
|
325
|
+
print(f" {tmpl['context']}")
|
|
326
|
+
else:
|
|
327
|
+
print(f"Template '{args.show}' nao encontrado")
|
|
328
|
+
sys.exit(1)
|
|
329
|
+
return
|
|
330
|
+
|
|
331
|
+
if args.search:
|
|
332
|
+
results = search_templates(args.search)
|
|
333
|
+
if args.json:
|
|
334
|
+
print(json.dumps(results, indent=2, ensure_ascii=False))
|
|
335
|
+
else:
|
|
336
|
+
if results:
|
|
337
|
+
print(f"\n{len(results)} template(s) encontrado(s) para '{args.search}':\n")
|
|
338
|
+
for r in results:
|
|
339
|
+
print(f" {r['name']} [{r['mode']}] — {r.get('tags', [])}")
|
|
340
|
+
else:
|
|
341
|
+
print(f"Nenhum template encontrado para '{args.search}'")
|
|
342
|
+
return
|
|
343
|
+
|
|
344
|
+
# Default: listar tudo
|
|
345
|
+
parser.print_help()
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
if __name__ == "__main__":
|
|
349
|
+
main()
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Helper script for Android UI Verification Skill
|
|
4
|
+
# Usage: ./verify_ui.sh [screenshot_name]
|
|
5
|
+
|
|
6
|
+
ARTIFACTS_DIR="./artifacts"
|
|
7
|
+
SCREENSHOT_NAME="${1:-latest_screen}"
|
|
8
|
+
|
|
9
|
+
echo "🚀 Starting UI Verification..."
|
|
10
|
+
|
|
11
|
+
# 1. Create artifacts directory if not exists
|
|
12
|
+
mkdir -p "$ARTIFACTS_DIR"
|
|
13
|
+
|
|
14
|
+
# 2. Get Resolution
|
|
15
|
+
echo "📏 Calibrating display..."
|
|
16
|
+
adb shell wm size
|
|
17
|
+
|
|
18
|
+
# 3. Dump UI XML
|
|
19
|
+
echo "📋 Dumping UI hierarchy..."
|
|
20
|
+
adb shell uiautomator dump /sdcard/view.xml
|
|
21
|
+
adb pull /sdcard/view.xml "$ARTIFACTS_DIR/view.xml"
|
|
22
|
+
|
|
23
|
+
# 4. Capture Screenshot
|
|
24
|
+
echo "📸 Capturing screenshot: $SCREENSHOT_NAME.png"
|
|
25
|
+
adb shell screencap -p /sdcard/screen.png
|
|
26
|
+
adb pull /sdcard/screen.png "$ARTIFACTS_DIR/$SCREENSHOT_NAME.png"
|
|
27
|
+
|
|
28
|
+
# 5. Get Recent JS Logs
|
|
29
|
+
echo "📜 Fetching recent JS logs..."
|
|
30
|
+
adb logcat -d | grep "ReactNativeJS" | tail -n 20 > "$ARTIFACTS_DIR/js_logs.txt"
|
|
31
|
+
|
|
32
|
+
echo "✅ Done. Artifacts saved in $ARTIFACTS_DIR"
|