@bike4mind/cli 0.10.1 → 0.10.2

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.
@@ -12,7 +12,7 @@ import timezone from "dayjs/plugin/timezone.js";
12
12
  import utc from "dayjs/plugin/utc.js";
13
13
  import relativeTime from "dayjs/plugin/relativeTime.js";
14
14
  import localizedFormat from "dayjs/plugin/localizedFormat.js";
15
- import fs$1 from "fs/promises";
15
+ import fs from "fs/promises";
16
16
  //#region ../../b4m-core/common/dist/types/entities/UserTypes.mjs
17
17
  let CollectionType = /* @__PURE__ */ function(CollectionType) {
18
18
  CollectionType["NOTEBOOK"] = "notebook";
@@ -299,6 +299,8 @@ let ImageModels = /* @__PURE__ */ function(ImageModels) {
299
299
  ImageModels["GROK_IMAGINE_IMAGE_QUALITY"] = "grok-imagine-image-quality";
300
300
  ImageModels["GEMINI_2_5_FLASH_IMAGE"] = "gemini-2.5-flash-image";
301
301
  ImageModels["GEMINI_3_PRO_IMAGE_PREVIEW"] = "gemini-3-pro-image-preview";
302
+ ImageModels["GEMINI_3_1_FLASH_IMAGE"] = "gemini-3.1-flash-image";
303
+ ImageModels["GEMINI_3_PRO_IMAGE"] = "gemini-3-pro-image";
302
304
  return ImageModels;
303
305
  }({});
304
306
  Object.values(ImageModels);
@@ -377,9 +379,11 @@ let ChatModels = /* @__PURE__ */ function(ChatModels) {
377
379
  ChatModels["CLAUDE_4_8_OPUS"] = "claude-opus-4-8";
378
380
  ChatModels["JURASSIC2_ULTRA"] = "ai21.j2-ultra-v1";
379
381
  ChatModels["JURASSIC2_MID"] = "ai21.j2-mid-v1";
382
+ ChatModels["GEMINI_3_5_FLASH"] = "gemini-3.5-flash";
380
383
  ChatModels["GEMINI_3_1_PRO_PREVIEW"] = "gemini-3.1-pro-preview";
381
- ChatModels["GEMINI_3_PRO_PREVIEW"] = "gemini-3-pro-preview";
384
+ ChatModels["GEMINI_3_1_FLASH_LITE"] = "gemini-3.1-flash-lite";
382
385
  ChatModels["GEMINI_3_FLASH_PREVIEW"] = "gemini-3-flash-preview";
386
+ ChatModels["GEMINI_3_PRO_PREVIEW"] = "gemini-3-pro-preview";
383
387
  ChatModels["GEMINI_2_5_PRO"] = "gemini-2.5-pro";
384
388
  ChatModels["GEMINI_2_5_FLASH"] = "gemini-2.5-flash";
385
389
  ChatModels["GEMINI_2_5_FLASH_LITE"] = "gemini-2.5-flash-lite";
@@ -418,44 +422,13 @@ const REASONING_SUPPORTED_MODELS = new Set([
418
422
  "gpt-5.1",
419
423
  "gpt-5.2"
420
424
  ]);
421
- /**
422
- * Models that only support temperature=1 (no custom temperature).
423
- * Includes:
424
- * - All reasoning models (OpenAI requires temp=1 when reasoning is active)
425
- * - chat-latest variants that enforce this constraint
426
- * - GPT-5.5, which rejects custom temperature even though it does not expose
427
- * reasoning controls
428
- */
429
- const FIXED_TEMPERATURE_MODELS = new Set([
425
+ new Set([
430
426
  ...Array.from(REASONING_SUPPORTED_MODELS),
431
427
  "gpt-5.1-chat-latest",
432
428
  "gpt-5.2-chat-latest",
433
429
  "gpt-5.5"
434
430
  ]);
435
431
  /**
436
- * Models that do not accept the temperature parameter at all.
437
- * The API will reject requests that include temperature for these models.
438
- */
439
- const NO_TEMPERATURE_MODELS = new Set([
440
- "claude-opus-4-7",
441
- "global.anthropic.claude-opus-4-7",
442
- "claude-opus-4-8",
443
- "global.anthropic.claude-opus-4-8"
444
- ]);
445
- /**
446
- * Bedrock-hosted Claude models that do NOT support prompt caching (`cache_control`).
447
- * Sending `cache_control` to these models triggers a Bedrock deserialization error:
448
- * `tools.N.cache_control: Extra inputs are not permitted`
449
- *
450
- * AWS Bedrock added prompt caching for Claude 3.5 Haiku and Claude 3.7 Sonnet (and later);
451
- * the OG Claude 3 Haiku and the v1 Claude 3.5 Sonnet were not retrofitted.
452
- *
453
- * Keep this set narrow — default behavior is to apply caching when `cacheStrategy.enableCaching`
454
- * is true. Add a model here only when we have concrete evidence (a Bedrock validation error)
455
- * that it rejects `cache_control`.
456
- */
457
- const BEDROCK_NO_PROMPT_CACHING_MODELS = new Set(["anthropic.claude-3-haiku-20240307-v1:0", "anthropic.claude-3-5-sonnet-20240620-v1:0"]);
458
- /**
459
432
  * Speech to Text Models
460
433
  *
461
434
  */
@@ -500,13 +473,6 @@ z.enum({
500
473
  ...SpeechToTextModels,
501
474
  ...VideoModels
502
475
  });
503
- /** Returns true if the model is deprecated on or before the provided date (default: now). */
504
- const isModelDeprecated = (model, now = /* @__PURE__ */ new Date()) => {
505
- if (!model.deprecationDate) return false;
506
- const todayYMD = new Date(now.toISOString().slice(0, 10));
507
- const cutoff = /* @__PURE__ */ new Date(model.deprecationDate + "T00:00:00Z");
508
- return todayYMD.getTime() >= cutoff.getTime();
509
- };
510
476
  z$1.enum([
511
477
  "openai",
512
478
  "test",
@@ -1004,6 +970,8 @@ let ApiKeyScope = /* @__PURE__ */ function(ApiKeyScope) {
1004
970
  ApiKeyScope["ADMIN"] = "admin:*";
1005
971
  ApiKeyScope["MARKETING_REPORTS_READ"] = "marketing-reports:read";
1006
972
  ApiKeyScope["MARKETING_REPORTS_WRITE"] = "marketing-reports:write";
973
+ /** Server-to-server ingest scope for Overwatch analytics. Admin-provisioned only — never shown in user-facing key creation UI. */
974
+ ApiKeyScope["OVERWATCH_INGEST_WRITE"] = "overwatch-ingest:write";
1007
975
  return ApiKeyScope;
1008
976
  }({});
1009
977
  /** Valid document types that can be favorited */
@@ -3442,7 +3410,12 @@ const XAI_IMAGE_MODELS = ["grok-imagine-image-quality"];
3442
3410
  * Gemini Image Models (Nano Banana)
3443
3411
  * Based on https://ai.google.dev/gemini-api/docs/image-generation
3444
3412
  */
3445
- const GEMINI_IMAGE_MODELS = ["gemini-2.5-flash-image", "gemini-3-pro-image-preview"];
3413
+ const GEMINI_IMAGE_MODELS = [
3414
+ "gemini-2.5-flash-image",
3415
+ "gemini-3-pro-image-preview",
3416
+ "gemini-3-pro-image",
3417
+ "gemini-3.1-flash-image"
3418
+ ];
3446
3419
  z.object({
3447
3420
  prompt: z.string().min(1),
3448
3421
  n: z.number().min(1).max(8).prefault(1).optional(),
@@ -9395,7 +9368,7 @@ const logger = class Logger {
9395
9368
  async initialize(sessionId) {
9396
9369
  this.sessionId = sessionId;
9397
9370
  const debugDir = path.join(os.homedir(), ".bike4mind", "debug");
9398
- await fs$1.mkdir(debugDir, { recursive: true });
9371
+ await fs.mkdir(debugDir, { recursive: true });
9399
9372
  this.logFilePath = path.join(debugDir, `${sessionId}.txt`);
9400
9373
  await this.writeToFile("INFO", "=== CLI SESSION START ===");
9401
9374
  }
@@ -9447,7 +9420,7 @@ const logger = class Logger {
9447
9420
  if (!this.fileLoggingEnabled || !this.logFilePath) return;
9448
9421
  try {
9449
9422
  const logEntry = `[${(/* @__PURE__ */ new Date()).toISOString().replace("T", " ").substring(0, 19)}] [${level}] ${message}\n`;
9450
- await fs$1.appendFile(this.logFilePath, logEntry, "utf-8");
9423
+ await fs.appendFile(this.logFilePath, logEntry, "utf-8");
9451
9424
  } catch (error) {
9452
9425
  console.error("File logging failed:", error);
9453
9426
  }
@@ -9564,11 +9537,11 @@ const logger = class Logger {
9564
9537
  if (!this.fileLoggingEnabled) return;
9565
9538
  try {
9566
9539
  const debugDir = path.join(os.homedir(), ".bike4mind", "debug");
9567
- const files = await fs$1.readdir(debugDir);
9540
+ const files = await fs.readdir(debugDir);
9568
9541
  const thirtyDaysAgo = Date.now() - 720 * 60 * 60 * 1e3;
9569
9542
  for (const file of files) {
9570
9543
  const filePath = path.join(debugDir, file);
9571
- if ((await fs$1.stat(filePath)).mtime.getTime() < thirtyDaysAgo) await fs$1.unlink(filePath);
9544
+ if ((await fs.stat(filePath)).mtime.getTime() < thirtyDaysAgo) await fs.unlink(filePath);
9572
9545
  }
9573
9546
  } catch (error) {
9574
9547
  console.error("Failed to cleanup old logs:", error);
@@ -10388,4 +10361,4 @@ var ConfigStore = class {
10388
10361
  }
10389
10362
  };
10390
10363
  //#endregion
10391
- export { PermissionDeniedError as $, isNearLimit as $t, GEMINI_IMAGE_MODELS as A, VideoGenerationUsageTransaction as At, InternalServerError as B, isGPTImage2Model as Bt, ElabsEvents as C, TooManyRequestsError as Ct, FileEvents as D, UnauthorizedError as Dt, FeedbackEvents as E, UiNavigationEvents as Et, HttpStatus as F, dayjsConfig_default as Ft, MiscEvents as G, resolveNavigationIntents as Gt, InviteType as H, isModelDeprecated as Ht, ImageEditUsageTransaction as I, getAccessibleDataLakes as It, NO_TEMPERATURE_MODELS as J, settingsMap as Jt, ModalEvents as K, sanitizeTelemetryError as Kt, ImageGenerationUsageTransaction as L, getDataLakeTags as Lt, GenericCreditAddTransaction as M, VoyageAIEmbeddingModel as Mt, GenericCreditDeductTransaction as N, XAI_IMAGE_MODELS as Nt, ForbiddenError as O, UnprocessableEntityError as Ot, HTTPError as P, b4mLLMTools as Pt, Permission as Q, extractSnippetMeta as Qt, ImageModels as R, getMcpProviderMetadata as Rt, DashboardParamsSchema as S, TextGenerationUsageTransaction as St, FavoriteDocumentType as T, TransferCreditTransaction as Tt, KnowledgeType as U, isZodError as Ut, InviteEvents as V, isGPTImageModel as Vt, LLMEvents as W, obfuscateApiKey as Wt, OpenAIEmbeddingModel as X, validateNotebookPath as Xt, NotFoundError as Y, validateJupyterKernelName as Yt, OpenAIImageGenerationInput as Z, buildRateLimitLogEntry as Zt, ChatCompletionCreateInputSchema as _, SpeechToTextUsageTransaction as _t, ApiKeyEvents as a, QuestMasterParamsSchema as at, CompletionApiUsageTransaction as b, TagType as bt, AppFileEvents as c, ReceivedCreditTransaction as ct, BEDROCK_NO_PROMPT_CACHING_MODELS as d, ResearchModeParamsSchema as dt, parseRateLimitHeaders as en, ProfileEvents as et, BFL_IMAGE_MODELS as f, ResearchTaskExecutionType as ft, CREDIT_DEDUCT_TRANSACTION_TYPES as g, SpeechToTextModels as gt, BedrockEmbeddingModel as h, SessionEvents as ht, AiEvents as i, PurchaseTransaction as it, GenerateImageToolCallSchema as j, VideoModels as jt, FriendshipEvents as k, VIDEO_SIZE_CONSTRAINTS as kt, ArtifactTypeSchema as l, RechartsChartTypeList as lt, BadRequestError as m, ResearchTaskType as mt, logger as n, PromptIntentSchema as nt, ApiKeyScope as o, REASONING_SUPPORTED_MODELS as ot, BFL_SAFETY_TOLERANCE as p, ResearchTaskPeriodicFrequencyType as pt, ModelBackend as q, secureParameters as qt, ALERT_THRESHOLDS as r, PromptMetaZodSchema as rt, ApiKeyType as s, RealtimeVoiceUsageTransaction as st, ConfigStore as t, CollectionType as tn, ProjectEvents as tt, AuthEvents as u, RegInviteEvents as ut, ChatModels as v, SubscriptionCreditTransaction as vt, FIXED_TEMPERATURE_MODELS as w, ToolUsageTransaction as wt, CorruptedFileError as x, TaskScheduleHandler as xt, ClaudeArtifactMimeTypes as y, SupportedFabFileMimeTypes as yt, InboxEvents as z, getViewById as zt };
10364
+ export { PromptMetaZodSchema as $, GenericCreditDeductTransaction as A, getDataLakeTags as At, KnowledgeType as B, settingsMap as Bt, FeedbackEvents as C, VIDEO_SIZE_CONSTRAINTS as Ct, GEMINI_IMAGE_MODELS as D, b4mLLMTools as Dt, FriendshipEvents as E, XAI_IMAGE_MODELS as Et, ImageModels as F, isZodError as Ft, NotFoundError as G, isNearLimit as Gt, MiscEvents as H, validateNotebookPath as Ht, InboxEvents as I, obfuscateApiKey as It, Permission as J, OpenAIEmbeddingModel as K, parseRateLimitHeaders as Kt, InternalServerError as L, resolveNavigationIntents as Lt, HttpStatus as M, getViewById as Mt, ImageEditUsageTransaction as N, isGPTImage2Model as Nt, GenerateImageToolCallSchema as O, dayjsConfig_default as Ot, ImageGenerationUsageTransaction as P, isGPTImageModel as Pt, PromptIntentSchema as Q, InviteEvents as R, sanitizeTelemetryError as Rt, FavoriteDocumentType as S, UnprocessableEntityError as St, ForbiddenError as T, VideoModels as Tt, ModalEvents as U, buildRateLimitLogEntry as Ut, LLMEvents as V, validateJupyterKernelName as Vt, ModelBackend as W, extractSnippetMeta as Wt, ProfileEvents as X, PermissionDeniedError as Y, ProjectEvents as Z, ClaudeArtifactMimeTypes as _, TooManyRequestsError as _t, ApiKeyEvents as a, RegInviteEvents as at, DashboardParamsSchema as b, UiNavigationEvents as bt, AppFileEvents as c, ResearchTaskPeriodicFrequencyType as ct, BFL_IMAGE_MODELS as d, SpeechToTextUsageTransaction as dt, PurchaseTransaction as et, BFL_SAFETY_TOLERANCE as f, SubscriptionCreditTransaction as ft, ChatModels as g, TextGenerationUsageTransaction as gt, ChatCompletionCreateInputSchema as h, TaskScheduleHandler as ht, AiEvents as i, RechartsChartTypeList as it, HTTPError as j, getMcpProviderMetadata as jt, GenericCreditAddTransaction as k, getAccessibleDataLakes as kt, ArtifactTypeSchema as l, ResearchTaskType as lt, CREDIT_DEDUCT_TRANSACTION_TYPES as m, TagType as mt, logger as n, RealtimeVoiceUsageTransaction as nt, ApiKeyScope as o, ResearchModeParamsSchema as ot, BadRequestError as p, SupportedFabFileMimeTypes as pt, OpenAIImageGenerationInput as q, CollectionType as qt, ALERT_THRESHOLDS as r, ReceivedCreditTransaction as rt, ApiKeyType as s, ResearchTaskExecutionType as st, ConfigStore as t, QuestMasterParamsSchema as tt, AuthEvents as u, SessionEvents as ut, CompletionApiUsageTransaction as v, ToolUsageTransaction as vt, FileEvents as w, VideoGenerationUsageTransaction as wt, ElabsEvents as x, UnauthorizedError as xt, CorruptedFileError as y, TransferCreditTransaction as yt, InviteType as z, secureParameters as zt };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as ConfigStore } from "../ConfigStore-aeJGqjKm.mjs";
2
+ import { t as ConfigStore } from "../ConfigStore-BX6XcTa1.mjs";
3
3
  //#region src/commands/apiCommand.ts
4
4
  /**
5
5
  * External API config command (--api-url / --reset-api)
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as version, n as compareSemver, r as fetchLatestVersion } from "../updateChecker-CP_jeER9.mjs";
2
+ import { a as version, n as compareSemver, r as fetchLatestVersion } from "../updateChecker-DdgysXM8.mjs";
3
3
  import { t as checkRipgrep } from "../ripgrepCheck-BmkyTK2i.mjs";
4
4
  import { execSync } from "child_process";
5
5
  import { constants, existsSync, promises } from "fs";
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { C as WebSocketToolExecutor, D as ServerLlmBackend, E as WebSocketLlmBackend, F as PermissionManager, I as generateCliTools, M as loadContextFiles, N as getApiUrl, O as McpManager, Q as CheckpointStore, S as ApiClient, T as FallbackLlmBackend, W as setWebSocketToolExecutor, X as ReActAgent, Y as isReadOnlyTool, Z as CustomCommandStore, _ as createAgentDelegateTool, b as createSkillTool, d as createFindDefinitionTool, et as SessionStore, f as createTodoStore, g as BackgroundAgentManager, h as createBackgroundAgentTools, m as createCoordinateTaskTool, p as createWriteTodosTool, q as buildSystemPrompt, u as createGetFileStructureTool, v as AgentStore, w as WebSocketConnectionManager, y as SubagentOrchestrator } from "../tools-RdGu37Lw.mjs";
3
- import { n as logger, t as ConfigStore } from "../ConfigStore-aeJGqjKm.mjs";
2
+ import { $ as SessionStore, C as WebSocketToolExecutor, D as ServerLlmBackend, E as WebSocketLlmBackend, F as PermissionManager, I as generateCliTools, J as isReadOnlyTool, K as buildSystemPrompt, M as loadContextFiles, N as getApiUrl, O as McpManager, S as ApiClient, T as FallbackLlmBackend, W as setWebSocketToolExecutor, X as CustomCommandStore, Y as ReActAgent, Z as CheckpointStore, _ as createAgentDelegateTool, b as createSkillTool, d as createFindDefinitionTool, f as createTodoStore, g as BackgroundAgentManager, h as createBackgroundAgentTools, m as createCoordinateTaskTool, p as createWriteTodosTool, u as createGetFileStructureTool, v as AgentStore, w as WebSocketConnectionManager, y as SubagentOrchestrator } from "../tools-t-9dtjjl.mjs";
3
+ import { n as logger, t as ConfigStore } from "../ConfigStore-BX6XcTa1.mjs";
4
4
  import { t as DEFAULT_SANDBOX_CONFIG } from "../types-LyRNHOiS.mjs";
5
5
  import { t as createSandboxRuntime } from "../SandboxRuntimeAdapter-ChGlxSGQ.mjs";
6
6
  import { t as SandboxOrchestrator } from "../SandboxOrchestrator-BoINxbX4.mjs";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as ConfigStore } from "../ConfigStore-aeJGqjKm.mjs";
2
+ import { t as ConfigStore } from "../ConfigStore-BX6XcTa1.mjs";
3
3
  //#region src/commands/mcpCommand.ts
4
4
  /**
5
5
  * External MCP commands (b4m mcp list, b4m mcp add, etc.)
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as version, i as forceCheckForUpdate } from "../updateChecker-CP_jeER9.mjs";
2
+ import { a as version, i as forceCheckForUpdate } from "../updateChecker-DdgysXM8.mjs";
3
3
  import { t as checkRipgrep } from "../ripgrepCheck-BmkyTK2i.mjs";
4
4
  import { execSync } from "child_process";
5
5
  //#region src/commands/updateCommand.ts
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { $ as CommandHistoryStore, A as formatStep, B as DEFAULT_RETRY_CONFIG, C as WebSocketToolExecutor, D as ServerLlmBackend, E as WebSocketLlmBackend, F as PermissionManager, G as OllamaBackend, H as clearFeatureModuleTools, I as generateCliTools, J as buildSkillsPromptSection, K as getPlanModeFilePath, L as ALWAYS_DENIED_FOR_AGENTS, M as loadContextFiles, N as getApiUrl, O as McpManager, P as getEnvironmentName, Q as CheckpointStore, R as DEFAULT_AGENT_MODEL, S as ApiClient, T as FallbackLlmBackend, U as registerFeatureModuleTools, V as DEFAULT_THOROUGHNESS, W as setWebSocketToolExecutor, X as ReActAgent, Y as isReadOnlyTool, Z as CustomCommandStore, _ as createAgentDelegateTool, a as createBlockerTools, at as mergeCommands, b as createSkillTool, c as createDecisionStore, ct as warmFileCache, d as createFindDefinitionTool, et as SessionStore, f as createTodoStore, g as BackgroundAgentManager, h as createBackgroundAgentTools, i as createBlockerStore, it as searchCommands, j as extractCompactInstructions, k as substituteArguments, l as formatDecisionsOutput, m as createCoordinateTaskTool, n as createReviewGateTool, nt as hasFileReferences, o as formatBlockersOutput, ot as formatFileSize, p as createWriteTodosTool, q as buildSystemPrompt, r as formatReviewGatesOutput, rt as processFileReferences, s as createDecisionLogTool, st as searchFiles, t as createReviewGateStore, tt as OAuthClient, u as createGetFileStructureTool, v as AgentStore, w as WebSocketConnectionManager, x as parseAgentConfig, y as SubagentOrchestrator, z as DEFAULT_MAX_ITERATIONS } from "./tools-RdGu37Lw.mjs";
2
+ import { $ as SessionStore, A as formatStep, B as DEFAULT_RETRY_CONFIG, C as WebSocketToolExecutor, D as ServerLlmBackend, E as WebSocketLlmBackend, F as PermissionManager, G as getPlanModeFilePath, H as clearFeatureModuleTools, I as generateCliTools, J as isReadOnlyTool, K as buildSystemPrompt, L as ALWAYS_DENIED_FOR_AGENTS, M as loadContextFiles, N as getApiUrl, O as McpManager, P as getEnvironmentName, Q as CommandHistoryStore, R as DEFAULT_AGENT_MODEL, S as ApiClient, T as FallbackLlmBackend, U as registerFeatureModuleTools, V as DEFAULT_THOROUGHNESS, W as setWebSocketToolExecutor, X as CustomCommandStore, Y as ReActAgent, Z as CheckpointStore, _ as createAgentDelegateTool, a as createBlockerTools, at as formatFileSize, b as createSkillTool, c as createDecisionStore, d as createFindDefinitionTool, et as OAuthClient, f as createTodoStore, g as BackgroundAgentManager, h as createBackgroundAgentTools, i as createBlockerStore, it as mergeCommands, j as extractCompactInstructions, k as substituteArguments, l as formatDecisionsOutput, m as createCoordinateTaskTool, n as createReviewGateTool, nt as processFileReferences, o as formatBlockersOutput, ot as searchFiles, p as createWriteTodosTool, q as buildSkillsPromptSection, r as formatReviewGatesOutput, rt as searchCommands, s as createDecisionLogTool, st as warmFileCache, t as createReviewGateStore, tt as hasFileReferences, u as createGetFileStructureTool, v as AgentStore, w as WebSocketConnectionManager, x as parseAgentConfig, y as SubagentOrchestrator, z as DEFAULT_MAX_ITERATIONS } from "./tools-t-9dtjjl.mjs";
3
3
  import { n as useCliStore, t as selectActiveBackgroundAgents } from "./store-DV5s-qni.mjs";
4
- import { Xt as validateNotebookPath$1, Yt as validateJupyterKernelName, g as CREDIT_DEDUCT_TRANSACTION_TYPES, n as logger, t as ConfigStore, v as ChatModels } from "./ConfigStore-aeJGqjKm.mjs";
5
- import { a as version, t as checkForUpdate } from "./updateChecker-CP_jeER9.mjs";
4
+ import { Ht as validateNotebookPath$1, Vt as validateJupyterKernelName, g as ChatModels, m as CREDIT_DEDUCT_TRANSACTION_TYPES, n as logger, t as ConfigStore } from "./ConfigStore-BX6XcTa1.mjs";
5
+ import { a as version, t as checkForUpdate } from "./updateChecker-DdgysXM8.mjs";
6
6
  import React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from "react";
7
7
  import { Box, Static, Text, render, useApp, useInput, usePaste, useStdout } from "ink";
8
8
  import { execSync } from "child_process";
@@ -22,6 +22,7 @@ import SelectInput from "ink-select-input";
22
22
  import jwt from "jsonwebtoken";
23
23
  import open from "open";
24
24
  import axios, { isAxiosError } from "axios";
25
+ import { OllamaBackend } from "@bike4mind/llm-adapters";
25
26
  import { get_encoding } from "tiktoken";
26
27
  import WsWebSocket from "ws";
27
28
  //#region src/components/StatusBar.tsx