Archived
feat(sessions): allow global-extension providers, require Pi 0.81
Relaxes the provider policy from 'global config only' to 'global sources': providers registered by agent-dir (global) extensions are learned once at daemon startup and allowed on the shared runtime; project-extension registrations are still rejected with a session warning. Global extensions load identically for every session, so their providers are daemon-consistent and cannot leak project state (#76). - Shim now allows allowlisted ids through and also covers Pi 0.81's native provider path (registerNativeProvider), closing a bypass. - Startup learning step loads only global extensions against a scratch cwd and diffs the runtime's registered provider ids. - Bumps @earendil-works/* dev/peer ranges to >=0.81.1 <0.82; adapts to the Agent.streamFn -> streamFunction rename. - Docs, changeset, unit and acceptance tests updated (global-extension allow path, late re-registration a la pi-tensorx, native provider rule).
This commit is contained in:
+6
-5
@@ -163,11 +163,12 @@
|
||||
PI WEB browser plugins. A routine session daemon restart is not required.
|
||||
</p>
|
||||
<p>
|
||||
One exception applies to Pi package extensions: PI WEB supports only globally configured providers
|
||||
(Pi built-ins, environment credentials, and the agent directory's <code>models.json</code>). If an
|
||||
extension calls <code>pi.registerProvider</code>, PI WEB ignores the registration and warns in the
|
||||
session; everything else the extension registers keeps working. Configure such providers globally in
|
||||
the agent directory's <code>models.json</code> instead.
|
||||
One exception applies to Pi package extensions: PI WEB providers come from global sources only
|
||||
(Pi built-ins, environment credentials, the agent directory's <code>models.json</code>, and providers
|
||||
registered by globally installed, agent-dir extensions). If a project extension calls
|
||||
<code>pi.registerProvider</code>, PI WEB ignores the registration and warns in the session; everything
|
||||
else the extension registers keeps working. Move such a provider to a global source: declare it in
|
||||
the agent directory's <code>models.json</code>, or install the extension globally.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
||||
+2
-2
@@ -27,9 +27,9 @@ Use **Settings → PI WEB plugins** to enable or disable discovered PI WEB brows
|
||||
|
||||
## Extension provider registrations
|
||||
|
||||
PI WEB only supports globally configured providers: Pi built-ins, environment credentials, and providers declared in the agent directory's `models.json` (the directory selected by `agent.dir`; see [Configuration](https://pi-web.dev/config)). All sessions share one daemon-wide provider set, so extensions cannot add their own: if a Pi extension calls `pi.registerProvider(...)`, PI WEB ignores the registration and shows a warning in the session naming the provider. The extension itself still loads and everything else it registers keeps working; only the ignored provider's models never appear, so an extension that requires its own provider may load but remain unusable.
|
||||
PI WEB providers come from global sources only: Pi built-ins, environment credentials, providers declared in the agent directory's `models.json` (the directory selected by `agent.dir`; see [Configuration](https://pi-web.dev/config)), and providers registered by globally installed (agent-dir) extensions. Global extensions load identically for every session, so their providers are safe on the shared daemon-wide runtime; project extensions differ per workspace and cannot add providers. If a project extension calls `pi.registerProvider(...)`, PI WEB ignores the registration and shows a warning in the session naming the provider. The extension itself still loads and everything else it registers keeps working; only the ignored provider's models never appear, so a project extension that requires its own provider may load but remain unusable.
|
||||
|
||||
To use such a provider, configure it globally in the agent directory's `models.json` instead. Project-level `models.json` files do not add providers to PI WEB sessions.
|
||||
To use a project extension's provider, move it to a global source: declare it in the agent directory's `models.json`, or install the extension globally in the agent directory. Project-level `models.json` files do not add providers to PI WEB sessions. This policy guards against accidental cross-workspace leakage; it is not a security boundary, since extensions run as trusted code inside the daemon.
|
||||
|
||||
## Trust model
|
||||
|
||||
|
||||
Reference in New Issue
Block a user