@verboo/code 0.7.14 → 0.7.16

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 +119 -27
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -115518,7 +115518,7 @@ function printStartupScreen(modelOverride) {
115518
115518
  const home = process.env.HOME || process.env.USERPROFILE || "";
115519
115519
  const cwd2 = process.cwd();
115520
115520
  const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
115521
- const version2 = "0.7.14";
115521
+ const version2 = "0.7.16";
115522
115522
  const bold2 = `${ESC}1m`;
115523
115523
  const PURPLE = rgb(...ACCENT);
115524
115524
  const SOFT = rgb(...CREAM);
@@ -373108,9 +373108,20 @@ async function* runToolUse(toolUse, assistantMessage2, canUseTool, toolUseContex
373108
373108
  };
373109
373109
  return;
373110
373110
  }
373111
+ logForDebugging2(JSON.stringify({
373112
+ type: "runToolUse_entering_stream",
373113
+ toolName: tool.name,
373114
+ toolUseId: toolUse.id,
373115
+ inputKeys: Object.keys(toolInput ?? {})
373116
+ }), { level: "debug" });
373111
373117
  for await (const update of streamedCheckPermissionsAndCallTool(tool, toolUse.id, toolInput, toolUseContext, canUseTool, assistantMessage2, messageId, requestId, mcpServerType, mcpServerBaseUrl)) {
373112
373118
  yield update;
373113
373119
  }
