diff --git a/packages/coding-agent/src/core/extensions/loader.ts b/packages/coding-agent/src/core/extensions/loader.ts index bf8c0211..8ff7228f 100644 --- a/packages/coding-agent/src/core/extensions/loader.ts +++ b/packages/coding-agent/src/core/extensions/loader.ts @@ -64,12 +64,21 @@ function getAliases(): Record { const typeboxEntry = require.resolve("@sinclair/typebox"); const typeboxRoot = typeboxEntry.replace(/[\\/]build[\\/]cjs[\\/]index\.js$/, ""); + const packagesRoot = path.resolve(__dirname, "../../../../"); + const resolveWorkspaceOrSpecifier = (workspaceRelativePath: string, specifier: string): string => { + const workspacePath = path.join(packagesRoot, workspaceRelativePath); + if (fs.existsSync(workspacePath)) { + return workspacePath; + } + return specifier; + }; + _aliases = { "@mariozechner/pi-coding-agent": packageIndex, - "@mariozechner/pi-agent-core": require.resolve("@mariozechner/pi-agent-core"), - "@mariozechner/pi-tui": require.resolve("@mariozechner/pi-tui"), - "@mariozechner/pi-ai": require.resolve("@mariozechner/pi-ai"), - "@mariozechner/pi-ai/oauth": require.resolve("@mariozechner/pi-ai/oauth"), + "@mariozechner/pi-agent-core": resolveWorkspaceOrSpecifier("agent/src/index.ts", "@mariozechner/pi-agent-core"), + "@mariozechner/pi-tui": resolveWorkspaceOrSpecifier("tui/src/index.ts", "@mariozechner/pi-tui"), + "@mariozechner/pi-ai": resolveWorkspaceOrSpecifier("ai/src/index.ts", "@mariozechner/pi-ai"), + "@mariozechner/pi-ai/oauth": resolveWorkspaceOrSpecifier("ai/src/oauth.ts", "@mariozechner/pi-ai/oauth"), "@sinclair/typebox": typeboxRoot, };