Files
fusion/packages/pi-claude-cli/UPSTREAM.md
gsxdsm f4e0850f9d feat: add "Anthropic — via Claude CLI" as a first-class provider
Replaces the stray useClaudeCli settings checkbox + onboarding question
with a proper provider-card UX. The card lives next to OAuth + API-key
cards in onboarding and settings, with Enable/Disable + Test actions.

Backend:
 - Vendors rchern/pi-claude-cli@0.3.1 as packages/pi-claude-cli
   (MIT, attribution in UPSTREAM.md). Lets us bump peer-dep on
   pi-coding-agent in lockstep with Fusion (upstream pinned ^0.52.0
   vs ours ^0.62.0) and fix bugs without waiting on upstream.
 - Adds @fusion/pi-claude-cli as a workspace dep of @runfusion/fusion
   so users don't have to `npm install -g pi-claude-cli` manually.
 - serve/daemon/dashboard conditionally load the extension via
   discoverAndLoadExtensions() when GlobalSettings.useClaudeCli is on;
   no side-effects on user ~/.fusion/agent/settings.json.
 - New GET /api/providers/claude-cli/status: claude --version probe
   + toggle state + cached extension resolution.
 - New POST /api/auth/claude-cli: flips useClaudeCli, refuses if the
   claude binary is missing, fires the existing skill-backfill hook.
 - /api/auth/status now injects a synthetic {id:"claude-cli", type:"cli"}
   provider entry so onboarding + settings see a consistent list.

Frontend:
 - New ClaudeCliProviderCard component shared between ModelOnboardingModal
   and SettingsModal's Authentication section.
 - New AuthProvider.type = "cli" variant.
 - Removed the old "Route AI calls through the Claude CLI" checkbox from
   Global Models settings and the opt-in step from the onboarding wizard.
 - ProviderIcon gets a composite Anthropic-mark-plus-terminal glyph for
   the claude-cli provider id.

Tests:
 - 8 unit tests for extension resolution (@fusion/pi-claude-cli is
   workspace-linked so these run in-tree).
 - 2 unit tests for the binary probe.
 - Existing /auth/status tests filter out the new synthetic entry so
   they keep asserting structural OAuth/API-key behavior in isolation.
 - The vendored package's own 296 tests still pass unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 23:02:34 -07:00

1.4 KiB

Upstream provenance

This package is a vendored fork of:

The original project is MIT-licensed; the full license text is preserved in LICENSE alongside this file. All copyrights noted in the original source are retained.

Why a fork

pi-claude-cli is a load-bearing runtime extension for Fusion's "Route AI through Claude CLI" feature. Vendoring lets us:

  1. Bump its peer dependency on @mariozechner/pi-coding-agent in lockstep with Fusion's own version (upstream tracked ^0.52.0; Fusion needs ^0.62.0).
  2. Fix bugs without waiting for upstream release cadence.
  3. Wire the extension into the monorepo's build, typecheck, and test pipeline.
  4. Ship it bundled with @runfusion/fusion so users don't have to npm install -g pi-claude-cli manually.

Syncing from upstream

This is a soft fork — we do not track upstream automatically. When upstream releases a change worth adopting:

  1. git diff the upstream ref against this directory.
  2. Hand-apply the relevant parts (most of our modifications are localized to package.json — peer-dep pins, package name scoping).
  3. Update "Forked at version" above.

There is no git subtree relationship — upstream's git history is not preserved here. Attribution is via this file plus the retained LICENSE.