@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.
- package/dist/cli.mjs +107 -27
- 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.
|
|
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
|
-
|
|
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-
|
|
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.
|
|
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-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
579941
|
-
writeToStdout(`Update available: ${"0.7.
|
|
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.
|
|
579958
|
-
writeToStdout(`Update available: ${"0.7.
|
|
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.
|
|
579975
|
-
writeToStdout(`Update available: ${"0.7.
|
|
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.
|
|
580041
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.
|
|
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.
|
|
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.
|
|
580105
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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=
|
|
583011
|
+
//# debugId=01D19E1713D2CE3D64756E2164756E21
|