@verboo/code 0.13.1 → 0.13.2
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 +196 -80
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -136620,7 +136620,10 @@ async function fetchVerbooModels(accessToken, opts = {}) {
|
|
|
136620
136620
|
logForDebugging(msg);
|
|
136621
136621
|
process.stderr.write(msg + `
|
|
136622
136622
|
`);
|
|
136623
|
-
|
|
136623
|
+
if (cache2 && cache2.models.length > 0) {
|
|
136624
|
+
return cache2.models;
|
|
136625
|
+
}
|
|
136626
|
+
throw error41;
|
|
136624
136627
|
} finally {
|
|
136625
136628
|
inflight = null;
|
|
136626
136629
|
}
|
|
@@ -169747,7 +169750,7 @@ function getClaudeCodeUserAgent() {
|
|
|
169747
169750
|
return `claude-code/${"99.0.0"}`;
|
|
169748
169751
|
}
|
|
169749
169752
|
function getVerbooCodeUserAgent() {
|
|
169750
|
-
const version2 = typeof MACRO !== "undefined" ? "0.13.
|
|
169753
|
+
const version2 = typeof MACRO !== "undefined" ? "0.13.2" : "unknown";
|
|
169751
169754
|
return `verboo-code/${version2}`;
|
|
169752
169755
|
}
|
|
169753
169756
|
|
|
@@ -294181,9 +294184,6 @@ var init_verbooCheckout = __esm(() => {
|
|
|
294181
294184
|
});
|
|
294182
294185
|
|
|
294183
294186
|
// src/services/api/verbooMarketplace.ts
|
|
294184
|
-
function clearMarketplaceCache() {
|
|
294185
|
-
cache3 = null;
|
|
294186
|
-
}
|
|
294187
294187
|
async function fetchMarketplaceGroups(opts = {}) {
|
|
294188
294188
|
if (!opts.force && cache3 && Date.now() - cache3.fetchedAt < CACHE_TTL_MS2) {
|
|
294189
294189
|
return cache3.groups;
|
|
@@ -294191,19 +294191,26 @@ async function fetchMarketplaceGroups(opts = {}) {
|
|
|
294191
294191
|
const endpoint = `${VERBOO_API_BASE_URL}/api/marketplace`;
|
|
294192
294192
|
try {
|
|
294193
294193
|
const response = await axios_default.get(endpoint, {
|
|
294194
|
-
timeout: 1e4
|
|
294194
|
+
timeout: 1e4,
|
|
294195
|
+
signal: opts.signal
|
|
294195
294196
|
});
|
|
294196
294197
|
const groups = response.data?.data ?? [];
|
|
294197
294198
|
cache3 = { fetchedAt: Date.now(), groups };
|
|
294198
294199
|
logForDebugging(`[Marketplace] Fetched ${groups.length} groups from ${endpoint}`);
|
|
294199
294200
|
return groups;
|
|
294200
294201
|
} catch (error42) {
|
|
294202
|
+
if (opts.signal?.aborted || axios_default.isCancel(error42)) {
|
|
294203
|
+
throw error42;
|
|
294204
|
+
}
|
|
294201
294205
|
logError2(error42);
|
|
294202
294206
|
const msg = `[Marketplace] Erro ao buscar planos: ${error42.message ?? String(error42)}`;
|
|
294203
294207
|
logForDebugging(msg);
|
|
294204
294208
|
process.stderr.write(msg + `
|
|
294205
294209
|
`);
|
|
294206
|
-
|
|
294210
|
+
if (cache3 && cache3.groups.length > 0) {
|
|
294211
|
+
return cache3.groups;
|
|
294212
|
+
}
|
|
294213
|
+
throw error42;
|
|
294207
294214
|
}
|
|
294208
294215
|
}
|
|
294209
294216
|
var CACHE_TTL_MS2, cache3 = null;
|
|
@@ -294501,16 +294508,46 @@ function PurchaseFlowView({
|
|
|
294501
294508
|
const [focusIndex, setFocusIndex] = import_react62.useState(0);
|
|
294502
294509
|
const [errorMsg, setErrorMsg] = import_react62.useState(null);
|
|
294503
294510
|
const [wooviPayment, setWooviPayment] = import_react62.useState(null);
|
|
294511
|
+
const plansRequestRef = import_react62.default.useRef(null);
|
|
294512
|
+
const cancelPlansLoading = import_react62.useCallback(() => {
|
|
294513
|
+
plansRequestRef.current?.abort();
|
|
294514
|
+
plansRequestRef.current = null;
|
|
294515
|
+
setStep("splash");
|
|
294516
|
+
}, []);
|
|
294517
|
+
import_react62.default.useEffect(() => () => {
|
|
294518
|
+
plansRequestRef.current?.abort();
|
|
294519
|
+
}, []);
|
|
294504
294520
|
const fetchPlans = import_react62.useCallback(async () => {
|
|
294521
|
+
plansRequestRef.current?.abort();
|
|
294522
|
+
const controller = new AbortController;
|
|
294523
|
+
plansRequestRef.current = controller;
|
|
294524
|
+
setErrorMsg(null);
|
|
294505
294525
|
setStep("loading-plans");
|
|
294506
|
-
|
|
294507
|
-
|
|
294508
|
-
|
|
294509
|
-
|
|
294510
|
-
|
|
294526
|
+
try {
|
|
294527
|
+
const groups = await fetchMarketplaceGroups({
|
|
294528
|
+
force: true,
|
|
294529
|
+
signal: controller.signal
|
|
294530
|
+
});
|
|
294531
|
+
if (plansRequestRef.current !== controller)
|
|
294532
|
+
return;
|
|
294533
|
+
if (groups.length === 0) {
|
|
294534
|
+
setErrorMsg("Nenhum plano está disponível no momento. Tente novamente mais tarde.");
|
|
294535
|
+
setStep("error");
|
|
294536
|
+
return;
|
|
294537
|
+
}
|
|
294511
294538
|
setPlans(groups);
|
|
294512
294539
|
setFocusIndex(0);
|
|
294513
294540
|
setStep("plans");
|
|
294541
|
+
} catch (error42) {
|
|
294542
|
+
if (controller.signal.aborted || plansRequestRef.current !== controller) {
|
|
294543
|
+
return;
|
|
294544
|
+
}
|
|
294545
|
+
setErrorMsg(`Não foi possível carregar os planos: ${errorMessage(error42)}`);
|
|
294546
|
+
setStep("error");
|
|
294547
|
+
} finally {
|
|
294548
|
+
if (plansRequestRef.current === controller) {
|
|
294549
|
+
plansRequestRef.current = null;
|
|
294550
|
+
}
|
|
294514
294551
|
}
|
|
294515
294552
|
}, []);
|
|
294516
294553
|
const startStripePolling = import_react62.useCallback(async () => {
|
|
@@ -294524,7 +294561,11 @@ function PurchaseFlowView({
|
|
|
294524
294561
|
setTimeout(() => onDone(true), 1500);
|
|
294525
294562
|
return;
|
|
294526
294563
|
}
|
|
294527
|
-
} catch {
|
|
294564
|
+
} catch (error42) {
|
|
294565
|
+
setErrorMsg(`Não foi possível verificar a liberação dos modelos: ${errorMessage(error42)}`);
|
|
294566
|
+
setStep("error");
|
|
294567
|
+
return;
|
|
294568
|
+
}
|
|
294528
294569
|
}
|
|
294529
294570
|
setErrorMsg("O pagamento ainda não foi confirmado. Verifique o checkout e tente novamente.");
|
|
294530
294571
|
setStep("error");
|
|
@@ -294567,16 +294608,26 @@ function PurchaseFlowView({
|
|
|
294567
294608
|
}
|
|
294568
294609
|
};
|
|
294569
294610
|
const handleWooviConfirmed = import_react62.useCallback(async () => {
|
|
294570
|
-
|
|
294571
|
-
|
|
294572
|
-
|
|
294611
|
+
try {
|
|
294612
|
+
const models = await fetchVerbooModels(accessToken, { force: true });
|
|
294613
|
+
if (models.length === 0) {
|
|
294614
|
+
setErrorMsg("Pagamento confirmado, mas os modelos ainda não foram liberados. Aguarde alguns segundos e execute o Verboo novamente.");
|
|
294615
|
+
setStep("error");
|
|
294616
|
+
return;
|
|
294617
|
+
}
|
|
294618
|
+
setStep("success");
|
|
294619
|
+
setTimeout(() => onDone(true), 1500);
|
|
294620
|
+
} catch (error42) {
|
|
294621
|
+
setErrorMsg(`Pagamento confirmado, mas não foi possível verificar os modelos: ${errorMessage(error42)}`);
|
|
294573
294622
|
setStep("error");
|
|
294574
|
-
return;
|
|
294575
294623
|
}
|
|
294576
|
-
setStep("success");
|
|
294577
|
-
setTimeout(() => onDone(true), 1500);
|
|
294578
294624
|
}, [accessToken, onDone]);
|
|
294579
294625
|
use_input_default((_input, key) => {
|
|
294626
|
+
if (step === "loading-plans") {
|
|
294627
|
+
if (key.escape)
|
|
294628
|
+
cancelPlansLoading();
|
|
294629
|
+
return;
|
|
294630
|
+
}
|
|
294580
294631
|
if (step !== "plans" || plans.length === 0)
|
|
294581
294632
|
return;
|
|
294582
294633
|
if (key.leftArrow)
|
|
@@ -294595,7 +294646,7 @@ function PurchaseFlowView({
|
|
|
294595
294646
|
}
|
|
294596
294647
|
} else if (key.escape)
|
|
294597
294648
|
setStep("splash");
|
|
294598
|
-
}, { isActive: step === "plans" });
|
|
294649
|
+
}, { isActive: step === "plans" || step === "loading-plans" });
|
|
294599
294650
|
switch (step) {
|
|
294600
294651
|
case "splash":
|
|
294601
294652
|
return /* @__PURE__ */ jsx_runtime71.jsxs(ThemedBox_default, {
|
|
@@ -294627,7 +294678,11 @@ function PurchaseFlowView({
|
|
|
294627
294678
|
/* @__PURE__ */ jsx_runtime71.jsx(ThemedText, {
|
|
294628
294679
|
children: "Buscando planos disponíveis…"
|
|
294629
294680
|
}),
|
|
294630
|
-
/* @__PURE__ */ jsx_runtime71.jsx(Spinner, {})
|
|
294681
|
+
/* @__PURE__ */ jsx_runtime71.jsx(Spinner, {}),
|
|
294682
|
+
/* @__PURE__ */ jsx_runtime71.jsx(ThemedText, {
|
|
294683
|
+
dimColor: true,
|
|
294684
|
+
children: "Esc para cancelar"
|
|
294685
|
+
})
|
|
294631
294686
|
]
|
|
294632
294687
|
});
|
|
294633
294688
|
case "plans": {
|
|
@@ -294861,7 +294916,7 @@ function PurchaseFlowView({
|
|
|
294861
294916
|
}),
|
|
294862
294917
|
/* @__PURE__ */ jsx_runtime71.jsx(Select, {
|
|
294863
294918
|
options: [
|
|
294864
|
-
{ label: "
|
|
294919
|
+
{ label: "Tentar novamente", value: "retry" },
|
|
294865
294920
|
{ label: "Fechar", value: "fechar" }
|
|
294866
294921
|
],
|
|
294867
294922
|
onChange: (value) => {
|
|
@@ -294897,6 +294952,7 @@ var init_purchaseFlow = __esm(() => {
|
|
|
294897
294952
|
init_TextInput();
|
|
294898
294953
|
init_ink2();
|
|
294899
294954
|
init_browser();
|
|
294955
|
+
init_errors();
|
|
294900
294956
|
init_verbooModels();
|
|
294901
294957
|
init_verbooCheckout();
|
|
294902
294958
|
init_verbooMarketplace();
|
|
@@ -298595,6 +298651,11 @@ ${sslHint ? sslHint + `
|
|
|
298595
298651
|
`);
|
|
298596
298652
|
process.exit(0);
|
|
298597
298653
|
}
|
|
298654
|
+
if (preflight.kind === "degraded") {
|
|
298655
|
+
process.stderr.write(getVerbooModelsUnavailableMessage(preflight.reason) + `
|
|
298656
|
+
`);
|
|
298657
|
+
process.exit(1);
|
|
298658
|
+
}
|
|
298598
298659
|
}
|
|
298599
298660
|
const result = await runOAuthLoginFlow({
|
|
298600
298661
|
email: email3,
|
|
@@ -298605,7 +298666,12 @@ ${sslHint ? sslHint + `
|
|
|
298605
298666
|
if (isVerbooMode()) {
|
|
298606
298667
|
await installVerbooOAuthTokens(result);
|
|
298607
298668
|
const models = await checkVerbooModels(result.accessToken);
|
|
298608
|
-
if (models.
|
|
298669
|
+
if (models.kind === "unavailable") {
|
|
298670
|
+
process.stderr.write(getVerbooModelsUnavailableMessage(models.reason) + `
|
|
298671
|
+
`);
|
|
298672
|
+
process.exit(1);
|
|
298673
|
+
}
|
|
298674
|
+
if (models.kind === "empty") {
|
|
298609
298675
|
const ok = await showNoModelsFlow(result.accessToken);
|
|
298610
298676
|
if (!ok)
|
|
298611
298677
|
process.exit(1);
|
|
@@ -299076,6 +299142,7 @@ __export(exports_verbooStartupAuth, {
|
|
|
299076
299142
|
markVerbooSessionValidated: () => markVerbooSessionValidated,
|
|
299077
299143
|
isVerbooSessionValidated: () => isVerbooSessionValidated,
|
|
299078
299144
|
installVerbooOAuthTokens: () => installVerbooOAuthTokens,
|
|
299145
|
+
getVerbooModelsUnavailableMessage: () => getVerbooModelsUnavailableMessage,
|
|
299079
299146
|
getNoVerbooModelsMessage: () => getNoVerbooModelsMessage2,
|
|
299080
299147
|
ensureVerbooAuthenticated: () => ensureVerbooAuthenticated,
|
|
299081
299148
|
checkVerbooModels: () => checkVerbooModels
|
|
@@ -299161,24 +299228,42 @@ async function validateVerbooSession() {
|
|
|
299161
299228
|
return { kind: "degraded", reason: result.reason };
|
|
299162
299229
|
}
|
|
299163
299230
|
async function checkVerbooModels(accessToken) {
|
|
299164
|
-
|
|
299165
|
-
|
|
299166
|
-
|
|
299167
|
-
|
|
299168
|
-
|
|
299231
|
+
try {
|
|
299232
|
+
const models = await fetchVerbooModels(accessToken, { force: true });
|
|
299233
|
+
if (models.length > 0) {
|
|
299234
|
+
return { kind: "available", models };
|
|
299235
|
+
}
|
|
299236
|
+
return { kind: "empty", models: [] };
|
|
299237
|
+
} catch (err2) {
|
|
299238
|
+
return {
|
|
299239
|
+
kind: "unavailable",
|
|
299240
|
+
reason: errorMessage(err2),
|
|
299241
|
+
models: []
|
|
299242
|
+
};
|
|
299243
|
+
}
|
|
299244
|
+
}
|
|
299245
|
+
function getVerbooModelsUnavailableMessage(reason) {
|
|
299246
|
+
return `Não foi possível verificar os modelos do Verboo: ${reason}.
|
|
299247
|
+
` + "Sua sessão local foi preservada. Tente novamente em alguns instantes.";
|
|
299169
299248
|
}
|
|
299170
299249
|
async function loadAndCheckModels(accessToken) {
|
|
299171
|
-
const
|
|
299172
|
-
if (
|
|
299250
|
+
const result = await checkVerbooModels(accessToken);
|
|
299251
|
+
if (result.kind === "available")
|
|
299173
299252
|
return;
|
|
299253
|
+
if (result.kind === "unavailable") {
|
|
299254
|
+
throw new Error(getVerbooModelsUnavailableMessage(result.reason));
|
|
299255
|
+
}
|
|
299174
299256
|
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
299175
299257
|
throw new Error("Nenhum modelo disponível nesta conta. Execute `verboo /login` em um terminal interativo para escolher um plano.");
|
|
299176
299258
|
}
|
|
299177
299259
|
const ok = await showNoModelsFlow(accessToken);
|
|
299178
299260
|
if (ok) {
|
|
299179
299261
|
const refreshed = await checkVerbooModels(accessToken);
|
|
299180
|
-
if (refreshed.
|
|
299262
|
+
if (refreshed.kind === "available")
|
|
299181
299263
|
return;
|
|
299264
|
+
if (refreshed.kind === "unavailable") {
|
|
299265
|
+
throw new Error(getVerbooModelsUnavailableMessage(refreshed.reason));
|
|
299266
|
+
}
|
|
299182
299267
|
}
|
|
299183
299268
|
process.stdout.write(`
|
|
299184
299269
|
Para trocar de conta, execute: verboo logout
|
|
@@ -299219,13 +299304,16 @@ async function preflightVerbooLogin() {
|
|
|
299219
299304
|
return { kind: "degraded", reason: session.reason };
|
|
299220
299305
|
}
|
|
299221
299306
|
const models = await checkVerbooModels(session.tokens.accessToken);
|
|
299222
|
-
if (models.
|
|
299307
|
+
if (models.kind === "unavailable") {
|
|
299308
|
+
return { kind: "degraded", reason: models.reason };
|
|
299309
|
+
}
|
|
299310
|
+
if (models.kind === "empty") {
|
|
299223
299311
|
return { kind: "needs-oauth", reason: "no-models" };
|
|
299224
299312
|
}
|
|
299225
299313
|
return {
|
|
299226
299314
|
kind: "ready",
|
|
299227
299315
|
tokens: session.tokens,
|
|
299228
|
-
models,
|
|
299316
|
+
models: models.models,
|
|
299229
299317
|
refreshed: session.refreshed
|
|
299230
299318
|
};
|
|
299231
299319
|
}
|
|
@@ -299235,8 +299323,8 @@ async function ensureVerbooAuthenticated(opts = {}) {
|
|
|
299235
299323
|
clearVerbooModelsCache();
|
|
299236
299324
|
const session = await validateVerbooSession();
|
|
299237
299325
|
if (session.kind === "ok") {
|
|
299238
|
-
validated = true;
|
|
299239
299326
|
await loadAndCheckModels(session.tokens.accessToken);
|
|
299327
|
+
validated = true;
|
|
299240
299328
|
await showPastDueNotice(session.tokens.accessToken);
|
|
299241
299329
|
return;
|
|
299242
299330
|
}
|
|
@@ -299245,10 +299333,10 @@ async function ensureVerbooAuthenticated(opts = {}) {
|
|
|
299245
299333
|
logForDebugging(degradedMsg);
|
|
299246
299334
|
process.stderr.write(degradedMsg + `
|
|
299247
299335
|
`);
|
|
299248
|
-
validated = true;
|
|
299249
299336
|
const stored = await getClaudeAIOAuthTokensAsync();
|
|
299250
299337
|
if (stored?.accessToken) {
|
|
299251
299338
|
await loadAndCheckModels(stored.accessToken);
|
|
299339
|
+
validated = true;
|
|
299252
299340
|
}
|
|
299253
299341
|
return;
|
|
299254
299342
|
}
|
|
@@ -303711,20 +303799,32 @@ async function call2(onDone, context) {
|
|
|
303711
303799
|
onDone(result.message, { display: "system" });
|
|
303712
303800
|
return;
|
|
303713
303801
|
}
|
|
303802
|
+
if (result.type === "unavailable") {
|
|
303803
|
+
onDone(getVerbooModelsUnavailableMessage(result.reason), {
|
|
303804
|
+
display: "system"
|
|
303805
|
+
});
|
|
303806
|
+
return;
|
|
303807
|
+
}
|
|
303714
303808
|
const authChanged = result.type !== "ready" || result.refreshed;
|
|
303715
303809
|
if (!authChanged) {
|
|
303716
303810
|
if (isVerbooMode()) {
|
|
303717
303811
|
markVerbooSessionValidated();
|
|
303718
303812
|
const storedTokens = await getClaudeAIOAuthTokensAsync();
|
|
303719
303813
|
if (storedTokens?.accessToken) {
|
|
303720
|
-
const
|
|
303721
|
-
const [firstModel] = models;
|
|
303814
|
+
const modelsResult = await checkVerbooModels(storedTokens.accessToken);
|
|
303815
|
+
const [firstModel] = modelsResult.models;
|
|
303722
303816
|
if (firstModel) {
|
|
303723
303817
|
context.setAppState((prev) => ({
|
|
303724
303818
|
...prev,
|
|
303725
303819
|
mainLoopModelOverride: firstModel.id
|
|
303726
303820
|
}));
|
|
303727
303821
|
}
|
|
303822
|
+
if (modelsResult.kind === "unavailable") {
|
|
303823
|
+
onDone(getVerbooModelsUnavailableMessage(modelsResult.reason), {
|
|
303824
|
+
display: "system"
|
|
303825
|
+
});
|
|
303826
|
+
return;
|
|
303827
|
+
}
|
|
303728
303828
|
}
|
|
303729
303829
|
}
|
|
303730
303830
|
onDone("Sessão já está válida.");
|
|
@@ -303754,12 +303854,16 @@ async function call2(onDone, context) {
|
|
|
303754
303854
|
markVerbooSessionValidated();
|
|
303755
303855
|
const storedTokens = await getClaudeAIOAuthTokensAsync();
|
|
303756
303856
|
if (storedTokens?.accessToken) {
|
|
303757
|
-
const
|
|
303758
|
-
if (
|
|
303857
|
+
const modelsResult = await checkVerbooModels(storedTokens.accessToken);
|
|
303858
|
+
if (modelsResult.kind === "unavailable") {
|
|
303859
|
+
onDone(`Login concluído. ${getVerbooModelsUnavailableMessage(modelsResult.reason)}`, { display: "system" });
|
|
303860
|
+
return;
|
|
303861
|
+
}
|
|
303862
|
+
if (modelsResult.kind === "empty") {
|
|
303759
303863
|
onDone(getNoVerbooModelsMessage2().trim(), { display: "system" });
|
|
303760
303864
|
return;
|
|
303761
303865
|
}
|
|
303762
|
-
const [firstModel] = models;
|
|
303866
|
+
const [firstModel] = modelsResult.models;
|
|
303763
303867
|
context.setAppState((prev) => ({
|
|
303764
303868
|
...prev,
|
|
303765
303869
|
mainLoopModelOverride: firstModel.id
|
|
@@ -303785,6 +303889,10 @@ function Login(props) {
|
|
|
303785
303889
|
props.onDone({ type: "ready", refreshed: result.refreshed }, mainLoopModel);
|
|
303786
303890
|
return;
|
|
303787
303891
|
}
|
|
303892
|
+
if (result.kind === "degraded") {
|
|
303893
|
+
props.onDone({ type: "unavailable", reason: result.reason }, mainLoopModel);
|
|
303894
|
+
return;
|
|
303895
|
+
}
|
|
303788
303896
|
setPreflightDone(true);
|
|
303789
303897
|
}).catch(() => {
|
|
303790
303898
|
if (!cancelled)
|
|
@@ -303803,8 +303911,12 @@ function Login(props) {
|
|
|
303803
303911
|
markVerbooSessionValidated();
|
|
303804
303912
|
const storedTokens = await getClaudeAIOAuthTokensAsync();
|
|
303805
303913
|
if (storedTokens?.accessToken) {
|
|
303806
|
-
const
|
|
303807
|
-
if (
|
|
303914
|
+
const modelsResult = await checkVerbooModels(storedTokens.accessToken);
|
|
303915
|
+
if (modelsResult.kind === "unavailable") {
|
|
303916
|
+
props.onDone({ type: "unavailable", reason: modelsResult.reason }, mainLoopModel);
|
|
303917
|
+
return;
|
|
303918
|
+
}
|
|
303919
|
+
if (modelsResult.kind === "empty") {
|
|
303808
303920
|
setPostLoginToken(storedTokens.accessToken);
|
|
303809
303921
|
return;
|
|
303810
303922
|
}
|
|
@@ -303814,8 +303926,12 @@ function Login(props) {
|
|
|
303814
303926
|
}, [mainLoopModel, props]);
|
|
303815
303927
|
const handlePurchaseDone = React31.useCallback(async (success2) => {
|
|
303816
303928
|
if (success2 && postLoginToken) {
|
|
303817
|
-
const
|
|
303818
|
-
if (
|
|
303929
|
+
const modelsResult = await checkVerbooModels(postLoginToken);
|
|
303930
|
+
if (modelsResult.kind === "unavailable") {
|
|
303931
|
+
props.onDone({ type: "unavailable", reason: modelsResult.reason }, mainLoopModel);
|
|
303932
|
+
return;
|
|
303933
|
+
}
|
|
303934
|
+
if (modelsResult.kind === "available") {
|
|
303819
303935
|
props.onDone({ type: "ready", refreshed: true }, mainLoopModel);
|
|
303820
303936
|
return;
|
|
303821
303937
|
}
|
|
@@ -393857,7 +393973,7 @@ function getAnthropicEnvMetadata() {
|
|
|
393857
393973
|
function getBuildAgeMinutes() {
|
|
393858
393974
|
if (false)
|
|
393859
393975
|
;
|
|
393860
|
-
const buildTime = new Date("2026-07-
|
|
393976
|
+
const buildTime = new Date("2026-07-15T01:49:30.886Z").getTime();
|
|
393861
393977
|
if (isNaN(buildTime))
|
|
393862
393978
|
return;
|
|
393863
393979
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -422112,7 +422228,7 @@ function buildPrimarySection() {
|
|
|
422112
422228
|
});
|
|
422113
422229
|
return [{
|
|
422114
422230
|
label: "Version",
|
|
422115
|
-
value: "0.13.
|
|
422231
|
+
value: "0.13.2"
|
|
422116
422232
|
}, {
|
|
422117
422233
|
label: "Session name",
|
|
422118
422234
|
value: nameValue
|
|
@@ -435041,7 +435157,7 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
|
|
|
435041
435157
|
return `${VERBOO_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
|
|
435042
435158
|
}
|
|
435043
435159
|
function getPublicBuildVersion() {
|
|
435044
|
-
return "0.13.
|
|
435160
|
+
return "0.13.2";
|
|
435045
435161
|
}
|
|
435046
435162
|
var import_semver10, VERBOO_RELEASES_URL = "https://github.com/verbeux-ai/code/releases", fallbackBuildVersion, publicBuildVersion;
|
|
435047
435163
|
var init_version = __esm(() => {
|
|
@@ -486300,7 +486416,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
486300
486416
|
var call63 = async () => {
|
|
486301
486417
|
return {
|
|
486302
486418
|
type: "text",
|
|
486303
|
-
value: `${"99.0.0"} (built ${"2026-07-
|
|
486419
|
+
value: `${"99.0.0"} (built ${"2026-07-15T01:49:30.886Z"})`
|
|
486304
486420
|
};
|
|
486305
486421
|
}, version2, version_default;
|
|
486306
486422
|
var init_version2 = __esm(() => {
|
|
@@ -519373,7 +519489,7 @@ function printStartupScreen(modelOverride) {
|
|
|
519373
519489
|
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
519374
519490
|
const cwd2 = process.cwd();
|
|
519375
519491
|
const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
|
|
519376
|
-
const version3 = "0.13.
|
|
519492
|
+
const version3 = "0.13.2";
|
|
519377
519493
|
const bold2 = `${ESC4}1m`;
|
|
519378
519494
|
const PURPLE = rgb3(...ACCENT);
|
|
519379
519495
|
const SOFT = rgb3(...CREAM);
|
|
@@ -537665,7 +537781,7 @@ var init_routerRateLimitHook = __esm(() => {
|
|
|
537665
537781
|
function getSemverPart(version3) {
|
|
537666
537782
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
537667
537783
|
}
|
|
537668
|
-
function useUpdateNotification(updatedVersion, initialVersion = "0.13.
|
|
537784
|
+
function useUpdateNotification(updatedVersion, initialVersion = "0.13.2") {
|
|
537669
537785
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
537670
537786
|
const [pendingNotification2, setPendingNotification] = import_react225.useState(null);
|
|
537671
537787
|
if (updatedVersion) {
|
|
@@ -537705,7 +537821,7 @@ function AutoUpdater({
|
|
|
537705
537821
|
return;
|
|
537706
537822
|
}
|
|
537707
537823
|
if (false) {}
|
|
537708
|
-
const currentVersion = "0.13.
|
|
537824
|
+
const currentVersion = "0.13.2";
|
|
537709
537825
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
537710
537826
|
let latestVersion = await getLatestVersion(channel2);
|
|
537711
537827
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -538058,17 +538174,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
538058
538174
|
const maxVersion = await getMaxVersion();
|
|
538059
538175
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
538060
538176
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
538061
|
-
if (gte("0.13.
|
|
538062
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.13.
|
|
538177
|
+
if (gte("0.13.2", maxVersion)) {
|
|
538178
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.13.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
538063
538179
|
setUpdateAvailable(false);
|
|
538064
538180
|
return;
|
|
538065
538181
|
}
|
|
538066
538182
|
latest = maxVersion;
|
|
538067
538183
|
}
|
|
538068
|
-
const hasUpdate = latest && !gte("0.13.
|
|
538184
|
+
const hasUpdate = latest && !gte("0.13.2", latest) && !shouldSkipVersion(latest);
|
|
538069
538185
|
setUpdateAvailable(!!hasUpdate);
|
|
538070
538186
|
if (hasUpdate) {
|
|
538071
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.13.
|
|
538187
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.13.2"} -> ${latest}`);
|
|
538072
538188
|
}
|
|
538073
538189
|
};
|
|
538074
538190
|
$2[0] = t1;
|
|
@@ -538102,7 +538218,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
538102
538218
|
wrap: "truncate",
|
|
538103
538219
|
children: [
|
|
538104
538220
|
"currentVersion: ",
|
|
538105
|
-
"0.13.
|
|
538221
|
+
"0.13.2"
|
|
538106
538222
|
]
|
|
538107
538223
|
});
|
|
538108
538224
|
$2[3] = verbose;
|
|
@@ -554053,10 +554169,10 @@ async function autoUpdateCliInBackground() {
|
|
|
554053
554169
|
return;
|
|
554054
554170
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
554055
554171
|
const latest = await getLatestVersion(channel2);
|
|
554056
|
-
if (!latest || gte("0.13.
|
|
554172
|
+
if (!latest || gte("0.13.2", latest))
|
|
554057
554173
|
return;
|
|
554058
554174
|
writeToStdout(`
|
|
554059
|
-
Nova versão disponível: ${latest} (atual: ${"0.13.
|
|
554175
|
+
Nova versão disponível: ${latest} (atual: ${"0.13.2"})
|
|
554060
554176
|
`);
|
|
554061
554177
|
writeToStdout(`Atualizando automaticamente...
|
|
554062
554178
|
`);
|
|
@@ -571750,7 +571866,7 @@ function WelcomeV2() {
|
|
|
571750
571866
|
dimColor: true,
|
|
571751
571867
|
children: [
|
|
571752
571868
|
"v",
|
|
571753
|
-
"0.13.
|
|
571869
|
+
"0.13.2",
|
|
571754
571870
|
" "
|
|
571755
571871
|
]
|
|
571756
571872
|
})
|
|
@@ -571937,7 +572053,7 @@ function WelcomeV2() {
|
|
|
571937
572053
|
dimColor: true,
|
|
571938
572054
|
children: [
|
|
571939
572055
|
"v",
|
|
571940
|
-
"0.13.
|
|
572056
|
+
"0.13.2",
|
|
571941
572057
|
" "
|
|
571942
572058
|
]
|
|
571943
572059
|
})
|
|
@@ -572153,7 +572269,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
572153
572269
|
dimColor: true,
|
|
572154
572270
|
children: [
|
|
572155
572271
|
"v",
|
|
572156
|
-
"0.13.
|
|
572272
|
+
"0.13.2",
|
|
572157
572273
|
" "
|
|
572158
572274
|
]
|
|
572159
572275
|
});
|
|
@@ -572362,7 +572478,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
572362
572478
|
dimColor: true,
|
|
572363
572479
|
children: [
|
|
572364
572480
|
"v",
|
|
572365
|
-
"0.13.
|
|
572481
|
+
"0.13.2",
|
|
572366
572482
|
" "
|
|
572367
572483
|
]
|
|
572368
572484
|
});
|
|
@@ -589764,7 +589880,7 @@ __export(exports_update, {
|
|
|
589764
589880
|
});
|
|
589765
589881
|
async function update() {
|
|
589766
589882
|
logEvent("tengu_update_check", {});
|
|
589767
|
-
writeToStdout(`Current version: ${"0.13.
|
|
589883
|
+
writeToStdout(`Current version: ${"0.13.2"}
|
|
589768
589884
|
`);
|
|
589769
589885
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
589770
589886
|
writeToStdout(`Checking for updates to ${channel2} version...
|
|
@@ -589849,8 +589965,8 @@ async function update() {
|
|
|
589849
589965
|
writeToStdout(`Verboo Code is managed by Homebrew.
|
|
589850
589966
|
`);
|
|
589851
589967
|
const latest = await getLatestVersion(channel2);
|
|
589852
|
-
if (latest && !gte("0.13.
|
|
589853
|
-
writeToStdout(`Update available: ${"0.13.
|
|
589968
|
+
if (latest && !gte("0.13.2", latest)) {
|
|
589969
|
+
writeToStdout(`Update available: ${"0.13.2"} → ${latest}
|
|
589854
589970
|
`);
|
|
589855
589971
|
writeToStdout(`
|
|
589856
589972
|
`);
|
|
@@ -589866,8 +589982,8 @@ async function update() {
|
|
|
589866
589982
|
writeToStdout(`Verboo Code is managed by winget.
|
|
589867
589983
|
`);
|
|
589868
589984
|
const latest = await getLatestVersion(channel2);
|
|
589869
|
-
if (latest && !gte("0.13.
|
|
589870
|
-
writeToStdout(`Update available: ${"0.13.
|
|
589985
|
+
if (latest && !gte("0.13.2", latest)) {
|
|
589986
|
+
writeToStdout(`Update available: ${"0.13.2"} → ${latest}
|
|
589871
589987
|
`);
|
|
589872
589988
|
writeToStdout(`
|
|
589873
589989
|
`);
|
|
@@ -589883,8 +589999,8 @@ async function update() {
|
|
|
589883
589999
|
writeToStdout(`Verboo Code is managed by apk.
|
|
589884
590000
|
`);
|
|
589885
590001
|
const latest = await getLatestVersion(channel2);
|
|
589886
|
-
if (latest && !gte("0.13.
|
|
589887
|
-
writeToStdout(`Update available: ${"0.13.
|
|
590002
|
+
if (latest && !gte("0.13.2", latest)) {
|
|
590003
|
+
writeToStdout(`Update available: ${"0.13.2"} → ${latest}
|
|
589888
590004
|
`);
|
|
589889
590005
|
writeToStdout(`
|
|
589890
590006
|
`);
|
|
@@ -589937,11 +590053,11 @@ async function update() {
|
|
|
589937
590053
|
`);
|
|
589938
590054
|
await gracefulShutdown(1);
|
|
589939
590055
|
}
|
|
589940
|
-
if (result.latestVersion === "0.13.
|
|
589941
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.
|
|
590056
|
+
if (result.latestVersion === "0.13.2") {
|
|
590057
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.2"})`) + `
|
|
589942
590058
|
`);
|
|
589943
590059
|
} else {
|
|
589944
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.13.
|
|
590060
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.13.2"} to version ${result.latestVersion}`) + `
|
|
589945
590061
|
`);
|
|
589946
590062
|
await regenerateCompletionCache();
|
|
589947
590063
|
}
|
|
@@ -590001,12 +590117,12 @@ async function update() {
|
|
|
590001
590117
|
`);
|
|
590002
590118
|
await gracefulShutdown(1);
|
|
590003
590119
|
}
|
|
590004
|
-
if (latestVersion === "0.13.
|
|
590005
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.
|
|
590120
|
+
if (latestVersion === "0.13.2") {
|
|
590121
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.2"})`) + `
|
|
590006
590122
|
`);
|
|
590007
590123
|
await gracefulShutdown(0);
|
|
590008
590124
|
}
|
|
590009
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.13.
|
|
590125
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.13.2"})
|
|
590010
590126
|
`);
|
|
590011
590127
|
writeToStdout(`Installing update...
|
|
590012
590128
|
`);
|
|
@@ -590051,7 +590167,7 @@ async function update() {
|
|
|
590051
590167
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
590052
590168
|
switch (status2) {
|
|
590053
590169
|
case "success":
|
|
590054
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.13.
|
|
590170
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.13.2"} to version ${latestVersion}`) + `
|
|
590055
590171
|
`);
|
|
590056
590172
|
await regenerateCompletionCache();
|
|
590057
590173
|
break;
|
|
@@ -591306,7 +591422,7 @@ ${customInstructions}` : customInstructions;
|
|
|
591306
591422
|
is_native_binary: isInBundledMode()
|
|
591307
591423
|
});
|
|
591308
591424
|
logMemoryDiagnostics("start", {
|
|
591309
|
-
version: "0.13.
|
|
591425
|
+
version: "0.13.2",
|
|
591310
591426
|
debug: debug2,
|
|
591311
591427
|
debugToStderr,
|
|
591312
591428
|
print: print ?? false,
|
|
@@ -592117,7 +592233,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
592117
592233
|
pendingHookMessages
|
|
592118
592234
|
}, renderAndRun);
|
|
592119
592235
|
}
|
|
592120
|
-
}).version(`0.13.
|
|
592236
|
+
}).version(`0.13.2 (${cliDesc})`, "-v, --version", "Output the version number");
|
|
592121
592237
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
592122
592238
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
592123
592239
|
if (canUserConfigureAdvisor()) {
|
|
@@ -592692,7 +592808,7 @@ if (false) {}
|
|
|
592692
592808
|
async function main2() {
|
|
592693
592809
|
const args = process.argv.slice(2);
|
|
592694
592810
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
592695
|
-
console.log(`${"0.13.
|
|
592811
|
+
console.log(`${"0.13.2"} (Verboo Code)`);
|
|
592696
592812
|
return;
|
|
592697
592813
|
}
|
|
592698
592814
|
if (!IS_VERBOO_CLI && args.includes("--provider")) {
|
|
@@ -592866,4 +592982,4 @@ async function main2() {
|
|
|
592866
592982
|
}
|
|
592867
592983
|
main2();
|
|
592868
592984
|
|
|
592869
|
-
//# debugId=
|
|
592985
|
+
//# debugId=1271E869CB00C30E64756E2164756E21
|