Composable agent runtime monorepo built on the pi ecosystem
Find a file
Mario Zechner a74c5da112 Initial monorepo setup with npm workspaces and dual TypeScript configuration
- Set up npm workspaces for three packages: pi-tui, pi-agent, and pi (pods)
- Implemented dual TypeScript configuration:
  - Root tsconfig.json with path mappings for development and type checking
  - Package-specific tsconfig.build.json for clean production builds
- Configured lockstep versioning with sync script for inter-package dependencies
- Added comprehensive documentation for development and publishing workflows
- All packages at version 0.5.0 ready for npm publishing
2025-08-09 17:18:38 +02:00
packages Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
scripts Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
todos Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
.gitignore Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
.npmrc Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
biome.json Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
LICENSE Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
models.js Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
package-lock.json Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
package.json Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
PUBLISHING.md Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
README.md Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
tsconfig.base.json Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
tsconfig.json Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00

Pi Monorepo

A collection of tools for managing LLM deployments and building AI agents.

Packages

Development

This is a monorepo using npm workspaces for package management and a dual TypeScript configuration for development and building.

Setup

# Install all dependencies
npm install

# Build all packages (required for production use)
npm run build

# Or run directly with tsx during development (no build needed)
cd packages/pods && npx tsx src/cli.ts
cd packages/agent && npx tsx src/cli.ts

Common Commands

# Clean all build artifacts and tsconfig.tsbuildinfo files
npm run clean

# Build all packages in dependency order
npm run build

# Run biome checks and TypeScript type checking (no build required)
npm run check

# Run tests (if present)
npm run test

Package Dependencies

The packages have the following dependency structure:

pi-tui -> pi-agent -> pi

TypeScript Configuration

The monorepo uses a dual TypeScript configuration approach:

  • Root tsconfig.json: Contains path mappings for all packages, used for type checking and development with tsx
  • Package tsconfig.build.json: Clean build configuration with rootDir and outDir, used for production builds

This setup allows:

  • Type checking without building (npm run check works immediately)
  • Running source files directly with tsx during development
  • Clean, organized build outputs for publishing

Versioning

All packages use lockstep versioning - they share the same version number:

# Bump patch version (0.5.0 -> 0.5.1)
npm run version:patch

# Bump minor version (0.5.0 -> 0.6.0)
npm run version:minor

# Bump major version (0.5.0 -> 1.0.0)
npm run version:major

These commands automatically:

  1. Update all package versions
  2. Sync inter-package dependency versions
  3. Update package-lock.json

Publishing

See PUBLISHING.md for the complete publishing workflow.

Quick version:

# Dry run to see what would be published
npm run publish:dry

# Publish all packages to npm
npm run publish:all

License

MIT