373120
+ logForDebugging2(JSON.stringify({
373121
+ type: "runToolUse_stream_exited",
373122
+ toolName: tool.name,
373123
+ toolUseId: toolUse.id
373124
+ }), { level: "debug" });
373114
373125
  } catch (error42) {
373115
373126
  logError2(error42);
373116
373127
  const errorMessage2 = error42 instanceof Error ? error42.message : String(error42);
@@ -373378,7 +373389,21 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
373378
373389
  startToolBlockedOnUserSpan();
373379
373390
  const permissionMode = toolUseContext.getAppState().toolPermissionContext.mode;
373380
373391
  const permissionStart = Date.now();
373392
+ logForDebugging2(JSON.stringify({
373393
+ type: "permission_decision_awaiting",
373394
+ toolName: tool.name,
373395
+ toolUseId: toolUseID,
373396
+ permissionMode,
373397
+ hasHookResult: hookPermissionResult != null
373398
+ }), { level: "debug" });
373381
373399
  const resolved = await resolveHookPermissionDecision(hookPermissionResult, tool, processedInput, toolUseContext, canUseTool, assistantMessage2, toolUseID);
373400
+ logForDebugging2(JSON.stringify({
373401
+ type: "permission_decision_resolved",
373402
+ toolName: tool.name,
373403
+ toolUseId: toolUseID,
373404
+ decision: resolved.decision.behavior,
373405
+ durationMs: Date.now() - permissionStart
373406
+ }), { level: "debug" });
373382
373407
  const permissionDecision = resolved.decision;
373383
373408
  processedInput = resolved.input;
373384
373409
  const permissionDurationMs = Date.now() - permissionStart;
@@ -373979,6 +374004,15 @@ class StreamingToolExecutor {
373979
374004
  if (this.canExecuteTool(tool.isConcurrencySafe)) {
373980
374005
  await this.executeTool(tool);
373981
374006
  } else {
374007
+ if (isDebugMode()) {
374008
+ logForDebugging2(JSON.stringify({
374009
+ type: "streaming_tool_blocked_by_concurrency",
374010
+ toolName: tool.block.name,
374011
+ toolUseId: tool.id,
374012
+ isConcurrencySafe: tool.isConcurrencySafe,
374013
+ executingNames: this.tools.filter((t) => t.status === "executing").map((t) => `${t.block.name}(${t.isConcurrencySafe ? "safe" : "unsafe"})`)
374014
+ }), { level: "debug" });
374015
+ }
373982
374016
  if (!tool.isConcurrencySafe)
373983
374017
  break;
373984
374018
  }
@@ -374166,9 +374200,35 @@ class StreamingToolExecutor {
374166
374200
  if (this.discarded) {
374167
374201
  return;
374168
374202
  }
374203
+ const debug = isDebugMode();
374204
+ let lastProgressAt = Date.now();
374205
+ let iterations = 0;
374206
+ const snapshot2 = (event) => {
374207
+ if (!debug)
374208
+ return;
374209
+ const statuses = {};
374210
+ for (const t of this.tools) {
374211
+ statuses[t.status] = (statuses[t.status] ?? 0) + 1;
374212
+ }
374213
+ logForDebugging2(JSON.stringify({
374214
+ type: event,
374215
+ iterations,
374216
+ totalTools: this.tools.length,
374217
+ statuses,
374218
+ hasExecuting: this.hasExecutingTools(),
374219
+ hasCompleted: this.hasCompletedResults(),
374220
+ hasPendingProgress: this.hasPendingProgress(),
374221
+ msSinceProgress: Date.now() - lastProgressAt
374222
+ }), { level: "debug" });
374223
+ };
374169
374224
  while (this.hasUnfinishedTools()) {
374225
+ iterations++;
374226
+ snapshot2("streaming_tool_iter_start");
374170
374227
  await this.processQueue();
374228
+ let yieldedThisIter = false;
374171
374229
  for (const result of this.getCompletedResults()) {
374230
+ yieldedThisIter = true;
374231
+ lastProgressAt = Date.now();
374172
374232
  yield result;
374173
374233
  }
374174
374234
  if (this.hasExecutingTools() && !this.hasCompletedResults() && !this.hasPendingProgress()) {
@@ -374177,13 +374237,31 @@ class StreamingToolExecutor {
374177
374237
  this.progressAvailableResolve = resolve32;
374178
374238
  });
374179
374239
  if (executingPromises.length > 0) {
374180
- await Promise.race([...executingPromises, progressPromise]);
374240
+ if (debug) {
374241
+ const watchdog = new Promise((resolve32) => setTimeout(() => resolve32("watchdog"), TOOL_EXECUTOR_WATCHDOG_MS));
374242
+ const winner = await Promise.race([
374243
+ ...executingPromises,
374244
+ progressPromise,
374245
+ watchdog
374246
+ ]);
374247
+ if (winner === "watchdog") {
374248
+ snapshot2("streaming_tool_watchdog_fired");
374249
+ }
374250
+ } else {
374251
+ await Promise.race([...executingPromises, progressPromise]);
374252
+ }
374253
+ } else if (debug) {
374254
+ snapshot2("streaming_tool_executing_without_promise");
374181
374255
  }
374256
+ } else if (!yieldedThisIter && debug) {
374257
+ snapshot2("streaming_tool_iter_no_progress");
374182
374258
  }
374183
374259
  }
374184
374260
  for (const result of this.getCompletedResults()) {
374185
374261
  yield result;
374186
374262
  }
374263
+ if (debug)
374264
+ snapshot2("streaming_tool_loop_exit");
374187
374265
  }
374188
374266
  hasCompletedResults() {
374189
374267
  return this.tools.some((t) => t.status === "completed");
@@ -374205,10 +374283,12 @@ function markToolUseAsComplete2(toolUseContext, toolUseID) {
374205
374283
  return next;
374206
374284
  });
374207
374285
  }
374286
+ var TOOL_EXECUTOR_WATCHDOG_MS = 60000;
374208
374287
  var init_StreamingToolExecutor = __esm(() => {
374209
374288
  init_messages3();
374210
374289
  init_Tool();
374211
374290
  init_abortController();
374291
+ init_debug();
374212
374292
  init_toolExecution();
374213
374293
  });
374214
374294
 
@@ -376830,7 +376910,7 @@ function getAnthropicEnvMetadata() {
376830
376910
  function getBuildAgeMinutes() {
376831
376911
  if (false)
376832
376912
  ;
376833
- const buildTime = new Date("2026-05-01T23:21:37.506Z").getTime();
376913
+ const buildTime = new Date("2026-05-02T16:01:58.016Z").getTime();
376834
376914
  if (isNaN(buildTime))
376835
376915
  return;
376836
376916
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -417366,7 +417446,7 @@ function buildPrimarySection() {
417366
417446
  }, undefined, false, undefined, this);
417367
417447
  return [{
417368
417448
  label: "Version",
417369
- value: "0.7.14"
417449
+ value: "0.7.16"
417370
417450
  }, {
417371
417451
  label: "Session name",
417372
417452
  value: nameValue
@@ -485316,7 +485396,7 @@ var init_bridge_kick = __esm(() => {
485316
485396
  var call60 = async () => {
485317
485397
  return {
485318
485398
  type: "text",
485319
- value: `${"99.0.0"} (built ${"2026-05-01T23:21:37.506Z"})`
485399
+ value: `${"99.0.0"} (built ${"2026-05-02T16:01:58.016Z"})`
485320
485400
  };
485321
485401
  }, version2, version_default;
485322
485402
  var init_version = __esm(() => {
@@ -550726,6 +550806,18 @@ ${blue2(`/plugin install vercel@${OFFICIAL_MARKETPLACE_NAME}`)}`;
550726
550806
  const config3 = getGlobalConfig();
550727
550807
  return config3.numStartups > 5;
550728
550808
  }
550809
+ },
550810
+ {
550811
+ id: "karpathy-guidelines",
550812
+ content: async (ctx) => {
550813
+ const blue2 = color("suggestion", ctx.theme);
550814
+ return `Use ${blue2("/karpathy-guidelines")} to apply Andrej Karpathy's coding principles: think before coding, simplicity first, surgical changes`;
550815
+ },
550816
+ cooldownSessions: 20,
550817
+ async isRelevant() {
550818
+ const config3 = getGlobalConfig();
550819
+ return config3.numStartups > 3;
550820
+ }
550729
550821
  }
550730
550822
  ];
550731
550823
  internalOnlyTips = [];
@@ -561086,7 +561178,7 @@ function WelcomeV2() {
561086
561178
  dimColor: true,
561087
561179
  children: [
561088
561180
  "v",
561089
- "0.7.14",
561181
+ "0.7.16",
561090
561182
  " "
561091
561183
  ]
561092
561184
  }, undefined, true, undefined, this)
@@ -561273,7 +561365,7 @@ function WelcomeV2() {
561273
561365
  dimColor: true,
561274
561366
  children: [
561275
561367
  "v",
561276
- "0.7.14",
561368
+ "0.7.16",
561277
561369
  " "
561278
561370
  ]
561279
561371
  }, undefined, true, undefined, this)
@@ -561489,7 +561581,7 @@ function AppleTerminalWelcomeV2(t0) {
561489
561581
  dimColor: true,
561490
561582
  children: [
561491
561583
  "v",
561492
- "0.7.14",
561584
+ "0.7.16",
561493
561585
  " "
561494
561586
  ]
561495
561587
  }, undefined, true, undefined, this);
@@ -561698,7 +561790,7 @@ function AppleTerminalWelcomeV2(t0) {
561698
561790
  dimColor: true,
561699
561791
  children: [
561700
561792
  "v",
561701
- "0.7.14",
561793
+ "0.7.16",
561702
561794
  " "
561703
561795
  ]
561704
561796
  }, undefined, true, undefined, this);
