omp packages

@underactive/pi-inceptionlabs-provider0.1.1

Inception Mercury 3 provider for Pi, with in-transcript diffusion playback

underactive Published 7 days ago MIT ~501 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

Inception for Pi

Adds Inception's mercury-3 diffusion model to Pi. While a response streams, the assistant message shows the answer resolving out of noise instead of growing token by token.

Mercury 3 resolving a response out of noise

Slowed down ~5x to show the denoising effect.

Requires Pi 1.4.0 or newer and Node 22.19+.

Setup

1. Get an API key

Create an account at platform.inceptionlabs.ai and generate a key under Dashboard > API Keys.

2. Install the package

pi install npm:@underactive/pi-inceptionlabs-provider

This adds the package to ~/.pi/agent/settings.json. Add --local to install it only for the current project (.pi/settings.json). To try it for one session without installing:

pi -e npm:@underactive/pi-inceptionlabs-provider

3. Add your key

In Pi, run:

/login inception

Pi prompts for the key and stores it in ~/.pi/agent/auth.json, scoped to the inception provider. It is kept separate from your other provider credentials.

Or set it in your environment before starting Pi:

export INCEPTION_API_KEY="your-key"

If an interactive session starts with Mercury 3 selected and no key, the extension shows a warning pointing to /login inception.

4. Select the model

Pick Mercury 3 (Diffusion) with /model, or start with it directly:

pi --model inception/mercury-3

Configuration

Variable Default Effect
INCEPTION_API_KEY none API key, if not set with /login inception
INCEPTION_DIFFUSION_FRAME_MS 60 Minimum time each diffusion frame stays on screen; 0 disables pacing
INCEPTION_DIFFUSION_MAX_HOLD_MS 2000 Total time frames may be held per response before they show at network speed; 0 disables holds

Update and remove

pi update --extensions
pi remove npm:@underactive/pi-inceptionlabs-provider

Diffusion playback

Requests set stream: true and diffusing: true. Each frame Inception sends is the complete answer so far, with regions that are still being decoded shown as noise. The extension writes each frame into the streaming assistant message, replacing the previous frame, so the transcript shows the answer resolving from noise instead of growing token by token.

Inception emits frames in bursts: several frames per decoded block arrive in the same millisecond, and short answers arrive all at once. Rendered at network speed the noisy frames would be invisible, so each frame is held on screen for at least 60 ms. Set INCEPTION_DIFFUSION_FRAME_MS to change the hold (0 disables it). Holds total at most 2 s per response by default (INCEPTION_DIFFUSION_MAX_HOLD_MS), after which frames show at network speed. Pacing is skipped in print and JSON mode, where nothing is rendered.

Only the final frame is committed: intermediate frames never enter the session file, conversation history, or model context. Extension hooks see the raw provider events; provider_stream_event receives every original frame. Tool calls, usage, and errors use Pi's normal OpenAI transport, including retries and cancellation. Cancelling a response ends any pending hold immediately.

Mercury 3 supports text input and tool calling. Pi thinking levels map to Inception's instant/low/medium/high reasoning efforts. In diffusing mode the API does not stream reasoning, so higher levels add silent delay before the first frame. Registered prices are the documented launch rates ($0.10 input, $0.01 cached input, $0.35 output per million tokens); these are estimates and can change. Other Mercury models and non-chat endpoints are not registered.

Development

To run a local checkout instead of the published package:

pi -e /absolute/path/to/pi-inceptionlabs-provider/index.js

Inside Pi the extension needs no installed dependencies: it imports only module specifiers Pi resolves for extensions. For local tests, install the development dependencies and run:

npm install
npm test
nvm use                # Node 22.19, the minimum supported version
npm run check          # tsc --noEmit on the JSDoc types, ESLint, Prettier check
npm run format         # apply Prettier
npm run test:coverage  # tests with Node's built-in coverage report

If this checkout has a node_modules symlink to a Pi installation, remove only the symlink before installing with rm node_modules (do not add -r or a trailing slash).

Tests use mocked HTTP streams: byte-split Unicode and SSE framing, coalesced events, unterminated final events, keep-alive comments, multi-line data: fields, frame replacement, repeated and content-less finish chunks, empty output, raw event instrumentation, tool calls, usage, malformed and truncated streams, bodyless HTTP responses, default global fetch, requests aborted before they start, failing transports, configurable pacing holds, missing-key warnings, and control-character stripping. No API credentials are required.

Sources

License

MIT