Skip to content

Add Pi progress display and tool use formatting#833

Draft
dersam wants to merge 1 commit intodersam/pi-provider-invocation-executionfrom
dersam/pi-provider-progress-display
Draft

Add Pi progress display and tool use formatting#833
dersam wants to merge 1 commit intodersam/pi-provider-invocation-executionfrom
dersam/pi-provider-progress-display

Conversation

@dersam
Copy link
Contributor

@dersam dersam commented Mar 2, 2026

Add ToolUse and ToolResult formatter classes for human-readable progress
display during Pi agent execution, mirroring Claude's pattern.

ToolUse provides specialized formatting for known Pi tools:

  • bash: shows command
  • read/write/edit: shows file path
  • grep: shows pattern and optional path
  • find: shows pattern and optional directory
  • ls: shows path
  • Unknown tools: shows name and arguments hash

ToolResult formats tool execution results with:

  • OK/ERROR status indicator
  • Truncated content preview (max 200 chars, whitespace collapsed)

Progress display enhancements:

  • MessageUpdateMessage#format now delegates toolcall_end events to ToolUse
  • TurnStartMessage#format shows '--- turn start ---' marker
  • TurnEndMessage#format shows model, token counts, and cost per turn
  • ToolExecutionStartMessage#format shows '⚙ executing tool...'
  • ToolExecutionEndMessage#format shows '⚙ tool execution complete'
  • PiInvocation#handle_message now calls format on all message types
    (not just MessageUpdateMessage) when show_progress is enabled

37 new tests (162 total Pi tests), full suite: 1037 tests.

Copy link
Contributor Author

dersam commented Mar 2, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

Add ToolUse and ToolResult formatter classes for human-readable progress
display during Pi agent execution, mirroring Claude's pattern.

ToolUse provides specialized formatting for known Pi tools:
- bash: shows command
- read/write/edit: shows file path
- grep: shows pattern and optional path
- find: shows pattern and optional directory
- ls: shows path
- Unknown tools: shows name and arguments hash

ToolResult formats tool execution results with:
- OK/ERROR status indicator
- Truncated content preview (max 200 chars, whitespace collapsed)

Progress display enhancements:
- MessageUpdateMessage#format now delegates toolcall_end events to ToolUse
- TurnStartMessage#format shows '--- turn start ---' marker
- TurnEndMessage#format shows model, token counts, and cost per turn
- ToolExecutionStartMessage#format shows '⚙ executing tool...'
- ToolExecutionEndMessage#format shows '⚙ tool execution complete'
- PiInvocation#handle_message now calls format on all message types
  (not just MessageUpdateMessage) when show_progress is enabled

37 new tests (162 total Pi tests), full suite: 1037 tests.
@dersam dersam force-pushed the dersam/pi-provider-progress-display branch from 87cf99b to 7bf6877 Compare March 2, 2026 19:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants