@verboo/code 0.7.15 → 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 +107 -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.15";
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:27:17.352Z").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.15"
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:27:17.352Z"})`
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(() => {
@@ -561098,7 +561178,7 @@ function WelcomeV2() {
561098
561178
  dimColor: true,
561099
561179
  children: [
561100
561180
  "v",
561101
- "0.7.15",
561181
+ "0.7.16",
561102
561182
  " "
561103
561183
  ]
561104
561184
  }, undefined, true, undefined, this)
@@ -561285,7 +561365,7 @@ function WelcomeV2() {
561285
561365
  dimColor: true,
561286
561366
  children: [
561287
561367
  "v",
561288
- "0.7.15",
561368
+ "0.7.16",
561289
561369
  " "
561290
561370
  ]
561291
561371
  }, undefined, true, undefined, this)
@@ -561501,7 +561581,7 @@ function AppleTerminalWelcomeV2(t0) {
561501
561581
  dimColor: true,
561502
561582
  children: [
561503
561583
  "v",
561504
- "0.7.15",
561584
+ "0.7.16",
561505
561585
  " "
561506
561586
  ]
561507
561587
  }, undefined, true, undefined, this);
@@ -561710,7 +561790,7 @@ function AppleTerminalWelcomeV2(t0) {
561710
561790
  dimColor: true,
561711
561791
  children: [
561712
561792
  "v",
561713
- "0.7.15",
561793
+ "0.7.16",
561714
561794
  " "
561715
561795
  ]
561716
561796
  }, undefined, true, undefined, this);
@@ -579841,7 +579921,7 @@ __export(exports_update, {
579841
579921
  async function update() {
579842
579922
  if (getAPIProvider() !== "firstParty") {
579843
579923
  writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
579844
- `) + `Current version: ${"0.7.15"}
579924
+ `) + `Current version: ${"0.7.16"}
579845
579925
 
579846
579926
  ` + `To update, reinstall from npm:
579847
579927
  ` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
@@ -579852,7 +579932,7 @@ async function update() {
579852
579932
  await gracefulShutdown(0);
579853
579933
  }
579854
579934
  logEvent("tengu_update_check", {});
579855
- writeToStdout(`Current version: ${"0.7.15"}
579935
+ writeToStdout(`Current version: ${"0.7.16"}
579856
579936
  `);
579857
579937
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
579858
579938
  writeToStdout(`Checking for updates to ${channel} version...
@@ -579937,8 +580017,8 @@ async function update() {
579937
580017
  writeToStdout(`Claude is managed by Homebrew.
579938
580018
  `);
579939
580019
  const latest = await getLatestVersion(channel);
579940
- if (latest && !gte("0.7.15", latest)) {
579941
- writeToStdout(`Update available: ${"0.7.15"} → ${latest}
580020
+ if (latest && !gte("0.7.16", latest)) {
580021
+ writeToStdout(`Update available: ${"0.7.16"} → ${latest}
579942
580022
  `);
579943
580023
  writeToStdout(`
579944
580024
  `);
@@ -579954,8 +580034,8 @@ async function update() {
579954
580034
  writeToStdout(`Claude is managed by winget.
579955
580035
  `);
579956
580036
  const latest = await getLatestVersion(channel);
579957
- if (latest && !gte("0.7.15", latest)) {
579958
- writeToStdout(`Update available: ${"0.7.15"} → ${latest}
580037
+ if (latest && !gte("0.7.16", latest)) {
580038
+ writeToStdout(`Update available: ${"0.7.16"} → ${latest}
579959
580039
  `);
579960
580040
  writeToStdout(`
579961
580041
  `);
@@ -579971,8 +580051,8 @@ async function update() {
579971
580051
  writeToStdout(`Claude is managed by apk.
579972
580052
  `);
579973
580053
  const latest = await getLatestVersion(channel);
579974
- if (latest && !gte("0.7.15", latest)) {
579975
- writeToStdout(`Update available: ${"0.7.15"} → ${latest}
580054
+ if (latest && !gte("0.7.16", latest)) {
580055
+ writeToStdout(`Update available: ${"0.7.16"} → ${latest}
579976
580056
  `);
579977
580057
  writeToStdout(`
579978
580058
  `);
@@ -580037,11 +580117,11 @@ async function update() {
580037
580117
  `);
580038
580118
  await gracefulShutdown(1);
580039
580119
  }
580040
- if (result.latestVersion === "0.7.15") {
580041
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.15"})`) + `
580120
+ if (result.latestVersion === "0.7.16") {
580121
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.16"})`) + `
580042
580122
  `);
580043
580123
  } else {
580044
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.15"} to version ${result.latestVersion}`) + `
580124
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.16"} to version ${result.latestVersion}`) + `
580045
580125
  `);
580046
580126
  await regenerateCompletionCache();
580047
580127
  }
@@ -580101,12 +580181,12 @@ async function update() {
580101
580181
  `);
580102
580182
  await gracefulShutdown(1);
580103
580183
  }
580104
- if (latestVersion === "0.7.15") {
580105
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.15"})`) + `
580184
+ if (latestVersion === "0.7.16") {
580185
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.16"})`) + `
580106
580186
  `);
580107
580187
  await gracefulShutdown(0);
580108
580188
  }
580109
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.15"})
580189
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.16"})
580110
580190
  `);
580111
580191
  writeToStdout(`Installing update...
580112
580192
  `);
@@ -580151,7 +580231,7 @@ async function update() {
580151
580231
  logForDebugging2(`update: Installation status: ${status2}`);
580152
580232
  switch (status2) {
580153
580233
  case "success":
580154
- writeToStdout(source_default.green(`Successfully updated from ${"0.7.15"} to version ${latestVersion}`) + `
580234
+ writeToStdout(source_default.green(`Successfully updated from ${"0.7.16"} to version ${latestVersion}`) + `
580155
580235
  `);
580156
580236
  await regenerateCompletionCache();
580157
580237
  break;
@@ -582204,7 +582284,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
582204
582284
  pendingHookMessages
582205
582285
  }, renderAndRun);
582206
582286
  }
582207
- }).version(`0.7.15 (${cliDesc})`, "-v, --version", "Output the version number");
582287
+ }).version(`0.7.16 (${cliDesc})`, "-v, --version", "Output the version number");
582208
582288
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
582209
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.");
582210
582290
  if (canUserConfigureAdvisor()) {
@@ -582772,7 +582852,7 @@ if (false) {}
582772
582852
  async function main2() {
582773
582853
  const args = process.argv.slice(2);
582774
582854
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
582775
- console.log(`${"0.7.15"} (Verboo Code)`);
582855
+ console.log(`${"0.7.16"} (Verboo Code)`);
582776
582856
  return;
582777
582857
  }
582778
582858
  if (args.includes("--provider")) {
@@ -582928,4 +583008,4 @@ async function main2() {
582928
583008
  }
582929
583009
  main2();
582930
583010
 
582931
- //# debugId=B263602A81EA817364756E2164756E21
583011
+ //# debugId=01D19E1713D2CE3D64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verboo/code",
3
- "version": "0.7.15",
3
+ "version": "0.7.16",
4
4
  "description": "Verboo Code — coding agent for the Verboo platform",
5
5
  "type": "module",
6
6
  "bin": {