## Summary - Add `fusion-plugin-omp-runtime` so Fusion agents can run through operator-installed **Oh My Pi (`omp`)** over the [Agent Client Protocol](https://omp.sh/docs/acp) (`omp acp`). - Wire staged/bundled install, Settings → Authentication card (enable + binary path), model discovery (`omp models` → `omp-cli/*`), and MCP eligibility for runtime id `omp`. - Forward Fusion `systemPrompt` via ACP `session/new` `_meta.systemPromptOverride`. ## How operators use it 1. Install/auth `omp` (credentials under `~/.omp`). 2. Enable **Oh My Pi — via omp ACP** in Settings → Authentication (optional binary path). 3. Set agent **Runtime Source → OMP Runtime** (`runtimeHint: "omp"`), or pick an `omp-cli/*` model when enabled. ## Known v1 gaps - No Grok-style Fusion `fn_*` loopback tool bridge yet (operator MCP is forwarded; in-process custom tools are not). - Model is fixed at spawn (`omp --model … acp`); no mid-session Fusion model switch. ## Test plan - [x] `pnpm --filter @fusion-plugin-examples/omp-runtime test` (unit + live ACP when `omp` is on PATH) - [x] Auth routes: `POST /api/auth/omp-cli`, `GET /api/providers/omp-cli/status` - [x] Engine `runtimeSupportsMcp("omp")` - [ ] Manual: enable card in dashboard, select OMP runtime on an agent, run a short chat turn <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added Oh My Pi (OMP) CLI support as an ACP-backed runtime and model provider, including model discovery and probing. * Added dashboard auth/status controls to enable OMP, check readiness, and configure the local binary path (with validation). * Exposed OMP custom `fn_*` tools via an MCP loopback bridge, plus optional filesystem capabilities and stricter tool permission gating. * **Documentation** * Added/expanded OMP runtime contract and integration docs (including the ACP session/handshake flow). * **Tests** * Added Vitest coverage for settings wiring, provider status, model discovery, runtime sessions, permissions, MCP bridging, and live connectivity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
68 lines
1.4 KiB
CSS
68 lines
1.4 KiB
CSS
.omp-cli-provider-card .auth-provider-cli-actions,
|
|
.omp-cli-provider-card .onboarding-provider-card__actions {
|
|
display: flex;
|
|
gap: var(--space-sm);
|
|
align-items: center;
|
|
}
|
|
|
|
/*
|
|
FNXC:OmpAcp 2026-07-13-22:50:
|
|
Compact card body inset to match auth-provider-header horizontal padding (same as Grok CLI card).
|
|
*/
|
|
.omp-cli-provider-card__body {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-sm);
|
|
padding: 0 var(--space-md) var(--space-sm);
|
|
}
|
|
|
|
.omp-cli-provider-card__hint {
|
|
opacity: 0.75;
|
|
}
|
|
|
|
.omp-cli-binary-path-control {
|
|
display: grid;
|
|
gap: var(--space-xs);
|
|
margin-top: var(--space-sm);
|
|
}
|
|
|
|
.omp-cli-binary-path-label {
|
|
color: var(--text-secondary);
|
|
font-size: 0.78rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.omp-cli-binary-path-row {
|
|
display: flex;
|
|
gap: var(--space-sm);
|
|
align-items: center;
|
|
}
|
|
|
|
.omp-cli-binary-path-input {
|
|
min-width: 0;
|
|
flex: 1 1 18rem;
|
|
height: 2rem;
|
|
border: 1px solid var(--border-subtle);
|
|
border-radius: var(--radius-sm);
|
|
background: var(--surface-elevated);
|
|
color: var(--text-primary);
|
|
padding: 0 var(--space-sm);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.omp-cli-provider-card .auth-provider-cli-actions,
|
|
.omp-cli-provider-card .onboarding-provider-card__actions,
|
|
.omp-cli-binary-path-row {
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.omp-cli-binary-path-row .btn,
|
|
.omp-cli-binary-path-input {
|
|
width: 100%;
|
|
}
|
|
|
|
.omp-cli-provider-card__body {
|
|
padding: 0 var(--space-sm) var(--space-sm);
|
|
}
|
|
}
|