{"id":"paseo-omp","repo":"omercnet/paseo-plugins","url":"https://github.com/omercnet/paseo-plugins/tree/main/paseo-omp","name":"paseo-omp","description":"Paseo integration for OMP, including its direct provider and workspace tooling.","categories":["provider","productivity","orchestration"],"platforms":[],"caveats":["Alpha: requires Paseo 0.8.x, OMP 18.1.15+, and OMP RPC protocol v2.","Preview upgrades may require re-importing sessions created by an earlier version."],"images":[],"health":{"manifestValid":true,"hasReadme":true,"hasLicense":true,"hasTests":true,"hasTypecheckScript":true,"updatedRecently":true},"scannedAt":"2026-09-14T08:28:58.651Z","addedAt":"2026-09-13T08:21:45+03:00","path":"paseo-omp","version":"0.1.2","security":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-09-14T08:27:38.731Z","commit":"ef68cd754fa3aad4a15bcdc8649f8c7dcdcde79e"},"author":"Omer Cohen","license":"MIT","paseoVersionRequirement":"^0.8.0","manifest":{"id":"paseo-omp","requirements":{"paseo":"^0.8.0"},"build":[["npm","ci","--ignore-scripts"]]},"repoMeta":{"stars":4,"defaultBranch":"main","pushedAt":"2026-09-14T08:28:49Z"},"owner":{"login":"omercnet","avatarUrl":"https://avatars.githubusercontent.com/u/639682?v=4"},"installNotesHtml":"<p>Requirements: Paseo <code>^0.8.0</code>, OMP <code>18.1.15</code> or newer, and OMP RPC protocol v2.</p>\n<pre><code class=\"language-bash\">paseo plugin add omercnet/paseo-plugins:paseo-omp --ref paseo-omp-v&#x3C;version>\npaseo plugin ls paseo-omp\n</code></pre>\n<p>Open the <strong>OMP</strong> sidebar to verify the binary, RPC compatibility, storage, process health, registered providers, and effective native configuration. Then create an agent and select <strong>OMP Plugin</strong>. Normal use requires no plugin-specific settings.</p>\n<ul>\n<li><a href=\"docs/installation.md\">Install, update, rollback, and local development</a></li>\n<li><a href=\"docs/configuration.md\">Configuration and every provider option</a></li>\n<li><a href=\"SUPPORT.md\">Compatibility, limitations, and support</a></li>\n<li><a href=\"TESTING.md\">Test matrix and release verification</a></li>\n<li><a href=\"docs/core-provider-issue-audit.md\">Core-provider issue and parity audit</a></li>\n<li><a href=\"docs/alpha-release-checklist.md\">Alpha release checklist</a></li>\n</ul>\n<p>The plugin uses only public Paseo 0.8 provider contracts and registers the distinct <code>omp-plugin</code> identity; it does not modify the bundled <code>omp</code> provider.</p>","readmeText":"# Paseo OMP plugin\n\nCommunity OMP integration for Paseo. The plugin registers the distinct `omp-plugin` provider and coexists with Paseo's bundled `omp` provider.\n\n> **Alpha preview:** persistence and protocol contracts are tested, but upgrades may still require re-importing sessions created by an earlier preview.\n\n## Quick start\n\nRequirements: Paseo `^0.8.0`, OMP `18.1.15` or newer, and OMP RPC protocol v2.\n\n```bash\npaseo plugin add omercnet/paseo-plugins:paseo-omp --ref paseo-omp-v<version>\npaseo plugin ls paseo-omp\n```\n\nOpen the **OMP** sidebar to verify the binary, RPC compatibility, storage, process health, registered providers, and effective native configuration. Then create an agent and select **OMP Plugin**. Normal use requires no plugin-specific settings.\n\n- [Install, update, rollback, and local development](docs/installation.md)\n- [Configuration and every provider option](docs/configuration.md)\n- [Compatibility, limitations, and support](SUPPORT.md)\n- [Test matrix and release verification](TESTING.md)\n- [Core-provider issue and parity audit](docs/core-provider-issue-audit.md)\n- [Alpha release checklist](docs/alpha-release-checklist.md)\n\nThe plugin uses only public Paseo 0.8 provider contracts and registers the distinct `omp-plugin` identity; it does not modify the bundled `omp` provider.\n\n## Paseo provider SDK coverage\n\nThis matrix inventories the complete capability set exported by the pinned `@getpaseo/plugin` 0.8.0 provider SDK. It measures strict SDK surface coverage, not general product quality.\n\n**Current capability completeness: 55.9%.** The provider advertises 10 of 17 capabilities (58.8%); nine are complete and `session.configure` is partial.\n\nScoring is deliberately mechanical so releases remain comparable:\n\n- **100%**: advertised, implemented end to end, and covered by automated provider tests.\n- **50%**: advertised with a meaningful subset, but at least one material SDK operation is rejected.\n- **0%**: not advertised; requests are rejected rather than silently approximated.\n- Overall completeness is the unweighted arithmetic mean of all 17 SDK capability rows.\n\n| SDK capability | Completeness | Support and gap |\n| --- | ---: | --- |\n| `prompt.message` | **100%** | Text, structured attachments, optimistic correlation, streaming, and terminal outcomes map to native OMP prompts. |\n| `prompt.command` | **100%** | Native command discovery plus structured `compact`, `autocompact`, `handoff`, `steer`, and `follow-up` dispatch. Individual commands can still fail when their documented OMP prerequisites are absent. |\n| `prompt.image` | **100%** | Native image blocks for capable models; private bounded temporary files with cleanup for text-only models. |\n| `prompt.output_schema` | **0%** | Not advertised. OMP has no equivalent structured-output contract; `outputSchema` fails visibly. |\n| `prompt.steer` | **100%** | Native steering with turn ownership, user-message correlation, stale-target rejection, and terminal race handling. |\n| `session.archive` | **0%** | Not advertised. Paseo may archive its agent record, but OMP has no native transcript archive operation. |\n| `session.configure` | **50%** | Live model and thinking changes commit and republish native state. Live approval-mode changes require a new session, and non-empty SDK `settings` are rejected. |\n| `session.list` | **100%** | Bounded host-wide and cwd-scoped discovery, search, previews, profile-specific session roots, and cleanup-reservation guards. |\n| `session.persistence` | **100%** | Versioned opaque handles, exact resume, import, replay-before-ready, runtime recovery, and cleanup quarantine. |\n| `session.revert.both` | **0%** | Not advertised because OMP cannot atomically rewind conversation and workspace files. |\n| `session.revert.conversation` | **100%** | Native branch-based conversation rewind, replay deduplication, ownership transfer, and failure quarantine. |\n| `session.revert.files` | **0%** | Not advertised because OMP does not expose a native file-only rewind contract. |\n| `session.subsession` | **100%** | Direct and nested OMP subagents become Paseo child sessions with lifecycle, ancestry, progress, and replay. |\n| `session.unarchive` | **0%** | Not advertised; there is no native OMP archive state to reverse. |\n| `permission` | **100%** | Typed tool permissions when negotiated, with a bounded generic interaction fallback for OMP 18.1.15. Allow, deny, cancel, timeout, and interruption are covered. |\n| `permission.tool_policy` | **0%** | Not advertised. Exact MCP preapproval policy cannot be preserved through OMP `set_host_tools`, so the plugin fails closed instead of broadening access. |\n| `timeline.plugin` | **0%** | Not advertised. The provider currently expresses all output with Paseo's built-in timeline item types and registers no provider-owned custom timeline renderer. |\n\nProvider functionality outside the capability flags is tracked separately:\n\n| Provider SDK surface | Completeness | Implementation |\n| --- | ---: | --- |\n| Registration metadata and sanitized SVG icon | **100%** | Stable `omp-plugin` identity, label, description, and bundled icon. |\n| Strict `providerOptionsSchema` | **100%** | Command, environment, output-redaction mode, session directory, RPC timeout, and role-model options are validated and normalized. |\n| Availability diagnostics | **100%** | Bounded checks distinguish missing, unrunnable, incompatible, and available OMP runtimes. |\n| Catalog cache identity | **100%** | Hash includes effective options, settings, scope, cwd, and default command. |\n| Models, modes, and thinking catalog | **100%** | Native catalog is mapped to opaque public model IDs with committed defaults and permission-gated modes. |\n| Connection `send` / `onEvent` / `close` lifecycle | **100%** | Request correlation, multi-session ownership, process recovery, teardown, and provider reload/removal are covered. |\n| Session launch: cwd, env, system prompt, title, and persistence | **100%** | Complete launch configuration is bounded, validated, forwarded, and re-read on recovery. |\n| MCP server forwarding and host tools | **100%** | Configured and caller-scoped Paseo MCP tools are discovered, namespaced, labeled, executed, canceled, and bounded. Exact `toolPolicy` remains the separate 0% capability above. |\n| Denied native tools | **100%** | `disallowedTools` becomes an explicit OMP allow-list; unknown names fail closed. |\n| Commands and committed session state events | **100%** | Publishes `session.commands`, `session.opened`, `session.config`, `session.ready`, and request completion in protocol order. |\n| Built-in timeline snapshots | **100%** | Assistant, reasoning, tools, todos, notifications, errors, compaction, images, and friendly MCP labels use stable IDs and complete snapshots. |\n| Usage reporting | **100%** | Periodic, post-compaction, fallback, terminal, timeout, and recovered-runtime samples publish `session.usage`. |\n\nTracking rules:\n\n1. On every `@getpaseo/plugin` upgrade, diff the SDK's exported `PROVIDER_CAPABILITIES` list and add every new capability here at **0%** before claiming support.\n2. Raise a row only when the provider advertises the capability and an observable contract test covers its success and failure boundaries.\n3. Keep native-agent limitations at less than 100% even when the adapter itself is complete; do not count undocumented fallbacks as support.\n4. Keep the detailed evidence and regression locations in [TESTING.md](TESTING.md); this README is the public progress ledger.\n\n## Compatibility and coexistence\n\nThe plugin always remains a separate provider. It registers only `omp-plugin`; it never registers, aliases, overrides, removes, or migrates Paseo's bundled `omp` provider. Both identities may be enabled on the same daemon and selected independently per agent.\n\nExisting agents whose provider is `omp` remain owned by the bundled provider. New plugin agents persist under `omp-plugin` with the plugin's versioned opaque handle. The plugin can list and import OMP-native sessions through its own provider flow, but it performs no implicit conversion of bundled-provider records.\n\nOMP `18.1.15` is the oldest version tested end to end. The direct provider's hard compatibility gate is `rpc-ui` protocol v2: metadata-free legacy ready frames and v1-only runtimes are rejected before a provider session opens because they cannot support the advertised persistence and conversation-rewind capabilities. Typed tool approvals remain capability-gated and fall back as described above.\n\nInstall, update, disable, or remove `paseo-omp` independently of the bundled provider. Verify the provider snapshot contains `omp-plugin` after installation; a bundled `omp` entry may remain present and is not modified by this plugin.\n\n## Output and credential boundary\n\nThe plugin validates OMP protocol data and bounds public strings and structured values. It does not heuristically redact or rewrite content produced by native OMP, models, or tools. Do not put credentials in prompts or tool output, because that content may be published unchanged after validation and bounding.\n\n`providerOptions.outputRedaction` defaults to `none`, preserving native content subject to those bounds. `configured-values` provides best-effort literal replacement only for explicitly supplied configured credential values. It does not detect generated secrets or encoded, transformed, or independently streamed fragments of configured values. Centralized Paseo policy is required when a deployment needs redaction guarantees.\n\nUnexpected or internal launch failures use fixed fallback messages rather than serializing the launch configuration. Explicit public validation errors may include caller-supplied configuration names or values. Deployments that require host-wide content redaction should implement it in a dedicated host or plugin layer rather than this protocol adapter.\n\n## Testing and development\n\nThe repeatable Docker canary and every validation command are documented in [TESTING.md](TESTING.md). It covers discovery, modes, text, images, tools, MCP, permissions, steering, interruption, persistence, host-wide and scoped session listing, import, resume, subagents, Hub, usage, plugin RPCs, and conversation rewind.\n\nUse `canary-mock/Deterministic Canary` for assertions. The optional local Ollama model is exploratory and nondeterministic.\n\n## Support\n\nSee [SUPPORT.md](SUPPORT.md) for ownership, escalation boundaries, supported versions, security reporting, and the repeatable OMP RPC compatibility intake process.\n"}