@verboo/code 0.7.6 → 0.7.7

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.
package/dist/cli.mjs CHANGED
@@ -115487,7 +115487,7 @@ function printStartupScreen(modelOverride) {
115487
115487
  const home = process.env.HOME || process.env.USERPROFILE || "";
115488
115488
  const cwd2 = process.cwd();
115489
115489
  const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
115490
- const version2 = "0.7.6";
115490
+ const version2 = "0.7.7";
115491
115491
  const bold2 = `${ESC}1m`;
115492
115492
  const PURPLE = rgb(...ACCENT);
115493
115493
  const SOFT = rgb(...CREAM);
@@ -376716,7 +376716,7 @@ function getAnthropicEnvMetadata() {
376716
376716
  function getBuildAgeMinutes() {
376717
376717
  if (false)
376718
376718
  ;
376719
- const buildTime = new Date("2026-04-29T17:24:37.768Z").getTime();
376719
+ const buildTime = new Date("2026-04-29T17:32:40.324Z").getTime();
376720
376720
  if (isNaN(buildTime))
376721
376721
  return;
376722
376722
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -417243,7 +417243,7 @@ function buildPrimarySection() {
417243
417243
  }, undefined, false, undefined, this);
417244
417244
  return [{
417245
417245
  label: "Version",
417246
- value: "0.7.6"
417246
+ value: "0.7.7"
417247
417247
  }, {
417248
417248
  label: "Session name",
417249
417249
  value: nameValue
@@ -485193,7 +485193,7 @@ var init_bridge_kick = __esm(() => {
485193
485193
  var call60 = async () => {
485194
485194
  return {
485195
485195
  type: "text",
485196
- value: `${"99.0.0"} (built ${"2026-04-29T17:24:37.768Z"})`
485196
+ value: `${"99.0.0"} (built ${"2026-04-29T17:32:40.324Z"})`
485197
485197
  };
485198
485198
  }, version2, version_default;
485199
485199
  var init_version = __esm(() => {
@@ -487686,6 +487686,26 @@ async function validateModel(model) {
487686
487686
  if (!normalizedModel) {
487687
487687
  return { valid: false, error: "Model name cannot be empty" };
487688
487688
  }
487689
+ if (isVerbooMode()) {
487690
+ const verbooModels = getCachedVerbooModels();
487691
+ if (verbooModels && verbooModels.length > 0) {
487692
+ const found = verbooModels.some((m) => m.id === normalizedModel);
487693
+ if (found) {
487694
+ validModelCache.set(normalizedModel, true);
487695
+ return { valid: true };
487696
+ }
487697
+ const MAX_SHOWN = 5;
487698
+ const names = verbooModels.map((m) => m.id);
487699
+ const shown = names.slice(0, MAX_SHOWN).join(", ");
487700
+ const suffix = names.length > MAX_SHOWN ? ` e mais ${names.length - MAX_SHOWN}` : "";
487701
+ return {
487702
+ valid: false,
487703
+ error: `Modelo '${normalizedModel}' não disponível. Disponíveis: ${shown}${suffix}`
487704
+ };
487705
+ }
487706
+ validModelCache.set(normalizedModel, true);
487707
+ return { valid: true };
487708
+ }
487689
487709
  if (getAPIProvider() === "openai" && isOllamaProvider()) {
487690
487710
  const ollamaModels = getCachedOllamaModelOptions();
487691
487711
  const found = ollamaModels.some((m) => m.value === normalizedModel);
@@ -487833,6 +487853,8 @@ var init_validateModel = __esm(() => {
487833
487853
  init_ollamaModels();
487834
487854
  init_nvidiaNimModels();
487835
487855
  init_minimaxModels();
487856
+ init_oauth();
487857
+ init_verbooModels();
487836
487858
  validModelCache = new Map;
487837
487859
  });
487838
487860
 
@@ -509891,7 +509913,7 @@ function preconnectAnthropicApi() {
509891
509913
  if (process.env.HTTPS_PROXY || process.env.https_proxy || process.env.HTTP_PROXY || process.env.http_proxy || process.env.ANTHROPIC_UNIX_SOCKET || process.env.CLAUDE_CODE_CLIENT_CERT || process.env.CLAUDE_CODE_CLIENT_KEY) {
509892
509914
  return;
509893
509915
  }
509894
- const baseUrl = process.env.ANTHROPIC_BASE_URL || getOauthConfig().BASE_API_URL;
509916
+ const baseUrl = isVerbooMode() ? getOauthConfig().BASE_API_URL : process.env.ANTHROPIC_BASE_URL || getOauthConfig().BASE_API_URL;
509895
509917
  fetch(baseUrl, {
509896
509918
  method: "HEAD",
509897
509919
  signal: AbortSignal.timeout(1e4)
@@ -560829,7 +560851,7 @@ function WelcomeV2() {
560829
560851
  dimColor: true,
560830
560852
  children: [
560831
560853
  "v",
560832
- "0.7.6",
560854
+ "0.7.7",
560833
560855
  " "
560834
560856
  ]
560835
560857
  }, undefined, true, undefined, this)
@@ -561016,7 +561038,7 @@ function WelcomeV2() {
561016
561038
  dimColor: true,
561017
561039
  children: [
561018
561040
  "v",
561019
- "0.7.6",
561041
+ "0.7.7",
561020
561042
  " "
561021
561043
  ]
561022
561044
  }, undefined, true, undefined, this)
@@ -561232,7 +561254,7 @@ function AppleTerminalWelcomeV2(t0) {
561232
561254
  dimColor: true,
561233
561255
  children: [
561234
561256
  "v",
561235
- "0.7.6",
561257
+ "0.7.7",
561236
561258
  " "
561237
561259
  ]
561238
561260
  }, undefined, true, undefined, this);
@@ -561441,7 +561463,7 @@ function AppleTerminalWelcomeV2(t0) {
561441
561463
  dimColor: true,
561442
561464
  children: [
561443
561465
  "v",
561444
- "0.7.6",
561466
+ "0.7.7",
561445
561467
  " "
561446
561468
  ]
561447
561469
  }, undefined, true, undefined, this);
@@ -579469,7 +579491,7 @@ __export(exports_update, {
579469
579491
  async function update() {
579470
579492
  if (getAPIProvider() !== "firstParty") {
579471
579493
  writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
579472
- `) + `Current version: ${"0.7.6"}
579494
+ `) + `Current version: ${"0.7.7"}
579473
579495
 
579474
579496
  ` + `To update, reinstall from npm:
579475
579497
  ` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
@@ -579480,7 +579502,7 @@ async function update() {
579480
579502
  await gracefulShutdown(0);
579481
579503
  }
579482
579504
  logEvent("tengu_update_check", {});
579483
- writeToStdout(`Current version: ${"0.7.6"}
579505
+ writeToStdout(`Current version: ${"0.7.7"}
579484
579506
  `);
579485
579507
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
579486
579508
  writeToStdout(`Checking for updates to ${channel} version...
@@ -579565,8 +579587,8 @@ async function update() {
579565
579587
  writeToStdout(`Claude is managed by Homebrew.
579566
579588
  `);
579567
579589
  const latest = await getLatestVersion(channel);
579568
- if (latest && !gte("0.7.6", latest)) {
579569
- writeToStdout(`Update available: ${"0.7.6"} → ${latest}
579590
+ if (latest && !gte("0.7.7", latest)) {
579591
+ writeToStdout(`Update available: ${"0.7.7"} → ${latest}
579570
579592
  `);
579571
579593
  writeToStdout(`
579572
579594
  `);
@@ -579582,8 +579604,8 @@ async function update() {
579582
579604
  writeToStdout(`Claude is managed by winget.
579583
579605
  `);
579584
579606
  const latest = await getLatestVersion(channel);
579585
- if (latest && !gte("0.7.6", latest)) {
579586
- writeToStdout(`Update available: ${"0.7.6"} → ${latest}
579607
+ if (latest && !gte("0.7.7", latest)) {
579608
+ writeToStdout(`Update available: ${"0.7.7"} → ${latest}
579587
579609
  `);
579588
579610
  writeToStdout(`
579589
579611
  `);
@@ -579599,8 +579621,8 @@ async function update() {
579599
579621
  writeToStdout(`Claude is managed by apk.
579600
579622
  `);
579601
579623
  const latest = await getLatestVersion(channel);
579602
- if (latest && !gte("0.7.6", latest)) {
579603
- writeToStdout(`Update available: ${"0.7.6"} → ${latest}
579624
+ if (latest && !gte("0.7.7", latest)) {
579625
+ writeToStdout(`Update available: ${"0.7.7"} → ${latest}
579604
579626
  `);
579605
579627
  writeToStdout(`
579606
579628
  `);
@@ -579665,11 +579687,11 @@ async function update() {
579665
579687
  `);
579666
579688
  await gracefulShutdown(1);
579667
579689
  }
579668
- if (result.latestVersion === "0.7.6") {
579669
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.6"})`) + `
579690
+ if (result.latestVersion === "0.7.7") {
579691
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.7"})`) + `
579670
579692
  `);
579671
579693
  } else {
579672
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.6"} to version ${result.latestVersion}`) + `
579694
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.7"} to version ${result.latestVersion}`) + `
579673
579695
  `);
579674
579696
  await regenerateCompletionCache();
579675
579697
  }
@@ -579729,12 +579751,12 @@ async function update() {
579729
579751
  `);
579730
579752
  await gracefulShutdown(1);
579731
579753
  }
579732
- if (latestVersion === "0.7.6") {
579733
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.6"})`) + `
579754
+ if (latestVersion === "0.7.7") {
579755
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.7"})`) + `
579734
579756
  `);
579735
579757
  await gracefulShutdown(0);
579736
579758
  }
579737
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.6"})
579759
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.7"})
579738
579760
  `);
579739
579761
  writeToStdout(`Installing update...
579740
579762
  `);
@@ -579779,7 +579801,7 @@ async function update() {
579779
579801
  logForDebugging2(`update: Installation status: ${status2}`);
579780
579802
  switch (status2) {
579781
579803
  case "success":
579782
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.6"} to version ${latestVersion}`) + `
579804
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.7"} to version ${latestVersion}`) + `
579783
579805
  `);
579784
579806
  await regenerateCompletionCache();
579785
579807
  break;
@@ -580384,7 +580406,7 @@ ${getTmuxInstallInstructions2()}
580384
580406
  const files2 = parseFileSpecs(fileSpecs);
580385
580407
  if (files2.length > 0) {
580386
580408
  const config3 = {
580387
- baseUrl: process.env.ANTHROPIC_BASE_URL || getOauthConfig().BASE_API_URL,
580409
+ baseUrl: isVerbooMode() ? getOauthConfig().BASE_API_URL : process.env.ANTHROPIC_BASE_URL || getOauthConfig().BASE_API_URL,
580388
580410
  oauthToken: sessionToken,
580389
580411
  sessionId: fileSessionId
580390
580412
  };
@@ -581832,7 +581854,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
581832
581854
  pendingHookMessages
581833
581855
  }, renderAndRun);
581834
581856
  }
581835
- }).version(`0.7.6 (${cliDesc})`, "-v, --version", "Output the version number");
581857
+ }).version(`0.7.7 (${cliDesc})`, "-v, --version", "Output the version number");
581836
581858
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
581837
581859
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
581838
581860
  if (canUserConfigureAdvisor()) {
@@ -582388,7 +582410,7 @@ if (false) {}
582388
582410
  async function main2() {
582389
582411
  const args = process.argv.slice(2);
582390
582412
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
582391
- console.log(`${"0.7.6"} (Verboo Code)`);
582413
+ console.log(`${"0.7.7"} (Verboo Code)`);
582392
582414
  return;
582393
582415
  }
582394
582416
  if (args.includes("--provider")) {
@@ -582543,4 +582565,4 @@ async function main2() {
582543
582565
  }
582544
582566
  main2();
582545
582567
 
582546
- //# debugId=4AD8E3B8240FB15564756E2164756E21
582568
+ //# debugId=2A7860A73BFAD4B264756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verboo/code",
3
- "version": "0.7.6",
3
+ "version": "0.7.7",
4
4
  "description": "Verboo Code — coding agent for the Verboo platform",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,10 +10,12 @@
10
10
  "bin/verboo",
11
11
  "bin/import-specifier.mjs",
12
12
  "dist/cli.mjs",
13
+ "scripts/postinstall.mjs",
13
14
  "README.md"
14
15
  ],
15
16
  "scripts": {
16
17
  "build": "bun run scripts/build.ts",
18
+ "postinstall": "node scripts/postinstall.mjs || true",
17
19
  "dev": "bun run build && node dist/cli.mjs",
18
20
  "dev:profile": "bun run scripts/provider-launch.ts",
19
21
  "dev:profile:fast": "bun run scripts/provider-launch.ts auto --fast --bare",
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Postinstall: garante que o binário `verboo` fique disponível no fish shell.
4
+ *
5
+ * O npm instala globalmente no prefixo retornado por `npm prefix -g` (ex:
6
+ * /usr/local ou ~/.npm-global). Shells bash/zsh geralmente já têm esse bin no
7
+ * PATH via .bashrc/.zshrc, mas o fish não herda essas configs — é preciso
8
+ * chamar `fish_add_path` explicitamente.
9
+ */
10
+
11
+ import { execFileSync, spawnSync } from 'node:child_process'
12
+ import { existsSync } from 'node:fs'
13
+ import { join } from 'node:path'
14
+
15
+ function isFishShell() {
16
+ const shell = process.env.SHELL ?? ''
17
+ const parent = process.env.FISH_VERSION // set by fish itself
18
+ return shell.endsWith('/fish') || parent !== undefined
19
+ }
20
+
21
+ function getNpmGlobalBin() {
22
+ try {
23
+ const prefix = execFileSync('npm', ['prefix', '-g'], { encoding: 'utf8' }).trim()
24
+ return join(prefix, 'bin')
25
+ } catch {
26
+ return null
27
+ }
28
+ }
29
+
30
+ function fishAddPath(dir) {
31
+ const result = spawnSync('fish', ['-c', `fish_add_path ${dir}`], {
32
+ stdio: 'inherit',
33
+ timeout: 5000,
34
+ })
35
+ return result.status === 0
36
+ }
37
+
38
+ if (isFishShell()) {
39
+ const binDir = getNpmGlobalBin()
40
+ if (binDir && existsSync(binDir)) {
41
+ const ok = fishAddPath(binDir)
42
+ if (ok) {
43
+ process.stdout.write(`[verboo] fish_add_path ${binDir} — feito.\n`)
44
+ } else {
45
+ process.stdout.write(
46
+ `[verboo] Não foi possível adicionar ${binDir} ao fish automaticamente.\n` +
47
+ ` Execute manualmente: fish_add_path ${binDir}\n`,
48
+ )
49
+ }
50
+ }
51
+ }