antigravity-ide 4.2.1 → 4.3.3
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/.agent/.shared/{design-philosophy → core/design-philosophy}/README.md +12 -1
- package/.agent/.shared/{ai-master → technical/ai-master}/README.md +12 -1
- package/.agent/.shared/{api-standards → technical/api-standards}/README.md +12 -1
- package/.agent/.shared/{database-master → technical/database-master}/README.md +12 -2
- package/.agent/.shared/{seo-master → technical/seo-master}/README.md +12 -1
- package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/README.md +12 -1
- package/.agent/ARCHITECTURE.md +16 -10
- package/.agent/ARCHITECTURE.vi.md +8 -8
- package/{GEMINI.md → .agent/GEMINI.md} +4 -5
- package/.agent/RESOURCES.md +6 -1
- package/.agent/agents/backend-specialist.md +154 -19
- package/.agent/agents/browser-subagent.md +45 -0
- package/.agent/agents/cloud-architect.md +108 -189
- package/.agent/agents/debugger.md +83 -182
- package/.agent/agents/documentation-writer.md +125 -72
- package/.agent/agents/frontend-specialist.md +40 -7
- package/.agent/agents/game-developer.md +111 -116
- package/.agent/agents/mobile-developer.md +108 -321
- package/.agent/agents/orchestrator.md +106 -366
- package/.agent/agents/performance-optimizer.md +105 -136
- package/.agent/agents/project-planner.md +132 -39
- package/.agent/agents/quality-inspector.md +136 -32
- package/.agent/agents/security-auditor.md +138 -15
- package/.agent/agents/seo-specialist.md +118 -72
- package/.agent/agents/test-engineer.md +142 -11
- package/.agent/brain/task.md +16 -0
- package/.agent/rules/GEMINI.md +63 -31
- package/.agent/rules/code-quality.md +34 -3
- package/.agent/rules/frontend.md +3 -3
- package/.agent/rules/strict-protocol.md +44 -3
- package/.agent/rules/system-update.md +56 -3
- package/.agent/skills/agent-backend-patterns/SKILL.md +16 -3
- package/.agent/skills/ai-engineer/SKILL.md +29 -16
- package/.agent/skills/api-documenter/SKILL.md +4 -4
- package/.agent/skills/app-builder/SKILL.md +1 -1
- package/.agent/skills/app-builder/tech-stack.md +2 -2
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +39 -79
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +53 -75
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +56 -119
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +61 -94
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +56 -82
- package/.agent/skills/brand-guidelines-anthropic/LICENSE.txt +202 -0
- package/.agent/skills/brand-guidelines-anthropic/SKILL.md +26 -0
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/color-application.md +5 -0
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/colors.md +14 -0
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/font-management.md +6 -0
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/shape-and-accent-colors.md +7 -0
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/smart-font-application.md +6 -0
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/text-styling.md +6 -0
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/typography.md +7 -0
- package/.agent/skills/cloud-architect-master/SKILL.md +9 -4
- package/.agent/skills/cro-expert-kit/SKILL.md +9 -4
- package/.agent/skills/database-migration/SKILL.md +9 -3
- package/.agent/skills/deployment-engineer/SKILL.md +9 -3
- package/.agent/skills/frontend-design/ux-psychology.md +10 -585
- package/.agent/skills/full-stack-scaffold/SKILL.md +4 -4
- package/.agent/skills/game-development/2d-games/SKILL.md +4 -2
- package/.agent/skills/game-development/3d-games/SKILL.md +4 -2
- package/.agent/skills/game-development/SKILL.md +18 -149
- package/.agent/skills/game-development/game-art/SKILL.md +4 -2
- package/.agent/skills/game-development/game-audio/SKILL.md +4 -2
- package/.agent/skills/game-development/game-design/SKILL.md +4 -2
- package/.agent/skills/game-development/mobile-games/SKILL.md +4 -2
- package/.agent/skills/game-development/multiplayer/SKILL.md +4 -2
- package/.agent/skills/game-development/pc-games/SKILL.md +4 -2
- package/.agent/skills/game-development/vr-ar/SKILL.md +4 -2
- package/.agent/skills/game-development/web-games/SKILL.md +4 -2
- package/.agent/skills/geo-fundamentals/SKILL.md +9 -136
- package/.agent/skills/git-collaboration-master/SKILL.md +9 -4
- package/.agent/skills/i18n-localization/SKILL.md +10 -118
- package/.agent/skills/incident-responder/SKILL.md +9 -6
- package/.agent/skills/internal-comms-anthropic/LICENSE.txt +202 -0
- package/.agent/skills/internal-comms-anthropic/SKILL.md +33 -0
- package/.agent/skills/internal-comms-anthropic/examples/3p-updates.md +47 -0
- package/.agent/skills/internal-comms-anthropic/examples/company-newsletter.md +65 -0
- package/.agent/skills/internal-comms-anthropic/examples/faq-answers.md +30 -0
- package/.agent/skills/internal-comms-anthropic/examples/general-comms.md +16 -0
- package/.agent/skills/last30days/tests/__init__.py +1 -0
- package/.agent/skills/last30days/tests/test_cache.py +59 -0
- package/.agent/skills/last30days/tests/test_dates.py +114 -0
- package/.agent/skills/last30days/tests/test_dedupe.py +111 -0
- package/.agent/skills/last30days/tests/test_models.py +135 -0
- package/.agent/skills/last30days/tests/test_normalize.py +138 -0
- package/.agent/skills/last30days/tests/test_render.py +116 -0
- package/.agent/skills/last30days/tests/test_score.py +168 -0
- package/.agent/skills/legacy-modernizer/SKILL.md +9 -4
- package/.agent/skills/lint-and-validate/scripts/lint_runner.py +2 -14
- package/.agent/skills/loki-mode/.github/workflows/claude-code-review.yml +57 -0
- package/.agent/skills/loki-mode/.github/workflows/claude.yml +50 -0
- package/.agent/skills/loki-mode/.github/workflows/release.yml +128 -0
- package/.agent/skills/loki-mode/tests/run-all-tests.sh +78 -0
- package/.agent/skills/loki-mode/tests/test-agent-timeout.sh +348 -0
- package/.agent/skills/loki-mode/tests/test-bootstrap.sh +196 -0
- package/.agent/skills/loki-mode/tests/test-circuit-breaker.sh +389 -0
- package/.agent/skills/loki-mode/tests/test-state-recovery.sh +393 -0
- package/.agent/skills/loki-mode/tests/test-task-queue.sh +396 -0
- package/.agent/skills/loki-mode/tests/test-wrapper.sh +314 -0
- package/.agent/skills/mcp-builder/SKILL.md +21 -164
- package/.agent/skills/mobile-design/SKILL.md +21 -369
- package/.agent/skills/mobile-design/mobile-performance.md +1 -1
- package/.agent/skills/modern-web-architect/SKILL.md +12 -6
- package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +1 -1
- package/.agent/skills/penetration-tester-master/SKILL.md +9 -4
- package/.agent/skills/performance-engineer/SKILL.md +4 -5
- package/.agent/skills/production-code-audit/SKILL.md +6 -0
- package/.agent/skills/rust-pro/SKILL.md +0 -177
- package/.agent/skills/security-auditor/SKILL.md +35 -27
- package/.agent/skills/seo-expert-kit/SKILL.md +9 -4
- package/.agent/skills/shopify-development/scripts/tests/test_shopify_init.py +379 -0
- package/.agent/skills/tdd-master-workflow/SKILL.md +9 -3
- package/.agent/workflows/audit.md +30 -16
- package/.agent/workflows/brainstorm.md +33 -96
- package/.agent/workflows/create.md +37 -45
- package/.agent/workflows/debug.md +45 -84
- package/.agent/workflows/deploy.md +33 -158
- package/.agent/workflows/document.md +38 -15
- package/.agent/workflows/enhance.md +33 -48
- package/.agent/workflows/monitor.md +35 -14
- package/.agent/workflows/orchestrate.md +33 -218
- package/.agent/workflows/plan.md +39 -70
- package/.agent/workflows/security.md +35 -14
- package/.agent/workflows/seo.md +39 -16
- package/.agent/workflows/status.md +33 -72
- package/.agent/workflows/test.md +30 -127
- package/.agent/workflows/ui-ux-pro-max.md +24 -283
- package/LICENSE +22 -8
- package/README.md +105 -72
- package/README.vi.md +93 -110
- package/cli/create.js +275 -413
- package/cli/index.js +36 -24
- package/cli/lib/auto-update.js +14 -21
- package/cli/logic/product-skills.js +58 -0
- package/cli/logic/skill-definitions.js +0 -39
- package/cli/prompts.js +151 -145
- package/cli/skills/browser-subagent-core/SKILL.md +22 -0
- package/cli/tools/browser.js +75 -0
- package/cli/ui/dashboard.js +48 -0
- package/docs/AGENTS_GUIDE.vi.md +39 -45
- package/docs/CONTRIBUTING.vi.md +12 -3
- package/docs/{GEMINI_GUIDE.md → GEMINI_USAGE.md} +6 -6
- package/docs/GLOSSARY.vi.md +49 -30
- package/docs/HOW_ANTIGRAVITY_THINKS.vi.md +1 -1
- package/docs/OPERATIONAL_FLOW.vi.md +15 -0
- package/docs/{PUBLISHING.md → PUBLISHING_GUIDE.md} +31 -3
- package/docs/RULES_GUIDE.vi.md +67 -31
- package/docs/SHARED_LIBRARY_GUIDE.vi.md +18 -22
- package/docs/SKILLS_GUIDE.vi.md +119 -32
- package/docs/TROUBLESHOOTING.vi.md +10 -2
- package/docs/WORKFLOW_GUIDE.vi.md +57 -9
- package/package.json +32 -8
- package/setup.js +147 -114
- package/.agent/.shared/compliance/README.md +0 -19
- package/.agent/.shared/design-system/README.md +0 -18
- package/.agent/.shared/domain-blueprints/README.md +0 -18
- package/.agent/.shared/dx-toolkit/README.md +0 -19
- package/.agent/.shared/i18n-master/README.md +0 -18
- package/.agent/.shared/infra-blueprints/README.md +0 -18
- package/.agent/.shared/metrics/README.md +0 -17
- package/.agent/.shared/resilience-patterns/README.md +0 -19
- package/.agent/.shared/security-armor/README.md +0 -25
- package/.agent/.shared/testing-master/README.md +0 -20
- package/.agent/.shared/vitals-templates/README.md +0 -18
- package/.agent/agents/accessibility-expert.md +0 -22
- package/.agent/agents/api-architect.md +0 -22
- package/.agent/agents/backend-specialist.eco.md +0 -19
- package/.agent/agents/backend-specialist.instant.md +0 -19
- package/.agent/agents/codebase-expert.md +0 -23
- package/.agent/agents/compliance-expert.md +0 -22
- package/.agent/agents/data-scientist.md +0 -22
- package/.agent/agents/debugger.eco.md +0 -20
- package/.agent/agents/debugger.instant.md +0 -20
- package/.agent/agents/deep-thinker.ultra.md +0 -23
- package/.agent/agents/devex-optimizer.md +0 -22
- package/.agent/agents/devops-architect.md +0 -22
- package/.agent/agents/frontend-specialist.eco.md +0 -19
- package/.agent/agents/frontend-specialist.instant.md +0 -19
- package/.agent/agents/growth-engineer.md +0 -22
- package/.agent/agents/i18n-specialist.md +0 -21
- package/.agent/agents/legacy-modernizer.md +0 -22
- package/.agent/agents/microservices-specialist.md +0 -22
- package/.agent/agents/motion-designer.md +0 -22
- package/.agent/agents/orchestrator.creative.md +0 -28
- package/.agent/agents/orchestrator.eco.md +0 -29
- package/.agent/agents/orchestrator.instant.md +0 -29
- package/.agent/agents/orchestrator.ultra.md +0 -28
- package/.agent/agents/performance-benchmarker.md +0 -22
- package/.agent/agents/project-planner.eco.md +0 -19
- package/.agent/agents/project-planner.instant.md +0 -19
- package/.agent/agents/security-pentester.md +0 -22
- package/.agent/agents/serverless-expert.md +0 -22
- package/.agent/fastcode_index.json +0 -1038
- package/.agent/mcp_config.json +0 -24
- package/.agent/rules/GEMINI.eco.md +0 -37
- package/.agent/rules/GEMINI.instant.md +0 -37
- package/.agent/rules/api-spec.md +0 -28
- package/.agent/rules/database.md +0 -24
- package/.agent/rules/devops.md +0 -23
- package/.agent/rules/growth-strategy.md +0 -22
- package/.agent/rules/logging-monitoring.md +0 -22
- package/.agent/rules/quality-assurance.md +0 -22
- package/.agent/rules/system-reasoning.md +0 -20
- package/.agent/rules/ui-design.md +0 -23
- package/.agent/rules/ux-patterns.md +0 -23
- package/.agent/scripts/auto_preview.py +0 -148
- package/.agent/scripts/checklist.py +0 -252
- package/.agent/scripts/session_manager.py +0 -120
- package/.agent/scripts/simulation_install.js +0 -59
- package/.agent/scripts/sync_to_global.py +0 -78
- package/.agent/scripts/translate_workflows.py +0 -53
- package/.agent/scripts/verify_all.py +0 -327
- package/.agent/scripts/verify_shared_modules.js +0 -126
- package/.agent/skills/fastcode-search/SKILL.md +0 -46
- package/.agent/skills/fastcode-search/fastcode_config.example.json +0 -17
- package/.agent/skills/frontend-trends-2026/SKILL.md +0 -78
- package/.agent/skills/frontend-trends-2026/formulas/BentoGrid.tsx +0 -42
- package/.agent/skills/frontend-trends-2026/formulas/LiquidCard.tsx +0 -32
- package/.agent/skills/frontend-trends-2026/formulas/NeoButton.tsx +0 -27
- package/.agent/workflows/deep-security-audit.md +0 -9
- package/.agent/workflows/growth-max.md +0 -9
- package/.agent/workflows/performance-max.md +0 -9
- package/.editorconfig +0 -21
- package/.gitattributes +0 -7
- package/CHANGELOG.md +0 -32
- package/ERRORS.md +0 -67
- package/action.yml +0 -32
- package/antigravity-ide-logo.png +0 -0
- package/antigravity-ide-logo.svg +0 -24
- package/assets/skills-bundle.json +0 -1
- package/cli/manifest.js +0 -524
- package/cli/skills/fastcode.js +0 -181
- package/docs/AGENT_FLOW.md +0 -608
- package/docs/CONTRIBUTING.md +0 -46
- package/docs/COPYRIGHT.md +0 -57
- package/docs/DEPLOYMENT.md +0 -77
- package/docs/GLOSSARY.md +0 -109
- package/docs/MASTER_GUIDE.md +0 -103
- package/docs/OPERATIONAL_FLOW.md +0 -147
- package/docs/PLAN-upgrade-core-architecture.md +0 -71
- package/docs/SKILLS.md +0 -610
- package/docs/TROUBLESHOOTING.md +0 -43
- package/jest.config.js +0 -8
- package/scripts/bump.js +0 -93
- package/scripts/bundle-skills.js +0 -59
- package/scripts/internal/automation/auto-release.js +0 -177
- package/scripts/internal/fractalize-skills.js +0 -89
- package/scripts/internal/generate-skill-definitions.js +0 -134
- package/scripts/internal/internal/update-docs.js +0 -115
- package/scripts/internal/refactor-skill-content.js +0 -127
- package/scripts/internal/rename-skills.js +0 -96
- package/scripts/internal/sync-skills.js +0 -112
- package/scripts/internal/update-frontmatter-names.js +0 -99
- package/scripts/internal/verification/audit-dna.js +0 -56
- package/scripts/internal/verification/audit-skills.js +0 -65
- package/web/src/app/docs/guide/examples/brainstorm/page.mdx +0 -91
- package/web/src/app/docs/guide/examples/create/page.mdx +0 -84
- package/web/src/app/docs/guide/examples/debugging/page.mdx +0 -83
- package/web/src/app/docs/guide/examples/deployment/page.mdx +0 -93
- package/web/src/app/docs/guide/examples/new-feature/page.mdx +0 -102
- package/web/src/app/docs/guide/examples/orchestration/page.mdx +0 -99
- package/web/src/app/docs/guide/examples/plan/page.mdx +0 -76
- package/web/src/app/docs/guide/examples/preview/page.mdx +0 -77
- package/web/src/app/docs/guide/examples/status/page.mdx +0 -78
- package/web/src/app/docs/guide/examples/test/page.mdx +0 -80
- package/web/src/app/docs/guide/examples/ui-design/page.mdx +0 -90
- package/web/src/components/mdx/Callout.tsx +0 -60
- package/web/src/components/mdx/FeatureGrid.tsx +0 -38
- package/web/src/components/mdx/ProTips.tsx +0 -29
- package/web/src/components/mdx/StepList.tsx +0 -33
- package/web/src/components/mdx/Terminal.tsx +0 -58
- package/web/src/components/mdx/index.ts +0 -5
- package/web/src/mdx-components.tsx +0 -98
- /package/.agent/.shared/{design-philosophy → core/design-philosophy}/MANIFESTO.md +0 -0
- /package/.agent/.shared/{design-philosophy → core/design-philosophy}/checklists/tactile_audit.md +0 -0
- /package/.agent/.shared/{design-philosophy → core/design-philosophy}/checklists/visual_audit.md +0 -0
- /package/.agent/.shared/{design-philosophy → core/design-philosophy}/presets/linear_glow.json +0 -0
- /package/.agent/.shared/{dx-toolkit → core/dx-toolkit}/checklists/code_review.md +0 -0
- /package/.agent/.shared/{dx-toolkit → core/dx-toolkit}/presets/vscode_settings.json +0 -0
- /package/.agent/.shared/{metrics → core/metrics}/benchmarks.json +0 -0
- /package/.agent/.shared/{vitals-templates → core/vitals-templates}/audit_report.md +0 -0
- /package/.agent/.shared/{vitals-templates → core/vitals-templates}/plan_prd.md +0 -0
- /package/.agent/.shared/{ai-master → technical/ai-master}/best_patterns.md +0 -0
- /package/.agent/.shared/{ai-master → technical/ai-master}/checklists/prompt_audit.md +0 -0
- /package/.agent/.shared/{ai-master → technical/ai-master}/presets/model_configs.json +0 -0
- /package/.agent/.shared/{api-standards → technical/api-standards}/data +0 -0
- /package/.agent/.shared/{api-standards → technical/api-standards}/endpoints_naming.md +0 -0
- /package/.agent/.shared/{api-standards → technical/api-standards}/error_codes.csv +0 -0
- /package/.agent/.shared/{api-standards → technical/api-standards}/pagination_sorting.md +0 -0
- /package/.agent/.shared/{api-standards → technical/api-standards}/response_format.json +0 -0
- /package/.agent/.shared/{database-master → technical/database-master}/schemas/auth_rbac.sql +0 -0
- /package/.agent/.shared/{database-master → technical/database-master}/schemas/cms.sql +0 -0
- /package/.agent/.shared/{database-master → technical/database-master}/schemas/ecommerce.sql +0 -0
- /package/.agent/.shared/{design-system → technical/design-system}/brand_presets.json +0 -0
- /package/.agent/.shared/{design-system → technical/design-system}/micro_interactions.md +0 -0
- /package/.agent/.shared/{i18n-master → technical/i18n-master}/vi_tech_dictionary.csv +0 -0
- /package/.agent/.shared/{i18n-master → technical/i18n-master}/workflows.json +0 -0
- /package/.agent/.shared/{resilience-patterns → technical/resilience-patterns}/checklists/chaos_engineering.md +0 -0
- /package/.agent/.shared/{resilience-patterns → technical/resilience-patterns}/presets/circuit_breaker.json +0 -0
- /package/.agent/.shared/{security-armor → technical/security-armor}/checklists/vuln_scan.md +0 -0
- /package/.agent/.shared/{security-armor → technical/security-armor}/hardening.md +0 -0
- /package/.agent/.shared/{security-armor → technical/security-armor}/presets/helmet_config.json +0 -0
- /package/.agent/.shared/{seo-master → technical/seo-master}/checklists/technical_seo.md +0 -0
- /package/.agent/.shared/{seo-master → technical/seo-master}/presets/json_ld_schema.json +0 -0
- /package/.agent/.shared/{testing-master → technical/testing-master}/checklists/pre_release.md +0 -0
- /package/.agent/.shared/{testing-master → technical/testing-master}/scenarios.md +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/colors.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/icons.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/landing.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/products.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/react-performance.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/flutter.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/html-tailwind.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/jetpack-compose.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/nextjs.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/nuxt-ui.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/nuxtjs.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/react-native.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/react.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/shadcn.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/svelte.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/swiftui.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/stacks/vue.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/ux-guidelines.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/data/web-interface.csv +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/scripts/__pycache__/core.cpython-313.pyc +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/scripts/core.py +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/scripts/design_system.py +0 -0
- /package/.agent/.shared/{ui-ux-pro-max → technical/ui-ux-pro-max}/scripts/search.py +0 -0
- /package/.agent/.shared/{compliance → verticals/compliance}/legal_templates.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/edtech.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/fintech.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/fnb_restaurant.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/freelance_marketplace.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/healthcare.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/hospitality_tourism.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/logistics.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/marketing_automation.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/personal_branding.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/real_estate.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/retail_ecommerce.md +0 -0
- /package/.agent/.shared/{domain-blueprints → verticals/domain-blueprints}/standard-pro-agents.md +0 -0
- /package/.agent/.shared/{infra-blueprints → verticals/infra-blueprints}/deployment_specs.md +0 -0
- /package/.agent/skills/ai-engineer/{resources → sub-skills}/ai_infra_stack.md +0 -0
- /package/.agent/skills/cloud-architect-master/{resources → sub-skills}/cost_optimization_checklist.md +0 -0
- /package/.agent/skills/cro-expert-kit/{resources → sub-skills}/psychological_triggers.md +0 -0
- /package/.agent/skills/database-migration/{resources → sub-skills}/zero_downtime_strategy.md +0 -0
- /package/.agent/skills/deployment-engineer/{resources → sub-skills}/k8s_best_practices.md +0 -0
- /package/.agent/skills/git-collaboration-master/{resources → sub-skills}/pr_template.md +0 -0
- /package/.agent/skills/incident-responder/{resources → sub-skills}/incident_severity_levels.md +0 -0
- /package/.agent/skills/legacy-modernizer/{resources → sub-skills}/strangler_fig_pattern.md +0 -0
- /package/.agent/skills/penetration-tester-master/{resources → sub-skills}/owasp_top_10_2025.md +0 -0
- /package/.agent/skills/production-code-audit/{resources → sub-skills}/solid_principles_cheat_sheet.md +0 -0
- /package/.agent/skills/seo-expert-kit/{resources → sub-skills}/technical_seo_checklist.md +0 -0
- /package/.agent/skills/tdd-master-workflow/{resources → sub-skills}/unit_test_naming_convention.md +0 -0
- /package/.agent/{.shared → skills}/ui-ux-pro-max/data/charts.csv +0 -0
- /package/.agent/{.shared → skills}/ui-ux-pro-max/data/prompts.csv +0 -0
- /package/.agent/{.shared → skills}/ui-ux-pro-max/data/styles.csv +0 -0
- /package/.agent/{.shared → skills}/ui-ux-pro-max/data/typography.csv +0 -0
- /package/.agent/{.shared → skills}/ui-ux-pro-max/data/ui-reasoning.csv +0 -0
package/docs/TROUBLESHOOTING.md
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Troubleshooting Guide
|
|
2
|
-
|
|
3
|
-
Common issues and solutions when using Antigravity IDE.
|
|
4
|
-
|
|
5
|
-
## 🛠️ Installation Issues
|
|
6
|
-
|
|
7
|
-
### `command not found: antigravity`
|
|
8
|
-
- **Cause**: NPM binaries are not in your PATH or package wasn't linked.
|
|
9
|
-
- **Fix**:
|
|
10
|
-
- Run `npm install -g antigravity-ide`
|
|
11
|
-
- Or try running with `npx antigravity-ide` directly.
|
|
12
|
-
|
|
13
|
-
### `EACCES: permission denied`
|
|
14
|
-
- **Cause**: Installing globally without permission.
|
|
15
|
-
- **Fix**:
|
|
16
|
-
- Use `sudo` (Mac/Linux): `sudo npm install -g ...`
|
|
17
|
-
- Or fix npm permissions (Recommended).
|
|
18
|
-
|
|
19
|
-
## 🤖 Runtime & AI Issues
|
|
20
|
-
|
|
21
|
-
### "Agent is not responding"
|
|
22
|
-
- **Check**: Are your API Keys in `.env` correct?
|
|
23
|
-
- **Fix**:
|
|
24
|
-
- Verify `GEMINI_API_KEY` or `OPENAI_API_KEY`.
|
|
25
|
-
- Check internet connection.
|
|
26
|
-
|
|
27
|
-
### "Token limit exceeded"
|
|
28
|
-
- **Cause**: Context window is too full.
|
|
29
|
-
- **Fix**:
|
|
30
|
-
- Use `task_boundary` to reset context contextually.
|
|
31
|
-
- Switch to a model with larger context (e.g., Gemini 1.5 Pro).
|
|
32
|
-
|
|
33
|
-
## 📦 Dependency Issues
|
|
34
|
-
|
|
35
|
-
### `npm ERR! legacy-peer-deps`
|
|
36
|
-
- **Cause**: Conflict between React versions in skills.
|
|
37
|
-
- **Fix**:
|
|
38
|
-
- Run `npm install --legacy-peer-deps`
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## 🆘 Still Stuck?
|
|
43
|
-
Open an issue on [GitHub Issues](https://github.com/Dokhacgiakhoa/google-antigravity/issues).
|
package/jest.config.js
DELETED
package/scripts/bump.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
const chalk = require('chalk');
|
|
4
|
-
|
|
5
|
-
// Get new version from command line argument
|
|
6
|
-
const newVersion = process.argv[2];
|
|
7
|
-
|
|
8
|
-
if (!newVersion) {
|
|
9
|
-
console.error(chalk.red('❌ Error: Please provide a new version number.'));
|
|
10
|
-
console.log('Usage: node scripts/bump.js <new-version>');
|
|
11
|
-
process.exit(1);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// Regex for strict version validation (x.y.z)
|
|
15
|
-
if (!/^\d+\.\d+\.\d+$/.test(newVersion)) {
|
|
16
|
-
console.error(chalk.red('❌ Error: Invalid version format. Use x.y.z (e.g., 4.1.9)'));
|
|
17
|
-
process.exit(1);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const rootDir = path.join(__dirname, '..');
|
|
21
|
-
|
|
22
|
-
// 1. Files to update
|
|
23
|
-
const files = [
|
|
24
|
-
{
|
|
25
|
-
path: 'package.json',
|
|
26
|
-
replace: [
|
|
27
|
-
{ regex: /"version": "\d+\.\d+\.\d+"/, sub: `"version": "${newVersion}"` }
|
|
28
|
-
]
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
path: 'README.md',
|
|
32
|
-
replace: [
|
|
33
|
-
{ regex: /Advanced Edition • v\d+\.\d+\.\d+ Meta-Engine/, sub: `Advanced Edition • v${newVersion} Meta-Engine` },
|
|
34
|
-
{ regex: /The Premium Edge \(v\d+\.\d+\.\d+\)/, sub: `The Premium Edge (v${newVersion})` }
|
|
35
|
-
]
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
path: 'README.vi.md',
|
|
39
|
-
replace: [
|
|
40
|
-
{ regex: /Phiên bản Nâng cao • v\d+\.\d+\.\d+ Meta-Engine/, sub: `Phiên bản Nâng cao • v${newVersion} Meta-Engine` },
|
|
41
|
-
{ regex: /Điểm khác biệt \(Phiên bản v\d+\.\d+\.\d+\)/, sub: `Điểm khác biệt (Phiên bản v${newVersion})` }
|
|
42
|
-
]
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
path: 'docs/MASTER_OPERATIONS.md',
|
|
46
|
-
replace: [
|
|
47
|
-
{ regex: /\*\*Version\*\*: \d+\.\d+\.\d+ \(Stable Marketing/, sub: `**Version**: ${newVersion} (Stable Marketing` }
|
|
48
|
-
]
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
path: 'docs/MASTER_OPERATIONS.vi.md',
|
|
52
|
-
replace: [
|
|
53
|
-
{ regex: /\*\*Version\*\*: \d+\.\d+\.\d+ \(Stable Marketing/, sub: `**Version**: ${newVersion} (Stable Marketing` }
|
|
54
|
-
]
|
|
55
|
-
}
|
|
56
|
-
];
|
|
57
|
-
|
|
58
|
-
console.log(chalk.cyan(`🚀 Bumping version to v${newVersion} across ${files.length} files...\n`));
|
|
59
|
-
|
|
60
|
-
let errorCount = 0;
|
|
61
|
-
|
|
62
|
-
// 2. Execute Updates
|
|
63
|
-
files.forEach(file => {
|
|
64
|
-
const filePath = path.join(rootDir, file.path);
|
|
65
|
-
if (!fs.existsSync(filePath)) {
|
|
66
|
-
console.warn(chalk.yellow(`⚠️ File not found needed for bump: ${file.path}`));
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
let content = fs.readFileSync(filePath, 'utf8');
|
|
71
|
-
let updated = false;
|
|
72
|
-
|
|
73
|
-
file.replace.forEach(rep => {
|
|
74
|
-
if (rep.regex.test(content)) {
|
|
75
|
-
content = content.replace(rep.regex, rep.sub);
|
|
76
|
-
updated = true;
|
|
77
|
-
} else {
|
|
78
|
-
// Only warn if it's package.json (critical), others might have structural changes
|
|
79
|
-
if (file.path === 'package.json') {
|
|
80
|
-
console.warn(chalk.yellow(` ⚠️ Pattern not found in ${file.path}: ${rep.regex}`));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
if (updated) {
|
|
86
|
-
fs.writeFileSync(filePath, content, 'utf8');
|
|
87
|
-
console.log(chalk.green(` ✓ Updated ${file.path}`));
|
|
88
|
-
} else {
|
|
89
|
-
console.log(chalk.gray(` - No changes needed for ${file.path}`));
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
console.log(chalk.bold.green(`\n✨ Version bump complete! Don't forget to commit and push.`));
|
package/scripts/bundle-skills.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
|
|
4
|
-
const SKILLS_DIR = path.join(__dirname, '../.agent/skills');
|
|
5
|
-
const OUTPUT_FILE = path.join(__dirname, '../assets/skills-bundle.json');
|
|
6
|
-
const ASSETS_DIR = path.join(__dirname, '../assets');
|
|
7
|
-
|
|
8
|
-
// Ensure assets directory exists
|
|
9
|
-
if (!fs.existsSync(ASSETS_DIR)) {
|
|
10
|
-
fs.mkdirSync(ASSETS_DIR, { recursive: true });
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function bundleSkills() {
|
|
14
|
-
console.log('📦 Bundling skills...');
|
|
15
|
-
const startTime = Date.now();
|
|
16
|
-
let fileCount = 0;
|
|
17
|
-
const bundle = {};
|
|
18
|
-
|
|
19
|
-
function scanDir(dir, relativePath = '') {
|
|
20
|
-
const items = fs.readdirSync(dir);
|
|
21
|
-
|
|
22
|
-
items.forEach(item => {
|
|
23
|
-
const fullPath = path.join(dir, item);
|
|
24
|
-
const relativeItemPath = path.join(relativePath, item).replace(/\\/g, '/'); // Normalize slashes
|
|
25
|
-
const stat = fs.statSync(fullPath);
|
|
26
|
-
|
|
27
|
-
if (stat.isDirectory()) {
|
|
28
|
-
scanDir(fullPath, relativeItemPath);
|
|
29
|
-
} else {
|
|
30
|
-
// Read file content
|
|
31
|
-
// Only bundle text files usually associated with skills
|
|
32
|
-
if (['.md', '.json', '.yaml', '.yml', '.py', '.js', '.txt'].includes(path.extname(item))) {
|
|
33
|
-
const content = fs.readFileSync(fullPath, 'utf-8');
|
|
34
|
-
bundle[relativeItemPath] = content;
|
|
35
|
-
fileCount++;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (fs.existsSync(SKILLS_DIR)) {
|
|
42
|
-
scanDir(SKILLS_DIR);
|
|
43
|
-
fs.writeFileSync(OUTPUT_FILE, JSON.stringify(bundle, null, 0)); // Minified JSON
|
|
44
|
-
|
|
45
|
-
const sizeMB = (fs.statSync(OUTPUT_FILE).size / 1024 / 1024).toFixed(2);
|
|
46
|
-
const duration = ((Date.now() - startTime) / 1000).toFixed(2);
|
|
47
|
-
|
|
48
|
-
console.log(`✅ Skills bundled successfully!`);
|
|
49
|
-
console.log(` - Files packed: ${fileCount}`);
|
|
50
|
-
console.log(` - Bundle size: ${sizeMB} MB`);
|
|
51
|
-
console.log(` - Time taken: ${duration}s`);
|
|
52
|
-
console.log(` - Output: ${OUTPUT_FILE}`);
|
|
53
|
-
} else {
|
|
54
|
-
console.error(`❌ Skills directory not found: ${SKILLS_DIR}`);
|
|
55
|
-
process.exit(1);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
bundleSkills();
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @script auto-release.js
|
|
3
|
-
* @version 4.2.0
|
|
4
|
-
* @layer automation
|
|
5
|
-
* @protocol unified-protocol-v1
|
|
6
|
-
* @description Tự động cập nhật version và số liệu thống kê trên toàn bộ dự án.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const fs = require('fs');
|
|
10
|
-
const path = require('path');
|
|
11
|
-
const { execSync } = require('child_process');
|
|
12
|
-
|
|
13
|
-
function logError(error, context) {
|
|
14
|
-
const errorLogPath = path.join(process.cwd(), 'ERRORS.md');
|
|
15
|
-
const timestamp = new Date().toISOString().replace('T', ' ').substring(0, 16);
|
|
16
|
-
const entry = `
|
|
17
|
-
## [${timestamp}] - Auto-Release Script Failure
|
|
18
|
-
|
|
19
|
-
- **Type**: Runtime
|
|
20
|
-
- **Severity**: High
|
|
21
|
-
- **File**: \`.agent/scripts/automation/auto-release.js\`
|
|
22
|
-
- **Agent**: Senior Automation Engine
|
|
23
|
-
- **Root Cause**: ${context}
|
|
24
|
-
- **Error Message**:
|
|
25
|
-
\`\`\`
|
|
26
|
-
${error.message || error}
|
|
27
|
-
\`\`\`
|
|
28
|
-
- **Fix Applied**: N/A - Diagnostic logged
|
|
29
|
-
- **Prevention**: Check project state and Git permissions
|
|
30
|
-
- **Status**: Investigating
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
`;
|
|
34
|
-
fs.appendFileSync(errorLogPath, entry);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// 1. Cấu hình các file cần cập nhật Version
|
|
38
|
-
const VERSION_FILES = [
|
|
39
|
-
{
|
|
40
|
-
path: 'package.json',
|
|
41
|
-
regex: /"version": "\d+\.\d+\.\d+"/g,
|
|
42
|
-
template: (ver) => `"version": "${ver}"`
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
path: 'VERSION',
|
|
46
|
-
regex: /\d+\.\d+\.\d+/g,
|
|
47
|
-
template: (ver) => `${ver}`
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
path: 'MASTER_GUIDE.md',
|
|
51
|
-
regex: /\*\*Version\*\*: \d+\.\d+\.\d+/g,
|
|
52
|
-
template: (ver) => `**Version**: ${ver}`
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
path: 'README.md',
|
|
56
|
-
regex: /antigravity-ide@\d+\.\d+\.\d+/g, // Update npx command example if generic
|
|
57
|
-
template: (ver) => `antigravity-ide@${ver}`
|
|
58
|
-
}
|
|
59
|
-
];
|
|
60
|
-
|
|
61
|
-
// 2. Cấu hình các file cần cập nhật Số liệu (Stats)
|
|
62
|
-
const STATS_FILES = [
|
|
63
|
-
'README.md',
|
|
64
|
-
'README.vi.md',
|
|
65
|
-
'GEMINI_GUIDE.md',
|
|
66
|
-
'SKILLS.md'
|
|
67
|
-
];
|
|
68
|
-
|
|
69
|
-
// Helper: Đếm số lượng trong thư mục
|
|
70
|
-
function countItems(dirPath, filterFn) {
|
|
71
|
-
const fullPath = path.join(process.cwd(), '.agent', dirPath);
|
|
72
|
-
if (!fs.existsSync(fullPath)) return 0;
|
|
73
|
-
return fs.readdirSync(fullPath, { withFileTypes: true })
|
|
74
|
-
.filter(filterFn).length;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// Logic chính
|
|
78
|
-
function main() {
|
|
79
|
-
const newVersion = process.argv[2];
|
|
80
|
-
|
|
81
|
-
if (!newVersion) {
|
|
82
|
-
console.error("❌ Error: Vui lòng cung cấp version mới. Ví dụ: node .agent/scripts/auto-release.js 4.0.4");
|
|
83
|
-
process.exit(1);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
console.log(`🚀 Starting Release Process for v${newVersion}...\n`);
|
|
87
|
-
|
|
88
|
-
// --- A. Cập nhật Version ---
|
|
89
|
-
console.log("1️⃣ Updating Version Numbers...");
|
|
90
|
-
let updatedFiles = 0;
|
|
91
|
-
|
|
92
|
-
VERSION_FILES.forEach(config => {
|
|
93
|
-
const filePath = path.join(process.cwd(), config.path);
|
|
94
|
-
if (fs.existsSync(filePath)) {
|
|
95
|
-
let content = fs.readFileSync(filePath, 'utf8');
|
|
96
|
-
if (config.regex.test(content)) {
|
|
97
|
-
const newContent = content.replace(config.regex, config.template(newVersion));
|
|
98
|
-
fs.writeFileSync(filePath, newContent);
|
|
99
|
-
console.log(` ✅ Updated ${config.path}`);
|
|
100
|
-
updatedFiles++;
|
|
101
|
-
} else {
|
|
102
|
-
console.log(` ⚠️ Current version pattern not found in ${config.path} (Skipped)`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
// --- B. Cập nhật Thống kê Real-time ---
|
|
108
|
-
console.log("\n2️⃣ Updating Live Statistics...");
|
|
109
|
-
|
|
110
|
-
const stats = {
|
|
111
|
-
skills: countItems('skills', item => item.isDirectory()), // Folder là skill
|
|
112
|
-
workflows: countItems('workflows', item => item.isFile() && item.name.endsWith('.md')),
|
|
113
|
-
rules: countItems('rules', item => item.isFile() && item.name.endsWith('.md')),
|
|
114
|
-
agents: countItems('agents', item => item.isFile() && item.name.endsWith('.md'))
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
console.log(` 📊 Detected: ${stats.skills} Skills | ${stats.agents} Agents | ${stats.workflows} Workflows | ${stats.rules} Rules`);
|
|
118
|
-
|
|
119
|
-
STATS_FILES.forEach(fileName => {
|
|
120
|
-
const filePath = path.join(process.cwd(), fileName);
|
|
121
|
-
if (fs.existsSync(filePath)) {
|
|
122
|
-
let content = fs.readFileSync(filePath, 'utf8');
|
|
123
|
-
|
|
124
|
-
// Regex thay thế số lượng (VD: **26** Skills -> **27** Skills)
|
|
125
|
-
// Pattern: | **XX** [Text] |
|
|
126
|
-
|
|
127
|
-
// Update Skills
|
|
128
|
-
content = content.replace(/\|\s*\*\*\d+\*\*\s*(Master Skills|Bộ Kỹ năng|Skills)/g,
|
|
129
|
-
`| **${stats.skills}** $1`);
|
|
130
|
-
|
|
131
|
-
// Update Workflows
|
|
132
|
-
content = content.replace(/\|\s*\*\*\d+\*\*\s*(Workflows|Quy trình|Quy trình \(Workflows\))/g,
|
|
133
|
-
`| **${stats.workflows}** $1`);
|
|
134
|
-
|
|
135
|
-
// Update Agents
|
|
136
|
-
content = content.replace(/\|\s*\*\*\d+\*\*\s*(Specialist Agents|Agent Chuyên gia)/g,
|
|
137
|
-
`| **${stats.agents}** $1`);
|
|
138
|
-
|
|
139
|
-
// Update GEMINI_GUIDE total skills text
|
|
140
|
-
content = content.replace(/Total: \d+ Master Skills/g, `Total: ${stats.skills} Master Skills`);
|
|
141
|
-
content = content.replace(/\*\*All \d+ Master Skills/g, `**All ${stats.skills} Master Skills`);
|
|
142
|
-
|
|
143
|
-
fs.writeFileSync(filePath, content);
|
|
144
|
-
console.log(` ✅ Synced stats to ${fileName}`);
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
// --- C. Rà soát tính năng mới (Gợi ý Changelog) ---
|
|
149
|
-
console.log("\n3️⃣ Scanning for Recent Changes (Git)...");
|
|
150
|
-
try {
|
|
151
|
-
// Lấy danh sách file mới thêm trong 24h qua (hoặc chưa commit)
|
|
152
|
-
const gitStatus = execSync('git status --short').toString();
|
|
153
|
-
const newFiles = gitStatus.split('\n')
|
|
154
|
-
.filter(line => line.startsWith('A') || line.startsWith('??'))
|
|
155
|
-
.map(line => line.substring(3)); // Bỏ prefix trạng thái
|
|
156
|
-
|
|
157
|
-
const newFeatures = newFiles.filter(f => f.includes('.agent/skills') || f.includes('.agent/workflows') || f.includes('.agent/rules'));
|
|
158
|
-
|
|
159
|
-
if (newFeatures.length > 0) {
|
|
160
|
-
console.log(" ✨ New features detected (Add these to CHANGELOG.md):");
|
|
161
|
-
newFeatures.forEach(f => console.log(` - ${f}`));
|
|
162
|
-
} else {
|
|
163
|
-
console.log(" ℹ️ No new feature files detected via Git status.");
|
|
164
|
-
}
|
|
165
|
-
} catch (e) {
|
|
166
|
-
console.log(" ⚠️ Could not run git check (optional step).");
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
console.log("\n✅ Auto-Release Complete! Please verify changes and commit.");
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
try {
|
|
173
|
-
main();
|
|
174
|
-
} catch (err) {
|
|
175
|
-
console.error("❌ Critical Script Error:", err.message);
|
|
176
|
-
logError(err, "General script failure during main execution loop");
|
|
177
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
|
|
4
|
-
const SKILLS_DIR = 'd:\\Github\\antigravity-ide\\.agent\\skills';
|
|
5
|
-
|
|
6
|
-
function fractalizeSkill(skillName) {
|
|
7
|
-
const skillDir = path.join(SKILLS_DIR, skillName);
|
|
8
|
-
const skillFile = path.join(skillDir, 'SKILL.md');
|
|
9
|
-
|
|
10
|
-
if (!fs.existsSync(skillFile)) {
|
|
11
|
-
console.warn(`⚠️ SKILL.md not found for ${skillName}, skipping.`);
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const content = fs.readFileSync(skillFile, 'utf-8');
|
|
16
|
-
|
|
17
|
-
// Regex to extract Sections that look like Sub-skills
|
|
18
|
-
// This is heuristically complex.
|
|
19
|
-
// For now, simpler strategy:
|
|
20
|
-
// 1. Create `sub-skills` folder.
|
|
21
|
-
// 2. Identify H3 headers (### Title) as potential sub-skills.
|
|
22
|
-
// 3. Split content and create files.
|
|
23
|
-
// 4. Rewrite SKILL.md to link to them.
|
|
24
|
-
|
|
25
|
-
// BUT: Doing this blindly for 500 skills is DANGEROUS and LOW QUALITY.
|
|
26
|
-
// Better Strategy for now (Safe Fractalization):
|
|
27
|
-
// 1. Just create the `sub-skills` directory structure if missing.
|
|
28
|
-
// 2. If `resources` folder exists and has .md files, MOVE them to `sub-skills`.
|
|
29
|
-
// 3. Update SKILL.md frontmatter to include `version: x.x.x-fractal`.
|
|
30
|
-
|
|
31
|
-
const subSkillsDir = path.join(skillDir, 'sub-skills');
|
|
32
|
-
if (!fs.existsSync(subSkillsDir)) {
|
|
33
|
-
fs.mkdirSync(subSkillsDir);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Move Resources to Sub-skills
|
|
37
|
-
const resourcesDir = path.join(skillDir, 'resources');
|
|
38
|
-
if (fs.existsSync(resourcesDir)) {
|
|
39
|
-
const files = fs.readdirSync(resourcesDir);
|
|
40
|
-
files.forEach(file => {
|
|
41
|
-
if (file.endsWith('.md')) {
|
|
42
|
-
const src = path.join(resourcesDir, file);
|
|
43
|
-
const dest = path.join(subSkillsDir, file);
|
|
44
|
-
fs.renameSync(src, dest);
|
|
45
|
-
console.log(`📦 Moved ${file} from resources to sub-skills for ${skillName}`);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
// Clean up if empty
|
|
49
|
-
if (fs.readdirSync(resourcesDir).length === 0) {
|
|
50
|
-
fs.rmdirSync(resourcesDir);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Update Frontmatter
|
|
55
|
-
let newContent = content;
|
|
56
|
-
if (!content.includes('version:')) {
|
|
57
|
-
newContent = content.replace('---', `---\nversion: 4.1.0-fractal`);
|
|
58
|
-
} else if (!content.includes('-fractal')) {
|
|
59
|
-
newContent = content.replace(/version: (.*)/, `version: 4.1.0-fractal`);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (fs.existsSync(subSkillsDir) && fs.readdirSync(subSkillsDir).length > 0) {
|
|
63
|
-
// Append "Knowledge Modules" section if there are sub-skills and it's missing
|
|
64
|
-
if (!newContent.includes('Knowledge Modules')) {
|
|
65
|
-
newContent += '\n\n## 🧠 Knowledge Modules (Fractal Skills)\n\n';
|
|
66
|
-
const subFiles = fs.readdirSync(subSkillsDir);
|
|
67
|
-
subFiles.forEach((file, index) => {
|
|
68
|
-
newContent += `### ${index + 1}. [${file.replace('.md', '')}](./sub-skills/${file})\n`;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
fs.writeFileSync(skillFile, newContent);
|
|
74
|
-
console.log(`✅ Fractalized: ${skillName}`);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function main() {
|
|
78
|
-
const skills = fs.readdirSync(SKILLS_DIR, { withFileTypes: true })
|
|
79
|
-
.filter(dirent => dirent.isDirectory())
|
|
80
|
-
.map(dirent => dirent.name);
|
|
81
|
-
|
|
82
|
-
skills.forEach(skill => {
|
|
83
|
-
// Skip if already correct
|
|
84
|
-
if (skill === 'security-auditor') return;
|
|
85
|
-
fractalizeSkill(skill);
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
main();
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
|
|
4
|
-
const skillsDir = path.join(__dirname, '..', '..', '.agent', 'skills');
|
|
5
|
-
const outputFile = path.join(__dirname, '..', '..', 'cli', 'logic', 'skill-definitions.js');
|
|
6
|
-
|
|
7
|
-
// 1. Get all skill names
|
|
8
|
-
const allSkills = fs.readdirSync(skillsDir).filter(f => fs.statSync(path.join(skillsDir, f)).isDirectory());
|
|
9
|
-
|
|
10
|
-
// 2. Define Category Keywords (Priority Order matters for overlapping terms)
|
|
11
|
-
const categoryKeywords = {
|
|
12
|
-
security: ['security', 'pentest', 'hack', 'malware', 'vulnerability', 'auth', 'compliance', 'red-team', 'forensics', 'exploit', 'owasp', 'scanning', 'threat', 'ssh', 'ssl', 'encryption', 'pci', 'gdpr', 'stride'],
|
|
13
|
-
ai: ['ai-', 'llm', 'agent', 'langgraph', 'langchain', 'prompt', 'rag', 'vector', 'embedding', 'model', 'autogen', 'crewai', 'machine-learning', 'ml-', 'deep-learning', 'vision', 'voice', 'chatbot', 'gpt', 'claude', 'gemini', 'context'],
|
|
14
|
-
mobile: ['mobile', 'android', 'ios', 'flutter', 'react-native', 'expo', 'swift', 'kotlin', 'app-store'],
|
|
15
|
-
devops: ['devops', 'docker', 'kubernetes', 'k8s', 'terraform', 'aws', 'azure', 'gcp', 'cloud', 'ci/cd', 'pipeline', 'deploy', 'server', 'linux', 'bash', 'shell', 'monitor', 'observability', 'infra', 'terminal', 'powershell', 'bazel', 'turborepo', 'nx', 'git', 'ansible', 'helm', 'prometheus', 'grafana'],
|
|
16
|
-
testing: ['test', 'tdd', 'playwright', 'cypress', 'selenium', 'puppeteer', 'jest', 'vitest', 'e2e', 'qa', 'quality', 'debugging', 'debugger'],
|
|
17
|
-
uiux: ['ui', 'ux', 'design', 'css', 'tailwind', 'animation', 'style', 'theme', 'accessibility', 'wcag', 'canvas', 'svg', 'd3', 'icon', 'color', 'font', 'layout', 'responsive', 'frontend'],
|
|
18
|
-
growth: ['seo', 'analytics', 'marketing', 'growth', 'copy', 'content', 'social', 'email', 'conversion', 'cro', 'pricing', 'sales', 'business', 'startup', 'product', 'advertising', 'ads'],
|
|
19
|
-
webdev: ['web', 'react', 'next', 'vue', 'angular', 'svelte', 'html', 'javascript', 'typescript', 'node', 'express', 'nestjs', 'api', 'graphql', 'rest', 'backend', 'full-stack', 'frontend', 'wasm', 'pwa', 'remix', 'shopify', 'wordpress', 'django', 'flask', 'fastapi', 'php', 'ruby', 'rails', 'go-', 'rust', 'java', 'c-', 'cpp'],
|
|
20
|
-
research: ['research', 'analysis', 'strategy', 'brainstorm', 'plan', 'document', 'architecture', 'diagram', 'uml', 'c4', 'review', 'audit'],
|
|
21
|
-
// Maker matches everything else useful for building
|
|
22
|
-
maker: ['tool', 'automation', 'productivity', 'notion', 'obsidian', 'workflow', 'script', 'bot', 'scraper', 'data', 'excel', 'csv', 'pdf', 'video', 'image', 'audio', 'file', 'mcp']
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const categorizedSkills = {
|
|
26
|
-
webdev: [],
|
|
27
|
-
mobile: [],
|
|
28
|
-
ai: [],
|
|
29
|
-
research: [],
|
|
30
|
-
uiux: [],
|
|
31
|
-
devops: [],
|
|
32
|
-
security: [],
|
|
33
|
-
growth: [],
|
|
34
|
-
maker: [],
|
|
35
|
-
testing: []
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const assignedSkills = new Set();
|
|
39
|
-
|
|
40
|
-
// 3. Auto-Categorize
|
|
41
|
-
allSkills.forEach(skill => {
|
|
42
|
-
let assigned = false;
|
|
43
|
-
const lowerName = skill.toLowerCase();
|
|
44
|
-
|
|
45
|
-
// Check specific categories first
|
|
46
|
-
for (const [cat, keywords] of Object.entries(categoryKeywords)) {
|
|
47
|
-
if (keywords.some(k => lowerName.includes(k))) {
|
|
48
|
-
categorizedSkills[cat].push(skill);
|
|
49
|
-
assignedSkills.add(skill);
|
|
50
|
-
assigned = true;
|
|
51
|
-
break; // Assign to first matching category (priority based on order in object)
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Fallback logic
|
|
56
|
-
if (!assigned) {
|
|
57
|
-
// If not assigned, put in 'maker' as general tools
|
|
58
|
-
categorizedSkills.maker.push(skill);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
// 4. Generate File Content
|
|
63
|
-
const fileContent = `/**
|
|
64
|
-
* Centralized definition of all Agent Skills and their categories.
|
|
65
|
-
* Auto-generated by .agent/scripts/generate-skill-definitions.js
|
|
66
|
-
* Total Skills: ${allSkills.length}
|
|
67
|
-
*/
|
|
68
|
-
|
|
69
|
-
const skillCategories = {
|
|
70
|
-
webdev: {
|
|
71
|
-
name: 'Web High-Performance (Vercel & Antfu Grade)',
|
|
72
|
-
skills: ${JSON.stringify(categorizedSkills.webdev, null, 2).replace(/"/g, "'")}
|
|
73
|
-
},
|
|
74
|
-
mobile: {
|
|
75
|
-
name: 'Mobile Development (iOS, Android, Cross-Platform)',
|
|
76
|
-
skills: ${JSON.stringify(categorizedSkills.mobile, null, 2).replace(/"/g, "'")}
|
|
77
|
-
},
|
|
78
|
-
ai: {
|
|
79
|
-
name: 'Advanced AI & Research (AutoGen & LangGraph)',
|
|
80
|
-
skills: ${JSON.stringify(categorizedSkills.ai, null, 2).replace(/"/g, "'")}
|
|
81
|
-
},
|
|
82
|
-
research: {
|
|
83
|
-
name: 'Strategic Research & Wisdom (Fabric Patterns)',
|
|
84
|
-
skills: ${JSON.stringify(categorizedSkills.research, null, 2).replace(/"/g, "'")}
|
|
85
|
-
},
|
|
86
|
-
uiux: {
|
|
87
|
-
name: 'UI/UX Pro Max (NextLevel Aesthetics)',
|
|
88
|
-
skills: ${JSON.stringify(categorizedSkills.uiux, null, 2).replace(/"/g, "'")}
|
|
89
|
-
},
|
|
90
|
-
devops: {
|
|
91
|
-
name: 'DevOps & Cloud (Enterprise Grade)',
|
|
92
|
-
skills: ${JSON.stringify(categorizedSkills.devops, null, 2).replace(/"/g, "'")}
|
|
93
|
-
},
|
|
94
|
-
security: {
|
|
95
|
-
name: 'Security & Compliance (Fintech Standards)',
|
|
96
|
-
skills: ${JSON.stringify(categorizedSkills.security, null, 2).replace(/"/g, "'")}
|
|
97
|
-
},
|
|
98
|
-
growth: {
|
|
99
|
-
name: 'Growth & Business Intelligence',
|
|
100
|
-
skills: ${JSON.stringify(categorizedSkills.growth, null, 2).replace(/"/g, "'")}
|
|
101
|
-
},
|
|
102
|
-
maker: {
|
|
103
|
-
name: 'Maker & Indie Hacking (Sickn33) ',
|
|
104
|
-
skills: ${JSON.stringify(categorizedSkills.maker, null, 2).replace(/"/g, "'")}
|
|
105
|
-
},
|
|
106
|
-
testing: {
|
|
107
|
-
name: 'Professional QA & Testing',
|
|
108
|
-
skills: ${JSON.stringify(categorizedSkills.testing, null, 2).replace(/"/g, "'")}
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
function getSkillsForCategories(categories) {
|
|
113
|
-
const skills = [];
|
|
114
|
-
categories.forEach(category => {
|
|
115
|
-
if (skillCategories[category]) {
|
|
116
|
-
skills.push(...skillCategories[category].skills);
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
return skills;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
module.exports = {
|
|
123
|
-
skillCategories,
|
|
124
|
-
getSkillsForCategories
|
|
125
|
-
};
|
|
126
|
-
`;
|
|
127
|
-
|
|
128
|
-
// 5. Write File
|
|
129
|
-
fs.writeFileSync(outputFile, fileContent);
|
|
130
|
-
console.log(`Successfully generated skill definitions for ${allSkills.length} skills.`);
|
|
131
|
-
console.log('Breakdown:');
|
|
132
|
-
Object.keys(categorizedSkills).forEach(cat => {
|
|
133
|
-
console.log(` - ${cat}: ${categorizedSkills[cat].length}`);
|
|
134
|
-
});
|