@verboo/code 0.13.0 → 0.13.1

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 +195 -77
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -135919,6 +135919,7 @@ __export(exports_client, {
135919
135919
  storeOAuthAccountInfo: () => storeOAuthAccountInfo,
135920
135920
  shouldUseClaudeAIAuth: () => shouldUseClaudeAIAuth,
135921
135921
  shouldRefreshOAuthAccountInfo: () => shouldRefreshOAuthAccountInfo,
135922
+ revokeVerbooRefreshToken: () => revokeVerbooRefreshToken,
135922
135923
  refreshOAuthToken: () => refreshOAuthToken,
135923
135924
  populateOAuthAccountInfoIfNeeded: () => populateOAuthAccountInfoIfNeeded,
135924
135925
  parseScopes: () => parseScopes,
@@ -136092,6 +136093,24 @@ async function refreshOAuthToken(refreshToken, { scopes: requestedScopes } = {})
136092
136093
  throw error41;
136093
136094
  }
136094
136095
  }
136096
+ async function revokeVerbooRefreshToken(refreshToken) {
136097
+ const form = new URLSearchParams({
136098
+ token: refreshToken,
136099
+ token_type_hint: "refresh_token",
136100
+ client_id: getOauthConfig().CLIENT_ID
136101
+ });
136102
+ try {
136103
+ await axios_default.post(`${getOauthConfig().BASE_API_URL}/oauth/revoke`, form, {
136104
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
136105
+ timeout: 5000
136106
+ });
136107
+ logEvent("verboo_oauth_refresh_token_revocation_success", {});
136108
+ return true;
136109
+ } catch {
136110
+ logEvent("verboo_oauth_refresh_token_revocation_unconfirmed", {});
136111
+ return false;
136112
+ }
136113
+ }
136095
136114
  async function fetchAndStoreUserRoles(accessToken) {
136096
136115
  if (isVerbooMode()) {
136097
136116
  return;
@@ -169728,7 +169747,7 @@ function getClaudeCodeUserAgent() {
169728
169747
  return `claude-code/${"99.0.0"}`;
169729
169748
  }
169730
169749
  function getVerbooCodeUserAgent() {
169731
- const version2 = typeof MACRO !== "undefined" ? "0.13.0" : "unknown";
169750
+ const version2 = typeof MACRO !== "undefined" ? "0.13.1" : "unknown";
169732
169751
  return `verboo-code/${version2}`;
169733
169752
  }
169734
169753
 
@@ -173021,7 +173040,9 @@ function convertTools(tools, options2 = {}) {
173021
173040
  const isGemini = isGeminiMode();
173022
173041
  const strict = !isGemini && !isEnvTruthy(process.env.VERBOO_DISABLE_STRICT_TOOLS ?? process.env.OPENCLAUDE_DISABLE_STRICT_TOOLS) && !options2.skipStrict;
173023
173042
  return tools.filter((t) => t.name !== "ToolSearchTool").map((t) => {
173024
- const schema = { ...t.input_schema ?? { type: "object", properties: {} } };
173043
+ const schema = {
173044
+ ...t.input_schema ?? { type: "object", properties: {} }
173045
+ };
173025
173046
  if (t.name === "Agent" && schema.properties) {
173026
173047
  const props = schema.properties;
173027
173048
  if (!Array.isArray(schema.required))
@@ -173231,7 +173252,10 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
173231
173252
  yield {
173232
173253
  type: "content_block_delta",
173233
173254
  index: hasClosedThinking ? contentBlockIndex - 1 : contentBlockIndex,
173234
- delta: { type: "thinking_delta", thinking: delta.reasoning_content }
173255
+ delta: {
173256
+ type: "thinking_delta",
173257
+ thinking: delta.reasoning_content
173258
+ }
173235
173259
  };
173236
173260
  }
173237
173261
  if (delta.content != null && delta.content !== "") {
@@ -173262,7 +173286,10 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
173262
173286
  for (const tc of delta.tool_calls) {
173263
173287
  if (tc.id && tc.function?.name) {
173264
173288
  if (hasEmittedThinkingStart && !hasClosedThinking) {
173265
- yield { type: "content_block_stop", index: contentBlockIndex };
173289
+ yield {
173290
+ type: "content_block_stop",
173291
+ index: contentBlockIndex
173292
+ };
173266
173293
  contentBlockIndex++;
173267
173294
  hasClosedThinking = true;
173268
173295
  }
@@ -173315,7 +173342,10 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
173315
173342
  const contSig = tc.thought_signature;
173316
173343
  const contEC = tc.extra_content ? { ...tc.extra_content } : contSig ? { google: { thought_signature: contSig } } : undefined;
173317
173344
  if (contEC) {
173318
- active.extra_content = { ...active.extra_content ?? {}, ...contEC };
173345
+ active.extra_content = {
173346
+ ...active.extra_content ?? {},
173347
+ ...contEC
173348
+ };
173319
173349
  }
173320
173350
  if (active.normalizeAtStop) {
173321
173351
  continue;
@@ -173335,7 +173365,10 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
173335
173365
  const lateSig = tc.thought_signature;
173336
173366
  const lateEC = tc.extra_content ? { ...tc.extra_content } : lateSig ? { google: { thought_signature: lateSig } } : undefined;
173337
173367
  if (lateEC) {
173338
- active.extra_content = { ...active.extra_content ?? {}, ...lateEC };
173368
+ active.extra_content = {
173369
+ ...active.extra_content ?? {},
173370
+ ...lateEC
173371
+ };
173339
173372
  }
173340
173373
  }
173341
173374
  }
@@ -173362,7 +173395,9 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
173362
173395
  name: tc.name,
173363
173396
  input: {},
173364
173397
  extra_content: tc.extra_content,
173365
- ...tc.extra_content.google?.thought_signature ? { signature: tc.extra_content.google.thought_signature } : {}
173398
+ ...tc.extra_content.google?.thought_signature ? {
173399
+ signature: tc.extra_content.google.thought_signature
173400
+ } : {}
173366
173401
  }
173367
173402
  };
173368
173403
  }
@@ -173429,9 +173464,12 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
173429
173464
  yield {
173430
173465
  type: "content_block_delta",
173431
173466
  index: contentBlockIndex,
173432
- delta: { type: "text_delta", text: `
173467
+ delta: {
173468
+ type: "text_delta",
173469
+ text: `
173433
173470
 
173434
- [Content blocked by provider safety filter]` }
173471
+ [Content blocked by provider safety filter]`
173472
+ }
173435
173473
  };
173436
173474
  } else if (choice.finish_reason === "length") {
173437
173475
  if (!hasEmittedContentStart) {
@@ -173445,9 +173483,12 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
173445
173483
  yield {
173446
173484
  type: "content_block_delta",
173447
173485
  index: contentBlockIndex,
173448
- delta: { type: "text_delta", text: `
173486
+ delta: {
173487
+ type: "text_delta",
173488
+ text: `
173449
173489
 
173450
- [Response truncated — reached length limit or upstream stalled. Ask the model to continue.]` }
173490
+ [Response truncated — reached length limit or upstream stalled. Ask the model to continue.]`
173491
+ }
173451
173492
  };
173452
173493
  }
173453
173494
  lastStopReason = stopReason;
@@ -173756,11 +173797,33 @@ class OpenAIShimMessages {
173756
173797
  baseUrl: request.baseUrl,
173757
173798
  processEnv: process.env
173758
173799
  });
173759
- const apiKey = this.providerOverride?.apiKey ?? routeCredential ?? process.env.OPENAI_API_KEY ?? "";
173800
+ const getApiKey = () => this.providerOverride?.getApiKey?.() ?? this.providerOverride?.apiKey ?? routeCredential ?? process.env.OPENAI_API_KEY ?? "";
173760
173801
  const configuredAuthHeaderValue = process.env.OPENAI_AUTH_HEADER_VALUE?.trim();
173761
173802
  const customAuthHeader = process.env.OPENAI_AUTH_HEADER?.trim();
173762
173803
  const hasCustomAuthHeader = Boolean(customAuthHeader && /^[A-Za-z0-9!#$%&'*+.^_`|~-]+$/.test(customAuthHeader));
173763
- const authValue = hasCustomAuthHeader ? configuredAuthHeaderValue || apiKey : apiKey;
173804
+ const applyAuthHeader = () => {
173805
+ const apiKey = getApiKey();
173806
+ const authValue = hasCustomAuthHeader ? configuredAuthHeaderValue || apiKey : apiKey;
173807
+ delete headers.Authorization;
173808
+ if (hasCustomAuthHeader && customAuthHeader) {
173809
+ delete headers[customAuthHeader];
173810
+ }
173811
+ if (authValue) {
173812
+ if (hasCustomAuthHeader && customAuthHeader) {
173813
+ const defaultCustomAuthScheme = customAuthHeader.toLowerCase() === "authorization" ? "bearer" : "raw";
173814
+ const customAuthScheme = process.env.OPENAI_AUTH_SCHEME === "raw" || process.env.OPENAI_AUTH_SCHEME === "bearer" ? process.env.OPENAI_AUTH_SCHEME : defaultCustomAuthScheme;
173815
+ headers[customAuthHeader] = customAuthScheme === "bearer" ? `Bearer ${authValue}` : authValue;
173816
+ } else if (isAzure) {
173817
+ headers["api-key"] = authValue;
173818
+ } else if (isBankr) {
173819
+ headers["X-API-Key"] = authValue;
173820
+ } else if (shimConfig.defaultAuthHeader?.name) {
173821
+ headers[shimConfig.defaultAuthHeader.name] = shimConfig.defaultAuthHeader.scheme === "bearer" ? `Bearer ${authValue}` : authValue;
173822
+ } else {
173823
+ headers.Authorization = `Bearer ${authValue}`;
173824
+ }
173825
+ }
173826
+ };
173764
173827
  let isAzure = false;
173765
173828
  try {
173766
173829
  const { hostname: hostname2 } = new URL(request.baseUrl);
@@ -173770,21 +173833,8 @@ class OpenAIShimMessages {
173770
173833
  try {
173771
173834
  isBankr = runtimeShimContext.routeId === "bankr" || request.baseUrl.toLowerCase().includes("bankr");
173772
173835
  } catch {}
173773
- if (authValue) {
173774
- if (hasCustomAuthHeader && customAuthHeader) {
173775
- const defaultCustomAuthScheme = customAuthHeader.toLowerCase() === "authorization" ? "bearer" : "raw";
173776
- const customAuthScheme = process.env.OPENAI_AUTH_SCHEME === "raw" || process.env.OPENAI_AUTH_SCHEME === "bearer" ? process.env.OPENAI_AUTH_SCHEME : defaultCustomAuthScheme;
173777
- headers[customAuthHeader] = customAuthScheme === "bearer" ? `Bearer ${authValue}` : authValue;
173778
- } else if (isAzure) {
173779
- headers["api-key"] = authValue;
173780
- } else if (isBankr) {
173781
- headers["X-API-Key"] = authValue;
173782
- } else if (shimConfig.defaultAuthHeader?.name) {
173783
- headers[shimConfig.defaultAuthHeader.name] = shimConfig.defaultAuthHeader.scheme === "bearer" ? `Bearer ${authValue}` : authValue;
173784
- } else {
173785
- headers.Authorization = `Bearer ${authValue}`;
173786
- }
173787
- } else if (isGemini) {
173836
+ applyAuthHeader();
173837
+ if (!getApiKey() && isGemini) {
173788
173838
  const geminiCredential = await resolveGeminiCredential(process.env);
173789
173839
  if (geminiCredential.kind !== "none") {
173790
173840
  headers.Authorization = `Bearer ${geminiCredential.credential}`;
@@ -173847,7 +173897,7 @@ class OpenAIShimMessages {
173847
173897
  signal: options2?.signal
173848
173898
  });
173849
173899
  const maxSelfHealAttempts = isLocal ? localRetryBaseUrls.length + 1 : 0;
173850
- const maxAttempts = (isGithub ? GITHUB_429_MAX_RETRIES : 1) + maxSelfHealAttempts;
173900
+ const maxAttempts = (isGithub ? GITHUB_429_MAX_RETRIES : 1) + maxSelfHealAttempts + (isVerbooRouterUrl(request.baseUrl) && this.providerOverride?.refreshApiKey ? 1 : 0);
173851
173901
  const throwClassifiedTransportError = (error41, requestUrl2, preclassifiedFailure) => {
173852
173902
  if (options2?.signal?.aborted) {
173853
173903
  throw error41;
@@ -173866,12 +173916,16 @@ class OpenAIShimMessages {
173866
173916
  body: errorBody,
173867
173917
  url: requestUrl2
173868
173918
  });
173869
- const failureWithUrl = { ...failure, requestUrl: failure.requestUrl ?? requestUrl2 };
173919
+ const failureWithUrl = {
173920
+ ...failure,
173921
+ requestUrl: failure.requestUrl ?? requestUrl2
173922
+ };
173870
173923
  const redactedUrl = redactUrlForDiagnostics(requestUrl2);
173871
173924
  logForDebugging(`[OpenAIShim] request failed category=${failure.category} retryable=${failure.retryable} status=${status} method=POST url=${redactedUrl} model=${request.resolvedModel}`, { level: "warn" });
173872
173925
  throw APIError.generate(status, parsedBody, buildOpenAICompatibilityErrorMessage(`OpenAI API error ${status}: ${errorBody}${rateHint}`, failureWithUrl), responseHeaders);
173873
173926
  };
173874
173927
  let response;
173928
+ let didRetryVerbooAuth = false;
173875
173929
  const provider = request.baseUrl.includes("nvidia") ? "nvidia-nim" : request.baseUrl.includes("minimax") ? "minimax" : request.baseUrl.includes("xiaomimimo") || request.baseUrl.includes("mimo-v2") ? "xiaomi-mimo" : request.baseUrl.includes("localhost:11434") || request.baseUrl.includes("localhost:11435") ? "ollama" : request.baseUrl.includes("anthropic") ? "anthropic" : "openai";
173876
173930
  const { correlationId, startTime: startTime2 } = logApiCallStart(provider, request.resolvedModel);
173877
173931
  for (let attempt = 0;attempt < maxAttempts; attempt++) {
@@ -173905,6 +173959,16 @@ class OpenAIShimMessages {
173905
173959
  logApiCallEnd(correlationId, startTime2, request.resolvedModel, "success", tokensIn, tokensOut, Boolean(params.stream));
173906
173960
  return response;
173907
173961
  }
173962
+ if (!didRetryVerbooAuth && response.status === 401 && isVerbooRouterUrl(request.baseUrl) && this.providerOverride?.refreshApiKey) {
173963
+ didRetryVerbooAuth = true;
173964
+ const failedApiKey = getApiKey();
173965
+ await response.text().catch(() => {});
173966
+ const refreshedApiKey = await this.providerOverride.refreshApiKey(failedApiKey);
173967
+ if (refreshedApiKey) {
173968
+ applyAuthHeader();
173969
+ continue;
173970
+ }
173971
+ }
173908
173972
  if (isGithub && response.status === 429 && attempt < maxAttempts - 1) {
173909
173973
  await response.text().catch(() => {});
173910
173974
  const delaySec = Math.min(GITHUB_429_BASE_DELAY_SEC * 2 ** attempt, GITHUB_429_MAX_DELAY_SEC);
@@ -187923,7 +187987,7 @@ async function getAnthropicClient({
187923
187987
  defaultHeaders["x-anthropic-additional-protection"] = "true";
187924
187988
  }
187925
187989
  const shouldUseFirstPartyAuth = shouldUseFirstPartyAnthropicAuth(providerOverride);
187926
- if (shouldUseFirstPartyAuth) {
187990
+ if (shouldUseFirstPartyAuth || isVerbooMode()) {
187927
187991
  logForDebugging("[API:auth] OAuth token check starting");
187928
187992
  await checkAndRefreshOAuthTokenIfNeeded();
187929
187993
  logForDebugging("[API:auth] OAuth token check complete");
@@ -187966,7 +188030,12 @@ async function getAnthropicClient({
187966
188030
  providerOverride: {
187967
188031
  model: safeVerbooModel,
187968
188032
  baseURL: VERBOO_ROUTER_URL,
187969
- apiKey: accessToken ?? ""
188033
+ apiKey: accessToken ?? "",
188034
+ getApiKey: () => getClaudeAIOAuthTokens()?.accessToken ?? "",
188035
+ refreshApiKey: async (failedAccessToken) => {
188036
+ const recovered = await handleOAuth401Error(failedAccessToken);
188037
+ return recovered ? getClaudeAIOAuthTokens()?.accessToken ?? null : null;
188038
+ }
187970
188039
  }
187971
188040
  });
187972
188041
  }
@@ -281176,6 +281245,22 @@ var init_user = __esm(() => {
281176
281245
  });
281177
281246
  });
281178
281247
 
281248
+ // src/commands/logout/logoutState.ts
281249
+ function removeStoredVerbooOauth(secureStorage) {
281250
+ const storageData = secureStorage.read() ?? {};
281251
+ const refreshToken = storageData.verbooOauth?.refreshToken ?? null;
281252
+ if (!storageData.verbooOauth) {
281253
+ return refreshToken;
281254
+ }
281255
+ delete storageData.verbooOauth;
281256
+ const isEmpty = Object.keys(storageData).length === 0;
281257
+ const success2 = isEmpty ? secureStorage.delete() : secureStorage.update(storageData).success;
281258
+ if (!success2) {
281259
+ throw new Error("Failed to clear local Verboo credentials");
281260
+ }
281261
+ return refreshToken;
281262
+ }
281263
+
281179
281264
  // src/commands/logout/logout.tsx
281180
281265
  var exports_logout = {};
281181
281266
  __export(exports_logout, {
@@ -281183,16 +281268,27 @@ __export(exports_logout, {
281183
281268
  clearAuthRelatedCaches: () => clearAuthRelatedCaches,
281184
281269
  call: () => call
281185
281270
  });
281271
+ function isExternallyInjectedTokenSource(source) {
281272
+ return [
281273
+ "CLAUDE_CODE_OAUTH_TOKEN",
281274
+ "CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR",
281275
+ "CCR_OAUTH_TOKEN_FILE",
281276
+ "ANTHROPIC_AUTH_TOKEN"
281277
+ ].includes(source);
281278
+ }
281186
281279
  async function performLogout({
281187
281280
  clearOnboarding = false
281188
281281
  }) {
281189
- await removeApiKey();
281282
+ const authTokenSource = getAuthTokenSource().source;
281283
+ const refreshToken = removeStoredVerbooOauth(getSecureStorage());
281284
+ const remoteRevocation = refreshToken ? await revokeVerbooRefreshToken(refreshToken) ? "revoked" : "unconfirmed" : "not_applicable";
281285
+ if (!isVerbooMode()) {
281286
+ await removeApiKey();
281287
+ }
281190
281288
  if (isVerbooMode()) {
281191
281289
  resetVerbooSessionValidation();
281192
281290
  clearVerbooModelsCache();
281193
281291
  }
281194
- const secureStorage = getSecureStorage();
281195
- secureStorage.delete();
281196
281292
  await clearAuthRelatedCaches();
281197
281293
  saveGlobalConfig((current) => {
281198
281294
  const updated = {
@@ -281212,6 +281308,11 @@ async function performLogout({
281212
281308
  updated.oauthAccount = undefined;
281213
281309
  return updated;
281214
281310
  });
281311
+ return {
281312
+ localCleared: true,
281313
+ remoteRevocation,
281314
+ ...isExternallyInjectedTokenSource(authTokenSource) ? { externalTokenSource: authTokenSource } : {}
281315
+ };
281215
281316
  }
281216
281317
  async function clearAuthRelatedCaches() {
281217
281318
  getClaudeAIOAuthTokens.cache?.clear?.();
@@ -281226,11 +281327,15 @@ async function clearAuthRelatedCaches() {
281226
281327
  await clearPolicyLimitsCache();
281227
281328
  }
281228
281329
  async function call() {
281229
- await performLogout({
281330
+ const result = await performLogout({
281230
281331
  clearOnboarding: true
281231
281332
  });
281232
- const message = isVerbooMode() ? /* @__PURE__ */ jsx_runtime61.jsx(ThemedText, {
281233
- children: "Saiu da conta Verboo com sucesso."
281333
+ const message = isVerbooMode() ? /* @__PURE__ */ jsx_runtime61.jsxs(ThemedText, {
281334
+ children: [
281335
+ "Saiu da conta Verboo localmente.",
281336
+ result.remoteRevocation === "unconfirmed" ? " Não foi possível confirmar a revogação da sessão no servidor." : "",
281337
+ result.externalTokenSource ? ` ${result.externalTokenSource} ainda fornece uma credencial neste ambiente.` : ""
281338
+ ]
281234
281339
  }) : /* @__PURE__ */ jsx_runtime61.jsx(ThemedText, {
281235
281340
  children: "Successfully logged out from your Anthropic account."
281236
281341
  });
@@ -281250,6 +281355,7 @@ var init_logout = __esm(() => {
281250
281355
  init_oauth();
281251
281356
  init_verbooModels();
281252
281357
  init_verbooStartupAuth();
281358
+ init_client2();
281253
281359
  init_auth();
281254
281360
  init_betas2();
281255
281361
  init_config7();
@@ -298599,15 +298705,24 @@ async function authStatus(opts) {
298599
298705
  process.exit(loggedIn ? 0 : 1);
298600
298706
  }
298601
298707
  async function authLogout() {
298708
+ let result;
298602
298709
  try {
298603
- await performLogout({ clearOnboarding: false });
298710
+ result = await performLogout({ clearOnboarding: false });
298604
298711
  } catch {
298605
298712
  process.stderr.write(`Failed to log out.
298606
298713
  `);
298607
298714
  process.exit(1);
298608
298715
  }
298609
- process.stdout.write(`Successfully logged out from your Verboo account.
298716
+ process.stdout.write(`Successfully logged out from your Verboo account locally.
298717
+ `);
298718
+ if (result.remoteRevocation === "unconfirmed") {
298719
+ process.stderr.write(`Could not confirm server-side session revocation. Your local credentials were removed.
298720
+ `);
298721
+ }
298722
+ if (result.externalTokenSource) {
298723
+ process.stderr.write(`A credential from ${result.externalTokenSource} is still active in this shell. Remove it before starting Verboo again.
298610
298724
  `);
298725
+ }
298611
298726
  process.exit(0);
298612
298727
  }
298613
298728
  async function authLoginHeadless() {
@@ -298662,7 +298777,10 @@ Código não informado. Cancelado.
298662
298777
  }
298663
298778
  function readOneLine() {
298664
298779
  return new Promise((resolve21) => {
298665
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
298780
+ const rl = readline.createInterface({
298781
+ input: process.stdin,
298782
+ output: process.stdout
298783
+ });
298666
298784
  rl.once("line", (line) => {
298667
298785
  rl.close();
298668
298786
  resolve21(line);
@@ -393739,7 +393857,7 @@ function getAnthropicEnvMetadata() {
393739
393857
  function getBuildAgeMinutes() {
393740
393858
  if (false)
393741
393859
  ;
393742
- const buildTime = new Date("2026-07-13T19:37:58.646Z").getTime();
393860
+ const buildTime = new Date("2026-07-14T19:32:10.376Z").getTime();
393743
393861
  if (isNaN(buildTime))
393744
393862
  return;
393745
393863
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -421994,7 +422112,7 @@ function buildPrimarySection() {
421994
422112
  });
421995
422113
  return [{
421996
422114
  label: "Version",
421997
- value: "0.13.0"
422115
+ value: "0.13.1"
421998
422116
  }, {
421999
422117
  label: "Session name",
422000
422118
  value: nameValue
@@ -434923,7 +435041,7 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
434923
435041
  return `${VERBOO_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
434924
435042
  }
434925
435043
  function getPublicBuildVersion() {
434926
- return "0.13.0";
435044
+ return "0.13.1";
434927
435045
  }
434928
435046
  var import_semver10, VERBOO_RELEASES_URL = "https://github.com/verbeux-ai/code/releases", fallbackBuildVersion, publicBuildVersion;
434929
435047
  var init_version = __esm(() => {
@@ -486182,7 +486300,7 @@ var init_bridge_kick = __esm(() => {
486182
486300
  var call63 = async () => {
486183
486301
  return {
486184
486302
  type: "text",
486185
- value: `${"99.0.0"} (built ${"2026-07-13T19:37:58.646Z"})`
486303
+ value: `${"99.0.0"} (built ${"2026-07-14T19:32:10.376Z"})`
486186
486304
  };
486187
486305
  }, version2, version_default;
486188
486306
  var init_version2 = __esm(() => {
@@ -519255,7 +519373,7 @@ function printStartupScreen(modelOverride) {
519255
519373
  const home = process.env.HOME || process.env.USERPROFILE || "";
519256
519374
  const cwd2 = process.cwd();
519257
519375
  const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
519258
- const version3 = "0.13.0";
519376
+ const version3 = "0.13.1";
519259
519377
  const bold2 = `${ESC4}1m`;
519260
519378
  const PURPLE = rgb3(...ACCENT);
519261
519379
  const SOFT = rgb3(...CREAM);
@@ -537547,7 +537665,7 @@ var init_routerRateLimitHook = __esm(() => {
537547
537665
  function getSemverPart(version3) {
537548
537666
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
537549
537667
  }
537550
- function useUpdateNotification(updatedVersion, initialVersion = "0.13.0") {
537668
+ function useUpdateNotification(updatedVersion, initialVersion = "0.13.1") {
537551
537669
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
537552
537670
  const [pendingNotification2, setPendingNotification] = import_react225.useState(null);
537553
537671
  if (updatedVersion) {
@@ -537587,7 +537705,7 @@ function AutoUpdater({
537587
537705
  return;
537588
537706
  }
537589
537707
  if (false) {}
537590
- const currentVersion = "0.13.0";
537708
+ const currentVersion = "0.13.1";
537591
537709
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
537592
537710
  let latestVersion = await getLatestVersion(channel2);
537593
537711
  const isDisabled = isAutoUpdaterDisabled();
@@ -537940,17 +538058,17 @@ function PackageManagerAutoUpdater(t0) {
537940
538058
  const maxVersion = await getMaxVersion();
537941
538059
  if (maxVersion && latest && gt(latest, maxVersion)) {
537942
538060
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
537943
- if (gte("0.13.0", maxVersion)) {
537944
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.13.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
538061
+ if (gte("0.13.1", maxVersion)) {
538062
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"0.13.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
537945
538063
  setUpdateAvailable(false);
537946
538064
  return;
537947
538065
  }
537948
538066
  latest = maxVersion;
537949
538067
  }
537950
- const hasUpdate = latest && !gte("0.13.0", latest) && !shouldSkipVersion(latest);
538068
+ const hasUpdate = latest && !gte("0.13.1", latest) && !shouldSkipVersion(latest);
537951
538069
  setUpdateAvailable(!!hasUpdate);
537952
538070
  if (hasUpdate) {
537953
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.13.0"} -> ${latest}`);
538071
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.13.1"} -> ${latest}`);
537954
538072
  }
537955
538073
  };
537956
538074
  $2[0] = t1;
@@ -537984,7 +538102,7 @@ function PackageManagerAutoUpdater(t0) {
537984
538102
  wrap: "truncate",
537985
538103
  children: [
537986
538104
  "currentVersion: ",
537987
- "0.13.0"
538105
+ "0.13.1"
537988
538106
  ]
537989
538107
  });
537990
538108
  $2[3] = verbose;
@@ -553935,10 +554053,10 @@ async function autoUpdateCliInBackground() {
553935
554053
  return;
553936
554054
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
553937
554055
  const latest = await getLatestVersion(channel2);
553938
- if (!latest || gte("0.13.0", latest))
554056
+ if (!latest || gte("0.13.1", latest))
553939
554057
  return;
553940
554058
  writeToStdout(`
553941
- Nova versão disponível: ${latest} (atual: ${"0.13.0"})
554059
+ Nova versão disponível: ${latest} (atual: ${"0.13.1"})
553942
554060
  `);
553943
554061
  writeToStdout(`Atualizando automaticamente...
553944
554062
  `);
@@ -571632,7 +571750,7 @@ function WelcomeV2() {
571632
571750
  dimColor: true,
571633
571751
  children: [
571634
571752
  "v",
571635
- "0.13.0",
571753
+ "0.13.1",
571636
571754
  " "
571637
571755
  ]
571638
571756
  })
@@ -571819,7 +571937,7 @@ function WelcomeV2() {
571819
571937
  dimColor: true,
571820
571938
  children: [
571821
571939
  "v",
571822
- "0.13.0",
571940
+ "0.13.1",
571823
571941
  " "
571824
571942
  ]
571825
571943
  })
@@ -572035,7 +572153,7 @@ function AppleTerminalWelcomeV2(t0) {
572035
572153
  dimColor: true,
572036
572154
  children: [
572037
572155
  "v",
572038
- "0.13.0",
572156
+ "0.13.1",
572039
572157
  " "
572040
572158
  ]
572041
572159
  });
@@ -572244,7 +572362,7 @@ function AppleTerminalWelcomeV2(t0) {
572244
572362
  dimColor: true,
572245
572363
  children: [
572246
572364
  "v",
572247
- "0.13.0",
572365
+ "0.13.1",
572248
572366
  " "
572249
572367
  ]
572250
572368
  });
@@ -589646,7 +589764,7 @@ __export(exports_update, {
589646
589764
  });
589647
589765
  async function update() {
589648
589766
  logEvent("tengu_update_check", {});
589649
- writeToStdout(`Current version: ${"0.13.0"}
589767
+ writeToStdout(`Current version: ${"0.13.1"}
589650
589768
  `);
589651
589769
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
589652
589770
  writeToStdout(`Checking for updates to ${channel2} version...
@@ -589731,8 +589849,8 @@ async function update() {
589731
589849
  writeToStdout(`Verboo Code is managed by Homebrew.
589732
589850
  `);
589733
589851
  const latest = await getLatestVersion(channel2);
589734
- if (latest && !gte("0.13.0", latest)) {
589735
- writeToStdout(`Update available: ${"0.13.0"} → ${latest}
589852
+ if (latest && !gte("0.13.1", latest)) {
589853
+ writeToStdout(`Update available: ${"0.13.1"} → ${latest}
589736
589854
  `);
589737
589855
  writeToStdout(`
589738
589856
  `);
@@ -589748,8 +589866,8 @@ async function update() {
589748
589866
  writeToStdout(`Verboo Code is managed by winget.
589749
589867
  `);
589750
589868
  const latest = await getLatestVersion(channel2);
589751
- if (latest && !gte("0.13.0", latest)) {
589752
- writeToStdout(`Update available: ${"0.13.0"} → ${latest}
589869
+ if (latest && !gte("0.13.1", latest)) {
589870
+ writeToStdout(`Update available: ${"0.13.1"} → ${latest}
589753
589871
  `);
589754
589872
  writeToStdout(`
589755
589873
  `);
@@ -589765,8 +589883,8 @@ async function update() {
589765
589883
  writeToStdout(`Verboo Code is managed by apk.
589766
589884
  `);
589767
589885
  const latest = await getLatestVersion(channel2);
589768
- if (latest && !gte("0.13.0", latest)) {
589769
- writeToStdout(`Update available: ${"0.13.0"} → ${latest}
589886
+ if (latest && !gte("0.13.1", latest)) {
589887
+ writeToStdout(`Update available: ${"0.13.1"} → ${latest}
589770
589888
  `);
589771
589889
  writeToStdout(`
589772
589890
  `);
@@ -589819,11 +589937,11 @@ async function update() {
589819
589937
  `);
589820
589938
  await gracefulShutdown(1);
589821
589939
  }
589822
- if (result.latestVersion === "0.13.0") {
589823
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.0"})`) + `
589940
+ if (result.latestVersion === "0.13.1") {
589941
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.1"})`) + `
589824
589942
  `);
589825
589943
  } else {
589826
- writeToStdout(source_default.green(`Successfully updated from ${"0.13.0"} to version ${result.latestVersion}`) + `
589944
+ writeToStdout(source_default.green(`Successfully updated from ${"0.13.1"} to version ${result.latestVersion}`) + `
589827
589945
  `);
589828
589946
  await regenerateCompletionCache();
589829
589947
  }
@@ -589883,12 +590001,12 @@ async function update() {
589883
590001
  `);
589884
590002
  await gracefulShutdown(1);
589885
590003
  }
589886
- if (latestVersion === "0.13.0") {
589887
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.0"})`) + `
590004
+ if (latestVersion === "0.13.1") {
590005
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.1"})`) + `
589888
590006
  `);
589889
590007
  await gracefulShutdown(0);
589890
590008
  }
589891
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.13.0"})
590009
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.13.1"})
589892
590010
  `);
589893
590011
  writeToStdout(`Installing update...
589894
590012
  `);
@@ -589933,7 +590051,7 @@ async function update() {
589933
590051
  logForDebugging(`update: Installation status: ${status2}`);
589934
590052
  switch (status2) {
589935
590053
  case "success":
589936
- writeToStdout(source_default.green(`Successfully updated from ${"0.13.0"} to version ${latestVersion}`) + `
590054
+ writeToStdout(source_default.green(`Successfully updated from ${"0.13.1"} to version ${latestVersion}`) + `
589937
590055
  `);
589938
590056
  await regenerateCompletionCache();
589939
590057
  break;
@@ -591188,7 +591306,7 @@ ${customInstructions}` : customInstructions;
591188
591306
  is_native_binary: isInBundledMode()
591189
591307
  });
591190
591308
  logMemoryDiagnostics("start", {
591191
- version: "0.13.0",
591309
+ version: "0.13.1",
591192
591310
  debug: debug2,
591193
591311
  debugToStderr,
591194
591312
  print: print ?? false,
@@ -591999,7 +592117,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
591999
592117
  pendingHookMessages
592000
592118
  }, renderAndRun);
592001
592119
  }
592002
- }).version(`0.13.0 (${cliDesc})`, "-v, --version", "Output the version number");
592120
+ }).version(`0.13.1 (${cliDesc})`, "-v, --version", "Output the version number");
592003
592121
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
592004
592122
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
592005
592123
  if (canUserConfigureAdvisor()) {
@@ -592574,7 +592692,7 @@ if (false) {}
592574
592692
  async function main2() {
592575
592693
  const args = process.argv.slice(2);
592576
592694
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
592577
- console.log(`${"0.13.0"} (Verboo Code)`);
592695
+ console.log(`${"0.13.1"} (Verboo Code)`);
592578
592696
  return;
592579
592697
  }
592580
592698
  if (!IS_VERBOO_CLI && args.includes("--provider")) {
@@ -592748,4 +592866,4 @@ async function main2() {
592748
592866
  }
592749
592867
  main2();
592750
592868
 
592751
- //# debugId=4C258D3E6200781664756E2164756E21
592869
+ //# debugId=D352A9BC9A72F93D64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verboo/code",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "description": "Verboo Code — coding agent for the Verboo platform",
5
5
  "type": "module",
6
6
  "bin": {