Raises Grok and Droid CLI cold-start timeout defaults from 60s to 120s and lets operators override them via environment variables. - Grok runtime adapter: new GROK_CLI_FIRST_OUTPUT_TIMEOUT_MS env override for the first-output cold-start guard; default raised 60000ms → 120000ms; invalid/non-positive values fall back to the default - Droid provider: new PI_DROID_CLI_FIRST_LINE_TIMEOUT_MS env override for the first-line cold-start guard; default raised 60000ms → 120000ms; invalid/non-positive values fall back to the default - 30-minute inactivity safety net left unchanged on both adapters - Added/updated unit tests covering the new env-driven timeout resolution and fallback behavior for both plugins - Documented the new settings in docs/settings-reference.md and both plugin READMEs - Added a minor changeset for @runfusion/fusion Files changed: .changeset/fn-7838-cli-timeout-configurable.md | 7 ++ docs/settings-reference.md | 13 ++- plugins/fusion-plugin-droid-runtime/README.md | 8 ++ .../src/__tests__/provider.test.ts | 97 +++++++++++++++++++++- .../fusion-plugin-droid-runtime/src/provider.ts | 26 ++++-- plugins/fusion-plugin-grok-runtime/README.md | 8 ++ .../src/__tests__/runtime-adapter.test.ts | 52 +++++++++++- .../src/runtime-adapter.ts | 23 ++++- 8 files changed, 222 insertions(+), 12 deletions(-) Fusion-Task-Id: FN-7838 Fusion-Task-Lineage: 7aad4470-b28f-42bd-be01-8363a1dd05e5 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
47 lines
1.5 KiB
Markdown
47 lines
1.5 KiB
Markdown
# Droid Runtime Plugin
|
|
|
|
First-class Droid runtime/provider plugin (`@fusion-plugin-examples/droid-runtime`).
|
|
|
|
## Purpose
|
|
|
|
This package is the canonical home for Droid-specific runtime behavior, including:
|
|
- provider id `droid-cli`
|
|
- model discovery + normalization
|
|
- CLI subprocess streaming + session resume
|
|
- MCP tool bridge + thinking effort mapping
|
|
- probe contract via `probeDroidBinary`
|
|
|
|
## Runtime + Provider
|
|
|
|
- Runtime ID: `droid`
|
|
- Display name: `Droid Runtime`
|
|
- Provider surface preserved: `Factory AI — via Droid CLI` (`droid-cli`)
|
|
|
|
Core implementation files live in `src/`:
|
|
- `runtime-adapter.ts`
|
|
- `provider.ts`
|
|
- `process-manager.ts`
|
|
- `probe.ts`
|
|
- prompt/tool/thinking/control helpers
|
|
|
|
## Configuration
|
|
|
|
| Environment variable | Default | Description |
|
|
|---|---|---|
|
|
| `PI_DROID_CLI_FIRST_LINE_TIMEOUT_MS` | `120000` | Cold-start / first-stdout-line kill ceiling for Droid CLI streams. Blank, non-numeric, zero, or negative values fall back to the default. |
|
|
|
|
The first-line guard is separate from the 30-minute inactivity safety net that applies after stdout has begun.
|
|
|
|
## Dashboard UI contribution surfaces
|
|
|
|
The plugin registers `uiSlots` for:
|
|
- `settings-provider-card`
|
|
- `settings-integration-card`
|
|
- `onboarding-provider-card`
|
|
- `onboarding-setup-help`
|
|
- `post-onboarding-recommendation`
|
|
|
|
## Compatibility with `@fusion/droid-cli`
|
|
|
|
`packages/droid-cli` is now a thin compatibility shim. It keeps the historical pi-extension entrypoint, but delegates runtime/provider behavior to this plugin package.
|