diff --git a/packages/core/src/config/plugin/agent.ts b/packages/core/src/config/plugin/agent.ts index c6d8a50d5ee..b8a689b160b 100644 --- a/packages/core/src/config/plugin/agent.ts +++ b/packages/core/src/config/plugin/agent.ts @@ -58,7 +58,7 @@ export const Plugin = define({ const files = yield* discover(fs, entry.path) return yield* Effect.forEach(files, (file) => fs.readFileStringSafe(file.filepath).pipe( - Effect.map((content) => content && decode(file, content)), + Effect.map((content) => (content ? decode(file, content) : undefined)), Effect.catch(() => Effect.succeed(undefined)), ), ).pipe( diff --git a/packages/core/test/config/agent.test.ts b/packages/core/test/config/agent.test.ts index 3a35ec03a97..aba3c11fb16 100644 --- a/packages/core/test/config/agent.test.ts +++ b/packages/core/test/config/agent.test.ts @@ -266,6 +266,7 @@ permissions: Use native v2 fields.`, ) await fs.writeFile(path.join(tmp.path, "agents", "disabled.md"), "---\ndisabled: true\n---\nDisabled") + await fs.writeFile(path.join(tmp.path, "agents", "empty.md"), "") await fs.writeFile(path.join(tmp.path, "modes", "plan.md"), "Make a plan.") }) const agents = yield* Agent.Service @@ -295,6 +296,7 @@ Use native v2 fields.`, permissions: [...defaultPermissions, { action: "edit", resource: "*", effect: "deny" }], }) expect(yield* agents.get(Agent.ID.make("disabled"))).toBeUndefined() + expect(yield* agents.get(Agent.ID.make("empty"))).toBeUndefined() expect(yield* agents.get(Agent.ID.make("plan"))).toMatchObject({ system: "Make a plan.", mode: "primary" }) }), ),