Skip to content

feat(omp): add native RPC client and wire types - #897

Draft
bandzalkin wants to merge 1 commit into
mainfrom
feat/omp-native-rpc-client-INT-1890
Draft

bandzalkin wants to merge 1 commit into
mainfrom
feat/omp-native-rpc-client-INT-1890

Conversation

@bandzalkin

Copy link
Copy Markdown
Contributor

Why

The ACP bridge hides OMP's native lifecycle: sessions, model and thinking selection, host tool calls, permission dialogs and ask questions. A native adapter needs a transport that speaks OMP's JSONL RPC directly and a place for the process/MCP plumbing that does not change the ACP vocabulary omp_acp depends on.

What

  • band.integrations.omprpc.OmpRpcClient: the persistent subprocess transport (RPC v2 negotiation, chunk reassembly, command correlation, host tool and UI callbacks, abort/EOF/kill shutdown with process-tree reaping via psutil).
  • band.integrations.ompwire: typed frames, events and content models.
  • band.integrations.ompprocess: native launch settings and pin, provider environment, the SDK-owned MCP plugin overlay (.mcp.json, always-apply rule, startup receipt), and the plugin-namespaced tool-name normalizer.
  • band.converters.omp: per-room native session files from task-event metadata.
  • omp extra (psutil>=6), lockfile, converter registration and tests.
  • The shared normalizer in band.integrations.omp gains a keyword-only namespace whose default keeps today's behavior for omp_acp.

Scope

Transport layer only; the adapter is the next PR of this stack. Nothing omp_acp imports changes semantics. First PR of the native OMP stack (base main).

@linear-code

linear-code Bot commented Oct 21, 2026

Copy link
Copy Markdown

INT-1890

@bandzalkin
bandzalkin added this pull request to stack #903 October 21, 2026 15:41
@bandzalkin
bandzalkin force-pushed the feat/omp-native-rpc-client-INT-1890 branch from 0c68d15 to 68580bc Compare October 21, 2026 16:13
bandzalkin added a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 21, 2026
@bandzalkin
bandzalkin force-pushed the feat/omp-native-rpc-client-INT-1890 branch from 68580bc to 4b01955 Compare October 21, 2026 17:52
The ACP bridge hides OMP's native lifecycle: sessions, model and thinking
selection, host tool calls, permission dialogs and ask questions. This
adds the transport a native adapter needs: OmpRpcClient (JSONL RPC over
the omp process stdio, with process-tree reaping), typed wire frames,
the native launch settings and SDK-owned MCP plugin projection in
band.integrations.ompprocess, and the per-room session converter. The
shared normalizer gains a namespace keyword so plugin-projected tool
names map back to Band tools; omp_acp's spellings are unchanged.
@bandzalkin
bandzalkin force-pushed the feat/omp-native-rpc-client-INT-1890 branch from 4b01955 to 0b6c1e4 Compare October 21, 2026 17:56
bandzalkin added a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 21, 2026
github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 21, 2026
github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 21, 2026
github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 21, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant