Mario Zechner 0c6c0f34dd mom: add working indicator and improve stop command
Working Indicator:
- Add '...' to channel messages while mom is processing
- Automatically removed when work completes or stops
- Applies to working message, not status messages

Improved Stop Command:
- Posts separate 'Stopping...' message that updates to 'Stopped'
- Original working message continues updating with tool results
- Clean separation between status and work output
- Properly handles abort during multi-step operations

Clean Stop Reason Handling:
- Agent run() now returns { stopReason } instead of throwing
- Handle 'aborted', 'error', 'stop', 'length', 'toolUse' cases cleanly
- No more exception-based control flow
- Track stopReason from assistant message.stopReason field

New SlackContext Methods:
- replaceMessage() - replace message text instead of appending
- setWorking() - add/remove working indicator
- Improved context tracking for stop command updates
0c6c0f34dd · 2025-11-26 20:49:02 +01:00
511 Commits
2025-11-24 18:41:45 +01:00

Pi Monorepo

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 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-proxy CORS proxy for browser-based LLM API calls
@mariozechner/pi CLI for managing vLLM deployments on GPU pods

Development

Setup

npm install          # Install all dependencies
npm run build        # Build all packages
npm run check        # Lint, format, and type check

Development

Start watch builds for all packages:

npm run dev

Then run with tsx:

cd packages/coding-agent && npx tsx src/cli.ts
cd packages/pods && npx tsx src/cli.ts

Versioning (Lockstep)

All packages MUST always have the same version number. Use these commands to bump versions:

npm run version:patch    # 0.7.5 -> 0.7.6
npm run version:minor    # 0.7.5 -> 0.8.0
npm run version:major    # 0.7.5 -> 1.0.0

These commands:

  1. Update all package versions to the same number
  2. Update inter-package dependency versions (e.g., pi-agent depends on pi-ai@^0.7.7)
  3. Update package-lock.json

Never manually edit version numbers. The lockstep system ensures consistency across the monorepo.

Publishing

Complete release process:

  1. Update CHANGELOG.md (if changes affect coding-agent):

    # Add your changes to the [Unreleased] section in packages/coding-agent/CHANGELOG.md
    
  2. Bump version (all packages):

    npm run version:patch    # For bug fixes
    npm run version:minor    # For new features
    npm run version:major    # For breaking changes
    
  3. Update CHANGELOG.md version (if changes affect coding-agent):

    # Move the [Unreleased] section to the new version number with today's date
    # e.g., ## [0.7.16] - 2025-11-17
    
  4. Commit and tag:

    git add .
    git commit -m "Release v0.7.16"
    git tag v0.7.16
    git push origin main
    git push origin v0.7.16
    
  5. Publish to npm:

    npm run publish        # Publish all packages to npm
    

License

MIT

S
Description
No description provided
Readme MIT 163 MiB
Languages
TypeScript 93.5%
JavaScript 5.7%
CSS 0.3%
Shell 0.3%
C 0.1%