mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 12:03:49 +00:00
Composable agent runtime monorepo built on the pi ecosystem
- Add maxLinesRendered to track terminal's working area (grows with content, only resets on full clear) - Fix viewport calculation: use maxLinesRendered instead of cursorRow for correct viewport bounds - Separate cursorRow (end of content for viewport calc) from hardwareCursorRow (actual cursor position) - Refactor full render into fullRender(clear) helper to reduce duplication - Fix shrink-clearing: properly clear extra lines when content shrinks - Add PI_TUI_DEBUG=1 env var for render debugging (writes to /tmp/tui/) The core issue was that after partial renders (e.g., overlay show/hide), the viewport calculation used cursorRow which reflected where rendering stopped, not where content ended. This caused incorrect viewport bounds, leading to cursor movement into scrollback (unreachable) or rendering at wrong positions. Additionally, when content shrank (e.g., selector dismissed), the terminal still had the old lines as blank space. maxLinesRendered tracks this so viewport calculations account for the terminal's actual working area. |
||
|---|---|---|
| .github | ||
| .husky | ||
| .pi | ||
| packages | ||
| scripts | ||
| .gitignore | ||
| AGENTS.md | ||
| biome.json | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| pi-mono.code-workspace | ||
| pi-test.sh | ||
| README.md | ||
| test.sh | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
Pi Monorepo
Looking for the pi coding agent? See packages/coding-agent for installation and usage.
Tools for building AI agents and managing LLM deployments.
Packages
| Package | Description |
|---|---|
| @mariozechner/pi-ai | Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.) |
| @mariozechner/pi-agent-core | Agent runtime with tool calling and state management |
| @mariozechner/pi-coding-agent | Interactive coding agent CLI |
| @mariozechner/pi-mom | Slack bot that delegates messages to the pi coding agent |
| @mariozechner/pi-tui | Terminal UI library with differential rendering |
| @mariozechner/pi-web-ui | Web components for AI chat interfaces |
| @mariozechner/pi-pods | CLI for managing vLLM deployments on GPU pods |
Contributing
See CONTRIBUTING.md for contribution guidelines and AGENTS.md for project-specific rules (for both humans and agents).
Development
npm install # Install all dependencies
npm run build # Build all packages
npm run check # Lint, format, and type check
./test.sh # Run tests (skips LLM-dependent tests without API keys)
./pi-test.sh # Run pi from sources (must be run from repo root)
Note:
npm run checkrequiresnpm run buildto be run first. The web-ui package usestscwhich needs compiled.d.tsfiles from dependencies.
License
MIT