reduce the use of any, part 4

This commit is contained in:
perf3ct 2025-04-16 17:49:43 +00:00
parent 80ea2c3eef
commit 07db19abd8
No known key found for this signature in database
GPG Key ID: 569C4EEC436F5232
4 changed files with 64 additions and 22 deletions

View File

@ -41,8 +41,13 @@ export interface VectorSearchOptions {
summarize?: boolean;
}
// Define a type for the context service
export interface IVectorContextService {
findRelevantNotes?: (query: string, contextNoteId: string | null, options: Record<string, unknown>) => Promise<unknown[]>;
}
export class VectorSearchTool {
private contextService: any = null;
private contextService: IVectorContextService | null = null;
private maxResults: number = 5;
constructor() {
@ -52,7 +57,7 @@ export class VectorSearchTool {
/**
* Set the context service for performing vector searches
*/
setContextService(contextService: any): void {
setContextService(contextService: IVectorContextService): void {
this.contextService = contextService;
log.info('Context service set in VectorSearchTool');
}

View File

@ -9,6 +9,12 @@ import log from '../../log.js';
import becca from '../../../becca/becca.js';
import attributes from '../../attributes.js';
// Define a custom error type guard
function isError(error: unknown): error is Error {
return error instanceof Error || (typeof error === 'object' &&
error !== null && 'message' in error);
}
/**
* Definition of the attribute manager tool
*/
@ -129,9 +135,10 @@ export class AttributeManagerTool implements ToolHandler {
attributeValue: value,
message: `Added attribute ${attributeName}=${value || ''} to note "${note.title}"`
};
} catch (error: any) {
log.error(`Error adding attribute: ${error.message || String(error)}`);
return `Error: ${error.message || String(error)}`;
} catch (error: unknown) {
const errorMessage = isError(error) ? error.message : String(error);
log.error(`Error adding attribute: ${errorMessage}`);
return `Error: ${errorMessage}`;
}
} else if (action === 'remove') {
// Remove an attribute
@ -179,9 +186,10 @@ export class AttributeManagerTool implements ToolHandler {
attributesRemoved: attributesToRemove.length,
message: `Removed ${attributesToRemove.length} attribute(s) from note "${note.title}"`
};
} catch (error: any) {
log.error(`Error removing attribute: ${error.message || String(error)}`);
return `Error: ${error.message || String(error)}`;
} catch (error: unknown) {
const errorMessage = isError(error) ? error.message : String(error);
log.error(`Error removing attribute: ${errorMessage}`);
return `Error: ${errorMessage}`;
}
} else if (action === 'update') {
// Update an attribute
@ -233,16 +241,18 @@ export class AttributeManagerTool implements ToolHandler {
attributesUpdated: attributesToUpdate.length,
message: `Updated ${attributesToUpdate.length} attribute(s) on note "${note.title}"`
};
} catch (error: any) {
log.error(`Error updating attribute: ${error.message || String(error)}`);
return `Error: ${error.message || String(error)}`;
} catch (error: unknown) {
const errorMessage = isError(error) ? error.message : String(error);
log.error(`Error updating attribute: ${errorMessage}`);
return `Error: ${errorMessage}`;
}
} else {
return `Error: Unsupported action "${action}". Supported actions are: add, remove, update, list`;
}
} catch (error: any) {
log.error(`Error executing manage_attributes tool: ${error.message || String(error)}`);
return `Error: ${error.message || String(error)}`;
} catch (error: unknown) {
const errorMessage = isError(error) ? error.message : String(error);
log.error(`Error executing manage_attributes tool: ${errorMessage}`);
return `Error: ${errorMessage}`;
}
}
}

View File

@ -8,6 +8,25 @@ import type { Tool, ToolHandler } from './tool_interfaces.js';
import log from '../../log.js';
import becca from '../../../becca/becca.js';
// Define type for note response
interface NoteResponse {
noteId: string;
title: string;
type: string;
content: string | Buffer;
attributes?: Array<{
name: string;
value: string;
type: string;
}>;
}
// Error type guard
function isError(error: unknown): error is Error {
return error instanceof Error || (typeof error === 'object' &&
error !== null && 'message' in error);
}
/**
* Definition of the read note tool
*/
@ -66,7 +85,7 @@ export class ReadNoteTool implements ToolHandler {
log.info(`Retrieved note content in ${duration}ms, content length: ${content?.length || 0} chars`);
// Prepare the response
const response: any = {
const response: NoteResponse = {
noteId: note.noteId,
title: note.title,
type: note.type,
@ -93,9 +112,10 @@ export class ReadNoteTool implements ToolHandler {
}
return response;
} catch (error: any) {
log.error(`Error executing read_note tool: ${error.message || String(error)}`);
return `Error: ${error.message || String(error)}`;
} catch (error: unknown) {
const errorMessage = isError(error) ? error.message : String(error);
log.error(`Error executing read_note tool: ${errorMessage}`);
return `Error: ${errorMessage}`;
}
}
}

View File

@ -19,6 +19,12 @@ import { CalendarIntegrationTool } from './calendar_integration_tool.js';
import { NoteSummarizationTool } from './note_summarization_tool.js';
import log from '../../log.js';
// Error type guard
function isError(error: unknown): error is Error {
return error instanceof Error || (typeof error === 'object' &&
error !== null && 'message' in error);
}
/**
* Initialize all tools for the LLM
*/
@ -50,8 +56,9 @@ export async function initializeTools(): Promise<void> {
const toolCount = toolRegistry.getAllTools().length;
const toolNames = toolRegistry.getAllTools().map(tool => tool.definition.function.name).join(', ');
log.info(`Successfully registered ${toolCount} LLM tools: ${toolNames}`);
} catch (error: any) {
log.error(`Error initializing LLM tools: ${error.message || String(error)}`);
} catch (error: unknown) {
const errorMessage = isError(error) ? error.message : String(error);
log.error(`Error initializing LLM tools: ${errorMessage}`);
// Don't throw, just log the error to prevent breaking the pipeline
}
}