antigravity-ide 4.2.0 → 4.2.1
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/{technical/ai-master → ai-master}/README.md +1 -12
- package/.agent/.shared/{technical/api-standards → api-standards}/README.md +1 -12
- package/.agent/.shared/compliance/README.md +19 -0
- package/.agent/.shared/{technical/database-master → database-master}/README.md +2 -12
- package/.agent/.shared/{core/design-philosophy → design-philosophy}/README.md +1 -12
- package/.agent/.shared/design-system/README.md +18 -0
- package/.agent/.shared/domain-blueprints/README.md +18 -0
- package/.agent/.shared/dx-toolkit/README.md +19 -0
- package/.agent/.shared/i18n-master/README.md +18 -0
- package/.agent/.shared/infra-blueprints/README.md +18 -0
- package/.agent/.shared/metrics/README.md +17 -0
- package/.agent/.shared/resilience-patterns/README.md +19 -0
- package/.agent/.shared/security-armor/README.md +25 -0
- package/.agent/.shared/{technical/seo-master → seo-master}/README.md +1 -12
- package/.agent/.shared/testing-master/README.md +20 -0
- package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/README.md +1 -12
- package/.agent/.shared/vitals-templates/README.md +18 -0
- package/.agent/ARCHITECTURE.md +7 -10
- package/.agent/ARCHITECTURE.vi.md +8 -8
- package/.agent/RESOURCES.md +1 -0
- package/.agent/agents/accessibility-expert.md +22 -0
- package/.agent/agents/api-architect.md +22 -0
- package/.agent/agents/backend-specialist.eco.md +19 -0
- package/.agent/agents/backend-specialist.instant.md +19 -0
- package/.agent/agents/backend-specialist.md +19 -154
- package/.agent/agents/cloud-architect.md +189 -108
- package/.agent/agents/codebase-expert.md +23 -0
- package/.agent/agents/compliance-expert.md +22 -0
- package/.agent/agents/data-scientist.md +22 -0
- package/.agent/agents/debugger.eco.md +20 -0
- package/.agent/agents/debugger.instant.md +20 -0
- package/.agent/agents/debugger.md +182 -83
- package/.agent/agents/deep-thinker.ultra.md +23 -0
- package/.agent/agents/devex-optimizer.md +22 -0
- package/.agent/agents/devops-architect.md +22 -0
- package/.agent/agents/documentation-writer.md +72 -125
- package/.agent/agents/frontend-specialist.eco.md +19 -0
- package/.agent/agents/frontend-specialist.instant.md +19 -0
- package/.agent/agents/frontend-specialist.md +7 -40
- package/.agent/agents/game-developer.md +116 -111
- package/.agent/agents/growth-engineer.md +22 -0
- package/.agent/agents/i18n-specialist.md +21 -0
- package/.agent/agents/legacy-modernizer.md +22 -0
- package/.agent/agents/microservices-specialist.md +22 -0
- package/.agent/agents/mobile-developer.md +321 -108
- package/.agent/agents/motion-designer.md +22 -0
- package/.agent/agents/orchestrator.creative.md +28 -0
- package/.agent/agents/orchestrator.eco.md +29 -0
- package/.agent/agents/orchestrator.instant.md +29 -0
- package/.agent/agents/orchestrator.md +366 -106
- package/.agent/agents/orchestrator.ultra.md +28 -0
- package/.agent/agents/performance-benchmarker.md +22 -0
- package/.agent/agents/performance-optimizer.md +136 -105
- package/.agent/agents/project-planner.eco.md +19 -0
- package/.agent/agents/project-planner.instant.md +19 -0
- package/.agent/agents/project-planner.md +39 -132
- package/.agent/agents/quality-inspector.md +32 -136
- package/.agent/agents/security-auditor.md +15 -138
- package/.agent/agents/security-pentester.md +22 -0
- package/.agent/agents/seo-specialist.md +72 -118
- package/.agent/agents/serverless-expert.md +22 -0
- package/.agent/agents/test-engineer.md +11 -142
- package/.agent/fastcode_index.json +1038 -0
- package/.agent/mcp_config.json +24 -0
- package/.agent/rules/GEMINI.eco.md +37 -0
- package/.agent/rules/GEMINI.instant.md +37 -0
- package/.agent/rules/GEMINI.md +31 -62
- package/.agent/rules/api-spec.md +28 -0
- package/.agent/rules/code-quality.md +3 -34
- package/.agent/rules/database.md +24 -0
- package/.agent/rules/devops.md +23 -0
- package/.agent/rules/frontend.md +3 -3
- package/.agent/rules/growth-strategy.md +22 -0
- package/.agent/rules/logging-monitoring.md +22 -0
- package/.agent/rules/quality-assurance.md +22 -0
- package/.agent/rules/strict-protocol.md +3 -44
- package/.agent/rules/system-reasoning.md +20 -0
- package/.agent/rules/system-update.md +3 -56
- package/.agent/rules/ui-design.md +23 -0
- package/.agent/rules/ux-patterns.md +23 -0
- package/.agent/scripts/auto_preview.py +148 -0
- package/.agent/scripts/checklist.py +252 -0
- package/.agent/scripts/session_manager.py +120 -0
- package/.agent/scripts/simulation_install.js +59 -0
- package/.agent/scripts/sync_to_global.py +78 -0
- package/.agent/scripts/translate_workflows.py +53 -0
- package/.agent/scripts/verify_all.py +327 -0
- package/.agent/scripts/verify_shared_modules.js +126 -0
- package/.agent/skills/agent-backend-patterns/SKILL.md +6 -13
- package/.agent/skills/ai-engineer/SKILL.md +16 -29
- 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 +79 -39
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +75 -53
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +119 -56
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +94 -61
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +82 -56
- package/.agent/skills/cloud-architect-master/SKILL.md +4 -9
- package/.agent/skills/cro-expert-kit/SKILL.md +4 -9
- package/.agent/skills/database-migration/SKILL.md +3 -9
- package/.agent/skills/deployment-engineer/SKILL.md +3 -9
- package/.agent/skills/fastcode-search/SKILL.md +46 -0
- package/.agent/skills/fastcode-search/fastcode_config.example.json +17 -0
- package/.agent/skills/frontend-design/ux-psychology.md +585 -10
- package/.agent/skills/frontend-trends-2026/SKILL.md +78 -0
- package/.agent/skills/frontend-trends-2026/formulas/BentoGrid.tsx +42 -0
- package/.agent/skills/frontend-trends-2026/formulas/LiquidCard.tsx +32 -0
- package/.agent/skills/frontend-trends-2026/formulas/NeoButton.tsx +27 -0
- package/.agent/skills/full-stack-scaffold/SKILL.md +4 -4
- package/.agent/skills/game-development/2d-games/SKILL.md +2 -4
- package/.agent/skills/game-development/3d-games/SKILL.md +2 -4
- package/.agent/skills/game-development/SKILL.md +149 -18
- package/.agent/skills/game-development/game-art/SKILL.md +2 -4
- package/.agent/skills/game-development/game-audio/SKILL.md +2 -4
- package/.agent/skills/game-development/game-design/SKILL.md +2 -4
- package/.agent/skills/game-development/mobile-games/SKILL.md +2 -4
- package/.agent/skills/game-development/multiplayer/SKILL.md +2 -4
- package/.agent/skills/game-development/pc-games/SKILL.md +2 -4
- package/.agent/skills/game-development/vr-ar/SKILL.md +2 -4
- package/.agent/skills/game-development/web-games/SKILL.md +2 -4
- package/.agent/skills/geo-fundamentals/SKILL.md +136 -9
- package/.agent/skills/git-collaboration-master/SKILL.md +4 -9
- package/.agent/skills/i18n-localization/SKILL.md +118 -10
- package/.agent/skills/incident-responder/SKILL.md +6 -9
- package/.agent/skills/legacy-modernizer/SKILL.md +4 -9
- package/.agent/skills/lint-and-validate/scripts/lint_runner.py +14 -2
- package/.agent/skills/mcp-builder/SKILL.md +164 -21
- package/.agent/skills/mobile-design/SKILL.md +369 -21
- package/.agent/skills/mobile-design/mobile-performance.md +1 -1
- package/.agent/skills/modern-web-architect/SKILL.md +6 -12
- package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +1 -1
- package/.agent/skills/penetration-tester-master/SKILL.md +4 -9
- package/.agent/skills/performance-engineer/SKILL.md +5 -4
- package/.agent/skills/production-code-audit/SKILL.md +0 -6
- package/.agent/skills/rust-pro/SKILL.md +177 -0
- package/.agent/skills/security-auditor/SKILL.md +27 -35
- package/.agent/skills/seo-expert-kit/SKILL.md +4 -9
- package/.agent/skills/tdd-master-workflow/SKILL.md +3 -9
- package/.agent/workflows/audit.md +16 -30
- package/.agent/workflows/brainstorm.md +96 -33
- package/.agent/workflows/create.md +45 -37
- package/.agent/workflows/debug.md +84 -45
- package/.agent/workflows/deep-security-audit.md +9 -0
- package/.agent/workflows/deploy.md +158 -33
- package/.agent/workflows/document.md +15 -38
- package/.agent/workflows/enhance.md +48 -33
- package/.agent/workflows/growth-max.md +9 -0
- package/.agent/workflows/monitor.md +14 -35
- package/.agent/workflows/orchestrate.md +218 -31
- package/.agent/workflows/performance-max.md +9 -0
- package/.agent/workflows/plan.md +70 -39
- package/.agent/workflows/security.md +14 -35
- package/.agent/workflows/seo.md +16 -39
- package/.agent/workflows/status.md +72 -33
- package/.agent/workflows/test.md +127 -30
- package/.agent/workflows/ui-ux-pro-max.md +283 -24
- package/.editorconfig +21 -0
- package/.gitattributes +7 -0
- package/CHANGELOG.md +32 -0
- package/ERRORS.md +67 -0
- package/{.agent/GEMINI.md → GEMINI.md} +5 -4
- package/LICENSE +8 -22
- package/README.md +72 -102
- package/README.vi.md +110 -90
- package/action.yml +32 -0
- package/antigravity-ide-logo.png +0 -0
- package/antigravity-ide-logo.svg +24 -0
- package/assets/skills-bundle.json +1 -0
- package/cli/create.js +413 -275
- package/cli/index.js +24 -28
- package/cli/lib/auto-update.js +21 -14
- package/cli/logic/skill-definitions.js +39 -0
- package/cli/manifest.js +524 -0
- package/cli/prompts.js +145 -151
- package/cli/skills/fastcode.js +181 -0
- package/docs/AGENTS_GUIDE.vi.md +45 -38
- package/docs/AGENT_FLOW.md +608 -0
- package/docs/CONTRIBUTING.md +46 -0
- package/docs/CONTRIBUTING.vi.md +3 -12
- package/docs/COPYRIGHT.md +57 -0
- package/docs/DEPLOYMENT.md +77 -0
- package/docs/{GEMINI_USAGE.md → GEMINI_GUIDE.md} +6 -6
- package/docs/GLOSSARY.md +109 -0
- package/docs/GLOSSARY.vi.md +30 -49
- package/docs/HOW_ANTIGRAVITY_THINKS.vi.md +1 -1
- package/docs/MASTER_GUIDE.md +103 -0
- package/docs/OPERATIONAL_FLOW.md +147 -0
- package/docs/OPERATIONAL_FLOW.vi.md +0 -15
- package/docs/PLAN-upgrade-core-architecture.md +71 -0
- package/docs/{PUBLISHING_GUIDE.md → PUBLISHING.md} +3 -31
- package/docs/RULES_GUIDE.vi.md +31 -67
- package/docs/SHARED_LIBRARY_GUIDE.vi.md +22 -18
- package/docs/SKILLS.md +610 -0
- package/docs/SKILLS_GUIDE.vi.md +32 -118
- package/docs/TROUBLESHOOTING.md +43 -0
- package/docs/TROUBLESHOOTING.vi.md +2 -10
- package/docs/WORKFLOW_GUIDE.vi.md +9 -57
- package/jest.config.js +8 -0
- package/package.json +8 -31
- package/scripts/bump.js +93 -0
- package/scripts/bundle-skills.js +59 -0
- package/scripts/internal/automation/auto-release.js +177 -0
- package/scripts/internal/fractalize-skills.js +89 -0
- package/scripts/internal/generate-skill-definitions.js +134 -0
- package/scripts/internal/internal/update-docs.js +115 -0
- package/scripts/internal/refactor-skill-content.js +127 -0
- package/scripts/internal/rename-skills.js +96 -0
- package/scripts/internal/sync-skills.js +112 -0
- package/scripts/internal/update-frontmatter-names.js +99 -0
- package/scripts/internal/verification/audit-dna.js +56 -0
- package/scripts/internal/verification/audit-skills.js +65 -0
- package/setup.js +114 -147
- package/web/src/app/docs/guide/examples/brainstorm/page.mdx +91 -0
- package/web/src/app/docs/guide/examples/create/page.mdx +84 -0
- package/web/src/app/docs/guide/examples/debugging/page.mdx +83 -0
- package/web/src/app/docs/guide/examples/deployment/page.mdx +93 -0
- package/web/src/app/docs/guide/examples/new-feature/page.mdx +102 -0
- package/web/src/app/docs/guide/examples/orchestration/page.mdx +99 -0
- package/web/src/app/docs/guide/examples/plan/page.mdx +76 -0
- package/web/src/app/docs/guide/examples/preview/page.mdx +77 -0
- package/web/src/app/docs/guide/examples/status/page.mdx +78 -0
- package/web/src/app/docs/guide/examples/test/page.mdx +80 -0
- package/web/src/app/docs/guide/examples/ui-design/page.mdx +90 -0
- package/web/src/components/mdx/Callout.tsx +60 -0
- package/web/src/components/mdx/FeatureGrid.tsx +38 -0
- package/web/src/components/mdx/ProTips.tsx +29 -0
- package/web/src/components/mdx/StepList.tsx +33 -0
- package/web/src/components/mdx/Terminal.tsx +58 -0
- package/web/src/components/mdx/index.ts +5 -0
- package/web/src/mdx-components.tsx +98 -0
- package/.agent/skills/brand-guidelines-anthropic/LICENSE.txt +0 -202
- package/.agent/skills/brand-guidelines-anthropic/SKILL.md +0 -26
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/color-application.md +0 -5
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/colors.md +0 -14
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/font-management.md +0 -6
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/shape-and-accent-colors.md +0 -7
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/smart-font-application.md +0 -6
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/text-styling.md +0 -6
- package/.agent/skills/brand-guidelines-anthropic/sub-skills/typography.md +0 -7
- package/.agent/skills/internal-comms-anthropic/LICENSE.txt +0 -202
- package/.agent/skills/internal-comms-anthropic/SKILL.md +0 -33
- package/.agent/skills/internal-comms-anthropic/examples/3p-updates.md +0 -47
- package/.agent/skills/internal-comms-anthropic/examples/company-newsletter.md +0 -65
- package/.agent/skills/internal-comms-anthropic/examples/faq-answers.md +0 -30
- package/.agent/skills/internal-comms-anthropic/examples/general-comms.md +0 -16
- package/.agent/skills/last30days/tests/__init__.py +0 -1
- package/.agent/skills/last30days/tests/test_cache.py +0 -59
- package/.agent/skills/last30days/tests/test_dates.py +0 -114
- package/.agent/skills/last30days/tests/test_dedupe.py +0 -111
- package/.agent/skills/last30days/tests/test_models.py +0 -135
- package/.agent/skills/last30days/tests/test_normalize.py +0 -138
- package/.agent/skills/last30days/tests/test_render.py +0 -116
- package/.agent/skills/last30days/tests/test_score.py +0 -168
- package/.agent/skills/loki-mode/.github/workflows/claude-code-review.yml +0 -57
- package/.agent/skills/loki-mode/.github/workflows/claude.yml +0 -50
- package/.agent/skills/loki-mode/.github/workflows/release.yml +0 -128
- package/.agent/skills/loki-mode/tests/run-all-tests.sh +0 -78
- package/.agent/skills/loki-mode/tests/test-agent-timeout.sh +0 -348
- package/.agent/skills/loki-mode/tests/test-bootstrap.sh +0 -196
- package/.agent/skills/loki-mode/tests/test-circuit-breaker.sh +0 -389
- package/.agent/skills/loki-mode/tests/test-state-recovery.sh +0 -393
- package/.agent/skills/loki-mode/tests/test-task-queue.sh +0 -396
- package/.agent/skills/loki-mode/tests/test-wrapper.sh +0 -314
- package/.agent/skills/shopify-development/scripts/tests/test_shopify_init.py +0 -379
- package/cli/logic/product-skills.js +0 -58
- /package/.agent/.shared/{technical/ai-master → ai-master}/best_patterns.md +0 -0
- /package/.agent/.shared/{technical/ai-master → ai-master}/checklists/prompt_audit.md +0 -0
- /package/.agent/.shared/{technical/ai-master → ai-master}/presets/model_configs.json +0 -0
- /package/.agent/.shared/{technical/api-standards → api-standards}/data +0 -0
- /package/.agent/.shared/{technical/api-standards → api-standards}/endpoints_naming.md +0 -0
- /package/.agent/.shared/{technical/api-standards → api-standards}/error_codes.csv +0 -0
- /package/.agent/.shared/{technical/api-standards → api-standards}/pagination_sorting.md +0 -0
- /package/.agent/.shared/{technical/api-standards → api-standards}/response_format.json +0 -0
- /package/.agent/.shared/{verticals/compliance → compliance}/legal_templates.md +0 -0
- /package/.agent/.shared/{technical/database-master → database-master}/schemas/auth_rbac.sql +0 -0
- /package/.agent/.shared/{technical/database-master → database-master}/schemas/cms.sql +0 -0
- /package/.agent/.shared/{technical/database-master → database-master}/schemas/ecommerce.sql +0 -0
- /package/.agent/.shared/{core/design-philosophy → design-philosophy}/MANIFESTO.md +0 -0
- /package/.agent/.shared/{core/design-philosophy → design-philosophy}/checklists/tactile_audit.md +0 -0
- /package/.agent/.shared/{core/design-philosophy → design-philosophy}/checklists/visual_audit.md +0 -0
- /package/.agent/.shared/{core/design-philosophy → design-philosophy}/presets/linear_glow.json +0 -0
- /package/.agent/.shared/{technical/design-system → design-system}/brand_presets.json +0 -0
- /package/.agent/.shared/{technical/design-system → design-system}/micro_interactions.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/edtech.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/fintech.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/fnb_restaurant.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/freelance_marketplace.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/healthcare.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/hospitality_tourism.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/logistics.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/marketing_automation.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/personal_branding.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/real_estate.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/retail_ecommerce.md +0 -0
- /package/.agent/.shared/{verticals/domain-blueprints → domain-blueprints}/standard-pro-agents.md +0 -0
- /package/.agent/.shared/{core/dx-toolkit → dx-toolkit}/checklists/code_review.md +0 -0
- /package/.agent/.shared/{core/dx-toolkit → dx-toolkit}/presets/vscode_settings.json +0 -0
- /package/.agent/.shared/{technical/i18n-master → i18n-master}/vi_tech_dictionary.csv +0 -0
- /package/.agent/.shared/{technical/i18n-master → i18n-master}/workflows.json +0 -0
- /package/.agent/.shared/{verticals/infra-blueprints → infra-blueprints}/deployment_specs.md +0 -0
- /package/.agent/.shared/{core/metrics → metrics}/benchmarks.json +0 -0
- /package/.agent/.shared/{technical/resilience-patterns → resilience-patterns}/checklists/chaos_engineering.md +0 -0
- /package/.agent/.shared/{technical/resilience-patterns → resilience-patterns}/presets/circuit_breaker.json +0 -0
- /package/.agent/.shared/{technical/security-armor → security-armor}/checklists/vuln_scan.md +0 -0
- /package/.agent/.shared/{technical/security-armor → security-armor}/hardening.md +0 -0
- /package/.agent/.shared/{technical/security-armor → security-armor}/presets/helmet_config.json +0 -0
- /package/.agent/.shared/{technical/seo-master → seo-master}/checklists/technical_seo.md +0 -0
- /package/.agent/.shared/{technical/seo-master → seo-master}/presets/json_ld_schema.json +0 -0
- /package/.agent/.shared/{technical/testing-master → testing-master}/checklists/pre_release.md +0 -0
- /package/.agent/.shared/{technical/testing-master → testing-master}/scenarios.md +0 -0
- /package/.agent/{skills → .shared}/ui-ux-pro-max/data/charts.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/colors.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/icons.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/landing.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/products.csv +0 -0
- /package/.agent/{skills → .shared}/ui-ux-pro-max/data/prompts.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/react-performance.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/flutter.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/html-tailwind.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/jetpack-compose.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/nextjs.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/nuxt-ui.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/nuxtjs.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/react-native.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/react.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/shadcn.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/svelte.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/swiftui.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/stacks/vue.csv +0 -0
- /package/.agent/{skills → .shared}/ui-ux-pro-max/data/styles.csv +0 -0
- /package/.agent/{skills → .shared}/ui-ux-pro-max/data/typography.csv +0 -0
- /package/.agent/{skills → .shared}/ui-ux-pro-max/data/ui-reasoning.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/ux-guidelines.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/data/web-interface.csv +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/scripts/__pycache__/core.cpython-313.pyc +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/scripts/core.py +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/scripts/design_system.py +0 -0
- /package/.agent/.shared/{technical/ui-ux-pro-max → ui-ux-pro-max}/scripts/search.py +0 -0
- /package/.agent/.shared/{core/vitals-templates → vitals-templates}/audit_report.md +0 -0
- /package/.agent/.shared/{core/vitals-templates → vitals-templates}/plan_prd.md +0 -0
- /package/.agent/skills/ai-engineer/{sub-skills → resources}/ai_infra_stack.md +0 -0
- /package/.agent/skills/cloud-architect-master/{sub-skills → resources}/cost_optimization_checklist.md +0 -0
- /package/.agent/skills/cro-expert-kit/{sub-skills → resources}/psychological_triggers.md +0 -0
- /package/.agent/skills/database-migration/{sub-skills → resources}/zero_downtime_strategy.md +0 -0
- /package/.agent/skills/deployment-engineer/{sub-skills → resources}/k8s_best_practices.md +0 -0
- /package/.agent/skills/git-collaboration-master/{sub-skills → resources}/pr_template.md +0 -0
- /package/.agent/skills/incident-responder/{sub-skills → resources}/incident_severity_levels.md +0 -0
- /package/.agent/skills/legacy-modernizer/{sub-skills → resources}/strangler_fig_pattern.md +0 -0
- /package/.agent/skills/penetration-tester-master/{sub-skills → resources}/owasp_top_10_2025.md +0 -0
- /package/.agent/skills/production-code-audit/{sub-skills → resources}/solid_principles_cheat_sheet.md +0 -0
- /package/.agent/skills/seo-expert-kit/{sub-skills → resources}/technical_seo_checklist.md +0 -0
- /package/.agent/skills/tdd-master-workflow/{sub-skills → resources}/unit_test_naming_convention.md +0 -0
package/cli/prompts.js
CHANGED
|
@@ -1,28 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive prompts for project configuration
|
|
3
|
+
*/
|
|
4
|
+
|
|
1
5
|
const prompts = require('prompts');
|
|
2
6
|
const chalk = require('chalk');
|
|
3
7
|
const gradient = require('gradient-string');
|
|
4
8
|
const packageJson = require('../package.json');
|
|
5
|
-
const { execSync } = require('child_process');
|
|
6
|
-
|
|
7
|
-
// Import Logic Modules
|
|
8
|
-
const { skillCategories, getSkillsForCategories } = require('./logic/skill-definitions');
|
|
9
|
-
const { getScaleConfig } = require('./logic/scale-rules');
|
|
10
|
-
const { getProductConfig } = require('./logic/product-skills');
|
|
11
|
-
const { getWorkflows } = require('./logic/workflow-manager');
|
|
12
|
-
|
|
13
|
-
function checkPython() {
|
|
14
|
-
try {
|
|
15
|
-
execSync('python --version', { stdio: 'ignore' });
|
|
16
|
-
return true;
|
|
17
|
-
} catch (e) {
|
|
18
|
-
try {
|
|
19
|
-
execSync('python3 --version', { stdio: 'ignore' });
|
|
20
|
-
return true;
|
|
21
|
-
} catch (e2) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
9
|
|
|
27
10
|
// Display concise banner with gradient
|
|
28
11
|
function displayBanner() {
|
|
@@ -35,163 +18,174 @@ function displayBanner() {
|
|
|
35
18
|
console.log(gradient.pastel.multiline(' / ___ |/ / / / /_/ / /_/ / / / /_/ /| |/ / / /_/ /_/ / '));
|
|
36
19
|
console.log(gradient.pastel.multiline('/_/ |_/_/ /_/\\__/_/\\____/_/ \\__,_/ |___/_/\\__/\\__, / '));
|
|
37
20
|
console.log(gradient.pastel.multiline(' /____/ '));
|
|
38
|
-
console.log(chalk.gray(`
|
|
39
|
-
console.log(chalk.gray('
|
|
21
|
+
console.log(chalk.gray(` Google Antigravity • v${packageJson.version}`));
|
|
22
|
+
console.log(chalk.gray(' Developed with 💡 by Dokhacgiakhoa'));
|
|
40
23
|
console.log(gradient.rainbow('━'.repeat(60)));
|
|
41
24
|
console.log('');
|
|
42
25
|
}
|
|
43
26
|
|
|
44
|
-
|
|
45
|
-
|
|
27
|
+
const skillCategories = {
|
|
28
|
+
webdev: {
|
|
29
|
+
name: 'Web High-Performance',
|
|
30
|
+
skills: [
|
|
31
|
+
'modern-web-architect',
|
|
32
|
+
'full-stack-scaffold',
|
|
33
|
+
'api-documenter',
|
|
34
|
+
'i18n-localization'
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
mobile: {
|
|
38
|
+
name: 'Mobile & Game',
|
|
39
|
+
skills: [
|
|
40
|
+
'mobile-design',
|
|
41
|
+
'game-development',
|
|
42
|
+
'i18n-localization'
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
devops: {
|
|
46
|
+
name: 'DevOps & Cloud',
|
|
47
|
+
skills: [
|
|
48
|
+
'cloud-architect-master',
|
|
49
|
+
'deployment-engineer',
|
|
50
|
+
'incident-responder',
|
|
51
|
+
'mcp-builder'
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
security: {
|
|
55
|
+
name: 'Security & Audit',
|
|
56
|
+
skills: [
|
|
57
|
+
'security-auditor',
|
|
58
|
+
'penetration-tester-master',
|
|
59
|
+
'production-code-audit',
|
|
60
|
+
'vulnerability-scanner'
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
ai: {
|
|
64
|
+
name: 'AI & ML',
|
|
65
|
+
skills: [
|
|
66
|
+
'ai-engineer',
|
|
67
|
+
'geo-fundamentals',
|
|
68
|
+
'prompt-engineer'
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
growth: {
|
|
72
|
+
name: 'Growth & Data',
|
|
73
|
+
skills: [
|
|
74
|
+
'cro-expert-kit',
|
|
75
|
+
'seo-expert-kit',
|
|
76
|
+
'database-migration',
|
|
77
|
+
'performance-engineer'
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
};
|
|
46
81
|
|
|
82
|
+
async function getProjectConfig(skipPrompts = false, predefinedName = null) {
|
|
47
83
|
if (skipPrompts) {
|
|
48
|
-
|
|
49
|
-
language: 'en',
|
|
84
|
+
return {
|
|
50
85
|
projectName: predefinedName || 'my-agent-project',
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
industryDomain: 'other'
|
|
86
|
+
language: 'en',
|
|
87
|
+
operationMode: 'standard',
|
|
88
|
+
engineMode: 'standard'
|
|
55
89
|
};
|
|
56
|
-
}
|
|
57
|
-
// Check Python only if we are going to prompt (UX)
|
|
58
|
-
const hasPython = checkPython();
|
|
59
|
-
displayBanner();
|
|
60
|
-
console.log(chalk.bold.cyan('🚀 Project Setup Wizard\n'));
|
|
61
|
-
console.log(chalk.gray('Answer a few questions to configure your AI Agent project...\n'));
|
|
90
|
+
}
|
|
62
91
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
92
|
+
// Display beautiful banner
|
|
93
|
+
displayBanner();
|
|
94
|
+
|
|
95
|
+
console.log(chalk.bold.cyan('🚀 Project Setup Wizard\n'));
|
|
96
|
+
console.log(chalk.gray('Answer a few questions to configure your AI Agent project...\n'));
|
|
97
|
+
|
|
98
|
+
const responses = await prompts([
|
|
99
|
+
{
|
|
100
|
+
type: 'select',
|
|
101
|
+
name: 'language',
|
|
102
|
+
message: 'Select Language / Chọn ngôn ngữ:',
|
|
103
|
+
choices: [
|
|
104
|
+
{ title: '1. English', value: 'en' },
|
|
105
|
+
{ title: '2. Tiếng Việt', value: 'vi' }
|
|
106
|
+
],
|
|
107
|
+
initial: 1
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: predefinedName ? null : 'text',
|
|
111
|
+
name: 'projectName',
|
|
112
|
+
message: (prev, values) => values.language === 'vi' ? 'Tên dự án (Project name):' : 'Project name:',
|
|
113
|
+
initial: 'my-agent-project',
|
|
114
|
+
validate: (value) => {
|
|
115
|
+
if (!/^[a-z0-9-_]+$/.test(value)) {
|
|
116
|
+
return 'Project name can only contain lowercase letters, numbers, hyphens, and underscores';
|
|
84
117
|
}
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'select',
|
|
123
|
+
name: 'operationMode',
|
|
124
|
+
message: (prev, values) => {
|
|
125
|
+
const lang = values.language;
|
|
126
|
+
return lang === 'vi'
|
|
127
|
+
? 'Chọn Chế độ Vận hành (Phụ thuộc vào tài khoản AI của bạn):'
|
|
128
|
+
: 'Select Operation Mode (Based on your AI Account):';
|
|
85
129
|
},
|
|
86
|
-
{
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
{
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
{ title: '🤖 Trợ lý AI (Chatbot/Automation)', value: 'ai_agent' },
|
|
109
|
-
{ title: '🎨 Tài sản Số (Game/Template/Media)', value: 'digital_asset' }
|
|
110
|
-
] : [
|
|
111
|
-
{ title: '📱 User Application (App/Web/Mobile/Desktop)', value: 'user_app' },
|
|
112
|
-
{ title: '🛠️ Developer Tool (CLI/Library/API)', value: 'dev_tool' },
|
|
113
|
-
{ title: '🤖 AI Agent (Chatbot/Automation)', value: 'ai_agent' },
|
|
114
|
-
{ title: '🎨 Digital Asset (Game/Template/Media)', value: 'digital_asset' }
|
|
115
|
-
],
|
|
116
|
-
initial: 0
|
|
130
|
+
choices: (prev, values) => {
|
|
131
|
+
const lang = values.language;
|
|
132
|
+
return [
|
|
133
|
+
{
|
|
134
|
+
title: lang === 'vi'
|
|
135
|
+
? '🌿 ECO (Siêu tiết kiệm - Khuyên dùng cho Tài khoản Free)'
|
|
136
|
+
: '🌿 ECO (Economy - Best for Free accounts)',
|
|
137
|
+
value: 'eco'
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
title: lang === 'vi'
|
|
141
|
+
? '🏢 PRO (Chuyên nghiệp - Gemini Pro - Hỗ trợ Plugin mở rộng)'
|
|
142
|
+
: '🏢 PRO (Professional - Gemini Pro - Supports Plugin extensions)',
|
|
143
|
+
value: 'pro'
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
title: lang === 'vi'
|
|
147
|
+
? '🌌 ULTRA (Sáng tạo - Yêu cầu Gemini Ultra)'
|
|
148
|
+
: '🌌 ULTRA (Infinite - Requires Gemini Ultra)',
|
|
149
|
+
value: 'ultra'
|
|
150
|
+
}
|
|
151
|
+
];
|
|
117
152
|
},
|
|
118
|
-
|
|
119
|
-
type: 'text',
|
|
120
|
-
name: 'agentName',
|
|
121
|
-
message: (prev, values) => values.language === 'vi' ? 'Đặt tên cho Agent (VD: Jarvis, Friday):' : 'Name your Agent (e.g., Jarvis, Friday):',
|
|
122
|
-
validate: (value) => value.length < 2 ? (process.env.LANG?.includes('vi') ? 'Tên Agent phải có ít nhất 2 ký tự' : 'Name must be at least 2 characters long') : true
|
|
123
|
-
}
|
|
124
|
-
], {
|
|
125
|
-
onCancel: () => {
|
|
126
|
-
console.log(chalk.red('\n✖ Operation cancelled'));
|
|
127
|
-
process.exit(0);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
// Warning for missing Python in Advanced Modes
|
|
132
|
-
if (responses.scale !== 'instant' && !hasPython) {
|
|
133
|
-
console.log(chalk.yellow(`\n⚠️ Warning: Python is recommended for ${responses.scale.toUpperCase()} mode (AI & Data features).`));
|
|
134
|
-
console.log(chalk.gray(' Follow Python installation guide in docs/INSTALL_NPX_GUIDE.vi.md if needed.'));
|
|
153
|
+
initial: 1
|
|
135
154
|
}
|
|
136
|
-
|
|
137
|
-
|
|
155
|
+
], {
|
|
156
|
+
onCancel: () => {
|
|
157
|
+
console.log(chalk.red('\n✖ Operation cancelled'));
|
|
158
|
+
process.exit(0);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
|
|
138
162
|
// Inject predefined name if it exists (so logic downstream works)
|
|
139
163
|
if (predefinedName) {
|
|
140
164
|
responses.projectName = predefinedName;
|
|
141
165
|
}
|
|
142
|
-
|
|
143
|
-
if (!responses.projectName) responses.projectName = 'my-agent-project'; // Fallback
|
|
144
|
-
|
|
145
|
-
console.log(`\n${chalk.green('✔')} Setup Complete! Generating Project Plan...`);
|
|
146
|
-
|
|
147
|
-
// Default Industry to 'other' (General / All Fields)
|
|
148
|
-
responses.industryDomain = 'other';
|
|
149
|
-
|
|
150
|
-
// --- LOGIC INTEGRATION START ---
|
|
151
|
-
|
|
152
|
-
// 1. Get Scale Configuration (Engine, Rules, Core Skills)
|
|
153
|
-
const scaleConfig = getScaleConfig(responses.scale);
|
|
154
|
-
|
|
155
|
-
// 2. Get Product Skills
|
|
156
|
-
const { skills: productSkills, sharedModules } = getProductConfig(responses.productType);
|
|
157
|
-
|
|
158
|
-
// 3. Combine Skills (Core + Product)
|
|
159
|
-
const allSkills = new Set([...scaleConfig.coreSkillCategories, ...productSkills]);
|
|
160
|
-
|
|
161
|
-
// 4. Get Workflows (combined from Scale and Product/Industry)
|
|
162
|
-
const finalWorkflows = getWorkflows(
|
|
163
|
-
responses.industryDomain,
|
|
164
|
-
responses.productType,
|
|
165
|
-
scaleConfig.baseWorkflows
|
|
166
|
-
);
|
|
167
166
|
|
|
168
167
|
const settings = {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
packageManager: 'npm',
|
|
173
|
-
engineMode: scaleConfig.engineMode,
|
|
174
|
-
productType: responses.productType
|
|
168
|
+
engineMode: responses.operationMode === 'creative' ? 'advanced' : 'standard',
|
|
169
|
+
agentName: 'Antigravity',
|
|
170
|
+
projectScale: responses.operationMode
|
|
175
171
|
};
|
|
176
172
|
|
|
177
|
-
// Return configuration
|
|
178
|
-
return { ...responses, ...settings, skillCategories:
|
|
173
|
+
// Return configuration with presets
|
|
174
|
+
return { ...responses, ...settings, skillCategories: Object.keys(skillCategories) };
|
|
179
175
|
}
|
|
180
176
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
initial: false
|
|
177
|
+
function getSkillsForCategories(categories) {
|
|
178
|
+
const skills = [];
|
|
179
|
+
categories.forEach(category => {
|
|
180
|
+
if (skillCategories[category]) {
|
|
181
|
+
skills.push(...skillCategories[category].skills);
|
|
182
|
+
}
|
|
188
183
|
});
|
|
189
|
-
return
|
|
184
|
+
return skills;
|
|
190
185
|
}
|
|
191
186
|
|
|
192
187
|
module.exports = {
|
|
193
188
|
getProjectConfig,
|
|
194
189
|
getSkillsForCategories,
|
|
195
|
-
skillCategories
|
|
196
|
-
confirmOverwrite
|
|
190
|
+
skillCategories
|
|
197
191
|
};
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* FastCode Native (Node.js)
|
|
5
|
+
*
|
|
6
|
+
* A lightweight, dependency-free codebase search engine for AI Agents.
|
|
7
|
+
* - Indexes symbols (functions, classes, variables)
|
|
8
|
+
* - Performs fuzzy search on file paths and symbols
|
|
9
|
+
* - Outputs JSON for Agent consumption
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const fs = require('fs');
|
|
13
|
+
const path = require('path');
|
|
14
|
+
const { promisify } = require('util');
|
|
15
|
+
|
|
16
|
+
const readdir = promisify(fs.readdir);
|
|
17
|
+
const readFile = promisify(fs.readFile);
|
|
18
|
+
const stat = promisify(fs.stat);
|
|
19
|
+
const writeFile = promisify(fs.writeFile);
|
|
20
|
+
|
|
21
|
+
// Configuration
|
|
22
|
+
const IGNORE_DIRS = ['.git', 'node_modules', 'dist', 'build', '.next', 'coverage'];
|
|
23
|
+
const IGNORE_FILES = ['package-lock.json', 'yarn.lock', '.DS_Store'];
|
|
24
|
+
const INDEX_FILE = path.join(process.cwd(), '.agent', 'fastcode_index.json');
|
|
25
|
+
|
|
26
|
+
// Symbol Regex Patterns (Simple but effective)
|
|
27
|
+
const PATTERNS = {
|
|
28
|
+
// Frontend (React/JS)
|
|
29
|
+
function: /function\s+([a-zA-Z0-9_$]+)/g,
|
|
30
|
+
class: /class\s+([a-zA-Z0-9_$]+)/g,
|
|
31
|
+
const: /(?:const|let|var)\s+([a-zA-Z0-9_$]+)\s*=/g,
|
|
32
|
+
destruct_array: /(?:const|let|var)\s+\[([^\]]+)\]\s*=/g,
|
|
33
|
+
destruct_obj: /(?:const|let|var)\s+\{([^\}]+)\}\s*=/g,
|
|
34
|
+
|
|
35
|
+
// Backend (Python/Node)
|
|
36
|
+
python_def: /def\s+([a-zA-Z0-9_]+)/g,
|
|
37
|
+
python_class: /class\s+([a-zA-Z0-9_]+)/g,
|
|
38
|
+
python_route: /@(?:app|router)\.(?:get|post|put|delete|patch)\s*\(\s*['"]([^'"]+)['"]\)/g, // Flask/FastAPI routes
|
|
39
|
+
node_route: /(?:app|router)\.(?:get|post|put|delete|patch)\s*\(\s*['"]([^'"]+)['"]/g, // Express routes
|
|
40
|
+
|
|
41
|
+
// Database (SQL/Prisma)
|
|
42
|
+
prisma_model: /model\s+([a-zA-Z0-9_]+)\s+\{/g,
|
|
43
|
+
sql_create: /CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?([a-zA-Z0-9_]+)/gi,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
async function getFiles(dir) {
|
|
47
|
+
const subdirs = await readdir(dir);
|
|
48
|
+
const files = await Promise.all(subdirs.map(async (subdir) => {
|
|
49
|
+
const res = path.resolve(dir, subdir);
|
|
50
|
+
const relative = path.relative(process.cwd(), res);
|
|
51
|
+
|
|
52
|
+
if (IGNORE_FILES.includes(subdir)) return [];
|
|
53
|
+
|
|
54
|
+
// Explicitly ignore strictly forbidden dirs
|
|
55
|
+
if (IGNORE_DIRS.includes(subdir)) return [];
|
|
56
|
+
|
|
57
|
+
// Special handling for .agent: Only allow 'skills'
|
|
58
|
+
if (relative.startsWith('.agent')) {
|
|
59
|
+
if (relative === '.agent') {
|
|
60
|
+
// Continue recursion into .agent
|
|
61
|
+
} else if (relative.startsWith(path.join('.agent', 'skills'))) {
|
|
62
|
+
// Allow skills folder
|
|
63
|
+
} else if (subdir === 'fastcode_index.json') {
|
|
64
|
+
return res; // Allow the index file itself (optional)
|
|
65
|
+
} else {
|
|
66
|
+
return []; // Ignore other .agent folders (brain, logs, tools)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return (await stat(res)).isDirectory() ? getFiles(res) : res;
|
|
71
|
+
}));
|
|
72
|
+
return files.reduce((a, f) => a.concat(f), []);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
async function extractSymbols(content, filePath) {
|
|
76
|
+
const symbols = [];
|
|
77
|
+
const ext = path.extname(filePath);
|
|
78
|
+
|
|
79
|
+
if (['.js', '.ts', '.jsx', '.tsx'].includes(ext)) {
|
|
80
|
+
let match;
|
|
81
|
+
while ((match = PATTERNS.function.exec(content)) !== null) symbols.push({ type: 'function', name: match[1] });
|
|
82
|
+
while ((match = PATTERNS.class.exec(content)) !== null) symbols.push({ type: 'class', name: match[1] });
|
|
83
|
+
while ((match = PATTERNS.const.exec(content)) !== null) symbols.push({ type: 'variable', name: match[1] });
|
|
84
|
+
|
|
85
|
+
// Handle destructuring
|
|
86
|
+
while ((match = PATTERNS.destruct_array.exec(content)) !== null) {
|
|
87
|
+
match[1].split(',').map(s => s.trim()).filter(s => s).forEach(s => symbols.push({ type: 'variable', name: s }));
|
|
88
|
+
}
|
|
89
|
+
while ((match = PATTERNS.destruct_obj.exec(content)) !== null) {
|
|
90
|
+
match[1].split(',').map(s => s.trim().split(':')[0].trim()).filter(s => s).forEach(s => symbols.push({ type: 'variable', name: s }));
|
|
91
|
+
}
|
|
92
|
+
// Node Routes
|
|
93
|
+
while ((match = PATTERNS.node_route.exec(content)) !== null) symbols.push({ type: 'route', name: match[1] });
|
|
94
|
+
|
|
95
|
+
} else if (['.py'].includes(ext)) {
|
|
96
|
+
let match;
|
|
97
|
+
while ((match = PATTERNS.python_def.exec(content)) !== null) symbols.push({ type: 'function', name: match[1] });
|
|
98
|
+
while ((match = PATTERNS.python_class.exec(content)) !== null) symbols.push({ type: 'class', name: match[1] });
|
|
99
|
+
// Python Routes
|
|
100
|
+
while ((match = PATTERNS.python_route.exec(content)) !== null) symbols.push({ type: 'route', name: match[1] });
|
|
101
|
+
|
|
102
|
+
} else if (['.prisma'].includes(ext)) {
|
|
103
|
+
let match;
|
|
104
|
+
while ((match = PATTERNS.prisma_model.exec(content)) !== null) symbols.push({ type: 'model', name: match[1] });
|
|
105
|
+
|
|
106
|
+
} else if (['.sql'].includes(ext)) {
|
|
107
|
+
let match;
|
|
108
|
+
while ((match = PATTERNS.sql_create.exec(content)) !== null) symbols.push({ type: 'table', name: match[1] });
|
|
109
|
+
}
|
|
110
|
+
return symbols;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
async function index() {
|
|
114
|
+
console.log('Orchestrating FastCode Indexing...');
|
|
115
|
+
const files = await getFiles(process.cwd());
|
|
116
|
+
const indexData = [];
|
|
117
|
+
|
|
118
|
+
for (const file of files) {
|
|
119
|
+
try {
|
|
120
|
+
const content = await readFile(file, 'utf8');
|
|
121
|
+
const relativePath = path.relative(process.cwd(), file);
|
|
122
|
+
const symbols = await extractSymbols(content, file);
|
|
123
|
+
|
|
124
|
+
if (symbols.length > 0 || content.length < 50000) { // Limit huge files
|
|
125
|
+
indexData.push({
|
|
126
|
+
path: relativePath,
|
|
127
|
+
symbols: symbols.map(s => s.name),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
} catch (e) {
|
|
131
|
+
// Ignore binary or unreadable files
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
await writeFile(INDEX_FILE, JSON.stringify(indexData, null, 2));
|
|
136
|
+
console.log(`Indexed ${indexData.length} files. Index saved to ${INDEX_FILE}`);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
async function search(query) {
|
|
140
|
+
if (!fs.existsSync(INDEX_FILE)) {
|
|
141
|
+
console.error('Index not found. Run "index" first.');
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const indexData = require(INDEX_FILE);
|
|
146
|
+
const results = indexData.filter(item => {
|
|
147
|
+
// 1. Path match
|
|
148
|
+
if (item.path.toLowerCase().includes(query.toLowerCase())) return true;
|
|
149
|
+
// 2. Symbol match
|
|
150
|
+
if (item.symbols.some(s => s.toLowerCase().includes(query.toLowerCase()))) return true;
|
|
151
|
+
return false;
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// Rank results: Path match > Symbol match
|
|
155
|
+
results.sort((a, b) => {
|
|
156
|
+
const aPathMatch = a.path.toLowerCase().includes(query.toLowerCase());
|
|
157
|
+
const bPathMatch = b.path.toLowerCase().includes(query.toLowerCase());
|
|
158
|
+
if (aPathMatch && !bPathMatch) return -1;
|
|
159
|
+
if (!aPathMatch && bPathMatch) return 1;
|
|
160
|
+
return 0;
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
console.log(JSON.stringify(results.slice(0, 10), null, 2)); // Return top 10
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// CLI
|
|
167
|
+
const args = process.argv.slice(2);
|
|
168
|
+
const command = args[0];
|
|
169
|
+
const query = args[1];
|
|
170
|
+
|
|
171
|
+
if (command === 'index') {
|
|
172
|
+
index();
|
|
173
|
+
} else if (command === 'search') {
|
|
174
|
+
if (!query) {
|
|
175
|
+
console.error('Usage: search <query>');
|
|
176
|
+
process.exit(1);
|
|
177
|
+
}
|
|
178
|
+
search(query);
|
|
179
|
+
} else {
|
|
180
|
+
console.log('Usage: node fastcode.js [index|search <query>]');
|
|
181
|
+
}
|
package/docs/AGENTS_GUIDE.vi.md
CHANGED
|
@@ -1,48 +1,55 @@
|
|
|
1
1
|
# 🕵️ Hướng Dẫn Về "Hệ Thống Agent" (Digital Employees)
|
|
2
2
|
|
|
3
|
-
> **Antigravity**
|
|
3
|
+
> **Antigravity** vận hành như một công ty phần mềm thu nhỏ, với **42 nhân viên số (AI Agents)** chuyên trách từng mảng.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## 1. Biệt Đội Chuyên Gia (The Squad)
|
|
8
8
|
|
|
9
|
-
Dưới đây là danh sách các nhân viên ảo sẽ phục vụ bạn:
|
|
10
|
-
|
|
11
|
-
###
|
|
12
|
-
* **`
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* **`
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
* **`
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
*
|
|
28
|
-
* **`
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* **`
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
* **`
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* **`
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
9
|
+
Dưới đây là danh sách các nhân viên ảo chủ chốt sẽ phục vụ bạn:
|
|
10
|
+
|
|
11
|
+
### 🏗️ Ban Kiến Trúc & Kế Hoạch
|
|
12
|
+
* **`project-planner`**:
|
|
13
|
+
* *Vai trò*: PM (Product Manager).
|
|
14
|
+
* *Nhiệm vụ*: Lên kế hoạch, chia nhỏ đầu việc, viết PRD.
|
|
15
|
+
* *Khi nào gọi*: Khi dùng `/plan`.
|
|
16
|
+
* **`orchestrator`**:
|
|
17
|
+
* *Vai trò*: Tech Lead / Thư ký.
|
|
18
|
+
* *Nhiệm vụ*: Điều phối các agent khác, tổng hợp báo cáo.
|
|
19
|
+
* *Khi nào gọi*: Khi dùng `/orchestrate`.
|
|
20
|
+
|
|
21
|
+
### 💻 Ban Kỹ Thuật (Engineer)
|
|
22
|
+
* **`frontend-specialist`**:
|
|
23
|
+
* *Vai trò*: Senior Frontend Dev.
|
|
24
|
+
* *Kỹ năng*: React, Vue, CSS Animation, Responsive.
|
|
25
|
+
* **`backend-specialist`**:
|
|
26
|
+
* *Vai trò*: Senior Backend Dev.
|
|
27
|
+
* *Kỹ năng*: API Design, Database, Auth, Logic.
|
|
28
|
+
* **`database-architect`**:
|
|
29
|
+
* *Vai trò*: DBA (Database Administrator).
|
|
30
|
+
* *Nhiệm vụ*: Thiết kế Schema, tối ưu câu Query.
|
|
31
|
+
* **`mobile-developer`**:
|
|
32
|
+
* *Vai trò*: Mobile Dev.
|
|
33
|
+
* *Task*: Code iOS/Android (React Native/Flutter).
|
|
34
|
+
|
|
35
|
+
### 🛡️ Ban Chất Lượng & Vận Hành
|
|
36
|
+
* **`security-auditor`**:
|
|
37
|
+
* *Vai trò*: Chuyên gia bảo mật.
|
|
38
|
+
* *Nhiệm vụ*: Tìm lỗ hổng, rà soát key lộ.
|
|
39
|
+
* **`test-engineer`**:
|
|
40
|
+
* *Vai trò*: QA/QC.
|
|
41
|
+
* *Nhiệm vụ*: Viết test case, chạy kiểm thử tự động.
|
|
42
|
+
* **`devops-engineer`**:
|
|
43
|
+
* *Vai trò*: SysAdmin.
|
|
44
|
+
* *Nhiệm vụ*: Cấu hình Server, Docker, Deploy.
|
|
45
|
+
|
|
46
|
+
### 🎨 Ban Sáng Tạo & Growth
|
|
47
|
+
* **`ui-ux-designer`**:
|
|
48
|
+
* *Vai trò*: Designer.
|
|
49
|
+
* *Nhiệm vụ*: Phối màu, chọn font, thiết kế trải nghiệm.
|
|
50
|
+
* **`seo-specialist`**:
|
|
51
|
+
* *Vai trò*: SEO Marketing.
|
|
52
|
+
* *Nhiệm vụ*: Tối ưu từ khóa, đẩy Top Google.
|
|
46
53
|
|
|
47
54
|
---
|
|
48
55
|
|