Vendor all 4 Pi packages (tui, ai, agent-core, coding-agent) from pi-mono v0.57.1 as @gsd/* workspace packages under packages/. This replaces the compiled npm dependency (@mariozechner/pi-coding-agent) and patch-package workflow, giving direct source access for modifications. - Copy Pi source from pi-mono v0.57.1 into packages/ - Create workspace package.json + tsconfig.json for each package - Rename ~240 imports from @mariozechner/pi-* to @gsd/pi-* - Apply existing patches as source edits (setModel persist, VT input) - Remove @mariozechner/pi-coding-agent dep and patch-package - Update build pipeline to build packages in dependency order - Add pi-upstream git remote for future selective syncing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
import type { AuthStorage } from '@gsd/pi-coding-agent'
|
|
|
|
// ─── Env hydration ────────────────────────────────────────────────────────────
|
|
|
|
/**
|
|
* Hydrate process.env from stored auth.json credentials for optional tool keys.
|
|
* Runs on every launch so extensions see Brave/Context7/Jina keys stored via the
|
|
* wizard on prior launches.
|
|
*/
|
|
export function loadStoredEnvKeys(authStorage: AuthStorage): void {
|
|
const providers: Array<[string, string]> = [
|
|
['brave', 'BRAVE_API_KEY'],
|
|
['brave_answers', 'BRAVE_ANSWERS_KEY'],
|
|
['context7', 'CONTEXT7_API_KEY'],
|
|
['jina', 'JINA_API_KEY'],
|
|
['tavily', 'TAVILY_API_KEY'],
|
|
['slack_bot', 'SLACK_BOT_TOKEN'],
|
|
['discord_bot', 'DISCORD_BOT_TOKEN'],
|
|
]
|
|
for (const [provider, envVar] of providers) {
|
|
if (!process.env[envVar]) {
|
|
const cred = authStorage.get(provider)
|
|
if (cred?.type === 'api_key' && cred.key) {
|
|
process.env[envVar] = cred.key as string
|
|
}
|
|
}
|
|
}
|
|
}
|