cmdr-agent 1.2.2 → 1.3.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.
Files changed (56) hide show
  1. package/README.md +19 -0
  2. package/dist/bin/cmdr.js +2 -1
  3. package/dist/bin/cmdr.js.map +1 -1
  4. package/dist/src/cli/args.d.ts +1 -0
  5. package/dist/src/cli/args.d.ts.map +1 -1
  6. package/dist/src/cli/args.js +4 -0
  7. package/dist/src/cli/args.js.map +1 -1
  8. package/dist/src/cli/repl.d.ts +1 -0
  9. package/dist/src/cli/repl.d.ts.map +1 -1
  10. package/dist/src/cli/repl.js +5 -1
  11. package/dist/src/cli/repl.js.map +1 -1
  12. package/dist/src/core/agent-runner.d.ts.map +1 -1
  13. package/dist/src/core/agent-runner.js +10 -1
  14. package/dist/src/core/agent-runner.js.map +1 -1
  15. package/dist/src/core/intent.d.ts +2 -0
  16. package/dist/src/core/intent.d.ts.map +1 -1
  17. package/dist/src/core/intent.js +12 -0
  18. package/dist/src/core/intent.js.map +1 -1
  19. package/dist/src/core/presets.d.ts.map +1 -1
  20. package/dist/src/core/presets.js +49 -15
  21. package/dist/src/core/presets.js.map +1 -1
  22. package/dist/src/core/types.d.ts +4 -0
  23. package/dist/src/core/types.d.ts.map +1 -1
  24. package/dist/src/index.d.ts +3 -2
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/index.js +2 -2
  27. package/dist/src/index.js.map +1 -1
  28. package/dist/src/llm/model-registry.d.ts.map +1 -1
  29. package/dist/src/llm/model-registry.js +9 -1
  30. package/dist/src/llm/model-registry.js.map +1 -1
  31. package/dist/src/llm/ollama.d.ts +8 -1
  32. package/dist/src/llm/ollama.d.ts.map +1 -1
  33. package/dist/src/llm/ollama.js +199 -94
  34. package/dist/src/llm/ollama.js.map +1 -1
  35. package/dist/src/session/compaction.js +4 -0
  36. package/dist/src/session/compaction.js.map +1 -1
  37. package/dist/src/session/prompt-builder.d.ts +28 -1
  38. package/dist/src/session/prompt-builder.d.ts.map +1 -1
  39. package/dist/src/session/prompt-builder.js +97 -23
  40. package/dist/src/session/prompt-builder.js.map +1 -1
  41. package/dist/src/session/session-manager.d.ts +10 -3
  42. package/dist/src/session/session-manager.d.ts.map +1 -1
  43. package/dist/src/session/session-manager.js +53 -16
  44. package/dist/src/session/session-manager.js.map +1 -1
  45. package/dist/src/session/session-persistence.d.ts +12 -0
  46. package/dist/src/session/session-persistence.d.ts.map +1 -1
  47. package/dist/src/session/session-persistence.js +94 -4
  48. package/dist/src/session/session-persistence.js.map +1 -1
  49. package/dist/src/tools/built-in/bash-security.d.ts +13 -0
  50. package/dist/src/tools/built-in/bash-security.d.ts.map +1 -0
  51. package/dist/src/tools/built-in/bash-security.js +53 -0
  52. package/dist/src/tools/built-in/bash-security.js.map +1 -0
  53. package/dist/src/tools/built-in/bash.d.ts.map +1 -1
  54. package/dist/src/tools/built-in/bash.js +7 -1
  55. package/dist/src/tools/built-in/bash.js.map +1 -1
  56. package/package.json +1 -1
