diff --git a/src/client/OpenCodeClient.ts b/src/client/OpenCodeClient.ts index e277277..716b2a7 100644 --- a/src/client/OpenCodeClient.ts +++ b/src/client/OpenCodeClient.ts @@ -62,6 +62,29 @@ export class OpenCodeClient { this.lastPart = null; } + async initializeProject(): Promise { + try { + const url = `${this.apiBaseUrl}/session?directory=${encodeURIComponent(this.projectDirectory)}`; + const response = await fetch(url, { + method: "GET", + headers: { + "x-opencode-directory": this.projectDirectory, + }, + }); + + if (response.ok) { + console.log("[OpenCode] Project initialized:", this.projectDirectory); + return true; + } else { + console.warn("[OpenCode] Project initialization failed:", response.status); + return false; + } + } catch (error) { + console.error("[OpenCode] Project initialization error:", error); + return false; + } + } + getSessionUrl(sessionId: string): string { return `${this.uiBaseUrl}/session/${sessionId}`; } diff --git a/src/main.ts b/src/main.ts index 6475111..c925699 100644 --- a/src/main.ts +++ b/src/main.ts @@ -195,6 +195,10 @@ export default class OpenCodePlugin extends Plugin { const success = await this.processManager.start(); if (success) { new Notice("OpenCode server started"); + const initialized = await this.openCodeClient.initializeProject(); + if (!initialized) { + console.warn("[OpenCode] Failed to initialize project on server"); + } } else { const error = this.processManager.getLastError(); if (error) {