All files / src/shared constants.ts

100% Statements 33/33
66.66% Branches 2/3
100% Functions 1/1
100% Lines 33/33

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 6037x 37x   37x 37x 37x 37x 37x 37x 37x 37x 37x 37x 37x 37x 37x 37x 37x   37x 37x               37x   444x     444x 50x   394x       37x     37x     37x     37x     37x   37x 37x   37x 37x  
import packageJson from "../../package.json";
import { ConfigManager } from "./config";
 
export const PROVIDER_VENDOR = "nvidia-nim";
export const PROVIDER_DISPLAY_NAME = "NVIDIA NIM";
export const SECRET_STORAGE_KEY = "nvidia-nim.apiKey";
export const RAW_MODELS_STATE_KEY = "nvidia-nim.rawModels";
export const MODELS_STATE_KEY = "nvidia-nim.models";
export const MODELS_CACHE_VERSION_STATE_KEY = "nvidia-nim.modelsCacheVersion";
export const MODELS_CACHE_KEY_FINGERPRINT_STATE_KEY = "nvidia-nim.modelsCacheKeyFingerprint";
export const MODELS_CACHE_VERSION = 12;
export const MIGRATION_DONE_KEY = "nvidia-nim.legacyMigrationDone";
export const DEBUG_STATE_KEY = "nvidia-nim.debug";
export const DEBUG_ENV_VAR = "NVIDIA_NIM_DEBUG";
export const MANAGE_COMMAND_ID = "nvidia-nim.manage";
export const REFRESH_MODELS_COMMAND_ID = "nvidia-nim.refreshModels";
export const TOGGLE_DEBUG_LOGGING_COMMAND_ID = "nvidia-nim.toggleDebugLogging";
export const OPEN_DEBUG_LOG_COMMAND_ID = "nvidia-nim.openDebugLog";
 
export const BASE_URL = "https://integrate.api.nvidia.com/v1";
export const EXTENSION_VERSION: string = packageJson.version;
 
/**
 * Calculate a dynamic safety margin that scales with context window size.
 * Small windows get a fixed 4096-token margin; large windows (≥256K) get
 * safetyMarginPercent (default 1%) of the window to account for estimation
 * variance and hidden prompt content.
 */
export function calculateSafetyMargin(contextWindow: number, customPercent?: number): number {
  const percent =
    customPercent !== undefined
      ? customPercent
      : ConfigManager.getContextConfig().safetyMarginPercent;
  if (contextWindow >= 256_000) {
    return Math.max(4096, Math.ceil(contextWindow * (percent / 100)));
  }
  return 4096;
}
 
/** Legacy fixed safety margin kept for backward-compatible call sites. */
export const CONTEXT_WINDOW_SAFETY_MARGIN = 4096;
 
/** Default token limit if model info is unknown */
export const DEFAULT_MAX_OUTPUT_TOKENS = 65536;
 
/** Maximum retry delay in milliseconds */
export const MAX_RETRY_DELAY_MS = 30000;
 
/** Base retry delay in milliseconds */
export const BASE_RETRY_DELAY_MS = 1000;
 
/** Maximum time (ms) between stream chunks before timeout */
export const STREAM_IDLE_TIMEOUT_MS = 120000;
 
export const STREAM_IDLE_TIMEOUT_MIN_MS = 60000;
export const STREAM_IDLE_TIMEOUT_MAX_MS = 300000;
 
export const STATUS_BAR_DEFAULT_TEXT = `$(loading~spin) NVIDIA NIM`;
export const STATUS_BAR_ERROR_TEXT = `$(zap) NVIDIA NIM`;