@@ -8,12 +8,14 @@ import type { LLMAdapter, LLMMessage, LLMChatOptions, LLMStreamOptions, LLMRespo
8
8
  export declare class OllamaAdapter implements LLMAdapter {
9
9
  readonly name = "ollama";
10
10
  private readonly baseUrl;
11
- private toolCapabilityCache;
11
+ private familyCache;
12
12
  constructor(baseUrl?: string);
13
13
  /** Check if Ollama is running and reachable. */
14
14
  healthCheck(): Promise<boolean>;
15
15
  /** List available models. */
16
16
  listModels(): Promise<string[]>;
17
+ /** Detect the model family via Ollama /api/show (cached). */
18
+ getModelFamily(model: string): Promise<string>;
17
19
  /** Check if a specific model supports native tool calling. */
18
20
  supportsTools(model: string): Promise<boolean>;
19
21
  chat(messages: LLMMessage[], options: LLMChatOptions): Promise<LLMResponse>;
@@ -21,6 +23,11 @@ export declare class OllamaAdapter implements LLMAdapter {
21
23
  private convertMessages;
22
24
  private convertToolDef;
23
25
  private buildToolPromptSuffix;
26
+ /**
27
+ * Three-stage tool resolution waterfall.
28
+ * Runs for ALL models regardless of native tool support.
29
+ */
30
+ private resolveToolCalls;
24
31
  private parsePromptBasedToolCalls;
25
32
  }
26
33
  //# sourceMappingURL=ollama.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/llm/ollama.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EACxD,WAAW,EAAE,WAAW,EAEzB,MAAM,kBAAkB,CAAA;AAkDzB,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,IAAI,YAAW;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,mBAAmB,CAA6B;gBAE5C,OAAO,SAA2B;IAI9C,gDAAgD;IAC1C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,6BAA6B;IACvB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOrC,8DAA8D;IACxD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsC9C,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IA+E1E,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC;IA6H5F,OAAO,CAAC,eAAe;IAoEvB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,yBAAyB;CA4ClC"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/llm/ollama.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EACxD,WAAW,EAAE,WAAW,EAEzB,MAAM,kBAAkB,CAAA;AAsFzB,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,IAAI,YAAW;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,WAAW,CAA4B;gBAEnC,OAAO,SAA2B;IAI9C,gDAAgD;IAC1C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,6BAA6B;IACvB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOrC,6DAA6D;IACvD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BpD,8DAA8D;IACxD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9C,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IA0E1E,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC;IA6I5F,OAAO,CAAC,eAAe;IAoEvB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,qBAAqB;IAkB7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,yBAAyB;CAgGlC"}
@@ -5,23 +5,48 @@
5
5
  * Falls back to prompt-based tool injection for models without tool support.
6
6
  */
7
7
  import { getDefaultContextLength } from './model-registry.js';
8
- // ---------------------------------------------------------------------------
9
- // Models known to support native tool calling via Ollama
10
- // ---------------------------------------------------------------------------
11
- const TOOL_CAPABLE_FAMILIES = new Set([
12
- 'qwen2', 'qwen2.5', 'qwen3', 'qwen3moe',
13
- 'llama3.1', 'llama3.2', 'llama3.3', 'llama4',
14
- 'mistral', 'mistral-nemo', 'command-r', 'firefunction',
15
- 'granite', 'nemotron', 'hermes3',
16
- 'minimax',
17
- ]);
8
+ const MODEL_FAMILY_CONFIGS = {
9
+ qwen2: { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: true, jsonToolFormat: true },
10
+ 'qwen2.5': { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: true, jsonToolFormat: true },
11
+ qwen3: { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: true, jsonToolFormat: true },
12
+ qwen3moe: { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: true, jsonToolFormat: true },
13
+ gemma4: { supportsNativeTools: false, needsPromptInjection: true, thinkingMode: 'disabled', xmlToolFormat: false, jsonToolFormat: true },
14
+ 'llama3.1': { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
15
+ 'llama3.2': { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
16
+ 'llama3.3': { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
17
+ llama4: { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
18
+ mistral: { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
19
+ 'mistral-nemo': { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
20
+ 'command-r': { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
21
+ minimax: { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
22
+ deepseek: { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
23
+ dolphin: { supportsNativeTools: false, needsPromptInjection: true, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
24
+ phi: { supportsNativeTools: true, needsPromptInjection: false, thinkingMode: 'auto', xmlToolFormat: false, jsonToolFormat: true },
25
+ default: { supportsNativeTools: false, needsPromptInjection: true, thinkingMode: 'auto', xmlToolFormat: true, jsonToolFormat: true },
26
+ };
27
+ /** Resolve the family config for a detected model family string. */
28
+ function getFamilyConfig(family) {
29
+ // Exact match first
30
+ if (MODEL_FAMILY_CONFIGS[family])
31
+ return MODEL_FAMILY_CONFIGS[family];
32
+ // Prefix match (e.g. 'qwen3-coder' matches 'qwen3')
33
+ for (const key of Object.keys(MODEL_FAMILY_CONFIGS)) {
34
+ if (key !== 'default' && family.startsWith(key))
35
+ return MODEL_FAMILY_CONFIGS[key];
36
+ }
37
+ return MODEL_FAMILY_CONFIGS.default;
38
+ }
39
+ /** Strip thinking channel markers from model output. */
40
+ function stripThinkingMarkers(text) {
41
+ return text.replace(/<\|channel>thought[\s\S]*?<channel\|>/g, '').replace(/<channel\|>/g, '');
42
+ }
18
43
  // ---------------------------------------------------------------------------
19
44
  // OllamaAdapter
20
45
  // ---------------------------------------------------------------------------
21
46
  export class OllamaAdapter {
22
47
  name = 'ollama';
23
48
  baseUrl;
24
- toolCapabilityCache = new Map();
49
+ familyCache = new Map();
25
50
  constructor(baseUrl = 'http://localhost:11434') {
26
51
  this.baseUrl = baseUrl.replace(/\/$/, '');
27
52
  }
@@ -43,9 +68,9 @@ export class OllamaAdapter {
43
68
  const data = await res.json();
44
69
  return data.models.map(m => m.name);
45
70
  }
46
- /** Check if a specific model supports native tool calling. */
47
- async supportsTools(model) {
48
- const cached = this.toolCapabilityCache.get(model);
71
+ /** Detect the model family via Ollama /api/show (cached). */
72
+ async getModelFamily(model) {
73
+ const cached = this.familyCache.get(model);
49
74
  if (cached !== undefined)
50
75
  return cached;
51
76
  try {
@@ -55,35 +80,37 @@ export class OllamaAdapter {
55
80
  body: JSON.stringify({ name: model }),
56
81
  });
57
82
  if (!res.ok) {
58
- this.toolCapabilityCache.set(model, false);
59
- return false;
83
+ this.familyCache.set(model, 'unknown');
84
+ return 'unknown';
60
85
  }
61
86
  const info = await res.json();
62
- const family = info.details?.family?.toLowerCase() ?? '';
63
- const supports = TOOL_CAPABLE_FAMILIES.has(family) ||
64
- family.includes('qwen') ||
65
- family.includes('llama3') ||
66
- family.includes('llama4') ||
67
- family.includes('mistral') ||
68
- family.includes('gemma');
69
- this.toolCapabilityCache.set(model, supports);
70
- return supports;
87
+ const family = info.details?.family?.toLowerCase() ?? 'unknown';
88
+ this.familyCache.set(model, family);
89
+ return family;
71
90
  }
72
91
  catch {
73
- this.toolCapabilityCache.set(model, false);
74
- return false;
92
+ this.familyCache.set(model, 'unknown');
93
+ return 'unknown';
75
94
  }
76
95
  }
96
+ /** Check if a specific model supports native tool calling. */
97
+ async supportsTools(model) {
98
+ const family = await this.getModelFamily(model);
99
+ return getFamilyConfig(family).supportsNativeTools;
100
+ }
77
101
  // -----------------------------------------------------------------------
78
102
  // LLMAdapter.chat
79
103
  // -----------------------------------------------------------------------
80
104
  async chat(messages, options) {
81
105
  const hasTools = options.tools && options.tools.length > 0;
82
- const supportsNativeTools = hasTools ? await this.supportsTools(options.model) : false;
106
+ const family = await this.getModelFamily(options.model);
107
+ const config = getFamilyConfig(family);
108
+ const supportsNativeTools = hasTools ? config.supportsNativeTools : false;
109
+ const needsInjection = hasTools ? (!supportsNativeTools || config.needsPromptInjection) : false;
83
110
  const contextLength = getDefaultContextLength(options.model);
84
111
  const body = {
85
112
  model: options.model,
86
- messages: this.convertMessages(messages, options.systemPrompt, !supportsNativeTools && hasTools ? options.tools : undefined),
113
+ messages: this.convertMessages(messages, options.systemPrompt, needsInjection ? options.tools : undefined),
87
114
  stream: false,
88
115
  options: {
89
116
  num_ctx: contextLength,
@@ -94,6 +121,10 @@ export class OllamaAdapter {
94
121
  if (supportsNativeTools && options.tools) {
95
122
  body.tools = options.tools.map(t => this.convertToolDef(t));
96
123
  }
124
+ // Disable thinking mode for models that eat output with it
125
+ if (config.thinkingMode === 'disabled') {
126
+ body.think = false;
127
+ }
97
128
  const res = await fetch(`${this.baseUrl}/api/chat`, {
98
129
  method: 'POST',
99
130
  headers: { 'Content-Type': 'application/json' },
@@ -105,30 +136,10 @@ export class OllamaAdapter {
105
136
  throw new Error(`Ollama /api/chat failed (${res.status}): ${text}`);
106
137
  }
107
138
  const data = await res.json();
108
- // Parse response - handle both native tool calls and prompt-based tool calls
109
- const content = [];
110
- if (data.message.tool_calls && data.message.tool_calls.length > 0) {
111
- // Native tool calling response
112
- if (data.message.content) {
113
- content.push({ type: 'text', text: data.message.content });
114
- }
115
- for (const tc of data.message.tool_calls) {
116
- content.push({
117
- type: 'tool_use',
118
- id: `tool_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
119
- name: tc.function.name,
120
- input: tc.function.arguments,
121
- });
122
- }
123
- }
124
- else if (hasTools && !supportsNativeTools && data.message.content) {
125
- // Parse prompt-based tool calls from text
126
- const parsed = this.parsePromptBasedToolCalls(data.message.content);
127
- content.push(...parsed);
128
- }
129
- else {
130
- content.push({ type: 'text', text: data.message.content || '' });
131
- }
139
+ // Strip thinking channel markers from content
140
+ const rawContent = stripThinkingMarkers(data.message.content || '');
141
+ // Three-stage tool resolution waterfall (runs for ALL models)
142
+ const content = this.resolveToolCalls(data.message.tool_calls ?? null, rawContent, config, hasTools ?? false);
132
143
  const usage = {
133
144
  input_tokens: data.prompt_eval_count ?? 0,
134
145
  output_tokens: data.eval_count ?? 0,
@@ -147,11 +158,14 @@ export class OllamaAdapter {
147
158
  // -----------------------------------------------------------------------
148
159
  async *stream(messages, options) {
149
160
  const hasTools = options.tools && options.tools.length > 0;
150
- const supportsNativeTools = hasTools ? await this.supportsTools(options.model) : false;
161
+ const family = await this.getModelFamily(options.model);
162
+ const config = getFamilyConfig(family);
163
+ const supportsNativeTools = hasTools ? config.supportsNativeTools : false;
164
+ const needsInjection = hasTools ? (!supportsNativeTools || config.needsPromptInjection) : false;
151
165
  const contextLength = getDefaultContextLength(options.model);
152
166
  const body = {
153
167
  model: options.model,
154
- messages: this.convertMessages(messages, options.systemPrompt, !supportsNativeTools && hasTools ? options.tools : undefined),
168
+ messages: this.convertMessages(messages, options.systemPrompt, needsInjection ? options.tools : undefined),
155
169
  stream: true,
156
170
  options: {
157
171
  num_ctx: contextLength,
@@ -162,6 +176,10 @@ export class OllamaAdapter {
162
176
  if (supportsNativeTools && options.tools) {
163
177
  body.tools = options.tools.map(t => this.convertToolDef(t));
164
178
  }
179
+ // Disable thinking mode for models that eat output with it
180
+ if (config.thinkingMode === 'disabled') {
181
+ body.think = false;
182
+ }
165
183
  const res = await fetch(`${this.baseUrl}/api/chat`, {
166
184
  method: 'POST',
167
185
  headers: { 'Content-Type': 'application/json' },
@@ -184,6 +202,7 @@ export class OllamaAdapter {
184
202
  let totalInputTokens = 0;
185
203
  let totalOutputTokens = 0;
186
204
  let model = options.model;
205
+ let nativeToolCallsEmitted = false;
187
206
  try {
188
207
  while (true) {
189
208
  const { done, value } = await reader.read();
@@ -204,10 +223,15 @@ export class OllamaAdapter {
204
223
  }
205
224
  model = chunk.model;
206
225
  if (chunk.message?.content) {
207
- fullText += chunk.message.content;
208
- yield { type: 'text', data: chunk.message.content };
226
+ // Strip thinking channel markers from streamed content
227
+ const cleaned = stripThinkingMarkers(chunk.message.content);
228
+ if (cleaned) {
229
+ fullText += cleaned;
230
+ yield { type: 'text', data: cleaned };
231
+ }
209
232
  }
210
233
  if (chunk.message?.tool_calls) {
234
+ nativeToolCallsEmitted = true;
211
235
  for (const tc of chunk.message.tool_calls) {
212
236
  yield {
213
237
  type: 'tool_use',
@@ -230,12 +254,14 @@ export class OllamaAdapter {
230
254
  finally {
231
255
  reader.releaseLock();
232
256
  }
233
- // Check for prompt-based tool calls if model doesn't support native tools
234
- if (hasTools && !supportsNativeTools && fullText) {
235
- const parsed = this.parsePromptBasedToolCalls(fullText);
236
- const toolBlocks = parsed.filter(b => b.type === 'tool_use');
237
- for (const block of toolBlocks) {
238
- yield { type: 'tool_use', data: block };
257
+ // Fallback: three-stage waterfall for text-based tool calls if no native calls were emitted
258
+ if (hasTools && fullText && !nativeToolCallsEmitted) {
259
+ const resolved = this.resolveToolCalls(null, fullText, config, true);
260
+ const toolBlocks = resolved.filter(b => b.type === 'tool_use');
261
+ if (toolBlocks.length > 0) {
262
+ for (const block of toolBlocks) {
263
+ yield { type: 'tool_use', data: block };
264
+ }
239
265
  }
240
266
  }
241
267
  const finalContent = fullText
@@ -336,43 +362,122 @@ ${toolDescs}
336
362
  Always use tools when you need to interact with the filesystem or run commands.
337
363
  After receiving a tool result, continue your analysis.`;
338
364
  }
339
- parsePromptBasedToolCalls(text) {
340
- const content = [];
341
- const toolCallRegex = /```tool_call\s*\n([\s\S]*?)\n```/g;
342
- let lastIndex = 0;
343
- let match;
344
- while ((match = toolCallRegex.exec(text)) !== null) {
345
- // Add text before the tool call
346
- if (match.index > lastIndex) {
347
- const before = text.slice(lastIndex, match.index).trim();
348
- if (before)
349
- content.push({ type: 'text', text: before });
365
+ /**
366
+ * Three-stage tool resolution waterfall.
367
+ * Runs for ALL models regardless of native tool support.
368
+ */
369
+ resolveToolCalls(nativeToolCalls, textContent, config, hasTools) {
370
+ // Stage 1: Native tool_calls from Ollama response
371
+ if (nativeToolCalls && nativeToolCalls.length > 0) {
372
+ const content = [];
373
+ if (textContent) {
374
+ content.push({ type: 'text', text: textContent });
375
+ }
376
+ for (const tc of nativeToolCalls) {
377
+ content.push({
378
+ type: 'tool_use',
379
+ id: `tool_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
380
+ name: tc.function.name,
381
+ input: tc.function.arguments,
382
+ });
350
383
  }
351
- try {
352
- const parsed = JSON.parse(match[1]);
353
- if (parsed.name && parsed.arguments) {
354
- content.push({
355
- type: 'tool_use',
356
- id: `tool_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
357
- name: parsed.name,
358
- input: parsed.arguments,
359
- });
384
+ return content;
385
+ }
386
+ // Stage 2+3: Parse text-based tool calls only if we had tools available
387
+ if (hasTools && textContent) {
388
+ const parsed = this.parsePromptBasedToolCalls(textContent, config);
389
+ if (parsed.length > 0)
390
+ return parsed;
391
+ }
392
+ // No tool calls — return as pure text
393
+ if (textContent) {
394
+ return [{ type: 'text', text: textContent }];
395
+ }
396
+ return [];
397
+ }
398
+ parsePromptBasedToolCalls(text, config) {
399
+ const content = [];
400
+ const checkJson = config?.jsonToolFormat !== false; // default true
401
+ const checkXml = config?.xmlToolFormat !== false; // default true
402
+ // Strategy 1: ```tool_call\n{JSON}\n``` format
403
+ if (checkJson) {
404
+ const toolCallRegex = /```tool_call\s*\n([\s\S]*?)\n```/g;
405
+ let lastIndex = 0;
406
+ let match;
407
+ let foundToolCalls = false;
408
+ while ((match = toolCallRegex.exec(text)) !== null) {
409
+ foundToolCalls = true;
410
+ if (match.index > lastIndex) {
411
+ const before = text.slice(lastIndex, match.index).trim();
412
+ if (before)
413
+ content.push({ type: 'text', text: before });
360
414
  }
415
+ try {
416
+ const parsed = JSON.parse(match[1]);
417
+ if (parsed.name && parsed.arguments) {
418
+ content.push({
419
+ type: 'tool_use',
420
+ id: `tool_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
421
+ name: parsed.name,
422
+ input: parsed.arguments,
423
+ });
424
+ }
425
+ }
426
+ catch {
427
+ content.push({ type: 'text', text: match[0] });
428
+ }
429
+ lastIndex = match.index + match[0].length;
361
430
  }
362
- catch {
363
- // Malformed JSON keep as text
364
- content.push({ type: 'text', text: match[0] });
431
+ if (foundToolCalls) {
432
+ if (lastIndex < text.length) {
433
+ const remainder = text.slice(lastIndex).trim();
434
+ if (remainder)
435
+ content.push({ type: 'text', text: remainder });
436
+ }
437
+ return content;
365
438
  }
366
- lastIndex = match.index + match[0].length;
367
439
  }
368
- // Add remaining text
369
- if (lastIndex < text.length) {
370
- const remainder = text.slice(lastIndex).trim();
371
- if (remainder)
372
- content.push({ type: 'text', text: remainder });
440
+ // Strategy 2: XML <function=name><parameter=key>value</parameter></function> format
441
+ if (checkXml) {
442
+ const xmlToolRegex = /<function=(\w+)>([\s\S]*?)<\/function>/g;
443
+ const paramRegex = /<parameter=(\w+)>([\s\S]*?)<\/parameter>/g;
444
+ let lastIndex = 0;
445
+ let match;
446
+ let foundToolCalls = false;
447
+ while ((match = xmlToolRegex.exec(text)) !== null) {
448
+ foundToolCalls = true;
449
+ if (match.index > lastIndex) {
450
+ const before = text.slice(lastIndex, match.index).trim();
451
+ if (before)
452
+ content.push({ type: 'text', text: before });
453
+ }
454
+ const toolName = match[1];
455
+ const paramsBlock = match[2];
456
+ const input = {};
457
+ let paramMatch;
458
+ while ((paramMatch = paramRegex.exec(paramsBlock)) !== null) {
459
+ input[paramMatch[1]] = paramMatch[2].trim();
460
+ }
461
+ paramRegex.lastIndex = 0; // Reset for next tool call
462
+ content.push({
463
+ type: 'tool_use',
464
+ id: `tool_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
465
+ name: toolName,
466
+ input,
467
+ });
468
+ lastIndex = match.index + match[0].length;
469
+ }
470
+ if (foundToolCalls) {
471
+ if (lastIndex < text.length) {
472
+ const remainder = text.slice(lastIndex).trim();
473
+ if (remainder)
474
+ content.push({ type: 'text', text: remainder });
475
+ }
476
+ return content;
477
+ }
373
478
  }
374
- // If no tool calls found, return as pure text
375
- if (content.length === 0 && text) {
479
+ // No tool calls found return as pure text
480
+ if (text) {
376
481
  content.push({ type: 'text', text });
377
482
  }
378
483
  return content;
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/llm/ollama.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/llm/ollama.ts"],"names":[],"mappings":"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"}
@@ -140,6 +140,8 @@ async function summarizeMessages(messages, adapter, model, maxTokens) {
140
140
  type: 'text',
141
141
  text: `[Previous conversation summary]\n${summaryText}\n[End of summary — recent conversation follows]`,
142
142
  }],
143
+ isCompactSummary: true,
144
+ isCompactBoundary: true,
143
145
  };
144
146
  }
145
147
  /**
@@ -167,6 +169,8 @@ function buildFallbackSummary(messages) {
167
169
  return {
168
170
  role: 'user',
169
171
  content: [{ type: 'text', text: parts.join('\n') }],
172
+ isCompactSummary: true,
173
+ isCompactBoundary: true,
170
174
  };
171
175
  }
172
176
  //# sourceMappingURL=compaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../../src/session/compaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../../src/session/compaction.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,34 @@
1
1
  /**
2
- * PromptBuilder — composable prompt construction pipeline.
2
+ * PromptBuilder — modular prompt construction pipeline.
3
+ *
4
+ * Each module has a priority (lower = earlier) and a static flag.
5
+ * Static modules are identical across turns, enabling Ollama KV cache reuse.
3
6
  */
4
7
  import type { ProjectContext } from '../core/types.js';
8
+ export interface PromptModule {
9
+ id: string;
10
+ content: string;
11
+ priority: number;
12
+ isStatic: boolean;
13
+ }
14
+ export declare const PROMPT_PRIORITIES: {
15
+ readonly ROLE: 10;
16
+ readonly TOOL_POLICY: 20;
17
+ readonly PROJECT_INSTRUCTIONS: 30;
18
+ readonly SKILLS: 40;
19
+ readonly PROJECT_CONTEXT: 50;
20
+ readonly RUNTIME_CONTEXT: 60;
21
+ readonly CONVERSATION_STATE: 70;
22
+ };
23
+ export declare class PromptBuilder {
24
+ private modules;
25
+ addModule(mod: PromptModule): void;
26
+ updateModule(id: string, content: string): void;
27
+ removeModule(id: string): void;
28
+ build(): string;
29
+ /** Returns only static modules — for KV cache prefix estimation. */
30
+ getStaticPrefix(): string;
31
+ }
5
32
  export interface PromptBuildOptions {
6
33
  basePrompt: string;
7
34
  projectContext: ProjectContext;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/session/prompt-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAwCrE"}
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/session/prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAItD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAID,eAAO,MAAM,iBAAiB;;;;;;;;CAQpB,CAAA;AAIV,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IAEjD,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAIlC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAO/C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B,KAAK,IAAI,MAAM;IAQf,oEAAoE;IACpE,eAAe,IAAI,MAAM;CAQ1B;AAID,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAmErE"}