Composable agent runtime monorepo built on the pi ecosystem
Find a file
Mario Zechner 98ea763d64 Intercept iframe navigation and open links externally
- Add navigation interceptor script that prevents all iframe navigation
- Intercept link clicks, form submissions, and window.location changes
- Send open-external-url messages to parent window
- Use chrome.tabs.create() in extension context, window.open() fallback
- Fix font-size workaround to use 'initial' instead of hardcoded 16px
- Document Chrome extension font-size bug with Stack Overflow reference

This prevents HTML artifacts from navigating away when users click links,
which would break the sandbox message system. All links now open in new
Chrome tabs instead.
2025-10-11 19:13:04 +02:00
.husky Add husky pre-commit hook for formatting and type checking 2025-08-11 21:15:37 +02:00
packages Intercept iframe navigation and open links externally 2025-10-11 19:13:04 +02:00
scripts Proxy package 2025-10-05 19:02:15 +02:00
.gitignore feat: add cross-browser extension with AI reading assistant 2025-10-01 04:33:56 +02:00
.npmrc Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
biome.json Fix lints. 2025-10-03 23:21:59 +02:00
CLAUDE.md Clean up browser-extension references from monorepo 2025-10-06 18:40:04 +02:00
LICENSE Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
package-lock.json Add ollama dependency and dialog backdrop blur 2025-10-08 17:49:56 +02:00
package.json Remove browser-extension package (migrated to separate sitegeist repo) 2025-10-06 18:38:25 +02:00
pi-mono.code-workspace Rename ChromeStorageBackend to WebExtensionStorageBackend for cross-browser support 2025-10-06 23:48:43 +02:00
README.md Clean up browser-extension references from monorepo 2025-10-06 18:40:04 +02:00
tsconfig.base.json feat: add cross-browser extension with AI reading assistant 2025-10-01 04:33:56 +02:00
tsconfig.json Clean up browser-extension references from monorepo 2025-10-06 18:40:04 +02:00

Pi Monorepo

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

Packages

Related:

  • sitegeist - Browser extension for AI-powered web navigation (uses pi-ai and pi-web-ui)

Development

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

Common Commands

# Install all dependencies
npm install

# Build all packages (required for publishing to NPM)
npm run build

# Clean out dist/ folders in all packages
npm run clean

# Run linting, formatting, and tsc typechecking (no build needed)
npm run check

# 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

Package Dependencies

The packages have the following dependency structure:

pi-tui -> pi-agent -> pi

When new packages are added, the must be inserted in the correct order in the build script in package.json.

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

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

# Publish all packages to npm
npm run publish

License

MIT