core: fix custom tool loading to properly resolve module paths

pull/16961/head
Dax Raad 2026-03-10 01:16:51 -04:00
parent 2678ceb45e
commit 3c2fda4d91
1 changed files with 4 additions and 1 deletions

View File

@ -30,6 +30,7 @@ import { Truncate } from "./truncation"
import { ApplyPatchTool } from "./apply_patch"
import { Glob } from "../util/glob"
import { pathToFileURL } from "url"
import { createRequire } from "module"
export namespace ToolRegistry {
const log = Log.create({ service: "tool.registry" })
@ -45,7 +46,9 @@ export namespace ToolRegistry {
if (matches.length) await Config.waitForDependencies()
for (const match of matches) {
const namespace = path.basename(match, path.extname(match))
const mod = await import(pathToFileURL(match).href)
const require = createRequire(match)
const resolved = require.resolve(match)
const mod = await import(pathToFileURL(resolved).href)
for (const [id, def] of Object.entries<ToolDefinition>(mod)) {
custom.push(fromPlugin(id === "default" ? namespace : `${namespace}_${id}`, def))
}