1- import { clipboard , BrowserWindow } from "electron" ;
1+ import { clipboard , BrowserWindow , type Config } from "electron" ;
22import type { ClipboardItem } from "../models/ClipboardItem.ts" ;
33import type { DatabaseManager } from "./database.ts" ;
44import log from "electron-log" ;
55import type { EmbeddingService } from "./embeddingService.ts" ;
6+ import type { ConfigManager } from "./configManager.ts" ;
67
78export class ClipboardManager {
89 private history : ClipboardItem [ ] = [ ] ;
@@ -12,15 +13,18 @@ export class ClipboardManager {
1213 private window : BrowserWindow | null = null ;
1314 private db : DatabaseManager ;
1415 private embeddingService : EmbeddingService ;
16+ private configManager : ConfigManager ;
1517
1618 constructor (
1719 window : BrowserWindow ,
1820 database : DatabaseManager ,
19- embeddingService : EmbeddingService
21+ embeddingService : EmbeddingService ,
22+ configManager : ConfigManager
2023 ) {
2124 this . window = window ;
2225 this . db = database ;
2326 this . embeddingService = embeddingService ;
27+ this . configManager = configManager ;
2428 this . loadHistoryFromDB ( ) ;
2529 }
2630
@@ -103,9 +107,12 @@ export class ClipboardManager {
103107 if ( trimmedText && text !== this . lastClipboardText ) {
104108 this . lastClipboardText = text ;
105109
106- const embedding = await this . embeddingService . getEmbedding (
107- trimmedText
108- ) ;
110+ let embedding : number [ ] | undefined ;
111+ if ( this . configManager . isApiKeyConfigured ( ) ) {
112+ embedding = await this . embeddingService . getEmbedding ( trimmedText ) ;
113+ } else {
114+ embedding = undefined ;
115+ }
109116
110117 const item : ClipboardItem = {
111118 type : "text" ,
0 commit comments