feat(coding-agent): accept inline extension factories in main() (#3099)
This commit is contained in:
@@ -291,7 +291,7 @@ export {
|
|||||||
writeToolDefinition,
|
writeToolDefinition,
|
||||||
} from "./core/tools/index.js";
|
} from "./core/tools/index.js";
|
||||||
// Main entry point
|
// Main entry point
|
||||||
export { main } from "./main.js";
|
export { type MainOptions, main } from "./main.js";
|
||||||
// Run modes for programmatic SDK usage
|
// Run modes for programmatic SDK usage
|
||||||
export {
|
export {
|
||||||
InteractiveMode,
|
InteractiveMode,
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import {
|
|||||||
} from "./core/agent-session-services.js";
|
} from "./core/agent-session-services.js";
|
||||||
import { AuthStorage } from "./core/auth-storage.js";
|
import { AuthStorage } from "./core/auth-storage.js";
|
||||||
import { exportFromFile } from "./core/export-html/index.js";
|
import { exportFromFile } from "./core/export-html/index.js";
|
||||||
|
import type { ExtensionFactory } from "./core/extensions/types.js";
|
||||||
import { KeybindingsManager } from "./core/keybindings.js";
|
import { KeybindingsManager } from "./core/keybindings.js";
|
||||||
import type { ModelRegistry } from "./core/model-registry.js";
|
import type { ModelRegistry } from "./core/model-registry.js";
|
||||||
import { resolveCliModel, resolveModelScope, type ScopedModel } from "./core/model-resolver.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();
|
resetTimings();
|
||||||
const offlineMode = args.includes("--offline") || isTruthyEnvFlag(process.env.PI_OFFLINE);
|
const offlineMode = args.includes("--offline") || isTruthyEnvFlag(process.env.PI_OFFLINE);
|
||||||
if (offlineMode) {
|
if (offlineMode) {
|
||||||
@@ -535,6 +540,7 @@ export async function main(args: string[]) {
|
|||||||
noThemes: parsed.noThemes,
|
noThemes: parsed.noThemes,
|
||||||
systemPrompt: parsed.systemPrompt,
|
systemPrompt: parsed.systemPrompt,
|
||||||
appendSystemPrompt: parsed.appendSystemPrompt,
|
appendSystemPrompt: parsed.appendSystemPrompt,
|
||||||
|
extensionFactories: options?.extensionFactories,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const { settingsManager, modelRegistry, resourceLoader } = services;
|
const { settingsManager, modelRegistry, resourceLoader } = services;
|
||||||
|
|||||||
Reference in New Issue
Block a user