Skip to content

feat: add OMP (Oh My Pi) provider driver + Z.AI GLM docs - #8583

Closed
FelipeMayerDev wants to merge 2 commits into
pingdotgg:mainfrom
FelipeMayerDev:zai-glm-coding-plan
Closed

feat: add OMP (Oh My Pi) provider driver + Z.AI GLM docs#8583
FelipeMayerDev wants to merge 2 commits into
pingdotgg:mainfrom
FelipeMayerDev:zai-glm-coding-plan

Conversation

@FelipeMayerDev

@FelipeMayerDev FelipeMayerDev commented Aug 28, 2026

Copy link
Copy Markdown

Two related additions, split from a working fork (branch):

1. OMP (Oh My Pi) provider driver

Adds omp as a sixth built-in driver, driving the Oh My Pi CLI through its native ACP server (omp acp) via the shared AcpSessionRuntime — same pattern as the Cursor and Grok drivers.

  • contracts: OmpSettings (off by default, like Cursor/Grok/OpenCode), omp driver kind, display name
  • server: OmpDriver, OmpAdapter (ported from GrokAdapter), OmpProvider (ACP model discovery, --version probe), OmpAcpSupport (spawn omp acp, auth method agent), OmpTextGeneration; opt-in registration in serverSettings
  • web/mobile: OMP entry in the provider picker with a new OmpIcon
  • docs: install/providers/glossary/overview updated to six drivers
  • probe: OmpAcpCliProbe.test.ts integration check gated by T3_OMP_ACP_PROBE=1

Deliberately out of scope for v1: usage/transcript reading, skills discovery, and xAI-style ask-user/plan extensions (OMP's ACP implementation doesn't declare them).

2. Z.AI GLM Coding Plan docs

Adds a Z.AI section to the Claude providers guide, mirroring the existing OpenRouter walkthrough — it is the same mechanism the guide already documents (a Claude provider instance with ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic, ANTHROPIC_AUTH_TOKEN, API_TIMEOUT_MS, optional GLM model-role mapping). Docs-only; no code.

Testing

  • Workspace typecheck clean; provider test suite 809 passed (one expectation updated: built-in driver set 5→6)
  • T3_OMP_ACP_PROBE=1 probe passes against a real omp acp install: initialize, auth (agent), session/new

Note

Medium Risk
Large new ACP adapter and subprocess integration on the provider path; OMP lacks rollback and structured user-input ACP extensions, so those operations error by design.

Overview
Adds OMP (Oh My Pi) as a sixth built-in provider, wired like Cursor/Grok through omp acp and the shared ACP session runtime. Contracts gain OmpSettings (off by default), server settings persistence, and registry wiring; OmpDriver composes an ACP adapter, CLI health/model discovery, and git helper text generation. The adapter maps ACP turns (steering, permissions, stall watchdogs, in-session model/reasoning) into provider runtime events; web and mobile pick up an OMP icon and settings entry.

Docs expand install/providers/internals to six drivers and add a Z.AI (GLM Coding Plan) Claude provider walkthrough (docs only, no runtime changes).

Reviewed by Cursor Bugbot for commit 8d5aa27. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add OMP (oh-my-pi) provider driver with ACP adapter and text generation

  • Introduces a complete omp provider driver: OmpDriver.ts composes an ACP-backed adapter (OmpAdapter.ts), a text generation service (OmpTextGeneration.ts), and a health/status checker (OmpProvider.ts) that probes the omp CLI and discovers models via ACP startup
  • Adds OmpSettings schema with enabled (default false), binaryPath, and customModels to contracts and server settings, plus auto-enable logic based on usage history
  • Registers omp in the built-in driver registry, provider registry tests, web/mobile provider icons, and PROVIDER_CLIENT_DEFINITIONS with an "Early Access" badge
  • Documents the new driver in user/internals docs and adds a section for Z.AI (GLM Coding Plan) with Claude Code in providers-claude.md
  • Risk: OmpAdapter.respondToUserInput and rollbackThread always return errors (ACP lacks those extension points); OmpTextGeneration enforces a 180s timeout per operation

Macroscope summarized 8d5aa27.

@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f80aed67-33c1-4754-a4b3-5b81ae4613a2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the vouch:unvouched PR author is not yet trusted in the VOUCHED list. label Aug 28, 2026
@github-actions github-actions Bot added the size:XXL 1,000+ changed lines (additions + deletions). label Aug 28, 2026

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Effect service conventions review of the new OMP provider (driver, adapter, provider snapshot, ACP support, text generation).

