repoburg 1.3.214 → 1.3.217

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.
@@ -42129,25 +42129,31 @@ async function registerProviderRoutes(fastify) {
42129
42129
  }
42130
42130
  return provider;
42131
42131
  });
42132
- fastify.get("/api/providers/:id/commands", async (request, reply) => {
42133
- const id = request.params.id;
42134
- if (!hasProvider(id)) {
42135
- return reply.code(404).send({ error: "Provider not found" });
42132
+ fastify.get(
42133
+ "/api/providers/:id/commands",
42134
+ async (request, reply) => {
42135
+ const id = request.params.id;
42136
+ if (!hasProvider(id)) {
42137
+ return reply.code(404).send({ error: "Provider not found" });
42138
+ }
42139
+ const provider = getProvider(id);
42140
+ return provider.getCommands ? await provider.getCommands(request.query.cwd) : [];
42136
42141
  }
42137
- const provider = getProvider(id);
42138
- return provider.getCommands ? await provider.getCommands() : [];
42139
- });
42142
+ );
42140
42143
  }
42141
42144
 
42142
42145
  // src/routes/models.ts
42143
42146
  async function registerModelRoutes(fastify) {
42144
- fastify.get("/api/providers/:id/models", async (request, reply) => {
42145
- const { id } = request.params;
42146
- if (!hasProvider(id)) {
42147
- return reply.code(404).send({ error: `No models available for provider: ${id}` });
42147
+ fastify.get(
42148
+ "/api/providers/:id/models",
42149
+ async (request, reply) => {
42150
+ const { id } = request.params;
42151
+ if (!hasProvider(id)) {
42152
+ return reply.code(404).send({ error: `No models available for provider: ${id}` });
42153
+ }
42154
+ return getProvider(id).getModels(request.query.cwd);
42148
42155
  }
42149
- return getProvider(id).getModels();
42150
- });
42156
+ );
42151
42157
  }
42152
42158
 
42153
42159
  // src/routes/skills.ts
@@ -44412,6 +44418,9 @@ var TurnProjector = class {
44412
44418
  done = false;
44413
44419
  resultTimer = null;
44414
44420
  extensions = 0;
44421
+ /** Context fill of the LAST LLM round (input tokens of the full prompt) —
44422
+ * drives the status-bar total-token counter at turn completion. */
44423
+ lastContextTokens = null;
44415
44424
  get isDone() {
44416
44425
  return this.done;
44417
44426
  }
@@ -44524,6 +44533,9 @@ var TurnProjector = class {
44524
44533
  }
44525
44534
  handleAssistant(msg) {
44526
44535
  const info = this.round(msg.inputId);
44536
+ if (msg.usage && msg.usage.input_tokens > 0) {
44537
+ this.lastContextTokens = msg.usage.input_tokens;
44538
+ }
44527
44539
  const text = msg.content.filter((b) => b.type === "text").map((b) => b.text).join("");
44528
44540
  const thinking = msg.content.filter((b) => b.type === "thinking").map((b) => b.thinking).join("");
44529
44541
  if (text) info.text = text;
@@ -44691,8 +44703,31 @@ var TurnProjector = class {
44691
44703
  response: responseText || null
44692
44704
  });
44693
44705
  void this.syncTitle();
44706
+ this.emitContextUsage();
44694
44707
  this.finalize();
44695
44708
  }
44709
+ /** Broadcast + persist context-window usage (the status-bar total-token
44710
+ * counter). Shown ONLY when the model's context limit is known — when the
44711
+ * runtime does not report a window (e.g. Ollama cloud), no percentage can
44712
+ * be computed and the indicator stays hidden entirely. */
44713
+ emitContextUsage() {
44714
+ if (!this.lastContextTokens || this.lastContextTokens <= 0) return;
44715
+ const window = this.deps.getContextWindow?.() ?? null;
44716
+ if (!window || window <= 0) return;
44717
+ const contextUsage = {
44718
+ totalTokens: this.lastContextTokens,
44719
+ contextWindow: window,
44720
+ percentage: Math.round(this.lastContextTokens / window * 100)
44721
+ };
44722
+ broadcast("turn:contextUsage", { sessionId: this.deps.agentPaneSessionId, ...contextUsage });
44723
+ const db2 = getDb();
44724
+ const now = (/* @__PURE__ */ new Date()).toISOString();
44725
+ db2.prepare("UPDATE sessions SET context_usage = ?, updated_at = ? WHERE id = ?").run(
44726
+ JSON.stringify(contextUsage),
44727
+ now,
44728
+ this.deps.agentPaneSessionId
44729
+ );
44730
+ }
44696
44731
  /** Fire-and-forget: copy the runtime session title once (new sessions). */
44697
44732
  async syncTitle() {
44698
44733
  try {
@@ -44819,6 +44854,7 @@ var TurnProjector = class {
44819
44854
  response: responseText || null
44820
44855
  });
44821
44856
  void this.syncTitle();
44857
+ this.emitContextUsage();
44822
44858
  this.finalize();
44823
44859
  return;
44824
44860
  }
@@ -44844,6 +44880,9 @@ var TurnProjector = class {
44844
44880
  * rounds already exist and are skipped). */
44845
44881
  projectSnapshotRound(input) {
44846
44882
  if (!input.raw_llm_response && !input.thoughts && !input.aiActions?.length) return;
44883
+ if ((input.input_token_count ?? 0) > 0) {
44884
+ this.lastContextTokens = input.input_token_count;
44885
+ }
44847
44886
  const info = this.round(input.id);
44848
44887
  info.text = info.text || (input.raw_llm_response ?? "");
44849
44888
  info.thoughts = info.thoughts || (input.thoughts ?? "");
@@ -45030,6 +45069,8 @@ async function ensureSession(session, client, baseUrl) {
45030
45069
  // before unsafe effort values (e.g. ollama xhigh) were clamped.
45031
45070
  reasoningEffort: void 0,
45032
45071
  threadId: null,
45072
+ contextWindow: null,
45073
+ modelsResolved: false,
45033
45074
  activeTurn: null
45034
45075
  };
45035
45076
  sessionMap3.set(session.id, entry2);
@@ -45056,6 +45097,8 @@ async function ensureSession(session, client, baseUrl) {
45056
45097
  modelId: session.model ?? null,
45057
45098
  reasoningEffort: mappedEffort,
45058
45099
  threadId: null,
45100
+ contextWindow: null,
45101
+ modelsResolved: false,
45059
45102
  activeTurn: null
45060
45103
  };
45061
45104
  sessionMap3.set(session.id, entry);
@@ -45091,11 +45134,33 @@ async function ensureThreadSession(session, turn, client, baseUrl) {
45091
45134
  reasoningEffort: void 0,
45092
45135
  // re-pushed on the first thread turn
45093
45136
  threadId: turn.thread_id,
45137
+ contextWindow: null,
45138
+ modelsResolved: false,
45094
45139
  activeTurn: null
45095
45140
  };
45096
45141
  sessionMap3.set(mapKey, entry);
45097
45142
  return entry;
45098
45143
  }
45144
+ async function ensureContextWindow(entry) {
45145
+ if (entry.modelsResolved) return;
45146
+ entry.modelsResolved = true;
45147
+ try {
45148
+ let modelId = entry.modelId;
45149
+ if (!modelId) {
45150
+ const runtimeSession = await entry.client.getSession(entry.repoburgSessionId);
45151
+ modelId = runtimeSession.model_id ?? null;
45152
+ }
45153
+ if (!modelId) {
45154
+ entry.contextWindow = null;
45155
+ return;
45156
+ }
45157
+ const models = await entry.client.getModels();
45158
+ entry.contextWindow = models.find((m) => m.id === modelId)?.context_window ?? null;
45159
+ } catch (err) {
45160
+ console.warn("[repoburg] context-window lookup failed:", err.message);
45161
+ entry.contextWindow = null;
45162
+ }
45163
+ }
45099
45164
  function failTurnBeforeStart(db2, sessionId, turnId, error) {
45100
45165
  const now = (/* @__PURE__ */ new Date()).toISOString();
45101
45166
  db2.prepare("UPDATE turns SET status = ?, error = ?, updated_at = ? WHERE id = ?").run(
@@ -45208,6 +45273,7 @@ async function startTurn3(session, turn) {
45208
45273
  });
45209
45274
  entry.modelId = wantedModel;
45210
45275
  entry.reasoningEffort = wantedEffort;
45276
+ entry.modelsResolved = false;
45211
45277
  } catch (err) {
45212
45278
  console.error(`[repoburg] patchSession failed for ${entry.repoburgSessionId}:`, err);
45213
45279
  }
@@ -45220,9 +45286,13 @@ async function startTurn3(session, turn) {
45220
45286
  agentPaneSessionId: session.id,
45221
45287
  turnId: turn.id,
45222
45288
  repoburgSessionId: entry.repoburgSessionId,
45223
- client: entry.client
45289
+ client: entry.client,
45290
+ // Late-bound — the window resolves from the runtime catalog while the
45291
+ // turn streams and is read at turn completion.
45292
+ getContextWindow: () => entry.contextWindow
45224
45293
  });
