omp packages

pi-omp-tools0.1.0

oh-my-pi style tool rows for pi: framed cards with the call in the top border, live spinner and timer, and the run's facts in the bottom border

quantmind-br Published 2 days ago MIT ~0 downloads/mo

Built for omp

The author tagged this package oh-my-pi.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

pi-omp-tools

oh-my-pi style tool rows for pi.

Each tool call becomes one card. The call sits in the top border, the result in the body, and the run's facts (wall time, timeout, exit code, totals) in the bottom border. The border color follows the call: accent while it runs, dim once it succeeds, yellow for a warning, red for an error. A running call shows a spinner and a live timer.

 ╭─── ✔ Bash ─────────────────────────────────────────────────────────╮
 │ $ npm test                                                         │
 ├─── Output ─────────────────────────────────────────────────────────┤
 │ Test Files  9 passed (9)                                           │
 │      Tests  108 passed (108)                                       │
 ╰─── Wall: 1.84s · Timeout: 300s ────────────────────────────────────╯
 ╭─── ✔ Edit: src/config.ts ⟨+2/-1⟩ ──────────────────────────────────╮
 │  11 export const name = "pi";                                      │
 │ -12 export const retries = 3;                                      │
 │ +12 export const retries = 5;                                      │
 │ +13 export const backoffMs = 200;                                  │
 ╰────────────────────────────────────────────────────────────────────╯
 ✔ Grep: retries in src 2 matches · 2 files
 ├─ src/config.ts
 │  *12│ export const retries = 5;
 ├─ src/client.ts
 │  *40│ for (let i = 0; i < retries; i++) {

What it draws

Tool Card
bash The command, its output following the tail (10 rows collapsed), and Wall · Timeout · Exit in the bottom border.
read One line while it runs; then the lines numbered from the offset, with pi's "Use offset=…" notice in the bottom border.
edit A diff preview built from the arguments while they stream, then pi's diff with ⟨+added/-removed⟩ in the header.
write The file, its line count, and the start of its content, highlighted.
grep, find, ls One header line with counts, and the results as a tree; grep groups matches by file.
codemode The script's title in the top border and one row per nested call (see below).
MCP tools A generic card in place of the one line pi's MCP support draws: arguments inline, the result as a JSON tree or a four-line preview.
Anything else Tools without a renderer get the same generic card. Tools whose extension draws them keep that drawing.

ctrl+o (or whatever app.tools.expand is bound to) expands every card: full output, the arguments as a tree, the whole diff. Clicking a card toggles it too.

All colors come from the active theme (accent, dim, muted, success, warning, error, toolTitle, toolOutput, toolDiff* and the tool*Bg backgrounds), so the cards follow any pi theme. Cards respect the outputPad setting.

Codemode

This package replaces pi-codemode-render. Remove it before installing this one (pi remove npm:pi-codemode-render): with both installed, whichever loads first draws codemode rows, and both record file changes.

 ╭─── ⚠ Codemode: Raise the retry limits ─────────────────────────────────────────╮
 │ ├─ ✔ read src/config.ts                                                    4ms │
 │ ├─ ✎ src/config.ts +2 −1                                                   3ms │
 │ │  -12 export const retries = 3;                                               │
 │ │  +12 export const retries = 5;                                               │
 │ │  +13 export const backoffMs = 200;                                           │
 │ ├─ ✔ $ npm test in packages/core                                          2.1s │
 │ └─ ✘ read missing.txt                                                      2ms │
 │    ENOENT: no such file or directory                                           │
 ├─── Output ─────────────────────────────────────────────────────────────────────┤
 │ Tests  47 passed (47)                                                          │
 ╰─── 4 actions · 1 file +2 −1 · 1 failed · 2.21s ────────────────────────────────╯
  • While the model writes the script, the card follows its last lines.
  • Each nested call is a row with its status, time and cost; a running one spins and shows the last line of its output.
  • Consecutive edits to one file fold into one row with their diff. Edits and failures stay in view when older actions are hidden.
  • The bottom border totals actions, changed files and lines, failures, time, cost and images. A finished script with a failed action gets a warning border.
  • Expanded, the card shows the highlighted script, every action, full diffs and the full output.
  • The extension asks the model to start every script with a // title comment, which becomes the card's title.

Diffs of nested edits are kept in the session as codemode-render-changes entries, the same type pi-codemode-render wrote, so sessions recorded with it keep their diffs.

Install

pi install npm:pi-omp-tools

To install a local checkout instead, run pi install /path/to/pi-omp-tools. Built and tested against pi 1.5.2.

Development

npm install --ignore-scripts
npm test
npm run typecheck

The frame, status line, output preview and JSON tree are adapted from oh-my-pi (MIT); see LICENSE.