Imports, module namespaces, service construction (makeOmpAdapter / makeOmpTextGeneration acquiring Crypto, ChildProcessSpawner, ServerSettingsService, ServerConfig from the environment), layer/driver registration, and error construction all match the established ACP-provider pattern in this repo — no violations found there, and no ManagedRuntime/runPromise or hidden-global dependencies were introduced.

One finding: the new backend behavior ships without enabled automated tests. Details inline.

Posted via Macroscope — Effect Service Conventions

Comment thread apps/server/src/provider/acp/OmpAcpCliProbe.test.ts Outdated
Comment thread apps/server/src/provider/Layers/OmpAdapter.ts
Comment thread apps/server/src/provider/Layers/OmpAdapter.ts Outdated
Comment thread docs/user/providers-claude.md Outdated
Comment thread packages/contracts/src/model.ts

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding on the new web OmpIcon: its default color is set with text-* while the glyph strokes read currentColor, so call-site text-color classes only half-apply. Details inline.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/Icons.tsx
@macroscopeapp

macroscopeapp Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a substantial production OMP provider with ACP subprocess management, approvals, session/turn lifecycle handling, model discovery, and text-generation support across multiple layers. OMP is off by default, but the new capability is complex and includes an unresolved cancellation-state retention concern, so it requires human review.

You can add or adjust custom eligibility rules. Learn more.

Comment thread docs/internals/overview.md Outdated
Comment thread packages/contracts/src/model.ts Outdated
Comment thread apps/server/src/provider/Layers/OmpAdapter.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f9b8f60bf91bb5ecff16118b0d4a27a7aff4bfb7. Configure here.

Comment thread apps/server/src/provider/Layers/OmpAdapter.ts Outdated
Adds omp as a sixth built-in driver, driving the Oh My Pi CLI through its
ACP server (omp acp) via the shared AcpSessionRuntime — same pattern as
the Cursor and Grok drivers.

- contracts: OmpSettings (off by default), omp driver kind + display name
- server: OmpDriver, OmpAdapter, OmpProvider, OmpAcpSupport,
  OmpTextGeneration; opt-in registration in serverSettings
- web/mobile: OMP entry in provider picker with OmpIcon
- docs: install/providers/glossary/overview updated to six drivers
- probe: OmpAcpCliProbe.test.ts gated by T3_OMP_ACP_PROBE=1

Skipped for v1: usage/transcript reading, skills discovery, and xAI-style
ask-user/plan extensions.
@cgrossde

Copy link
Copy Markdown

Small correction on the "OMP ACP does not expose Plan mode" limitation: current OMP does implement the ACP session-mode surface end-to-end, so plan mode is drivable over the wire rather than absent.

In packages/coding-agent/src/modes/acp/acp-agent.ts:

  • setSessionMode() handles session/set_mode (line 763) and applies the change via #applyModeChange() (1844).
  • #getAvailableModes() advertises a "plan" mode (id: "plan", name "Plan") whenever plan.enabled is set (1827).
  • #getCurrentModeId() reports plan vs default from the live plan-mode state (1840), and both are surfaced in session/new + session/load responses (availableModes / currentModeId, lines 2026–2034).
  • Switching into plan even installs the plan-proposal handler and auto-approves for clients without form elicitation, so plan mode is never stranded.

OMP's own issue #9230 (can1357/oh-my-pi#9230) corroborates this: "OMP v17.4.0 exposes native interactive plan mode through InteractiveMode and ACP" — the open work there is RPC/RPC-UI parity, not ACP.

So instead of normalizing Plan away for OMP, T3's Plan toggle could map to the ACP plan mode via session/set_mode and read availableModes/currentModeId from the session capability. Rollback and vendor ext-methods remain genuine gaps, but plan mode isn't one.

@t3dotgg

t3dotgg commented Sep 4, 2026

Copy link
Copy Markdown
Member

Note

🤖 GPT-6 Astra (preview) responding on behalf of Theo

This was closed as part of an automated cleanup pass. If you believe it was closed in error, reply here and we will get it reopened.

Closing in favor of #9038, which handles the OMP model catalog through ACP config options and sets explicit approval modes. OMP scope and the remaining review continue there. The separate Z.AI setup documentation remains available in this branch for a focused docs proposal.

@t3dotgg t3dotgg closed this Sep 4, 2026
Neon-Wang added a commit to Neon-Wang/t3code that referenced this pull request Sep 4, 2026
- drop the duplicate streamKind field the merge stacked in
  makeAcpContentDeltaEvent (upstream added the identical field)
- split stacked omp/antigravity object literals in providerDriverMeta and
  session-logic
- permission responses: match ACP kind against the options the agent
  advertised (allow_always falls back to allow_once, blank ids skipped,
  nothing usable settles cancelled) per the review guidance from pingdotgg#8583

Model: kimi-code/k3 via Oh My Pi (omp)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants