@verboo/code 0.7.7 → 0.7.9
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 +142 -51
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -17015,7 +17015,7 @@ function fileSuffixForOauthConfig() {
|
|
|
17015
17015
|
}
|
|
17016
17016
|
}
|
|
17017
17017
|
function isVerbooMode() {
|
|
17018
|
-
return
|
|
17018
|
+
return true;
|
|
17019
17019
|
}
|
|
17020
17020
|
function getActiveScopes() {
|
|
17021
17021
|
return isVerbooMode() ? VERBOO_OAUTH_SCOPES : ALL_OAUTH_SCOPES;
|
|
@@ -36307,6 +36307,9 @@ function parseModelFlag(args) {
|
|
|
36307
36307
|
return value;
|
|
36308
36308
|
}
|
|
36309
36309
|
function applyProviderFlag(provider, args) {
|
|
36310
|
+
return {
|
|
36311
|
+
error: "Verboo Code usa apenas o provider nativo Verboo."
|
|
36312
|
+
};
|
|
36310
36313
|
if (!VALID_PROVIDERS.includes(provider)) {
|
|
36311
36314
|
return {
|
|
36312
36315
|
error: `Unknown provider "${provider}". Valid providers: ${VALID_PROVIDERS.join(", ")}`
|
|
@@ -109959,6 +109962,7 @@ __export(exports_client, {
|
|
|
109959
109962
|
getOrganizationUUID: () => getOrganizationUUID,
|
|
109960
109963
|
fetchProfileInfo: () => fetchProfileInfo,
|
|
109961
109964
|
fetchAndStoreUserRoles: () => fetchAndStoreUserRoles,
|
|
109965
|
+
exchangeCodeForTokensWithUri: () => exchangeCodeForTokensWithUri,
|
|
109962
109966
|
exchangeCodeForTokens: () => exchangeCodeForTokens,
|
|
109963
109967
|
createAndStoreApiKey: () => createAndStoreApiKey,
|
|
109964
109968
|
buildAuthUrl: () => buildAuthUrl
|
|
@@ -110021,6 +110025,17 @@ async function exchangeCodeForTokens(authorizationCode, state, codeVerifier, por
|
|
|
110021
110025
|
logEvent("tengu_oauth_token_exchange_success", {});
|
|
110022
110026
|
return response;
|
|
110023
110027
|
}
|
|
110028
|
+
async function exchangeCodeForTokensWithUri(authorizationCode, codeVerifier, redirectUri) {
|
|
110029
|
+
const response = await postOAuthForm({
|
|
110030
|
+
grant_type: "authorization_code",
|
|
110031
|
+
code: authorizationCode,
|
|
110032
|
+
redirect_uri: redirectUri,
|
|
110033
|
+
client_id: getOauthConfig().CLIENT_ID,
|
|
110034
|
+
code_verifier: codeVerifier
|
|
110035
|
+
});
|
|
110036
|
+
logEvent("tengu_oauth_token_exchange_success", {});
|
|
110037
|
+
return response;
|
|
110038
|
+
}
|
|
110024
110039
|
function normalizeOAuthTokenResponse(data) {
|
|
110025
110040
|
return {
|
|
110026
110041
|
...data,
|
|
@@ -115487,7 +115502,7 @@ function printStartupScreen(modelOverride) {
|
|
|
115487
115502
|
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
115488
115503
|
const cwd2 = process.cwd();
|
|
115489
115504
|
const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
|
|
115490
|
-
const version2 = "0.7.
|
|
115505
|
+
const version2 = "0.7.9";
|
|
115491
115506
|
const bold2 = `${ESC}1m`;
|
|
115492
115507
|
const PURPLE = rgb(...ACCENT);
|
|
115493
115508
|
const SOFT = rgb(...CREAM);
|
|
@@ -193578,7 +193593,7 @@ async function* openaiStreamToAnthropic(response, model, signal) {
|
|
|
193578
193593
|
}
|
|
193579
193594
|
yield {
|
|
193580
193595
|
type: "content_block_delta",
|
|
193581
|
-
index: contentBlockIndex,
|
|
193596
|
+
index: hasClosedThinking ? contentBlockIndex - 1 : contentBlockIndex,
|
|
193582
193597
|
delta: { type: "thinking_delta", thinking: delta.reasoning_content }
|
|
193583
193598
|
};
|
|
193584
193599
|
}
|
|
@@ -201038,6 +201053,24 @@ async function getAnthropicClient({
|
|
|
201038
201053
|
fetch: resolvedFetch
|
|
201039
201054
|
}
|
|
201040
201055
|
};
|
|
201056
|
+
const useOAuthToken = isClaudeAISubscriber() || isVerbooMode();
|
|
201057
|
+
const accessToken = useOAuthToken ? getClaudeAIOAuthTokens()?.accessToken : undefined;
|
|
201058
|
+
if (isVerbooMode()) {
|
|
201059
|
+
if (!accessToken) {
|
|
201060
|
+
process.stderr.write("[Verboo] ERRO: token de acesso não encontrado. Execute `verboo /login`.\n");
|
|
201061
|
+
}
|
|
201062
|
+
const { createOpenAIShimClient: createOpenAIShimClient2 } = await Promise.resolve().then(() => (init_openaiShim(), exports_openaiShim));
|
|
201063
|
+
return createOpenAIShimClient2({
|
|
201064
|
+
defaultHeaders,
|
|
201065
|
+
maxRetries,
|
|
201066
|
+
timeout: parseInt(process.env.API_TIMEOUT_MS || String(600000), 10),
|
|
201067
|
+
providerOverride: {
|
|
201068
|
+
model: model ?? "",
|
|
201069
|
+
baseURL: VERBOO_ROUTER_URL,
|
|
201070
|
+
apiKey: accessToken ?? ""
|
|
201071
|
+
}
|
|
201072
|
+
});
|
|
201073
|
+
}
|
|
201041
201074
|
if (providerOverride) {
|
|
201042
201075
|
const { createOpenAIShimClient: createOpenAIShimClient2 } = await Promise.resolve().then(() => (init_openaiShim(), exports_openaiShim));
|
|
201043
201076
|
const safeHeaders = {};
|
|
@@ -201150,24 +201183,6 @@ async function getAnthropicClient({
|
|
|
201150
201183
|
};
|
|
201151
201184
|
return new AnthropicVertex(vertexArgs);
|
|
201152
201185
|
}
|
|
201153
|
-
const useOAuthToken = isClaudeAISubscriber() || isVerbooMode();
|
|
201154
|
-
const accessToken = useOAuthToken ? getClaudeAIOAuthTokens()?.accessToken : undefined;
|
|
201155
|
-
if (isVerbooMode()) {
|
|
201156
|
-
if (!accessToken) {
|
|
201157
|
-
process.stderr.write("[Verboo] ERRO: token de acesso não encontrado. Execute `verboo /login`.\n");
|
|
201158
|
-
}
|
|
201159
|
-
const { createOpenAIShimClient: createOpenAIShimClient2 } = await Promise.resolve().then(() => (init_openaiShim(), exports_openaiShim));
|
|
201160
|
-
return createOpenAIShimClient2({
|
|
201161
|
-
defaultHeaders,
|
|
201162
|
-
maxRetries,
|
|
201163
|
-
timeout: parseInt(process.env.API_TIMEOUT_MS || String(600000), 10),
|
|
201164
|
-
providerOverride: {
|
|
201165
|
-
model: model ?? "",
|
|
201166
|
-
baseURL: VERBOO_ROUTER_URL,
|
|
201167
|
-
apiKey: accessToken ?? ""
|
|
201168
|
-
}
|
|
201169
|
-
});
|
|
201170
|
-
}
|
|
201171
201186
|
const clientConfig = {
|
|
201172
201187
|
apiKey: useOAuthToken ? null : apiKey || getAnthropicApiKey(),
|
|
201173
201188
|
authToken: accessToken,
|
|
@@ -260930,7 +260945,7 @@ function printResumeHint() {
|
|
|
260930
260945
|
}
|
|
260931
260946
|
writeSync2(1, source_default.dim(`
|
|
260932
260947
|
Resume this session with:
|
|
260933
|
-
|
|
260948
|
+
verboo --resume ${resumeArg}
|
|
260934
260949
|
`));
|
|
260935
260950
|
resumeHintPrinted = true;
|
|
260936
260951
|
} catch {}
|
|
@@ -272206,8 +272221,10 @@ __export(exports_auth2, {
|
|
|
272206
272221
|
installOAuthTokens: () => installOAuthTokens,
|
|
272207
272222
|
authStatus: () => authStatus,
|
|
272208
272223
|
authLogout: () => authLogout,
|
|
272224
|
+
authLoginHeadless: () => authLoginHeadless,
|
|
272209
272225
|
authLogin: () => authLogin
|
|
272210
272226
|
});
|
|
272227
|
+
import * as readline from "node:readline";
|
|
272211
272228
|
async function installOAuthTokens(tokens) {
|
|
272212
272229
|
await performLogout({ clearOnboarding: false });
|
|
272213
272230
|
const profile = tokens.profile ?? await getOauthProfileFromOauthToken(tokens.accessToken);
|
|
@@ -272458,6 +272475,66 @@ async function authLogout() {
|
|
|
272458
272475
|
`);
|
|
272459
272476
|
process.exit(0);
|
|
272460
272477
|
}
|
|
272478
|
+
async function authLoginHeadless() {
|
|
272479
|
+
const config2 = getOauthConfig();
|
|
272480
|
+
const codeVerifier = generateCodeVerifier();
|
|
272481
|
+
const codeChallenge = await generateCodeChallenge(codeVerifier);
|
|
272482
|
+
const state = generateState();
|
|
272483
|
+
const params = new URLSearchParams({
|
|
272484
|
+
client_id: config2.CLIENT_ID,
|
|
272485
|
+
redirect_uri: HEADLESS_REDIRECT_URI,
|
|
272486
|
+
response_type: "code",
|
|
272487
|
+
code_challenge: codeChallenge,
|
|
272488
|
+
code_challenge_method: "S256",
|
|
272489
|
+
state,
|
|
272490
|
+
scope: getActiveScopes().join(" ")
|
|
272491
|
+
});
|
|
272492
|
+
const url3 = `${config2.CONSOLE_AUTHORIZE_URL}?${params}`;
|
|
272493
|
+
process.stdout.write(`
|
|
272494
|
+
Abra este link em qualquer navegador:
|
|
272495
|
+
|
|
272496
|
+
`);
|
|
272497
|
+
process.stdout.write(` ${url3}
|
|
272498
|
+
|
|
272499
|
+
`);
|
|
272500
|
+
process.stdout.write("Após autorizar, cole o código exibido e pressione Enter: ");
|
|
272501
|
+
const code = (await readOneLine()).trim();
|
|
272502
|
+
if (!code) {
|
|
272503
|
+
process.stderr.write(`
|
|
272504
|
+
Código não informado. Cancelado.
|
|
272505
|
+
`);
|
|
272506
|
+
process.exit(1);
|
|
272507
|
+
}
|
|
272508
|
+
try {
|
|
272509
|
+
const tokenResponse = await exchangeCodeForTokensWithUri(code, codeVerifier, HEADLESS_REDIRECT_URI);
|
|
272510
|
+
const tokens = {
|
|
272511
|
+
accessToken: tokenResponse.access_token,
|
|
272512
|
+
refreshToken: tokenResponse.refresh_token ?? null,
|
|
272513
|
+
expiresAt: Date.now() + (tokenResponse.expires_in ?? 900) * 1000,
|
|
272514
|
+
scopes: tokenResponse.scope?.split(" ").filter(Boolean) ?? [],
|
|
272515
|
+
subscriptionType: null,
|
|
272516
|
+
rateLimitTier: null
|
|
272517
|
+
};
|
|
272518
|
+
await installOAuthTokens(tokens);
|
|
272519
|
+
process.stdout.write(`Login realizado com sucesso.
|
|
272520
|
+
`);
|
|
272521
|
+
process.exit(0);
|
|
272522
|
+
} catch (err2) {
|
|
272523
|
+
process.stderr.write(`Erro ao trocar o código: ${errorMessage(err2)}
|
|
272524
|
+
`);
|
|
272525
|
+
process.exit(1);
|
|
272526
|
+
}
|
|
272527
|
+
}
|
|
272528
|
+
function readOneLine() {
|
|
272529
|
+
return new Promise((resolve23) => {
|
|
272530
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
272531
|
+
rl.once("line", (line) => {
|
|
272532
|
+
rl.close();
|
|
272533
|
+
resolve23(line);
|
|
272534
|
+
});
|
|
272535
|
+
});
|
|
272536
|
+
}
|
|
272537
|
+
var HEADLESS_REDIRECT_URI = "https://code.verboo.ai/pt/cli-auth/manual";
|
|
272461
272538
|
var init_auth5 = __esm(() => {
|
|
272462
272539
|
init_logout();
|
|
272463
272540
|
init_errorUtils();
|
|
@@ -272477,6 +272554,7 @@ var init_auth5 = __esm(() => {
|
|
|
272477
272554
|
init_slowOperations();
|
|
272478
272555
|
init_status();
|
|
272479
272556
|
init_oauth();
|
|
272557
|
+
init_crypto2();
|
|
272480
272558
|
});
|
|
272481
272559
|
|
|
272482
272560
|
// src/services/oauth/verbooStartupAuth.ts
|
|
@@ -376716,7 +376794,7 @@ function getAnthropicEnvMetadata() {
|
|
|
376716
376794
|
function getBuildAgeMinutes() {
|
|
376717
376795
|
if (false)
|
|
376718
376796
|
;
|
|
376719
|
-
const buildTime = new Date("2026-04-
|
|
376797
|
+
const buildTime = new Date("2026-04-30T10:27:56.054Z").getTime();
|
|
376720
376798
|
if (isNaN(buildTime))
|
|
376721
376799
|
return;
|
|
376722
376800
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -417243,7 +417321,7 @@ function buildPrimarySection() {
|
|
|
417243
417321
|
}, undefined, false, undefined, this);
|
|
417244
417322
|
return [{
|
|
417245
417323
|
label: "Version",
|
|
417246
|
-
value: "0.7.
|
|
417324
|
+
value: "0.7.9"
|
|
417247
417325
|
}, {
|
|
417248
417326
|
label: "Session name",
|
|
417249
417327
|
value: nameValue
|
|
@@ -485193,7 +485271,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
485193
485271
|
var call60 = async () => {
|
|
485194
485272
|
return {
|
|
485195
485273
|
type: "text",
|
|
485196
|
-
value: `${"99.0.0"} (built ${"2026-04-
|
|
485274
|
+
value: `${"99.0.0"} (built ${"2026-04-30T10:27:56.054Z"})`
|
|
485197
485275
|
};
|
|
485198
485276
|
}, version2, version_default;
|
|
485199
485277
|
var init_version = __esm(() => {
|
|
@@ -560851,7 +560929,7 @@ function WelcomeV2() {
|
|
|
560851
560929
|
dimColor: true,
|
|
560852
560930
|
children: [
|
|
560853
560931
|
"v",
|
|
560854
|
-
"0.7.
|
|
560932
|
+
"0.7.9",
|
|
560855
560933
|
" "
|
|
560856
560934
|
]
|
|
560857
560935
|
}, undefined, true, undefined, this)
|
|
@@ -561038,7 +561116,7 @@ function WelcomeV2() {
|
|
|
561038
561116
|
dimColor: true,
|
|
561039
561117
|
children: [
|
|
561040
561118
|
"v",
|
|
561041
|
-
"0.7.
|
|
561119
|
+
"0.7.9",
|
|
561042
561120
|
" "
|
|
561043
561121
|
]
|
|
561044
561122
|
}, undefined, true, undefined, this)
|
|
@@ -561254,7 +561332,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
561254
561332
|
dimColor: true,
|
|
561255
561333
|
children: [
|
|
561256
561334
|
"v",
|
|
561257
|
-
"0.7.
|
|
561335
|
+
"0.7.9",
|
|
561258
561336
|
" "
|
|
561259
561337
|
]
|
|
561260
561338
|
}, undefined, true, undefined, this);
|
|
@@ -561463,7 +561541,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
561463
561541
|
dimColor: true,
|
|
561464
561542
|
children: [
|
|
561465
561543
|
"v",
|
|
561466
|
-
"0.7.
|
|
561544
|
+
"0.7.9",
|
|
561467
561545
|
" "
|
|
561468
561546
|
]
|
|
561469
561547
|
}, undefined, true, undefined, this);
|
|
@@ -579491,7 +579569,7 @@ __export(exports_update, {
|
|
|
579491
579569
|
async function update() {
|
|
579492
579570
|
if (getAPIProvider() !== "firstParty") {
|
|
579493
579571
|
writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
|
|
579494
|
-
`) + `Current version: ${"0.7.
|
|
579572
|
+
`) + `Current version: ${"0.7.9"}
|
|
579495
579573
|
|
|
579496
579574
|
` + `To update, reinstall from npm:
|
|
579497
579575
|
` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
|
|
@@ -579502,7 +579580,7 @@ async function update() {
|
|
|
579502
579580
|
await gracefulShutdown(0);
|
|
579503
579581
|
}
|
|
579504
579582
|
logEvent("tengu_update_check", {});
|
|
579505
|
-
writeToStdout(`Current version: ${"0.7.
|
|
579583
|
+
writeToStdout(`Current version: ${"0.7.9"}
|
|
579506
579584
|
`);
|
|
579507
579585
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
579508
579586
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -579587,8 +579665,8 @@ async function update() {
|
|
|
579587
579665
|
writeToStdout(`Claude is managed by Homebrew.
|
|
579588
579666
|
`);
|
|
579589
579667
|
const latest = await getLatestVersion(channel);
|
|
579590
|
-
if (latest && !gte("0.7.
|
|
579591
|
-
writeToStdout(`Update available: ${"0.7.
|
|
579668
|
+
if (latest && !gte("0.7.9", latest)) {
|
|
579669
|
+
writeToStdout(`Update available: ${"0.7.9"} → ${latest}
|
|
579592
579670
|
`);
|
|
579593
579671
|
writeToStdout(`
|
|
579594
579672
|
`);
|
|
@@ -579604,8 +579682,8 @@ async function update() {
|
|
|
579604
579682
|
writeToStdout(`Claude is managed by winget.
|
|
579605
579683
|
`);
|
|
579606
579684
|
const latest = await getLatestVersion(channel);
|
|
579607
|
-
if (latest && !gte("0.7.
|
|
579608
|
-
writeToStdout(`Update available: ${"0.7.
|
|
579685
|
+
if (latest && !gte("0.7.9", latest)) {
|
|
579686
|
+
writeToStdout(`Update available: ${"0.7.9"} → ${latest}
|
|
579609
579687
|
`);
|
|
579610
579688
|
writeToStdout(`
|
|
579611
579689
|
`);
|
|
@@ -579621,8 +579699,8 @@ async function update() {
|
|
|
579621
579699
|
writeToStdout(`Claude is managed by apk.
|
|
579622
579700
|
`);
|
|
579623
579701
|
const latest = await getLatestVersion(channel);
|
|
579624
|
-
if (latest && !gte("0.7.
|
|
579625
|
-
writeToStdout(`Update available: ${"0.7.
|
|
579702
|
+
if (latest && !gte("0.7.9", latest)) {
|
|
579703
|
+
writeToStdout(`Update available: ${"0.7.9"} → ${latest}
|
|
579626
579704
|
`);
|
|
579627
579705
|
writeToStdout(`
|
|
579628
579706
|
`);
|
|
@@ -579687,11 +579765,11 @@ async function update() {
|
|
|
579687
579765
|
`);
|
|
579688
579766
|
await gracefulShutdown(1);
|
|
579689
579767
|
}
|
|
579690
|
-
if (result.latestVersion === "0.7.
|
|
579691
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.
|
|
579768
|
+
if (result.latestVersion === "0.7.9") {
|
|
579769
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.9"})`) + `
|
|
579692
579770
|
`);
|
|
579693
579771
|
} else {
|
|
579694
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.7.
|
|
579772
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.7.9"} to version ${result.latestVersion}`) + `
|
|
579695
579773
|
`);
|
|
579696
579774
|
await regenerateCompletionCache();
|
|
579697
579775
|
}
|
|
@@ -579751,12 +579829,12 @@ async function update() {
|
|
|
579751
579829
|
`);
|
|
579752
579830
|
await gracefulShutdown(1);
|
|
579753
579831
|
}
|
|
579754
|
-
if (latestVersion === "0.7.
|
|
579755
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.
|
|
579832
|
+
if (latestVersion === "0.7.9") {
|
|
579833
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.7.9"})`) + `
|
|
579756
579834
|
`);
|
|
579757
579835
|
await gracefulShutdown(0);
|
|
579758
579836
|
}
|
|
579759
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.
|
|
579837
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.7.9"})
|
|
579760
579838
|
`);
|
|
579761
579839
|
writeToStdout(`Installing update...
|
|
579762
579840
|
`);
|
|
@@ -579801,7 +579879,7 @@ async function update() {
|
|
|
579801
579879
|
logForDebugging2(`update: Installation status: ${status2}`);
|
|
579802
579880
|
switch (status2) {
|
|
579803
579881
|
case "success":
|
|
579804
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.7.
|
|
579882
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.7.9"} to version ${latestVersion}`) + `
|
|
579805
579883
|
`);
|
|
579806
579884
|
await regenerateCompletionCache();
|
|
579807
579885
|
break;
|
|
@@ -581854,7 +581932,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
581854
581932
|
pendingHookMessages
|
|
581855
581933
|
}, renderAndRun);
|
|
581856
581934
|
}
|
|
581857
|
-
}).version(`0.7.
|
|
581935
|
+
}).version(`0.7.9 (${cliDesc})`, "-v, --version", "Output the version number");
|
|
581858
581936
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
581859
581937
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
581860
581938
|
if (canUserConfigureAdvisor()) {
|
|
@@ -581949,15 +582027,21 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
581949
582027
|
if (false) {}
|
|
581950
582028
|
if (false) {}
|
|
581951
582029
|
const auth2 = program2.command("auth").description("Manage authentication").configureHelp(createSortedHelpConfig());
|
|
581952
|
-
auth2.command("login").description("Sign in to your Verboo account").option("--email <email>", "Pre-populate email address on the login page").option("--sso", "Force SSO login flow").option("--console", "Use Verboo Console (API usage billing) instead of subscription").option("--claudeai", "Use Verboo subscription (default)").action(async ({
|
|
582030
|
+
auth2.command("login").description("Sign in to your Verboo account").option("--email <email>", "Pre-populate email address on the login page").option("--sso", "Force SSO login flow").option("--console", "Use Verboo Console (API usage billing) instead of subscription").option("--claudeai", "Use Verboo subscription (default)").option("--headless", "Login sem navegador: exibe URL para abrir em outro dispositivo e solicita código (ideal para servidores/CI)").action(async ({
|
|
581953
582031
|
email: email3,
|
|
581954
582032
|
sso,
|
|
581955
582033
|
console: useConsole,
|
|
581956
|
-
claudeai
|
|
582034
|
+
claudeai,
|
|
582035
|
+
headless
|
|
581957
582036
|
}) => {
|
|
581958
582037
|
const {
|
|
581959
|
-
authLogin: authLogin2
|
|
582038
|
+
authLogin: authLogin2,
|
|
582039
|
+
authLoginHeadless: authLoginHeadless2
|
|
581960
582040
|
} = await Promise.resolve().then(() => (init_auth5(), exports_auth2));
|
|
582041
|
+
if (headless) {
|
|
582042
|
+
await authLoginHeadless2();
|
|
582043
|
+
return;
|
|
582044
|
+
}
|
|
581961
582045
|
await authLogin2({
|
|
581962
582046
|
email: email3,
|
|
581963
582047
|
sso,
|
|
@@ -581977,6 +582061,12 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
581977
582061
|
} = await Promise.resolve().then(() => (init_auth5(), exports_auth2));
|
|
581978
582062
|
await authLogout2();
|
|
581979
582063
|
});
|
|
582064
|
+
program2.command("logout").description("Atalho para `auth logout`").action(async () => {
|
|
582065
|
+
const {
|
|
582066
|
+
authLogout: authLogout2
|
|
582067
|
+
} = await Promise.resolve().then(() => (init_auth5(), exports_auth2));
|
|
582068
|
+
await authLogout2();
|
|
582069
|
+
});
|
|
581980
582070
|
const coworkOption = () => new Option("--cowork", "Use cowork_plugins directory").hideHelp();
|
|
581981
582071
|
const pluginCmd = program2.command("plugin").alias("plugins").description("Manage Verboo Code plugins").configureHelp(createSortedHelpConfig());
|
|
581982
582072
|
pluginCmd.command("validate <path>").description("Validate a plugin or marketplace manifest").addOption(coworkOption()).action(async (manifestPath, options2) => {
|
|
@@ -582410,7 +582500,7 @@ if (false) {}
|
|
|
582410
582500
|
async function main2() {
|
|
582411
582501
|
const args = process.argv.slice(2);
|
|
582412
582502
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
582413
|
-
console.log(`${"0.7.
|
|
582503
|
+
console.log(`${"0.7.9"} (Verboo Code)`);
|
|
582414
582504
|
return;
|
|
582415
582505
|
}
|
|
582416
582506
|
if (args.includes("--provider")) {
|
|
@@ -582546,7 +582636,8 @@ async function main2() {
|
|
|
582546
582636
|
}
|
|
582547
582637
|
profileCheckpoint2("cli_before_main_import");
|
|
582548
582638
|
const { isVerbooMode: isVerbooMode2 } = await Promise.resolve().then(() => (init_oauth(), exports_oauth));
|
|
582549
|
-
|
|
582639
|
+
const skipsAuth = args.includes("--help") || args.includes("-h") || args[0] === "auth" || args[0] === "logout" || args[0] === "update";
|
|
582640
|
+
if (isVerbooMode2() && !skipsAuth) {
|
|
582550
582641
|
const { ensureVerbooAuthenticated: ensureVerbooAuthenticated2 } = await Promise.resolve().then(() => (init_verbooStartupAuth(), exports_verbooStartupAuth));
|
|
582551
582642
|
try {
|
|
582552
582643
|
await ensureVerbooAuthenticated2();
|
|
@@ -582565,4 +582656,4 @@ async function main2() {
|
|
|
582565
582656
|
}
|
|
582566
582657
|
main2();
|
|
582567
582658
|
|
|
582568
|
-
//# debugId=
|
|
582659
|
+
//# debugId=6BDE2B381516DD3664756E2164756E21
|