code-ollama 0.17.0 → 0.18.1

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/cli.js CHANGED
@@ -19,7 +19,7 @@ var LIST$1 = [
19
19
  },
20
20
  {
21
21
  name: "/model",
22
- description: "switch the model"
22
+ description: "manage Ollama models"
23
23
  },
24
24
  {
25
25
  name: "/theme",
@@ -37,7 +37,7 @@ var LIST$1 = [
37
37
  //#endregion
38
38
  //#region package.json
39
39
  var name = "code-ollama";
40
- var version = "0.17.0";
40
+ var version = "0.18.1";
41
41
  //#endregion
42
42
  //#region src/constants/package.ts
43
43
  var NAME = name;
@@ -60,6 +60,38 @@ var LABEL = {
60
60
  plan: "Plan"
61
61
  };
62
62
  //#endregion
63
+ //#region src/constants/models.ts
64
+ /**
65
+ * @see https://ollama.com/library
66
+ */
67
+ var CATALOG = [
68
+ {
69
+ label: "Gemma 4 (gemma4:latest)",
70
+ value: "gemma4:latest",
71
+ alias: "gemma4:e4b"
72
+ },
73
+ {
74
+ label: "Granite 4 (granite4.1:8b)",
75
+ value: "granite4.1:8b"
76
+ },
77
+ {
78
+ label: "Qwen 2.5 Coder (qwen2.5-coder:latest)",
79
+ value: "qwen2.5-coder:latest",
80
+ alias: "qwen2.5-coder:7b"
81
+ },
82
+ {
83
+ label: "DeepSeek Coder V2 (deepseek-coder-v2:latest)",
84
+ value: "deepseek-coder-v2:latest",
85
+ alias: "deepseek-coder-v2:16b"
86
+ }
87
+ ];
88
+ //#endregion
89
+ //#region src/constants/option.ts
90
+ var BACK = {
91
+ label: "Back",
92
+ value: "back"
93
+ };
94
+ //#endregion
63
95
  //#region src/constants/prompt.ts
64
96
  var BASE_SYSTEM_PROMPT = `You are a coding assistant that helps users write, edit, and understand code. You have access to tools for reading files, writing files, running shell commands, searching code, and searching the web
65
97
 
@@ -259,6 +291,7 @@ var WEB_FETCH = "web_fetch";
259
291
  //#endregion
260
292
  //#region src/constants/ui.ts
261
293
  var HEADER_PREFIX = "🦙 ";
294
+ var WARNING = "⚠️";
262
295
  //#endregion
263
296
  //#region src/utils/agents.ts
264
297
  var AGENTS_FILE = "AGENTS.md";
@@ -296,7 +329,6 @@ function withSystemMessage(messages) {
296
329
  //#region src/utils/config.ts
297
330
  var CONFIG_PATH = join(DIRECTORY, "config.json");
298
331
  var DEFAULT_HOST = "http://localhost:11434";
299
- var DEFAULT_MODEL$1 = "gemma4";
300
332
  function readFile$1() {
301
333
  if (!existsSync(CONFIG_PATH)) return {};
302
334
  try {
@@ -309,7 +341,7 @@ function loadConfig() {
309
341
  const file = readFile$1();
310
342
  return {
311
343
  host: process.env.OLLAMA_HOST ?? file.host ?? DEFAULT_HOST,
312
- model: process.env.OLLAMA_MODEL ?? file.model ?? DEFAULT_MODEL$1,
344
+ model: file.model,
313
345
  searxngBaseUrl: file.searxngBaseUrl,
314
346
  theme: file.theme ?? "github-dark"
315
347
  };
@@ -324,9 +356,9 @@ function saveConfig(patch) {
324
356
  }
325
357
  //#endregion
326
358
  //#region src/utils/ollama.ts
327
- var { host, model: DEFAULT_MODEL } = loadConfig();
359
+ var { host } = loadConfig();
328
360
  var client = new Ollama({ host });
329
- async function* streamChat(messages, model = DEFAULT_MODEL, tools, signal) {
361
+ async function* streamChat(messages, model, tools, signal) {
330
362
  const response = await client.chat({
331
363
  model,
332
364
  messages,
@@ -358,6 +390,15 @@ async function listModels() {
358
390
  const { models } = await client.list();
359
391
  return models.map(({ name }) => name);
360
392
  }
393
+ async function pullModel(model) {
394
+ return client.pull({
395
+ model,
396
+ stream: true
397
+ });
398
+ }
399
+ function deleteModel(model) {
400
+ return client.delete({ model });
401
+ }
361
402
  //#endregion
362
403
  //#region src/utils/screen.ts
363
404
  var clearHandler = null;
@@ -536,9 +577,6 @@ function writeError(text) {
536
577
  process.stderr.write(text);
537
578
  }
538
579
  //#endregion
539
- //#region src/utils/time.ts
540
- var tick = (ms = 0) => new Promise((resolve) => setTimeout(resolve, ms));
541
- //#endregion
542
580
  //#region src/utils/tools/definitions.ts
543
581
  /**
544
582
  * Helper to define tool parameters
@@ -1085,7 +1123,7 @@ async function main(args = process.argv.slice(2)) {
1085
1123
  else await launchTui();
1086
1124
  }
1087
1125
  async function launchTui(sessionId) {
1088
- const { renderApp } = await import("./assets/tui-CCHcdC7V.js");
1126
+ const { renderApp } = await import("./assets/tui-GfzUJAWj.js");
1089
1127
  reset();
1090
1128
  renderApp(sessionId);
1091
1129
  }
@@ -1101,4 +1139,4 @@ function isEntrypoint(argv1 = process.argv[1]) {
1101
1139
  if (isEntrypoint()) main();
1102
1140
  // v8 ignore stop
1103
1141
  //#endregion
1104
- export { PLAN_GENERATION_INSTRUCTION as A, withSystemMessage as C, ASSISTANT as D, getTheme as E, APPROVE as F, REJECT as I, VERSION as L, LABEL as M, PLAN as N, SYSTEM as O, SAFE as P, LIST$1 as R, resetSystemMessage as S, LIST as T, setClearHandler as _, tick as a, loadConfig as b, appendMessage as c, deleteSessionIfEmpty as d, listSessions as f, reset as g, clear as h, WRITE_TOOLS as i, AUTO as j, USER as k, createSession as l, updateSessionModel as m, main, READ_TOOLS as n, color as o, loadSession as p, TOOLS as r, write as s, executeTool as t, deleteSession as u, listModels as v, HEADER_PREFIX as w, saveConfig as x, streamChat as y };
1142
+ export { SYSTEM as A, REJECT as B, resetSystemMessage as C, LIST as D, WARNING as E, AUTO as F, LIST$1 as H, LABEL as I, PLAN as L, PLAN_GENERATION_INSTRUCTION as M, BACK as N, getTheme as O, CATALOG as P, SAFE as R, saveConfig as S, HEADER_PREFIX as T, VERSION as V, deleteModel as _, color as a, streamChat as b, createSession as c, listSessions as d, loadSession as f, setClearHandler as g, reset as h, WRITE_TOOLS as i, USER as j, ASSISTANT as k, deleteSession as l, clear as m, main, READ_TOOLS as n, write as o, updateSessionModel as p, TOOLS as r, appendMessage as s, executeTool as t, deleteSessionIfEmpty as u, listModels as v, withSystemMessage as w, loadConfig as x, pullModel as y, APPROVE as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-ollama",
3
- "version": "0.17.0",
3
+ "version": "0.18.1",
4
4
  "description": "Ollama coding agent that runs in your terminal",
5
5
  "author": "Mark <mark@remarkablemark.org> (https://remarkablemark.org)",
6
6
  "type": "module",
@@ -65,7 +65,7 @@
65
65
  "lint-staged": "17.0.5",
66
66
  "prettier": "3.8.3",
67
67
  "publint": "0.3.21",
68
- "tsx": "4.22.0",
68
+ "tsx": "4.22.1",
69
69
  "typescript": "6.0.3",
70
70
  "typescript-eslint": "8.59.3",
71
71
  "vite": "8.0.13",