@verboo/code 0.7.19 → 0.7.21

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 (2) hide show
  1. package/dist/cli.mjs +365 -366
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -111351,11 +111351,7 @@ function getDefaultVerbooModel() {
111351
111351
  const cachedModel = cached2?.find((m) => !isClaudeModelLike(m.id))?.id;
111352
111352
  if (cachedModel)
111353
111353
  return cachedModel;
111354
- const envFallback = normalizeModelSetting(process.env.VERBOO_DEFAULT_MODEL) ?? normalizeModelSetting(process.env.OPENAI_MODEL);
111355
- if (envFallback && !isClaudeModelLike(envFallback)) {
111356
- return envFallback.replace(/\[1m\]$/i, "").trim();
111357
- }
111358
- return VERBOO_FALLBACK_MODEL;
111354
+ throw new Error(VERBOO_NO_MODELS_ERROR);
111359
111355
  }
111360
111356
  function getVerbooSpecifiedModel(specifiedModel) {
111361
111357
  if (specifiedModel === undefined || specifiedModel === null) {
@@ -111930,7 +111926,7 @@ function getMarketingNameForModel(modelId) {
111930
111926
  function normalizeModelStringForAPI(model) {
111931
111927
  return model.replace(/\[(1|2)m\]/gi, "");
111932
111928
  }
111933
- var VERBOO_FALLBACK_MODEL = "gpt-5.5", LEGACY_OPUS_FIRSTPARTY;
111929
+ var VERBOO_NO_MODELS_ERROR = "Nenhum modelo Verboo disponível na sua conta. Compre acesso em https://code.verboo.ai e execute `verboo /login` novamente.", LEGACY_OPUS_FIRSTPARTY;
111934
111930
  var init_model = __esm(() => {
111935
111931
  init_state();
111936
111932
  init_oauth();
@@ -115513,185 +115509,6 @@ var init_githubModelsCredentials = __esm(() => {
115513
115509
  init_deviceFlow();
115514
115510
  });
115515
115511
 
115516
- // src/utils/cliArgs.ts
115517
- var exports_cliArgs = {};
115518
- __export(exports_cliArgs, {
115519
- extractArgsAfterDoubleDash: () => extractArgsAfterDoubleDash,
115520
- eagerParseCliFlag: () => eagerParseCliFlag
115521
- });
115522
- function eagerParseCliFlag(flagName, argv = process.argv) {
115523
- for (let i2 = 0;i2 < argv.length; i2++) {
115524
- const arg = argv[i2];
115525
- if (arg?.startsWith(`${flagName}=`)) {
115526
- return arg.slice(flagName.length + 1);
115527
- }
115528
- if (arg === flagName && i2 + 1 < argv.length) {
115529
- return argv[i2 + 1];
115530
- }
115531
- }
115532
- return;
115533
- }
115534
- function extractArgsAfterDoubleDash(commandOrValue, args = []) {
115535
- if (commandOrValue === "--" && args.length > 0) {
115536
- return {
115537
- command: args[0],
115538
- args: args.slice(1)
115539
- };
115540
- }
115541
- return { command: commandOrValue, args };
115542
- }
115543
-
115544
- // src/components/StartupScreen.ts
115545
- var exports_StartupScreen = {};
115546
- __export(exports_StartupScreen, {
115547
- printStartupScreen: () => printStartupScreen,
115548
- detectProvider: () => detectProvider
115549
- });
115550
- function detectProvider(modelOverride) {
115551
- if (isVerbooMode()) {
115552
- const safeOverride = modelOverride && !isClaudeModelLike(modelOverride) ? modelOverride : getDefaultVerbooModel();
115553
- const resolvedModel2 = parseUserSpecifiedModel(safeOverride);
115554
- const baseUrl2 = VERBOO_ROUTER_URL;
115555
- const isLocal2 = isLocalProviderUrl(baseUrl2);
115556
- return { name: "Verboo", model: resolvedModel2, baseUrl: baseUrl2, isLocal: isLocal2 };
115557
- }
115558
- const useGemini = process.env.CLAUDE_CODE_USE_GEMINI === "1" || process.env.CLAUDE_CODE_USE_GEMINI === "true";
115559
- const useGithub = process.env.CLAUDE_CODE_USE_GITHUB === "1" || process.env.CLAUDE_CODE_USE_GITHUB === "true";
115560
- const useOpenAI = process.env.CLAUDE_CODE_USE_OPENAI === "1" || process.env.CLAUDE_CODE_USE_OPENAI === "true";
115561
- const useMistral = process.env.CLAUDE_CODE_USE_MISTRAL === "1" || process.env.CLAUDE_CODE_USE_MISTRAL === "true";
115562
- if (useGemini) {
115563
- const model = modelOverride || process.env.GEMINI_MODEL || "gemini-2.0-flash";
115564
- const baseUrl2 = process.env.GEMINI_BASE_URL || "https://generativelanguage.googleapis.com/v1beta/openai";
115565
- return { name: "Google Gemini", model, baseUrl: baseUrl2, isLocal: false };
115566
- }
115567
- if (useMistral) {
115568
- const model = modelOverride || process.env.MISTRAL_MODEL || "devstral-latest";
115569
- const baseUrl2 = process.env.MISTRAL_BASE_URL || "https://api.mistral.ai/v1";
115570
- return { name: "Mistral", model, baseUrl: baseUrl2, isLocal: false };
115571
- }
115572
- if (useGithub) {
115573
- const model = modelOverride || process.env.OPENAI_MODEL || "github:copilot";
115574
- const baseUrl2 = process.env.OPENAI_BASE_URL || "https://api.githubcopilot.com";
115575
- return { name: "GitHub Copilot", model, baseUrl: baseUrl2, isLocal: false };
115576
- }
115577
- if (useOpenAI) {
115578
- const rawModel = modelOverride || process.env.OPENAI_MODEL || "gpt-4o";
115579
- const resolvedRequest = resolveProviderRequest({
115580
- model: rawModel,
115581
- baseUrl: process.env.OPENAI_BASE_URL
115582
- });
115583
- const baseUrl2 = resolvedRequest.baseUrl;
115584
- const isLocal2 = isLocalProviderUrl(baseUrl2);
115585
- let name = "OpenAI";
115586
- if (process.env.NVIDIA_NIM)
115587
- name = "NVIDIA NIM";
115588
- else if (process.env.MINIMAX_API_KEY)
115589
- name = "MiniMax";
115590
- else if (resolvedRequest.transport === "codex_responses" || baseUrl2.includes("chatgpt.com/backend-api/codex"))
115591
- name = "Codex";
115592
- else if (/openrouter/i.test(baseUrl2))
115593
- name = "OpenRouter";
115594
- else if (/together/i.test(baseUrl2))
115595
- name = "Together AI";
115596
- else if (/groq/i.test(baseUrl2))
115597
- name = "Groq";
115598
- else if (/azure/i.test(baseUrl2))
115599
- name = "Azure OpenAI";
115600
- else if (/nvidia/i.test(baseUrl2))
115601
- name = "NVIDIA NIM";
115602
- else if (/minimax/i.test(baseUrl2))
115603
- name = "MiniMax";
115604
- else if (/api\.kimi\.com/i.test(baseUrl2))
115605
- name = "Moonshot AI - Kimi Code";
115606
- else if (/moonshot/i.test(baseUrl2))
115607
- name = "Moonshot AI - API";
115608
- else if (/deepseek/i.test(baseUrl2))
115609
- name = "DeepSeek";
115610
- else if (/x\.ai/i.test(baseUrl2))
115611
- name = "xAI";
115612
- else if (isZaiBaseUrl(baseUrl2))
115613
- name = "Z.AI - GLM";
115614
- else if (/mistral/i.test(baseUrl2))
115615
- name = "Mistral";
115616
- else if (/nvidia/i.test(rawModel))
115617
- name = "NVIDIA NIM";
115618
- else if (/minimax/i.test(rawModel))
115619
- name = "MiniMax";
115620
- else if (/\bkimi-for-coding\b/i.test(rawModel))
115621
- name = "Moonshot AI - Kimi Code";
115622
- else if (/\bkimi-k/i.test(rawModel) || /moonshot/i.test(rawModel))
115623
- name = "Moonshot AI - API";
115624
- else if (/deepseek/i.test(rawModel))
115625
- name = "DeepSeek";
115626
- else if (/grok/i.test(rawModel))
115627
- name = "xAI";
115628
- else if (containsExactZaiGlmModelId(rawModel))
115629
- name = "Z.AI - GLM";
115630
- else if (/mistral/i.test(rawModel))
115631
- name = "Mistral";
115632
- else if (/llama/i.test(rawModel))
115633
- name = "Meta Llama";
115634
- else if (/bankr/i.test(baseUrl2))
115635
- name = "Bankr";
115636
- else if (/bankr/i.test(rawModel))
115637
- name = "Bankr";
115638
- else if (isLocal2)
115639
- name = getLocalOpenAICompatibleProviderLabel(baseUrl2);
115640
- let displayModel = resolvedRequest.resolvedModel;
115641
- if (resolvedRequest.reasoning?.effort) {
115642
- displayModel = `${displayModel} (${resolvedRequest.reasoning.effort})`;
115643
- }
115644
- return { name, model: displayModel, baseUrl: baseUrl2, isLocal: isLocal2 };
115645
- }
115646
- const modelSetting = modelOverride || getDefaultVerbooModel();
115647
- const resolvedModel = parseUserSpecifiedModel(modelSetting);
115648
- const baseUrl = VERBOO_ROUTER_URL;
115649
- const isLocal = isLocalProviderUrl(baseUrl);
115650
- return { name: "Verboo", model: resolvedModel, baseUrl, isLocal };
115651
- }
115652
- function printStartupScreen(modelOverride) {
115653
- if (process.env.CI || !process.stdout.isTTY)
115654
- return;
115655
- const p = detectProvider(modelOverride);
115656
- const out = [];
115657
- const home = process.env.HOME || process.env.USERPROFILE || "";
115658
- const cwd2 = process.cwd();
115659
- const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
115660
- const version2 = "0.7.19";
115661
- const bold2 = `${ESC}1m`;
115662
- const PURPLE = rgb(...ACCENT);
115663
- const SOFT = rgb(...CREAM);
115664
- const DIMP = `${DIM}${rgb(...DIMCOL)}`;
115665
- const STATUS_C = p.isLocal ? rgb(130, 200, 140) : PURPLE;
115666
- const statusLabel = p.isLocal ? "local" : "cloud";
115667
- const ep = p.baseUrl.length > 48 ? p.baseUrl.slice(0, 45) + "..." : p.baseUrl;
115668
- out.push("");
115669
- out.push(` ${PURPLE}\uD83D\uDC7B${RESET} ${bold2}${SOFT}Verboo Code${RESET} ${DIMP}v${version2}${RESET}`);
115670
- out.push(` ${DIMP}Tokens ilimitados · Privacidade · Velocidade${RESET}`);
115671
- out.push(` ${DIMP}${p.name} · ${p.model}${RESET}`);
115672
- out.push(` ${DIMP}${ep}${RESET}`);
115673
- out.push(` ${DIMP}${displayCwd}${RESET}`);
115674
- out.push("");
115675
- out.push(` ${STATUS_C}●${RESET} ${DIMP}${statusLabel}${RESET} ${DIMP}Ready — type ${RESET}${PURPLE}/help${RESET}${DIMP} to begin${RESET}`);
115676
- out.push("");
115677
- process.stdout.write(out.join(`
115678
- `) + `
115679
- `);
115680
- }
115681
- var ESC = "\x1B[", RESET, DIM, rgb = (r, g, b) => `${ESC}38;2;${r};${g};${b}m`, ACCENT, CREAM, DIMCOL;
115682
- var init_StartupScreen = __esm(() => {
115683
- init_oauth();
115684
- init_providerConfig();
115685
- init_providerDiscovery();
115686
- init_model();
115687
- init_zaiProvider();
115688
- RESET = `${ESC}0m`;
115689
- DIM = `${ESC}2m`;
115690
- ACCENT = [173, 52, 254];
115691
- CREAM = [220, 200, 240];
115692
- DIMCOL = [120, 100, 140];
115693
- });
115694
-
115695
115512
  // node_modules/ignore/index.js
115696
115513
  var require_ignore = __commonJS((exports, module) => {
115697
115514
  function makeArray(subject) {
@@ -120056,7 +119873,7 @@ var init_fullscreen = __esm(() => {
120056
119873
  function isEscFinal(byte) {
120057
119874
  return byte >= 48 && byte <= 126;
120058
119875
  }
120059
- var C0, ESC2 = "\x1B", BEL = "\x07", SEP = ";", ESC_TYPE;
119876
+ var C0, ESC = "\x1B", BEL = "\x07", SEP = ";", ESC_TYPE;
120060
119877
  var init_ansi = __esm(() => {
120061
119878
  C0 = {
120062
119879
  NUL: 0,
@@ -120180,7 +119997,7 @@ function setScrollRegion(top, bottom) {
120180
119997
  var CSI_PREFIX, CSI_RANGE, CSI, ERASE_DISPLAY, ERASE_LINE_REGION, CURSOR_STYLES, CURSOR_LEFT, CURSOR_HOME, CURSOR_SAVE, CURSOR_RESTORE, ERASE_LINE, ERASE_SCREEN, ERASE_SCROLLBACK, RESET_SCROLL_REGION, PASTE_START, PASTE_END, FOCUS_IN, FOCUS_OUT, ENABLE_KITTY_KEYBOARD, DISABLE_KITTY_KEYBOARD, ENABLE_MODIFY_OTHER_KEYS, DISABLE_MODIFY_OTHER_KEYS;
120181
119998
  var init_csi = __esm(() => {
120182
119999
  init_ansi();
120183
- CSI_PREFIX = ESC2 + String.fromCharCode(ESC_TYPE.CSI);
120000
+ CSI_PREFIX = ESC + String.fromCharCode(ESC_TYPE.CSI);
120184
120001
  CSI_RANGE = {
120185
120002
  PARAM_START: 48,
120186
120003
  PARAM_END: 63,
@@ -132405,20 +132222,20 @@ var init_ansi_styles2 = __esm(() => {
132405
132222
  });
132406
132223
 
132407
132224
  // node_modules/@alcalzone/ansi-tokenize/build/consts.js
132408
- var BEL2 = "\x07", ESC3 = "\x1B", BACKSLASH = "\\", CSI2 = "[", OSC = "]", C1_ST = "œ", CC_BEL, CC_ESC, CC_BACKSLASH, CC_CSI, CC_OSC, CC_C1_ST, CC_0 = 48, CC_9 = 57, CC_SEMI = 59, CC_M = 109, ESCAPES, linkCodePrefix, linkCodePrefixCharCodes, linkEndCode, linkEndCodeST, linkEndCodeC1ST;
132225
+ var BEL2 = "\x07", ESC2 = "\x1B", BACKSLASH = "\\", CSI2 = "[", OSC = "]", C1_ST = "œ", CC_BEL, CC_ESC, CC_BACKSLASH, CC_CSI, CC_OSC, CC_C1_ST, CC_0 = 48, CC_9 = 57, CC_SEMI = 59, CC_M = 109, ESCAPES, linkCodePrefix, linkCodePrefixCharCodes, linkEndCode, linkEndCodeST, linkEndCodeC1ST;
132409
132226
  var init_consts = __esm(() => {
132410
132227
  CC_BEL = BEL2.charCodeAt(0);
132411
- CC_ESC = ESC3.charCodeAt(0);
132228
+ CC_ESC = ESC2.charCodeAt(0);
132412
132229
  CC_BACKSLASH = BACKSLASH.charCodeAt(0);
132413
132230
  CC_CSI = CSI2.charCodeAt(0);
132414
132231
  CC_OSC = OSC.charCodeAt(0);
132415
132232
  CC_C1_ST = C1_ST.charCodeAt(0);
132416
132233
  ESCAPES = new Set([CC_ESC, 155]);
132417
- linkCodePrefix = `${ESC3}${OSC}8;`;
132234
+ linkCodePrefix = `${ESC2}${OSC}8;`;
132418
132235
  linkCodePrefixCharCodes = linkCodePrefix.split("").map((char) => char.charCodeAt(0));
132419
- linkEndCode = `${ESC3}${OSC}8;;${BEL2}`;
132420
- linkEndCodeST = `${ESC3}${OSC}8;;${ESC3}${BACKSLASH}`;
132421
- linkEndCodeC1ST = `${ESC3}${OSC}8;;${C1_ST}`;
132236
+ linkEndCode = `${ESC2}${OSC}8;;${BEL2}`;
132237
+ linkEndCodeST = `${ESC2}${OSC}8;;${ESC2}${BACKSLASH}`;
132238
+ linkEndCodeC1ST = `${ESC2}${OSC}8;;${C1_ST}`;
132422
132239
  });
132423
132240
 
132424
132241
  // node_modules/@alcalzone/ansi-tokenize/build/ansiCodes.js
@@ -135016,8 +134833,8 @@ var init_screen = __esm(() => {
135016
134833
  "\x1B[29m",
135017
134834
  "\x1B[55m"
135018
134835
  ]);
135019
- OSC8_REGEX = new RegExp(`^${ESC2}\\]8${SEP}${SEP}([^${BEL}]*)${BEL}$`);
135020
- OSC8_PREFIX = `${ESC2}]8${SEP}`;
134836
+ OSC8_REGEX = new RegExp(`^${ESC}\\]8${SEP}${SEP}([^${BEL}]*)${BEL}$`);
134837
+ OSC8_PREFIX = `${ESC}]8${SEP}`;
135021
134838
  });
135022
134839
 
135023
134840
  // src/ink/selection.ts
@@ -137449,7 +137266,7 @@ function getClipboardPath() {
137449
137266
  return "osc52";
137450
137267
  }
137451
137268
  function tmuxPassthrough(payload) {
137452
- return `${ESC2}Ptmux;${payload.replaceAll(ESC2, ESC2 + ESC2)}${ST}`;
137269
+ return `${ESC}Ptmux;${payload.replaceAll(ESC, ESC + ESC)}${ST}`;
137453
137270
  }
137454
137271
  async function tmuxLoadBuffer(text) {
137455
137272
  if (!process.env["TMUX"])
@@ -137469,7 +137286,7 @@ async function setClipboard(text) {
137469
137286
  copyNative(text);
137470
137287
  const tmuxBufferLoaded = await tmuxLoadBuffer(text);
137471
137288
  if (tmuxBufferLoaded)
137472
- return tmuxPassthrough(`${ESC2}]52;c;${b64}${BEL}`);
137289
+ return tmuxPassthrough(`${ESC}]52;c;${b64}${BEL}`);
137473
137290
  return raw;
137474
137291
  }
137475
137292
  function copyNative(text) {
@@ -137587,14 +137404,14 @@ function parseOscColor(spec) {
137587
137404
  b: parseInt(hex[3], 16)
137588
137405
  };
137589
137406
  }
137590
- const rgb2 = spec.match(/^rgb:([0-9a-f]{1,4})\/([0-9a-f]{1,4})\/([0-9a-f]{1,4})$/i);
137591
- if (rgb2) {
137407
+ const rgb = spec.match(/^rgb:([0-9a-f]{1,4})\/([0-9a-f]{1,4})\/([0-9a-f]{1,4})$/i);
137408
+ if (rgb) {
137592
137409
  const scale = (s) => Math.round(parseInt(s, 16) / (16 ** s.length - 1) * 255);
137593
137410
  return {
137594
137411
  type: "rgb",
137595
- r: scale(rgb2[1]),
137596
- g: scale(rgb2[2]),
137597
- b: scale(rgb2[3])
137412
+ r: scale(rgb[1]),
137413
+ g: scale(rgb[2]),
137414
+ b: scale(rgb[3])
137598
137415
  };
137599
137416
  }
137600
137417
  return null;
@@ -137664,13 +137481,13 @@ function supportsTabStatus() {
137664
137481
  }
137665
137482
  function tabStatus(fields) {
137666
137483
  const parts = [];
137667
- const rgb2 = (c5) => c5.type === "rgb" ? `#${[c5.r, c5.g, c5.b].map((n2) => n2.toString(16).padStart(2, "0")).join("")}` : "";
137484
+ const rgb = (c5) => c5.type === "rgb" ? `#${[c5.r, c5.g, c5.b].map((n2) => n2.toString(16).padStart(2, "0")).join("")}` : "";
137668
137485
  if ("indicator" in fields)
137669
- parts.push(`indicator=${fields.indicator ? rgb2(fields.indicator) : ""}`);
137486
+ parts.push(`indicator=${fields.indicator ? rgb(fields.indicator) : ""}`);
137670
137487
  if ("status" in fields)
137671
137488
  parts.push(`status=${fields.status?.replaceAll("\\", "\\\\").replaceAll(";", "\\;") ?? ""}`);
137672
137489
  if ("statusColor" in fields)
137673
- parts.push(`status-color=${fields.statusColor ? rgb2(fields.statusColor) : ""}`);
137490
+ parts.push(`status-color=${fields.statusColor ? rgb(fields.statusColor) : ""}`);
137674
137491
  return osc(OSC2.TAB_STATUS, parts.join(";"));
137675
137492
  }
137676
137493
  var OSC_PREFIX, ST, linuxCopy, OSC2, LINK_END, ITERM2, PROGRESS, CLEAR_ITERM2_PROGRESS, CLEAR_TERMINAL_TITLE, CLEAR_TAB_STATUS;
@@ -137679,8 +137496,8 @@ var init_osc = __esm(() => {
137679
137496
  init_execFileNoThrow();
137680
137497
  init_tempfile();
137681
137498
  init_ansi();
137682
- OSC_PREFIX = ESC2 + String.fromCharCode(ESC_TYPE.OSC);
137683
- ST = ESC2 + "\\";
137499
+ OSC_PREFIX = ESC + String.fromCharCode(ESC_TYPE.OSC);
137500
+ ST = ESC + "\\";
137684
137501
  OSC2 = {
137685
137502
  SET_TITLE_AND_ICON: 0,
137686
137503
  SET_ICON: 1,
@@ -145727,7 +145544,7 @@ function useTabStatus(kind) {
145727
145544
  writeRaw(wrapForMultiplexer(tabStatus(TAB_STATUS_PRESETS[kind])));
145728
145545
  }, [kind, writeRaw]);
145729
145546
  }
145730
- var import_react24, rgb2 = (r, g, b) => ({
145547
+ var import_react24, rgb = (r, g, b) => ({
145731
145548
  type: "rgb",
145732
145549
  r,
145733
145550
  g,
@@ -145739,19 +145556,19 @@ var init_use_tab_status = __esm(() => {
145739
145556
  import_react24 = __toESM(require_react(), 1);
145740
145557
  TAB_STATUS_PRESETS = {
145741
145558
  idle: {
145742
- indicator: rgb2(0, 215, 95),
145559
+ indicator: rgb(0, 215, 95),
145743
145560
  status: "Idle",
145744
- statusColor: rgb2(136, 136, 136)
145561
+ statusColor: rgb(136, 136, 136)
145745
145562
  },
145746
145563
  busy: {
145747
- indicator: rgb2(255, 149, 0),
145564
+ indicator: rgb(255, 149, 0),
145748
145565
  status: "Working…",
145749
- statusColor: rgb2(255, 149, 0)
145566
+ statusColor: rgb(255, 149, 0)
145750
145567
  },
145751
145568
  waiting: {
145752
- indicator: rgb2(95, 135, 255),
145569
+ indicator: rgb(95, 135, 255),
145753
145570
  status: "Waiting",
145754
- statusColor: rgb2(95, 135, 255)
145571
+ statusColor: rgb(95, 135, 255)
145755
145572
  }
145756
145573
  };
145757
145574
  });
@@ -243502,10 +243319,10 @@ var require_conversions = __commonJS((exports, module) => {
243502
243319
  Object.defineProperty(convert[model], "channels", { value: channels });
243503
243320
  Object.defineProperty(convert[model], "labels", { value: labels });
243504
243321
  }
243505
- convert.rgb.hsl = function(rgb3) {
243506
- const r = rgb3[0] / 255;
243507
- const g = rgb3[1] / 255;
243508
- const b = rgb3[2] / 255;
243322
+ convert.rgb.hsl = function(rgb2) {
243323
+ const r = rgb2[0] / 255;
243324
+ const g = rgb2[1] / 255;
243325
+ const b = rgb2[2] / 255;
243509
243326
  const min = Math.min(r, g, b);
243510
243327
  const max2 = Math.max(r, g, b);
243511
243328
  const delta = max2 - min;
@@ -243534,15 +243351,15 @@ var require_conversions = __commonJS((exports, module) => {
243534
243351
  }
243535
243352
  return [h2, s * 100, l * 100];
243536
243353
  };
243537
- convert.rgb.hsv = function(rgb3) {
243354
+ convert.rgb.hsv = function(rgb2) {
243538
243355
  let rdif;
243539
243356
  let gdif;
243540
243357
  let bdif;
243541
243358
  let h2;
243542
243359
  let s;
243543
- const r = rgb3[0] / 255;
243544
- const g = rgb3[1] / 255;
243545
- const b = rgb3[2] / 255;
243360
+ const r = rgb2[0] / 255;
243361
+ const g = rgb2[1] / 255;
243362
+ const b = rgb2[2] / 255;
243546
243363
  const v = Math.max(r, g, b);
243547
243364
  const diff2 = v - Math.min(r, g, b);
243548
243365
  const diffc = function(c6) {
@@ -243575,19 +243392,19 @@ var require_conversions = __commonJS((exports, module) => {
243575
243392
  v * 100
243576
243393
  ];
243577
243394
  };
243578
- convert.rgb.hwb = function(rgb3) {
243579
- const r = rgb3[0];
243580
- const g = rgb3[1];
243581
- let b = rgb3[2];
243582
- const h2 = convert.rgb.hsl(rgb3)[0];
243395
+ convert.rgb.hwb = function(rgb2) {
243396
+ const r = rgb2[0];
243397
+ const g = rgb2[1];
243398
+ let b = rgb2[2];
243399
+ const h2 = convert.rgb.hsl(rgb2)[0];
243583
243400
  const w = 1 / 255 * Math.min(r, Math.min(g, b));
243584
243401
  b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
243585
243402
  return [h2, w * 100, b * 100];
243586
243403
  };
243587
- convert.rgb.cmyk = function(rgb3) {
243588
- const r = rgb3[0] / 255;
243589
- const g = rgb3[1] / 255;
243590
- const b = rgb3[2] / 255;
243404
+ convert.rgb.cmyk = function(rgb2) {
243405
+ const r = rgb2[0] / 255;
243406
+ const g = rgb2[1] / 255;
243407
+ const b = rgb2[2] / 255;
243591
243408
  const k = Math.min(1 - r, 1 - g, 1 - b);
243592
243409
  const c6 = (1 - r - k) / (1 - k) || 0;
243593
243410
  const m = (1 - g - k) / (1 - k) || 0;
@@ -243597,8 +243414,8 @@ var require_conversions = __commonJS((exports, module) => {
243597
243414
  function comparativeDistance(x3, y2) {
243598
243415
  return (x3[0] - y2[0]) ** 2 + (x3[1] - y2[1]) ** 2 + (x3[2] - y2[2]) ** 2;
243599
243416
  }
243600
- convert.rgb.keyword = function(rgb3) {
243601
- const reversed = reverseKeywords[rgb3];
243417
+ convert.rgb.keyword = function(rgb2) {
243418
+ const reversed = reverseKeywords[rgb2];
243602
243419
  if (reversed) {
243603
243420
  return reversed;
243604
243421
  }
@@ -243606,7 +243423,7 @@ var require_conversions = __commonJS((exports, module) => {
243606
243423
  let currentClosestKeyword;
243607
243424
  for (const keyword of Object.keys(cssKeywords)) {
243608
243425
  const value = cssKeywords[keyword];
243609
- const distance = comparativeDistance(rgb3, value);
243426
+ const distance = comparativeDistance(rgb2, value);
243610
243427
  if (distance < currentClosestDistance) {
243611
243428
  currentClosestDistance = distance;
243612
243429
  currentClosestKeyword = keyword;
@@ -243617,10 +243434,10 @@ var require_conversions = __commonJS((exports, module) => {
243617
243434
  convert.keyword.rgb = function(keyword) {
243618
243435
  return cssKeywords[keyword];
243619
243436
  };
243620
- convert.rgb.xyz = function(rgb3) {
243621
- let r = rgb3[0] / 255;
243622
- let g = rgb3[1] / 255;
243623
- let b = rgb3[2] / 255;
243437
+ convert.rgb.xyz = function(rgb2) {
243438
+ let r = rgb2[0] / 255;
243439
+ let g = rgb2[1] / 255;
243440
+ let b = rgb2[2] / 255;
243624
243441
  r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;
243625
243442
  g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;
243626
243443
  b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;
@@ -243629,8 +243446,8 @@ var require_conversions = __commonJS((exports, module) => {
243629
243446
  const z2 = r * 0.0193 + g * 0.1192 + b * 0.9505;
243630
243447
  return [x3 * 100, y2 * 100, z2 * 100];
243631
243448
  };
243632
- convert.rgb.lab = function(rgb3) {
243633
- const xyz = convert.rgb.xyz(rgb3);
243449
+ convert.rgb.lab = function(rgb2) {
243450
+ const xyz = convert.rgb.xyz(rgb2);
243634
243451
  let x3 = xyz[0];
243635
243452
  let y2 = xyz[1];
243636
243453
  let z2 = xyz[2];
@@ -243662,7 +243479,7 @@ var require_conversions = __commonJS((exports, module) => {
243662
243479
  t2 = l + s - l * s;
243663
243480
  }
243664
243481
  const t1 = 2 * l - t2;
243665
- const rgb3 = [0, 0, 0];
243482
+ const rgb2 = [0, 0, 0];
243666
243483
  for (let i3 = 0;i3 < 3; i3++) {
243667
243484
  t3 = h2 + 1 / 3 * -(i3 - 1);
243668
243485
  if (t3 < 0) {
@@ -243680,9 +243497,9 @@ var require_conversions = __commonJS((exports, module) => {
243680
243497
  } else {
243681
243498
  val = t1;
243682
243499
  }
243683
- rgb3[i3] = val * 255;
243500
+ rgb2[i3] = val * 255;
243684
243501
  }
243685
- return rgb3;
243502
+ return rgb2;
243686
243503
  };
243687
243504
  convert.hsl.hsv = function(hsl) {
243688
243505
  const h2 = hsl[0];
@@ -243960,10 +243777,10 @@ var require_conversions = __commonJS((exports, module) => {
243960
243777
  const b = integer2 & 255;
243961
243778
  return [r, g, b];
243962
243779
  };
243963
- convert.rgb.hcg = function(rgb3) {
243964
- const r = rgb3[0] / 255;
243965
- const g = rgb3[1] / 255;
243966
- const b = rgb3[2] / 255;
243780
+ convert.rgb.hcg = function(rgb2) {
243781
+ const r = rgb2[0] / 255;
243782
+ const g = rgb2[1] / 255;
243783
+ const b = rgb2[2] / 255;
243967
243784
  const max2 = Math.max(Math.max(r, g), b);
243968
243785
  const min = Math.min(Math.min(r, g), b);
243969
243786
  const chroma = max2 - min;
@@ -244099,8 +243916,8 @@ var require_conversions = __commonJS((exports, module) => {
244099
243916
  convert.apple.rgb = function(apple) {
244100
243917
  return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
244101
243918
  };
244102
- convert.rgb.apple = function(rgb3) {
244103
- return [rgb3[0] / 255 * 65535, rgb3[1] / 255 * 65535, rgb3[2] / 255 * 65535];
243919
+ convert.rgb.apple = function(rgb2) {
243920
+ return [rgb2[0] / 255 * 65535, rgb2[1] / 255 * 65535, rgb2[2] / 255 * 65535];
244104
243921
  };
244105
243922
  convert.gray.rgb = function(args) {
244106
243923
  return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
@@ -244124,8 +243941,8 @@ var require_conversions = __commonJS((exports, module) => {
244124
243941
  const string5 = integer2.toString(16).toUpperCase();
244125
243942
  return "000000".substring(string5.length) + string5;
244126
243943
  };
244127
- convert.rgb.gray = function(rgb3) {
244128
- const val = (rgb3[0] + rgb3[1] + rgb3[2]) / 3;
243944
+ convert.rgb.gray = function(rgb2) {
243945
+ const val = (rgb2[0] + rgb2[1] + rgb2[2]) / 3;
244129
243946
  return [val / 255 * 100];
244130
243947
  };
244131
243948
  });
@@ -244266,8 +244083,8 @@ var require_ansi_styles = __commonJS((exports, module) => {
244266
244083
  return `\x1B[${38 + offset};5;${code}m`;
244267
244084
  };
244268
244085
  var wrapAnsi16m3 = (fn, offset) => (...args) => {
244269
- const rgb3 = fn(...args);
244270
- return `\x1B[${38 + offset};2;${rgb3[0]};${rgb3[1]};${rgb3[2]}m`;
244086
+ const rgb2 = fn(...args);
244087
+ return `\x1B[${38 + offset};2;${rgb2[0]};${rgb2[1]};${rgb2[2]}m`;
244271
244088
  };
244272
244089
  var ansi2ansi = (n2) => n2;
244273
244090
  var rgb2rgb = (r, g, b) => [r, g, b];
@@ -272855,7 +272672,7 @@ async function loadAndCheckModels(accessToken) {
272855
272672
  function getNoVerbooModelsMessage() {
272856
272673
  return `
272857
272674
  ❌ Nenhum modelo disponível na sua conta.
272858
- ` + ` Adquira acesso em: https://code.verboo.ai
272675
+ ` + ` Compre acesso em: https://code.verboo.ai
272859
272676
 
272860
272677
  ` + ` Para trocar de conta, execute: verboo logout
272861
272678
 
@@ -272913,9 +272730,7 @@ async function ensureVerbooAuthenticated(opts = {}) {
272913
272730
  validated = true;
272914
272731
  const stored = await getClaudeAIOAuthTokensAsync();
272915
272732
  if (stored?.accessToken) {
272916
- await fetchVerbooModels(stored.accessToken, { force: true }).catch((err2) => {
272917
- logForDebugging2(`[VerbooStartup] Falha ao atualizar modelos em modo degradado: ${err2.message}`);
272918
- });
272733
+ await loadAndCheckModels(stored.accessToken);
272919
272734
  }
272920
272735
  return;
272921
272736
  }
@@ -318111,7 +317926,7 @@ function hljs() {
318111
317926
  cachedHljs = "default" in mod && mod.default ? mod.default : mod;
318112
317927
  return cachedHljs;
318113
317928
  }
318114
- function rgb3(r, g, b) {
317929
+ function rgb2(r, g, b) {
318115
317930
  return { r, g, b, a: 255 };
318116
317931
  }
318117
317932
  function ansiIdx(index) {
@@ -318162,7 +317977,7 @@ function colorToEscape(c6, fg, mode) {
318162
317977
  return `\x1B[${codeType};5;${ansi256FromRgb(c6.r, c6.g, c6.b)}m`;
318163
317978
  }
318164
317979
  function asTerminalEscaped(blocks, mode, skipBackground, dim2) {
318165
- let out = dim2 ? RESET2 + DIM2 : RESET2;
317980
+ let out = dim2 ? RESET + DIM : RESET;
318166
317981
  for (const [style, text] of blocks) {
318167
317982
  out += colorToEscape(style.foreground, true, mode);
318168
317983
  if (!skipBackground) {
@@ -318170,7 +317985,7 @@ function asTerminalEscaped(blocks, mode, skipBackground, dim2) {
318170
317985
  }
318171
317986
  out += text;
318172
317987
  }
318173
- return out + RESET2;
317988
+ return out + RESET;
318174
317989
  }
318175
317990
  function defaultSyntaxThemeName(themeName) {
318176
317991
  if (themeName.includes("ansi"))
@@ -318198,15 +318013,15 @@ function buildTheme(themeName, mode) {
318198
318013
  };
318199
318014
  }
318200
318015
  if (isDark) {
318201
- const fg2 = rgb3(248, 248, 242);
318202
- const deleteLine2 = rgb3(61, 1, 0);
318203
- const deleteWord2 = rgb3(92, 2, 0);
318204
- const deleteDecoration2 = rgb3(220, 90, 90);
318016
+ const fg2 = rgb2(248, 248, 242);
318017
+ const deleteLine2 = rgb2(61, 1, 0);
318018
+ const deleteWord2 = rgb2(92, 2, 0);
318019
+ const deleteDecoration2 = rgb2(220, 90, 90);
318205
318020
  if (isDaltonized) {
318206
318021
  return {
318207
- addLine: tc ? rgb3(0, 27, 41) : ansiIdx(17),
318208
- addWord: tc ? rgb3(0, 48, 71) : ansiIdx(24),
318209
- addDecoration: rgb3(81, 160, 200),
318022
+ addLine: tc ? rgb2(0, 27, 41) : ansiIdx(17),
318023
+ addWord: tc ? rgb2(0, 48, 71) : ansiIdx(24),
318024
+ addDecoration: rgb2(81, 160, 200),
318210
318025
  deleteLine: deleteLine2,
318211
318026
  deleteWord: deleteWord2,
318212
318027
  deleteDecoration: deleteDecoration2,
@@ -318216,9 +318031,9 @@ function buildTheme(themeName, mode) {
318216
318031
  };
318217
318032
  }
318218
318033
  return {
318219
- addLine: tc ? rgb3(2, 40, 0) : ansiIdx(22),
318220
- addWord: tc ? rgb3(4, 71, 0) : ansiIdx(28),
318221
- addDecoration: rgb3(80, 200, 80),
318034
+ addLine: tc ? rgb2(2, 40, 0) : ansiIdx(22),
318035
+ addWord: tc ? rgb2(4, 71, 0) : ansiIdx(28),
318036
+ addDecoration: rgb2(80, 200, 80),
318222
318037
  deleteLine: deleteLine2,
318223
318038
  deleteWord: deleteWord2,
318224
318039
  deleteDecoration: deleteDecoration2,
@@ -318227,15 +318042,15 @@ function buildTheme(themeName, mode) {
318227
318042
  scopes: MONOKAI_SCOPES
318228
318043
  };
318229
318044
  }
318230
- const fg = rgb3(51, 51, 51);
318231
- const deleteLine = rgb3(255, 220, 220);
318232
- const deleteWord = rgb3(255, 199, 199);
318233
- const deleteDecoration = rgb3(207, 34, 46);
318045
+ const fg = rgb2(51, 51, 51);
318046
+ const deleteLine = rgb2(255, 220, 220);
318047
+ const deleteWord = rgb2(255, 199, 199);
318048
+ const deleteDecoration = rgb2(207, 34, 46);
318234
318049
  if (isDaltonized) {
318235
318050
  return {
318236
- addLine: rgb3(219, 237, 255),
318237
- addWord: rgb3(179, 217, 255),
318238
- addDecoration: rgb3(36, 87, 138),
318051
+ addLine: rgb2(219, 237, 255),
318052
+ addWord: rgb2(179, 217, 255),
318053
+ addDecoration: rgb2(36, 87, 138),
318239
318054
  deleteLine,
318240
318055
  deleteWord,
318241
318056
  deleteDecoration,
@@ -318245,9 +318060,9 @@ function buildTheme(themeName, mode) {
318245
318060
  };
318246
318061
  }
318247
318062
  return {
318248
- addLine: rgb3(220, 255, 220),
318249
- addWord: rgb3(178, 255, 178),
318250
- addDecoration: rgb3(36, 138, 61),
318063
+ addLine: rgb2(220, 255, 220),
318064
+ addWord: rgb2(178, 255, 178),
318065
+ addDecoration: rgb2(36, 138, 61),
318251
318066
  deleteLine,
318252
318067
  deleteWord,
318253
318068
  deleteDecoration,
@@ -318526,7 +318341,7 @@ function addLineNumber(h2, theme, maxDigits, fullDim) {
318526
318341
  const shouldDim = h2.marker === null || h2.marker === " ";
318527
318342
  for (let i3 = 0;i3 < h2.lines.length; i3++) {
318528
318343
  const prefix = i3 === 0 ? ` ${String(h2.lineNumber).padStart(maxDigits)} ` : " ".repeat(maxDigits + 2);
318529
- const wrapped = shouldDim && !fullDim ? `${DIM2}${prefix}${UNDIM}` : prefix;
318344
+ const wrapped = shouldDim && !fullDim ? `${DIM}${prefix}${UNDIM}` : prefix;
318530
318345
  h2.lines[i3].unshift([style, wrapped]);
318531
318346
  }
318532
318347
  }
@@ -318544,7 +318359,7 @@ function addMarker(h2, theme) {
318544
318359
  function dimContent(h2) {
318545
318360
  for (const line of h2.lines) {
318546
318361
  if (line.length > 0) {
318547
- line[0][1] = DIM2 + line[0][1];
318362
+ line[0][1] = DIM + line[0][1];
318548
318363
  const last2 = line.length - 1;
318549
318364
  line[last2][1] = line[last2][1] + UNDIM;
318550
318365
  }
@@ -318714,7 +318529,7 @@ function getSyntaxTheme4(themeName) {
318714
318529
  const envTheme = process.env.CLAUDE_CODE_SYNTAX_HIGHLIGHT ?? process.env.BAT_THEME;
318715
318530
  return { theme: defaultSyntaxThemeName(themeName), source: null };
318716
318531
  }
318717
- var cachedHljs = null, RESET2 = "\x1B[0m", DIM2 = "\x1B[2m", UNDIM = "\x1B[22m", DEFAULT_BG, CUBE_LEVELS, MONOKAI_SCOPES, GITHUB_SCOPES, STORAGE_KEYWORDS, ANSI_SCOPES, FILENAME_LANGS, loggedEmitterShapeError = false, CHANGE_THRESHOLD = 0.4;
318532
+ var cachedHljs = null, RESET = "\x1B[0m", DIM = "\x1B[2m", UNDIM = "\x1B[22m", DEFAULT_BG, CUBE_LEVELS, MONOKAI_SCOPES, GITHUB_SCOPES, STORAGE_KEYWORDS, ANSI_SCOPES, FILENAME_LANGS, loggedEmitterShapeError = false, CHANGE_THRESHOLD = 0.4;
318718
318533
  var init_color_diff = __esm(() => {
318719
318534
  init_libesm();
318720
318535
  init_stringWidth();
@@ -318722,56 +318537,56 @@ var init_color_diff = __esm(() => {
318722
318537
  DEFAULT_BG = { r: 0, g: 0, b: 0, a: 1 };
318723
318538
  CUBE_LEVELS = [0, 95, 135, 175, 215, 255];
318724
318539
  MONOKAI_SCOPES = {
318725
- keyword: rgb3(249, 38, 114),
318726
- _storage: rgb3(102, 217, 239),
318727
- built_in: rgb3(166, 226, 46),
318728
- type: rgb3(166, 226, 46),
318729
- literal: rgb3(190, 132, 255),
318730
- number: rgb3(190, 132, 255),
318731
- string: rgb3(230, 219, 116),
318732
- title: rgb3(166, 226, 46),
318733
- "title.function": rgb3(166, 226, 46),
318734
- "title.class": rgb3(166, 226, 46),
318735
- "title.class.inherited": rgb3(166, 226, 46),
318736
- params: rgb3(253, 151, 31),
318737
- comment: rgb3(117, 113, 94),
318738
- meta: rgb3(117, 113, 94),
318739
- attr: rgb3(166, 226, 46),
318740
- attribute: rgb3(166, 226, 46),
318741
- variable: rgb3(255, 255, 255),
318742
- "variable.language": rgb3(255, 255, 255),
318743
- property: rgb3(255, 255, 255),
318744
- operator: rgb3(249, 38, 114),
318745
- punctuation: rgb3(248, 248, 242),
318746
- symbol: rgb3(190, 132, 255),
318747
- regexp: rgb3(230, 219, 116),
318748
- subst: rgb3(248, 248, 242)
318540
+ keyword: rgb2(249, 38, 114),
318541
+ _storage: rgb2(102, 217, 239),
318542
+ built_in: rgb2(166, 226, 46),
318543
+ type: rgb2(166, 226, 46),
318544
+ literal: rgb2(190, 132, 255),
318545
+ number: rgb2(190, 132, 255),
318546
+ string: rgb2(230, 219, 116),
318547
+ title: rgb2(166, 226, 46),
318548
+ "title.function": rgb2(166, 226, 46),
318549
+ "title.class": rgb2(166, 226, 46),
318550
+ "title.class.inherited": rgb2(166, 226, 46),
318551
+ params: rgb2(253, 151, 31),
318552
+ comment: rgb2(117, 113, 94),
318553
+ meta: rgb2(117, 113, 94),
318554
+ attr: rgb2(166, 226, 46),
318555
+ attribute: rgb2(166, 226, 46),
318556
+ variable: rgb2(255, 255, 255),
318557
+ "variable.language": rgb2(255, 255, 255),
318558
+ property: rgb2(255, 255, 255),
318559
+ operator: rgb2(249, 38, 114),
318560
+ punctuation: rgb2(248, 248, 242),
318561
+ symbol: rgb2(190, 132, 255),
318562
+ regexp: rgb2(230, 219, 116),
318563
+ subst: rgb2(248, 248, 242)
318749
318564
  };
318750
318565
  GITHUB_SCOPES = {
318751
- keyword: rgb3(167, 29, 93),
318752
- _storage: rgb3(167, 29, 93),
318753
- built_in: rgb3(0, 134, 179),
318754
- type: rgb3(0, 134, 179),
318755
- literal: rgb3(0, 134, 179),
318756
- number: rgb3(0, 134, 179),
318757
- string: rgb3(24, 54, 145),
318758
- title: rgb3(121, 93, 163),
318759
- "title.function": rgb3(121, 93, 163),
318760
- "title.class": rgb3(0, 0, 0),
318761
- "title.class.inherited": rgb3(0, 0, 0),
318762
- params: rgb3(0, 134, 179),
318763
- comment: rgb3(150, 152, 150),
318764
- meta: rgb3(150, 152, 150),
318765
- attr: rgb3(0, 134, 179),
318766
- attribute: rgb3(0, 134, 179),
318767
- variable: rgb3(0, 134, 179),
318768
- "variable.language": rgb3(0, 134, 179),
318769
- property: rgb3(0, 134, 179),
318770
- operator: rgb3(167, 29, 93),
318771
- punctuation: rgb3(51, 51, 51),
318772
- symbol: rgb3(0, 134, 179),
318773
- regexp: rgb3(24, 54, 145),
318774
- subst: rgb3(51, 51, 51)
318566
+ keyword: rgb2(167, 29, 93),
318567
+ _storage: rgb2(167, 29, 93),
318568
+ built_in: rgb2(0, 134, 179),
318569
+ type: rgb2(0, 134, 179),
318570
+ literal: rgb2(0, 134, 179),
318571
+ number: rgb2(0, 134, 179),
318572
+ string: rgb2(24, 54, 145),
318573
+ title: rgb2(121, 93, 163),
318574
+ "title.function": rgb2(121, 93, 163),
318575
+ "title.class": rgb2(0, 0, 0),
318576
+ "title.class.inherited": rgb2(0, 0, 0),
318577
+ params: rgb2(0, 134, 179),
318578
+ comment: rgb2(150, 152, 150),
318579
+ meta: rgb2(150, 152, 150),
318580
+ attr: rgb2(0, 134, 179),
318581
+ attribute: rgb2(0, 134, 179),
318582
+ variable: rgb2(0, 134, 179),
318583
+ "variable.language": rgb2(0, 134, 179),
318584
+ property: rgb2(0, 134, 179),
318585
+ operator: rgb2(167, 29, 93),
318586
+ punctuation: rgb2(51, 51, 51),
318587
+ symbol: rgb2(0, 134, 179),
318588
+ regexp: rgb2(24, 54, 145),
318589
+ subst: rgb2(51, 51, 51)
318775
318590
  };
318776
318591
  STORAGE_KEYWORDS = new Set([
318777
318592
  "const",
@@ -377070,7 +376885,7 @@ function getAnthropicEnvMetadata() {
377070
376885
  function getBuildAgeMinutes() {
377071
376886
  if (false)
377072
376887
  ;
377073
- const buildTime = new Date("2026-05-02T20:14:20.139Z").getTime();
376888
+ const buildTime = new Date("2026-05-02T20:35:53.649Z").getTime();
377074
376889
  if (isNaN(buildTime))
377075
376890
  return;
377076
376891
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -417616,7 +417431,7 @@ function buildPrimarySection() {
417616
417431
  }, undefined, false, undefined, this);
417617
417432
  return [{
417618
417433
  label: "Version",
417619
- value: "0.7.19"
417434
+ value: "0.7.21"
417620
417435
  }, {
417621
417436
  label: "Session name",
417622
417437
  value: nameValue
@@ -485566,7 +485381,7 @@ var init_bridge_kick = __esm(() => {
485566
485381
  var call60 = async () => {
485567
485382
  return {
485568
485383
  type: "text",
485569
- value: `${"99.0.0"} (built ${"2026-05-02T20:14:20.139Z"})`
485384
+ value: `${"99.0.0"} (built ${"2026-05-02T20:35:53.649Z"})`
485570
485385
  };
485571
485386
  }, version2, version_default;
485572
485387
  var init_version = __esm(() => {
@@ -488082,8 +487897,10 @@ async function validateModel(model) {
488082
487897
  error: `Modelo '${normalizedModel}' não disponível. Disponíveis: ${shown}${suffix}`
488083
487898
  };
488084
487899
  }
488085
- validModelCache.set(normalizedModel, true);
488086
- return { valid: true };
487900
+ return {
487901
+ valid: false,
487902
+ error: "Nenhum modelo Verboo disponível na sua conta. Compre acesso em https://code.verboo.ai e execute `verboo /login` novamente."
487903
+ };
488087
487904
  }
488088
487905
  if (getAPIProvider() === "openai" && isOllamaProvider()) {
488089
487906
  const ollamaModels = getCachedOllamaModelOptions();
@@ -508404,6 +508221,185 @@ var init_chromeNativeHost = __esm(() => {
508404
508221
  }).passthrough());
508405
508222
  });
508406
508223
 
508224
+ // src/utils/cliArgs.ts
508225
+ var exports_cliArgs = {};
508226
+ __export(exports_cliArgs, {
508227
+ extractArgsAfterDoubleDash: () => extractArgsAfterDoubleDash,
508228
+ eagerParseCliFlag: () => eagerParseCliFlag
508229
+ });
508230
+ function eagerParseCliFlag(flagName, argv = process.argv) {
508231
+ for (let i3 = 0;i3 < argv.length; i3++) {
508232
+ const arg = argv[i3];
508233
+ if (arg?.startsWith(`${flagName}=`)) {
508234
+ return arg.slice(flagName.length + 1);
508235
+ }
508236
+ if (arg === flagName && i3 + 1 < argv.length) {
508237
+ return argv[i3 + 1];
508238
+ }
508239
+ }
508240
+ return;
508241
+ }
508242
+ function extractArgsAfterDoubleDash(commandOrValue, args = []) {
508243
+ if (commandOrValue === "--" && args.length > 0) {
508244
+ return {
508245
+ command: args[0],
508246
+ args: args.slice(1)
508247
+ };
508248
+ }
508249
+ return { command: commandOrValue, args };
508250
+ }
508251
+
508252
+ // src/components/StartupScreen.ts
508253
+ var exports_StartupScreen = {};
508254
+ __export(exports_StartupScreen, {
508255
+ printStartupScreen: () => printStartupScreen,
508256
+ detectProvider: () => detectProvider
508257
+ });
508258
+ function detectProvider(modelOverride) {
508259
+ if (isVerbooMode()) {
508260
+ const safeOverride = modelOverride && !isClaudeModelLike(modelOverride) ? modelOverride : getDefaultVerbooModel();
508261
+ const resolvedModel2 = parseUserSpecifiedModel(safeOverride);
508262
+ const baseUrl2 = VERBOO_ROUTER_URL;
508263
+ const isLocal2 = isLocalProviderUrl(baseUrl2);
508264
+ return { name: "Verboo", model: resolvedModel2, baseUrl: baseUrl2, isLocal: isLocal2 };
508265
+ }
508266
+ const useGemini = process.env.CLAUDE_CODE_USE_GEMINI === "1" || process.env.CLAUDE_CODE_USE_GEMINI === "true";
508267
+ const useGithub = process.env.CLAUDE_CODE_USE_GITHUB === "1" || process.env.CLAUDE_CODE_USE_GITHUB === "true";
508268
+ const useOpenAI = process.env.CLAUDE_CODE_USE_OPENAI === "1" || process.env.CLAUDE_CODE_USE_OPENAI === "true";
508269
+ const useMistral = process.env.CLAUDE_CODE_USE_MISTRAL === "1" || process.env.CLAUDE_CODE_USE_MISTRAL === "true";
508270
+ if (useGemini) {
508271
+ const model = modelOverride || process.env.GEMINI_MODEL || "gemini-2.0-flash";
508272
+ const baseUrl2 = process.env.GEMINI_BASE_URL || "https://generativelanguage.googleapis.com/v1beta/openai";
508273
+ return { name: "Google Gemini", model, baseUrl: baseUrl2, isLocal: false };
508274
+ }
508275
+ if (useMistral) {
508276
+ const model = modelOverride || process.env.MISTRAL_MODEL || "devstral-latest";
508277
+ const baseUrl2 = process.env.MISTRAL_BASE_URL || "https://api.mistral.ai/v1";
508278
+ return { name: "Mistral", model, baseUrl: baseUrl2, isLocal: false };
508279
+ }
508280
+ if (useGithub) {
508281
+ const model = modelOverride || process.env.OPENAI_MODEL || "github:copilot";
508282
+ const baseUrl2 = process.env.OPENAI_BASE_URL || "https://api.githubcopilot.com";
508283
+ return { name: "GitHub Copilot", model, baseUrl: baseUrl2, isLocal: false };
508284
+ }
508285
+ if (useOpenAI) {
508286
+ const rawModel = modelOverride || process.env.OPENAI_MODEL || "gpt-4o";
508287
+ const resolvedRequest = resolveProviderRequest({
508288
+ model: rawModel,
508289
+ baseUrl: process.env.OPENAI_BASE_URL
508290
+ });
508291
+ const baseUrl2 = resolvedRequest.baseUrl;
508292
+ const isLocal2 = isLocalProviderUrl(baseUrl2);
508293
+ let name = "OpenAI";
508294
+ if (process.env.NVIDIA_NIM)
508295
+ name = "NVIDIA NIM";
508296
+ else if (process.env.MINIMAX_API_KEY)
508297
+ name = "MiniMax";
508298
+ else if (resolvedRequest.transport === "codex_responses" || baseUrl2.includes("chatgpt.com/backend-api/codex"))
508299
+ name = "Codex";
508300
+ else if (/openrouter/i.test(baseUrl2))
508301
+ name = "OpenRouter";
508302
+ else if (/together/i.test(baseUrl2))
508303
+ name = "Together AI";
508304
+ else if (/groq/i.test(baseUrl2))
508305
+ name = "Groq";
508306
+ else if (/azure/i.test(baseUrl2))
508307
+ name = "Azure OpenAI";
508308
+ else if (/nvidia/i.test(baseUrl2))
508309
+ name = "NVIDIA NIM";
508310
+ else if (/minimax/i.test(baseUrl2))
508311
+ name = "MiniMax";
508312
+ else if (/api\.kimi\.com/i.test(baseUrl2))
508313
+ name = "Moonshot AI - Kimi Code";
508314
+ else if (/moonshot/i.test(baseUrl2))
508315
+ name = "Moonshot AI - API";
508316
+ else if (/deepseek/i.test(baseUrl2))
508317
+ name = "DeepSeek";
508318
+ else if (/x\.ai/i.test(baseUrl2))
508319
+ name = "xAI";
508320
+ else if (isZaiBaseUrl(baseUrl2))
508321
+ name = "Z.AI - GLM";
508322
+ else if (/mistral/i.test(baseUrl2))
508323
+ name = "Mistral";
508324
+ else if (/nvidia/i.test(rawModel))
508325
+ name = "NVIDIA NIM";
508326
+ else if (/minimax/i.test(rawModel))
508327
+ name = "MiniMax";
508328
+ else if (/\bkimi-for-coding\b/i.test(rawModel))
508329
+ name = "Moonshot AI - Kimi Code";
508330
+ else if (/\bkimi-k/i.test(rawModel) || /moonshot/i.test(rawModel))
508331
+ name = "Moonshot AI - API";
508332
+ else if (/deepseek/i.test(rawModel))
508333
+ name = "DeepSeek";
508334
+ else if (/grok/i.test(rawModel))
508335
+ name = "xAI";
508336
+ else if (containsExactZaiGlmModelId(rawModel))
508337
+ name = "Z.AI - GLM";
508338
+ else if (/mistral/i.test(rawModel))
508339
+ name = "Mistral";
508340
+ else if (/llama/i.test(rawModel))
508341
+ name = "Meta Llama";
508342
+ else if (/bankr/i.test(baseUrl2))
508343
+ name = "Bankr";
508344
+ else if (/bankr/i.test(rawModel))
508345
+ name = "Bankr";
508346
+ else if (isLocal2)
508347
+ name = getLocalOpenAICompatibleProviderLabel(baseUrl2);
508348
+ let displayModel = resolvedRequest.resolvedModel;
508349
+ if (resolvedRequest.reasoning?.effort) {
508350
+ displayModel = `${displayModel} (${resolvedRequest.reasoning.effort})`;
508351
+ }
508352
+ return { name, model: displayModel, baseUrl: baseUrl2, isLocal: isLocal2 };
508353
+ }
508354
+ const modelSetting = modelOverride || getDefaultVerbooModel();
508355
+ const resolvedModel = parseUserSpecifiedModel(modelSetting);
508356
+ const baseUrl = VERBOO_ROUTER_URL;
508357
+ const isLocal = isLocalProviderUrl(baseUrl);
508358
+ return { name: "Verboo", model: resolvedModel, baseUrl, isLocal };
508359
+ }
508360
+ function printStartupScreen(modelOverride) {
508361
+ if (process.env.CI || !process.stdout.isTTY)
508362
+ return;
508363
+ const p = detectProvider(modelOverride);
508364
+ const out = [];
508365
+ const home = process.env.HOME || process.env.USERPROFILE || "";
508366
+ const cwd2 = process.cwd();
508367
+ const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
508368
+ const version3 = "0.7.21";
508369
+ const bold2 = `${ESC3}1m`;
508370
+ const PURPLE = rgb3(...ACCENT);
508371
+ const SOFT = rgb3(...CREAM);
508372
+ const DIMP = `${DIM2}${rgb3(...DIMCOL)}`;
508373
+ const STATUS_C = p.isLocal ? rgb3(130, 200, 140) : PURPLE;
508374
+ const statusLabel = p.isLocal ? "local" : "cloud";
508375
+ const ep = p.baseUrl.length > 48 ? p.baseUrl.slice(0, 45) + "..." : p.baseUrl;
508376
+ out.push("");
508377
+ out.push(` ${PURPLE}\uD83D\uDC7B${RESET2} ${bold2}${SOFT}Verboo Code${RESET2} ${DIMP}v${version3}${RESET2}`);
508378
+ out.push(` ${DIMP}Tokens ilimitados · Privacidade · Velocidade${RESET2}`);
508379
+ out.push(` ${DIMP}${p.name} · ${p.model}${RESET2}`);
508380
+ out.push(` ${DIMP}${ep}${RESET2}`);
508381
+ out.push(` ${DIMP}${displayCwd}${RESET2}`);
508382
+ out.push("");
508383
+ out.push(` ${STATUS_C}●${RESET2} ${DIMP}${statusLabel}${RESET2} ${DIMP}Ready — type ${RESET2}${PURPLE}/help${RESET2}${DIMP} to begin${RESET2}`);
508384
+ out.push("");
508385
+ process.stdout.write(out.join(`
508386
+ `) + `
508387
+ `);
508388
+ }
508389
+ var ESC3 = "\x1B[", RESET2, DIM2, rgb3 = (r, g, b) => `${ESC3}38;2;${r};${g};${b}m`, ACCENT, CREAM, DIMCOL;
508390
+ var init_StartupScreen = __esm(() => {
508391
+ init_oauth();
508392
+ init_providerConfig();
508393
+ init_providerDiscovery();
508394
+ init_model();
508395
+ init_zaiProvider();
508396
+ RESET2 = `${ESC3}0m`;
508397
+ DIM2 = `${ESC3}2m`;
508398
+ ACCENT = [173, 52, 254];
508399
+ CREAM = [220, 200, 240];
508400
+ DIMCOL = [120, 100, 140];
508401
+ });
508402
+
508407
508403
  // node_modules/commander/lib/error.js
508408
508404
  var require_error = __commonJS((exports) => {
508409
508405
  class CommanderError extends Error {
@@ -561366,7 +561362,7 @@ function WelcomeV2() {
561366
561362
  dimColor: true,
561367
561363
  children: [
561368
561364
  "v",
561369
- "0.7.19",
561365
+ "0.7.21",
561370
561366
  " "
561371
561367
  ]
561372
561368
  }, undefined, true, undefined, this)
@@ -561553,7 +561549,7 @@ function WelcomeV2() {
561553
561549
  dimColor: true,
561554
561550
  children: [
561555
561551
  "v",
561556
- "0.7.19",
561552
+ "0.7.21",
561557
561553
  " "
561558
561554
  ]
561559
561555
  }, undefined, true, undefined, this)
@@ -561769,7 +561765,7 @@ function AppleTerminalWelcomeV2(t0) {
561769
561765
  dimColor: true,
561770
561766
  children: [
561771
561767
  "v",
561772
- "0.7.19",
561768
+ "0.7.21",
561773
561769
  " "
561774
561770
  ]
561775
561771
  }, undefined, true, undefined, this);
@@ -561978,7 +561974,7 @@ function AppleTerminalWelcomeV2(t0) {
561978
561974
  dimColor: true,
561979
561975
  children: [
561980
561976
  "v",
561981
- "0.7.19",
561977
+ "0.7.21",
561982
561978
  " "
561983
561979
  ]
561984
561980
  }, undefined, true, undefined, this);
@@ -580109,7 +580105,7 @@ __export(exports_update, {
580109
580105
  async function update() {
580110
580106
  if (getAPIProvider() !== "firstParty") {
580111
580107
  writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
580112
- `) + `Current version: ${"0.7.19"}
580108
+ `) + `Current version: ${"0.7.21"}
580113
580109
 
580114
580110
  ` + `To update, reinstall from npm:
580115
580111
  ` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
@@ -580120,7 +580116,7 @@ async function update() {
580120
580116
  await gracefulShutdown(0);
580121
580117
  }
580122
580118
  logEvent("tengu_update_check", {});
580123
- writeToStdout(`Current version: ${"0.7.19"}
580119
+ writeToStdout(`Current version: ${"0.7.21"}
580124
580120
  `);
580125
580121
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
580126
580122
  writeToStdout(`Checking for updates to ${channel} version...
@@ -580205,8 +580201,8 @@ async function update() {
580205
580201
  writeToStdout(`Claude is managed by Homebrew.
580206
580202
  `);
580207
580203
  const latest = await getLatestVersion(channel);
580208
- if (latest && !gte("0.7.19", latest)) {
580209
- writeToStdout(`Update available: ${"0.7.19"} → ${latest}
580204
+ if (latest && !gte("0.7.21", latest)) {
580205
+ writeToStdout(`Update available: ${"0.7.21"} → ${latest}
580210
580206
  `);
580211
580207
  writeToStdout(`
580212
580208
  `);
@@ -580222,8 +580218,8 @@ async function update() {
580222
580218
  writeToStdout(`Claude is managed by winget.
580223
580219
  `);
580224
580220
  const latest = await getLatestVersion(channel);
580225
- if (latest && !gte("0.7.19", latest)) {
580226
- writeToStdout(`Update available: ${"0.7.19"} → ${latest}
580221
+ if (latest && !gte("0.7.21", latest)) {
580222
+ writeToStdout(`Update available: ${"0.7.21"} → ${latest}
580227
580223
  `);
580228
580224
  writeToStdout(`
580229
580225
  `);
@@ -580239,8 +580235,8 @@ async function update() {
580239
580235
  writeToStdout(`Claude is managed by apk.
580240
580236
  `);
580241
580237
  const latest = await getLatestVersion(channel);
580242
- if (latest && !gte("0.7.19", latest)) {
580243
- writeToStdout(`Update available: ${"0.7.19"} → ${latest}
580238
+ if (latest && !gte("0.7.21", latest)) {
580239
+ writeToStdout(`Update available: ${"0.7.21"} → ${latest}
580244
580240
  `);
580245
580241
  writeToStdout(`
580246
580242
  `);
@@ -580305,11 +580301,11 @@ async function update() {
580305
580301
  `);
580306
580302
  await gracefulShutdown(1);
580307
580303
  }
580308
- if (result.latestVersion === "0.7.19") {
580309
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.19"})`) + `
580304
+ if (result.latestVersion === "0.7.21") {
580305
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.21"})`) + `
580310
580306
  `);
580311
580307
  } else {
580312
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.19"} to version ${result.latestVersion}`) + `
580308
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.21"} to version ${result.latestVersion}`) + `
580313
580309
  `);
580314
580310
  await regenerateCompletionCache();
580315
580311
  }
@@ -580369,12 +580365,12 @@ async function update() {
580369
580365
  `);
580370
580366
  await gracefulShutdown(1);
580371
580367
  }
580372
- if (latestVersion === "0.7.19") {
580373
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.19"})`) + `
580368
+ if (latestVersion === "0.7.21") {
580369
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.21"})`) + `
580374
580370
  `);
580375
580371
  await gracefulShutdown(0);
580376
580372
  }
580377
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.19"})
580373
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.21"})
580378
580374
  `);
580379
580375
  writeToStdout(`Installing update...
580380
580376
  `);
@@ -580419,7 +580415,7 @@ async function update() {
580419
580415
  logForDebugging2(`update: Installation status: ${status2}`);
580420
580416
  switch (status2) {
580421
580417
  case "success":
580422
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.19"} to version ${latestVersion}`) + `
580418
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.21"} to version ${latestVersion}`) + `
580423
580419
  `);
580424
580420
  await regenerateCompletionCache();
580425
580421
  break;
@@ -582472,7 +582468,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
582472
582468
  pendingHookMessages
582473
582469
  }, renderAndRun);
582474
582470
  }
582475
- }).version(`0.7.19 (${cliDesc})`, "-v, --version", "Output the version number");
582471
+ }).version(`0.7.21 (${cliDesc})`, "-v, --version", "Output the version number");
582476
582472
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
582477
582473
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
582478
582474
  if (canUserConfigureAdvisor()) {
@@ -583015,6 +583011,7 @@ var init_main3 = __esm(() => {
583015
583011
  init_providerProfile();
583016
583012
  init_providerValidation();
583017
583013
  init_providerStartupOverrides();
583014
+ var IS_VERBOO_CLI = true;
583018
583015
  if (typeof globalThis.File === "undefined") {
583019
583016
  try {
583020
583017
  const { File: NodeFile } = __require("node:buffer");
@@ -583041,10 +583038,10 @@ if (false) {}
583041
583038
  async function main2() {
583042
583039
  const args = process.argv.slice(2);
583043
583040
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
583044
- console.log(`${"0.7.19"} (Verboo Code)`);
583041
+ console.log(`${"0.7.21"} (Verboo Code)`);
583045
583042
  return;
583046
583043
  }
583047
- if (!isVerbooMode2() && args.includes("--provider")) {
583044
+ if (!IS_VERBOO_CLI && args.includes("--provider")) {
583048
583045
  const { applyProviderFlagFromArgs: applyProviderFlagFromArgs2 } = await Promise.resolve().then(() => (init_providerFlag(), exports_providerFlag));
583049
583046
  const result = applyProviderFlagFromArgs2(args);
583050
583047
  if (result?.error) {
@@ -583060,10 +583057,10 @@ async function main2() {
583060
583057
  const { applySafeConfigEnvironmentVariables: applySafeConfigEnvironmentVariables2 } = await Promise.resolve().then(() => (init_managedEnv(), exports_managedEnv));
583061
583058
  applySafeConfigEnvironmentVariables2();
583062
583059
  }
583063
- if (isVerbooMode2()) {
583060
+ if (IS_VERBOO_CLI) {
583064
583061
  clearStartupProviderEnvFromProcessEnv();
583065
583062
  }
583066
- if (!isVerbooMode2()) {
583063
+ if (!IS_VERBOO_CLI) {
583067
583064
  const startupEnv = await buildStartupEnvFromProfile({
583068
583065
  processEnv: process.env
583069
583066
  });
@@ -583081,16 +583078,12 @@ async function main2() {
583081
583078
  hydrateGithubModelsTokenFromSecureStorage: hydrateGithubModelsTokenFromSecureStorage2,
583082
583079
  refreshGithubModelsTokenIfNeeded: refreshGithubModelsTokenIfNeeded2
583083
583080
  } = await Promise.resolve().then(() => (init_githubModelsCredentials(), exports_githubModelsCredentials));
583084
- if (!isVerbooMode2()) {
583081
+ if (!IS_VERBOO_CLI) {
583085
583082
  await refreshGithubModelsTokenIfNeeded2();
583086
583083
  hydrateGithubModelsTokenFromSecureStorage2();
583087
583084
  }
583088
583085
  }
583089
583086
  await validateProviderEnvForStartupOrExit();
583090
- const { eagerParseCliFlag: eagerParseCliFlag2 } = await Promise.resolve().then(() => exports_cliArgs);
583091
- const earlyModelFlag = eagerParseCliFlag2("--model");
583092
- const { printStartupScreen: printStartupScreen2 } = await Promise.resolve().then(() => (init_StartupScreen(), exports_StartupScreen));
583093
- printStartupScreen2(earlyModelFlag);
583094
583087
  const {
583095
583088
  profileCheckpoint: profileCheckpoint2
583096
583089
  } = await Promise.resolve().then(() => (init_startupProfiler(), exports_startupProfiler));
@@ -583195,6 +583188,12 @@ async function main2() {
583195
583188
  process.exit(1);
583196
583189
  }
583197
583190
  }
583191
+ if (!skipsAuth) {
583192
+ const { eagerParseCliFlag: eagerParseCliFlag2 } = await Promise.resolve().then(() => exports_cliArgs);
583193
+ const earlyModelFlag = eagerParseCliFlag2("--model");
583194
+ const { printStartupScreen: printStartupScreen2 } = await Promise.resolve().then(() => (init_StartupScreen(), exports_StartupScreen));
583195
+ printStartupScreen2(earlyModelFlag);
583196
+ }
583198
583197
  const {
583199
583198
  main: cliMain
583200
583199
  } = await Promise.resolve().then(() => (init_main3(), exports_main));
@@ -583204,4 +583203,4 @@ async function main2() {
583204
583203
  }
583205
583204
  main2();
583206
583205
 
583207
- //# debugId=8F3A0314593DACB064756E2164756E21
583206
+ //# debugId=1470388A0DD680A164756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verboo/code",
3
- "version": "0.7.19",
3
+ "version": "0.7.21",
4
4
  "description": "Verboo Code — coding agent for the Verboo platform",
5
5
  "type": "module",
6
6
  "bin": {