handlers.tsā¢1.01 kB
import type { GetShortcutsParams, DataStore } from './types.js';
import type { OpusClient } from './opus-client.js';
export async function handleGetShortcuts(
params: GetShortcutsParams,
dataStore: DataStore,
opusClient: OpusClient
): Promise<{ content: Array<{ type: string; text: string }> }> {
// Filter data based on parameters
const relevantData = dataStore.getByFilters({
os: params.os,
desktop: params.desktop,
application: params.application,
});
if (relevantData.length === 0) {
return {
content: [
{
type: 'text',
text: `No shortcut data found for: OS=${params.os}${params.desktop ? `, Desktop=${params.desktop}` : ''}${params.application ? `, App=${params.application}` : ''}`,
},
],
};
}
// Query Opus with filtered data
const response = await opusClient.queryShortcuts(params.query, relevantData);
return {
content: [
{
type: 'text',
text: response,
},
],
};
}