feat(pi): add Pi provider settings and runtime support#2800
Conversation
- Introduced PiSettings schema for configuration. - Added Pi driver kind and associated metadata. - Updated server settings to include Pi provider. - Implemented tests for Pi settings and runtime event handling. - Enhanced UI components to support Pi provider integration.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Needs human review This PR introduces a new Pi provider integration, adding new user-facing capability across settings, runtime events, and UI components. New feature additions that enable new provider integrations warrant human review, especially from a first-time contributor. You can customize Macroscope's approvability policy. Learn more. |
What Changed
PiSettingsschema for configuration.Pidriver kind and associated metadata.Piprovider.Pisettings and runtime event handling.Piprovider integration.Why
This is the initial groundwork to add support for the
piagent (see: #402)This PR adds Pi as a recognized provider in T3 Code's contracts and web UI layer. It establishes the
PiSettingsschema, wires up the driver metadata and icon in the settings UI, adds thepi.rpc.*runtime event source template for future RPC streaming, and removes the oldpiAgentcoming-soon placeholder now that Pi is becoming a real provider. No server-side runtime yet.UI Changes
No new visual components, no layout changes, no new pages.
It's purely "Pi now exists as a selectable option in the provider settings UI" with correct iconography. The provider won't actually appear in the model picker sidebar (
PROVIDER_OPTIONSinsession-logic.ts) until a later PR wires up the server-side availability reporting.Before
After
Checklist
Note
Low Risk
Schema and UI-only changes with Pi disabled by default; no auth, session, or server execution paths modified in this diff.
Overview
Adds Pi as a first-class provider in contracts and the web settings layer:
PiSettingson legacyServerSettings.providers(defaults disabled, binarypi), patch/encode paths, and display name wiring.The settings UI treats Pi like other active drivers (Early Access badge, binary path only) and maps
PiAgentIconfor provider icons. The add-instance dialog drops the oldpiAgent“coming soon” stub in favor of the realpidriver.Runtime contracts accept
pi.rpc.*raw event sources for future RPC streaming, with tests for decode defaults and event validation. No server runtime in this PR—model picker availability stays unchanged until a follow-up.Reviewed by Cursor Bugbot for commit ef3d662. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add Pi provider settings and runtime support
PiSettingsschema to settings.ts withbinaryPath(default'pi'),enabled(defaultfalse), andcustomModelsfields; integrates intoServerSettingsandServerSettingsPatch.RuntimeEventRawSourcein providerRuntime.ts to acceptpi.rpc.*raw event sources.PI_DRIVER_KINDconstant and'Pi'display name to model.ts.Macroscope summarized ef3d662.