45225
45294
  entry.activeTurn = { turnId: turn.id, projector, sseAbort: new AbortController(), cancelled: false };
45295
+ void ensureContextWindow(entry);
45226
45296
  runStreamLoop(entry, projector).catch((err) => {
45227
45297
  console.error("[repoburg] stream loop crashed:", err);
45228
45298
  failTurn(entry, `Stream loop failed: ${err.message}`);
@@ -45353,9 +45423,9 @@ function clearAllThreads3() {
45353
45423
  }
45354
45424
  sessionMap3.clear();
45355
45425
  }
45356
- async function getModels3() {
45426
+ async function getModels3(cwd) {
45357
45427
  try {
45358
- const resolved = await resolveBackendUrl(process.cwd(), { autoStart: false });
45428
+ const resolved = await resolveBackendUrl(cwd ?? process.cwd(), { autoStart: false });
45359
45429
  if (!resolved) return [];
45360
45430
  const models = await new RepoburgHttpClient(resolved.baseUrl).getModels();
45361
45431
  return models.map((m) => ({
@@ -45370,9 +45440,9 @@ async function getModels3() {
45370
45440
  return [];
45371
45441
  }
45372
45442
  }
45373
- async function getCommands2() {
45443
+ async function getCommands2(cwd) {
45374
45444
  try {
45375
- const resolved = await resolveBackendUrl(process.cwd(), { autoStart: false });
45445
+ const resolved = await resolveBackendUrl(cwd ?? process.cwd(), { autoStart: false });
45376
45446
  if (!resolved) return [];
45377
45447
  const commands = await new RepoburgHttpClient(resolved.baseUrl).getSlashCommands();
45378
45448
  return commands.map((c) => ({
@@ -42116,25 +42116,31 @@ async function registerProviderRoutes(fastify) {
42116
42116
  }
42117
42117
  return provider;
42118
42118
  });
42119
- fastify.get("/api/providers/:id/commands", async (request, reply) => {
42120
- const id = request.params.id;
42121
- if (!hasProvider(id)) {
42122
- return reply.code(404).send({ error: "Provider not found" });
42119
+ fastify.get(
42120
+ "/api/providers/:id/commands",
42121
+ async (request, reply) => {
42122
+ const id = request.params.id;
42123
+ if (!hasProvider(id)) {
42124
+ return reply.code(404).send({ error: "Provider not found" });
42125
+ }
42126
+ const provider = getProvider(id);
42127
+ return provider.getCommands ? await provider.getCommands(request.query.cwd) : [];
42123
42128
  }
42124
- const provider = getProvider(id);
42125
- return provider.getCommands ? await provider.getCommands() : [];
42126
- });
42129
+ );
42127
42130
  }
42128
42131
 
42129
42132
  // src/routes/models.ts
42130
42133
  async function registerModelRoutes(fastify) {
42131
- fastify.get("/api/providers/:id/models", async (request, reply) => {
42132
- const { id } = request.params;
42133
- if (!hasProvider(id)) {
42134
- return reply.code(404).send({ error: `No models available for provider: ${id}` });
42134
+ fastify.get(
42135
+ "/api/providers/:id/models",
42136
+ async (request, reply) => {
42137
+ const { id } = request.params;
42138
+ if (!hasProvider(id)) {
42139
+ return reply.code(404).send({ error: `No models available for provider: ${id}` });
42140
+ }
42141
+ return getProvider(id).getModels(request.query.cwd);
42135
42142
  }
42136
- return getProvider(id).getModels();
42137
- });
42143
+ );
42138
42144
  }
42139
42145
 
42140
42146
  // src/routes/skills.ts
@@ -44399,6 +44405,9 @@ var TurnProjector = class {
44399
44405
  done = false;
44400
44406
  resultTimer = null;
44401
44407
  extensions = 0;
44408
+ /** Context fill of the LAST LLM round (input tokens of the full prompt) —
44409
+ * drives the status-bar total-token counter at turn completion. */
44410
+ lastContextTokens = null;
44402
44411
  get isDone() {
44403
44412
  return this.done;
44404
44413
  }
@@ -44511,6 +44520,9 @@ var TurnProjector = class {
44511
44520
  }
44512
44521
  handleAssistant(msg) {
44513
44522
  const info = this.round(msg.inputId);
44523
+ if (msg.usage && msg.usage.input_tokens > 0) {
44524
+ this.lastContextTokens = msg.usage.input_tokens;
44525
+ }
44514
44526
  const text = msg.content.filter((b) => b.type === "text").map((b) => b.text).join("");
44515
44527
  const thinking = msg.content.filter((b) => b.type === "thinking").map((b) => b.thinking).join("");
44516
44528
  if (text) info.text = text;
@@ -44678,8 +44690,31 @@ var TurnProjector = class {
44678
44690
  response: responseText || null
44679
44691
  });
44680
44692
  void this.syncTitle();
44693
+ this.emitContextUsage();
44681
44694
  this.finalize();
44682
44695
  }
44696
+ /** Broadcast + persist context-window usage (the status-bar total-token
44697
+ * counter). Shown ONLY when the model's context limit is known — when the
44698
+ * runtime does not report a window (e.g. Ollama cloud), no percentage can
44699
+ * be computed and the indicator stays hidden entirely. */
44700
+ emitContextUsage() {
44701
+ if (!this.lastContextTokens || this.lastContextTokens <= 0) return;
44702
+ const window = this.deps.getContextWindow?.() ?? null;
44703
+ if (!window || window <= 0) return;
44704
+ const contextUsage = {
44705
+ totalTokens: this.lastContextTokens,
44706
+ contextWindow: window,
44707
+ percentage: Math.round(this.lastContextTokens / window * 100)
44708
+ };
44709
+ broadcast("turn:contextUsage", { sessionId: this.deps.agentPaneSessionId, ...contextUsage });
44710
+ const db2 = getDb();
44711
+ const now = (/* @__PURE__ */ new Date()).toISOString();
44712
+ db2.prepare("UPDATE sessions SET context_usage = ?, updated_at = ? WHERE id = ?").run(
44713
+ JSON.stringify(contextUsage),
44714
+ now,
44715
+ this.deps.agentPaneSessionId
44716
+ );
44717
+ }
44683
44718
  /** Fire-and-forget: copy the runtime session title once (new sessions). */
44684
44719
  async syncTitle() {
44685
44720
  try {
@@ -44806,6 +44841,7 @@ var TurnProjector = class {
44806
44841
  response: responseText || null
44807
44842
  });
44808
44843
  void this.syncTitle();
44844
+ this.emitContextUsage();
44809
44845
  this.finalize();
44810
44846
  return;
44811
44847
  }
@@ -44831,6 +44867,9 @@ var TurnProjector = class {
44831
44867
  * rounds already exist and are skipped). */
44832
44868
  projectSnapshotRound(input) {
44833
44869
  if (!input.raw_llm_response && !input.thoughts && !input.aiActions?.length) return;
44870
+ if ((input.input_token_count ?? 0) > 0) {
44871
+ this.lastContextTokens = input.input_token_count;
44872
+ }
44834
44873
  const info = this.round(input.id);
44835
44874
  info.text = info.text || (input.raw_llm_response ?? "");
44836
44875
  info.thoughts = info.thoughts || (input.thoughts ?? "");
@@ -45017,6 +45056,8 @@ async function ensureSession(session, client, baseUrl) {
45017
45056
  // before unsafe effort values (e.g. ollama xhigh) were clamped.
45018
45057
  reasoningEffort: void 0,
45019
45058
  threadId: null,
45059
+ contextWindow: null,
45060
+ modelsResolved: false,
45020
45061
  activeTurn: null
45021
45062
  };
45022
45063
  sessionMap3.set(session.id, entry2);
@@ -45043,6 +45084,8 @@ async function ensureSession(session, client, baseUrl) {
45043
45084
  modelId: session.model ?? null,
45044
45085
  reasoningEffort: mappedEffort,
45045
45086
  threadId: null,
45087
+ contextWindow: null,
45088
+ modelsResolved: false,
45046
45089
  activeTurn: null
45047
45090
  };
45048
45091
  sessionMap3.set(session.id, entry);
@@ -45078,11 +45121,33 @@ async function ensureThreadSession(session, turn, client, baseUrl) {
45078
45121
  reasoningEffort: void 0,
45079
45122
  // re-pushed on the first thread turn
45080
45123
  threadId: turn.thread_id,
45124
+ contextWindow: null,
45125
+ modelsResolved: false,
45081
45126
  activeTurn: null
45082
45127
  };
45083
45128
  sessionMap3.set(mapKey, entry);
45084
45129
  return entry;
45085
45130
  }
45131
+ async function ensureContextWindow(entry) {
45132
+ if (entry.modelsResolved) return;
45133
+ entry.modelsResolved = true;
45134
+ try {
45135
+ let modelId = entry.modelId;
45136
+ if (!modelId) {
45137
+ const runtimeSession = await entry.client.getSession(entry.repoburgSessionId);
45138
+ modelId = runtimeSession.model_id ?? null;
45139
+ }
45140
+ if (!modelId) {
45141
+ entry.contextWindow = null;
45142
+ return;
45143
+ }
45144
+ const models = await entry.client.getModels();
45145
+ entry.contextWindow = models.find((m) => m.id === modelId)?.context_window ?? null;
45146
+ } catch (err) {
45147
+ console.warn("[repoburg] context-window lookup failed:", err.message);
45148
+ entry.contextWindow = null;
45149
+ }
45150
+ }
45086
45151
  function failTurnBeforeStart(db2, sessionId, turnId, error) {
45087
45152
  const now = (/* @__PURE__ */ new Date()).toISOString();
45088
45153
  db2.prepare("UPDATE turns SET status = ?, error = ?, updated_at = ? WHERE id = ?").run(
@@ -45195,6 +45260,7 @@ async function startTurn3(session, turn) {
45195
45260
  });
45196
45261
  entry.modelId = wantedModel;
45197
45262
  entry.reasoningEffort = wantedEffort;
45263
+ entry.modelsResolved = false;
45198
45264
  } catch (err) {
45199
45265
  console.error(`[repoburg] patchSession failed for ${entry.repoburgSessionId}:`, err);
45200
45266
  }
@@ -45207,9 +45273,13 @@ async function startTurn3(session, turn) {
45207
45273
  agentPaneSessionId: session.id,
45208
45274
  turnId: turn.id,
45209
45275
  repoburgSessionId: entry.repoburgSessionId,
45210
- client: entry.client
45276
+ client: entry.client,
45277
+ // Late-bound — the window resolves from the runtime catalog while the
45278
+ // turn streams and is read at turn completion.
45279
+ getContextWindow: () => entry.contextWindow
45211
45280
  });
45212
45281
  entry.activeTurn = { turnId: turn.id, projector, sseAbort: new AbortController(), cancelled: false };
45282
+ void ensureContextWindow(entry);
45213
45283
  runStreamLoop(entry, projector).catch((err) => {
45214
45284
  console.error("[repoburg] stream loop crashed:", err);
45215
45285
  failTurn(entry, `Stream loop failed: ${err.message}`);
@@ -45340,9 +45410,9 @@ function clearAllThreads3() {
45340
45410
  }
45341
45411
  sessionMap3.clear();
45342
45412
  }
45343
- async function getModels3() {
45413
+ async function getModels3(cwd) {
45344
45414
  try {
45345
- const resolved = await resolveBackendUrl(process.cwd(), { autoStart: false });
45415
+ const resolved = await resolveBackendUrl(cwd ?? process.cwd(), { autoStart: false });
45346
45416
  if (!resolved) return [];
45347
45417
  const models = await new RepoburgHttpClient(resolved.baseUrl).getModels();
45348
45418
  return models.map((m) => ({
@@ -45357,9 +45427,9 @@ async function getModels3() {
45357
45427
  return [];
45358
45428
  }
45359
45429
  }
45360
- async function getCommands2() {
45430
+ async function getCommands2(cwd) {
45361
45431
  try {
45362
- const resolved = await resolveBackendUrl(process.cwd(), { autoStart: false });
45432
+ const resolved = await resolveBackendUrl(cwd ?? process.cwd(), { autoStart: false });
45363
45433
  if (!resolved) return [];
45364
45434
  const commands = await new RepoburgHttpClient(resolved.baseUrl).getSlashCommands();
45365
45435
  return commands.map((c) => ({
@@ -54,6 +54,7 @@ export interface LlmModel {
54
54
  id: string;
55
55
  name: string;
56
56
  provider: 'openrouter' | 'zai' | 'alibaba' | 'ollama' | 'openai' | 'custom';
57
+ context_window?: number;
57
58
  }
58
59
  export interface LlmUsage {
59
60
  inputTokens?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"llm-provider.interface.js","sourceRoot":"","sources":["../../../src/llm-provider/llm-provider.interface.ts"],"names":[],"mappings":";;;AAAA,kDAAyD;AAuBhD,gGAvBA,uBAAe,OAuBA;AAqEX,QAAA,YAAY,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"llm-provider.interface.js","sourceRoot":"","sources":["../../../src/llm-provider/llm-provider.interface.ts"],"names":[],"mappings":";;;AAAA,kDAAyD;AAuBhD,gGAvBA,uBAAe,OAuBA;AAuEX,QAAA,YAAY,GAAG,cAAc,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { LlmProvider, LlmProviderRequest, LlmModel, LlmResponse } from './llm-provider.interface';
2
2
  import { ApplicationStateService } from '../application-state/application-state.service';
3
3
  import { LlmCallLogsService } from '../llm-call-logs/llm-call-logs.service';
4
+ export declare const OLLAMA_CLOUD_MODELS: string[];
4
5
  export declare class OllamaLlmProvider implements LlmProvider {
5
6
  private readonly applicationStateService;
6
7
  private readonly llmCallLogsService;
@@ -11,6 +12,8 @@ export declare class OllamaLlmProvider implements LlmProvider {
11
12
  private mapHistory;
12
13
  private convertToolCallArgumentsForOllama;
13
14
  private mapTools;
15
+ private contextWindowCache;
16
+ private fetchContextWindow;
14
17
  getModels(): Promise<LlmModel[]>;
15
18
  generateContent(request: LlmProviderRequest): Promise<LlmResponse>;
16
19
  private tryParseJson;
@@ -10,12 +10,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  var OllamaLlmProvider_1;
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.OllamaLlmProvider = void 0;
13
+ exports.OllamaLlmProvider = exports.OLLAMA_CLOUD_MODELS = void 0;
14
14
  const common_1 = require("@nestjs/common");
15
15
  const application_state_service_1 = require("../application-state/application-state.service");
16
16
  const llm_call_logs_service_1 = require("../llm-call-logs/llm-call-logs.service");
17
17
  const utils_1 = require("../utils");
18
- const OLLAMA_CLOUD_MODELS = [
18
+ exports.OLLAMA_CLOUD_MODELS = [
19
19
  'glm-5.3:cloud',
20
20
  'glm-5.3-flash:cloud',
21
21
  'glm-5.2:cloud',
@@ -52,6 +52,7 @@ let OllamaLlmProvider = OllamaLlmProvider_1 = class OllamaLlmProvider {
52
52
  this.logger = new common_1.Logger(OllamaLlmProvider_1.name);
53
53
  this.baseUrl = 'https://ollama.com/api';
54
54
  this.activeStreams = new Map();
55
+ this.contextWindowCache = new Map();
55
56
  }
56
57
  mapHistory(history) {
57
58
  return history.map((turn) => {
@@ -122,16 +123,49 @@ let OllamaLlmProvider = OllamaLlmProvider_1 = class OllamaLlmProvider {
122
123
  return undefined;
123
124
  return tools;
124
125
  }
126
+ async fetchContextWindow(modelId, apiKey) {
127
+ if (this.contextWindowCache.has(modelId)) {
128
+ return this.contextWindowCache.get(modelId) ?? null;
129
+ }
130
+ let contextWindow = null;
131
+ try {
132
+ const response = await fetch(`${this.baseUrl}/show`, {
133
+ method: 'POST',
134
+ headers: {
135
+ 'Content-Type': 'application/json',
136
+ Authorization: `Bearer ${apiKey}`,
137
+ },
138
+ body: JSON.stringify({ model: modelId }),
139
+ });
140
+ if (response.ok) {
141
+ const data = await response.json();
142
+ const info = (data?.model_info ?? {});
143
+ const entry = Object.entries(info).find(([key, value]) => key.endsWith('.context_length') &&
144
+ typeof value === 'number' &&
145
+ value > 0);
146
+ contextWindow = entry ? entry[1] : null;
147
+ }
148
+ }
149
+ catch (e) {
150
+ this.logger.warn(`Context-window lookup failed for ${modelId}: ${e.message}`);
151
+ }
152
+ this.contextWindowCache.set(modelId, contextWindow);
153
+ return contextWindow;
154
+ }
125
155
  async getModels() {
126
156
  const apiKey = await this.applicationStateService.getOllamaApiKey();
127
157
  if (!apiKey) {
128
158
  this.logger.warn('Ollama API key not configured, returning empty models list');
129
159
  return [];
130
160
  }
131
- const models = OLLAMA_CLOUD_MODELS.map((modelId) => ({
132
- id: `ollama/${modelId}`,
133
- name: modelId,
134
- provider: 'ollama',
161
+ const models = await Promise.all(exports.OLLAMA_CLOUD_MODELS.map(async (modelId) => {
162
+ const contextWindow = await this.fetchContextWindow(modelId, apiKey);
163
+ return {
164
+ id: `ollama/${modelId}`,
165
+ name: modelId,
166
+ provider: 'ollama',
167
+ ...(contextWindow ? { context_window: contextWindow } : {}),
168
+ };
135
169
  }));
136
170
  return models;
137
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-llm.provider.js","sourceRoot":"","sources":["../../../src/llm-provider/ollama-llm.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAUpD,8FAAyF;AACzF,kFAA4E;AAC5E,oCAA0D;AAG1D,MAAM,mBAAmB,GAAG;IAC1B,eAAe;IACf,qBAAqB;IACrB,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,yBAAyB;IACzB,uBAAuB;IACvB,kBAAkB;IAClB,eAAe;IACf,wBAAwB;IACxB,kBAAkB;IAClB,eAAe;IACf,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,aAAa;IACb,uBAAuB;IACvB,oBAAoB;IACpB,8BAA8B;IAC9B,eAAe;IACf,qBAAqB;IACrB,kBAAkB;IAClB,wBAAwB;IACxB,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,eAAe;CAChB,CAAC;AAGK,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAK5B,YACmB,uBAAgD,EAChD,kBAAsC;QADtC,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,uBAAkB,GAAlB,kBAAkB,CAAoB;QANxC,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,YAAO,GAAG,wBAAwB,CAAC;QAC5C,kBAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;IAKxD,CAAC;IAEI,UAAU,CAAC,OAAqB;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAEzB,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;iBAChD,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEvD,MAAM,UAAU,GAAQ;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;gBAClD,OAAO,EAAE,OAAO;aACjB,CAAC;YAGF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAe,CAAC,CAAC;YAClD,CAAC;YAGD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YACrC,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBACnD,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,QAAQ,EAAE;wBACR,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;wBACtB,SAAS,EACP,OAAO,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ;4BACvC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS;4BACvB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;qBAC5C;iBACF,CAAC,CAAC,CAAC;YACN,CAAC;YAGD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAQO,iCAAiC,CAAC,QAAe;QACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBACpD,QAAQ,EAAE;wBACR,KAAK,EAAE,KAAK;wBACZ,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;wBAC7B,SAAS,EAAE,CAAC,GAAG,EAAE;4BACf,IAAI,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;gCAC/C,IAAI,CAAC;oCACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gCAC3C,CAAC;gCAAC,MAAM,CAAC;oCACP,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8CAA8C,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CACtE,CAAC;oCACF,OAAO,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;gCAC/B,CAAC;4BACH,CAAC;4BACD,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;wBACtC,CAAC,CAAC,EAAE;qBACL;iBACF,CAAC,CAAC,CAAC;YACN,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,KAAyB;QACxC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC;QAEpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,4DAA4D,CAC7D,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnD,EAAE,EAAE,UAAU,OAAO,EAAE;YACvB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,QAAiB;SAC5B,CAAC,CAAC,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA2B;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,EACJ,MAAM,EACN,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,eAAe,GAChB,GAAG,OAAO,CAAC;QAEZ,MAAM,aAAa,GAAG,OAAO;YAC3B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,CAAC,CAAC,eAAe,CAAC;QACpB,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAE7E,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,iBAAiB,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE/C,MAAM,aAAa,GACjB,IAAI,CAAC,iCAAiC,CAAC,aAAa,CAAC,CAAC;YACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,aAAa,EAAE,CAAC,CAAC;QAEnE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,IAAI,CAAC;YAGH,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAC1C,CAAC,EAAE,MAAM;gBACP,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,EAAE;gBAChE,CAAC,CAAC,CAAC,CACN,CAAC;YACF,YAAY,GAAG,CACb,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBACtC,gBAAgB,EAAE,SAAS;gBAC3B,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,aAAa;gBACvB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC3B,KAAK,EAAE,aAAa;oBACpB,QAAQ,EAAE,WAAW;oBACrB,KAAK;oBACL,MAAM,EAAE,CAAC,CAAC,OAAO;oBACjB,OAAO,EAAE,gBAAgB;iBAC1B,CAAC;aACH,CAAC,CACH,CAAC,EAAE,CAAC;QACP,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,IAAI,GAAQ;gBAChB,KAAK,EAAE,aAAa;gBACpB,QAAQ;aACT,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACtB,CAAC;YAGD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClB,IAAI,gBAAgB,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC/C,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC;gBAC1D,CAAC;gBACD,IAAI,gBAAgB,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBACnD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC,eAAe,CAAC;gBAC9D,CAAC;gBACD,IAAI,gBAAgB,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBAC7C,CAAC;YACH,CAAC;YAID,IAAI,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrE,CAAC;YAGD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YAGD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,OAAO,EAAE;gBACnD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,eAAe,EAAE,MAAM;aAChC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC/C,MAAM,YAAY,GAChB,SAAS,EAAE,KAAK,IAAI,qBAAqB,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAEjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;gBAEvD,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAY,EAAE;4BACpD,WAAW,EAAE,QAAQ,CAAC,MAAM;4BAC5B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;4BAClC,aAAa,EAAE,YAAY;4BAC3B,aAAa,EAAE,SAAS;yBACzB,CAAC,CAAC;wBACH,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC;oBAAC,OAAO,WAAW,EAAE,CAAC;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kCAAkC,WAAW,CAAC,OAAO,EAAE,CACxD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAA+B,CAAC;gBACpE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC/B,MAAM,KAAK,CAAC;YACd,CAAC;YAGD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;gBAClC,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,mBAAmB,GAAG,EAAE,CAAC;gBAC7B,IAAI,mBAAmB,GAAG,EAAE,CAAC;gBAC7B,IAAI,OAAO,GAAG,IAAI,CAAC;gBACnB,IAAI,eAAe,GAAG,CAAC,CAAC;gBACxB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,cAAc,GAAU,EAAE,CAAC;gBAE/B,IAAI,CAAC;oBACH,OAAO,IAAI,EAAE,CAAC;wBACZ,IAAI,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;4BACrC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;4BACrC,MAAM,IAAI,YAAY,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;wBACpE,CAAC;wBAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;wBAC5C,IAAI,IAAI;4BAAE,MAAM;wBAEhB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;wBAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gCAAE,SAAS;4BAE3B,IAAI,MAAW,CAAC;4BAChB,IAAI,CAAC;gCACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC5B,CAAC;4BAAC,MAAM,CAAC;gCACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;gCACvD,SAAS;4BACX,CAAC;4BAGD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gCACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gCAC1D,MAAM,WAAW,GAAG,IAAI,KAAK,CAC3B,wBAAwB,MAAM,CAAC,KAAK,EAAE,CACT,CAAC;gCAChC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gCACrC,MAAM,WAAW,CAAC;4BACpB,CAAC;4BAED,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gCAC5B,mBAAmB,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gCAC9C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gCACzC,IAAI,OAAO;oCAAE,OAAO,GAAG,KAAK,CAAC;4BAC/B,CAAC;4BAGD,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;gCAC7B,mBAAmB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gCAC/C,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAChD,CAAC;4BAGD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;gCAC/B,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;4BAC7C,CAAC;4BAGD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gCAChB,eAAe,GAAG,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC;gCAChD,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;gCACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,4BAA4B,eAAe,YAAY,SAAS,aAAa,CAC9E,CAAC;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,SAAS,EAAE,CAAC;oBACnB,IAAI,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBACrC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBACrC,MAAM,IAAI,YAAY,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;oBACpE,CAAC;oBACD,MAAM,SAAS,CAAC;gBAClB,CAAC;gBAGD,MAAM,eAAe,GACnB,cAAc,CAAC,MAAM,GAAG,CAAC;oBACvB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;wBAC/B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;wBACjC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,UAAU;wBAC3B,QAAQ,EAAE;4BACR,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;4BAC7B,SAAS,EAAE,CAAC,GAAG,EAAE;gCACf,IAAI,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;oCAC/C,IAAI,CAAC;wCACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oCAC3C,CAAC;oCAAC,MAAM,CAAC;wCACP,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mCAAmC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAC3D,CAAC;wCACF,OAAO,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;oCAC/B,CAAC;gCACH,CAAC;gCACD,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;4BACtC,CAAC,CAAC,EAAE;yBACL;qBACF,CAAC,CAAC;oBACL,CAAC,CAAC,SAAS,CAAC;gBAEhB,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAY,EAAE;4BACpD,WAAW,EAAE,GAAG;4BAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;4BAClC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC;gCAC5B,IAAI,EAAE,mBAAmB;gCACzB,QAAQ,EAAE,mBAAmB;gCAC7B,UAAU,EAAE,cAAc;gCAC1B,iBAAiB,EAAE,eAAe;gCAClC,UAAU,EAAE,SAAS;6BACtB,CAAC;4BACF,YAAY,EAAE,eAAe;4BAC7B,aAAa,EAAE,SAAS;yBACzB,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,WAAW,EAAE,CAAC;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kCAAkC,WAAW,CAAC,OAAO,EAAE,CACxD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrC,OAAO;oBACL,IAAI,EAAE,mBAAmB;oBACzB,KAAK,EAAE;wBACL,WAAW,EAAE,eAAe;wBAC5B,YAAY,EAAE,SAAS;qBACxB;oBACD,UAAU,EAAE,eAAe;oBAC3B,QAAQ,EAAE,mBAAmB,IAAI,SAAS;iBAC3C,CAAC;YACJ,CAAC;YAGD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;YACpD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;YAEvC,MAAM,eAAe,GACnB,YAAY,CAAC,MAAM,GAAG,CAAC;gBACrB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;oBAC7B,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;oBACjC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,UAAU;oBAC3B,QAAQ,EAAE;wBACR,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;wBAC7B,SAAS,EAAE,CAAC,GAAG,EAAE;4BACf,IAAI,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;gCAC/C,IAAI,CAAC;oCACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gCAC3C,CAAC;gCAAC,MAAM,CAAC;oCACP,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mCAAmC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAC3D,CAAC;oCACF,OAAO,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;gCAC/B,CAAC;4BACH,CAAC;4BACD,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;wBACtC,CAAC,CAAC,EAAE;qBACL;iBACF,CAAC,CAAC;gBACL,CAAC,CAAC,SAAS,CAAC;YAEhB,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,oCAAoC,CAGrC,CAAC;gBACF,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;gBACpC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,oBAAoB,eAAe,YAAY,SAAS,aAAa,CACtE,CAAC;YAEF,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAY,EAAE;wBACpD,WAAW,EAAE,GAAG;wBAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;wBAClC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBACnC,YAAY,EAAE,eAAe;wBAC7B,aAAa,EAAE,SAAS;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kCAAkC,WAAW,CAAC,OAAO,EAAE,CACxD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,WAAW,EAAE,eAAe;oBAC5B,YAAY,EAAE,SAAS;iBACxB;gBACD,UAAU,EAAE,eAAe;gBAC3B,QAAQ,EAAE,QAAQ,IAAI,SAAS;aAChC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAEhE,IAAI,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,SAAS,GACb,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACvD,IAAI,YAAY,GAAG,IAAI,SAAS,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;oBACrD,IAAI,KAAK,CAAC,MAAM;wBAAE,YAAY,IAAI,kBAAkB,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnE,MAAM,UAAU,GACd,KAAK,YAAY,KAAK,CAAC,CAAC,CAAE,KAAa,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5D,IAAI,UAAU,EAAE,CAAC;wBACf,YAAY,IAAI,YAAY,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtG,CAAC;oBACD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClE,YAAY,IAAI,KAAK,UAAU,EAAE,CAAC;oBACpC,CAAC;oBAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAY,EAAE;wBACpD,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;wBACjC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;wBAClC,aAAa,EAAE,YAAY;qBAC5B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kCAAkC,WAAW,CAAC,OAAO,EAAE,CACxD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAIO,aAAa,CAAC,MAAc;QAClC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB,KAAK,KAAK;gBACR,OAAO,KAAK,CAAC;YACf,KAAK,SAAS;gBACZ,OAAO,KAAK,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,UAAkB;QACjC,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACH,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAjjBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAOiC,mDAAuB;QAC5B,0CAAkB;GAP9C,iBAAiB,CAijB7B"}
1
+ {"version":3,"file":"ollama-llm.provider.js","sourceRoot":"","sources":["../../../src/llm-provider/ollama-llm.provider.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,9 @@ let OpenRouterLlmProvider = OpenRouterLlmProvider_1 = class OpenRouterLlmProvide
75
75
  id: m.id,
76
76
  name: m.name,
77
77
  provider: 'openrouter',
78
+ ...(typeof m.context_length === 'number' && m.context_length > 0
79
+ ? { context_window: m.context_length }
80
+ : {}),
78
81
  }));
79
82
  }
80
83
  catch (e) {