4runr-os 1.0.9 → 1.0.10

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/dist/index.js CHANGED
@@ -8,6 +8,8 @@ import * as fs from 'fs';
8
8
  import * as path from 'path';
9
9
  import * as os from 'os';
10
10
  import { GatewayClient } from './gateway-client.js';
11
+ import { executeLocalModel, verifyLocalModelServer } from './local-model-executor.js';
12
+ import { checkOllamaInstallation, installOllama, startOllamaServer, downloadModel, verifyLocalExecution } from './local-setup.js';
11
13
  // ANSI colors
12
14
  const colors = {
13
15
  reset: '\x1b[0m',
@@ -497,11 +499,96 @@ const commands = {
497
499
  console.log(`${red}Invalid choice${reset}\n`);
498
500
  return;
499
501
  }
500
- localModelName = await prompt(rl, `${cyan}Model name (e.g., llama2, mistral, gpt-3.5-turbo):${reset} `);
502
+ // Integrated setup - automatically install and configure
503
+ console.log(`\n${bright}Setting up local model environment...${reset}`);
504
+ if (localModelProvider === 'ollama') {
505
+ // Check if Ollama is installed
506
+ const ollamaCheck = await checkOllamaInstallation();
507
+ if (!ollamaCheck.ollamaInstalled) {
508
+ console.log(`${yellow}Ollama not found. Installing automatically...${reset}`);
509
+ const installResult = await installOllama();
510
+ if (!installResult.success) {
511
+ console.log(`${red}✗ ${installResult.message}${reset}\n`);
512
+ const continueChoice = await prompt(rl, `${yellow}Continue anyway? (y/n):${reset} `);
513
+ if (continueChoice?.toLowerCase() !== 'y') {
514
+ console.log(`${gray}Agent creation cancelled${reset}\n`);
515
+ return;
516
+ }
517
+ }
518
+ else {
519
+ console.log(`${green}✓ ${installResult.message}${reset}`);
520
+ }
521
+ }
522
+ // Start server if not running
523
+ const serverCheck = await checkOllamaInstallation();
524
+ if (!serverCheck.success) {
525
+ console.log(`${dim}Starting Ollama server...${reset}`);
526
+ const startResult = await startOllamaServer();
527
+ if (startResult.success) {
528
+ console.log(`${green}✓ ${startResult.message}${reset}`);
529
+ }
530
+ else {
531
+ console.log(`${yellow}⚠ ${startResult.message}${reset}`);
532
+ }
533
+ }
534
+ // Get available models
535
+ const finalCheck = await checkOllamaInstallation();
536
+ if (finalCheck.modelsAvailable && finalCheck.modelsAvailable.length > 0) {
537
+ console.log(`${green}✓ Ollama is ready${reset}`);
538
+ console.log(`${dim}Available models: ${finalCheck.modelsAvailable.join(', ')}${reset}`);
539
+ }
540
+ else {
541
+ console.log(`${yellow}⚠ No models installed yet${reset}`);
542
+ }
543
+ }
544
+ else if (localModelProvider === 'lm-studio') {
545
+ // LM Studio - check if running
546
+ const verification = await verifyLocalModelServer('lm-studio', localModelUrl);
547
+ if (!verification.available) {
548
+ console.log(`${yellow}⚠ LM Studio server not running${reset}`);
549
+ console.log(`${dim}Please start LM Studio and click "Start Server" in the Chat tab${reset}`);
550
+ const continueChoice = await prompt(rl, `${yellow}Continue anyway? (y/n):${reset} `);
551
+ if (continueChoice?.toLowerCase() !== 'y') {
552
+ console.log(`${gray}Agent creation cancelled${reset}\n`);
553
+ return;
554
+ }
555
+ }
556
+ else {
557
+ console.log(`${green}✓ LM Studio server is running${reset}`);
558
+ if (verification.models && verification.models.length > 0) {
559
+ console.log(`${dim}Available models: ${verification.models.join(', ')}${reset}`);
560
+ }
561
+ }
562
+ }
563
+ // Get model name
564
+ localModelName = await prompt(rl, `\n${cyan}Model name (e.g., llama2, mistral, gpt-3.5-turbo):${reset} `);
501
565
  if (!localModelName) {
502
566
  console.log(`${red}Model name required${reset}\n`);
503
567
  return;
504
568
  }
569
+ // Auto-download model if using Ollama and model not found
570
+ if (localModelProvider === 'ollama') {
571
+ const finalCheck = await checkOllamaInstallation();
572
+ if (finalCheck.modelsAvailable && !finalCheck.modelsAvailable.includes(localModelName)) {
573
+ console.log(`\n${yellow}Model '${localModelName}' not found${reset}`);
574
+ const downloadChoice = await prompt(rl, `${cyan}Download it now? (y/n):${reset} `);
575
+ if (downloadChoice?.toLowerCase() === 'y') {
576
+ console.log(`\n${dim}Downloading model (this may take several minutes)...${reset}`);
577
+ const downloadResult = await downloadModel(localModelName);
578
+ if (downloadResult.success) {
579
+ console.log(`${green}✓ ${downloadResult.message}${reset}`);
580
+ }
581
+ else {
582
+ console.log(`${red}✗ ${downloadResult.message}${reset}`);
583
+ const continueChoice = await prompt(rl, `${yellow}Continue anyway? (y/n):${reset} `);
584
+ if (continueChoice?.toLowerCase() !== 'y') {
585
+ console.log(`${gray}Agent creation cancelled${reset}\n`);
586
+ return;
587
+ }
588
+ }
589
+ }
590
+ }
591
+ }
505
592
  baseAgent = `local:${localModelProvider}:${localModelName}`;
506
593
  }
