Skip to content

Bump bundled Pi to 0.80.x so current Pi extensions (importing @earendil-works/pi-ai/compat) can load #2058

Description

@aliyenidede

Problem

The Pi community provider pins @earendil-works/pi-ai and @earendil-works/pi-coding-agent at ^0.79.1 in packages/providers/package.json, which caret-locks to <0.80.0.

Pi 0.80.0 moved its global API (stream/complete/getModel/…) off the package root to the @earendil-works/pi-ai/compat subpath. Current Pi extensions (e.g. pi-web-access, pi-mcp-adapter) import from @earendil-works/pi-ai/compat, which does not exist in 0.79.1 — so they fail to load under Archon:

Failed to load extension: Cannot find module '.../@earendil-works/pi-ai/dist/index.js/compat'
  • Who: anyone self-hosting Archon with the Pi provider who wants the current Pi extension ecosystem (web search, MCP bridge, code intelligence, …).
  • How often: every current-gen extension that targets pi ≥ 0.80 — i.e. most of the actively-maintained ecosystem.

A package.json exports shim on the 0.79.1 install does not help: Pi's extension loader aliases @earendil-works/pi-ai to the resolved main file and appends the subpath, bypassing the exports map.

This looks like version lag rather than a deliberate hold: the ^0.79.1 pin was set on 2026-06-11 (commit b896bcc43, PR #1958) during a multi-SDK refresh — before pi 0.80.0 existed (2026-06-23) — and Release 0.5.0 (2026-06-26) didn't re-bump. I couldn't find any issue/PR/comment indicating an intentional hold at 0.79.

Proposed Solution

Bump the bundled Pi to 0.80.x (currently 0.80.3) for both @earendil-works/pi-ai and @earendil-works/pi-coding-agent in packages/providers/package.json.

User Flow

Before (current)

pi install npm:pi-web-access
  → extension fails to load [!]
  → "Cannot find module '@earendil-works/pi-ai/dist/index.js/compat'"

After (proposed)

pi install npm:pi-web-access
  → loads [+]
  → web_search returns real, sourced results

Alternatives Considered

Alternative Pros Cons Why not chosen
Pin extensions to pre-/compat versions no Archon change fragile, per-extension, misses current features/fixes doesn't scale
exports shim on 0.79.1 pi-ai no version bump loader aliases pi-ai to the main file and appends the subpath, bypassing exports technically ineffective
Bump bundled Pi to 0.80.x unblocks the whole extension ecosystem small maintenance bump chosen

Scope

  • Package(s) likely affected: adapters (packages/providers)
  • Breaking change? No — verified below.
  • Database changes needed? No
  • New external dependencies? No (version bump of existing deps)

Security Considerations

  • New permissions/capabilities? No
  • New external network calls? No
  • Secrets/tokens handling? No

Verification (I tested a forced bump to 0.80.3 + rebuild)

  • Every runtime symbol the Pi provider imports still exists unchanged in 0.80.x: createAgentSession, DefaultResourceLoader, getAgentDir, ModelRegistry, SessionManager, AuthStorage, SettingsManager, defineTool (from @earendil-works/pi-coding-agent root) and the OAuth helpers from @earendil-works/pi-ai/oauth.
  • The image build does not run scripts/generate-pi-vendor-map.ts (it uses the committed pi-vendor-map.generated.ts), so the internals-scraper doesn't break the build.
  • Custom providers via models.json still load (a custom OpenRouter provider kept working).
  • After the bump, /compat-importing extensions (pi-web-access, pi-mcp-adapter) load and run — web_search returns real results and the MCP proxy exposes remote MCP tools.

Happy to open a PR for the pin bump if that's useful.

Environment: Archon dev @ 59bbd00b (Release 0.5.0), docker compose --profile cloud --profile with-db; Pi provider with enableExtensions default on.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions