fix(call-omo-agent): validate missing subagent type
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -136,6 +136,19 @@ describe("createCallOmoAgent", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe("dynamic custom agent resolution", () => {
|
describe("dynamic custom agent resolution", () => {
|
||||||
|
test("should reject missing subagent_type without throwing", async () => {
|
||||||
|
const mockCtx = createMockCtx(DEFAULT_AGENTS)
|
||||||
|
const toolDef = createCallOmoAgent(mockCtx, mockBackgroundManager, [])
|
||||||
|
const executeFunc = toolDef.execute as Function
|
||||||
|
|
||||||
|
const result = await executeFunc(
|
||||||
|
{ description: "Test", prompt: "Fix bug", run_in_background: true },
|
||||||
|
toolCtx
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(result).toContain("subagent_type is required")
|
||||||
|
})
|
||||||
|
|
||||||
test("should accept a custom agent returned by client.app.agents()", async () => {
|
test("should accept a custom agent returned by client.app.agents()", async () => {
|
||||||
const agents = [...DEFAULT_AGENTS, { name: "bug-fixer", mode: "subagent" }]
|
const agents = [...DEFAULT_AGENTS, { name: "bug-fixer", mode: "subagent" }]
|
||||||
const mockCtx = createMockCtx(agents)
|
const mockCtx = createMockCtx(agents)
|
||||||
|
|||||||
@@ -140,6 +140,10 @@ export function createCallOmoAgent(
|
|||||||
`[call_omo_agent] Starting with agent: ${args.subagent_type}, background: ${args.run_in_background}`,
|
`[call_omo_agent] Starting with agent: ${args.subagent_type}, background: ${args.run_in_background}`,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (typeof args.subagent_type !== "string" || args.subagent_type.trim() === "") {
|
||||||
|
return "Error: subagent_type is required."
|
||||||
|
}
|
||||||
|
|
||||||
const callableAgents = await resolveCallableAgents(ctx.client);
|
const callableAgents = await resolveCallableAgents(ctx.client);
|
||||||
|
|
||||||
// Strip ZWSP and case-insensitive agent validation - allows "Explore", "EXPLORE", "explore" etc.
|
// Strip ZWSP and case-insensitive agent validation - allows "Explore", "EXPLORE", "explore" etc.
|
||||||
|
|||||||
Reference in New Issue
Block a user