blob: 3eabe192f60cafcd3a2f87433811f495a3874448 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
// Extracted from newOS4 index.html — OllamaModule
class OllamaModule {
constructor() { this.commands = {}; this.terminal = null; }
getHelpInfo() {
return {
'ollama': 'ollama — Open the Ollama model manager UI',
'ollamaconnect': 'ollamaconnect — Connect to the Ollama server',
'ollamadisconnect': 'ollamadisconnect — Disconnect from the Ollama server',
'ollamamodels': 'ollamamodels — List all available models from Ollama',
'ollamasetmodel': 'ollamasetmodel <name> — Set the active Ollama model',
'ollamasetproxy': 'ollamasetproxy [endpoint] — View or change the Ollama endpoint URL',
};
}
registerCommands() {
this.commands['ollama'] = () => { this.terminal.openOllamaManager(); };
this.commands['ollamaconnect'] = async () => {
await this.terminal.ollamaManager.connect();
this.terminal.updateOllamaStatus();
};
this.commands['ollamadisconnect'] = () => {
this.terminal.ollamaManager.connected = false;
this.terminal.ollamaManager.models = [];
this.terminal.print('Ollama disconnected', 'info');
this.terminal.updateOllamaStatus();
};
this.commands['ollamamodels'] = () => {
const models = this.terminal.ollamaManager.getModels();
if(models.length === 0) return this.terminal.print("No models found. Connect first.");
models.forEach(m => this.terminal.print(`${m.name} (${(m.size/1e9).toFixed(1)}GB)`));
};
this.commands['ollamasetmodel'] = (args) => {
if(!args[0]) return this.terminal.print("Usage: ollamasetmodel <name>", 'warning');
this.terminal.ollamaManager.setModel(args[0]);
};
this.commands['ollamasetproxy'] = (args) => {
if(!args[0]) {
const ep = this.terminal.ollamaManager.endpoint;
return this.terminal.print(`Current Ollama endpoint: ${ep}`, 'info');
}
this.terminal.ollamaManager.setEndpoint(args[0]);
this.terminal.print(`Ollama endpoint set to: ${args[0]}`, 'success');
};
this.commands['ai'] = async (args) => {
if(!args[0]) return this.terminal.print("Usage: ai <prompt>", 'warning');
await this.terminal.ollamaManager.chat(args.join(' '));
};
this.commands['ask'] = async (args) => {
if(!args[0]) return this.terminal.print("Usage: ask <prompt>", 'warning');
await this.terminal.ollamaManager.chat(args.join(' '));
};
}
}
|