summaryrefslogtreecommitdiff
path: root/packages/cli/src/config/extension.ts
diff options
context:
space:
mode:
authorBilly Biggs <[email protected]>2025-06-13 09:19:08 -0700
committerGitHub <[email protected]>2025-06-13 09:19:08 -0700
commit2a1ad1f5d961b9f9593a6016eea7dd398bdeed0b (patch)
tree9e83f9421ef9b01f30454c5af3db90540381d1e3 /packages/cli/src/config/extension.ts
parent34e0d9c0b65b91b12df4f205d9835e05913992b9 (diff)
Update contextFileName to support an optional list of strings (#1001)
Diffstat (limited to 'packages/cli/src/config/extension.ts')
-rw-r--r--packages/cli/src/config/extension.ts17
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');