feat(coding-agent): accept inline extension factories in main() (#3099)
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user