507
594
  else {
@@ -718,7 +805,13 @@ const commands = {
718
805
  let agentConfig = null;
719
806
  if (customAgent) {
720
807
  // Use custom agent
721
- actualAgentId = customAgent.baseAgent;
808
+ // For local models, use gpt-3.5-turbo as the base executor (gateway handles local models)
809
+ if (customAgent.useLocalModel) {
810
+ actualAgentId = 'gpt-3.5-turbo';
811
+ }
812
+ else {
813
+ actualAgentId = customAgent.baseAgent;
814
+ }
722
815
  agentConfig = customAgent;
723
816
  }
724
817
  else {
@@ -1206,50 +1299,104 @@ async function startREPL() {
1206
1299
  try {
1207
1300
  // Get custom agent config if available
1208
1301
  const agentConfig = rl.chatAgentConfig;
1209
- // Create and execute run
1210
- const run = await client.runs.create({
1211
- name: `${chatAgent}: ${message.substring(0, 50)}...`,
1212
- input: {
1213
- agent_id: chatAgent,
1214
- data: {
1215
- prompt: message,
1216
- // Include custom agent settings
1217
- ...(agentConfig?.systemPrompt && { systemPrompt: agentConfig.systemPrompt }),
1218
- ...(agentConfig?.temperature !== undefined && { temperature: agentConfig.temperature }),
1219
- ...(agentConfig?.maxTokens !== undefined && { maxTokens: agentConfig.maxTokens }),
1220
- ...(conversationHistory.length > 0 && { conversationHistory })
1221
- }
1302
+ // Check if this is a local model agent - execute directly (bypass gateway)
1303
+ if (agentConfig?.useLocalModel && agentConfig.localModelProvider && agentConfig.localModelName) {
1304
+ // Execute locally - this is the REAL local execution
1305
+ const messages = [];
1306
+ // Add system prompt
1307
+ if (agentConfig.systemPrompt) {
1308
+ messages.push({ role: 'system', content: agentConfig.systemPrompt });
1222
1309
  }
1223
- });
1224
- await client.runs.start(run.id);
1225
- // Monitor execution
1226
- let status = await client.runs.get(run.id);
1227
- while (status.status === 'running' || status.status === 'queued') {
1228
- await sleep(500);
1229
- status = await client.runs.get(run.id);
1230
- }
1231
- // Clear thinking indicator
1232
- process.stdout.write(`\r${' '.repeat(20)}\r`);
1233
- if (status.output) {
1234
- const output = status.output;
1235
- const response = output.result || output.message || JSON.stringify(output, null, 2);
1310
+ // Add conversation history
1311
+ if (conversationHistory.length > 0) {
1312
+ messages.push(...conversationHistory);
1313
+ }
1314
+ // Add current message
1315
+ messages.push({ role: 'user', content: message });
1316
+ // Execute local model directly
1317
+ const localConfig = {
1318
+ provider: agentConfig.localModelProvider,
1319
+ model: agentConfig.localModelName,
1320
+ baseUrl: agentConfig.localModelUrl,
1321
+ temperature: agentConfig.temperature,
1322
+ maxTokens: agentConfig.maxTokens,
1323
+ topP: agentConfig.topP,
1324
+ frequencyPenalty: agentConfig.frequencyPenalty,
1325
+ presencePenalty: agentConfig.presencePenalty,
1326
+ };
1327
+ // PROOF: Verify execution is truly local before executing
1328
+ const localProof = await verifyLocalExecution();
1329
+ if (!localProof.isLocal) {
1330
+ console.log(`${red}⚠ WARNING: Local execution verification failed!${reset}`);
1331
+ console.log(`${yellow}This may indicate the request is going through a remote server.${reset}\n`);
1332
+ }
1333
+ const result = await executeLocalModel(localConfig, messages);
1334
+ // Clear thinking indicator
1335
+ process.stdout.write(`\r${' '.repeat(20)}\r`);
1236
1336
  // Update conversation history
1237
1337
  conversationHistory.push({ role: 'user', content: message });
1238
- conversationHistory.push({ role: 'assistant', content: response });
1239
- // Show response with friendly name
1240
- const agentConfig = rl.chatAgentConfig;
1241
- const friendlyName = agentConfig ? agentConfig.name :
1242
- chatAgent === 'gpt-3.5-turbo' ? 'Assistant' :
1243
- chatAgent === 'gpt-4' ? 'GPT-4' :
1244
- chatAgent;
1245
- console.log(`${green}${friendlyName}:${reset} ${response}\n`);
1246
- // Show usage if available
1247
- if (output.usage) {
1248
- console.log(`${gray}Tokens: ${output.usage.totalTokens || 'N/A'} | Cost: $${(output.cost || 0).toFixed(6)}${reset}\n`);
1338
+ conversationHistory.push({ role: 'assistant', content: result.result });
1339
+ // Show response with proof it's local
1340
+ console.log(`${green}${agentConfig.name}:${reset} ${result.result}\n`);
1341
+ // Show usage and proof
1342
+ if (result.usage) {
1343
+ console.log(`${gray}Tokens: ${result.usage.totalTokens || 'N/A'} | Model: ${result.model} | Cost: $0.000000 (local)${reset}`);
1344
+ console.log(`${dim}✓ Executed locally (${localProof.proof.executionPath}) | Response time: ${localProof.proof.responseTime}ms${reset}\n`);
1249
1345
  }
1250
1346
  }
1251
1347
  else {
1252
- console.log(`${yellow}No response received${reset}\n`);
1348
+ // Remote model - execute through gateway
1349
+ const run = await client.runs.create({
1350
+ name: `${chatAgent}: ${message.substring(0, 50)}...`,
1351
+ input: {
1352
+ agent_id: chatAgent,
1353
+ data: {
1354
+ prompt: message,
1355
+ // Include custom agent settings
1356
+ ...(agentConfig?.systemPrompt && { systemPrompt: agentConfig.systemPrompt }),
1357
+ ...(agentConfig?.temperature !== undefined && { temperature: agentConfig.temperature }),
1358
+ ...(agentConfig?.maxTokens !== undefined && { maxTokens: agentConfig.maxTokens }),
1359
+ // Advanced parameters
1360
+ ...(agentConfig?.topP !== undefined && { topP: agentConfig.topP }),
1361
+ ...(agentConfig?.frequencyPenalty !== undefined && { frequencyPenalty: agentConfig.frequencyPenalty }),
1362
+ ...(agentConfig?.presencePenalty !== undefined && { presencePenalty: agentConfig.presencePenalty }),
1363
+ // Tools
1364
+ ...(agentConfig?.tools && agentConfig.tools.length > 0 && { tools: agentConfig.tools }),
1365
+ // Always include conversation history for context
1366
+ conversationHistory: conversationHistory.length > 0 ? conversationHistory : []
1367
+ }
1368
+ }
1369
+ });
1370
+ await client.runs.start(run.id);
1371
+ // Monitor execution
1372
+ let status = await client.runs.get(run.id);
1373
+ while (status.status === 'running' || status.status === 'queued') {
1374
+ await sleep(500);
1375
+ status = await client.runs.get(run.id);
1376
+ }
1377
+ // Clear thinking indicator
1378
+ process.stdout.write(`\r${' '.repeat(20)}\r`);
1379
+ if (status.output) {
1380
+ const output = status.output;
1381
+ const response = output.result || output.message || JSON.stringify(output, null, 2);
1382
+ // Update conversation history
1383
+ conversationHistory.push({ role: 'user', content: message });
1384
+ conversationHistory.push({ role: 'assistant', content: response });
1385
+ // Show response with friendly name
1386
+ const agentConfig = rl.chatAgentConfig;
1387
+ const friendlyName = agentConfig ? agentConfig.name :
1388
+ chatAgent === 'gpt-3.5-turbo' ? 'Assistant' :
1389
+ chatAgent === 'gpt-4' ? 'GPT-4' :
1390
+ chatAgent;
1391
+ console.log(`${green}${friendlyName}:${reset} ${response}\n`);
1392
+ // Show usage if available
1393
+ if (output.usage) {
1394
+ console.log(`${gray}Tokens: ${output.usage.totalTokens || 'N/A'} | Cost: $${(output.cost || 0).toFixed(6)}${reset}\n`);
1395
+ }
1396
+ }
1397
+ else {
1398
+ console.log(`${yellow}No response received${reset}\n`);
1399
+ }
1253
1400
  }
1254
1401
  }
1255
1402
  catch (error) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Local Model Executor
3
+ * Executes local models directly on the user's machine (bypasses gateway)
4
+ * This ensures local models actually work and feel integrated
5
+ */
6
+ export interface LocalModelConfig {
7
+ provider: 'ollama' | 'lm-studio' | 'custom';
8
+ baseUrl?: string;
9
+ model: string;
10
+ temperature?: number;
11
+ maxTokens?: number;
12
+ topP?: number;
13
+ frequencyPenalty?: number;
14
+ presencePenalty?: number;
15
+ }
16
+ export interface LocalModelResponse {
17
+ result: string;
18
+ model: string;
19
+ usage?: {
20
+ totalTokens?: number;
21
+ promptTokens?: number;
22
+ completionTokens?: number;
23
+ };
24
+ cost: number;
25
+ }
26
+ /**
27
+ * Execute a local model request directly (no gateway)
28
+ */
29
+ export declare function executeLocalModel(config: LocalModelConfig, messages: Array<{
30
+ role: string;
31
+ content: string;
32
+ }>): Promise<LocalModelResponse>;
33
+ /**
34
+ * Verify local model server is running
35
+ */
36
+ export declare function verifyLocalModelServer(provider: 'ollama' | 'lm-studio' | 'custom', baseUrl?: string): Promise<{
37
+ available: boolean;
38
+ error?: string;
39
+ models?: string[];
40
+ }>;
41
+ //# sourceMappingURL=local-model-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-model-executor.d.ts","sourceRoot":"","sources":["../src/local-model-executor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACjD,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAyKD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,EAC3C,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqCpE"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Local Model Executor
3
+ * Executes local models directly on the user's machine (bypasses gateway)
4
+ * This ensures local models actually work and feel integrated
5
+ */
6
+ /**
7
+ * Execute a local model request directly (no gateway)
8
+ */
9
+ export async function executeLocalModel(config, messages) {
10
+ const baseUrl = config.baseUrl || getDefaultBaseUrl(config.provider);
11
+ if (config.provider === 'ollama') {
12
+ return executeOllama(baseUrl, config, messages);
13
+ }
14
+ else if (config.provider === 'lm-studio') {
15
+ return executeLMStudio(baseUrl, config, messages);
16
+ }
17
+ else if (config.provider === 'custom') {
18
+ return executeCustom(baseUrl, config, messages);
19
+ }
20
+ else {
21
+ throw new Error(`Unsupported local model provider: ${config.provider}`);
22
+ }
23
+ }
24
+ function getDefaultBaseUrl(provider) {
25
+ switch (provider) {
26
+ case 'ollama':
27
+ return 'http://localhost:11434';
28
+ case 'lm-studio':
29
+ return 'http://localhost:1234';
30
+ case 'custom':
31
+ return 'http://localhost:8000';
32
+ default:
33
+ return 'http://localhost:11434';
34
+ }
35
+ }
36
+ /**
37
+ * Execute Ollama model
38
+ */
39
+ async function executeOllama(baseUrl, config, messages) {
40
+ const prompt = formatMessagesForOllama(messages);
41
+ const response = await fetch(`${baseUrl}/api/generate`, {
42
+ method: 'POST',
43
+ headers: {
44
+ 'Content-Type': 'application/json',
45
+ },
46
+ body: JSON.stringify({
47
+ model: config.model,
48
+ prompt: prompt,
49
+ stream: false,
50
+ options: {
51
+ temperature: config.temperature ?? 0.7,
52
+ top_p: config.topP,
53
+ num_predict: config.maxTokens,
54
+ },
55
+ }),
56
+ });
57
+ if (!response.ok) {
58
+ const error = await response.text();
59
+ throw new Error(`Ollama API error: ${response.status} - ${error}`);
60
+ }
61
+ const data = await response.json();
62
+ return {
63
+ result: data.response || 'No response',
64
+ model: config.model,
65
+ usage: {
66
+ totalTokens: data.eval_count ? (data.prompt_eval_count || 0) + data.eval_count : undefined,
67
+ promptTokens: data.prompt_eval_count,
68
+ completionTokens: data.eval_count,
69
+ },
70
+ cost: 0,
71
+ };
72
+ }
73
+ /**
74
+ * Execute LM Studio model (OpenAI-compatible API)
75
+ */
76
+ async function executeLMStudio(baseUrl, config, messages) {
77
+ const response = await fetch(`${baseUrl}/v1/chat/completions`, {
78
+ method: 'POST',
79
+ headers: {
80
+ 'Content-Type': 'application/json',
81
+ },
82
+ body: JSON.stringify({
83
+ model: config.model,
84
+ messages: messages,
85
+ temperature: config.temperature ?? 0.7,
86
+ max_tokens: config.maxTokens,
87
+ top_p: config.topP,
88
+ frequency_penalty: config.frequencyPenalty,
89
+ presence_penalty: config.presencePenalty,
90
+ }),
91
+ });
92
+ if (!response.ok) {
93
+ const error = await response.text();
94
+ throw new Error(`LM Studio API error: ${response.status} - ${error}`);
95
+ }
96
+ const data = await response.json();
97
+ const usage = data.usage || {};
98
+ return {
99
+ result: data.choices?.[0]?.message?.content || 'No response',
100
+ model: data.model || config.model,
101
+ usage: {
102
+ totalTokens: usage.total_tokens,
103
+ promptTokens: usage.prompt_tokens,
104
+ completionTokens: usage.completion_tokens,
105
+ },
106
+ cost: 0,
107
+ };
108
+ }
109
+ /**
110
+ * Execute custom model (OpenAI-compatible API)
111
+ */
112
+ async function executeCustom(baseUrl, config, messages) {
113
+ const response = await fetch(`${baseUrl}/v1/chat/completions`, {
114
+ method: 'POST',
115
+ headers: {
116
+ 'Content-Type': 'application/json',
117
+ },
118
+ body: JSON.stringify({
119
+ model: config.model,
120
+ messages: messages,
121
+ temperature: config.temperature ?? 0.7,
122
+ max_tokens: config.maxTokens,
123
+ top_p: config.topP,
124
+ frequency_penalty: config.frequencyPenalty,
125
+ presence_penalty: config.presencePenalty,
126
+ }),
127
+ });
128
+ if (!response.ok) {
129
+ const error = await response.text();
130
+ throw new Error(`Custom model API error: ${response.status} - ${error}`);
131
+ }
132
+ const data = await response.json();
133
+ const usage = data.usage || {};
134
+ return {
135
+ result: data.choices?.[0]?.message?.content || 'No response',
136
+ model: data.model || config.model,
137
+ usage: {
138
+ totalTokens: usage.total_tokens,
139
+ promptTokens: usage.prompt_tokens,
140
+ completionTokens: usage.completion_tokens,
141
+ },
142
+ cost: 0,
143
+ };
144
+ }
145
+ /**
146
+ * Format messages for Ollama (simple prompt format)
147
+ */
148
+ function formatMessagesForOllama(messages) {
149
+ let prompt = '';
150
+ for (const msg of messages) {
151
+ if (msg.role === 'system') {
152
+ prompt += `System: ${msg.content}\n\n`;
153
+ }
154
+ else if (msg.role === 'user') {
155
+ prompt += `User: ${msg.content}\n\n`;
156
+ }
157
+ else if (msg.role === 'assistant') {
158
+ prompt += `Assistant: ${msg.content}\n\n`;
159
+ }
160
+ }
161
+ prompt += 'Assistant:';
162
+ return prompt;
163
+ }
164
+ /**
165
+ * Verify local model server is running
166
+ */
167
+ export async function verifyLocalModelServer(provider, baseUrl) {
168
+ const url = baseUrl || getDefaultBaseUrl(provider);
169
+ try {
170
+ if (provider === 'ollama') {
171
+ const response = await fetch(`${url}/api/tags`, {
172
+ method: 'GET',
173
+ headers: { 'Content-Type': 'application/json' },
174
+ });
175
+ if (!response.ok) {
176
+ return { available: false, error: `Ollama server not responding (${response.status})` };
177
+ }
178
+ const data = await response.json();
179
+ const models = (data.models || []).map((m) => m.name);
180
+ return { available: true, models };
181
+ }
182
+ else if (provider === 'lm-studio' || provider === 'custom') {
183
+ // LM Studio and custom use OpenAI-compatible API
184
+ const response = await fetch(`${url}/v1/models`, {
185
+ method: 'GET',
186
+ headers: { 'Content-Type': 'application/json' },
187
+ });
188
+ if (!response.ok) {
189
+ return { available: false, error: `Server not responding (${response.status})` };
190
+ }
191
+ const data = await response.json();
192
+ const models = (data.data || []).map((m) => m.id);
193
+ return { available: true, models };
194
+ }
195
+ }
196
+ catch (error) {
197
+ return { available: false, error: error.message || 'Connection failed' };
198
+ }
199
+ return { available: false, error: 'Unknown provider' };
200
+ }
201
+ //# sourceMappingURL=local-model-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-model-executor.js","sourceRoot":"","sources":["../src/local-model-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Local Model Setup - Integrated Installation
3
+ * Automatically installs Ollama and downloads models when needed
4
+ * Makes it feel like one unified system
5
+ */
6
+ export interface SetupResult {
7
+ success: boolean;
8
+ message: string;
9
+ ollamaInstalled: boolean;
10
+ ollamaPath?: string;
11
+ modelsAvailable?: string[];
12
+ }
13
+ /**
14
+ * Check if Ollama is installed and running
15
+ */
16
+ export declare function checkOllamaInstallation(): Promise<SetupResult>;
17
+ /**
18
+ * Install Ollama automatically
19
+ * For Windows: Opens download page and provides instructions
20
+ * For Mac/Linux: Uses package managers
21
+ */
22
+ export declare function installOllama(): Promise<{
23
+ success: boolean;
24
+ message: string;
25
+ }>;
26
+ /**
27
+ * Start Ollama server if not running
28
+ */
29
+ export declare function startOllamaServer(): Promise<{
30
+ success: boolean;
31
+ message: string;
32
+ }>;
33
+ /**
34
+ * Download a model using Ollama API
35
+ */
36
+ export declare function downloadModel(modelName: string): Promise<{
37
+ success: boolean;
38
+ message: string;
39
+ progress?: string;
40
+ }>;
41
+ /**
42
+ * Verify execution is truly local (proof it's not going through gateway)
43
+ */
44
+ export declare function verifyLocalExecution(): Promise<{
45
+ isLocal: boolean;
46
+ proof: {
47
+ networkCheck: boolean;
48
+ executionPath: string;
49
+ responseTime: number;
50
+ };
51
+ }>;
52
+ //# sourceMappingURL=local-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-setup.d.ts","sourceRoot":"","sources":["../src/local-setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,WAAW,CAAC,CA0CpE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkDpF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmDxF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA+CxH;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE;QACL,YAAY,EAAE,OAAO,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC,CAoCD"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Local Model Setup - Integrated Installation
3
+ * Automatically installs Ollama and downloads models when needed
4
+ * Makes it feel like one unified system
5
+ */
6
+ import * as os from 'os';
7
+ import { exec } from 'child_process';
8
+ import { promisify } from 'util';
9
+ const execAsync = promisify(exec);
10
+ /**
11
+ * Check if Ollama is installed and running
12
+ */
13
+ export async function checkOllamaInstallation() {
14
+ try {
15
+ // Check if ollama command exists
16
+ const { stdout } = await execAsync('ollama --version');
17
+ const ollamaPath = stdout.trim();
18
+ // Check if Ollama server is running
19
+ try {
20
+ const response = await fetch('http://localhost:11434/api/tags');
21
+ if (response.ok) {
22
+ const data = await response.json();
23
+ const models = (data.models || []).map((m) => m.name);
24
+ return {
25
+ success: true,
26
+ message: 'Ollama is installed and running',
27
+ ollamaInstalled: true,
28
+ ollamaPath,
29
+ modelsAvailable: models,
30
+ };
31
+ }
32
+ }
33
+ catch (e) {
34
+ // Server not running, but Ollama is installed
35
+ return {
36
+ success: false,
37
+ message: 'Ollama is installed but server is not running',
38
+ ollamaInstalled: true,
39
+ ollamaPath,
40
+ };
41
+ }
42
+ }
43
+ catch (error) {
44
+ return {
45
+ success: false,
46
+ message: 'Ollama is not installed',
47
+ ollamaInstalled: false,
48
+ };
49
+ }
50
+ return {
51
+ success: false,
52
+ message: 'Ollama status unknown',
53
+ ollamaInstalled: false,
54
+ };
55
+ }
56
+ /**
57
+ * Install Ollama automatically
58
+ * For Windows: Opens download page and provides instructions
59
+ * For Mac/Linux: Uses package managers
60
+ */
61
+ export async function installOllama() {
62
+ const platform = os.platform();
63
+ if (platform === 'win32') {
64
+ // Windows - open download page and provide instructions
65
+ try {
66
+ // Try to open the download page
67
+ const { exec } = await import('child_process');
68
+ exec('start https://ollama.com/download/windows');
69
+ return {
70
+ success: false, // Not fully automatic on Windows
71
+ message: 'Please download and install Ollama from the opened page, then restart this terminal.',
72
+ };
73
+ }
74
+ catch (error) {
75
+ return {
76
+ success: false,
77
+ message: 'Please download Ollama from https://ollama.ai/download and install it, then restart this terminal.',
78
+ };
79
+ }
80
+ }
81
+ else if (platform === 'darwin') {
82
+ // macOS - use Homebrew or direct download
83
+ try {
84
+ // Try Homebrew first
85
+ await execAsync('brew install ollama');
86
+ return {
87
+ success: true,
88
+ message: 'Ollama installed via Homebrew',
89
+ };
90
+ }
91
+ catch (e) {
92
+ return {
93
+ success: false,
94
+ message: 'Please install Ollama manually: brew install ollama or download from https://ollama.ai',
95
+ };
96
+ }
97
+ }
98
+ else {
99
+ // Linux
100
+ try {
101
+ await execAsync('curl -fsSL https://ollama.com/install.sh | sh');
102
+ return {
103
+ success: true,
104
+ message: 'Ollama installed successfully',
105
+ };
106
+ }
107
+ catch (error) {
108
+ return {
109
+ success: false,
110
+ message: `Installation failed: ${error.message}. Please install manually from https://ollama.ai`,
111
+ };
112
+ }
113
+ }
114
+ }
115
+ /**
116
+ * Start Ollama server if not running
117
+ */
118
+ export async function startOllamaServer() {
119
+ try {
120
+ // Check if already running
121
+ const response = await fetch('http://localhost:11434/api/tags');
122
+ if (response.ok) {
123
+ return {
124
+ success: true,
125
+ message: 'Ollama server is already running',
126
+ };
127
+ }
128
+ }
129
+ catch (e) {
130
+ // Server not running, start it
131
+ }
132
+ try {
133
+ const platform = os.platform();
134
+ if (platform === 'win32') {
135
+ // On Windows, Ollama runs as a service, so we just need to start it
136
+ await execAsync('ollama serve', { timeout: 5000 });
137
+ }
138
+ else {
139
+ // On Unix, start in background
140
+ await execAsync('ollama serve &');
141
+ }
142
+ // Wait for server to start
143
+ for (let i = 0; i < 10; i++) {
144
+ await new Promise(resolve => setTimeout(resolve, 1000));
145
+ try {
146
+ const response = await fetch('http://localhost:11434/api/tags');
147
+ if (response.ok) {
148
+ return {
149
+ success: true,
150
+ message: 'Ollama server started successfully',
151
+ };
152
+ }
153
+ }
154
+ catch (e) {
155
+ // Keep waiting
156
+ }
157
+ }
158
+ return {
159
+ success: false,
160
+ message: 'Ollama server failed to start. Please start it manually: ollama serve',
161
+ };
162
+ }
163
+ catch (error) {
164
+ return {
165
+ success: false,
166
+ message: `Failed to start Ollama server: ${error.message}`,
167
+ };
168
+ }
169
+ }
170
+ /**
171
+ * Download a model using Ollama API
172
+ */
173
+ export async function downloadModel(modelName) {
174
+ try {
175
+ // Verify Ollama is running
176
+ const check = await checkOllamaInstallation();
177
+ if (!check.ollamaInstalled) {
178
+ return {
179
+ success: false,
180
+ message: 'Ollama is not installed. Please install it first.',
181
+ };
182
+ }
183
+ // Start server if not running
184
+ await startOllamaServer();
185
+ // Use Ollama's pull command (this handles downloading)
186
+ console.log(`Downloading model: ${modelName}...`);
187
+ console.log('This may take several minutes depending on model size...');
188
+ // Use ollama pull command
189
+ const { stdout, stderr } = await execAsync(`ollama pull ${modelName}`, {
190
+ maxBuffer: 10 * 1024 * 1024, // 10MB buffer for output
191
+ });
192
+ // Verify model was downloaded
193
+ const verifyResponse = await fetch('http://localhost:11434/api/tags');
194
+ if (verifyResponse.ok) {
195
+ const data = await verifyResponse.json();
196
+ const models = (data.models || []).map((m) => m.name);
197
+ if (models.includes(modelName)) {
198
+ return {
199
+ success: true,
200
+ message: `Model '${modelName}' downloaded successfully`,
201
+ };
202
+ }
203
+ }
204
+ return {
205
+ success: false,
206
+ message: `Model download completed but verification failed. Check: ollama list`,
207
+ };
208
+ }
209
+ catch (error) {
210
+ return {
211
+ success: false,
212
+ message: `Failed to download model: ${error.message}`,
213
+ };
214
+ }
215
+ }
216
+ /**
217
+ * Verify execution is truly local (proof it's not going through gateway)
218
+ */
219
+ export async function verifyLocalExecution() {
220
+ const startTime = Date.now();
221
+ try {
222
+ // Make a test call to local Ollama
223
+ const response = await fetch('http://localhost:11434/api/generate', {
224
+ method: 'POST',
225
+ headers: { 'Content-Type': 'application/json' },
226
+ body: JSON.stringify({
227
+ model: 'llama2',
228
+ prompt: 'test',
229
+ stream: false,
230
+ }),
231
+ });
232
+ const responseTime = Date.now() - startTime;
233
+ const isLocal = response.ok && responseTime < 5000; // Local should be fast
234
+ return {
235
+ isLocal,
236
+ proof: {
237
+ networkCheck: true, // We're calling localhost, not external
238
+ executionPath: 'localhost:11434 (direct)',
239
+ responseTime,
240
+ },
241
+ };
242
+ }
243
+ catch (error) {
244
+ return {
245
+ isLocal: false,
246
+ proof: {
247
+ networkCheck: false,
248
+ executionPath: 'unknown',
249
+ responseTime: Date.now() - startTime,
250
+ },
251
+ };
252
+ }
253
+ }
254
+ //# sourceMappingURL=local-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../src/local-setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "4runr-os",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "type": "module",
5
5
  "description": "4Runr AI Agent OS - Interactive terminal for managing AI agents",
6
6
  "main": "dist/index.js",