@verboo/code 0.7.15 → 0.7.17
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 +116 -28
- 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.17";
|
|
115522
115522
|
const bold2 = `${ESC}1m`;
|
|
115523
115523
|
const PURPLE = rgb(...ACCENT);
|
|
115524
115524
|
const SOFT = rgb(...CREAM);
|
|
@@ -365571,6 +365571,7 @@ var init_AgentTool = __esm(() => {
|
|
|
365571
365571
|
init_ids();
|
|
365572
365572
|
init_agentContext();
|
|
365573
365573
|
init_agentSwarmsEnabled();
|
|
365574
|
+
init_abortController();
|
|
365574
365575
|
init_cwd2();
|
|
365575
365576
|
init_debug();
|
|
365576
365577
|
init_envUtils();
|
|
@@ -366047,6 +366048,7 @@ var init_AgentTool = __esm(() => {
|
|
|
366047
366048
|
let foregroundTaskId;
|
|
366048
366049
|
let backgroundPromise;
|
|
366049
366050
|
let cancelAutoBackground;
|
|
366051
|
+
let foregroundAbortController;
|
|
366050
366052
|
if (!isBackgroundTasksDisabled2) {
|
|
366051
366053
|
const registration = registerAgentForeground({
|
|
366052
366054
|
agentId: syncAgentId,
|
|
@@ -366062,6 +366064,7 @@ var init_AgentTool = __esm(() => {
|
|
|
366062
366064
|
type: "background"
|
|
366063
366065
|
}));
|
|
366064
366066
|
cancelAutoBackground = registration.cancelAutoBackground;
|
|
366067
|
+
foregroundAbortController = createChildAbortController(registration.abortController);
|
|
366065
366068
|
}
|
|
366066
366069
|
let backgroundHintShown = false;
|
|
366067
366070
|
let wasBackgrounded = false;
|
|
@@ -366071,7 +366074,10 @@ var init_AgentTool = __esm(() => {
|
|
|
366071
366074
|
...runAgentParams,
|
|
366072
366075
|
override: {
|
|
366073
366076
|
...runAgentParams.override,
|
|
366074
|
-
agentId: syncAgentId
|
|
366077
|
+
agentId: syncAgentId,
|
|
366078
|
+
...foregroundAbortController && {
|
|
366079
|
+
abortController: foregroundAbortController
|
|
366080
|
+
}
|
|
366075
366081
|
},
|
|
366076
366082
|
onCacheSafeParams: summaryTaskId && getSdkAgentProgressSummariesEnabled() ? (params) => {
|
|
366077
366083
|
const {
|
|
@@ -366110,6 +366116,7 @@ var init_AgentTool = __esm(() => {
|
|
|
366110
366116
|
const backgroundedTaskId = foregroundTaskId;
|
|
366111
366117
|
wasBackgrounded = true;
|
|
366112
366118
|
stopForegroundSummarization?.();
|
|
366119
|
+
foregroundAbortController?.abort("backgrounded");
|
|
366113
366120
|
runWithAgentContext(syncAgentContext, async () => {
|
|
366114
366121
|
let stopBackgroundedSummarization;
|
|
366115
366122
|
try {
|
|
@@ -367671,6 +367678,7 @@ function registerAgentForeground({
|
|
|
367671
367678
|
}
|
|
367672
367679
|
return {
|
|
367673
367680
|
taskId: agentId,
|
|
367681
|
+
abortController,
|
|
367674
367682
|
backgroundSignal,
|
|
367675
367683
|
cancelAutoBackground
|
|
367676
367684
|
};
|
|
@@ -373108,9 +373116,20 @@ async function* runToolUse(toolUse, assistantMessage2, canUseTool, toolUseContex
|
|
|
373108
373116
|
};
|
|
373109
373117
|
return;
|
|
373110
373118
|
}
|
|
373119
|
+
logForDebugging2(JSON.stringify({
|
|
373120
|
+
type: "runToolUse_entering_stream",
|
|
373121
|
+
toolName: tool.name,
|
|
373122
|
+
toolUseId: toolUse.id,
|
|
373123
|
+
inputKeys: Object.keys(toolInput ?? {})
|
|
373124
|
+
}), { level: "debug" });
|
|
373111
373125
|
for await (const update of streamedCheckPermissionsAndCallTool(tool, toolUse.id, toolInput, toolUseContext, canUseTool, assistantMessage2, messageId, requestId, mcpServerType, mcpServerBaseUrl)) {
|
|
373112
373126
|
yield update;
|
|
373113
373127
|
}
|
|
373128
|
+
logForDebugging2(JSON.stringify({
|
|
373129
|
+
type: "runToolUse_stream_exited",
|
|
373130
|
+
toolName: tool.name,
|
|
373131
|
+
toolUseId: toolUse.id
|
|
373132
|
+
}), { level: "debug" });
|
|
373114
373133
|
} catch (error42) {
|
|
373115
373134
|
logError2(error42);
|
|
373116
373135
|
const errorMessage2 = error42 instanceof Error ? error42.message : String(error42);
|
|
@@ -373378,7 +373397,21 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
|
|
|
373378
373397
|
startToolBlockedOnUserSpan();
|
|
373379
373398
|
const permissionMode = toolUseContext.getAppState().toolPermissionContext.mode;
|
|
373380
373399
|
const permissionStart = Date.now();
|
|
373400
|
+
logForDebugging2(JSON.stringify({
|
|
373401
|
+
type: "permission_decision_awaiting",
|
|
373402
|
+
toolName: tool.name,
|
|
373403
|
+
toolUseId: toolUseID,
|
|
373404
|
+
permissionMode,
|
|
373405
|
+
hasHookResult: hookPermissionResult != null
|
|
373406
|
+
}), { level: "debug" });
|
|
373381
373407
|
const resolved = await resolveHookPermissionDecision(hookPermissionResult, tool, processedInput, toolUseContext, canUseTool, assistantMessage2, toolUseID);
|
|
373408
|
+
logForDebugging2(JSON.stringify({
|
|
373409
|
+
type: "permission_decision_resolved",
|
|
373410
|
+
toolName: tool.name,
|
|
373411
|
+
toolUseId: toolUseID,
|
|
373412
|
+
decision: resolved.decision.behavior,
|
|
373413
|
+
durationMs: Date.now() - permissionStart
|
|
373414
|
+
}), { level: "debug" });
|
|
373382
373415
|
const permissionDecision = resolved.decision;
|
|
373383
373416
|
processedInput = resolved.input;
|
|
373384
373417
|
const permissionDurationMs = Date.now() - permissionStart;
|
|
@@ -373979,6 +374012,15 @@ class StreamingToolExecutor {
|
|
|
373979
374012
|
if (this.canExecuteTool(tool.isConcurrencySafe)) {
|
|
373980
374013
|
await this.executeTool(tool);
|
|
373981
374014
|
} else {
|
|
374015
|
+
if (isDebugMode()) {
|
|
374016
|
+
logForDebugging2(JSON.stringify({
|
|
374017
|
+
type: "streaming_tool_blocked_by_concurrency",
|
|
374018
|
+
toolName: tool.block.name,
|
|
374019
|
+
toolUseId: tool.id,
|
|
374020
|
+
isConcurrencySafe: tool.isConcurrencySafe,
|
|
374021
|
+
executingNames: this.tools.filter((t) => t.status === "executing").map((t) => `${t.block.name}(${t.isConcurrencySafe ? "safe" : "unsafe"})`)
|
|
374022
|
+
}), { level: "debug" });
|
|
374023
|
+
}
|
|
373982
374024
|
if (!tool.isConcurrencySafe)
|
|
373983
374025
|
break;
|
|
373984
374026
|
}
|
|
@@ -374166,9 +374208,35 @@ class StreamingToolExecutor {
|
|
|
374166
374208
|
if (this.discarded) {
|
|
374167
374209
|
return;
|
|
374168
374210
|
}
|
|
374211
|
+
const debug = isDebugMode();
|
|
374212
|
+
let lastProgressAt = Date.now();
|
|
374213
|
+
let iterations = 0;
|
|
374214
|
+
const snapshot2 = (event) => {
|
|
374215
|
+
if (!debug)
|
|
374216
|
+
return;
|
|
374217
|
+
const statuses = {};
|
|
374218
|
+
for (const t of this.tools) {
|
|
374219
|
+
statuses[t.status] = (statuses[t.status] ?? 0) + 1;
|
|
374220
|
+
}
|
|
374221
|
+
logForDebugging2(JSON.stringify({
|
|
374222
|
+
type: event,
|
|
374223
|
+
iterations,
|
|
374224
|
+
totalTools: this.tools.length,
|
|
374225
|
+
statuses,
|
|
374226
|
+
hasExecuting: this.hasExecutingTools(),
|
|
374227
|
+
hasCompleted: this.hasCompletedResults(),
|
|
374228
|
+
hasPendingProgress: this.hasPendingProgress(),
|
|
374229
|
+
msSinceProgress: Date.now() - lastProgressAt
|
|
374230
|
+
}), { level: "debug" });
|
|
374231
|
+
};
|
|
374169
374232
|
while (this.hasUnfinishedTools()) {
|
|
374233
|
+
iterations++;
|
|
374234
|
+
snapshot2("streaming_tool_iter_start");
|
|
374170
374235
|
await this.processQueue();
|
|
374236
|
+
let yieldedThisIter = false;
|
|
374171
374237
|
for (const result of this.getCompletedResults()) {
|
|
374238
|
+
yieldedThisIter = true;
|
|
374239
|
+
lastProgressAt = Date.now();
|
|
374172
374240
|
yield result;
|
|
374173
374241
|
}
|
|
374174
374242
|
if (this.hasExecutingTools() && !this.hasCompletedResults() && !this.hasPendingProgress()) {
|
|
@@ -374177,13 +374245,31 @@ class StreamingToolExecutor {
|
|
|
374177
374245
|
this.progressAvailableResolve = resolve32;
|
|
374178
374246
|
});
|
|
374179
374247
|
if (executingPromises.length > 0) {
|
|
374180
|
-
|
|
374248
|
+
if (debug) {
|
|
374249
|
+
const watchdog = new Promise((resolve32) => setTimeout(() => resolve32("watchdog"), TOOL_EXECUTOR_WATCHDOG_MS));
|
|
374250
|
+
const winner = await Promise.race([
|
|
374251
|
+
...executingPromises,
|
|
374252
|
+
progressPromise,
|
|
374253
|
+
watchdog
|
|
374254
|
+
]);
|
|
374255
|
+
if (winner === "watchdog") {
|
|
374256
|
+
snapshot2("streaming_tool_watchdog_fired");
|
|
374257
|
+
}
|
|
374258
|
+
} else {
|
|
374259
|
+
await Promise.race([...executingPromises, progressPromise]);
|
|
374260
|
+
}
|
|
374261
|
+
} else if (debug) {
|
|
374262
|
+
snapshot2("streaming_tool_executing_without_promise");
|
|
374181
374263
|
}
|
|
374264
|
+
} else if (!yieldedThisIter && debug) {
|
|
374265
|
+
snapshot2("streaming_tool_iter_no_progress");
|
|
374182
374266
|
}
|
|
374183
374267
|
}
|
|
374184
374268
|
for (const result of this.getCompletedResults()) {
|
|
374185
374269
|
yield result;
|
|
374186
374270
|
}
|
|
374271
|
+
if (debug)
|
|
374272
|
+
snapshot2("streaming_tool_loop_exit");
|
|
374187
374273
|
}
|
|
374188
374274
|
hasCompletedResults() {
|
|
374189
374275
|
return this.tools.some((t) => t.status === "completed");
|
|
@@ -374205,10 +374291,12 @@ function markToolUseAsComplete2(toolUseContext, toolUseID) {
|
|
|
374205
374291
|
return next;
|
|
374206
374292
|
});
|
|
374207
374293
|
}
|
|
374294
|
+
var TOOL_EXECUTOR_WATCHDOG_MS = 60000;
|
|
374208
374295
|
var init_StreamingToolExecutor = __esm(() => {
|
|
374209
374296
|
init_messages3();
|
|
374210
374297
|
init_Tool();
|
|
374211
374298
|
init_abortController();
|
|
374299
|
+
init_debug();
|
|
374212
374300
|
init_toolExecution();
|
|
374213
374301
|
});
|
|
374214
374302
|
|
|
@@ -376830,7 +376918,7 @@ function getAnthropicEnvMetadata() {
|
|
|
376830
376918
|
function getBuildAgeMinutes() {
|
|
376831
376919
|
if (false)
|
|
376832
376920
|
;
|
|
376833
|
-
const buildTime = new Date("2026-05-
|
|
376921
|
+
const buildTime = new Date("2026-05-02T19:34:06.611Z").getTime();
|
|
376834
376922
|
if (isNaN(buildTime))
|
|
376835
376923
|
return;
|
|
376836
376924
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -417366,7 +417454,7 @@ function buildPrimarySection() {
|
|
|
417366
417454
|
}, undefined, false, undefined, this);
|
|
417367
417455
|
return [{
|
|
417368
417456
|
label: "Version",
|
|
417369
|
-
value: "0.7.
|
|
417457
|
+
value: "0.7.17"
|
|
417370
417458
|
}, {
|
|
417371
417459
|
label: "Session name",
|
|
417372
417460
|
value: nameValue
|
|
@@ -485316,7 +485404,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
485316
485404
|
var call60 = async () => {
|
|
485317
485405
|
return {
|
|
485318
485406
|
type: "text",
|
|
485319
|
-
value: `${"99.0.0"} (built ${"2026-05-
|
|
485407
|
+
value: `${"99.0.0"} (built ${"2026-05-02T19:34:06.611Z"})`
|
|
485320
485408
|
};
|
|
485321
485409
|
}, version2, version_default;
|
|
485322
485410
|
var init_version = __esm(() => {
|
|
@@ -561098,7 +561186,7 @@ function WelcomeV2() {
|
|
|
561098
561186
|
dimColor: true,
|
|
561099
561187
|
children: [
|
|
561100
561188
|
"v",
|
|
561101
|
-
"0.7.
|
|
561189
|
+
"0.7.17",
|
|
561102
561190
|
" "
|
|
561103
561191
|
]
|
|
561104
561192
|
}, undefined, true, undefined, this)
|
|
@@ -561285,7 +561373,7 @@ function WelcomeV2() {
|
|
|
561285
561373
|
dimColor: true,
|
|
561286
561374
|
children: [
|
|
561287
561375
|
"v",
|
|
561288
|
-
"0.7.
|
|
561376
|
+
"0.7.17",
|
|
561289
561377
|
" "
|
|
561290
561378
|
]
|
|
561291
561379
|
}, undefined, true, undefined, this)
|
|
@@ -561501,7 +561589,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
561501
561589
|
dimColor: true,
|
|
561502
561590
|
children: [
|
|
561503
561591
|
"v",
|
|
561504
|
-
"0.7.
|
|
561592
|
+
"0.7.17",
|
|
561505
561593
|
" "
|
|
561506
561594
|
]
|
|
561507
561595
|
}, undefined, true, undefined, this);
|
|
@@ -561710,7 +561798,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
561710
561798
|
dimColor: true,
|
|
561711
561799
|
children: [
|
|
561712
561800
|
"v",
|
|
561713
|
-
"0.7.
|
|
561801
|
+
"0.7.17",
|
|
561714
561802
|
" "
|
|
561715
561803
|
]
|
|
561716
561804
|
}, undefined, true, undefined, this);
|
|
@@ -579841,7 +579929,7 @@ __export(exports_update, {
|
|
|
579841
579929
|
async function update() {
|
|
579842
579930
|
if (getAPIProvider() !== "firstParty") {
|
|
579843
579931
|
writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
|
|
579844
|
-
`) + `Current version: ${"0.7.
|
|
579932
|
+
`) + `Current version: ${"0.7.17"}
|
|
579845
579933
|
|
|
579846
579934
|
` + `To update, reinstall from npm:
|
|
579847
579935
|
` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
|
|
@@ -579852,7 +579940,7 @@ async function update() {
|
|
|
579852
579940
|
await gracefulShutdown(0);
|
|
579853
579941
|
}
|
|
579854
579942
|
logEvent("tengu_update_check", {});
|
|
579855
|
-
writeToStdout(`Current version: ${"0.7.
|
|
579943
|
+
writeToStdout(`Current version: ${"0.7.17"}
|
|
579856
579944
|
`);
|
|
579857
579945
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
579858
579946
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -579937,8 +580025,8 @@ async function update() {
|
|
|
579937
580025
|
writeToStdout(`Claude is managed by Homebrew.
|
|
579938
580026
|
`);
|
|
579939
580027
|
const latest = await getLatestVersion(channel);
|
|
579940
|
-
if (latest && !gte("0.7.
|
|
579941
|
-
writeToStdout(`Update available: ${"0.7.
|
|
580028
|
+
if (latest && !gte("0.7.17", latest)) {
|
|
580029
|
+
writeToStdout(`Update available: ${"0.7.17"} → ${latest}
|
|
579942
580030
|
`);
|
|
579943
580031
|
writeToStdout(`
|
|
579944
580032
|
`);
|
|
@@ -579954,8 +580042,8 @@ async function update() {
|
|
|
579954
580042
|
writeToStdout(`Claude is managed by winget.
|
|
579955
580043
|
`);
|
|
579956
580044
|
const latest = await getLatestVersion(channel);
|
|
579957
|
-
if (latest && !gte("0.7.
|
|
579958
|
-
writeToStdout(`Update available: ${"0.7.
|
|
580045
|
+
if (latest && !gte("0.7.17", latest)) {
|
|
580046
|
+
writeToStdout(`Update available: ${"0.7.17"} → ${latest}
|
|
579959
580047
|
`);
|
|
579960
580048
|
writeToStdout(`
|
|
579961
580049
|
`);
|
|
@@ -579971,8 +580059,8 @@ async function update() {
|
|
|
579971
580059
|
writeToStdout(`Claude is managed by apk.
|
|
579972
580060
|
`);
|
|
579973
580061
|
const latest = await getLatestVersion(channel);
|
|
579974
|
-
if (latest && !gte("0.7.
|
|
579975
|
-
writeToStdout(`Update available: ${"0.7.
|
|
580062
|
+
if (latest && !gte("0.7.17", latest)) {
|
|
580063
|
+
writeToStdout(`Update available: ${"0.7.17"} → ${latest}
|
|
579976
580064
|
`);
|
|
579977
580065
|
writeToStdout(`
|
|
579978
580066
|
`);
|
|
@@ -580037,11 +580125,11 @@ async function update() {
|
|
|
580037
580125
|
`);
|
|
580038
580126
|
await gracefulShutdown(1);
|
|
580039
580127
|
}
|
|
580040
|
-
if (result.latestVersion === "0.7.
|
|
580041
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.
|
|
580128
|
+
if (result.latestVersion === "0.7.17") {
|
|
580129
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.17"})`) + `
|
|
580042
580130
|
`);
|
|
580043
580131
|
} else {
|
|
580044
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.7.
|
|
580132
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.7.17"} to version ${result.latestVersion}`) + `
|
|
580045
580133
|
`);
|
|
580046
580134
|
await regenerateCompletionCache();
|
|
580047
580135
|
}
|
|
@@ -580101,12 +580189,12 @@ async function update() {
|
|
|
580101
580189
|
`);
|
|
580102
580190
|
await gracefulShutdown(1);
|
|
580103
580191
|
}
|
|
580104
|
-
if (latestVersion === "0.7.
|
|
580105
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.
|
|
580192
|
+
if (latestVersion === "0.7.17") {
|
|
580193
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.17"})`) + `
|
|
580106
580194
|
`);
|
|
580107
580195
|
await gracefulShutdown(0);
|
|
580108
580196
|
}
|
|
580109
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.
|
|
580197
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.17"})
|
|
580110
580198
|
`);
|
|
580111
580199
|
writeToStdout(`Installing update...
|
|
580112
580200
|
`);
|
|
@@ -580151,7 +580239,7 @@ async function update() {
|
|
|
580151
580239
|
logForDebugging2(`update: Installation status: ${status2}`);
|
|
580152
580240
|
switch (status2) {
|
|
580153
580241
|
case "success":
|
|
580154
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.7.
|
|
580242
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.7.17"} to version ${latestVersion}`) + `
|
|
580155
580243
|
`);
|
|
580156
580244
|
await regenerateCompletionCache();
|
|
580157
580245
|
break;
|
|
@@ -582204,7 +582292,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
582204
582292
|
pendingHookMessages
|
|
582205
582293
|
}, renderAndRun);
|
|
582206
582294
|
}
|
|
582207
|
-
}).version(`0.7.
|
|
582295
|
+
}).version(`0.7.17 (${cliDesc})`, "-v, --version", "Output the version number");
|
|
582208
582296
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
582209
582297
|
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
582298
|
if (canUserConfigureAdvisor()) {
|
|
@@ -582772,7 +582860,7 @@ if (false) {}
|
|
|
582772
582860
|
async function main2() {
|
|
582773
582861
|
const args = process.argv.slice(2);
|
|
582774
582862
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
582775
|
-
console.log(`${"0.7.
|
|
582863
|
+
console.log(`${"0.7.17"} (Verboo Code)`);
|
|
582776
582864
|
return;
|
|
582777
582865
|
}
|
|
582778
582866
|
if (args.includes("--provider")) {
|
|
@@ -582928,4 +583016,4 @@ async function main2() {
|
|
|
582928
583016
|
}
|
|
582929
583017
|
main2();
|
|
582930
583018
|
|
|
582931
|
-
//# debugId=
|
|
583019
|
+
//# debugId=08D24D8DFB1E3D9764756E2164756E21
|