fix: align discussion workspace and tool schemas

This commit is contained in:
zhi
2026-04-02 11:52:20 +00:00
parent 7bccb660df
commit 895cfe3bab
8 changed files with 88 additions and 10 deletions

View File

@@ -5,6 +5,7 @@ import { registerDirigentTools } from '../plugin/tools/register-tools.ts';
type RegisteredTool = {
name: string;
parameters?: Record<string, unknown>;
handler: (params: Record<string, unknown>, ctx?: Record<string, unknown>) => Promise<any>;
};
@@ -62,6 +63,7 @@ test('plain private channel create works unchanged without discussion params', a
const tool = api.tools.get('dirigent_discord_control');
assert.ok(tool);
assert.ok(tool!.parameters);
const result = await tool!.handler({
action: 'channel-private-create',
@@ -100,6 +102,7 @@ test('private channel create rejects callbackChannelId without discussGuide', as
const tool = api.tools.get('dirigent_discord_control');
assert.ok(tool);
assert.ok(tool!.parameters);
const result = await tool!.handler({
action: 'channel-private-create',
@@ -142,6 +145,7 @@ test('discussion-mode channel create initializes discussion metadata', async ()
const tool = api.tools.get('dirigent_discord_control');
assert.ok(tool);
assert.ok(tool!.parameters);
const result = await tool!.handler({
action: 'channel-private-create',
@@ -152,6 +156,7 @@ test('discussion-mode channel create initializes discussion metadata', async ()
}, {
agentId: 'agent-a',
sessionKey: 'session-a',
workspaceRoot: '/workspace/agent-a',
});
assert.equal(result.isError, undefined);
@@ -162,6 +167,7 @@ test('discussion-mode channel create initializes discussion metadata', async ()
originChannelId: 'origin-1',
initiatorAgentId: 'agent-a',
initiatorSessionId: 'session-a',
initiatorWorkspaceRoot: '/workspace/agent-a',
discussGuide: 'Decide the callback contract.',
});
} finally {
@@ -190,6 +196,7 @@ test('discuss-callback registers and forwards channel/session/agent context', as
const tool = api.tools.get('discuss-callback');
assert.ok(tool);
assert.ok(tool!.parameters);
const result = await tool!.handler({ summaryPath: 'plans/summary.md' }, {
channelId: 'discussion-1',