Files
zn-ai/electron/gateway/rpc-dispatch.ts
DEV_DSW 4c61e93c3e Add unit tests for skill capabilities, skill planner, and UV setup
- Implement tests for random ID generation, ensuring preference for crypto.randomUUID.
- Create tests for runtime context capabilities, validating the injection of enabled skill capabilities.
- Add tests for skill capability parsing, including classification and command example extraction.
- Introduce tests for the skill planner, verifying tool call planning based on user requests and attachment requirements.
- Establish tests for UV setup, ensuring proper handling of Python installation scenarios and environment checks.
2026-04-24 17:02:59 +08:00

92 lines
2.4 KiB
TypeScript

import { normalizeAgentSessionKey } from '@runtime/lib/models';
import type { GatewayEvent, GatewayRpcParams } from './types';
import * as chatHandlers from './handlers/chat';
import * as providerHandlers from './handlers/provider';
import * as skillHandlers from './handlers/skills';
type GatewayBroadcast = (event: GatewayEvent) => void;
export function dispatchGatewayRpcMethod(
method: string,
params: unknown,
broadcast: GatewayBroadcast,
): { handled: boolean; result?: unknown } {
switch (method) {
case 'chat.send':
return {
handled: true,
result: chatHandlers.handleChatSend(
params as GatewayRpcParams['chat.send'],
broadcast,
),
};
case 'chat.history':
return {
handled: true,
result: chatHandlers.handleChatHistory(
params as GatewayRpcParams['chat.history'],
),
};
case 'chat.abort':
return {
handled: true,
result: chatHandlers.handleChatAbort(
params as GatewayRpcParams['chat.abort'],
broadcast,
),
};
case 'session.list':
return {
handled: true,
result: chatHandlers.handleSessionList(),
};
case 'session.delete': {
const request = params as GatewayRpcParams['session.delete'];
if (normalizeAgentSessionKey(request.sessionKey).endsWith(':main')) {
return {
handled: true,
result: { success: false },
};
}
return {
handled: true,
result: chatHandlers.handleSessionDelete(request),
};
}
case 'provider.list':
return {
handled: true,
result: providerHandlers.handleProviderList(),
};
case 'provider.getDefault':
return {
handled: true,
result: providerHandlers.handleProviderGetDefault(),
};
case 'skills.status':
return {
handled: true,
result: skillHandlers.handleSkillsStatus(),
};
case 'skills.update':
return {
handled: true,
result: skillHandlers.handleSkillsUpdate(
params as GatewayRpcParams['skills.update'],
broadcast,
),
};
case 'skills.install':
return {
handled: true,
result: skillHandlers.handleSkillsInstall(
params as GatewayRpcParams['skills.install'],
broadcast,
),
};
default:
return { handled: false };
}
}