diff --git a/src/interface/obsidian/src/chat_view.ts b/src/interface/obsidian/src/chat_view.ts index b76d2808..e6ef59eb 100644 --- a/src/interface/obsidian/src/chat_view.ts +++ b/src/interface/obsidian/src/chat_view.ts @@ -1,9 +1,9 @@ import { ItemView, MarkdownRenderer, Scope, WorkspaceLeaf, request, requestUrl, setIcon, Platform, TFile } from 'obsidian'; import * as DOMPurify from 'isomorphic-dompurify'; -import { KhojSetting } from 'src/settings'; import { KhojPaneView } from 'src/pane_view'; import { KhojView, createCopyParentText, getLinkToEntry, pasteTextAtCursor } from 'src/utils'; import { KhojSearchModal } from 'src/search_modal'; +import Khoj from 'src/main'; import { FileInteractions, EditBlock } from 'src/interact_with_files'; export interface ChatJsonResult { @@ -67,7 +67,6 @@ interface Agent { export class KhojChatView extends KhojPaneView { result: string; - setting: KhojSetting; waitingForLocation: boolean; location: Location = { timezone: Intl.DateTimeFormat().resolvedOptions().timeZone }; keyPressTimeout: NodeJS.Timeout | null = null; @@ -101,8 +100,8 @@ export class KhojChatView extends KhojPaneView { // 2. Higher invalid edit blocks than tolerable private maxEditRetries: number = 1; // Maximum retries for edit blocks - constructor(leaf: WorkspaceLeaf, setting: KhojSetting) { - super(leaf, setting); + constructor(leaf: WorkspaceLeaf, plugin: Khoj) { + super(leaf, plugin); this.fileInteractions = new FileInteractions(this.app); this.waitingForLocation = true; @@ -1190,7 +1189,7 @@ export class KhojChatView extends KhojPaneView { chatUrl += `&conversation_id=${chatBodyEl.dataset.conversationId}`; } - console.log("Fetching chat history from:", chatUrl); + console.debug("Fetching chat history from:", chatUrl); try { let response = await fetch(chatUrl, { @@ -1199,7 +1198,7 @@ export class KhojChatView extends KhojPaneView { }); let responseJson: any = await response.json(); - console.log("Chat history response:", responseJson); + console.debug("Chat history response:", responseJson); chatBodyEl.dataset.conversationId = responseJson.conversation_id; @@ -1221,7 +1220,7 @@ export class KhojChatView extends KhojPaneView { // Update current agent from conversation history if (responseJson.response.agent?.slug) { - console.log("Found agent in conversation history:", responseJson.response.agent); + console.debug("Found agent in conversation history:", responseJson.response.agent); this.currentAgent = responseJson.response.agent.slug; // Update the agent selector if it exists const agentSelect = this.contentEl.querySelector('.khoj-header-agent-select') as HTMLSelectElement; diff --git a/src/interface/obsidian/src/main.ts b/src/interface/obsidian/src/main.ts index 57eab878..86342f64 100644 --- a/src/interface/obsidian/src/main.ts +++ b/src/interface/obsidian/src/main.ts @@ -3,8 +3,8 @@ import { KhojSetting, KhojSettingTab, DEFAULT_SETTINGS } from 'src/settings' import { KhojSearchModal } from 'src/search_modal' import { KhojChatView } from 'src/chat_view' import { KhojSimilarView } from 'src/similar_view' -import { updateContentIndex, canConnectToBackend, KhojView, jumpToPreviousView } from './utils'; -import { KhojPaneView } from './pane_view'; +import { updateContentIndex, canConnectToBackend, KhojView } from 'src/utils'; +import { KhojPaneView } from 'src/pane_view'; export default class Khoj extends Plugin { @@ -136,8 +136,8 @@ export default class Khoj extends Plugin { }); // Register views - this.registerView(KhojView.CHAT, (leaf) => new KhojChatView(leaf, this.settings)); - this.registerView(KhojView.SIMILAR, (leaf) => new KhojSimilarView(leaf, this.settings)); + this.registerView(KhojView.CHAT, (leaf) => new KhojChatView(leaf, this)); + this.registerView(KhojView.SIMILAR, (leaf) => new KhojSimilarView(leaf, this)); // Create an icon in the left ribbon. this.addRibbonIcon('message-circle', 'Khoj', (_: MouseEvent) => { diff --git a/src/interface/obsidian/src/pane_view.ts b/src/interface/obsidian/src/pane_view.ts index 095dfd62..d63a5edd 100644 --- a/src/interface/obsidian/src/pane_view.ts +++ b/src/interface/obsidian/src/pane_view.ts @@ -1,14 +1,17 @@ import { ItemView, WorkspaceLeaf } from 'obsidian'; import { KhojSetting } from 'src/settings'; import { KhojView, populateHeaderPane } from './utils'; +import Khoj from 'src/main'; export abstract class KhojPaneView extends ItemView { setting: KhojSetting; + plugin: Khoj; - constructor(leaf: WorkspaceLeaf, setting: KhojSetting) { + constructor(leaf: WorkspaceLeaf, plugin: Khoj) { super(leaf); - this.setting = setting; + this.setting = plugin.settings; + this.plugin = plugin; // Register Modal Keybindings to send user message // this.scope.register([], 'Enter', async () => { await this.chat() }); diff --git a/src/interface/obsidian/src/similar_view.ts b/src/interface/obsidian/src/similar_view.ts index 2f5306d2..bb1621d3 100644 --- a/src/interface/obsidian/src/similar_view.ts +++ b/src/interface/obsidian/src/similar_view.ts @@ -1,7 +1,7 @@ import { WorkspaceLeaf, TFile, MarkdownRenderer, Notice, setIcon } from 'obsidian'; -import { KhojSetting } from 'src/settings'; import { KhojPaneView } from 'src/pane_view'; import { KhojView, getLinkToEntry, supportedBinaryFileTypes } from 'src/utils'; +import Khoj from 'src/main'; export interface SimilarResult { entry: string; @@ -11,7 +11,6 @@ export interface SimilarResult { export class KhojSimilarView extends KhojPaneView { static iconName: string = "search"; - setting: KhojSetting; currentController: AbortController | null = null; isLoading: boolean = false; loadingEl: HTMLElement; @@ -21,9 +20,8 @@ export class KhojSimilarView extends KhojPaneView { fileWatcher: any; component: any; - constructor(leaf: WorkspaceLeaf, setting: KhojSetting) { - super(leaf, setting); - this.setting = setting; + constructor(leaf: WorkspaceLeaf, plugin: Khoj) { + super(leaf, plugin); this.component = this; }