- 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.
92 lines
2.4 KiB
TypeScript
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 };
|
|
}
|
|
}
|