summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/core/src/config/config.ts14
-rw-r--r--packages/core/src/core/prompts.ts2
2 files changed, 10 insertions, 6 deletions
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index 46e5123c..7b0be08d 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -254,7 +254,7 @@ export function createServerConfig(params: ConfigParameters): Config {
});
}
-export function createToolRegistry(config: Config): Promise<ToolRegistry> {
+function createToolRegistry(config: Config): Promise<ToolRegistry> {
const registry = new ToolRegistry(config);
const targetDir = config.getTargetDir();
const tools = config.getCoreTools()
@@ -281,8 +281,12 @@ export function createToolRegistry(config: Config): Promise<ToolRegistry> {
registerCoreTool(ShellTool, config);
registerCoreTool(MemoryTool);
registerCoreTool(WebSearchTool, config);
- return (async () => {
- await registry.discoverTools();
- return registry;
- })();
+
+ // This is async, but we can't wait for it to finish because when we register
+ // discovered tools, we need to see if existing tools already exist in order to
+ // avoid duplicates.
+ registry.discoverTools();
+
+ // Maintain an async registry return so it's easy in the future to add async behavior to this instantiation.
+ return Promise.resolve(registry);
}
diff --git a/packages/core/src/core/prompts.ts b/packages/core/src/core/prompts.ts
index a02e509f..ca04fd38 100644
--- a/packages/core/src/core/prompts.ts
+++ b/packages/core/src/core/prompts.ts
@@ -132,7 +132,7 @@ You are running outside of a sandbox container, directly on the user's system. F
${(function () {
// note git repo can change so we need to check every time system prompt is generated
const gitRootCmd = 'git rev-parse --show-toplevel 2>/dev/null || true';
- const gitRoot = execSync(gitRootCmd).toString().trim();
+ const gitRoot = execSync(gitRootCmd)?.toString()?.trim();
if (gitRoot) {
return `
# Git Repository