@@ -579829,7 +579921,7 @@ __export(exports_update, {
579829
579921
  async function update() {
579830
579922
  if (getAPIProvider() !== "firstParty") {
579831
579923
  writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
579832
- `) + `Current version: ${"0.7.14"}
579924
+ `) + `Current version: ${"0.7.16"}
579833
579925
 
579834
579926
  ` + `To update, reinstall from npm:
579835
579927
  ` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
@@ -579840,7 +579932,7 @@ async function update() {
579840
579932
  await gracefulShutdown(0);
579841
579933
  }
579842
579934
  logEvent("tengu_update_check", {});
579843
- writeToStdout(`Current version: ${"0.7.14"}
579935
+ writeToStdout(`Current version: ${"0.7.16"}
579844
579936
  `);
579845
579937
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
579846
579938
  writeToStdout(`Checking for updates to ${channel} version...
@@ -579925,8 +580017,8 @@ async function update() {
579925
580017
  writeToStdout(`Claude is managed by Homebrew.
579926
580018
  `);
579927
580019
  const latest = await getLatestVersion(channel);
579928
- if (latest && !gte("0.7.14", latest)) {
579929
- writeToStdout(`Update available: ${"0.7.14"} → ${latest}
580020
+ if (latest && !gte("0.7.16", latest)) {
580021
+ writeToStdout(`Update available: ${"0.7.16"} → ${latest}
579930
580022
  `);
579931
580023
  writeToStdout(`
579932
580024
  `);
@@ -579942,8 +580034,8 @@ async function update() {
579942
580034
  writeToStdout(`Claude is managed by winget.
579943
580035
  `);
579944
580036
  const latest = await getLatestVersion(channel);
579945
- if (latest && !gte("0.7.14", latest)) {
579946
- writeToStdout(`Update available: ${"0.7.14"} → ${latest}
580037
+ if (latest && !gte("0.7.16", latest)) {
580038
+ writeToStdout(`Update available: ${"0.7.16"} → ${latest}
579947
580039
  `);
579948
580040
  writeToStdout(`
579949
580041
  `);
@@ -579959,8 +580051,8 @@ async function update() {
579959
580051
  writeToStdout(`Claude is managed by apk.
579960
580052
  `);
579961
580053
  const latest = await getLatestVersion(channel);
579962
- if (latest && !gte("0.7.14", latest)) {
579963
- writeToStdout(`Update available: ${"0.7.14"} → ${latest}
580054
+ if (latest && !gte("0.7.16", latest)) {
580055
+ writeToStdout(`Update available: ${"0.7.16"} → ${latest}
579964
580056
  `);
579965
580057
  writeToStdout(`
579966
580058
  `);
@@ -580025,11 +580117,11 @@ async function update() {
580025
580117
  `);
580026
580118
  await gracefulShutdown(1);
580027
580119
  }
580028
- if (result.latestVersion === "0.7.14") {
580029
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.14"})`) + `
580120
+ if (result.latestVersion === "0.7.16") {
580121
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.16"})`) + `
580030
580122
  `);
580031
580123
  } else {
580032
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.14"} to version ${result.latestVersion}`) + `
580124
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.16"} to version ${result.latestVersion}`) + `
580033
580125
  `);
580034
580126
  await regenerateCompletionCache();
580035
580127
  }
@@ -580089,12 +580181,12 @@ async function update() {
580089
580181
  `);
580090
580182
  await gracefulShutdown(1);
580091
580183
  }
580092
- if (latestVersion === "0.7.14") {
580093
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.14"})`) + `
580184
+ if (latestVersion === "0.7.16") {
580185
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.16"})`) + `
580094
580186
  `);
580095
580187
  await gracefulShutdown(0);
580096
580188
  }
580097
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.14"})
580189
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.16"})
580098
580190
  `);
580099
580191
  writeToStdout(`Installing update...
580100
580192
  `);
@@ -580139,7 +580231,7 @@ async function update() {
580139
580231
  logForDebugging2(`update: Installation status: ${status2}`);
580140
580232
  switch (status2) {
580141
580233
  case "success":
580142
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.14"} to version ${latestVersion}`) + `
580234
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.16"} to version ${latestVersion}`) + `
580143
580235
  `);
580144
580236
  await regenerateCompletionCache();
580145
580237
  break;
@@ -582192,7 +582284,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
582192
582284
  pendingHookMessages
582193
582285
  }, renderAndRun);
582194
582286
  }
582195
- }).version(`0.7.14 (${cliDesc})`, "-v, --version", "Output the version number");
582287
+ }).version(`0.7.16 (${cliDesc})`, "-v, --version", "Output the version number");
582196
582288
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
582197
582289
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
582198
582290
  if (canUserConfigureAdvisor()) {
@@ -582760,7 +582852,7 @@ if (false) {}
582760
582852
  async function main2() {
582761
582853
  const args = process.argv.slice(2);
582762
582854
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
582763
- console.log(`${"0.7.14"} (Verboo Code)`);
582855
+ console.log(`${"0.7.16"} (Verboo Code)`);
582764
582856
  return;
582765
582857
  }
582766
582858
  if (args.includes("--provider")) {
@@ -582916,4 +583008,4 @@ async function main2() {
582916
583008
  }
582917
583009
  main2();
582918
583010
 
582919
- //# debugId=1E427B195CA6CAB364756E2164756E21
583011
+ //# debugId=01D19E1713D2CE3D64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verboo/code",
3
- "version": "0.7.14",
3
+ "version": "0.7.16",
4
4
  "description": "Verboo Code — coding agent for the Verboo platform",
5
5
  "type": "module",
6
6
  "bin": {