From 503c747da19feeb42b72f9a420319a487458715c Mon Sep 17 00:00:00 2001 From: STetsing <41009393+STetsing@users.noreply.github.com> Date: Tue, 18 Feb 2025 14:10:51 +0100 Subject: [PATCH 1/4] fixed function signattures --- apps/remix-ide/src/app/plugins/remixAIPlugin.tsx | 12 ++++++------ apps/remixdesktop/src/lib/InferenceServerManager.ts | 8 ++++---- apps/remixdesktop/src/plugins/remixAIDektop.ts | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/remix-ide/src/app/plugins/remixAIPlugin.tsx b/apps/remix-ide/src/app/plugins/remixAIPlugin.tsx index 5853a1e6f9..51c4cea85d 100644 --- a/apps/remix-ide/src/app/plugins/remixAIPlugin.tsx +++ b/apps/remix-ide/src/app/plugins/remixAIPlugin.tsx @@ -111,12 +111,12 @@ export class RemixAIPlugin extends ViewPlugin { async code_completion(prompt: string, promptAfter: string): Promise { if (this.completionAgent.indexer == null || this.completionAgent.indexer == undefined) await this.completionAgent.indexWorkspace() - const currentFile = await this.call('fileManager', 'getCurrentFile') + const currentFileName = await this.call('fileManager', 'getCurrentFile') const contextfiles = await this.completionAgent.getContextFiles(prompt) if (this.isOnDesktop && !this.useRemoteInferencer) { - return await this.call(this.remixDesktopPluginName, 'code_completion', prompt, promptAfter) + return await this.call(this.remixDesktopPluginName, 'code_completion', prompt, promptAfter, contextfiles, currentFileName) } else { - return await this.remoteInferencer.code_completion(prompt, promptAfter, contextfiles, currentFile) + return await this.remoteInferencer.code_completion(prompt, promptAfter, contextfiles, currentFileName) } } @@ -177,13 +177,13 @@ export class RemixAIPlugin extends ViewPlugin { async code_insertion(msg_pfx: string, msg_sfx: string): Promise { if (this.completionAgent.indexer == null || this.completionAgent.indexer == undefined) await this.completionAgent.indexWorkspace() - const currentFile = await this.call('fileManager', 'getCurrentFile') + const currentFileName = await this.call('fileManager', 'getCurrentFile') const contextfiles = await this.completionAgent.getContextFiles(msg_pfx) if (this.isOnDesktop && !this.useRemoteInferencer) { - return await this.call(this.remixDesktopPluginName, 'code_insertion', msg_pfx, msg_sfx) + return await this.call(this.remixDesktopPluginName, 'code_insertion', msg_pfx, msg_sfx, contextfiles, currentFileName) } else { - return await this.remoteInferencer.code_insertion( msg_pfx, msg_sfx, contextfiles, currentFile) + return await this.remoteInferencer.code_insertion( msg_pfx, msg_sfx, contextfiles, currentFileName) } } diff --git a/apps/remixdesktop/src/lib/InferenceServerManager.ts b/apps/remixdesktop/src/lib/InferenceServerManager.ts index ffd6342bca..4ae6910013 100644 --- a/apps/remixdesktop/src/lib/InferenceServerManager.ts +++ b/apps/remixdesktop/src/lib/InferenceServerManager.ts @@ -453,23 +453,23 @@ export class InferenceManager implements ICompletions { } } - async code_completion(prompt, promptAfter, params:IParams=CompletionParams): Promise { + async code_completion(prompt, promptAfter, ctxFiles, currentFileName , params:IParams=CompletionParams): Promise { if (!this.isReady) { console.log('model not ready yet') return } // as of now no prompt required - const payload = { prompt, 'context':promptAfter, ...params } + const payload = { prompt, 'context':promptAfter, ctxFiles, currentFileName, ...params } return this._makeInferenceRequest('code_completion', payload, AIRequestType.COMPLETION) } - async code_insertion(msg_pfx: string, msg_sfx: string, params:IParams=InsertionParams): Promise { + async code_insertion(msg_pfx: string, msg_sfx: string, ctxFiles, currentFileName, params:IParams=InsertionParams): Promise { if (!this.isReady) { console.log('model not ready yet') return } - const payload = { code_pfx:msg_pfx, code_sfx:msg_sfx, ...params } + const payload = { code_pfx:msg_pfx, code_sfx:msg_sfx, ctxFiles, currentFileName, ...params } return this._makeInferenceRequest('code_insertion', payload, AIRequestType.COMPLETION) } diff --git a/apps/remixdesktop/src/plugins/remixAIDektop.ts b/apps/remixdesktop/src/plugins/remixAIDektop.ts index aefd44b30c..e8b1119969 100644 --- a/apps/remixdesktop/src/plugins/remixAIDektop.ts +++ b/apps/remixdesktop/src/plugins/remixAIDektop.ts @@ -82,13 +82,13 @@ class RemixAIDesktopPluginClient extends ElectronBasePluginClient { return true } - async code_completion(prompt: string, promptAfter: string) { + async code_completion(prompt: string, promptAfter: string, ctxFiles=[], fileName: string="") { // use general purpose model - return this.desktopInferencer.code_completion(prompt, promptAfter) + return this.desktopInferencer.code_completion(prompt, promptAfter, ctxFiles, fileName) } - async code_insertion(msg_pfx: string, msg_sfx: string) { - return this.desktopInferencer.code_insertion(msg_pfx, msg_sfx) + async code_insertion(msg_pfx: string, msg_sfx: string, ctxFiles=[], fileName: string="") { + return this.desktopInferencer.code_insertion(msg_pfx, msg_sfx, ctxFiles, fileName) } async code_generation(prompt: string) { From 5ed9c814cae493f74958d76cd1bc913b84f5a450 Mon Sep 17 00:00:00 2001 From: STetsing <41009393+STetsing@users.noreply.github.com> Date: Tue, 18 Feb 2025 14:30:10 +0100 Subject: [PATCH 2/4] sig in api --- .../src/lib/plugins/remixAIDesktop-api.ts | 16 +++++++--------- libs/remix-api/src/lib/plugins/remixai-api.ts | 13 +++++++------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/libs/remix-api/src/lib/plugins/remixAIDesktop-api.ts b/libs/remix-api/src/lib/plugins/remixAIDesktop-api.ts index 9e4cdd4716..4ccd1c7c46 100644 --- a/libs/remix-api/src/lib/plugins/remixAIDesktop-api.ts +++ b/libs/remix-api/src/lib/plugins/remixAIDesktop-api.ts @@ -10,14 +10,12 @@ export interface IRemixAID { } & StatusEvents, methods: { - code_completion(context: string): Promise - code_insertion(msg_pfx: string, msg_sfx: string): Promise, - code_generation(prompt: string): Promise, - code_explaining(code: string, context?: string): Promise, - error_explaining(prompt: string): Promise, - solidity_answer(prompt: string): Promise, - initializeModelBackend(local: boolean, generalModel?, completionModel?): Promise, - chatPipe(pipeMessage: string): Promise, - ProcessChatRequestBuffer(params:IParams): Promise, + code_completion(prompt: string, context: string, params?): Promise + code_insertion(msg_pfx: string, msg_sfx: string, params?): Promise, + code_generation(prompt: string, params?): Promise, + code_explaining(code: string, context?: string, params?): Promise, + error_explaining(prompt: string, context?: string, params?): Promise, + solidity_answer(prompt: string, params?): Promise, + initializeModelBackend(local: boolean, generalModel?, completionModel?): Promise, } } diff --git a/libs/remix-api/src/lib/plugins/remixai-api.ts b/libs/remix-api/src/lib/plugins/remixai-api.ts index 0ea1498151..6128acd96b 100644 --- a/libs/remix-api/src/lib/plugins/remixai-api.ts +++ b/libs/remix-api/src/lib/plugins/remixai-api.ts @@ -9,15 +9,16 @@ export interface IRemixAI { onInferenceDone():void, } & StatusEvents, methods: { - code_completion(context: string): Promise - code_insertion(msg_pfx: string, msg_sfx: string): Promise, - code_generation(prompt: string): Promise, - code_explaining(code: string, context?: string): Promise, - error_explaining(prompt: string): Promise, - solidity_answer(prompt: string): Promise, + code_completion(prompt: string, context: string, params?): Promise + code_insertion(msg_pfx: string, msg_sfx: string, params?): Promise, + code_generation(prompt: string, params?): Promise, + code_explaining(code: string, context?: string, params?): Promise, + error_explaining(prompt: string, context?: string, params?): Promise, + solidity_answer(prompt: string, params?): Promise, initializeModelBackend(local: boolean, generalModel?, completionModel?): Promise, chatPipe(pipeMessage: string): Promise, ProcessChatRequestBuffer(params:IParams): Promise, initialize(model1?:IModel, model2?:IModel, remoteModel?:IRemoteModel, useRemote?:boolean): Promise, + vulnerability_check(prompt: string, params?): Promise, } } \ No newline at end of file From fe2dd4f864810a986d4b87dae874c2f9e1d0df55 Mon Sep 17 00:00:00 2001 From: bunsenstraat Date: Wed, 19 Feb 2025 10:15:33 +0100 Subject: [PATCH 3/4] add types --- package.json | 1 + yarn.lock | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/package.json b/package.json index 602ebf0edf..d1c354cf8c 100644 --- a/package.json +++ b/package.json @@ -265,6 +265,7 @@ "@types/fs-extra": "^9.0.1", "@types/isomorphic-git__lightning-fs": "^4.4.2", "@types/lodash": "^4.14.172", + "@types/lunr": "^2.3.7", "@types/mocha": "^9.1.1", "@types/node": "18.16.1", "@types/react": "^18.2.0", diff --git a/yarn.lock b/yarn.lock index 02bcc12d59..55fabe11a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7582,6 +7582,11 @@ resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== +"@types/lunr@^2.3.7": + version "2.3.7" + resolved "https://registry.yarnpkg.com/@types/lunr/-/lunr-2.3.7.tgz#378a98ecf7a9fafc42466f67f73173c34a6265a0" + integrity sha512-Tb/kUm38e8gmjahQzdCKhbdsvQ9/ppzHFfsJ0dMs3ckqQsRj+P5IkSAwFTBrBxdyr3E/LoMUUrZngjDYAjiE3A== + "@types/mdast@^3.0.0": version "3.0.10" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" From 240ca5dda90b3a063eeb1eaa43e36da1d788ec53 Mon Sep 17 00:00:00 2001 From: bunsenstraat Date: Wed, 19 Feb 2025 10:32:36 +0100 Subject: [PATCH 4/4] lunr --- apps/remixdesktop/package.json | 2 ++ apps/remixdesktop/yarn.lock | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/apps/remixdesktop/package.json b/apps/remixdesktop/package.json index 9020b130fc..27b1f75c69 100644 --- a/apps/remixdesktop/package.json +++ b/apps/remixdesktop/package.json @@ -42,6 +42,7 @@ "@electron/notarize": "^2.3.0", "@types/byline": "^4.2.35", "@types/express": "^4.17.21", + "@types/lunr": "^2.3.7", "@types/nightwatch": "^2.3.23", "chromedriver": "116", "cross-env": "^7.0.3", @@ -78,6 +79,7 @@ "electron-updater": "^6.1.8", "express": "^4.20.0", "isomorphic-git": "^1.24.2", + "lunr": "^2.3.9", "matomo-tracker": "^2.2.4", "node-pty": "^1.0.0", "octokit": "^3.1.2", diff --git a/apps/remixdesktop/yarn.lock b/apps/remixdesktop/yarn.lock index a8b2472ae0..817e6c3f04 100644 --- a/apps/remixdesktop/yarn.lock +++ b/apps/remixdesktop/yarn.lock @@ -1227,6 +1227,11 @@ dependencies: "@types/node" "*" +"@types/lunr@^2.3.7": + version "2.3.7" + resolved "https://registry.yarnpkg.com/@types/lunr/-/lunr-2.3.7.tgz#378a98ecf7a9fafc42466f67f73173c34a6265a0" + integrity sha512-Tb/kUm38e8gmjahQzdCKhbdsvQ9/ppzHFfsJ0dMs3ckqQsRj+P5IkSAwFTBrBxdyr3E/LoMUUrZngjDYAjiE3A== + "@types/mime@*": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" @@ -4941,6 +4946,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + matcher@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz"