omp packages

@underactive/pi-topping-sensei0.1.0

A Pi extension that consults a sensei model to review in-flight work.

underactive Published 10 days ago MIT ~227 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

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

Reports 0

No reports yet.

Readme

pi-topping-sensei

A Pi extension that gives the model you're working with the ability to escalate the entire conversation to a more capable one, which answers with a plan, a fix, or a signal to stop.

This extension registers a sensei tool and /sensei command. Select a sensei model to get a second model's guidance during a session. Ordinary sensei calls receive the conversation history; final reviews receive a packet assembled from saved session evidence. The tool is active when a usable sensei model is configured and is reconciled against the current executor model.

Install

Install it as a Pi package:

pi install npm:@underactive/pi-topping-sensei

Compatibility

Requires Pi 0.80.1 or later, whose @earendil-works/pi-ai package exports the /compat subpath. Older hosts that expose completeSimple only from the package root are unsupported.

Quick start

In Pi, run /sensei and select a model. For reasoning-capable models, choose an effort level. The selection is saved in sensei.json.

Use these command forms:

/sensei
/sensei preview
/sensei policy
/sensei decision

/sensei opens the model picker. /sensei preview prepares and reports the next request without sending it. /sensei policy selects when the executor should call the sensei. /sensei decision opens an opt-in gate that classifies user turns and can nudge the executor to call the sensei.

The tool takes no required parameters. An ordinary call sends the conversation history:

sensei()

Pass kind: "final" only when the active policy or your instructions call for a final review. That call sends a session-evidence packet instead of the full conversation:

sensei({ kind: "final" })

While a call runs, the tool row shows which model is consulted, at what effort, and, once known, which physical model is answering: the model a router such as pi-topping-routesense routed the request to, with the thinking level it chose, or the model a provider reports when it differs from the selection. The answering model slides into the line when it first appears, as in pi-topping's working loader. The effort and thinking-level labels use Nerd Font glyphs.

Consulting sensei (routesense:advisors  max  openrouter-work:xiaomi/mimo-v2.6-pro 󰪡 med)…

See Configuration for sensei.json paths, defaults, and limits. See the Tool reference for parameters, results, failure reasons, command notices, and the consulting line's sources and hide rules.

Known differences from the reference

  • Filterable pickers recognize Backspace only through the host tui.editor.deleteCharBackward keybinding. There is no raw-byte fallback; raw \b under Windows Terminal no longer deletes.
  • After its retry, a second empty reply produces no response text. The result reports the empty-response failure rather than displaying a separate no-text notice.
  • Configuration warnings follow the validator's fixed key order, not the order of keys in sensei.json.
  • Git output that Pi cuts at the host byte cap ends with [... output truncated at <N> characters] instead of an exact removed count, and is reported as evidence rather than as a timeout.

License

MIT. Author: Eric Sison.