Files
hapi/cli/src/modules/common/handlers/opencodeModels.ts
T
2026-05-21 10:53:31 +08:00

27 lines
1.1 KiB
TypeScript

import { logger } from '@/ui/logger';
import { RPC_METHODS } from '@hapi/protocol/rpcMethods';
import type { RpcHandlerManager } from '@/api/rpc/RpcHandlerManager';
import {
listOpencodeModelsForCwd,
type ListOpencodeModelsForCwdRequest,
type ListOpencodeModelsForCwdResponse
} from '../opencodeModels';
import { getErrorMessage, rpcError } from '../rpcResponses';
export function registerOpencodeModelHandlers(rpcHandlerManager: RpcHandlerManager): void {
rpcHandlerManager.registerHandler<ListOpencodeModelsForCwdRequest, ListOpencodeModelsForCwdResponse>(
RPC_METHODS.ListOpencodeModelsForCwd,
async (data) => {
logger.debug('List OpenCode models for cwd request', { cwd: data?.cwd });
try {
const cwd = typeof data?.cwd === 'string' ? data.cwd : '';
return await listOpencodeModelsForCwd(cwd);
} catch (error) {
logger.debug('Failed to list OpenCode models:', error);
return rpcError(getErrorMessage(error, 'Failed to list OpenCode models'));
}
}
);
}