@codebolt/codeboltjs 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +41 -0
- package/modules/browser.js +88 -0
- package/modules/chat.js +27 -0
- package/modules/codeboltfs.js +119 -0
- package/modules/codeparsers.js +9 -0
- package/modules/codeutils.js +9 -0
- package/modules/crawler.js +63 -0
- package/modules/dbmemory.js +7 -0
- package/modules/docutils.js +5 -0
- package/modules/git.js +3 -0
- package/modules/knowledge.js +0 -0
- package/modules/llm.js +29 -0
- package/modules/outputparsers.js +12 -0
- package/modules/rag.js +10 -0
- package/modules/search.js +18 -0
- package/modules/terminal.js +28 -0
- package/modules/websocket.js +24 -0
- package/package.json +11 -0
package/index.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
|
|
2
|
+
const cbws = require('./modules/websocket.js');
|
|
3
|
+
const cbfs = require('./modules/codeboltfs.js')
|
|
4
|
+
const cbllm = require('./modules/llm.js')
|
|
5
|
+
const cbterminal = require('./modules/terminal.js')
|
|
6
|
+
const cbbrowser = require('./modules/browser.js')
|
|
7
|
+
const cbchat = require('./modules/chat.js')
|
|
8
|
+
const cbcodeutils = require('./modules/codeutils.js')
|
|
9
|
+
const cbdocutils = require('./modules/docutils.js')
|
|
10
|
+
const cbcrawler = require('./modules/crawler.js')
|
|
11
|
+
const cbsearch = require('./modules/search.js')
|
|
12
|
+
const cbknowledge = require('./modules/knowledge.js')
|
|
13
|
+
const cbrag = require('./modules/rag.js')
|
|
14
|
+
const cbcodeparsers = require('./modules/codeparsers.js')
|
|
15
|
+
const cboutputparsers = require('./modules/outputparsers.js')
|
|
16
|
+
|
|
17
|
+
const codebolt = {
|
|
18
|
+
activate: async function () {
|
|
19
|
+
let wsUrl = "ws://localhost:12345/codebolt"
|
|
20
|
+
this.websocket = await cbws.connectToWebSocket(wsUrl);
|
|
21
|
+
},
|
|
22
|
+
start_browser: (objective, url, previous_command, browser_content) => {
|
|
23
|
+
cbbrowser.start();
|
|
24
|
+
},
|
|
25
|
+
websocket: null,
|
|
26
|
+
fs: cbfs,
|
|
27
|
+
llm: cbllm,
|
|
28
|
+
browser: cbbrowser,
|
|
29
|
+
chat: cbchat,
|
|
30
|
+
terminal:cbterminal,
|
|
31
|
+
codeutils:cbcodeutils,
|
|
32
|
+
docutils: cbdocutils,
|
|
33
|
+
crawler: cbcrawler,
|
|
34
|
+
search: cbsearch,
|
|
35
|
+
knowledge: cbknowledge,
|
|
36
|
+
rag: cbrag,
|
|
37
|
+
codeparsers: cbcodeparsers,
|
|
38
|
+
outputparsers: cboutputparsers
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = codebolt;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
const cbws = require('./websocket.js');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
|
|
5
|
+
new_page: () => {
|
|
6
|
+
cbws.websocket.send(JSON.stringify({
|
|
7
|
+
"type": "browserEvent",
|
|
8
|
+
"message": {
|
|
9
|
+
event: 'newPage'
|
|
10
|
+
},
|
|
11
|
+
}));
|
|
12
|
+
},
|
|
13
|
+
gotTo: (url) => {
|
|
14
|
+
cbws.websocket.send(JSON.stringify({
|
|
15
|
+
"type": "browserEvent",
|
|
16
|
+
event: 'goTo',
|
|
17
|
+
url
|
|
18
|
+
|
|
19
|
+
}));
|
|
20
|
+
},
|
|
21
|
+
screenshot: () => {
|
|
22
|
+
cbws.websocket.send(JSON.stringify({
|
|
23
|
+
"type": "browserEvent",
|
|
24
|
+
|
|
25
|
+
event: 'screenshot'
|
|
26
|
+
|
|
27
|
+
}));
|
|
28
|
+
},
|
|
29
|
+
getHTML: () => {
|
|
30
|
+
cbws.websocket.send(JSON.stringify({
|
|
31
|
+
"type": "browserEvent",
|
|
32
|
+
|
|
33
|
+
event: 'getHTML'
|
|
34
|
+
|
|
35
|
+
}));
|
|
36
|
+
},
|
|
37
|
+
getMarkdown: () => {
|
|
38
|
+
cbws.websocket.send(JSON.stringify({
|
|
39
|
+
"type": "browserEvent",
|
|
40
|
+
|
|
41
|
+
event: 'getMarkdown'
|
|
42
|
+
|
|
43
|
+
}));
|
|
44
|
+
},
|
|
45
|
+
getPDF: () => {
|
|
46
|
+
cbws.websocket.send(JSON.stringify({
|
|
47
|
+
"type": "browserEvent",
|
|
48
|
+
|
|
49
|
+
event: 'getPDF'
|
|
50
|
+
|
|
51
|
+
}));
|
|
52
|
+
},
|
|
53
|
+
pdfToText: () => {
|
|
54
|
+
cbws.websocket.send(JSON.stringify({
|
|
55
|
+
"type": "browserEvent",
|
|
56
|
+
|
|
57
|
+
event: 'pdfToText'
|
|
58
|
+
|
|
59
|
+
}));
|
|
60
|
+
},
|
|
61
|
+
getContent: () => {
|
|
62
|
+
cbws.websocket.send(JSON.stringify({
|
|
63
|
+
"type": "browserEvent",
|
|
64
|
+
|
|
65
|
+
eventType: 'getContent'
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
}));
|
|
69
|
+
},
|
|
70
|
+
extractText: () => {
|
|
71
|
+
cbws.websocket.send(JSON.stringify({
|
|
72
|
+
"type": "browserEvent",
|
|
73
|
+
|
|
74
|
+
eventType: 'extractText'
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
}));
|
|
78
|
+
},
|
|
79
|
+
close: () => {
|
|
80
|
+
cbws.websocket.send(JSON.stringify({
|
|
81
|
+
"type": "browserEvent",
|
|
82
|
+
|
|
83
|
+
event: 'close'
|
|
84
|
+
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
package/modules/chat.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const cbws = require('./websocket.js');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
sendMessage(message) {
|
|
5
|
+
console.log(message)
|
|
6
|
+
cbws.websocket.send(JSON.stringify({
|
|
7
|
+
"type": "sendMessage",
|
|
8
|
+
"message": message
|
|
9
|
+
}))
|
|
10
|
+
},
|
|
11
|
+
waitforReply(message) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
cbws.websocket.send(JSON.stringify({
|
|
14
|
+
"type": "waitforReply",
|
|
15
|
+
"message": message
|
|
16
|
+
}));
|
|
17
|
+
cbws.websocket.on('message', (data) => {
|
|
18
|
+
const response = JSON.parse(data);
|
|
19
|
+
if (response.type === "messageResponse") {
|
|
20
|
+
resolve(response); // Resolve the Promise with the response data
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
}
|
|
27
|
+
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
const cbws = require('./websocket.js');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
createFile: (fileName, source, filePath) => {
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
|
+
cbws.websocket.send(JSON.stringify({
|
|
7
|
+
"type": "createFile",
|
|
8
|
+
"message": {
|
|
9
|
+
fileName,
|
|
10
|
+
source,
|
|
11
|
+
filePath
|
|
12
|
+
},
|
|
13
|
+
}));
|
|
14
|
+
cbws.websocket.on('message', (data) => {
|
|
15
|
+
const response = JSON.parse(data);
|
|
16
|
+
// console.log(response);
|
|
17
|
+
if (response.type === "createFileResponse") {
|
|
18
|
+
resolve(response);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
});
|
|
22
|
+
})
|
|
23
|
+
},
|
|
24
|
+
createFolder: (foldderName, folderPath) => {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
cbws.websocket.send(JSON.stringify({
|
|
27
|
+
"type": "createFolder",
|
|
28
|
+
"message": {
|
|
29
|
+
foldderName,
|
|
30
|
+
folderPath
|
|
31
|
+
},
|
|
32
|
+
}));
|
|
33
|
+
cbws.websocket.on('message', (data) => {
|
|
34
|
+
const response = JSON.parse(data);
|
|
35
|
+
// console.log(response);
|
|
36
|
+
if (response.type === "createFolderResponse") {
|
|
37
|
+
resolve(response);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
readFile: (filename, filePath) => {
|
|
44
|
+
return new Promise((resolve, reject) => {
|
|
45
|
+
cbws.websocket.send(JSON.stringify({
|
|
46
|
+
"type": "readFile",
|
|
47
|
+
"message": {
|
|
48
|
+
filename,
|
|
49
|
+
filePath
|
|
50
|
+
},
|
|
51
|
+
}));
|
|
52
|
+
cbws.websocket.on('message', (data) => {
|
|
53
|
+
const response = JSON.parse(data);
|
|
54
|
+
// console.log(response);
|
|
55
|
+
if (response.type === "readFileResponse") {
|
|
56
|
+
resolve(response);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
},
|
|
63
|
+
updateFile: (filename, filePath, newContent) => {
|
|
64
|
+
return new Promise((resolve, reject) => {
|
|
65
|
+
cbws.websocket.send(JSON.stringify({
|
|
66
|
+
"type": "updateFile",
|
|
67
|
+
"message": {
|
|
68
|
+
filename,
|
|
69
|
+
filePath,
|
|
70
|
+
newContent
|
|
71
|
+
},
|
|
72
|
+
}));
|
|
73
|
+
cbws.websocket.on('message', (data) => {
|
|
74
|
+
const response = JSON.parse(data);
|
|
75
|
+
// console.log(response);
|
|
76
|
+
if (response.type === "commandOutput") {
|
|
77
|
+
resolve(response);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
});
|
|
81
|
+
})
|
|
82
|
+
},
|
|
83
|
+
deleteFile: (filename, filePath) => {
|
|
84
|
+
return new Promise((resolve, reject) => {
|
|
85
|
+
cbws.websocket.send(JSON.stringify({
|
|
86
|
+
"type": "deleteFile",
|
|
87
|
+
"message": {
|
|
88
|
+
filename,
|
|
89
|
+
filePath
|
|
90
|
+
},
|
|
91
|
+
}));
|
|
92
|
+
cbws.websocket.on('message', (data) => {
|
|
93
|
+
const response = JSON.parse(data);
|
|
94
|
+
// console.log(response);
|
|
95
|
+
if (response.type === "deleteFileResponse") {
|
|
96
|
+
resolve(response);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
})
|
|
100
|
+
},
|
|
101
|
+
deleteFolder: (foldername) => {
|
|
102
|
+
return new Promise((resolve, reject) => {
|
|
103
|
+
cbws.websocket.send(JSON.stringify({
|
|
104
|
+
"type": "deleteFolder",
|
|
105
|
+
"message": {
|
|
106
|
+
foldername
|
|
107
|
+
},
|
|
108
|
+
}));
|
|
109
|
+
cbws.websocket.on('message', (data) => {
|
|
110
|
+
const response = JSON.parse(data);
|
|
111
|
+
// console.log(response);
|
|
112
|
+
if (response.type === "deleteFolderResponse") {
|
|
113
|
+
resolve(response);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
});
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
const cbws = require('./websocket.js');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
start: () => {
|
|
5
|
+
cbws.websocket.send(JSON.stringify({
|
|
6
|
+
"type": "crawlerEvent",
|
|
7
|
+
event: 'start'
|
|
8
|
+
}));
|
|
9
|
+
},
|
|
10
|
+
screenshot: () => {
|
|
11
|
+
cbws.websocket.send(JSON.stringify({
|
|
12
|
+
"type": "crawlerEvent",
|
|
13
|
+
event: 'screenshot'
|
|
14
|
+
}));
|
|
15
|
+
},
|
|
16
|
+
goToPage: (url) => {
|
|
17
|
+
cbws.websocket.send(JSON.stringify({
|
|
18
|
+
"type": "crawlerEvent",
|
|
19
|
+
event: 'goToPage',
|
|
20
|
+
url
|
|
21
|
+
|
|
22
|
+
}));
|
|
23
|
+
},
|
|
24
|
+
scroll: (direction) => {
|
|
25
|
+
cbws.websocket.send(JSON.stringify({
|
|
26
|
+
"type": "crawlerEvent",
|
|
27
|
+
event: 'scroll',
|
|
28
|
+
direction
|
|
29
|
+
|
|
30
|
+
}));
|
|
31
|
+
},
|
|
32
|
+
click: (id) => {
|
|
33
|
+
cbws.websocket.send(JSON.stringify({
|
|
34
|
+
"type": "crawlerEvent",
|
|
35
|
+
event: 'click',
|
|
36
|
+
id
|
|
37
|
+
|
|
38
|
+
}));
|
|
39
|
+
},
|
|
40
|
+
type: (id, text) => {
|
|
41
|
+
cbws.websocket.send(JSON.stringify({
|
|
42
|
+
"type": "crawlerEvent",
|
|
43
|
+
event: 'type',
|
|
44
|
+
id,
|
|
45
|
+
text
|
|
46
|
+
}));
|
|
47
|
+
},
|
|
48
|
+
enter: () => {
|
|
49
|
+
cbws.websocket.send(JSON.stringify({
|
|
50
|
+
"type": "crawlerEvent",
|
|
51
|
+
|
|
52
|
+
event: 'enter'
|
|
53
|
+
}));
|
|
54
|
+
},
|
|
55
|
+
crawl: () => {
|
|
56
|
+
cbws.websocket.send(JSON.stringify({
|
|
57
|
+
"type": "crawlerEvent",
|
|
58
|
+
|
|
59
|
+
event: 'crawl'
|
|
60
|
+
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
};
|
package/modules/git.js
ADDED
|
File without changes
|
package/modules/llm.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const cbws = require('./websocket.js');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
|
|
5
|
+
chat: async (message, model ,provider,apiEndPoint) => {
|
|
6
|
+
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
cbws.websocket.send(JSON.stringify({
|
|
9
|
+
"type": "askLLM",
|
|
10
|
+
"message": {
|
|
11
|
+
prompt: message,
|
|
12
|
+
model,
|
|
13
|
+
provider,
|
|
14
|
+
apiEndPoint
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
}));
|
|
18
|
+
cbws.websocket.on('message', (data) => {
|
|
19
|
+
const response = JSON.parse(data);
|
|
20
|
+
if (response.type === "llmResponse") {
|
|
21
|
+
resolve(response); // Resolve the Promise with the response data
|
|
22
|
+
} else {
|
|
23
|
+
reject(new Error("Unexpected response type"));
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
init: (output) => {
|
|
3
|
+
},
|
|
4
|
+
//This Returns all the Errorrs in the project Execution
|
|
5
|
+
parseErrors: (output) => {
|
|
6
|
+
// return output.split('\n').filter((line) => line.includes('Error:'));
|
|
7
|
+
},
|
|
8
|
+
parseWarnings: (output) => {
|
|
9
|
+
// return output.split('\n').filter((line) => line.includes('Warning:'));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
package/modules/rag.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
init: (engine="bing") => {
|
|
3
|
+
console.log("Initializing Search Module");
|
|
4
|
+
},
|
|
5
|
+
search: async (query) => {
|
|
6
|
+
console.log("Searching for " + query);
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
resolve("Search Results");
|
|
9
|
+
});
|
|
10
|
+
},
|
|
11
|
+
get_first_link: async (query) => {
|
|
12
|
+
console.log("Getting first link for " + query);
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
|
+
resolve("First Link");
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const cbws = require('./websocket.js');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
|
|
5
|
+
executeCommand: async (command) => {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
cbws.websocket.send(JSON.stringify({
|
|
8
|
+
"type": "executeCommand",
|
|
9
|
+
"message": command,
|
|
10
|
+
}));
|
|
11
|
+
cbws.websocket.on('message', (data) => {
|
|
12
|
+
const response = JSON.parse(data);
|
|
13
|
+
// console.log(response);
|
|
14
|
+
if (response.type === "commandOutput") {
|
|
15
|
+
resolve(response);
|
|
16
|
+
}
|
|
17
|
+
else if (response.type === "commandError") {
|
|
18
|
+
resolve(response);
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
else if (response.type === "commandFinish") {
|
|
22
|
+
resolve(response);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const { WebSocket } = require('ws');
|
|
2
|
+
module.exports = {
|
|
3
|
+
websocket: null,
|
|
4
|
+
connectToWebSocket: function (url) {
|
|
5
|
+
return new Promise((resolve, reject)=> {
|
|
6
|
+
|
|
7
|
+
this.websocket = new WebSocket(url);
|
|
8
|
+
let socket=this.websocket;
|
|
9
|
+
this.websocket.on('error', function (error) {
|
|
10
|
+
console.log('error', error);
|
|
11
|
+
reject(error);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
this.websocket.on('open', function open() {
|
|
15
|
+
console.log('connected to websocket');
|
|
16
|
+
resolve(socket);
|
|
17
|
+
});
|
|
18
|
+
this.websocket.on('message', (data) => {
|
|
19
|
+
console.log('received: %s', data);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|