Skip to content

Commit 513654d

Browse files
committed
fix
1 parent d9ff943 commit 513654d

8 files changed

Lines changed: 89 additions & 91 deletions

File tree

src/modules/ai.js

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,8 @@ export class AI {
6161
});
6262
break;
6363
case AI_PROVIDERS[2]: // Ollama
64-
let baseUrl = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("Ollama-Host")
65-
? (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("Ollama-Host")
66-
: "http://localhost:11434";
64+
let baseUrl = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("Ollama-Host")
65+
: "http://localhost:11434";
6766
this.modelInstance = new ChatOllama({
6867
baseUrl,
6968
model
@@ -98,7 +97,7 @@ export class AI {
9897
});
9998
break;
10099
case OPENAI_LIKE: // OpenAI-Like providers
101-
const customBaseUrl = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("openai-like-baseurl") || "https://api.openai.com/v1";
100+
const customBaseUrl = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("openai-like-baseurl") || "https://api.openai.com/v1" : "https://api.openai.com/v1"
102101
this.modelInstance = new ChatOpenAI({
103102
apiKey: token,
104103
model,
@@ -118,11 +117,11 @@ export class AI {
118117
async setupAIProvider() {
119118
try {
120119
// Get modules using latest API
121-
const select = this.core.parent?.acodeModules?.select || (typeof acode.require === 'function') ? acode.require("select");
122-
const prompt = this.core.parent?.acodeModules?.prompt || (typeof acode.require === 'function') ? acode.require("prompt");
123-
const loader = this.core.parent?.acodeModules?.loader || (typeof acode.require === 'function') ? acode.require("loader");
120+
const select = this.core.parent?.acodeModules?.select || (typeof acode.require === 'function') ? acode.require("select") : null;
121+
const prompt = this.core.parent?.acodeModules?.prompt || (typeof acode.require === 'function') ? acode.require("prompt") : null;
122+
const loader = this.core.parent?.acodeModules?.loader || (typeof acode.require === 'function') ? acode.require("loader") : null;
124123

125-
let providerName = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-provider");
124+
let providerName = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-provider") : null;
126125
let token;
127126

128127
if (providerName) {
@@ -143,9 +142,9 @@ export class AI {
143142
if (!modelName) return false;
144143

145144
// Save settings
146-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-provider", OPENAI_LIKE);
147-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-model-name", modelName);
148-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("openai-like-baseurl", baseUrl);
145+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-provider", OPENAI_LIKE);
146+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-model-name", modelName);
147+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("openai-like-baseurl", baseUrl);
149148

150149
token = apiKey;
151150
providerName = OPENAI_LIKE;
@@ -178,16 +177,16 @@ export class AI {
178177
const modelName = await select("Select AI Model", modelList);
179178
if (!modelName) return false;
180179

181-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-provider", modelProvider);
182-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-model-name", modelName);
180+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-provider", modelProvider);
181+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-model-name", modelName);
183182
providerName = modelProvider;
184183
token = apiKey;
185184
await this.core.apiKeyManager.saveAPIKey(providerName, token);
186185
if (window.toast) window.toast("Configuration saved💰", 3000);
187186
}
188187
}
189188

190-
let model = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name");
189+
let model = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name") : null;
191190
this.initiateModel(providerName, token, model);
192191
return true;
193192
} catch (error) {
@@ -407,11 +406,11 @@ Act as a super intelligent assistant that understands context and executes actio
407406
* Change AI provider
408407
*/
409408
async changeProvider() {
410-
const select = (typeof acode.require === 'function') ? acode.require("select");
411-
const prompt = (typeof acode.require === 'function') ? acode.require("prompt");
412-
const loader = (typeof acode.require === 'function') ? acode.require("loader");
409+
const select = (typeof acode.require === 'function') ? acode.require("select") : null;
410+
const prompt = (typeof acode.require === 'function') ? acode.require("prompt") : null;
411+
const loader = (typeof acode.require === 'function') ? acode.require("loader") : null;
413412

414-
let previousProvider = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-provider");
413+
let previousProvider = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-provider") : null;
415414
let providerSelectBox = await select("Select AI Provider", AI_PROVIDERS, {
416415
default: previousProvider || ""
417416
});
@@ -430,15 +429,15 @@ Act as a super intelligent assistant that understands context and executes actio
430429
if (!modelName) return;
431430

432431
// Save settings
433-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-provider", OPENAI_LIKE);
434-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-model-name", modelName);
435-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("openai-like-baseurl", baseUrl);
432+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-provider", OPENAI_LIKE);
433+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-model-name", modelName);
434+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("openai-like-baseurl", baseUrl);
436435

437436
await this.core.apiKeyManager.saveAPIKey(OPENAI_LIKE, apiKey);
438437
this.initiateModel(OPENAI_LIKE, apiKey, modelName);
439438
} else {
440439
// Handle other providers
441-
if ((typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem(providerSelectBox) === null) {
440+
if (typeof window !== 'undefined' && window.localStorage && window.localStorage.getItem(providerSelectBox) === null) {
442441
let apiKey =
443442
providerSelectBox == AI_PROVIDERS[2]
444443
? "No Need Of API Key"
@@ -452,18 +451,18 @@ Act as a super intelligent assistant that understands context and executes actio
452451
let modelList = await getModelsFromProvider(providerSelectBox, apiKey);
453452
loader.removeTitleLoader();
454453
let modelName = await select("Select AI Model", modelList);
455-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-provider", providerSelectBox);
456-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-model-name", modelName);
454+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-provider", providerSelectBox);
455+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-model-name", modelName);
457456
await this.core.apiKeyManager.saveAPIKey(providerSelectBox, apiKey);
458457
this.initiateModel(providerSelectBox, apiKey, modelName);
459458
} else {
460459
let apiKey = await this.core.apiKeyManager.getAPIKey(providerSelectBox);
461460
this.initiateModel(
462461
providerSelectBox,
463462
apiKey,
464-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name")
463+
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name") : null
465464
);
466-
}
465+
}
467466
}
468467
}
469468
}
@@ -472,19 +471,19 @@ Act as a super intelligent assistant that understands context and executes actio
472471
* Change AI model
473472
*/
474473
async changeModel() {
475-
const select = (typeof acode.require === 'function') ? acode.require("select");
476-
const prompt = (typeof acode.require === 'function') ? acode.require("prompt");
477-
const loader = (typeof acode.require === 'function') ? acode.require("loader");
474+
const select = (typeof acode.require === 'function') ? acode.require("select") : null;
475+
const prompt = (typeof acode.require === 'function') ? acode.require("prompt") : null;
476+
const loader = (typeof acode.require === 'function') ? acode.require("loader") : null;
478477

479-
let provider = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-provider");
478+
let provider = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-provider") : null;
480479
let apiKey = await this.core.apiKeyManager.getAPIKey(provider);
481480

482481
// Handle OpenAI-Like providers differently
483482
if (provider === OPENAI_LIKE) {
484-
let currentModel = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name") || "";
483+
let currentModel = (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name") || "" : "";
485484
let modelName = await prompt("Enter Model", currentModel, "text", { required: true });
486485
if (modelName) {
487-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-model-name", modelName);
486+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-model-name", modelName);
488487
this.initiateModel(OPENAI_LIKE, apiKey, modelName);
489488
}
490489
} else {
@@ -493,13 +492,13 @@ Act as a super intelligent assistant that understands context and executes actio
493492
window.toast("Fetching available models from your account", 2000);
494493
let modelList = await getModelsFromProvider(provider, apiKey);
495494
loader.removeTitleLoader();
496-
let modelName = await select("Select AI Model", modelList, {
497-
default: (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name") || ""
498-
});
499-
if ((typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name") != modelName) {
500-
(typeof window !== 'undefined' && window.localStorage) ? window.localStorage.setItem("ai-assistant-model-name", modelName);
501-
this.initiateModel(provider, apiKey, modelName);
502-
}
503-
}
504-
}
505-
}
495+
let modelName = await select("Select AI Model", modelList, {
496+
default: (typeof window !== 'undefined' && window.localStorage) ? window.localStorage.getItem("ai-assistant-model-name") || "" : ""
497+
});
498+
if ((typeof window !== 'undefined' && window.localStorage && window.localStorage.getItem("ai-assistant-model-name") != modelName)) {
499+
if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem("ai-assistant-model-name", modelName);
500+
this.initiateModel(provider, apiKey, modelName);
501+
}
502+
}
503+
}
504+
}

src/modules/chat.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ export class Chat {
259259
const codeContent = codeBlock.replace(/```(?:\w+)?\s*([\s\S]*?)\s*```/g, '$1').trim();
260260

261261
try {
262-
const fs = (typeof acode.require === 'function') ? acode.require("fs");
262+
const fs = (typeof acode.require === 'function') ? acode.require("fs") : null;
263263
await fs(filename).writeFile(codeContent);
264264
window.toast(`File created: ${filename}`, 3000);
265265

src/modules/command.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,11 @@ export class Command {
159159
* Setup context menu
160160
*/
161161
setupContextMenu() {
162-
const contextMenu = (typeof acode.require === 'function') ? acode.require("contextMenu");
163-
const select = (typeof acode.require === 'function') ? acode.require("select");
162+
const contextMenu = (typeof acode.require === 'function') ? acode.require("contextMenu") : null;
163+
const select = (typeof acode.require === 'function') ? acode.require("select") : null;
164164

165165
// Add AI actions to selection menu
166-
const selectionMenu = (typeof acode.require === 'function') ? acode.require("selectionMenu");
166+
const selectionMenu = (typeof acode.require === 'function') ? acode.require("selectionMenu") : null;
167167
selectionMenu.add(async () => {
168168
let opt = await select("AI Actions", [
169169
"Explain Code",
@@ -192,7 +192,7 @@ export class Command {
192192
async showAiCommandPalette() {
193193
try {
194194
const availableCommands = this.getAvailableCommands();
195-
const prompt = this.core.parent?.acodeModules?.prompt || (typeof acode.require === 'function') ? acode.require("prompt");
195+
const prompt = this.core.parent?.acodeModules?.prompt || (typeof acode.require === 'function') ? acode.require("prompt") : null;
196196

197197
const userRequest = await prompt(
198198
"Ask AI to run a command (e.g., 'format code', 'toggle sidebar', 'open file')",
@@ -309,7 +309,7 @@ export class Command {
309309
*/
310310
async showAiTerminal() {
311311
try {
312-
const prompt = (typeof acode.require === 'function') ? acode.require("prompt");
312+
const prompt = (typeof acode.require === 'function') ? acode.require("prompt") : null;
313313
const userCommand = await prompt(
314314
"Enter terminal command or describe what you want to do:",
315315
"",
@@ -379,7 +379,7 @@ export class Command {
379379
*/
380380
async executeTerminalCommand(command) {
381381
try {
382-
const prompt = (typeof acode.require === 'function') ? acode.require("prompt");
382+
const prompt = (typeof acode.require === 'function') ? acode.require("prompt") : null;
383383
const confirmation = await prompt(
384384
`Execute: ${command}?`,
385385
"",
@@ -388,7 +388,7 @@ export class Command {
388388
);
389389

390390
if (confirmation !== null) {
391-
const terminal = (typeof acode.require === 'function') ? acode.require("terminal");
391+
const terminal = (typeof acode.require === 'function') ? acode.require("terminal") : null;
392392
const activeFile = editorManager.activeFile;
393393
const workingDir = activeFile?.uri ? activeFile.uri.split('/').slice(0, -1).join('/') : '/';
394394

src/modules/core.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,15 +151,15 @@ export class Core {
151151
async setupAPIKeyManager() {
152152
try {
153153
const secretKeyPath = DATA_STORAGE + "secret.key";
154-
const fsOperation = (typeof acode.require === 'function') ? acode.require("fsOperation");
154+
const fsOperation = (typeof acode.require === 'function') ? acode.require("fsOperation") : null;
155155
const secretKeyFs = await fsOperation(secretKeyPath);
156156

157157
let passPhrase;
158158
if (await secretKeyFs.exists()) {
159159
passPhrase = await secretKeyFs.readFile("utf-8");
160160
} else {
161161
// Use latest prompt API with enhanced options
162-
const prompt = (typeof acode.require === 'function') ? acode.require("prompt");
162+
const prompt = (typeof acode.require === 'function') ? acode.require("prompt") : null;
163163
passPhrase = await prompt(
164164
"Enter a secret pass phrase to save the API key",
165165
"",

0 commit comments

Comments
 (0)