@asm-agent/coding-agent 0.8.7 → 0.8.8

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 (47) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/asm-agent-runtime/src/rlm/__pycache__/__init__.cpython-313.pyc +0 -0
  3. package/dist/asm-agent-runtime/src/rlm/__pycache__/_winjob.cpython-313.pyc +0 -0
  4. package/dist/asm-agent-runtime/src/rlm/__pycache__/bash.cpython-313.pyc +0 -0
  5. package/dist/asm-agent-runtime/src/rlm/__pycache__/harness.cpython-313.pyc +0 -0
  6. package/dist/asm-agent-runtime/src/rlm/__pycache__/mcp.cpython-313.pyc +0 -0
  7. package/dist/asm-agent-runtime/src/rlm/__pycache__/mcp_base.cpython-313.pyc +0 -0
  8. package/dist/asm-agent-runtime/src/rlm/__pycache__/repl.cpython-313.pyc +0 -0
  9. package/dist/asm-agent-runtime/test/__pycache__/test_agent_message_skill.cpython-313.pyc +0 -0
  10. package/dist/asm-agent-runtime/test/__pycache__/test_bash.cpython-313.pyc +0 -0
  11. package/dist/asm-agent-runtime/test/__pycache__/test_harness.cpython-313.pyc +0 -0
  12. package/dist/asm-agent-runtime/test/__pycache__/test_mcp.cpython-313.pyc +0 -0
  13. package/dist/asm-agent-runtime/test/__pycache__/test_mcp_base.cpython-313.pyc +0 -0
  14. package/dist/asm-agent-runtime/test/__pycache__/test_repl.cpython-313.pyc +0 -0
  15. package/dist/asm-agent-runtime/test/__pycache__/test_subagent_registry.cpython-313.pyc +0 -0
  16. package/dist/asm-agent-runtime/test/__pycache__/test_winjob.cpython-313.pyc +0 -0
  17. package/dist/bundle/{anthropic-XSMQHGYB.js → anthropic-OFECORE7.js} +1 -1
  18. package/dist/bundle/{azure-openai-responses-XLQAIKKH.js → azure-openai-responses-AOVTLR6N.js} +2 -2
  19. package/dist/bundle/{bundled-modules-5OCN73BM.js → bundled-modules-JQCJDEIY.js} +3 -3
  20. package/dist/bundle/{chunk-2LPSALBF.js → chunk-7TB7CGPV.js} +11 -11
  21. package/dist/bundle/{chunk-YPNK4MRU.js → chunk-A65OM3TZ.js} +1 -1
  22. package/dist/bundle/{chunk-E3YE2Q7A.js → chunk-JC2TT4MZ.js} +33 -12
  23. package/dist/bundle/{chunk-IAQLPSMN.js → chunk-M67RGWDQ.js} +25 -6
  24. package/dist/bundle/{cli-main-QYX5R3LF.js → cli-main-FNHDQGQD.js} +3 -3
  25. package/dist/bundle/cli.js +1 -1
  26. package/dist/bundle/{google-ZXJEPWJA.js → google-RVJL6RIQ.js} +1 -1
  27. package/dist/bundle/{google-vertex-WAF3RIJ6.js → google-vertex-EZTRRRH6.js} +1 -1
  28. package/dist/bundle/{main-EOUAQCJH.js → main-IYXIIAJN.js} +3 -3
  29. package/dist/bundle/{mistral-GDZXSXRS.js → mistral-FSGKSMA7.js} +1 -1
  30. package/dist/bundle/{openai-codex-responses-7XMPW4LG.js → openai-codex-responses-VM5Y564D.js} +2 -2
  31. package/dist/bundle/{openai-completions-LNSVGDMF.js → openai-completions-X46FOQDN.js} +2 -2
  32. package/dist/bundle/{openai-responses-MFZOBMIT.js → openai-responses-SOQNEPBE.js} +2 -2
  33. package/dist/core/model-registry.d.ts.map +1 -1
  34. package/dist/core/model-registry.js +1 -1
  35. package/dist/core/model-registry.js.map +1 -1
  36. package/dist/core/ollama-models.d.ts +3 -1
  37. package/dist/core/ollama-models.d.ts.map +1 -1
  38. package/dist/core/ollama-models.js +31 -10
  39. package/dist/core/ollama-models.js.map +1 -1
  40. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  41. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  42. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  43. package/examples/extensions/sandbox/package-lock.json +2 -2
  44. package/examples/extensions/sandbox/package.json +1 -1
  45. package/examples/extensions/with-deps/package-lock.json +2 -2
  46. package/examples/extensions/with-deps/package.json +1 -1
  47. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.8] - 2026-09-03
