@verboo/code 0.7.17 → 0.7.19

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 +475 -287
  2. package/package.json +5 -1
package/dist/cli.mjs CHANGED
@@ -31540,7 +31540,7 @@ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
31540
31540
  }
31541
31541
  var init_buildFullPath = () => {};
31542
31542
 
31543
- // node_modules/proxy-from-env/index.js
31543
+ // node_modules/axios/node_modules/proxy-from-env/index.js
31544
31544
  function parseUrl(urlString) {
31545
31545
  try {
31546
31546
  return new URL(urlString);
@@ -36291,158 +36291,6 @@ var init_providerProfile = __esm(() => {
36291
36291
  ];
36292
36292
  });
36293
36293
 
36294
- // src/utils/providerFlag.ts
36295
- var exports_providerFlag = {};
36296
- __export(exports_providerFlag, {
36297
- parseProviderFlag: () => parseProviderFlag,
36298
- applyProviderFlagFromArgs: () => applyProviderFlagFromArgs,
36299
- applyProviderFlag: () => applyProviderFlag,
36300
- VALID_PROVIDERS: () => VALID_PROVIDERS
36301
- });
36302
- function parseProviderFlag(args) {
36303
- const idx = args.indexOf("--provider");
36304
- if (idx === -1)
36305
- return null;
36306
- const value = args[idx + 1];
36307
- if (!value || value.startsWith("--"))
36308
- return null;
36309
- return value;
36310
- }
36311
- function applyProviderFlagFromArgs(args) {
36312
- const provider = parseProviderFlag(args);
36313
- if (!provider)
36314
- return;
36315
- return applyProviderFlag(provider, args);
36316
- }
36317
- function parseModelFlag(args) {
36318
- const idx = args.indexOf("--model");
36319
- if (idx === -1)
36320
- return null;
36321
- const value = args[idx + 1];
36322
- if (!value || value.startsWith("--"))
36323
- return null;
36324
- return value;
36325
- }
36326
- function applyProviderFlag(provider, args) {
36327
- return {
36328
- error: "Verboo Code usa apenas o provider nativo Verboo."
36329
- };
36330
- if (!VALID_PROVIDERS.includes(provider)) {
36331
- return {
36332
- error: `Unknown provider "${provider}". Valid providers: ${VALID_PROVIDERS.join(", ")}`
36333
- };
36334
- }
36335
- delete process.env.CLAUDE_CODE_USE_OPENAI;
36336
- delete process.env.CLAUDE_CODE_USE_GEMINI;
36337
- delete process.env.CLAUDE_CODE_USE_MISTRAL;
36338
- delete process.env.CLAUDE_CODE_USE_GITHUB;
36339
- delete process.env.CLAUDE_CODE_USE_BEDROCK;
36340
- delete process.env.CLAUDE_CODE_USE_VERTEX;
36341
- const model = parseModelFlag(args);
36342
- switch (provider) {
36343
- case "anthropic":
36344
- break;
36345
- case "openai":
36346
- process.env.CLAUDE_CODE_USE_OPENAI = "1";
36347
- if (model)
36348
- process.env.OPENAI_MODEL = model;
36349
- break;
36350
- case "gemini":
36351
- process.env.CLAUDE_CODE_USE_GEMINI = "1";
36352
- if (model)
36353
- process.env.GEMINI_MODEL = model;
36354
- break;
36355
- case "mistral":
36356
- process.env.CLAUDE_CODE_USE_MISTRAL = "1";
36357
- if (model)
36358
- process.env.MISTRAL_MODEL = model;
36359
- break;
36360
- case "github":
36361
- process.env.CLAUDE_CODE_USE_GITHUB = "1";
36362
- if (model)
36363
- process.env.OPENAI_MODEL = model;
36364
- break;
36365
- case "bedrock":
36366
- process.env.CLAUDE_CODE_USE_BEDROCK = "1";
36367
- break;
36368
- case "vertex":
36369
- process.env.CLAUDE_CODE_USE_VERTEX = "1";
36370
- break;
36371
- case "ollama":
36372
- process.env.CLAUDE_CODE_USE_OPENAI = "1";
36373
- if (!process.env.OPENAI_BASE_URL) {
36374
- process.env.OPENAI_BASE_URL = "http://localhost:11434/v1";
36375
- }
36376
- if (!process.env.OPENAI_API_KEY) {
36377
- process.env.OPENAI_API_KEY = "ollama";
36378
- }
36379
- if (model)
36380
- process.env.OPENAI_MODEL = model;
36381
- break;
36382
- case "nvidia-nim":
36383
- process.env.CLAUDE_CODE_USE_OPENAI = "1";
36384
- process.env.OPENAI_BASE_URL ??= "https://integrate.api.nvidia.com/v1";
36385
- process.env.NVIDIA_NIM = "1";
36386
- process.env.OPENAI_MODEL ??= "nvidia/llama-3.1-nemotron-70b-instruct";
36387
- if (model)
36388
- process.env.OPENAI_MODEL = model;
36389
- break;
36390
- case "minimax":
36391
- process.env.CLAUDE_CODE_USE_OPENAI = "1";
36392
- process.env.OPENAI_BASE_URL ??= "https://api.minimax.io/v1";
36393
- process.env.OPENAI_MODEL ??= "MiniMax-M2.5";
36394
- if (model)
36395
- process.env.OPENAI_MODEL = model;
36396
- break;
36397
- case "bankr":
36398
- process.env.CLAUDE_CODE_USE_OPENAI = "1";
36399
- process.env.OPENAI_BASE_URL ??= "https://llm.bankr.bot/v1";
36400
- process.env.OPENAI_MODEL ??= "claude-opus-4.6";
36401
- if (model)
36402
- process.env.OPENAI_MODEL = model;
36403
- if (process.env.BNKR_API_KEY && !process.env.OPENAI_API_KEY) {
36404
- process.env.OPENAI_API_KEY = process.env.BNKR_API_KEY;
36405
- }
36406
- break;
36407
- case "zai":
36408
- process.env.CLAUDE_CODE_USE_OPENAI = "1";
36409
- process.env.OPENAI_BASE_URL ??= "https://api.z.ai/api/coding/paas/v4";
36410
- process.env.OPENAI_MODEL ??= "GLM-5.1";
36411
- if (model)
36412
- process.env.OPENAI_MODEL = model;
36413
- break;
36414
- case "xai":
36415
- process.env.CLAUDE_CODE_USE_OPENAI = "1";
36416
- process.env.OPENAI_BASE_URL ??= "https://api.x.ai/v1";
36417
- process.env.OPENAI_MODEL ??= "grok-4";
36418
- if (model)
36419
- process.env.OPENAI_MODEL = model;
36420
- if (process.env.XAI_API_KEY && !process.env.OPENAI_API_KEY) {
36421
- process.env.OPENAI_API_KEY = process.env.XAI_API_KEY;
36422
- }
36423
- break;
36424
- }
36425
- return {};
36426
- }
36427
- var VALID_PROVIDERS;
36428
- var init_providerFlag = __esm(() => {
36429
- VALID_PROVIDERS = [
36430
- "anthropic",
36431
- "bankr",
36432
- "zai",
36433
- "xai",
36434
- "openai",
36435
- "gemini",
36436
- "mistral",
36437
- "github",
36438
- "bedrock",
36439
- "vertex",
36440
- "ollama",
36441
- "nvidia-nim",
36442
- "minimax"
36443
- ];
36444
- });
36445
-
36446
36294
  // node_modules/lodash-es/_baseSet.js
36447
36295
  function baseSet(object, path9, value, customizer) {
36448
36296
  if (!isObject_default(object)) {
@@ -58628,6 +58476,239 @@ var init_config = __esm(() => {
58628
58476
  _wouldLoseAuthStateForTesting = wouldLoseAuthState;
58629
58477
  });
58630
58478
 
58479
+ // src/utils/providerStartupOverrides.ts
58480
+ function clearStartupProviderOverrides(options) {
58481
+ const updateUserSettings = options?.updateUserSettings ?? updateSettingsForSource;
58482
+ const saveConfig2 = options?.saveConfig ?? saveGlobalConfig;
58483
+ const envPatch = Object.fromEntries(STARTUP_PROVIDER_OVERRIDE_ENV_KEYS.map((key) => [
58484
+ key,
58485
+ DELETE_SETTINGS_ENV_VALUE
58486
+ ]));
58487
+ const { error: error41 } = updateUserSettings("userSettings", { env: envPatch });
58488
+ let globalConfigError = null;
58489
+ try {
58490
+ saveConfig2((current) => {
58491
+ const currentEnv = current.env ?? {};
58492
+ let changed = false;
58493
+ const nextEnv = { ...currentEnv };
58494
+ for (const key of STARTUP_PROVIDER_OVERRIDE_ENV_KEYS) {
58495
+ if (key in nextEnv) {
58496
+ delete nextEnv[key];
58497
+ changed = true;
58498
+ }
58499
+ }
58500
+ return changed ? { ...current, env: nextEnv } : current;
58501
+ });
58502
+ } catch (configError) {
58503
+ globalConfigError = configError instanceof Error ? configError.message : String(configError);
58504
+ }
58505
+ return error41?.message ?? globalConfigError;
58506
+ }
58507
+ function clearStartupProviderEnvFromProcessEnv(processEnv = process.env) {
58508
+ for (const key of STARTUP_PROVIDER_OVERRIDE_ENV_KEYS) {
58509
+ delete processEnv[key];
58510
+ }
58511
+ }
58512
+ var STARTUP_PROVIDER_OVERRIDE_ENV_KEYS, DELETE_SETTINGS_ENV_VALUE = undefined;
58513
+ var init_providerStartupOverrides = __esm(() => {
58514
+ init_config();
58515
+ init_settings2();
58516
+ STARTUP_PROVIDER_OVERRIDE_ENV_KEYS = [
58517
+ "CLAUDE_CODE_USE_OPENAI",
58518
+ "CLAUDE_CODE_USE_GEMINI",
58519
+ "CLAUDE_CODE_USE_MISTRAL",
58520
+ "CLAUDE_CODE_USE_GITHUB",
58521
+ "CLAUDE_CODE_USE_BEDROCK",
58522
+ "CLAUDE_CODE_USE_VERTEX",
58523
+ "CLAUDE_CODE_USE_FOUNDRY",
58524
+ "OPENAI_BASE_URL",
58525
+ "OPENAI_API_BASE",
58526
+ "OPENAI_MODEL",
58527
+ "OPENAI_API_KEY",
58528
+ "OPENAI_ORG",
58529
+ "OPENAI_PROJECT",
58530
+ "OPENAI_ORGANIZATION",
58531
+ "ANTHROPIC_BASE_URL",
58532
+ "ANTHROPIC_MODEL",
58533
+ "ANTHROPIC_API_KEY",
58534
+ "CLAUDE_MODEL",
58535
+ "GEMINI_API_KEY",
58536
+ "GOOGLE_API_KEY",
58537
+ "GEMINI_BASE_URL",
58538
+ "GEMINI_MODEL",
58539
+ "GEMINI_ACCESS_TOKEN",
58540
+ "GEMINI_AUTH_MODE",
58541
+ "MISTRAL_BASE_URL",
58542
+ "MISTRAL_MODEL",
58543
+ "MISTRAL_API_KEY",
58544
+ "CODEX_API_KEY",
58545
+ "CODEX_CREDENTIAL_SOURCE",
58546
+ "CHATGPT_ACCOUNT_ID",
58547
+ "CODEX_ACCOUNT_ID",
58548
+ "MINIMAX_API_KEY",
58549
+ "MINIMAX_BASE_URL",
58550
+ "MINIMAX_MODEL",
58551
+ "NVIDIA_API_KEY",
58552
+ "NVIDIA_NIM",
58553
+ "BANKR_BASE_URL",
58554
+ "BANKR_MODEL",
58555
+ "BNKR_API_KEY",
58556
+ "XAI_API_KEY"
58557
+ ];
58558
+ });
58559
+
58560
+ // src/utils/providerFlag.ts
58561
+ var exports_providerFlag = {};
58562
+ __export(exports_providerFlag, {
58563
+ parseProviderFlag: () => parseProviderFlag,
58564
+ applyProviderFlagFromArgs: () => applyProviderFlagFromArgs,
58565
+ applyProviderFlag: () => applyProviderFlag,
58566
+ VALID_PROVIDERS: () => VALID_PROVIDERS
58567
+ });
58568
+ function parseProviderFlag(args) {
58569
+ const idx = args.indexOf("--provider");
58570
+ if (idx === -1)
58571
+ return null;
58572
+ const value = args[idx + 1];
58573
+ if (!value || value.startsWith("--"))
58574
+ return null;
58575
+ return value;
58576
+ }
58577
+ function applyProviderFlagFromArgs(args) {
58578
+ const provider = parseProviderFlag(args);
58579
+ if (!provider)
58580
+ return;
58581
+ return applyProviderFlag(provider, args);
58582
+ }
58583
+ function parseModelFlag(args) {
58584
+ const idx = args.indexOf("--model");
58585
+ if (idx === -1)
58586
+ return null;
58587
+ const value = args[idx + 1];
58588
+ if (!value || value.startsWith("--"))
58589
+ return null;
58590
+ return value;
58591
+ }
58592
+ function applyProviderFlag(provider, args) {
58593
+ return {
58594
+ error: "Verboo Code usa apenas o provider nativo Verboo."
58595
+ };
58596
+ if (!VALID_PROVIDERS.includes(provider)) {
58597
+ return {
58598
+ error: `Unknown provider "${provider}". Valid providers: ${VALID_PROVIDERS.join(", ")}`
58599
+ };
58600
+ }
58601
+ delete process.env.CLAUDE_CODE_USE_OPENAI;
58602
+ delete process.env.CLAUDE_CODE_USE_GEMINI;
58603
+ delete process.env.CLAUDE_CODE_USE_MISTRAL;
58604
+ delete process.env.CLAUDE_CODE_USE_GITHUB;
58605
+ delete process.env.CLAUDE_CODE_USE_BEDROCK;
58606
+ delete process.env.CLAUDE_CODE_USE_VERTEX;
58607
+ const model = parseModelFlag(args);
58608
+ switch (provider) {
58609
+ case "anthropic":
58610
+ break;
58611
+ case "openai":
58612
+ process.env.CLAUDE_CODE_USE_OPENAI = "1";
58613
+ if (model)
58614
+ process.env.OPENAI_MODEL = model;
58615
+ break;
58616
+ case "gemini":
58617
+ process.env.CLAUDE_CODE_USE_GEMINI = "1";
58618
+ if (model)
58619
+ process.env.GEMINI_MODEL = model;
58620
+ break;
58621
+ case "mistral":
58622
+ process.env.CLAUDE_CODE_USE_MISTRAL = "1";
58623
+ if (model)
58624
+ process.env.MISTRAL_MODEL = model;
58625
+ break;
58626
+ case "github":
58627
+ process.env.CLAUDE_CODE_USE_GITHUB = "1";
58628
+ if (model)
58629
+ process.env.OPENAI_MODEL = model;
58630
+ break;
58631
+ case "bedrock":
58632
+ process.env.CLAUDE_CODE_USE_BEDROCK = "1";
58633
+ break;
58634
+ case "vertex":
58635
+ process.env.CLAUDE_CODE_USE_VERTEX = "1";
58636
+ break;
58637
+ case "ollama":
58638
+ process.env.CLAUDE_CODE_USE_OPENAI = "1";
58639
+ if (!process.env.OPENAI_BASE_URL) {
58640
+ process.env.OPENAI_BASE_URL = "http://localhost:11434/v1";
58641
+ }
58642
+ if (!process.env.OPENAI_API_KEY) {
58643
+ process.env.OPENAI_API_KEY = "ollama";
58644
+ }
58645
+ if (model)
58646
+ process.env.OPENAI_MODEL = model;
58647
+ break;
58648
+ case "nvidia-nim":
58649
+ process.env.CLAUDE_CODE_USE_OPENAI = "1";
58650
+ process.env.OPENAI_BASE_URL ??= "https://integrate.api.nvidia.com/v1";
58651
+ process.env.NVIDIA_NIM = "1";
58652
+ process.env.OPENAI_MODEL ??= "nvidia/llama-3.1-nemotron-70b-instruct";
58653
+ if (model)
58654
+ process.env.OPENAI_MODEL = model;
58655
+ break;
58656
+ case "minimax":
58657
+ process.env.CLAUDE_CODE_USE_OPENAI = "1";
58658
+ process.env.OPENAI_BASE_URL ??= "https://api.minimax.io/v1";
58659
+ process.env.OPENAI_MODEL ??= "MiniMax-M2.5";
58660
+ if (model)
58661
+ process.env.OPENAI_MODEL = model;
58662
+ break;
58663
+ case "bankr":
58664
+ process.env.CLAUDE_CODE_USE_OPENAI = "1";
58665
+ process.env.OPENAI_BASE_URL ??= "https://llm.bankr.bot/v1";
58666
+ process.env.OPENAI_MODEL ??= "claude-opus-4.6";
58667
+ if (model)
58668
+ process.env.OPENAI_MODEL = model;
58669
+ if (process.env.BNKR_API_KEY && !process.env.OPENAI_API_KEY) {
58670
+ process.env.OPENAI_API_KEY = process.env.BNKR_API_KEY;
58671
+ }
58672
+ break;
58673
+ case "zai":
58674
+ process.env.CLAUDE_CODE_USE_OPENAI = "1";
58675
+ process.env.OPENAI_BASE_URL ??= "https://api.z.ai/api/coding/paas/v4";
58676
+ process.env.OPENAI_MODEL ??= "GLM-5.1";
58677
+ if (model)
58678
+ process.env.OPENAI_MODEL = model;
58679
+ break;
58680
+ case "xai":
58681
+ process.env.CLAUDE_CODE_USE_OPENAI = "1";
58682
+ process.env.OPENAI_BASE_URL ??= "https://api.x.ai/v1";
58683
+ process.env.OPENAI_MODEL ??= "grok-4";
58684
+ if (model)
58685
+ process.env.OPENAI_MODEL = model;
58686
+ if (process.env.XAI_API_KEY && !process.env.OPENAI_API_KEY) {
58687
+ process.env.OPENAI_API_KEY = process.env.XAI_API_KEY;
58688
+ }
58689
+ break;
58690
+ }
58691
+ return {};
58692
+ }
58693
+ var VALID_PROVIDERS;
58694
+ var init_providerFlag = __esm(() => {
58695
+ VALID_PROVIDERS = [
58696
+ "anthropic",
58697
+ "bankr",
58698
+ "zai",
58699
+ "xai",
58700
+ "openai",
58701
+ "gemini",
58702
+ "mistral",
58703
+ "github",
58704
+ "bedrock",
58705
+ "vertex",
58706
+ "ollama",
58707
+ "nvidia-nim",
58708
+ "minimax"
58709
+ ];
58710
+ });
58711
+
58631
58712
  // node_modules/chalk/source/vendor/ansi-styles/index.js
58632
58713
  function assembleStyles() {
58633
58714
  const codes = new Map;
@@ -111230,6 +111311,7 @@ __export(exports_model, {
111230
111311
  isOpus1mMergeEnabled: () => isOpus1mMergeEnabled,
111231
111312
  isNonCustomOpusModel: () => isNonCustomOpusModel,
111232
111313
  isLegacyModelRemapEnabled: () => isLegacyModelRemapEnabled,
111314
+ isClaudeModelLike: () => isClaudeModelLike,
111233
111315
  getUserSpecifiedModelSetting: () => getUserSpecifiedModelSetting,
111234
111316
  getSmallFastModel: () => getSmallFastModel,
111235
111317
  getRuntimeMainLoopModel: () => getRuntimeMainLoopModel,
@@ -111238,6 +111320,7 @@ __export(exports_model, {
111238
111320
  getOpus46PricingSuffix: () => getOpus46PricingSuffix,
111239
111321
  getMarketingNameForModel: () => getMarketingNameForModel,
111240
111322
  getMainLoopModel: () => getMainLoopModel,
111323
+ getDefaultVerbooModel: () => getDefaultVerbooModel,
111241
111324
  getDefaultSonnetModel: () => getDefaultSonnetModel,
111242
111325
  getDefaultOpusModel: () => getDefaultOpusModel,
111243
111326
  getDefaultMainLoopModelSetting: () => getDefaultMainLoopModelSetting,
@@ -111254,15 +111337,47 @@ function normalizeModelSetting(value) {
111254
111337
  const trimmed = value.trim();
111255
111338
  return trimmed.length > 0 ? trimmed : undefined;
111256
111339
  }
111340
+ function isClaudeModelLike(model) {
111341
+ if (typeof model !== "string")
111342
+ return false;
111343
+ const normalized = model.trim().toLowerCase();
111344
+ if (!normalized)
111345
+ return false;
111346
+ const withoutContext = normalized.replace(/\[1m]$/i, "").trim();
111347
+ return withoutContext.includes("claude") || withoutContext === "sonnet" || withoutContext === "opus" || withoutContext === "haiku" || withoutContext === "best" || withoutContext === "opusplan";
111348
+ }
111349
+ function getDefaultVerbooModel() {
111350
+ const cached2 = getCachedVerbooModels();
111351
+ const cachedModel = cached2?.find((m) => !isClaudeModelLike(m.id))?.id;
111352
+ if (cachedModel)
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;
111359
+ }
111360
+ function getVerbooSpecifiedModel(specifiedModel) {
111361
+ if (specifiedModel === undefined || specifiedModel === null) {
111362
+ return specifiedModel;
111363
+ }
111364
+ const normalized = normalizeModelSetting(specifiedModel);
111365
+ if (!normalized || isClaudeModelLike(normalized)) {
111366
+ return;
111367
+ }
111368
+ const modelWithoutContext = normalized.replace(/\[1m\]$/i, "").trim();
111369
+ const cached2 = getCachedVerbooModels();
111370
+ if (cached2 && cached2.length > 0) {
111371
+ return cached2.some((m) => m.id === modelWithoutContext && !isClaudeModelLike(m.id)) ? modelWithoutContext : undefined;
111372
+ }
111373
+ return modelWithoutContext;
111374
+ }
111257
111375
  function getSmallFastModel() {
111258
- if (process.env.ANTHROPIC_SMALL_FAST_MODEL)
111259
- return process.env.ANTHROPIC_SMALL_FAST_MODEL;
111260
111376
  if (isVerbooMode()) {
111261
- const cached2 = getCachedVerbooModels();
111262
- if (cached2 && cached2.length > 0) {
111263
- return cached2[0].id;
111264
- }
111377
+ return getDefaultVerbooModel();
111265
111378
  }
111379
+ if (process.env.ANTHROPIC_SMALL_FAST_MODEL)
111380
+ return process.env.ANTHROPIC_SMALL_FAST_MODEL;
111266
111381
  if (getAPIProvider() === "gemini") {
111267
111382
  return process.env.GEMINI_MODEL || "gemini-2.0-flash-lite";
111268
111383
  }
@@ -111304,18 +111419,12 @@ function getUserSpecifiedModelSetting() {
111304
111419
  const isOpenAIShimProvider = provider === "openai" || provider === "codex" || provider === "github" || provider === "nvidia-nim" || provider === "minimax" || provider === "xai";
111305
111420
  specifiedModel = (provider === "gemini" ? process.env.GEMINI_MODEL : undefined) || (provider === "mistral" ? process.env.MISTRAL_MODEL : undefined) || (isOpenAIShimProvider ? process.env.OPENAI_MODEL : undefined) || (provider === "firstParty" ? process.env.ANTHROPIC_MODEL : undefined) || setting || undefined;
111306
111421
  }
111422
+ if (isVerbooMode()) {
111423
+ return getVerbooSpecifiedModel(specifiedModel);
111424
+ }
111307
111425
  if (specifiedModel && !isModelAllowed(specifiedModel)) {
111308
111426
  return;
111309
111427
  }
111310
- if (specifiedModel && isVerbooMode()) {
111311
- const cached2 = getCachedVerbooModels();
111312
- if (cached2 && cached2.length > 0) {
111313
- const verbooIds = new Set(cached2.map((m) => m.id));
111314
- if (!verbooIds.has(specifiedModel)) {
111315
- return;
111316
- }
111317
- }
111318
- }
111319
111428
  return specifiedModel;
111320
111429
  }
111321
111430
  function getMainLoopModel() {
@@ -111329,6 +111438,9 @@ function getBestModel() {
111329
111438
  return getDefaultOpusModel();
111330
111439
  }
111331
111440
  function getDefaultOpusModel() {
111441
+ if (isVerbooMode()) {
111442
+ return getDefaultVerbooModel();
111443
+ }
111332
111444
  if (process.env.ANTHROPIC_DEFAULT_OPUS_MODEL) {
111333
111445
  return process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;
111334
111446
  }
@@ -111362,6 +111474,9 @@ function getDefaultOpusModel() {
111362
111474
  return getModelStrings2().opus46;
111363
111475
  }
111364
111476
  function getDefaultSonnetModel() {
111477
+ if (isVerbooMode()) {
111478
+ return getDefaultVerbooModel();
111479
+ }
111365
111480
  if (process.env.ANTHROPIC_DEFAULT_SONNET_MODEL) {
111366
111481
  return process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;
111367
111482
  }
@@ -111395,6 +111510,9 @@ function getDefaultSonnetModel() {
111395
111510
  return getModelStrings2().sonnet46;
111396
111511
  }
111397
111512
  function getDefaultHaikuModel() {
111513
+ if (isVerbooMode()) {
111514
+ return getDefaultVerbooModel();
111515
+ }
111398
111516
  if (process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL) {
111399
111517
  return process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;
111400
111518
  }
@@ -111435,6 +111553,9 @@ function getRuntimeMainLoopModel(params) {
111435
111553
  return mainLoopModel;
111436
111554
  }
111437
111555
  function getDefaultMainLoopModelSetting() {
111556
+ if (isVerbooMode()) {
111557
+ return getDefaultVerbooModel();
111558
+ }
111438
111559
  if (getAPIProvider() === "github") {
111439
111560
  const settings = getSettings_DEPRECATED() || {};
111440
111561
  return normalizeModelSetting(settings.model) || normalizeModelSetting(process.env.OPENAI_MODEL) || "github:copilot";
@@ -111688,6 +111809,18 @@ function parseUserSpecifiedModel(modelInput) {
111688
111809
  const normalizedModel = modelInputTrimmed.toLowerCase();
111689
111810
  const has1mTag = has1mContext(normalizedModel);
111690
111811
  const modelString = has1mTag ? normalizedModel.replace(/\[1m]$/i, "").trim() : normalizedModel;
111812
+ if (isVerbooMode()) {
111813
+ if (modelString === "codexplan") {
111814
+ return "gpt-5.5";
111815
+ }
111816
+ if (modelString === "codexspark") {
111817
+ return "gpt-5.3-codex-spark";
111818
+ }
111819
+ if (isClaudeModelLike(modelString)) {
111820
+ return getDefaultVerbooModel();
111821
+ }
111822
+ return modelInputTrimmed.replace(/\[1m\]$/i, "").trim();
111823
+ }
111691
111824
  if (isModelAlias(modelString)) {
111692
111825
  switch (modelString) {
111693
111826
  case "opusplan":
@@ -111797,7 +111930,7 @@ function getMarketingNameForModel(modelId) {
111797
111930
  function normalizeModelStringForAPI(model) {
111798
111931
  return model.replace(/\[(1|2)m\]/gi, "");
111799
111932
  }
111800
- var LEGACY_OPUS_FIRSTPARTY;
111933
+ var VERBOO_FALLBACK_MODEL = "gpt-5.5", LEGACY_OPUS_FIRSTPARTY;
111801
111934
  var init_model = __esm(() => {
111802
111935
  init_state();
111803
111936
  init_oauth();
@@ -115415,6 +115548,13 @@ __export(exports_StartupScreen, {
115415
115548
  detectProvider: () => detectProvider
115416
115549
  });
115417
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
+ }
115418
115558
  const useGemini = process.env.CLAUDE_CODE_USE_GEMINI === "1" || process.env.CLAUDE_CODE_USE_GEMINI === "true";
115419
115559
  const useGithub = process.env.CLAUDE_CODE_USE_GITHUB === "1" || process.env.CLAUDE_CODE_USE_GITHUB === "true";
115420
115560
  const useOpenAI = process.env.CLAUDE_CODE_USE_OPENAI === "1" || process.env.CLAUDE_CODE_USE_OPENAI === "true";
@@ -115503,8 +115643,7 @@ function detectProvider(modelOverride) {
115503
115643
  }
115504
115644
  return { name, model: displayModel, baseUrl: baseUrl2, isLocal: isLocal2 };
115505
115645
  }
115506
- const settings = getSettings_DEPRECATED() || {};
115507
- const modelSetting = modelOverride || settings.model || process.env.ANTHROPIC_MODEL || process.env.CLAUDE_MODEL || "claude-sonnet-4-6";
115646
+ const modelSetting = modelOverride || getDefaultVerbooModel();
115508
115647
  const resolvedModel = parseUserSpecifiedModel(modelSetting);
115509
115648
  const baseUrl = VERBOO_ROUTER_URL;
115510
115649
  const isLocal = isLocalProviderUrl(baseUrl);
@@ -115518,7 +115657,7 @@ function printStartupScreen(modelOverride) {
115518
115657
  const home = process.env.HOME || process.env.USERPROFILE || "";
115519
115658
  const cwd2 = process.cwd();
115520
115659
  const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
115521
- const version2 = "0.7.17";
115660
+ const version2 = "0.7.19";
115522
115661
  const bold2 = `${ESC}1m`;
115523
115662
  const PURPLE = rgb(...ACCENT);
115524
115663
  const SOFT = rgb(...CREAM);
@@ -115544,7 +115683,6 @@ var init_StartupScreen = __esm(() => {
115544
115683
  init_oauth();
115545
115684
  init_providerConfig();
115546
115685
  init_providerDiscovery();
115547
- init_settings2();
115548
115686
  init_model();
115549
115687
  init_zaiProvider();
115550
115688
  RESET = `${ESC}0m`;
@@ -178247,6 +178385,8 @@ function resolveRipgrepConfig({
178247
178385
  bundledMode,
178248
178386
  builtinCommand,
178249
178387
  builtinExists,
178388
+ npmCommand,
178389
+ npmExists = false,
178250
178390
  systemExecutablePath,
178251
178391
  processExecPath = process.execPath
178252
178392
  }) {
@@ -178264,10 +178404,13 @@ function resolveRipgrepConfig({
178264
178404
  if (builtinExists) {
178265
178405
  return { mode: "builtin", command: builtinCommand, args: [] };
178266
178406
  }
178407
+ if (npmExists && npmCommand) {
178408
+ return { mode: "builtin", command: npmCommand, args: [] };
178409
+ }
178267
178410
  if (systemExecutablePath !== "rg") {
178268
178411
  return { mode: "system", command: "rg", args: [] };
178269
178412
  }
178270
- return { mode: "builtin", command: builtinCommand, args: [] };
178413
+ return { mode: "system", command: "rg", args: [] };
178271
178414
  }
178272
178415
  function ripgrepCommand() {
178273
178416
  const config2 = getRipgrepConfig();
@@ -178571,12 +178714,16 @@ var init_ripgrep = __esm(() => {
178571
178714
  const rgRoot = path10.resolve(__dirname2, "vendor", "ripgrep");
178572
178715
  const builtinCommand = process.platform === "win32" ? path10.resolve(rgRoot, `${process.arch}-win32`, "rg.exe") : path10.resolve(rgRoot, `${process.arch}-${process.platform}`, "rg");
178573
178716
  const builtinExists = existsSync6(builtinCommand);
178717
+ const npmCommand = process.platform === "win32" ? path10.resolve(__dirname2, "..", "node_modules", "@vscode", "ripgrep", "bin", "rg.exe") : path10.resolve(__dirname2, "..", "node_modules", "@vscode", "ripgrep", "bin", "rg");
178718
+ const npmExists = existsSync6(npmCommand);
178574
178719
  const { cmd: systemExecutablePath } = findExecutable("rg", []);
178575
178720
  return resolveRipgrepConfig({
178576
178721
  userWantsSystemRipgrep,
178577
178722
  bundledMode,
178578
178723
  builtinCommand,
178579
178724
  builtinExists,
178725
+ npmCommand,
178726
+ npmExists,
178580
178727
  systemExecutablePath
178581
178728
  });
178582
178729
  });
@@ -201092,13 +201239,18 @@ async function getAnthropicClient({
201092
201239
  if (!accessToken) {
201093
201240
  process.stderr.write("[Verboo] ERRO: token de acesso não encontrado. Execute `verboo /login`.\n");
201094
201241
  }
201242
+ const requestedModel = model?.trim();
201243
+ const safeVerbooModel = requestedModel && !isClaudeModelLike(requestedModel) ? requestedModel.replace(/\[1m\]$/i, "").trim() : getDefaultVerbooModel();
201244
+ if (requestedModel && requestedModel !== safeVerbooModel) {
201245
+ logForDebugging2(`[Verboo] Ignoring Claude/unsupported model "${requestedModel}" and using "${safeVerbooModel}"`, { level: "warn" });
201246
+ }
201095
201247
  const { createOpenAIShimClient: createOpenAIShimClient2 } = await Promise.resolve().then(() => (init_openaiShim(), exports_openaiShim));
201096
201248
  return createOpenAIShimClient2({
201097
201249
  defaultHeaders,
201098
201250
  maxRetries,
201099
201251
  timeout: parseInt(process.env.API_TIMEOUT_MS || String(600000), 10),
201100
201252
  providerOverride: {
201101
- model: model ?? "",
201253
+ model: safeVerbooModel,
201102
201254
  baseURL: VERBOO_ROUTER_URL,
201103
201255
  apiKey: accessToken ?? ""
201104
201256
  }
@@ -273021,77 +273173,6 @@ var init_notifier = __esm(() => {
273021
273173
  init_log3();
273022
273174
  });
273023
273175
 
273024
- // src/utils/providerStartupOverrides.ts
273025
- function clearStartupProviderOverrides(options2) {
273026
- const updateUserSettings = options2?.updateUserSettings ?? updateSettingsForSource;
273027
- const saveConfig2 = options2?.saveConfig ?? saveGlobalConfig;
273028
- const envPatch = Object.fromEntries(STARTUP_PROVIDER_OVERRIDE_ENV_KEYS.map((key) => [
273029
- key,
273030
- DELETE_SETTINGS_ENV_VALUE
273031
- ]));
273032
- const { error: error42 } = updateUserSettings("userSettings", { env: envPatch });
273033
- let globalConfigError = null;
273034
- try {
273035
- saveConfig2((current) => {
273036
- const currentEnv = current.env ?? {};
273037
- let changed = false;
273038
- const nextEnv = { ...currentEnv };
273039
- for (const key of STARTUP_PROVIDER_OVERRIDE_ENV_KEYS) {
273040
- if (key in nextEnv) {
273041
- delete nextEnv[key];
273042
- changed = true;
273043
- }
273044
- }
273045
- return changed ? { ...current, env: nextEnv } : current;
273046
- });
273047
- } catch (configError) {
273048
- globalConfigError = configError instanceof Error ? configError.message : String(configError);
273049
- }
273050
- return error42?.message ?? globalConfigError;
273051
- }
273052
- var STARTUP_PROVIDER_OVERRIDE_ENV_KEYS, DELETE_SETTINGS_ENV_VALUE = undefined;
273053
- var init_providerStartupOverrides = __esm(() => {
273054
- init_config();
273055
- init_settings2();
273056
- STARTUP_PROVIDER_OVERRIDE_ENV_KEYS = [
273057
- "CLAUDE_CODE_USE_OPENAI",
273058
- "CLAUDE_CODE_USE_GEMINI",
273059
- "CLAUDE_CODE_USE_MISTRAL",
273060
- "CLAUDE_CODE_USE_GITHUB",
273061
- "CLAUDE_CODE_USE_BEDROCK",
273062
- "CLAUDE_CODE_USE_VERTEX",
273063
- "CLAUDE_CODE_USE_FOUNDRY",
273064
- "OPENAI_BASE_URL",
273065
- "OPENAI_API_BASE",
273066
- "OPENAI_MODEL",
273067
- "OPENAI_API_KEY",
273068
- "OPENAI_ORG",
273069
- "OPENAI_PROJECT",
273070
- "OPENAI_ORGANIZATION",
273071
- "ANTHROPIC_BASE_URL",
273072
- "ANTHROPIC_MODEL",
273073
- "ANTHROPIC_API_KEY",
273074
- "GEMINI_API_KEY",
273075
- "GOOGLE_API_KEY",
273076
- "GEMINI_BASE_URL",
273077
- "GEMINI_MODEL",
273078
- "GEMINI_ACCESS_TOKEN",
273079
- "GEMINI_AUTH_MODE",
273080
- "MISTRAL_BASE_URL",
273081
- "MISTRAL_MODEL",
273082
- "MISTRAL_API_KEY",
273083
- "CODEX_API_KEY",
273084
- "CODEX_CREDENTIAL_SOURCE",
273085
- "CHATGPT_ACCOUNT_ID",
273086
- "CODEX_ACCOUNT_ID",
273087
- "MINIMAX_API_KEY",
273088
- "MINIMAX_BASE_URL",
273089
- "MINIMAX_MODEL",
273090
- "NVIDIA_API_KEY",
273091
- "NVIDIA_NIM"
273092
- ];
273093
- });
273094
-
273095
273176
  // src/utils/urlRedaction.ts
273096
273177
  function shouldRedactUrlQueryParam2(name) {
273097
273178
  const lower = name.toLowerCase();
@@ -277168,7 +277249,8 @@ function SpinnerAnimationRow({
277168
277249
  }) {
277169
277250
  const [viewportRef, time3] = useAnimationFrame(reducedMotion ? null : 50);
277170
277251
  const now2 = Date.now();
277171
- const elapsedTimeMs = pauseStartTimeRef.current !== null ? pauseStartTimeRef.current - loadingStartTimeRef.current - totalPausedMsRef.current : now2 - loadingStartTimeRef.current - totalPausedMsRef.current;
277252
+ const rawElapsedTimeMs = pauseStartTimeRef.current !== null ? pauseStartTimeRef.current - loadingStartTimeRef.current - totalPausedMsRef.current : now2 - loadingStartTimeRef.current - totalPausedMsRef.current;
277253
+ const elapsedTimeMs = loadingStartTimeRef.current > 0 ? Math.max(0, rawElapsedTimeMs) : 0;
277172
277254
  const derivedStart = now2 - elapsedTimeMs;
277173
277255
  const turnStartRef = import_react55.useRef(derivedStart);
277174
277256
  if (!hasRunningTeammates || derivedStart < turnStartRef.current) {
@@ -342426,6 +342508,76 @@ function buildFullPath2(baseURL, requestedURL, allowAbsoluteUrls) {
342426
342508
  }
342427
342509
  var init_buildFullPath2 = () => {};
342428
342510
 
342511
+ // node_modules/@mendable/firecrawl-js/node_modules/axios/node_modules/proxy-from-env/index.js
342512
+ function parseUrl2(urlString) {
342513
+ try {
342514
+ return new URL(urlString);
342515
+ } catch {
342516
+ return null;
342517
+ }
342518
+ }
342519
+ function getProxyForUrl2(url4) {
342520
+ var parsedUrl = (typeof url4 === "string" ? parseUrl2(url4) : url4) || {};
342521
+ var proto2 = parsedUrl.protocol;
342522
+ var hostname3 = parsedUrl.host;
342523
+ var port = parsedUrl.port;
342524
+ if (typeof hostname3 !== "string" || !hostname3 || typeof proto2 !== "string") {
342525
+ return "";
342526
+ }
342527
+ proto2 = proto2.split(":", 1)[0];
342528
+ hostname3 = hostname3.replace(/:\d*$/, "");
342529
+ port = parseInt(port) || DEFAULT_PORTS3[proto2] || 0;
342530
+ if (!shouldProxy2(hostname3, port)) {
342531
+ return "";
342532
+ }
342533
+ var proxy = getEnv3(proto2 + "_proxy") || getEnv3("all_proxy");
342534
+ if (proxy && proxy.indexOf("://") === -1) {
342535
+ proxy = proto2 + "://" + proxy;
342536
+ }
342537
+ return proxy;
342538
+ }
342539
+ function shouldProxy2(hostname3, port) {
342540
+ var NO_PROXY = getEnv3("no_proxy").toLowerCase();
342541
+ if (!NO_PROXY) {
342542
+ return true;
342543
+ }
342544
+ if (NO_PROXY === "*") {
342545
+ return false;
342546
+ }
342547
+ return NO_PROXY.split(/[,\s]/).every(function(proxy) {
342548
+ if (!proxy) {
342549
+ return true;
342550
+ }
342551
+ var parsedProxy = proxy.match(/^(.+):(\d+)$/);
342552
+ var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;
342553
+ var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;
342554
+ if (parsedProxyPort && parsedProxyPort !== port) {
342555
+ return true;
342556
+ }
342557
+ if (!/^[.*]/.test(parsedProxyHostname)) {
342558
+ return hostname3 !== parsedProxyHostname;
342559
+ }
342560
+ if (parsedProxyHostname.charAt(0) === "*") {
342561
+ parsedProxyHostname = parsedProxyHostname.slice(1);
342562
+ }
342563
+ return !hostname3.endsWith(parsedProxyHostname);
342564
+ });
342565
+ }
342566
+ function getEnv3(key) {
342567
+ return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || "";
342568
+ }
342569
+ var DEFAULT_PORTS3;
342570
+ var init_proxy_from_env2 = __esm(() => {
342571
+ DEFAULT_PORTS3 = {
342572
+ ftp: 21,
342573
+ gopher: 70,
342574
+ http: 80,
342575
+ https: 443,
342576
+ ws: 80,
342577
+ wss: 443
342578
+ };
342579
+ });
342580
+
342429
342581
  // node_modules/@mendable/firecrawl-js/node_modules/axios/lib/env/data.js
342430
342582
  var VERSION5 = "1.14.0";
342431
342583
 
@@ -342993,7 +343145,7 @@ function dispatchBeforeRedirect2(options2, responseDetails) {
342993
343145
  function setProxy2(options2, configProxy, location) {
342994
343146
  let proxy = configProxy;
342995
343147
  if (!proxy && proxy !== false) {
342996
- const proxyUrl = getProxyForUrl(location);
343148
+ const proxyUrl = getProxyForUrl2(location);
342997
343149
  if (proxyUrl) {
342998
343150
  proxy = new URL(proxyUrl);
342999
343151
  }
@@ -343063,7 +343215,7 @@ var init_http3 = __esm(() => {
343063
343215
  init_settle2();
343064
343216
  init_buildFullPath2();
343065
343217
  init_buildURL2();
343066
- init_proxy_from_env();
343218
+ init_proxy_from_env2();
343067
343219
  init_transitional2();
343068
343220
  init_AxiosError2();
343069
343221
  init_CanceledError2();
@@ -376918,7 +377070,7 @@ function getAnthropicEnvMetadata() {
376918
377070
  function getBuildAgeMinutes() {
376919
377071
  if (false)
376920
377072
  ;
376921
- const buildTime = new Date("2026-05-02T19:34:06.611Z").getTime();
377073
+ const buildTime = new Date("2026-05-02T20:14:20.139Z").getTime();
376922
377074
  if (isNaN(buildTime))
376923
377075
  return;
376924
377076
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -415029,7 +415181,17 @@ async function getProjectFiles(abortSignal, respectGitignore) {
415029
415181
  if (!respectGitignore) {
415030
415182
  rgArgs.push("--no-ignore-vcs");
415031
415183
  }
415032
- const files = await ripGrep(rgArgs, ".", abortSignal);
415184
+ let files;
415185
+ try {
415186
+ files = await ripGrep(rgArgs, ".", abortSignal);
415187
+ } catch (error42) {
415188
+ if (error42 instanceof RipgrepUnavailableError) {
415189
+ logForDebugging2(`[FileIndex] ripgrep unavailable; continuing with empty non-git file index: ${error42.message}`);
415190
+ logEvent("tengu_file_suggestions_ripgrep_unavailable", {});
415191
+ return [];
415192
+ }
415193
+ throw error42;
415194
+ }
415033
415195
  const relativePaths = files.map((f) => path17.relative(getCwd(), f));
415034
415196
  const duration3 = Date.now() - startTime;
415035
415197
  logForDebugging2(`[FileIndex] ripgrep: ${relativePaths.length} files in ${duration3}ms`);
@@ -417454,7 +417616,7 @@ function buildPrimarySection() {
417454
417616
  }, undefined, false, undefined, this);
417455
417617
  return [{
417456
417618
  label: "Version",
417457
- value: "0.7.17"
417619
+ value: "0.7.19"
417458
417620
  }, {
417459
417621
  label: "Session name",
417460
417622
  value: nameValue
@@ -485404,7 +485566,7 @@ var init_bridge_kick = __esm(() => {
485404
485566
  var call60 = async () => {
485405
485567
  return {
485406
485568
  type: "text",
485407
- value: `${"99.0.0"} (built ${"2026-05-02T19:34:06.611Z"})`
485569
+ value: `${"99.0.0"} (built ${"2026-05-02T20:14:20.139Z"})`
485408
485570
  };
485409
485571
  }, version2, version_default;
485410
485572
  var init_version = __esm(() => {
@@ -487898,6 +488060,12 @@ async function validateModel(model) {
487898
488060
  return { valid: false, error: "Model name cannot be empty" };
487899
488061
  }
487900
488062
  if (isVerbooMode()) {
488063
+ if (isClaudeModelLike(normalizedModel)) {
488064
+ return {
488065
+ valid: false,
488066
+ error: `Modelo '${normalizedModel}' não pode ser usado no Verboo Code.`
488067
+ };
488068
+ }
487901
488069
  const verbooModels = getCachedVerbooModels();
487902
488070
  if (verbooModels && verbooModels.length > 0) {
487903
488071
  const found = verbooModels.some((m) => m.id === normalizedModel);
@@ -488066,6 +488234,7 @@ var init_validateModel = __esm(() => {
488066
488234
  init_minimaxModels();
488067
488235
  init_oauth();
488068
488236
  init_verbooModels();
488237
+ init_model();
488069
488238
  validModelCache = new Map;
488070
488239
  });
488071
488240
 
@@ -557920,6 +558089,8 @@ Error: sandbox required but unavailable: ${reason}
557920
558089
  effortValue: effort
557921
558090
  });
557922
558091
  }
558092
+ if (abortController2.signal.aborted)
558093
+ return;
557923
558094
  queryCheckpoint("query_context_loading_start");
557924
558095
  const [, , defaultSystemPrompt, baseUserContext, systemContext] = await Promise.all([
557925
558096
  checkAndDisableBypassPermissionsIfNeeded(toolPermissionContext, setAppState),
@@ -557928,6 +558099,8 @@ Error: sandbox required but unavailable: ${reason}
557928
558099
  getUserContext(),
557929
558100
  getSystemContext()
557930
558101
  ]);
558102
+ if (abortController2.signal.aborted)
558103
+ return;
557931
558104
  const userContext = {
557932
558105
  ...baseUserContext,
557933
558106
  ...getCoordinatorUserContext2(freshMcpClients, isScratchpadEnabled() ? getScratchpadDir() : undefined),
@@ -557942,6 +558115,8 @@ Error: sandbox required but unavailable: ${reason}
557942
558115
  appendSystemPrompt
557943
558116
  });
557944
558117
  toolUseContext.renderedSystemPrompt = systemPrompt;
558118
+ if (abortController2.signal.aborted)
558119
+ return;
557945
558120
  queryCheckpoint("query_query_start");
557946
558121
  resetTurnHookDuration();
557947
558122
  resetTurnToolDuration();
@@ -557992,6 +558167,7 @@ Error: sandbox required but unavailable: ${reason}
557992
558167
  return;
557993
558168
  }
557994
558169
  try {
558170
+ startQueryProfile();
557995
558171
  resetTimingRefs();
557996
558172
  resetCurrentTurn();
557997
558173
  setMessages((oldMessages) => [...oldMessages, ...newMessages]);
@@ -558006,9 +558182,13 @@ Error: sandbox required but unavailable: ${reason}
558006
558182
  const latestMessages = messagesRef.current;
558007
558183
  if (input) {
558008
558184
  await mrOnBeforeQuery(input, latestMessages, newMessages.length);
558185
+ if (abortController2.signal.aborted)
558186
+ return;
558009
558187
  }
558010
558188
  if (onBeforeQueryCallback && input) {
558011
558189
  const shouldProceed = await onBeforeQueryCallback(input, latestMessages);
558190
+ if (abortController2.signal.aborted)
558191
+ return;
558012
558192
  if (!shouldProceed) {
558013
558193
  return;
558014
558194
  }
@@ -561186,7 +561366,7 @@ function WelcomeV2() {
561186
561366
  dimColor: true,
561187
561367
  children: [
561188
561368
  "v",
561189
- "0.7.17",
561369
+ "0.7.19",
561190
561370
  " "
561191
561371
  ]
561192
561372
  }, undefined, true, undefined, this)
@@ -561373,7 +561553,7 @@ function WelcomeV2() {
561373
561553
  dimColor: true,
561374
561554
  children: [
561375
561555
  "v",
561376
- "0.7.17",
561556
+ "0.7.19",
561377
561557
  " "
561378
561558
  ]
561379
561559
  }, undefined, true, undefined, this)
@@ -561589,7 +561769,7 @@ function AppleTerminalWelcomeV2(t0) {
561589
561769
  dimColor: true,
561590
561770
  children: [
561591
561771
  "v",
561592
- "0.7.17",
561772
+ "0.7.19",
561593
561773
  " "
561594
561774
  ]
561595
561775
  }, undefined, true, undefined, this);
@@ -561798,7 +561978,7 @@ function AppleTerminalWelcomeV2(t0) {
561798
561978
  dimColor: true,
561799
561979
  children: [
561800
561980
  "v",
561801
- "0.7.17",
561981
+ "0.7.19",
561802
561982
  " "
561803
561983
  ]
561804
561984
  }, undefined, true, undefined, this);
@@ -579929,7 +580109,7 @@ __export(exports_update, {
579929
580109
  async function update() {
579930
580110
  if (getAPIProvider() !== "firstParty") {
579931
580111
  writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
579932
- `) + `Current version: ${"0.7.17"}
580112
+ `) + `Current version: ${"0.7.19"}
579933
580113
 
579934
580114
  ` + `To update, reinstall from npm:
579935
580115
  ` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
@@ -579940,7 +580120,7 @@ async function update() {
579940
580120
  await gracefulShutdown(0);
579941
580121
  }
579942
580122
  logEvent("tengu_update_check", {});
579943
- writeToStdout(`Current version: ${"0.7.17"}
580123
+ writeToStdout(`Current version: ${"0.7.19"}
579944
580124
  `);
579945
580125
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
579946
580126
  writeToStdout(`Checking for updates to ${channel} version...
@@ -580025,8 +580205,8 @@ async function update() {
580025
580205
  writeToStdout(`Claude is managed by Homebrew.
580026
580206
  `);
580027
580207
  const latest = await getLatestVersion(channel);
580028
- if (latest && !gte("0.7.17", latest)) {
580029
- writeToStdout(`Update available: ${"0.7.17"} → ${latest}
580208
+ if (latest && !gte("0.7.19", latest)) {
580209
+ writeToStdout(`Update available: ${"0.7.19"} → ${latest}
580030
580210
  `);
580031
580211
  writeToStdout(`
580032
580212
  `);
@@ -580042,8 +580222,8 @@ async function update() {
580042
580222
  writeToStdout(`Claude is managed by winget.
580043
580223
  `);
580044
580224
  const latest = await getLatestVersion(channel);
580045
- if (latest && !gte("0.7.17", latest)) {
580046
- writeToStdout(`Update available: ${"0.7.17"} → ${latest}
580225
+ if (latest && !gte("0.7.19", latest)) {
580226
+ writeToStdout(`Update available: ${"0.7.19"} → ${latest}
580047
580227
  `);
580048
580228
  writeToStdout(`
580049
580229
  `);
@@ -580059,8 +580239,8 @@ async function update() {
580059
580239
  writeToStdout(`Claude is managed by apk.
580060
580240
  `);
580061
580241
  const latest = await getLatestVersion(channel);
580062
- if (latest && !gte("0.7.17", latest)) {
580063
- writeToStdout(`Update available: ${"0.7.17"} → ${latest}
580242
+ if (latest && !gte("0.7.19", latest)) {
580243
+ writeToStdout(`Update available: ${"0.7.19"} → ${latest}
580064
580244
  `);
580065
580245
  writeToStdout(`
580066
580246
  `);
@@ -580125,11 +580305,11 @@ async function update() {
580125
580305
  `);
580126
580306
  await gracefulShutdown(1);
580127
580307
  }
580128
- if (result.latestVersion === "0.7.17") {
580129
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.17"})`) + `
580308
+ if (result.latestVersion === "0.7.19") {
580309
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.19"})`) + `
580130
580310
  `);
580131
580311
  } else {
580132
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.17"} to version ${result.latestVersion}`) + `
580312
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.19"} to version ${result.latestVersion}`) + `
580133
580313
  `);
580134
580314
  await regenerateCompletionCache();
580135
580315
  }
@@ -580189,12 +580369,12 @@ async function update() {
580189
580369
  `);
580190
580370
  await gracefulShutdown(1);
580191
580371
  }
580192
- if (latestVersion === "0.7.17") {
580193
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.17"})`) + `
580372
+ if (latestVersion === "0.7.19") {
580373
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.19"})`) + `
580194
580374
  `);
580195
580375
  await gracefulShutdown(0);
580196
580376
  }
580197
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.17"})
580377
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.19"})
580198
580378
  `);
580199
580379
  writeToStdout(`Installing update...
580200
580380
  `);
@@ -580239,7 +580419,7 @@ async function update() {
580239
580419
  logForDebugging2(`update: Installation status: ${status2}`);
580240
580420
  switch (status2) {
580241
580421
  case "success":
580242
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.17"} to version ${latestVersion}`) + `
580422
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.19"} to version ${latestVersion}`) + `
580243
580423
  `);
580244
580424
  await regenerateCompletionCache();
580245
580425
  break;
@@ -582292,7 +582472,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
582292
582472
  pendingHookMessages
582293
582473
  }, renderAndRun);
582294
582474
  }
582295
- }).version(`0.7.17 (${cliDesc})`, "-v, --version", "Output the version number");
582475
+ }).version(`0.7.19 (${cliDesc})`, "-v, --version", "Output the version number");
582296
582476
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
582297
582477
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
582298
582478
  if (canUserConfigureAdvisor()) {
@@ -582834,6 +583014,7 @@ var init_main3 = __esm(() => {
582834
583014
  // src/entrypoints/cli.tsx
582835
583015
  init_providerProfile();
582836
583016
  init_providerValidation();
583017
+ init_providerStartupOverrides();
582837
583018
  if (typeof globalThis.File === "undefined") {
582838
583019
  try {
582839
583020
  const { File: NodeFile } = __require("node:buffer");
@@ -582860,10 +583041,10 @@ if (false) {}
582860
583041
  async function main2() {
582861
583042
  const args = process.argv.slice(2);
582862
583043
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
582863
- console.log(`${"0.7.17"} (Verboo Code)`);
583044
+ console.log(`${"0.7.19"} (Verboo Code)`);
582864
583045
  return;
582865
583046
  }
582866
- if (args.includes("--provider")) {
583047
+ if (!isVerbooMode2() && args.includes("--provider")) {
582867
583048
  const { applyProviderFlagFromArgs: applyProviderFlagFromArgs2 } = await Promise.resolve().then(() => (init_providerFlag(), exports_providerFlag));
582868
583049
  const result = applyProviderFlagFromArgs2(args);
582869
583050
  if (result?.error) {
@@ -582879,15 +583060,20 @@ async function main2() {
582879
583060
  const { applySafeConfigEnvironmentVariables: applySafeConfigEnvironmentVariables2 } = await Promise.resolve().then(() => (init_managedEnv(), exports_managedEnv));
582880
583061
  applySafeConfigEnvironmentVariables2();
582881
583062
  }
582882
- const startupEnv = await buildStartupEnvFromProfile({
582883
- processEnv: process.env
582884
- });
582885
- if (startupEnv !== process.env) {
582886
- const startupProfileError = await getProviderValidationError(startupEnv);
582887
- if (startupProfileError) {
582888
- console.error(`Warning: ignoring saved provider profile. ${startupProfileError}`);
582889
- } else {
582890
- applyProfileEnvToProcessEnv(process.env, startupEnv);
583063
+ if (isVerbooMode2()) {
583064
+ clearStartupProviderEnvFromProcessEnv();
583065
+ }
583066
+ if (!isVerbooMode2()) {
583067
+ const startupEnv = await buildStartupEnvFromProfile({
583068
+ processEnv: process.env
583069
+ });
583070
+ if (startupEnv !== process.env) {
583071
+ const startupProfileError = await getProviderValidationError(startupEnv);
583072
+ if (startupProfileError) {
583073
+ console.error(`Warning: ignoring saved provider profile. ${startupProfileError}`);
583074
+ } else {
583075
+ applyProfileEnvToProcessEnv(process.env, startupEnv);
583076
+ }
582891
583077
  }
582892
583078
  }
582893
583079
  {
@@ -582895,8 +583081,10 @@ async function main2() {
582895
583081
  hydrateGithubModelsTokenFromSecureStorage: hydrateGithubModelsTokenFromSecureStorage2,
582896
583082
  refreshGithubModelsTokenIfNeeded: refreshGithubModelsTokenIfNeeded2
582897
583083
  } = await Promise.resolve().then(() => (init_githubModelsCredentials(), exports_githubModelsCredentials));
582898
- await refreshGithubModelsTokenIfNeeded2();
582899
- hydrateGithubModelsTokenFromSecureStorage2();
583084
+ if (!isVerbooMode2()) {
583085
+ await refreshGithubModelsTokenIfNeeded2();
583086
+ hydrateGithubModelsTokenFromSecureStorage2();
583087
+ }
582900
583088
  }
582901
583089
  await validateProviderEnvForStartupOrExit();
582902
583090
  const { eagerParseCliFlag: eagerParseCliFlag2 } = await Promise.resolve().then(() => exports_cliArgs);
@@ -583016,4 +583204,4 @@ async function main2() {
583016
583204
  }
583017
583205
  main2();
583018
583206
 
583019
- //# debugId=08D24D8DFB1E3D9764756E2164756E21
583207
+ //# debugId=8F3A0314593DACB064756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verboo/code",
3
- "version": "0.7.17",
3
+ "version": "0.7.19",
4
4
  "description": "Verboo Code — coding agent for the Verboo platform",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,6 +10,7 @@
10
10
  "bin/verboo",
11
11
  "bin/import-specifier.mjs",
12
12
  "dist/cli.mjs",
13
+ "dist/vendor/ripgrep/**",
13
14
  "scripts/postinstall.mjs",
14
15
  "README.md"
15
16
  ],
@@ -139,6 +140,9 @@
139
140
  "tsx": "^4.21.0",
140
141
  "typescript": "5.9.3"
141
142
  },
143
+ "optionalDependencies": {
144
+ "@vscode/ripgrep": "^1.15.14"
145
+ },
142
146
  "engines": {
143
147
  "node": ">=20.0.0"
144
148
  },