mirror of
https://github.com/getpaseo/paseo.git
synced 2026-11-03 15:12:48 +00:00
A provider plugin reports `controls` and the `providerOptions` it runs in `session.config`, and receives running-session changes as `session.configure` `changes.providerOptions` (null returns a key to its default), under the same apply-or-throw contract as built-in providers. A control may declare a `defaultValue`; a value a plugin reports at that default for a key nobody set stays unset instead of being pinned to the agent. A plugin that still reports `settings` keeps working: the daemon reads each setting as a control plus an option and sends changes in both shapes (COMPAT(plugin-provider-settings)). The app resolves a control's icon as a Lucide name when it is not one of the built-in kebab-case names, so a plugin's icon shows live and in drafts. Public docs and the provider-direct example use only `providerOptions` and controls; the migration doc gains the rows.
14 lines
712 B
Markdown
14 lines
712 B
Markdown
# Direct provider example
|
|
|
|
This plugin implements `ProviderRegistration` directly. It demonstrates connection negotiation,
|
|
catalog and session listing, session creation, prompt and command disposition, option controls
|
|
with icons (`controls` and `providerOptions`),
|
|
persistence and replay, archive actions, and an ordinary child session.
|
|
|
|
The provider emits versioned `provider-result` timeline items for its root and child sessions.
|
|
`index.client.tsx` registers the Zod schema and React Native renderer for those items. The server
|
|
and client share only the item kind and schema under `shared/`.
|
|
|
|
The provider receives Paseo host tools through `config.mcpServers`; it does not receive a second
|
|
callback tool API.
|