4
+
5
+ - Fixed selected Ollama models failing runtime authentication before requests were sent.
6
+
3
7
  ## [0.8.7] - 2026-09-03
4
8
 
5
9
  - Added automatic Ollama model discovery and selection from the `/model` menu.
@@ -37,7 +37,7 @@ import {
37
37
  AssistantMessageEventStream,
38
38
  calculateCost,
39
39
  clampThinkingLevel
40
- } from "./chunk-IAQLPSMN.js";
40
+ } from "./chunk-M67RGWDQ.js";
41
41
  import "./chunk-BAWSWWEU.js";
42
42
 
43
43
  // ../../node_modules/@anthropic-ai/sdk/internal/tslib.mjs
@@ -3,7 +3,7 @@ import {
3
3
  convertResponsesMessages,
4
4
  convertResponsesTools,
5
5
  processResponsesStream
6
- } from "./chunk-YPNK4MRU.js";
6
+ } from "./chunk-A65OM3TZ.js";
7
7
  import "./chunk-NQB5DCFC.js";
8
8
  import {
9
9
  AzureOpenAI
@@ -26,7 +26,7 @@ import {
26
26
  import {
27
27
  AssistantMessageEventStream,
28
28
  clampThinkingLevel
29
- } from "./chunk-IAQLPSMN.js";
29
+ } from "./chunk-M67RGWDQ.js";
30
30
  import "./chunk-BAWSWWEU.js";
31
31
 
32
32
  // ../ai/src/providers/azure-openai-responses.ts
@@ -52,7 +52,7 @@ import {
52
52
  oauth_exports,
53
53
  runPrintMode,
54
54
  runRpcMode
55
- } from "./chunk-E3YE2Q7A.js";
55
+ } from "./chunk-JC2TT4MZ.js";
56
56
  import {
57
57
  AgentSession,
58
58
  CURRENT_SESSION_VERSION,
@@ -136,7 +136,7 @@ import {
136
136
  withFileMutationQueue,
137
137
  wrapRegisteredTool,
138
138
  wrapRegisteredTools
139
- } from "./chunk-2LPSALBF.js";
139
+ } from "./chunk-7TB7CGPV.js";
140
140
  import "./chunk-VWR3YFK5.js";
141
141
  import "./chunk-N2CSAETN.js";
142
142
  import "./chunk-5QCJ5DQU.js";
@@ -149,7 +149,7 @@ import "./chunk-UIRUOAIQ.js";
149
149
  import "./chunk-HXOBFFJX.js";
150
150
  import "./chunk-6GUVYK6P.js";
151
151
  import "./chunk-UPDAFKL5.js";
152
- import "./chunk-IAQLPSMN.js";
152
+ import "./chunk-M67RGWDQ.js";
153
153
  import {
154
154
  __export
155
155
  } from "./chunk-BAWSWWEU.js";
@@ -331,7 +331,7 @@ import {
331
331
  getSupportedThinkingLevels,
332
332
  modelsAreEqual,
333
333
  supportsFastMode
334
- } from "./chunk-IAQLPSMN.js";
334
+ } from "./chunk-M67RGWDQ.js";
335
335
  import {
336
336
  __commonJS,
337
337
  __export,
@@ -13579,7 +13579,7 @@ function createLazySimpleStream(loadModule) {
13579
13579
  };
13580
13580
  }
