fix(sdk): extensions: [] now disables discovery as documented (#465)

This commit is contained in:
Aliou Diallo 2026-01-05 16:55:51 +01:00 committed by GitHub
parent 6a8609ac56
commit 042d3fa310
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 14 additions and 6 deletions

View file

@ -2,6 +2,10 @@
## [Unreleased] ## [Unreleased]
### Fixed
- SDK: passing `extensions: []` now disables extension discovery as documented ([#465](https://github.com/badlogic/pi-mono/pull/465) by [@aliou](https://github.com/aliou))
## [0.36.0] - 2026-01-05 ## [0.36.0] - 2026-01-05
### Added ### Added

View file

@ -6,10 +6,6 @@
* IMPORTANT: When providing `tools` with a custom `cwd`, use the tool factory * IMPORTANT: When providing `tools` with a custom `cwd`, use the tool factory
* functions (createReadTool, createBashTool, etc.) to ensure tools resolve * functions (createReadTool, createBashTool, etc.) to ensure tools resolve
* paths relative to your cwd. * paths relative to your cwd.
*
* NOTE: Extensions (extensions, custom tools) are always loaded via discovery.
* To use custom extensions, place them in the extensions directory or
* pass paths via additionalExtensionPaths.
*/ */
import { getModel } from "@mariozechner/pi-ai"; import { getModel } from "@mariozechner/pi-ai";
@ -57,8 +53,8 @@ const { session } = await createAgentSession({
Available: read, bash. Be concise.`, Available: read, bash. Be concise.`,
// Use factory functions with the same cwd to ensure path resolution works correctly // Use factory functions with the same cwd to ensure path resolution works correctly
tools: [createReadTool(cwd), createBashTool(cwd)], tools: [createReadTool(cwd), createBashTool(cwd)],
// Extensions are loaded from disk - use additionalExtensionPaths to add custom ones // Pass empty array to disable extension discovery, or provide inline factories
// additionalExtensionPaths: ["./my-extension.ts"], extensions: [],
skills: [], skills: [],
contextFiles: [], contextFiles: [],
promptTemplates: [], promptTemplates: [],

View file

@ -444,6 +444,14 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
errors: [], errors: [],
setUIContext: () => {}, setUIContext: () => {},
}; };
} else if (options.extensions !== undefined) {
// User explicitly provided extensions array (even if empty) - skip discovery
// Inline factories from options.extensions are loaded below
extensionsResult = {
extensions: [],
errors: [],
setUIContext: () => {},
};
} else { } else {
// Discover extensions, merging with additional paths // Discover extensions, merging with additional paths
const configuredPaths = [...settingsManager.getExtensionPaths(), ...(options.additionalExtensionPaths ?? [])]; const configuredPaths = [...settingsManager.getExtensionPaths(), ...(options.additionalExtensionPaths ?? [])];