flyee 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +134 -0
- package/bin/install.js +357 -0
- package/bridge/bridge.py +1780 -0
- package/bridge/local_tracker.py +722 -0
- package/core/agents/backend-specialist.md +266 -0
- package/core/agents/code-archaeologist.md +106 -0
- package/core/agents/database-architect.md +226 -0
- package/core/agents/debugger.md +225 -0
- package/core/agents/devops-engineer.md +323 -0
- package/core/agents/documentation-writer.md +104 -0
- package/core/agents/explorer-agent.md +73 -0
- package/core/agents/frontend-specialist.md +743 -0
- package/core/agents/game-developer.md +162 -0
- package/core/agents/mobile-developer.md +377 -0
- package/core/agents/orchestrator.md +416 -0
- package/core/agents/penetration-tester.md +188 -0
- package/core/agents/performance-optimizer.md +187 -0
- package/core/agents/product-manager.md +112 -0
- package/core/agents/product-owner.md +95 -0
- package/core/agents/project-planner.md +470 -0
- package/core/agents/qa-automation-engineer.md +103 -0
- package/core/agents/security-auditor.md +170 -0
- package/core/agents/seo-specialist.md +111 -0
- package/core/agents/stitch-designer.md +190 -0
- package/core/agents/tdd-reviewer.md +282 -0
- package/core/agents/test-engineer.md +158 -0
- package/core/scripts/auto_preview.py +148 -0
- package/core/scripts/checklist.py +243 -0
- package/core/scripts/cost_report.py +149 -0
- package/core/scripts/doc-sync-check.py +461 -0
- package/core/scripts/parse_user_stories.py +79 -0
- package/core/scripts/prepare_notion_updates.py +172 -0
- package/core/scripts/print_create_payload.py +18 -0
- package/core/scripts/session_manager.py +120 -0
- package/core/scripts/task_complete.py +127 -0
- package/core/scripts/verify_all.py +327 -0
- package/core/skills/analytics-strategy/SKILL.md +128 -0
- package/core/skills/api-patterns/SKILL.md +81 -0
- package/core/skills/api-patterns/api-style.md +42 -0
- package/core/skills/api-patterns/auth.md +24 -0
- package/core/skills/api-patterns/documentation.md +26 -0
- package/core/skills/api-patterns/graphql.md +41 -0
- package/core/skills/api-patterns/rate-limiting.md +31 -0
- package/core/skills/api-patterns/response.md +37 -0
- package/core/skills/api-patterns/rest.md +40 -0
- package/core/skills/api-patterns/scripts/api_validator.py +211 -0
- package/core/skills/api-patterns/security-testing.md +122 -0
- package/core/skills/api-patterns/trpc.md +41 -0
- package/core/skills/api-patterns/versioning.md +22 -0
- package/core/skills/app-builder/SKILL.md +75 -0
- package/core/skills/app-builder/agent-coordination.md +71 -0
- package/core/skills/app-builder/feature-building.md +53 -0
- package/core/skills/app-builder/project-detection.md +34 -0
- package/core/skills/app-builder/scaffolding.md +118 -0
- package/core/skills/app-builder/tech-stack.md +40 -0
- package/core/skills/app-builder/templates/SKILL.md +39 -0
- package/core/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/core/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/core/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/core/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/core/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/core/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/core/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/core/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/core/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/core/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/core/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/core/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/core/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/core/skills/architecture/SKILL.md +55 -0
- package/core/skills/architecture/context-discovery.md +43 -0
- package/core/skills/architecture/examples.md +94 -0
- package/core/skills/architecture/pattern-selection.md +68 -0
- package/core/skills/architecture/patterns-reference.md +50 -0
- package/core/skills/architecture/trade-off-analysis.md +77 -0
- package/core/skills/atomic-design/SKILL.md +282 -0
- package/core/skills/atomic-design/references/classification-guide.md +132 -0
- package/core/skills/atomic-design/references/quality-checklist.md +60 -0
- package/core/skills/atomic-design/references/stacks/stack-blade.md +254 -0
- package/core/skills/atomic-design/references/stacks/stack-nextjs.md +272 -0
- package/core/skills/atomic-design/references/stacks/stack-react.md +239 -0
- package/core/skills/atomic-design/references/stacks/stack-vue.md +224 -0
- package/core/skills/bash-linux/SKILL.md +199 -0
- package/core/skills/behavioral-modes/SKILL.md +242 -0
- package/core/skills/brainstorming/SKILL.md +163 -0
- package/core/skills/brainstorming/dynamic-questioning.md +373 -0
- package/core/skills/checkpointing-patterns/SKILL.md +163 -0
- package/core/skills/clean-code/SKILL.md +201 -0
- package/core/skills/code-review-checklist/SKILL.md +109 -0
- package/core/skills/code-truth-validation/SKILL.md +149 -0
- package/core/skills/component-library-discovery/SKILL.md +154 -0
- package/core/skills/content-strategy/SKILL.md +222 -0
- package/core/skills/context-budget/SKILL.md +155 -0
- package/core/skills/context-gathering-patterns/SKILL.md +278 -0
- package/core/skills/cost-tracking/SKILL.md +206 -0
- package/core/skills/database-design/SKILL.md +52 -0
- package/core/skills/database-design/database-selection.md +43 -0
- package/core/skills/database-design/indexing.md +39 -0
- package/core/skills/database-design/migrations.md +48 -0
- package/core/skills/database-design/optimization.md +36 -0
- package/core/skills/database-design/orm-selection.md +30 -0
- package/core/skills/database-design/schema-design.md +56 -0
- package/core/skills/database-design/scripts/schema_validator.py +172 -0
- package/core/skills/deployment-procedures/SKILL.md +295 -0
- package/core/skills/design-md/README.md +34 -0
- package/core/skills/design-md/SKILL.md +172 -0
- package/core/skills/design-md/examples/DESIGN.md +154 -0
- package/core/skills/design-system-enforcement/SKILL.md +339 -0
- package/core/skills/doc.md +177 -0
- package/core/skills/document-registry/SKILL.md +130 -0
- package/core/skills/documentation-publishing/SKILL.md +174 -0
- package/core/skills/documentation-templates/SKILL.md +194 -0
- package/core/skills/enhance-prompt/README.md +34 -0
- package/core/skills/enhance-prompt/SKILL.md +204 -0
- package/core/skills/enhance-prompt/references/KEYWORDS.md +114 -0
- package/core/skills/frontend-design/SKILL.md +430 -0
- package/core/skills/frontend-design/animation-guide.md +331 -0
- package/core/skills/frontend-design/color-system.md +311 -0
- package/core/skills/frontend-design/decision-trees.md +418 -0
- package/core/skills/frontend-design/motion-graphics.md +306 -0
- package/core/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/core/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/core/skills/frontend-design/typography-system.md +345 -0
- package/core/skills/frontend-design/ux-psychology.md +541 -0
- package/core/skills/frontend-design/visual-effects.md +383 -0
- package/core/skills/game-development/2d-games/SKILL.md +119 -0
- package/core/skills/game-development/3d-games/SKILL.md +135 -0
- package/core/skills/game-development/SKILL.md +167 -0
- package/core/skills/game-development/game-art/SKILL.md +185 -0
- package/core/skills/game-development/game-audio/SKILL.md +190 -0
- package/core/skills/game-development/game-design/SKILL.md +129 -0
- package/core/skills/game-development/mobile-games/SKILL.md +108 -0
- package/core/skills/game-development/multiplayer/SKILL.md +132 -0
- package/core/skills/game-development/pc-games/SKILL.md +144 -0
- package/core/skills/game-development/vr-ar/SKILL.md +123 -0
- package/core/skills/game-development/web-games/SKILL.md +150 -0
- package/core/skills/geo-fundamentals/SKILL.md +156 -0
- package/core/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/core/skills/git-workflow/SKILL.md +263 -0
- package/core/skills/history-check-patterns/SKILL.md +125 -0
- package/core/skills/i18n-localization/SKILL.md +154 -0
- package/core/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/core/skills/integration-completeness/SKILL.md +219 -0
- package/core/skills/intelligent-routing/SKILL.md +370 -0
- package/core/skills/lint-and-validate/SKILL.md +45 -0
- package/core/skills/lint-and-validate/scripts/lint_runner.py +173 -0
- package/core/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/core/skills/local-verification/SKILL.md +195 -0
- package/core/skills/mcp-builder/SKILL.md +176 -0
- package/core/skills/mobile-design/SKILL.md +394 -0
- package/core/skills/mobile-design/decision-trees.md +516 -0
- package/core/skills/mobile-design/mobile-backend.md +491 -0
- package/core/skills/mobile-design/mobile-color-system.md +420 -0
- package/core/skills/mobile-design/mobile-debugging.md +122 -0
- package/core/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/core/skills/mobile-design/mobile-navigation.md +458 -0
- package/core/skills/mobile-design/mobile-performance.md +767 -0
- package/core/skills/mobile-design/mobile-testing.md +356 -0
- package/core/skills/mobile-design/mobile-typography.md +433 -0
- package/core/skills/mobile-design/platform-android.md +666 -0
- package/core/skills/mobile-design/platform-ios.md +561 -0
- package/core/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/core/skills/mobile-design/touch-psychology.md +537 -0
- package/core/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -0
- package/core/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/core/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/core/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/core/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/core/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/core/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/core/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/core/skills/nextjs-react-expert/SKILL.md +267 -0
- package/core/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/core/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/core/skills/nodejs-best-practices/SKILL.md +333 -0
- package/core/skills/notion-task-patterns/SKILL.md +2529 -0
- package/core/skills/page-specifications/SKILL.md +367 -0
- package/core/skills/parallel-agents/SKILL.md +175 -0
- package/core/skills/performance-profiling/SKILL.md +143 -0
- package/core/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/core/skills/plan-writing/SKILL.md +190 -0
- package/core/skills/powershell-windows/SKILL.md +167 -0
- package/core/skills/project-foundation/SKILL.md +117 -0
- package/core/skills/project-setup/SKILL.md +141 -0
- package/core/skills/project-tracking-patterns/SKILL.md +357 -0
- package/core/skills/project-type-discovery/SKILL.md +239 -0
- package/core/skills/python-patterns/SKILL.md +441 -0
- package/core/skills/qa-test-generation/SKILL.md +156 -0
- package/core/skills/react-components/README.md +36 -0
- package/core/skills/react-components/SKILL.md +47 -0
- package/core/skills/react-components/examples/gold-standard-card.tsx +80 -0
- package/core/skills/react-components/package-lock.json +231 -0
- package/core/skills/react-components/package.json +16 -0
- package/core/skills/react-components/resources/architecture-checklist.md +15 -0
- package/core/skills/react-components/resources/component-template.tsx +37 -0
- package/core/skills/react-components/resources/stitch-api-reference.md +14 -0
- package/core/skills/react-components/resources/style-guide.json +27 -0
- package/core/skills/react-components/scripts/fetch-stitch.sh +30 -0
- package/core/skills/react-components/scripts/validate.js +68 -0
- package/core/skills/red-team-tactics/SKILL.md +199 -0
- package/core/skills/remotion/README.md +105 -0
- package/core/skills/remotion/SKILL.md +393 -0
- package/core/skills/remotion/examples/WalkthroughComposition.tsx +78 -0
- package/core/skills/remotion/examples/screens.json +56 -0
- package/core/skills/remotion/resources/composition-checklist.md +124 -0
- package/core/skills/remotion/resources/screen-slide-template.tsx +123 -0
- package/core/skills/remotion/scripts/download-stitch-asset.sh +38 -0
- package/core/skills/seo-fundamentals/SKILL.md +129 -0
- package/core/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/core/skills/server-management/SKILL.md +161 -0
- package/core/skills/session-resilience/SKILL.md +199 -0
- package/core/skills/shadcn-ui/README.md +248 -0
- package/core/skills/shadcn-ui/SKILL.md +326 -0
- package/core/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
- package/core/skills/shadcn-ui/examples/data-table.tsx +313 -0
- package/core/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
- package/core/skills/shadcn-ui/resources/component-catalog.md +481 -0
- package/core/skills/shadcn-ui/resources/customization-guide.md +516 -0
- package/core/skills/shadcn-ui/resources/migration-guide.md +463 -0
- package/core/skills/shadcn-ui/resources/setup-guide.md +412 -0
- package/core/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
- package/core/skills/state-machine/SKILL.md +264 -0
- package/core/skills/stitch-loop/README.md +54 -0
- package/core/skills/stitch-loop/SKILL.md +203 -0
- package/core/skills/stitch-loop/examples/SITE.md +73 -0
- package/core/skills/stitch-loop/examples/next-prompt.md +25 -0
- package/core/skills/stitch-loop/resources/baton-schema.md +61 -0
- package/core/skills/stitch-loop/resources/site-template.md +104 -0
- package/core/skills/systematic-debugging/SKILL.md +109 -0
- package/core/skills/tailwind-patterns/SKILL.md +284 -0
- package/core/skills/tdd-validation/SKILL.md +243 -0
- package/core/skills/tdd-workflow/SKILL.md +284 -0
- package/core/skills/testing-patterns/SKILL.md +196 -0
- package/core/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/core/skills/ui-ux-discovery/SKILL.md +329 -0
- package/core/skills/ui-validation/SKILL.md +190 -0
- package/core/skills/ui-validation/scripts/ui_antipattern_check.py +317 -0
- package/core/skills/verification-gate/SKILL.md +205 -0
- package/core/skills/vulnerability-scanner/SKILL.md +276 -0
- package/core/skills/vulnerability-scanner/checklists.md +121 -0
- package/core/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/core/skills/web-design-guidelines/SKILL.md +57 -0
- package/core/skills/webapp-testing/SKILL.md +187 -0
- package/core/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/core/templates/ARCHITECTURE.template.md +407 -0
- package/core/templates/project-resources.example.json +71 -0
- package/core/workflows/atomic.md +182 -0
- package/core/workflows/brainstorm.md +134 -0
- package/core/workflows/check-task.md +242 -0
- package/core/workflows/copy-collect.md +306 -0
- package/core/workflows/create-agent.md +33 -0
- package/core/workflows/create-skill.md +39 -0
- package/core/workflows/create-workflow.md +33 -0
- package/core/workflows/create.md +92 -0
- package/core/workflows/debug.md +186 -0
- package/core/workflows/demand.md +443 -0
- package/core/workflows/deploy.md +260 -0
- package/core/workflows/discovery.md +267 -0
- package/core/workflows/document.md +272 -0
- package/core/workflows/ds-components.md +296 -0
- package/core/workflows/ds-init.md +58 -0
- package/core/workflows/ds-refactor.md +245 -0
- package/core/workflows/ds-references.md +197 -0
- package/core/workflows/ds-styleguide.md +237 -0
- package/core/workflows/ds-token-diff.md +103 -0
- package/core/workflows/ds-tokens.md +317 -0
- package/core/workflows/ds-validate.md +309 -0
- package/core/workflows/execute.md +483 -0
- package/core/workflows/extract-template.md +278 -0
- package/core/workflows/fix-failed-tests.md +160 -0
- package/core/workflows/init-project.md +386 -0
- package/core/workflows/legacy-project.md +849 -0
- package/core/workflows/log.md +97 -0
- package/core/workflows/new-project.md +610 -0
- package/core/workflows/new-project.md.bak +3292 -0
- package/core/workflows/new-task.md +404 -0
- package/core/workflows/orchestrate.md +237 -0
- package/core/workflows/page-build.md +296 -0
- package/core/workflows/plan.md +89 -0
- package/core/workflows/prd.md +255 -0
- package/core/workflows/preview.md +81 -0
- package/core/workflows/review-page.md +304 -0
- package/core/workflows/status.md +86 -0
- package/core/workflows/stitch.md +226 -0
- package/core/workflows/task-complete.md +473 -0
- package/core/workflows/task-update.md +163 -0
- package/core/workflows/tdd.md +344 -0
- package/core/workflows/test.md +251 -0
- package/core/workflows/ui-ux-pro-max.md +437 -0
- package/core/workflows/ux-mobile-optimize.md +262 -0
- package/core/workflows/ux-mobile-validate.md +297 -0
- package/engine-files/GEMINI.md +69 -0
- package/package.json +47 -0
- package/runtime-adapters/antigravity.js +26 -0
- package/runtime-adapters/claude.js +57 -0
- package/runtime-adapters/codex.js +51 -0
- package/runtime-adapters/copilot.js +51 -0
- package/runtime-adapters/cursor.js +51 -0
- package/runtime-adapters/gemini-cli.js +30 -0
- package/runtime-adapters/opencode.js +51 -0
- package/runtime-adapters/windsurf.js +51 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Bruno Santana
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Flyee
|
|
2
|
+
|
|
3
|
+
> AI Agent Framework — 21 specialist agents, 65+ skills, 40+ workflows. All runtimes.
|
|
4
|
+
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## What is Flyee?
|
|
10
|
+
|
|
11
|
+
`flyee` is a **runtime-agnostic AI agent framework** that gives your coding assistant superpowers. It works with any AI coding tool — Antigravity, Claude Code, Cursor, GitHub Copilot, Codex, Windsurf, Gemini CLI, and more.
|
|
12
|
+
|
|
13
|
+
Think of it as a **brain transplant** for your AI assistant: instead of generic responses, your assistant gets structured knowledge about clean code, testing patterns, design systems, security auditing, and 65+ other specialized skills.
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Auto-detect your runtime and install
|
|
19
|
+
npx flyee
|
|
20
|
+
|
|
21
|
+
# Or specify your runtime
|
|
22
|
+
npx flyee --antigravity # Gemini / Antigravity
|
|
23
|
+
npx flyee --claude # Claude Code
|
|
24
|
+
npx flyee --cursor # Cursor
|
|
25
|
+
npx flyee --copilot # GitHub Copilot
|
|
26
|
+
npx flyee --codex # OpenAI Codex
|
|
27
|
+
npx flyee --windsurf # Windsurf
|
|
28
|
+
npx flyee --gemini # Gemini CLI
|
|
29
|
+
npx flyee --opencode # OpenCode
|
|
30
|
+
npx flyee --all # All detected runtimes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## What You Get
|
|
34
|
+
|
|
35
|
+
### 🤖 21 Specialist Agents
|
|
36
|
+
|
|
37
|
+
| Agent | Domain |
|
|
38
|
+
|-------|--------|
|
|
39
|
+
| `orchestrator` | Multi-agent coordination |
|
|
40
|
+
| `frontend-specialist` | Web UI/UX (React, Next.js) |
|
|
41
|
+
| `backend-specialist` | API, databases, server |
|
|
42
|
+
| `mobile-developer` | iOS, Android, React Native, Flutter |
|
|
43
|
+
| `security-auditor` | OWASP, vulnerability scanning |
|
|
44
|
+
| `debugger` | Systematic 4-phase debugging |
|
|
45
|
+
| `project-planner` | Strategic planning |
|
|
46
|
+
| `game-developer` | Game development |
|
|
47
|
+
| ... and 13 more | Various domains |
|
|
48
|
+
|
|
49
|
+
### 🧩 65+ Modular Skills
|
|
50
|
+
|
|
51
|
+
Skills are knowledge modules that enhance your agent's capabilities:
|
|
52
|
+
|
|
53
|
+
- **Clean Code** — Pragmatic standards, no over-engineering
|
|
54
|
+
- **Testing Patterns** — Unit, integration, E2E strategies
|
|
55
|
+
- **Design System Enforcement** — Token-based UI consistency
|
|
56
|
+
- **SEO Fundamentals** — Core Web Vitals, E-E-A-T
|
|
57
|
+
- **State Machine** — Local project state with crash recovery
|
|
58
|
+
- **Verification Gate** — Mechanical verification (not vibes)
|
|
59
|
+
- **Cost Tracking** — LLM usage monitoring per operation
|
|
60
|
+
- ... and 58 more
|
|
61
|
+
|
|
62
|
+
### 🔄 40+ Automated Workflows
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
/new-task # Add features with tracking
|
|
66
|
+
/execute # Execute tasks (manual or autonomous)
|
|
67
|
+
/task-complete # Complete with verification gates
|
|
68
|
+
/debug # Systematic debugging
|
|
69
|
+
/deploy # Production deployment
|
|
70
|
+
/test # Test generation and execution
|
|
71
|
+
/plan # Strategic planning
|
|
72
|
+
/tdd # Test-Driven Development cycle
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Architecture
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
your-project/
|
|
79
|
+
├── .agent/ ← Installed by flyee (runtime-specific)
|
|
80
|
+
│ ├── agents/ ← 21 specialist agents
|
|
81
|
+
│ ├── skills/ ← 65+ modular skills
|
|
82
|
+
│ ├── workflows/ ← 40+ automated workflows
|
|
83
|
+
│ ├── scripts/ ← Automation scripts
|
|
84
|
+
│ └── bridge/ ← Optional: Flyee SaaS sync
|
|
85
|
+
├── .flyee/ ← Runtime state (auto-created)
|
|
86
|
+
│ ├── STATE.md ← "Where am I?" dashboard
|
|
87
|
+
│ ├── DECISIONS.md ← Append-only decision log
|
|
88
|
+
│ └── sprints/ ← Work hierarchy
|
|
89
|
+
├── GEMINI.md ← Engine file (or CLAUDE.md, etc.)
|
|
90
|
+
└── your code...
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Optional: Flyee SaaS Integration
|
|
94
|
+
|
|
95
|
+
Connect to the [Flyee Platform](https://flyee.dev) for team collaboration:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Configure connection
|
|
99
|
+
npx flyee --connect <api-key>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
When connected, you get:
|
|
103
|
+
- 📊 Team dashboard with project progress
|
|
104
|
+
- 🔄 Task sync across team members
|
|
105
|
+
- 💰 Cost analytics and budget tracking
|
|
106
|
+
- 📈 Gantt visualization of project timeline
|
|
107
|
+
- 🎯 OKR management and alignment
|
|
108
|
+
|
|
109
|
+
Without SaaS, `flyee` works **100% offline** with local state in `.flyee/`.
|
|
110
|
+
|
|
111
|
+
## Supported Runtimes
|
|
112
|
+
|
|
113
|
+
| Runtime | Status | Config Dir | Engine File |
|
|
114
|
+
|---------|--------|-----------|-------------|
|
|
115
|
+
| Antigravity (Gemini) | ✅ | `.agent/` | `GEMINI.md` |
|
|
116
|
+
| Claude Code | ✅ | `.claude/` | `CLAUDE.md` |
|
|
117
|
+
| Cursor | ✅ | `.cursor/` | `.cursorrules` |
|
|
118
|
+
| GitHub Copilot | ✅ | `.github/` | `COPILOT.md` |
|
|
119
|
+
| OpenAI Codex | ✅ | `.codex/` | `CODEX.md` |
|
|
120
|
+
| Windsurf | ✅ | `.windsurf/` | `WINDSURF.md` |
|
|
121
|
+
| Gemini CLI | ✅ | `.gemini/` | `GEMINI.md` |
|
|
122
|
+
| OpenCode | ✅ | `.opencode/` | `OPENCODE.md` |
|
|
123
|
+
|
|
124
|
+
## Contributing
|
|
125
|
+
|
|
126
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
127
|
+
|
|
128
|
+
## License
|
|
129
|
+
|
|
130
|
+
MIT — see [LICENSE](LICENSE).
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
Built with ❤️ by [Bruno Santana](https://github.com/BrunoSantanaDeveloper)
|
package/bin/install.js
ADDED
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Flyee Installer
|
|
5
|
+
*
|
|
6
|
+
* Installs the flyee agent framework into any project.
|
|
7
|
+
* Supports multiple AI coding runtimes.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* npx flyee # Auto-detect runtime
|
|
11
|
+
* npx flyee --antigravity # Install for Antigravity/Gemini
|
|
12
|
+
* npx flyee --claude # Install for Claude Code
|
|
13
|
+
* npx flyee --cursor # Install for Cursor
|
|
14
|
+
* npx flyee --copilot # Install for GitHub Copilot
|
|
15
|
+
* npx flyee --codex # Install for OpenAI Codex
|
|
16
|
+
* npx flyee --windsurf # Install for Windsurf
|
|
17
|
+
* npx flyee --gemini # Install for Gemini CLI
|
|
18
|
+
* npx flyee --opencode # Install for OpenCode
|
|
19
|
+
* npx flyee --all # Install for all detected runtimes
|
|
20
|
+
* npx flyee --dry-run # Preview without writing files
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import { existsSync, mkdirSync, cpSync, readFileSync, writeFileSync, readdirSync, statSync } from 'node:fs';
|
|
24
|
+
import { join, dirname, resolve, relative } from 'node:path';
|
|
25
|
+
import { fileURLToPath } from 'node:url';
|
|
26
|
+
|
|
27
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
28
|
+
const __dirname = dirname(__filename);
|
|
29
|
+
const PACKAGE_ROOT = resolve(__dirname, '..');
|
|
30
|
+
const CORE_DIR = join(PACKAGE_ROOT, 'core');
|
|
31
|
+
const ENGINE_FILES_DIR = join(PACKAGE_ROOT, 'engine-files');
|
|
32
|
+
const ADAPTERS_DIR = join(PACKAGE_ROOT, 'runtime-adapters');
|
|
33
|
+
|
|
34
|
+
// ─── Runtime Definitions ────────────────────────────────────────────────────
|
|
35
|
+
|
|
36
|
+
const RUNTIMES = {
|
|
37
|
+
antigravity: {
|
|
38
|
+
name: 'Antigravity (Gemini)',
|
|
39
|
+
dirName: '.agent',
|
|
40
|
+
engineFile: 'GEMINI.md',
|
|
41
|
+
engineFileTarget: 'GEMINI.md', // where to place in project root
|
|
42
|
+
detectFiles: ['GEMINI.md', '.agent/ARCHITECTURE.md'],
|
|
43
|
+
adapterFile: 'antigravity.js',
|
|
44
|
+
},
|
|
45
|
+
claude: {
|
|
46
|
+
name: 'Claude Code',
|
|
47
|
+
dirName: '.claude',
|
|
48
|
+
engineFile: 'CLAUDE.md',
|
|
49
|
+
engineFileTarget: 'CLAUDE.md',
|
|
50
|
+
detectFiles: ['CLAUDE.md', '.claude/settings.json'],
|
|
51
|
+
adapterFile: 'claude.js',
|
|
52
|
+
},
|
|
53
|
+
cursor: {
|
|
54
|
+
name: 'Cursor',
|
|
55
|
+
dirName: '.cursor',
|
|
56
|
+
engineFile: 'CURSOR.md',
|
|
57
|
+
engineFileTarget: '.cursorrules',
|
|
58
|
+
detectFiles: ['.cursorrules', '.cursor/settings.json'],
|
|
59
|
+
adapterFile: 'cursor.js',
|
|
60
|
+
},
|
|
61
|
+
copilot: {
|
|
62
|
+
name: 'GitHub Copilot',
|
|
63
|
+
dirName: '.github',
|
|
64
|
+
engineFile: 'COPILOT.md',
|
|
65
|
+
engineFileTarget: '.github/copilot-instructions.md',
|
|
66
|
+
detectFiles: ['.github/copilot-instructions.md'],
|
|
67
|
+
adapterFile: 'copilot.js',
|
|
68
|
+
},
|
|
69
|
+
codex: {
|
|
70
|
+
name: 'OpenAI Codex',
|
|
71
|
+
dirName: '.codex',
|
|
72
|
+
engineFile: 'CODEX.md',
|
|
73
|
+
engineFileTarget: 'AGENTS.md',
|
|
74
|
+
detectFiles: ['AGENTS.md', 'codex.json'],
|
|
75
|
+
adapterFile: 'codex.js',
|
|
76
|
+
},
|
|
77
|
+
windsurf: {
|
|
78
|
+
name: 'Windsurf',
|
|
79
|
+
dirName: '.windsurf',
|
|
80
|
+
engineFile: 'WINDSURF.md',
|
|
81
|
+
engineFileTarget: '.windsurfrules',
|
|
82
|
+
detectFiles: ['.windsurfrules', '.windsurf/settings.json'],
|
|
83
|
+
adapterFile: 'windsurf.js',
|
|
84
|
+
},
|
|
85
|
+
gemini: {
|
|
86
|
+
name: 'Gemini CLI',
|
|
87
|
+
dirName: '.gemini',
|
|
88
|
+
engineFile: 'GEMINI.md',
|
|
89
|
+
engineFileTarget: 'GEMINI.md',
|
|
90
|
+
detectFiles: ['GEMINI.md', '.gemini/settings.json'],
|
|
91
|
+
adapterFile: 'gemini-cli.js',
|
|
92
|
+
},
|
|
93
|
+
opencode: {
|
|
94
|
+
name: 'OpenCode',
|
|
95
|
+
dirName: '.opencode',
|
|
96
|
+
engineFile: 'OPENCODE.md',
|
|
97
|
+
engineFileTarget: 'INSTRUCTIONS.md',
|
|
98
|
+
detectFiles: ['INSTRUCTIONS.md', 'opencode.json'],
|
|
99
|
+
adapterFile: 'opencode.js',
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// ─── CLI Argument Parsing ───────────────────────────────────────────────────
|
|
104
|
+
|
|
105
|
+
function parseArgs() {
|
|
106
|
+
const args = process.argv.slice(2);
|
|
107
|
+
const flags = {
|
|
108
|
+
runtimes: [],
|
|
109
|
+
dryRun: false,
|
|
110
|
+
all: false,
|
|
111
|
+
help: false,
|
|
112
|
+
projectDir: process.cwd(),
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
for (const arg of args) {
|
|
116
|
+
if (arg === '--help' || arg === '-h') flags.help = true;
|
|
117
|
+
else if (arg === '--dry-run') flags.dryRun = true;
|
|
118
|
+
else if (arg === '--all') flags.all = true;
|
|
119
|
+
else if (arg.startsWith('--')) {
|
|
120
|
+
const runtime = arg.slice(2);
|
|
121
|
+
if (RUNTIMES[runtime]) flags.runtimes.push(runtime);
|
|
122
|
+
else {
|
|
123
|
+
console.error(`❌ Unknown runtime: ${runtime}`);
|
|
124
|
+
console.error(` Available: ${Object.keys(RUNTIMES).join(', ')}`);
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return flags;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function printHelp() {
|
|
134
|
+
console.log(`
|
|
135
|
+
Flyee — AI Agent Framework Installer
|
|
136
|
+
|
|
137
|
+
Usage:
|
|
138
|
+
npx flyee [options]
|
|
139
|
+
|
|
140
|
+
Options:
|
|
141
|
+
--antigravity Install for Antigravity (Gemini)
|
|
142
|
+
--claude Install for Claude Code
|
|
143
|
+
--cursor Install for Cursor
|
|
144
|
+
--copilot Install for GitHub Copilot
|
|
145
|
+
--codex Install for OpenAI Codex
|
|
146
|
+
--windsurf Install for Windsurf
|
|
147
|
+
--gemini Install for Gemini CLI
|
|
148
|
+
--opencode Install for OpenCode
|
|
149
|
+
--all Install for all detected runtimes
|
|
150
|
+
--dry-run Preview without writing files
|
|
151
|
+
-h, --help Show this help message
|
|
152
|
+
|
|
153
|
+
Examples:
|
|
154
|
+
npx flyee # Auto-detect & install
|
|
155
|
+
npx flyee --claude # Install for Claude Code
|
|
156
|
+
npx flyee --claude --cursor # Install for both
|
|
157
|
+
`);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// ─── Runtime Detection ──────────────────────────────────────────────────────
|
|
161
|
+
|
|
162
|
+
function detectRuntimes(projectDir) {
|
|
163
|
+
const detected = [];
|
|
164
|
+
|
|
165
|
+
for (const [key, config] of Object.entries(RUNTIMES)) {
|
|
166
|
+
for (const file of config.detectFiles) {
|
|
167
|
+
if (existsSync(join(projectDir, file))) {
|
|
168
|
+
detected.push(key);
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return detected;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// ─── Content Conversion ─────────────────────────────────────────────────────
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Load a runtime adapter module.
|
|
181
|
+
* Each adapter exports a convert(content, config) function that transforms
|
|
182
|
+
* canonical content (using .agent/ paths) to runtime-specific content.
|
|
183
|
+
*/
|
|
184
|
+
async function loadAdapter(runtimeKey) {
|
|
185
|
+
const config = RUNTIMES[runtimeKey];
|
|
186
|
+
const adapterPath = join(ADAPTERS_DIR, config.adapterFile);
|
|
187
|
+
|
|
188
|
+
if (!existsSync(adapterPath)) {
|
|
189
|
+
console.warn(`⚠️ Adapter not found for ${config.name}: ${config.adapterFile}`);
|
|
190
|
+
console.warn(` Will install canonical content without conversion.`);
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
return await import(adapterPath);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Convert canonical content to runtime-specific format.
|
|
199
|
+
* Canonical format uses .agent/ paths — adapters transform these.
|
|
200
|
+
*/
|
|
201
|
+
function convertContent(content, adapter, runtimeConfig) {
|
|
202
|
+
if (!adapter || !adapter.convert) return content;
|
|
203
|
+
return adapter.convert(content, runtimeConfig);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// ─── File Operations ────────────────────────────────────────────────────────
|
|
207
|
+
|
|
208
|
+
function copyDirRecursive(src, dest, adapter, runtimeConfig, dryRun, stats) {
|
|
209
|
+
const entries = readdirSync(src, { withFileTypes: true });
|
|
210
|
+
|
|
211
|
+
for (const entry of entries) {
|
|
212
|
+
const srcPath = join(src, entry.name);
|
|
213
|
+
const destPath = join(dest, entry.name);
|
|
214
|
+
|
|
215
|
+
if (entry.isDirectory()) {
|
|
216
|
+
if (!dryRun) mkdirSync(destPath, { recursive: true });
|
|
217
|
+
copyDirRecursive(srcPath, destPath, adapter, runtimeConfig, dryRun, stats);
|
|
218
|
+
} else {
|
|
219
|
+
stats.files++;
|
|
220
|
+
const content = readFileSync(srcPath, 'utf-8');
|
|
221
|
+
const converted = (entry.name.endsWith('.md') || entry.name.endsWith('.py'))
|
|
222
|
+
? convertContent(content, adapter, runtimeConfig)
|
|
223
|
+
: content;
|
|
224
|
+
|
|
225
|
+
if (dryRun) {
|
|
226
|
+
const rel = relative(process.cwd(), destPath);
|
|
227
|
+
console.log(` 📄 ${rel}`);
|
|
228
|
+
} else {
|
|
229
|
+
mkdirSync(dirname(destPath), { recursive: true });
|
|
230
|
+
writeFileSync(destPath, converted, 'utf-8');
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// ─── Installation ───────────────────────────────────────────────────────────
|
|
237
|
+
|
|
238
|
+
async function installForRuntime(runtimeKey, projectDir, dryRun) {
|
|
239
|
+
const config = RUNTIMES[runtimeKey];
|
|
240
|
+
const targetDir = join(projectDir, config.dirName);
|
|
241
|
+
const stats = { files: 0 };
|
|
242
|
+
|
|
243
|
+
console.log(`\n🔧 Installing for ${config.name}...`);
|
|
244
|
+
console.log(` Target: ${config.dirName}/`);
|
|
245
|
+
|
|
246
|
+
// Load adapter
|
|
247
|
+
const adapter = await loadAdapter(runtimeKey);
|
|
248
|
+
|
|
249
|
+
// Create target directory
|
|
250
|
+
if (!dryRun) mkdirSync(targetDir, { recursive: true });
|
|
251
|
+
|
|
252
|
+
// Copy core content
|
|
253
|
+
const coreDirs = ['agents', 'skills', 'workflows', 'scripts', 'templates'];
|
|
254
|
+
for (const dir of coreDirs) {
|
|
255
|
+
const srcDir = join(CORE_DIR, dir);
|
|
256
|
+
if (!existsSync(srcDir)) continue;
|
|
257
|
+
|
|
258
|
+
const destDir = join(targetDir, dir);
|
|
259
|
+
if (!dryRun) mkdirSync(destDir, { recursive: true });
|
|
260
|
+
copyDirRecursive(srcDir, destDir, adapter, config, dryRun, stats);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Copy bridge (as flyee-bridge/ subdirectory)
|
|
264
|
+
const bridgeSrc = join(PACKAGE_ROOT, 'bridge');
|
|
265
|
+
const bridgeDest = join(targetDir, 'flyee-bridge');
|
|
266
|
+
if (existsSync(bridgeSrc)) {
|
|
267
|
+
if (!dryRun) mkdirSync(bridgeDest, { recursive: true });
|
|
268
|
+
copyDirRecursive(bridgeSrc, bridgeDest, adapter, config, dryRun, stats);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// Generate engine file (always use GEMINI.md as canonical source, adapter converts)
|
|
272
|
+
const engineFileSrc = join(ENGINE_FILES_DIR, 'GEMINI.md');
|
|
273
|
+
const engineFileDest = join(projectDir, config.engineFileTarget);
|
|
274
|
+
|
|
275
|
+
if (existsSync(engineFileSrc)) {
|
|
276
|
+
if (dryRun) {
|
|
277
|
+
console.log(` 📄 ${config.engineFileTarget}`);
|
|
278
|
+
} else {
|
|
279
|
+
const engineContent = readFileSync(engineFileSrc, 'utf-8');
|
|
280
|
+
const converted = convertContent(engineContent, adapter, config);
|
|
281
|
+
mkdirSync(dirname(engineFileDest), { recursive: true });
|
|
282
|
+
writeFileSync(engineFileDest, converted, 'utf-8');
|
|
283
|
+
}
|
|
284
|
+
stats.files++;
|
|
285
|
+
} else {
|
|
286
|
+
console.warn(`⚠️ Engine file source not found: ${engineFileSrc}`);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
console.log(` ✅ ${stats.files} files ${dryRun ? 'would be' : ''} installed`);
|
|
290
|
+
return stats;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// ─── Main ───────────────────────────────────────────────────────────────────
|
|
294
|
+
|
|
295
|
+
async function main() {
|
|
296
|
+
const flags = parseArgs();
|
|
297
|
+
|
|
298
|
+
if (flags.help) {
|
|
299
|
+
printHelp();
|
|
300
|
+
process.exit(0);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
console.log(`
|
|
304
|
+
╔═══════════════════════════════════════╗
|
|
305
|
+
║ flyee installer ║
|
|
306
|
+
║ AI Agent Framework — All Runtimes ║
|
|
307
|
+
╚═══════════════════════════════════════╝
|
|
308
|
+
`);
|
|
309
|
+
|
|
310
|
+
const projectDir = flags.projectDir;
|
|
311
|
+
console.log(`📁 Project: ${projectDir}`);
|
|
312
|
+
|
|
313
|
+
// Determine which runtimes to install
|
|
314
|
+
let targetRuntimes = flags.runtimes;
|
|
315
|
+
|
|
316
|
+
if (flags.all) {
|
|
317
|
+
targetRuntimes = Object.keys(RUNTIMES);
|
|
318
|
+
console.log(`🌐 Installing for ALL runtimes`);
|
|
319
|
+
} else if (targetRuntimes.length === 0) {
|
|
320
|
+
// Auto-detect
|
|
321
|
+
const detected = detectRuntimes(projectDir);
|
|
322
|
+
if (detected.length > 0) {
|
|
323
|
+
console.log(`🔍 Auto-detected runtimes: ${detected.map(r => RUNTIMES[r].name).join(', ')}`);
|
|
324
|
+
targetRuntimes = detected;
|
|
325
|
+
} else {
|
|
326
|
+
console.log(`🔍 No runtime detected. Installing for Antigravity (default).`);
|
|
327
|
+
targetRuntimes = ['antigravity'];
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
if (flags.dryRun) {
|
|
332
|
+
console.log(`\n🏜️ DRY RUN — no files will be written\n`);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
let totalFiles = 0;
|
|
336
|
+
|
|
337
|
+
for (const runtime of targetRuntimes) {
|
|
338
|
+
const stats = await installForRuntime(runtime, projectDir, flags.dryRun);
|
|
339
|
+
totalFiles += stats.files;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
console.log(`\n${'═'.repeat(45)}`);
|
|
343
|
+
console.log(`✨ Done! ${totalFiles} files ${flags.dryRun ? 'would be' : ''} installed for ${targetRuntimes.length} runtime(s).`);
|
|
344
|
+
|
|
345
|
+
if (!flags.dryRun) {
|
|
346
|
+
console.log(`\n📋 Next steps:`);
|
|
347
|
+
console.log(` 1. Open your AI coding assistant`);
|
|
348
|
+
console.log(` 2. It will automatically detect the flyee framework`);
|
|
349
|
+
console.log(` 3. Try: "explain the project structure"`);
|
|
350
|
+
console.log(`\n💡 Optional: Connect to Flyee SaaS with 'npx flyee --connect <api-key>'`);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
main().catch((err) => {
|
|
355
|
+
console.error(`\n❌ Installation failed:`, err.message);
|
|
356
|
+
process.exit(1);
|
|
357
|
+
});
|