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:
Federico Jaramillo Martinez
2026-07-22 17:13:57 +02:00
parent 242911331a
commit c2bf595999
12 changed files with 360 additions and 197 deletions
+6 -6
View File
@@ -83,9 +83,9 @@
},
"devDependencies": {
"@changesets/cli": "^2.31.0",
"@earendil-works/pi-agent-core": "^0.80.8",
"@earendil-works/pi-ai": "^0.80.8",
"@earendil-works/pi-coding-agent": "^0.80.8",
"@earendil-works/pi-agent-core": "^0.81.1",
"@earendil-works/pi-ai": "^0.81.1",
"@earendil-works/pi-coding-agent": "^0.81.1",
"@eslint/js": "^10.0.1",
"@types/node": "^24.13.3",
"@types/ws": "^8.18.1",
@@ -114,9 +114,9 @@
"homepage": "https://pi-web.dev/",
"packageManager": "[email protected]",
"peerDependencies": {
"@earendil-works/pi-agent-core": ">=0.80.8 <0.81",
"@earendil-works/pi-ai": ">=0.80.8 <0.81",
"@earendil-works/pi-coding-agent": ">=0.80.8 <0.81"
"@earendil-works/pi-agent-core": ">=0.81.1 <0.82",
"@earendil-works/pi-ai": ">=0.81.1 <0.82",
"@earendil-works/pi-coding-agent": ">=0.81.1 <0.82"
},
"keywords": [
"pi-package",