diff options
Diffstat (limited to 'packages/cli/src/config/extension.ts')
| -rw-r--r-- | packages/cli/src/config/extension.ts | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/packages/cli/src/config/extension.ts b/packages/cli/src/config/extension.ts index 9dd33e1b..685c0b74 100644 --- a/packages/cli/src/config/extension.ts +++ b/packages/cli/src/config/extension.ts @@ -16,7 +16,7 @@ export interface ExtensionConfig { name: string; version: string; mcpServers?: Record<string, MCPServerConfig>; - contextFileName?: string; + contextFileName?: string | string[]; } export function loadExtensions(workspaceDir: string): ExtensionConfig[] { @@ -76,12 +76,15 @@ function loadExtensionsFromDir(dir: string): ExtensionConfig[] { } if (extensionConfig.contextFileName) { - const contextFilePath = path.join( - extensionDir, - extensionConfig.contextFileName, - ); - if (fs.existsSync(contextFilePath)) { - extensionConfig.contextFileName = contextFilePath; + const contextFileNames = Array.isArray(extensionConfig.contextFileName) + ? extensionConfig.contextFileName + : [extensionConfig.contextFileName]; + const resolvedPaths = contextFileNames + .map((fileName) => path.join(extensionDir, fileName)) + .filter((filePath) => fs.existsSync(filePath)); + if (resolvedPaths.length > 0) { + extensionConfig.contextFileName = + resolvedPaths.length === 1 ? resolvedPaths[0] : resolvedPaths; } } else { const contextFilePath = path.join(extensionDir, 'gemini.md'); |
