Gati Project Structure
This document describes the monorepo structure for the Gati framework.
Directory Layout
gati/
├── .github/ # GitHub configuration (workflows, templates)
│ ├── copilot-instructions.md
│ ├── M1_PRIORITY_REVIEW.md
│ └── workflows/
│
├── docs/ # Documentation
│ ├── getting-started.md (Coming in Issue #15)
│ ├── handlers.md (Coming in Issue #16)
│ ├── modules.md (Coming in Issue #17)
│ └── architecture.md (Coming in Issue #18)
│
├── examples/ # Example applications
│ └── hello-world/ (Coming in Issue #14)
│
├── packages/ # Published npm packages
│ ├── @gati-framework/core/ (Future)
│ ├── @gati/aws/ (M2)
│ ├── @gati/sdk/ (M5)
│ └── ...
│
├── src/ # Main framework source code
│ ├── cli/ # CLI tools (gati create, dev, build)
│ │ ├── index.ts (Issue #9, #10, #11)
│ │ ├── commands/
│ │ └── utils/
│ │
│ ├── runtime/ # Core runtime engine
│ │ ├── app-core.ts (Issue #8)
│ │ ├── handler-engine.ts (Issue #1)
│ │ ├── route-manager.ts (Issue #6)
│ │ ├── module-loader.ts (Issue #5)
│ │ ├── context-manager.ts (Issue #7)
│ │ └── types/
│ │ ├── request.ts (Issue #1)
│ │ ├── response.ts (Issue #1)
│ │ ├── context.ts (Issue #7)
│ │ ├── handler.ts (Issue #1)
│ │ ├── module.ts (Issue #5)
│ │ └── route.ts (Issue #6)
│ │
│ └── plugins/ # Cloud provider plugins
│ ├── aws/ (M2)
│ ├── gcp/ (Future)
│ └── azure/ (Future)
│
├── tests/ # Test suites
│ ├── unit/ # Unit tests (isolated functions)
│ ├── integration/ # Integration tests (multiple components)
│ └── e2e/ # End-to-end tests (full request flow)
│
├── .gitignore # Git ignore configuration
├── .npmignore # NPM ignore configuration
├── package.json # Root package configuration
├── pnpm-workspace.yaml # PNPM workspace configuration
├── tsconfig.json # TypeScript configuration (Issue #13)
├── vitest.config.ts # Vitest test configuration (Future)
├── AGENTIC_DEVELOPMENT.md # Agentic workflow guide
├── MILESTONES.md # Project milestones
├── README.MD # Project overview
└── ROADMAP.MD # Development roadmapPurpose of Each Directory
/src
Main framework source code organized by functional area:
/cli: Command-line tools for developers (gati create,gati dev, etc.)/runtime: Core runtime engine (handlers, modules, routing, contexts)/plugins: Cloud provider integrations (AWS, GCP, Azure)
/packages
Published npm packages that will be distributed:
@gati-framework/core: Main framework package@gati/aws: AWS deployment plugin@gati/gcp: GCP deployment plugin@gati/sdk: Generated SDK client utilities
/examples
Example applications demonstrating Gati usage:
hello-world: Basic example with handlers and modules- (Future): More complex examples for different use cases
/tests
Test suites organized by test type:
unit/: Fast, isolated tests for individual functionsintegration/: Tests for multiple components working togethere2e/: Full end-to-end request flow tests
/docs
User and developer documentation:
- Getting started guides
- API references
- Tutorials
- Architecture documentation
/.github
GitHub-specific configuration:
- Workflows (CI/CD)
- Issue templates
- PR templates
- Copilot instructions
Workspace Configuration
This is a pnpm monorepo with workspace support:
- Root
package.jsonmanages shared dependencies and scripts pnpm-workspace.yamldefines workspace packages- Each package in
/packageshas its ownpackage.json - Examples in
/examplescan be run independently
Development Workflow
bash
# Install dependencies
pnpm install
# Run in development mode
pnpm dev
# Build all packages
pnpm build
# Run tests
pnpm test
# Type checking
pnpm typecheck
# Linting
pnpm lintIssue Tracking
Each file/directory references the GitHub issue where it will be implemented:
- See inline comments for issue numbers
- Check MILESTONES.md for detailed breakdown
- Check M1_PRIORITY_REVIEW.md for priorities
Next Steps
- Issue #13: Configure TypeScript (tsconfig.json)
- Issue #7: Implement Context Managers
- Issue #1: Implement Handler Execution Pipeline
- Continue with M1 issues according to priority review
Last Updated: 2025-11-09
Status: ✅ Monorepo structure complete (Issue #12)