// 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 — 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 ", '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 ", 'warning');
await this.terminal.ollamaManager.chat(args.join(' '));
};
this.commands['ask'] = async (args) => {
if(!args[0]) return this.terminal.print("Usage: ask ", 'warning');
await this.terminal.ollamaManager.chat(args.join(' '));
};
}
}