13581
13581
  function loadAnthropicProviderModule() {
13582
- anthropicProviderModulePromise ||= import("./anthropic-XSMQHGYB.js").then((module) => {
13582
+ anthropicProviderModulePromise ||= import("./anthropic-OFECORE7.js").then((module) => {
13583
13583
  const provider = module;
13584
13584
  return {
13585
13585
  stream: provider.streamAnthropic,
@@ -13589,7 +13589,7 @@ function loadAnthropicProviderModule() {
13589
13589
  return anthropicProviderModulePromise;
13590
13590
  }
13591
13591
  function loadAzureOpenAIResponsesProviderModule() {
13592
- azureOpenAIResponsesProviderModulePromise ||= import("./azure-openai-responses-XLQAIKKH.js").then((module) => {
13592
+ azureOpenAIResponsesProviderModulePromise ||= import("./azure-openai-responses-AOVTLR6N.js").then((module) => {
13593
13593
  const provider = module;
13594
13594
  return {
13595
13595
  stream: provider.streamAzureOpenAIResponses,
@@ -13599,7 +13599,7 @@ function loadAzureOpenAIResponsesProviderModule() {
13599
13599
  return azureOpenAIResponsesProviderModulePromise;
13600
13600
  }
13601
13601
  function loadGoogleProviderModule() {
13602
- googleProviderModulePromise ||= import("./google-ZXJEPWJA.js").then((module) => {
13602
+ googleProviderModulePromise ||= import("./google-RVJL6RIQ.js").then((module) => {
13603
13603
  const provider = module;
13604
13604
  return {
13605
13605
  stream: provider.streamGoogle,
@@ -13609,7 +13609,7 @@ function loadGoogleProviderModule() {
13609
13609
  return googleProviderModulePromise;
13610
13610
  }
13611
13611
  function loadGoogleVertexProviderModule() {
13612
- googleVertexProviderModulePromise ||= import("./google-vertex-WAF3RIJ6.js").then((module) => {
13612
+ googleVertexProviderModulePromise ||= import("./google-vertex-EZTRRRH6.js").then((module) => {
13613
13613
  const provider = module;
13614
13614
  return {
13615
13615
  stream: provider.streamGoogleVertex,
@@ -13619,7 +13619,7 @@ function loadGoogleVertexProviderModule() {
13619
13619
  return googleVertexProviderModulePromise;
13620
13620
  }
13621
13621
  function loadMistralProviderModule() {
13622
- mistralProviderModulePromise ||= import("./mistral-GDZXSXRS.js").then((module) => {
13622
+ mistralProviderModulePromise ||= import("./mistral-FSGKSMA7.js").then((module) => {
13623
13623
  const provider = module;
13624
13624
  return {
13625
13625
  stream: provider.streamMistral,
@@ -13629,7 +13629,7 @@ function loadMistralProviderModule() {
13629
13629
  return mistralProviderModulePromise;
13630
13630
  }
13631
13631
  function loadOpenAICodexResponsesProviderModule() {
13632
- openAICodexResponsesProviderModulePromise ||= import("./openai-codex-responses-7XMPW4LG.js").then((module) => {
13632
+ openAICodexResponsesProviderModulePromise ||= import("./openai-codex-responses-VM5Y564D.js").then((module) => {
13633
13633
  const provider = module;
13634
13634
  return {
13635
13635
  stream: provider.streamOpenAICodexResponses,
@@ -13639,7 +13639,7 @@ function loadOpenAICodexResponsesProviderModule() {
13639
13639
  return openAICodexResponsesProviderModulePromise;
13640
13640
  }
13641
13641
  function loadOpenAICompletionsProviderModule() {
13642
- openAICompletionsProviderModulePromise ||= import("./openai-completions-LNSVGDMF.js").then((module) => {
13642
+ openAICompletionsProviderModulePromise ||= import("./openai-completions-X46FOQDN.js").then((module) => {
13643
13643
  const provider = module;
13644
13644
  return {
13645
13645
  stream: provider.streamOpenAICompletions,
@@ -13649,7 +13649,7 @@ function loadOpenAICompletionsProviderModule() {
13649
13649
  return openAICompletionsProviderModulePromise;
13650
13650
  }
13651
13651
  function loadOpenAIResponsesProviderModule() {
13652
- openAIResponsesProviderModulePromise ||= import("./openai-responses-MFZOBMIT.js").then((module) => {
13652
+ openAIResponsesProviderModulePromise ||= import("./openai-responses-SOQNEPBE.js").then((module) => {
13653
13653
  const provider = module;
13654
13654
  return {
13655
13655
  stream: provider.streamOpenAIResponses,
@@ -38635,7 +38635,7 @@ async function loadExtensionModule(extensionPath) {
38635
38635
  // (file-path aliases would load a second, divergent copy of each package).
38636
38636
  // Also disable tryNative so jiti handles ALL imports (not just the entry point)
38637
38637
  // In Node.js/dev: use aliases to resolve to node_modules paths
38638
- ...isBunBinary || isBundledCli ? { virtualModules: (await import("./bundled-modules-5OCN73BM.js")).VIRTUAL_MODULES, tryNative: false } : { alias: getAliases() }
38638
+ ...isBunBinary || isBundledCli ? { virtualModules: (await import("./bundled-modules-JQCJDEIY.js")).VIRTUAL_MODULES, tryNative: false } : { alias: getAliases() }
38639
38639
  });
38640
38640
  const module = await jiti.import(extensionPath, { default: true });
38641
38641
  const factory = module;
@@ -60034,7 +60034,7 @@ import { resolve as resolve16 } from "node:path";
60034
60034
  var ASM_AGENT_BUILD_ID_ENV = "ASM_AGENT_BUILD_ID";
60035
60035
  var ASM_AGENT_LAUNCHER_PATH_ENV = "ASM_AGENT_LAUNCHER_PATH";
60036
60036
  function bundledBuildId() {
60037
- return false ? void 0 : "v0.8.7-dirty";
60037
+ return false ? void 0 : "v0.8.8-dirty";
60038
60038
  }
60039
60039
  function getDaemonRuntimeIdentity(environment = process.env) {
60040
60040
  const entrypoint = process.argv[1];
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-GG7GAQ5N.js";
16
16
  import {
17
17
  calculateCost
18
- } from "./chunk-IAQLPSMN.js";
18
+ } from "./chunk-M67RGWDQ.js";
19
19
 
20
20
  // ../ai/src/providers/openai-responses-shared.ts
21
21
  function encodeTextSignatureV1(id, phase) {
@@ -353,7 +353,7 @@ import {
353
353
  waitForPromptAdmission,
354
354
  watchWithErrorHandler,
355
355
  wrapTextWithAnsi
356
- } from "./chunk-2LPSALBF.js";
356
+ } from "./chunk-7TB7CGPV.js";
357
357
  import {
358
358
  array,
359
359
  boolean,
@@ -390,7 +390,7 @@ import {
390
390
  getProviders,
391
391
  modelsAreEqual,
392
392
  supportsFastMode
393
- } from "./chunk-IAQLPSMN.js";
393
+ } from "./chunk-M67RGWDQ.js";
394
394
  import {
395
395
  __commonJS,
396
396
  __export,
@@ -24788,6 +24788,8 @@ import { existsSync as existsSync7, readFileSync as readFileSync8, renameSync as
24788
24788
  import { dirname as dirname8, join as join8 } from "path";
24789
24789
 
24790
24790
  // dist/core/ollama-models.js
24791
+ import { get as httpGet } from "node:http";
24792
+ import { get as httpsGet } from "node:https";
24791
24793
  var DEFAULT_OLLAMA_HOST = "http://127.0.0.1:11434";
24792
24794
  var OLLAMA_DISCOVERY_TIMEOUT_MS = 1500;
24793
24795
  function getOllamaBaseUrl() {
@@ -24798,6 +24800,32 @@ function getOllamaBaseUrl() {
24798
24800
  function getOllamaTagsUrl(baseUrl) {
24799
24801
  return `${baseUrl.replace(/\/v1$/, "")}/api/tags`;
24800
24802
  }
24803
+ function requestJson(url2, timeoutMs) {
24804
+ return new Promise((resolve21, reject) => {
24805
+ const parsed = new URL(url2);
24806
+ const get = parsed.protocol === "https:" ? httpsGet : httpGet;
24807
+ const request = get(parsed, { timeout: timeoutMs }, (response) => {
24808
+ let body = "";
24809
+ response.setEncoding("utf8");
24810
+ response.on("data", (chunk) => {
24811
+ body += chunk;
24812
+ });
24813
+ response.on("end", () => {
24814
+ if (response.statusCode !== 200) {
24815
+ reject(new Error(`Ollama returned HTTP ${response.statusCode ?? "unknown"}`));
24816
+ return;
24817
+ }
24818
+ try {
24819
+ resolve21(JSON.parse(body));
24820
+ } catch (error) {
24821
+ reject(error);
24822
+ }
24823
+ });
24824
+ });
24825
+ request.on("error", reject);
24826
+ request.on("timeout", () => request.destroy(new Error("Ollama discovery timed out")));
24827
+ });
24828
+ }
24801
24829
  function modelFromTag(tag, baseUrl) {
24802
24830
  if (typeof tag.name !== "string" || !tag.name.trim())
24803
24831
  return void 0;
@@ -24823,22 +24851,15 @@ function modelFromTag(tag, baseUrl) {
24823
24851
  }
24824
24852
  };
24825
24853
  }
24826
- async function discoverOllamaModels() {
24854
+ async function discoverOllamaModels(request = requestJson) {
24827
24855
  const baseUrl = getOllamaBaseUrl();
24828
- const controller = new AbortController();
24829
- const timeout = setTimeout(() => controller.abort(), OLLAMA_DISCOVERY_TIMEOUT_MS);
24830
24856
  try {
24831
- const response = await fetch(getOllamaTagsUrl(baseUrl), { signal: controller.signal });
24832
- if (!response.ok)
24833
- return [];
24834
- const payload = await response.json();
24857
+ const payload = await request(getOllamaTagsUrl(baseUrl), OLLAMA_DISCOVERY_TIMEOUT_MS);
24835
24858
  if (!Array.isArray(payload.models))
24836
24859
  return [];
24837
24860
  return payload.models.flatMap((tag) => tag && typeof tag === "object" ? [modelFromTag(tag, baseUrl)].filter(Boolean) : []);
24838
24861
  } catch {
24839
24862
  return [];
24840
- } finally {
24841
- clearTimeout(timeout);
24842
24863
  }
24843
24864
  }
24844
24865
 
@@ -25865,7 +25886,7 @@ File: ${modelsJsonPath}`);
25865
25886
  const authStorageAuth = await this.authStorage.getApiKeyWithSourceToken(model.provider, {
25866
25887
  includeFallback: false
25867
25888
  });
25868
- let apiKey = authStorageAuth.apiKey;
25889
+ let apiKey = model.provider === "ollama" ? "ollama" : authStorageAuth.apiKey;
25869
25890
  let authSourceToken = authStorageAuth.sourceToken;
25870
25891
  if (apiKey === void 0 && providerConfig?.apiKey) {
25871
25892
  const resolvedApiKey = resolveConfigValueOrThrow(providerConfig.apiKey, `API key for provider "${model.provider}"`);
@@ -11300,9 +11300,9 @@ var MODELS = {
11300
11300
  thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": "max", "max": null },
11301
11301
  input: ["text"],
11302
11302
  cost: {
11303
- input: 0.08553999999999999,
11304
- output: 0.17107999999999998,
11305
- cacheRead: 0.017108,
11303
+ input: 0.08399999999999999,
11304
+ output: 0.16799999999999998,
11305
+ cacheRead: 0.016800000000000002,
11306
11306
  cacheWrite: 0
11307
11307
  },
11308
11308
  contextWindow: 1048576,
@@ -11897,6 +11897,25 @@ var MODELS = {
11897
11897
  contextWindow: 262144,
11898
11898
  maxTokens: 32768
11899
11899
  },
11900
+ "inclusionai/ling-3.0-flash-fin": {
11901
+ id: "inclusionai/ling-3.0-flash-fin",
11902
+ name: "Ling 3.0 Flash Fin",
11903
+ api: "openai-completions",
11904
+ provider: "openrouter",
11905
+ baseUrl: "https://openrouter.ai/api/v1",
11906
+ compat: { "supportsReasoningEffort": false },
11907
+ reasoning: true,
11908
+ thinkingLevelMap: { "minimal": null, "low": null, "medium": null, "high": "high", "xhigh": null, "max": null },
11909
+ input: ["text"],
11910
+ cost: {
11911
+ input: 0.06,
11912
+ output: 0.18,
11913
+ cacheRead: 0.012,
11914
+ cacheWrite: 0
11915
+ },
11916
+ contextWindow: 262144,
11917
+ maxTokens: 235929
11918
+ },
11900
11919
  "inclusionai/ling-3.0-flash-fin:free": {
11901
11920
  id: "inclusionai/ling-3.0-flash-fin:free",
11902
11921
  name: "Ling 3.0 Flash Fin (free)",
@@ -15035,9 +15054,9 @@ var MODELS = {
15035
15054
  thinkingLevelMap: { "minimal": null, "low": "low", "medium": null, "high": "high", "xhigh": null, "max": null },
15036
15055
  input: ["text"],
15037
15056
  cost: {
15038
- input: 0.13199999999999998,
15039
- output: 0.5279999999999999,
15040
- cacheRead: 0.032999999999999995,
15057
+ input: 0.0825,
15058
+ output: 0.33,
15059
+ cacheRead: 0.020625,
15041
15060
  cacheWrite: 0
15042
15061
  },
15043
15062
  contextWindow: 262144,
@@ -7,7 +7,7 @@ import {
7
7
  isOwnedSessionWorkerProcess,
8
8
  maybeRunOwnedSessionWorkerFrontend,
9
9
  maybeStartDaemonEarly
10
- } from "./chunk-2LPSALBF.js";
10
+ } from "./chunk-7TB7CGPV.js";
11
11
  import "./chunk-5QCJ5DQU.js";
12
12
  import "./chunk-CMMSLBAW.js";
13
13
  import "./chunk-2T7M7VJ4.js";
@@ -15,7 +15,7 @@ import "./chunk-UIRUOAIQ.js";
15
15
  import "./chunk-HXOBFFJX.js";
16
16
  import "./chunk-6GUVYK6P.js";
17
17
  import "./chunk-UPDAFKL5.js";
18
- import "./chunk-IAQLPSMN.js";
18
+ import "./chunk-M67RGWDQ.js";
19
19
  import "./chunk-BAWSWWEU.js";
20
20
 
21
21
  // dist/cli-main.js
@@ -182,7 +182,7 @@ async function runCli() {
182
182
  }
183
183
  const [{ EnvHttpProxyAgent, setGlobalDispatcher }, { main }] = await Promise.all([
184
184
  import("undici"),
185
- import("./main-EOUAQCJH.js")
185
+ import("./main-IYXIIAJN.js")
186
186
  ]);
187
187
  setGlobalDispatcher(new EnvHttpProxyAgent({ bodyTimeout: 0, headersTimeout: 0 }));
188
188
  try {
@@ -49,6 +49,6 @@ var supported = assertNodeVersion({
49
49
  exit: (code) => process.exit(code)
50
50
  });
51
51
  if (supported) {
52
- const { runCli } = await import("./cli-main-QYX5R3LF.js");
52
+ const { runCli } = await import("./cli-main-FNHDQGQD.js");
53
53
  await runCli();
54
54
  }
@@ -25,7 +25,7 @@ import {
25
25
  AssistantMessageEventStream,
26
26
  calculateCost,
27
27
  clampThinkingLevel
28
- } from "./chunk-IAQLPSMN.js";
28
+ } from "./chunk-M67RGWDQ.js";
29
29
  import "./chunk-BAWSWWEU.js";
30
30
 
31
31
  // ../ai/src/providers/google.ts
@@ -24,7 +24,7 @@ import {
24
24
  AssistantMessageEventStream,
25
25
  calculateCost,
26
26
  clampThinkingLevel
27
- } from "./chunk-IAQLPSMN.js";
27
+ } from "./chunk-M67RGWDQ.js";
28
28
  import "./chunk-BAWSWWEU.js";
29
29
 
30
30
  // ../ai/src/providers/google-vertex.ts
@@ -17,8 +17,8 @@ import {
17
17
  shouldUseDaemonClientRuntime,
18
18
  shouldUseDaemonInteractive,
19
19
  shouldUseEphemeralSessionManagerForDaemonInteractive
20
- } from "./chunk-E3YE2Q7A.js";
21
- import "./chunk-2LPSALBF.js";
20
+ } from "./chunk-JC2TT4MZ.js";
21
+ import "./chunk-7TB7CGPV.js";
22
22
  import "./chunk-VWR3YFK5.js";
23
23
  import "./chunk-N2CSAETN.js";
24
24
  import "./chunk-5QCJ5DQU.js";
@@ -28,7 +28,7 @@ import "./chunk-UIRUOAIQ.js";
28
28
  import "./chunk-HXOBFFJX.js";
29
29
  import "./chunk-6GUVYK6P.js";
30
30
  import "./chunk-UPDAFKL5.js";
31
- import "./chunk-IAQLPSMN.js";
31
+ import "./chunk-M67RGWDQ.js";
32
32
  import "./chunk-BAWSWWEU.js";
33
33
  export {
34
34
  createSessionManager,
@@ -84,7 +84,7 @@ import {
84
84
  AssistantMessageEventStream,
85
85
  calculateCost,
86
86
  clampThinkingLevel
87
- } from "./chunk-IAQLPSMN.js";
87
+ } from "./chunk-M67RGWDQ.js";
88
88
  import "./chunk-BAWSWWEU.js";
89
89
 
90
90
  // ../../node_modules/@mistralai/mistralai/esm/lib/url.js
@@ -6,7 +6,7 @@ import {
6
6
  convertResponsesMessages,
7
7
  convertResponsesTools,
8
8
  processResponsesStream
9
- } from "./chunk-YPNK4MRU.js";
9
+ } from "./chunk-A65OM3TZ.js";
10
10
  import "./chunk-NQB5DCFC.js";
11
11
  import {
12
12
  headersToRecord
@@ -26,7 +26,7 @@ import {
26
26
  import {
27
27
  AssistantMessageEventStream,
28
28
  clampThinkingLevel
29
- } from "./chunk-IAQLPSMN.js";
29
+ } from "./chunk-M67RGWDQ.js";
30
30
  import "./chunk-BAWSWWEU.js";
31
31
 
32
32
  // ../ai/src/providers/openai-codex-responses.ts
@@ -31,7 +31,7 @@ import {
31
31
  AssistantMessageEventStream,
32
32
  calculateCost,
33
33
  clampThinkingLevel
34
- } from "./chunk-IAQLPSMN.js";
34
+ } from "./chunk-M67RGWDQ.js";
35
35
  import "./chunk-BAWSWWEU.js";
36
36
 
37
37
  // ../ai/src/providers/openai-completions.ts
@@ -379,7 +379,7 @@ ${rawMetadata}`;
379
379
  return stream;
380
380
  };
381
381
  var streamSimpleOpenAICompletions = (model, context, options) => {
382
- const apiKey = options?.apiKey || getEnvApiKey(model.provider);
382
+ const apiKey = options?.apiKey || getEnvApiKey(model.provider) || (model.provider === "ollama" ? "ollama" : void 0);
383
383
  if (!apiKey) {
384
384
  throw new Error(`No API key for provider: ${model.provider}`);
385
385
  }
@@ -9,7 +9,7 @@ import {
9
9
  convertResponsesMessages,
10
10
  convertResponsesTools,
11
11
  processResponsesStream
12
- } from "./chunk-YPNK4MRU.js";
12
+ } from "./chunk-A65OM3TZ.js";
13
13
  import "./chunk-NQB5DCFC.js";
14
14
  import {
15
15
  OpenAI
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  AssistantMessageEventStream,
34
34
  clampThinkingLevel
35
- } from "./chunk-IAQLPSMN.js";
35
+ } from "./chunk-M67RGWDQ.js";
36
36
  import "./chunk-BAWSWWEU.js";
37
37
 
38
38
  // ../ai/src/providers/openai-responses.ts