feat(coding-agent): accept inline extension factories in main() (#3099)

This commit is contained in:
Mat
2026-04-14 20:26:07 +02:00
committed by GitHub
parent 2d3ed0cfa7
commit dcb1f422c4
2 changed files with 8 additions and 2 deletions

View File

@@ -291,7 +291,7 @@ export {
writeToolDefinition,
} from "./core/tools/index.js";
// Main entry point
export { main } from "./main.js";
export { type MainOptions, main } from "./main.js";
// Run modes for programmatic SDK usage
export {
InteractiveMode,

View File

@@ -24,6 +24,7 @@ import {
} from "./core/agent-session-services.js";
import { AuthStorage } from "./core/auth-storage.js";
import { exportFromFile } from "./core/export-html/index.js";
import type { ExtensionFactory } from "./core/extensions/types.js";
import { KeybindingsManager } from "./core/keybindings.js";
import type { ModelRegistry } from "./core/model-registry.js";
import { resolveCliModel, resolveModelScope, type ScopedModel } from "./core/model-resolver.js";
@@ -418,7 +419,11 @@ async function promptForMissingSessionCwd(
});
}
export async function main(args: string[]) {
export interface MainOptions {
extensionFactories?: ExtensionFactory[];
}
export async function main(args: string[], options?: MainOptions) {
resetTimings();
const offlineMode = args.includes("--offline") || isTruthyEnvFlag(process.env.PI_OFFLINE);
if (offlineMode) {
@@ -535,6 +540,7 @@ export async function main(args: string[]) {
noThemes: parsed.noThemes,
systemPrompt: parsed.systemPrompt,
appendSystemPrompt: parsed.appendSystemPrompt,
extensionFactories: options?.extensionFactories,
},
});
const { settingsManager, modelRegistry, resourceLoader } = services;