singularity-forge/packages/pi-coding-agent/src/core
Jay The Reaper bc278d12d9 feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382)
* feat(core): add generic native post-install hooks for package install

* feat(core): add before/after install/remove lifecycle hooks

* refactor(core): remove postInstall alias from lifecycle hook fallback

* feat(core): complete authMode support for keyless providers

The initial authMode implementation fixed model-registry, sdk, and
fallback-resolver but missed agent-session.ts (6 callsites) and
compaction-orchestrator.ts (2 callsites) that block externalCli
providers at runtime.

Architecture: separate readiness gating from credential retrieval.
- isProviderRequestReady(): authMode-aware readiness check
- getApiKey()/getApiKeyForProvider(): return undefined for
  externalCli/none providers instead of triggering auth errors
- All 8 callsites in agent-session and compaction-orchestrator
  now gate on readiness, not key presence
- Downstream signatures (compaction, branch-summarization) accept
  apiKey: string | undefined
- Replaced hardcoded ollama exception in discoverModels with
  isProviderRequestReady

Zero behavioral change for classic apiKey/oauth providers.

* feat(core): add isReady callback for provider readiness verification

Extensions can now provide an isReady() callback when registering any
provider. isProviderRequestReady() calls it before default auth checks,
allowing providers to verify actual reachability (CLI authenticated,
API key valid, service online) rather than relying solely on credential
presence.

* test(core): expand authMode test coverage

Cover all four auth modes (apiKey, oauth, externalCli, none),
isReady callback behavior, getProviderAuthMode defaults,
isProviderRequestReady for each mode, getAvailable filtering,
and getApiKey early-return for keyless providers.

* chore: remove provider-api-bridge files from this branch

These files implement GSD core → provider-api wiring (deps + tool
registry) and belong in a separate PR. Reverts register-extension.ts
to upstream state.
2026-03-24 15:50:12 -06:00
..
compaction feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
export-html refactor: remove dead code (unused exports) (#1486) 2026-03-19 15:33:32 -06:00
extensions feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
lsp fix(memory): fix memory and resource leaks across TUI, LSP, DB, and automation (#2314) 2026-03-24 07:23:36 -06:00
tools refactor: centralize magic numbers into constants.ts (#1044) 2026-03-17 18:45:43 -06:00
agent-session.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
artifact-manager.ts feat: TTSR + blob/artifact storage (ported from oh-my-pi) 2026-03-13 08:43:56 -06:00
auth-storage.test.ts fix(auth): fall through to env/fallback when OAuth credential has no registered provider (#2097) 2026-03-23 10:03:05 -06:00
auth-storage.ts fix(auth): fall through to env/fallback when OAuth credential has no registered provider (#2097) 2026-03-23 10:03:05 -06:00
bash-executor.ts fix: failure recovery & resume safeguards (all 4 waves) (#956) 2026-03-17 16:03:49 -06:00
blob-store.ts fix: failure recovery & resume safeguards (all 4 waves) (#956) 2026-03-17 16:03:49 -06:00
compaction-orchestrator.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
constants.ts refactor: centralize magic numbers into constants.ts (#1044) 2026-03-17 18:45:43 -06:00
defaults.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
diagnostics.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
discovery-cache.test.ts test: replace shape-only assertions with value checks (#1875) 2026-03-21 15:25:10 -06:00
discovery-cache.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
event-bus.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
exec.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
fallback-resolver.test.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
fallback-resolver.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
footer-data-provider.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
fs-utils.test.ts fix: failure recovery & resume safeguards (all 4 waves) (#956) 2026-03-17 16:03:49 -06:00
fs-utils.ts fix: failure recovery & resume safeguards (all 4 waves) (#956) 2026-03-17 16:03:49 -06:00
index.ts feat: add cross-provider fallback when rate/quota limits are hit (#125) 2026-03-14 15:45:44 -05:00
keybindings.ts refactor: remove dead code (unused exports) (#1486) 2026-03-19 15:33:32 -06:00
lifecycle-hooks.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
lock-utils.ts refactor: extract shared file lock utilities 2026-03-19 15:16:56 -03:00
messages.ts refactor: remove dead code (unused exports) (#1486) 2026-03-19 15:33:32 -06:00
model-discovery.test.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
model-discovery.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
model-registry-auth-mode.test.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
model-registry-discovery.test.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
model-registry.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
model-resolver.ts feat: add anthropic-vertex provider for Claude on Vertex AI (#1533) 2026-03-19 23:14:13 -06:00
models-json-writer.test.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
models-json-writer.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
package-commands.test.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
package-commands.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
package-manager.ts perf: startup optimizations — pre-compiled extensions, compile cache, batch discovery (#2125) 2026-03-23 10:02:30 -06:00
prompt-templates.ts refactor: remove dead code (unused exports) (#1486) 2026-03-19 15:33:32 -06:00
resolve-config-value.test.ts fix(security): use execFileSync in resolve-config-value to prevent shell operator bypass (#1025) 2026-03-17 18:29:12 -06:00
resolve-config-value.ts refactor: centralize magic numbers into constants.ts (#1044) 2026-03-17 18:45:43 -06:00
resource-loader.ts fix: extension resource management — prune stale dirs, fix isBuiltIn, gate skills on Skill tool, suppress search warnings (#2235) 2026-03-23 09:04:01 -06:00
retry-handler.ts refactor: extract retry handler and compaction orchestrator from agent-session 2026-03-19 16:46:14 -03:00
sdk.ts feat(core): support for 'non-api-key' provider extensions like Claude Code CLI (#2382) 2026-03-24 15:50:12 -06:00
session-manager.test.ts perf: optimize discovery and interactive hot paths 2026-03-14 16:03:44 -05:00
session-manager.ts Merge pull request #1459 from frizynn/refactor/shared-lock-utils 2026-03-19 15:51:47 -06:00
settings-manager.ts refactor: simplify settings manager with generic setter helpers (#1461) 2026-03-19 15:37:24 -06:00
skill-tool.test.ts feat(pi): add Skill tool resolution (#1661) 2026-03-20 15:42:28 -06:00
skills.ts feat(pi): add Skill tool resolution (#1661) 2026-03-20 15:42:28 -06:00
slash-commands.ts feat: integrate hashline edit mode into active workflow (#870) (#872) 2026-03-17 08:23:53 -06:00
system-prompt.ts fix: extension resource management — prune stale dirs, fix isBuiltIn, gate skills on Skill tool, suppress search warnings (#2235) 2026-03-23 09:04:01 -06:00
timings.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00