@verboo/code 0.12.0 → 0.13.0
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 +275 -73
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -169728,7 +169728,7 @@ function getClaudeCodeUserAgent() {
|
|
|
169728
169728
|
return `claude-code/${"99.0.0"}`;
|
|
169729
169729
|
}
|
|
169730
169730
|
function getVerbooCodeUserAgent() {
|
|
169731
|
-
const version2 = typeof MACRO !== "undefined" ? "0.
|
|
169731
|
+
const version2 = typeof MACRO !== "undefined" ? "0.13.0" : "unknown";
|
|
169732
169732
|
return `verboo-code/${version2}`;
|
|
169733
169733
|
}
|
|
169734
169734
|
|
|
@@ -393739,7 +393739,7 @@ function getAnthropicEnvMetadata() {
|
|
|
393739
393739
|
function getBuildAgeMinutes() {
|
|
393740
393740
|
if (false)
|
|
393741
393741
|
;
|
|
393742
|
-
const buildTime = new Date("2026-07-
|
|
393742
|
+
const buildTime = new Date("2026-07-13T19:37:58.646Z").getTime();
|
|
393743
393743
|
if (isNaN(buildTime))
|
|
393744
393744
|
return;
|
|
393745
393745
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -402428,12 +402428,31 @@ var init_marketplaceHelpers = __esm(() => {
|
|
|
402428
402428
|
});
|
|
402429
402429
|
|
|
402430
402430
|
// src/utils/plugins/officialMarketplace.ts
|
|
402431
|
-
|
|
402431
|
+
function nativeMarketplacePriority(name) {
|
|
402432
|
+
const normalizedName = name.toLowerCase();
|
|
402433
|
+
const index = NATIVE_MARKETPLACES.findIndex((marketplace) => marketplace.name === normalizedName);
|
|
402434
|
+
return index === -1 ? Number.MAX_SAFE_INTEGER : index;
|
|
402435
|
+
}
|
|
402436
|
+
var VERBOO_MARKETPLACE_NAME = "verboo-plugins", VERBOO_MARKETPLACE_URL = "https://code.verboo.ai/api/plugins/marketplace.json", VERBOO_MARKETPLACE_SOURCE, CLAUDE_MARKETPLACE_NAME = "claude-plugins-official", CLAUDE_MARKETPLACE_SOURCE, NATIVE_MARKETPLACES;
|
|
402432
402437
|
var init_officialMarketplace = __esm(() => {
|
|
402433
|
-
|
|
402438
|
+
VERBOO_MARKETPLACE_SOURCE = {
|
|
402439
|
+
source: "url",
|
|
402440
|
+
url: VERBOO_MARKETPLACE_URL
|
|
402441
|
+
};
|
|
402442
|
+
CLAUDE_MARKETPLACE_SOURCE = {
|
|
402434
402443
|
source: "github",
|
|
402435
402444
|
repo: "anthropics/claude-plugins-official"
|
|
402436
402445
|
};
|
|
402446
|
+
NATIVE_MARKETPLACES = [
|
|
402447
|
+
{
|
|
402448
|
+
name: VERBOO_MARKETPLACE_NAME,
|
|
402449
|
+
source: VERBOO_MARKETPLACE_SOURCE
|
|
402450
|
+
},
|
|
402451
|
+
{
|
|
402452
|
+
name: CLAUDE_MARKETPLACE_NAME,
|
|
402453
|
+
source: CLAUDE_MARKETPLACE_SOURCE
|
|
402454
|
+
}
|
|
402455
|
+
];
|
|
402437
402456
|
});
|
|
402438
402457
|
|
|
402439
402458
|
// src/utils/plugins/officialMarketplaceGcs.ts
|
|
@@ -402575,12 +402594,13 @@ function getDeclaredMarketplaces() {
|
|
|
402575
402594
|
...getInitialSettings().enabledPlugins ?? {}
|
|
402576
402595
|
};
|
|
402577
402596
|
for (const [pluginId, value] of Object.entries(enabledPlugins)) {
|
|
402578
|
-
|
|
402579
|
-
|
|
402580
|
-
|
|
402597
|
+
const marketplaceName = parsePluginIdentifier(pluginId).marketplace;
|
|
402598
|
+
const nativeMarketplace = NATIVE_MARKETPLACES.find((marketplace) => marketplace.name === marketplaceName);
|
|
402599
|
+
if (value && nativeMarketplace) {
|
|
402600
|
+
implicit[nativeMarketplace.name] = {
|
|
402601
|
+
source: nativeMarketplace.source,
|
|
402581
402602
|
sourceIsFallback: true
|
|
402582
402603
|
};
|
|
402583
|
-
break;
|
|
402584
402604
|
}
|
|
402585
402605
|
}
|
|
402586
402606
|
return {
|
|
@@ -403553,7 +403573,7 @@ async function refreshAllMarketplaces() {
|
|
|
403553
403573
|
if (entry.source.source === "settings") {
|
|
403554
403574
|
continue;
|
|
403555
403575
|
}
|
|
403556
|
-
if (name ===
|
|
403576
|
+
if (name === CLAUDE_MARKETPLACE_NAME) {
|
|
403557
403577
|
const sha = await fetchOfficialMarketplaceFromGcs(entry.installLocation, getMarketplacesCacheDir());
|
|
403558
403578
|
if (sha !== null) {
|
|
403559
403579
|
config2[name].lastUpdated = new Date().toISOString();
|
|
@@ -403601,7 +403621,7 @@ async function refreshMarketplace(name, onProgress, options2) {
|
|
|
403601
403621
|
throw new Error(`Marketplace '${name}' has a corrupted installLocation ` + `(${installLocation}) — expected a path inside ${cacheDir}. ` + `This can happen after cross-platform path writes or manual edits ` + `to known_marketplaces.json. ` + `Run: claude plugin marketplace remove "${name}" and re-add it.`);
|
|
403602
403622
|
}
|
|
403603
403623
|
}
|
|
403604
|
-
if (name ===
|
|
403624
|
+
if (name === CLAUDE_MARKETPLACE_NAME) {
|
|
403605
403625
|
const sha = await fetchOfficialMarketplaceFromGcs(installLocation, getMarketplacesCacheDir());
|
|
403606
403626
|
if (sha !== null) {
|
|
403607
403627
|
config2[name] = { ...entry, lastUpdated: new Date().toISOString() };
|
|
@@ -421974,7 +421994,7 @@ function buildPrimarySection() {
|
|
|
421974
421994
|
});
|
|
421975
421995
|
return [{
|
|
421976
421996
|
label: "Version",
|
|
421977
|
-
value: "0.
|
|
421997
|
+
value: "0.13.0"
|
|
421978
421998
|
}, {
|
|
421979
421999
|
label: "Session name",
|
|
421980
422000
|
value: nameValue
|
|
@@ -434903,7 +434923,7 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
|
|
|
434903
434923
|
return `${VERBOO_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
|
|
434904
434924
|
}
|
|
434905
434925
|
function getPublicBuildVersion() {
|
|
434906
|
-
return "0.
|
|
434926
|
+
return "0.13.0";
|
|
434907
434927
|
}
|
|
434908
434928
|
var import_semver10, VERBOO_RELEASES_URL = "https://github.com/verbeux-ai/code/releases", fallbackBuildVersion, publicBuildVersion;
|
|
434909
434929
|
var init_version = __esm(() => {
|
|
@@ -438257,6 +438277,10 @@ function normalizeExtension(ext) {
|
|
|
438257
438277
|
return trimmed.startsWith(".") ? trimmed : `.${trimmed}`;
|
|
438258
438278
|
}
|
|
438259
438279
|
function sortCandidates(a2, b) {
|
|
438280
|
+
const priorityA = nativeMarketplacePriority(a2.marketplaceName);
|
|
438281
|
+
const priorityB = nativeMarketplacePriority(b.marketplaceName);
|
|
438282
|
+
if (priorityA !== priorityB)
|
|
438283
|
+
return priorityA - priorityB;
|
|
438260
438284
|
if (a2.isOfficial && !b.isOfficial)
|
|
438261
438285
|
return -1;
|
|
438262
438286
|
if (!a2.isOfficial && b.isOfficial)
|
|
@@ -438357,6 +438381,7 @@ var init_lspRecommendation = __esm(() => {
|
|
|
438357
438381
|
init_installedPluginsManager();
|
|
438358
438382
|
init_marketplaceManager();
|
|
438359
438383
|
init_schemas5();
|
|
438384
|
+
init_officialMarketplace();
|
|
438360
438385
|
});
|
|
438361
438386
|
|
|
438362
438387
|
// src/utils/plugins/officialMarketplaceStartupCheck.ts
|
|
@@ -438387,12 +438412,129 @@ function shouldRetryInstallation(config3) {
|
|
|
438387
438412
|
}
|
|
438388
438413
|
return failReason === "unknown" || failReason === "git_unavailable" || failReason === "gcs_unavailable" || failReason === undefined;
|
|
438389
438414
|
}
|
|
438415
|
+
function shouldRetryNativeMarketplaceInstallation(state2) {
|
|
438416
|
+
if (!state2?.attempted)
|
|
438417
|
+
return true;
|
|
438418
|
+
if ((state2.retryCount ?? 0) >= RETRY_CONFIG.MAX_ATTEMPTS)
|
|
438419
|
+
return false;
|
|
438420
|
+
if (state2.failReason === "policy_blocked")
|
|
438421
|
+
return false;
|
|
438422
|
+
if (state2.nextRetryTime && Date.now() < state2.nextRetryTime)
|
|
438423
|
+
return false;
|
|
438424
|
+
return true;
|
|
438425
|
+
}
|
|
438426
|
+
function saveNativeMarketplaceAutoInstallState(name, update) {
|
|
438427
|
+
saveGlobalConfig((current) => ({
|
|
438428
|
+
...current,
|
|
438429
|
+
nativeMarketplaceAutoInstall: {
|
|
438430
|
+
...current.nativeMarketplaceAutoInstall,
|
|
438431
|
+
[name]: {
|
|
438432
|
+
...current.nativeMarketplaceAutoInstall?.[name],
|
|
438433
|
+
...update
|
|
438434
|
+
}
|
|
438435
|
+
}
|
|
438436
|
+
}));
|
|
438437
|
+
}
|
|
438438
|
+
async function checkAndInstallVerbooMarketplace() {
|
|
438439
|
+
const config3 = getGlobalConfig();
|
|
438440
|
+
const state2 = config3.nativeMarketplaceAutoInstall?.[VERBOO_MARKETPLACE_NAME];
|
|
438441
|
+
try {
|
|
438442
|
+
const knownMarketplaces = await loadKnownMarketplacesConfig();
|
|
438443
|
+
if (knownMarketplaces[VERBOO_MARKETPLACE_NAME]) {
|
|
438444
|
+
saveNativeMarketplaceAutoInstallState(VERBOO_MARKETPLACE_NAME, {
|
|
438445
|
+
attempted: true,
|
|
438446
|
+
installed: true,
|
|
438447
|
+
failReason: undefined,
|
|
438448
|
+
retryCount: undefined,
|
|
438449
|
+
lastAttemptTime: undefined,
|
|
438450
|
+
nextRetryTime: undefined
|
|
438451
|
+
});
|
|
438452
|
+
return { installed: false, skipped: true, reason: "already_installed" };
|
|
438453
|
+
}
|
|
438454
|
+
if (!shouldRetryNativeMarketplaceInstallation(state2)) {
|
|
438455
|
+
return {
|
|
438456
|
+
installed: false,
|
|
438457
|
+
skipped: true,
|
|
438458
|
+
reason: state2?.failReason ?? "already_attempted"
|
|
438459
|
+
};
|
|
438460
|
+
}
|
|
438461
|
+
if (isOfficialMarketplaceAutoInstallDisabled()) {
|
|
438462
|
+
saveNativeMarketplaceAutoInstallState(VERBOO_MARKETPLACE_NAME, {
|
|
438463
|
+
attempted: true,
|
|
438464
|
+
installed: false,
|
|
438465
|
+
failReason: "policy_blocked"
|
|
438466
|
+
});
|
|
438467
|
+
return { installed: false, skipped: true, reason: "policy_blocked" };
|
|
438468
|
+
}
|
|
438469
|
+
if (!isSourceAllowedByPolicy(VERBOO_MARKETPLACE_SOURCE)) {
|
|
438470
|
+
saveNativeMarketplaceAutoInstallState(VERBOO_MARKETPLACE_NAME, {
|
|
438471
|
+
attempted: true,
|
|
438472
|
+
installed: false,
|
|
438473
|
+
failReason: "policy_blocked"
|
|
438474
|
+
});
|
|
438475
|
+
return { installed: false, skipped: true, reason: "policy_blocked" };
|
|
438476
|
+
}
|
|
438477
|
+
logForDebugging("Attempting to auto-install Verboo marketplace");
|
|
438478
|
+
await addMarketplaceSource(VERBOO_MARKETPLACE_SOURCE);
|
|
438479
|
+
saveNativeMarketplaceAutoInstallState(VERBOO_MARKETPLACE_NAME, {
|
|
438480
|
+
attempted: true,
|
|
438481
|
+
installed: true,
|
|
438482
|
+
failReason: undefined,
|
|
438483
|
+
retryCount: undefined,
|
|
438484
|
+
lastAttemptTime: undefined,
|
|
438485
|
+
nextRetryTime: undefined
|
|
438486
|
+
});
|
|
438487
|
+
logEvent("tengu_official_marketplace_auto_install", {
|
|
438488
|
+
installed: true,
|
|
438489
|
+
skipped: false,
|
|
438490
|
+
verboo_marketplace: true
|
|
438491
|
+
});
|
|
438492
|
+
return { installed: true, skipped: false };
|
|
438493
|
+
} catch (error42) {
|
|
438494
|
+
const retryCount = (state2?.retryCount ?? 0) + 1;
|
|
438495
|
+
const now2 = Date.now();
|
|
438496
|
+
let configSaveFailed = false;
|
|
438497
|
+
try {
|
|
438498
|
+
saveNativeMarketplaceAutoInstallState(VERBOO_MARKETPLACE_NAME, {
|
|
438499
|
+
attempted: true,
|
|
438500
|
+
installed: false,
|
|
438501
|
+
failReason: "unknown",
|
|
438502
|
+
retryCount,
|
|
438503
|
+
lastAttemptTime: now2,
|
|
438504
|
+
nextRetryTime: now2 + calculateNextRetryDelay(retryCount)
|
|
438505
|
+
});
|
|
438506
|
+
} catch (saveError) {
|
|
438507
|
+
configSaveFailed = true;
|
|
438508
|
+
logError2(toError(saveError));
|
|
438509
|
+
}
|
|
438510
|
+
logForDebugging(`Failed to auto-install Verboo marketplace: ${error42 instanceof Error ? error42.message : String(error42)}`, { level: "error" });
|
|
438511
|
+
logError2(toError(error42));
|
|
438512
|
+
logEvent("tengu_official_marketplace_auto_install", {
|
|
438513
|
+
installed: false,
|
|
438514
|
+
skipped: true,
|
|
438515
|
+
failed: true,
|
|
438516
|
+
verboo_marketplace: true,
|
|
438517
|
+
retry_count: retryCount
|
|
438518
|
+
});
|
|
438519
|
+
return {
|
|
438520
|
+
installed: false,
|
|
438521
|
+
skipped: true,
|
|
438522
|
+
reason: "unknown",
|
|
438523
|
+
configSaveFailed
|
|
438524
|
+
};
|
|
438525
|
+
}
|
|
438526
|
+
}
|
|
438527
|
+
async function checkAndInstallNativeMarketplaces() {
|
|
438528
|
+
const verboo = await checkAndInstallVerbooMarketplace();
|
|
438529
|
+
const claude = await checkAndInstallOfficialMarketplace();
|
|
438530
|
+
return { verboo, claude };
|
|
438531
|
+
}
|
|
438390
438532
|
async function checkAndInstallOfficialMarketplace() {
|
|
438391
438533
|
const config3 = getGlobalConfig();
|
|
438392
438534
|
try {
|
|
438393
438535
|
const knownMarketplaces = await loadKnownMarketplacesConfig();
|
|
438394
|
-
if (knownMarketplaces[
|
|
438395
|
-
logForDebugging(`Official marketplace '${
|
|
438536
|
+
if (knownMarketplaces[CLAUDE_MARKETPLACE_NAME]) {
|
|
438537
|
+
logForDebugging(`Official marketplace '${CLAUDE_MARKETPLACE_NAME}' already installed, skipping`);
|
|
438396
438538
|
saveGlobalConfig((current) => ({
|
|
438397
438539
|
...current,
|
|
438398
438540
|
officialMarketplaceAutoInstallAttempted: true,
|
|
@@ -438424,7 +438566,7 @@ async function checkAndInstallOfficialMarketplace() {
|
|
|
438424
438566
|
});
|
|
438425
438567
|
return { installed: false, skipped: true, reason: "policy_blocked" };
|
|
438426
438568
|
}
|
|
438427
|
-
if (!isSourceAllowedByPolicy(
|
|
438569
|
+
if (!isSourceAllowedByPolicy(CLAUDE_MARKETPLACE_SOURCE)) {
|
|
438428
438570
|
logForDebugging("Official marketplace blocked by enterprise policy, skipping");
|
|
438429
438571
|
saveGlobalConfig((current) => ({
|
|
438430
438572
|
...current,
|
|
@@ -438440,12 +438582,12 @@ async function checkAndInstallOfficialMarketplace() {
|
|
|
438440
438582
|
return { installed: false, skipped: true, reason: "policy_blocked" };
|
|
438441
438583
|
}
|
|
438442
438584
|
const cacheDir = getMarketplacesCacheDir();
|
|
438443
|
-
const installLocation = join116(cacheDir,
|
|
438585
|
+
const installLocation = join116(cacheDir, CLAUDE_MARKETPLACE_NAME);
|
|
438444
438586
|
const gcsSha = await fetchOfficialMarketplaceFromGcs(installLocation, cacheDir);
|
|
438445
438587
|
if (gcsSha !== null) {
|
|
438446
438588
|
const known = await loadKnownMarketplacesConfig();
|
|
438447
|
-
known[
|
|
438448
|
-
source:
|
|
438589
|
+
known[CLAUDE_MARKETPLACE_NAME] = {
|
|
438590
|
+
source: CLAUDE_MARKETPLACE_SOURCE,
|
|
438449
438591
|
installLocation,
|
|
438450
438592
|
lastUpdated: new Date().toISOString()
|
|
438451
438593
|
};
|
|
@@ -438526,7 +438668,7 @@ async function checkAndInstallOfficialMarketplace() {
|
|
|
438526
438668
|
};
|
|
438527
438669
|
}
|
|
438528
438670
|
logForDebugging("Attempting to auto-install official marketplace");
|
|
438529
|
-
await addMarketplaceSource(
|
|
438671
|
+
await addMarketplaceSource(CLAUDE_MARKETPLACE_SOURCE);
|
|
438530
438672
|
logForDebugging("Successfully auto-installed official marketplace");
|
|
438531
438673
|
const previousRetryCount = config3.officialMarketplaceAutoInstallRetryCount || 0;
|
|
438532
438674
|
saveGlobalConfig((current) => ({
|
|
@@ -448657,11 +448799,15 @@ function BrowseMarketplace({
|
|
|
448657
448799
|
}
|
|
448658
448800
|
}
|
|
448659
448801
|
marketplaceInfos.sort((a2, b) => {
|
|
448802
|
+
const priorityA = nativeMarketplacePriority(a2.name);
|
|
448803
|
+
const priorityB = nativeMarketplacePriority(b.name);
|
|
448804
|
+
if (priorityA !== priorityB)
|
|
448805
|
+
return priorityA - priorityB;
|
|
448660
448806
|
if (a2.name === "claude-plugin-directory")
|
|
448661
448807
|
return -1;
|
|
448662
448808
|
if (b.name === "claude-plugin-directory")
|
|
448663
448809
|
return 1;
|
|
448664
|
-
return
|
|
448810
|
+
return a2.name.localeCompare(b.name);
|
|
448665
448811
|
});
|
|
448666
448812
|
setMarketplaces(marketplaceInfos);
|
|
448667
448813
|
const successCount = count2(marketplaces_0, (m) => m.data !== null);
|
|
@@ -449410,7 +449556,7 @@ function BrowseMarketplace({
|
|
|
449410
449556
|
dimColor: true,
|
|
449411
449557
|
children: " (installed)"
|
|
449412
449558
|
}),
|
|
449413
|
-
installCounts && selectedMarketplace ===
|
|
449559
|
+
installCounts && selectedMarketplace === CLAUDE_MARKETPLACE_NAME && /* @__PURE__ */ jsx_runtime244.jsxs(ThemedText, {
|
|
449414
449560
|
dimColor: true,
|
|
449415
449561
|
children: [
|
|
449416
449562
|
" · ",
|
|
@@ -449585,6 +449731,10 @@ function DiscoverPlugins({
|
|
|
449585
449731
|
setInstallCounts(counts);
|
|
449586
449732
|
if (counts) {
|
|
449587
449733
|
uninstalledPlugins.sort((a_0, b_0) => {
|
|
449734
|
+
const priorityA = nativeMarketplacePriority(a_0.marketplaceName);
|
|
449735
|
+
const priorityB = nativeMarketplacePriority(b_0.marketplaceName);
|
|
449736
|
+
if (priorityA !== priorityB)
|
|
449737
|
+
return priorityA - priorityB;
|
|
449588
449738
|
const countA = counts.get(a_0.pluginId) ?? 0;
|
|
449589
449739
|
const countB = counts.get(b_0.pluginId) ?? 0;
|
|
449590
449740
|
if (countA !== countB)
|
|
@@ -449592,11 +449742,23 @@ function DiscoverPlugins({
|
|
|
449592
449742
|
return a_0.entry.name.localeCompare(b_0.entry.name);
|
|
449593
449743
|
});
|
|
449594
449744
|
} else {
|
|
449595
|
-
uninstalledPlugins.sort((a_1, b_1) =>
|
|
449745
|
+
uninstalledPlugins.sort((a_1, b_1) => {
|
|
449746
|
+
const priorityA = nativeMarketplacePriority(a_1.marketplaceName);
|
|
449747
|
+
const priorityB = nativeMarketplacePriority(b_1.marketplaceName);
|
|
449748
|
+
if (priorityA !== priorityB)
|
|
449749
|
+
return priorityA - priorityB;
|
|
449750
|
+
return a_1.entry.name.localeCompare(b_1.entry.name);
|
|
449751
|
+
});
|
|
449596
449752
|
}
|
|
449597
449753
|
} catch (error_0) {
|
|
449598
449754
|
logForDebugging(`Failed to fetch install counts: ${errorMessage(error_0)}`);
|
|
449599
|
-
uninstalledPlugins.sort((a2, b) =>
|
|
449755
|
+
uninstalledPlugins.sort((a2, b) => {
|
|
449756
|
+
const priorityA = nativeMarketplacePriority(a2.marketplaceName);
|
|
449757
|
+
const priorityB = nativeMarketplacePriority(b.marketplaceName);
|
|
449758
|
+
if (priorityA !== priorityB)
|
|
449759
|
+
return priorityA - priorityB;
|
|
449760
|
+
return a2.entry.name.localeCompare(b.entry.name);
|
|
449761
|
+
});
|
|
449600
449762
|
}
|
|
449601
449763
|
setAvailablePlugins(uninstalledPlugins);
|
|
449602
449764
|
const configuredCount = Object.keys(config3).length;
|
|
@@ -450130,7 +450292,7 @@ function DiscoverPlugins({
|
|
|
450130
450292
|
dimColor: true,
|
|
450131
450293
|
children: " [Community Managed]"
|
|
450132
450294
|
}),
|
|
450133
|
-
installCounts && plugin_5.marketplaceName ===
|
|
450295
|
+
installCounts && plugin_5.marketplaceName === CLAUDE_MARKETPLACE_NAME && /* @__PURE__ */ jsx_runtime245.jsxs(ThemedText, {
|
|
450134
450296
|
dimColor: true,
|
|
450135
450297
|
children: [
|
|
450136
450298
|
" · ",
|
|
@@ -450610,6 +450772,10 @@ function ManageMarketplaces({
|
|
|
450610
450772
|
});
|
|
450611
450773
|
}
|
|
450612
450774
|
states.sort((a2, b) => {
|
|
450775
|
+
const priorityA = nativeMarketplacePriority(a2.name);
|
|
450776
|
+
const priorityB = nativeMarketplacePriority(b.name);
|
|
450777
|
+
if (priorityA !== priorityB)
|
|
450778
|
+
return priorityA - priorityB;
|
|
450613
450779
|
if (a2.name === "claude-plugin-directory")
|
|
450614
450780
|
return -1;
|
|
450615
450781
|
if (b.name === "claude-plugin-directory")
|
|
@@ -450754,6 +450920,10 @@ function ManageMarketplaces({
|
|
|
450754
450920
|
});
|
|
450755
450921
|
}
|
|
450756
450922
|
newStates.sort((a2, b) => {
|
|
450923
|
+
const priorityA = nativeMarketplacePriority(a2.name);
|
|
450924
|
+
const priorityB = nativeMarketplacePriority(b.name);
|
|
450925
|
+
if (priorityA !== priorityB)
|
|
450926
|
+
return priorityA - priorityB;
|
|
450757
450927
|
if (a2.name === "claude-plugin-directory")
|
|
450758
450928
|
return -1;
|
|
450759
450929
|
if (b.name === "claude-plugin-directory")
|
|
@@ -451321,13 +451491,13 @@ function ManageMarketplaces({
|
|
|
451321
451491
|
strikethrough: state2.pendingRemove,
|
|
451322
451492
|
dimColor: state2.pendingRemove,
|
|
451323
451493
|
children: [
|
|
451324
|
-
state2.name ===
|
|
451325
|
-
color: "
|
|
451494
|
+
state2.name === VERBOO_MARKETPLACE_NAME && /* @__PURE__ */ jsx_runtime246.jsx(ThemedText, {
|
|
451495
|
+
color: "suggestion",
|
|
451326
451496
|
children: "✻ "
|
|
451327
451497
|
}),
|
|
451328
451498
|
state2.name,
|
|
451329
|
-
state2.name ===
|
|
451330
|
-
color: "
|
|
451499
|
+
state2.name === VERBOO_MARKETPLACE_NAME && /* @__PURE__ */ jsx_runtime246.jsx(ThemedText, {
|
|
451500
|
+
color: "suggestion",
|
|
451331
451501
|
children: " ✻"
|
|
451332
451502
|
})
|
|
451333
451503
|
]
|
|
@@ -451567,6 +451737,7 @@ var init_ManageMarketplaces = __esm(() => {
|
|
|
451567
451737
|
init_cacheUtils();
|
|
451568
451738
|
init_marketplaceHelpers();
|
|
451569
451739
|
init_marketplaceManager();
|
|
451740
|
+
init_officialMarketplace();
|
|
451570
451741
|
init_pluginAutoupdate();
|
|
451571
451742
|
init_pluginLoader();
|
|
451572
451743
|
init_schemas5();
|
|
@@ -453214,6 +453385,10 @@ function ManagePlugins({
|
|
|
453214
453385
|
});
|
|
453215
453386
|
}
|
|
453216
453387
|
marketplaceInfos.sort((a2, b) => {
|
|
453388
|
+
const priorityA = nativeMarketplacePriority(a2.name);
|
|
453389
|
+
const priorityB = nativeMarketplacePriority(b.name);
|
|
453390
|
+
if (priorityA !== priorityB)
|
|
453391
|
+
return priorityA - priorityB;
|
|
453217
453392
|
if (a2.name === "claude-plugin-directory")
|
|
453218
453393
|
return -1;
|
|
453219
453394
|
if (b.name === "claude-plugin-directory")
|
|
@@ -454790,6 +454965,7 @@ var init_ManagePlugins = __esm(() => {
|
|
|
454790
454965
|
init_cacheUtils();
|
|
454791
454966
|
init_installedPluginsManager();
|
|
454792
454967
|
init_marketplaceManager();
|
|
454968
|
+
init_officialMarketplace();
|
|
454793
454969
|
init_mcpbHandler();
|
|
454794
454970
|
init_pluginDirectories();
|
|
454795
454971
|
init_pluginFlagging();
|
|
@@ -472078,7 +472254,7 @@ __export(exports_thinkback, {
|
|
|
472078
472254
|
import { readFile as readFile42 } from "fs/promises";
|
|
472079
472255
|
import { join as join123 } from "path";
|
|
472080
472256
|
function getMarketplaceName() {
|
|
472081
|
-
return
|
|
472257
|
+
return CLAUDE_MARKETPLACE_NAME;
|
|
472082
472258
|
}
|
|
472083
472259
|
function getMarketplaceRepo() {
|
|
472084
472260
|
return OFFICIAL_MARKETPLACE_REPO;
|
|
@@ -472662,7 +472838,7 @@ __export(exports_thinkback_play, {
|
|
|
472662
472838
|
});
|
|
472663
472839
|
import { join as join124 } from "path";
|
|
472664
472840
|
function getPluginId2() {
|
|
472665
|
-
const marketplaceName = process.env.USER_TYPE === "ant" ? INTERNAL_MARKETPLACE_NAME :
|
|
472841
|
+
const marketplaceName = process.env.USER_TYPE === "ant" ? INTERNAL_MARKETPLACE_NAME : CLAUDE_MARKETPLACE_NAME;
|
|
472666
472842
|
return `thinkback@${marketplaceName}`;
|
|
472667
472843
|
}
|
|
472668
472844
|
async function call48() {
|
|
@@ -486006,7 +486182,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
486006
486182
|
var call63 = async () => {
|
|
486007
486183
|
return {
|
|
486008
486184
|
type: "text",
|
|
486009
|
-
value: `${"99.0.0"} (built ${"2026-07-
|
|
486185
|
+
value: `${"99.0.0"} (built ${"2026-07-13T19:37:58.646Z"})`
|
|
486010
486186
|
};
|
|
486011
486187
|
}, version2, version_default;
|
|
486012
486188
|
var init_version2 = __esm(() => {
|
|
@@ -494878,6 +495054,7 @@ var exports_voiceStreamSTT = {};
|
|
|
494878
495054
|
__export(exports_voiceStreamSTT, {
|
|
494879
495055
|
isVoiceStreamAvailable: () => isVoiceStreamAvailable,
|
|
494880
495056
|
connectVoiceStream: () => connectVoiceStream,
|
|
495057
|
+
VOICE_SESSION_LIMIT_MS: () => VOICE_SESSION_LIMIT_MS,
|
|
494881
495058
|
FINALIZE_TIMEOUTS_MS: () => FINALIZE_TIMEOUTS_MS
|
|
494882
495059
|
});
|
|
494883
495060
|
function isVoiceStreamAvailable() {
|
|
@@ -495111,7 +495288,7 @@ async function connectVoiceStream(callbacks, options2) {
|
|
|
495111
495288
|
});
|
|
495112
495289
|
return connection;
|
|
495113
495290
|
}
|
|
495114
|
-
var KEEPALIVE_MSG = '{"type":"keepalive"}', END_STREAM_MSG = '{"type":"end"}', KEEPALIVE_INTERVAL_MS = 8000, PCM16_BYTES_PER_SECOND, MIN_AUDIO_FRAME_BYTES, MAX_AUDIO_FRAME_BYTES, FINALIZE_TIMEOUTS_MS;
|
|
495291
|
+
var KEEPALIVE_MSG = '{"type":"keepalive"}', END_STREAM_MSG = '{"type":"end"}', KEEPALIVE_INTERVAL_MS = 8000, VOICE_SESSION_LIMIT_MS = 180000, PCM16_BYTES_PER_SECOND, MIN_AUDIO_FRAME_BYTES, MAX_AUDIO_FRAME_BYTES, FINALIZE_TIMEOUTS_MS;
|
|
495115
495292
|
var init_voiceStreamSTT = __esm(() => {
|
|
495116
495293
|
init_wrapper();
|
|
495117
495294
|
init_oauth();
|
|
@@ -515825,6 +516002,12 @@ function validateOfficialNameSource(name, source) {
|
|
|
515825
516002
|
if (!ALLOWED_OFFICIAL_MARKETPLACE_NAMES.has(normalizedName)) {
|
|
515826
516003
|
return null;
|
|
515827
516004
|
}
|
|
516005
|
+
if (normalizedName === VERBOO_MARKETPLACE_NAME) {
|
|
516006
|
+
if (source.source === "url" && source.url === VERBOO_MARKETPLACE_URL) {
|
|
516007
|
+
return null;
|
|
516008
|
+
}
|
|
516009
|
+
return `The name '${name}' is reserved for the Verboo marketplace and can only use '${VERBOO_MARKETPLACE_URL}'.`;
|
|
516010
|
+
}
|
|
515828
516011
|
if (source.source === "github") {
|
|
515829
516012
|
const repo = source.repo || "";
|
|
515830
516013
|
if (!repo.toLowerCase().startsWith(`${OFFICIAL_GITHUB_ORG}/`)) {
|
|
@@ -515854,6 +516037,7 @@ var init_schemas5 = __esm(() => {
|
|
|
515854
516037
|
init_v4();
|
|
515855
516038
|
init_hooks5();
|
|
515856
516039
|
init_types2();
|
|
516040
|
+
init_officialMarketplace();
|
|
515857
516041
|
ALLOWED_OFFICIAL_MARKETPLACE_NAMES = new Set([
|
|
515858
516042
|
"claude-code-marketplace",
|
|
515859
516043
|
"claude-code-plugins",
|
|
@@ -515862,7 +516046,8 @@ var init_schemas5 = __esm(() => {
|
|
|
515862
516046
|
"anthropic-plugins",
|
|
515863
516047
|
"agent-skills",
|
|
515864
516048
|
"life-sciences",
|
|
515865
|
-
"knowledge-work-plugins"
|
|
516049
|
+
"knowledge-work-plugins",
|
|
516050
|
+
VERBOO_MARKETPLACE_NAME
|
|
515866
516051
|
]);
|
|
515867
516052
|
NO_AUTO_UPDATE_OFFICIAL_MARKETPLACES = new Set(["knowledge-work-plugins"]);
|
|
515868
516053
|
BLOCKED_OFFICIAL_NAME_PATTERN = /(?:official[^a-z0-9]*(anthropic|claude)|(?:anthropic|claude)[^a-z0-9]*official|^(?:anthropic|claude)[^a-z0-9]*(marketplace|plugins|official))/i;
|
|
@@ -516094,7 +516279,7 @@ var init_schemas5 = __esm(() => {
|
|
|
516094
516279
|
exports_external.object({
|
|
516095
516280
|
source: exports_external.literal("settings"),
|
|
516096
516281
|
name: MarketplaceNameSchema().refine((name) => !ALLOWED_OFFICIAL_MARKETPLACE_NAMES.has(name.toLowerCase()), {
|
|
516097
|
-
message: "Reserved official marketplace names cannot be used with settings sources. " + "validateOfficialNameSource only accepts
|
|
516282
|
+
message: "Reserved official marketplace names cannot be used with settings sources. " + "validateOfficialNameSource only accepts the respective native source " + "for these names; a settings source would be rejected after " + "loadAndCacheMarketplace has already written to disk with cleanupNeeded=false."
|
|
516098
516283
|
}).describe("Marketplace name. Must match the extraKnownMarketplaces key (enforced); " + "the synthetic manifest is written under this name. Same validation " + "as PluginMarketplaceSchema plus reserved-name rejection — " + "validateOfficialNameSource runs after the disk write, too late to clean up."),
|
|
516099
516284
|
plugins: exports_external.array(SettingsMarketplacePluginSchema()).describe("Plugin entries declared inline in settings.json"),
|
|
516100
516285
|
owner: PluginAuthorSchema().optional()
|
|
@@ -519070,7 +519255,7 @@ function printStartupScreen(modelOverride) {
|
|
|
519070
519255
|
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
519071
519256
|
const cwd2 = process.cwd();
|
|
519072
519257
|
const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
|
|
519073
|
-
const version3 = "0.
|
|
519258
|
+
const version3 = "0.13.0";
|
|
519074
519259
|
const bold2 = `${ESC4}1m`;
|
|
519075
519260
|
const PURPLE = rgb3(...ACCENT);
|
|
519076
519261
|
const SOFT = rgb3(...CREAM);
|
|
@@ -537362,7 +537547,7 @@ var init_routerRateLimitHook = __esm(() => {
|
|
|
537362
537547
|
function getSemverPart(version3) {
|
|
537363
537548
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
537364
537549
|
}
|
|
537365
|
-
function useUpdateNotification(updatedVersion, initialVersion = "0.
|
|
537550
|
+
function useUpdateNotification(updatedVersion, initialVersion = "0.13.0") {
|
|
537366
537551
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
537367
537552
|
const [pendingNotification2, setPendingNotification] = import_react225.useState(null);
|
|
537368
537553
|
if (updatedVersion) {
|
|
@@ -537402,7 +537587,7 @@ function AutoUpdater({
|
|
|
537402
537587
|
return;
|
|
537403
537588
|
}
|
|
537404
537589
|
if (false) {}
|
|
537405
|
-
const currentVersion = "0.
|
|
537590
|
+
const currentVersion = "0.13.0";
|
|
537406
537591
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
537407
537592
|
let latestVersion = await getLatestVersion(channel2);
|
|
537408
537593
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -537755,17 +537940,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
537755
537940
|
const maxVersion = await getMaxVersion();
|
|
537756
537941
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
537757
537942
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
537758
|
-
if (gte("0.
|
|
537759
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.
|
|
537943
|
+
if (gte("0.13.0", maxVersion)) {
|
|
537944
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.13.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
537760
537945
|
setUpdateAvailable(false);
|
|
537761
537946
|
return;
|
|
537762
537947
|
}
|
|
537763
537948
|
latest = maxVersion;
|
|
537764
537949
|
}
|
|
537765
|
-
const hasUpdate = latest && !gte("0.
|
|
537950
|
+
const hasUpdate = latest && !gte("0.13.0", latest) && !shouldSkipVersion(latest);
|
|
537766
537951
|
setUpdateAvailable(!!hasUpdate);
|
|
537767
537952
|
if (hasUpdate) {
|
|
537768
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.
|
|
537953
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.13.0"} -> ${latest}`);
|
|
537769
537954
|
}
|
|
537770
537955
|
};
|
|
537771
537956
|
$2[0] = t1;
|
|
@@ -537799,7 +537984,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
537799
537984
|
wrap: "truncate",
|
|
537800
537985
|
children: [
|
|
537801
537986
|
"currentVersion: ",
|
|
537802
|
-
"0.
|
|
537987
|
+
"0.13.0"
|
|
537803
537988
|
]
|
|
537804
537989
|
});
|
|
537805
537990
|
$2[3] = verbose;
|
|
@@ -553750,10 +553935,10 @@ async function autoUpdateCliInBackground() {
|
|
|
553750
553935
|
return;
|
|
553751
553936
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
553752
553937
|
const latest = await getLatestVersion(channel2);
|
|
553753
|
-
if (!latest || gte("0.
|
|
553938
|
+
if (!latest || gte("0.13.0", latest))
|
|
553754
553939
|
return;
|
|
553755
553940
|
writeToStdout(`
|
|
553756
|
-
Nova versão disponível: ${latest} (atual: ${"0.
|
|
553941
|
+
Nova versão disponível: ${latest} (atual: ${"0.13.0"})
|
|
553757
553942
|
`);
|
|
553758
553943
|
writeToStdout(`Atualizando automaticamente...
|
|
553759
553944
|
`);
|
|
@@ -559378,7 +559563,7 @@ function useOfficialMarketplaceNotification() {
|
|
|
559378
559563
|
useStartupNotification(_temp201);
|
|
559379
559564
|
}
|
|
559380
559565
|
async function _temp201() {
|
|
559381
|
-
const result = await
|
|
559566
|
+
const { verboo: result } = await checkAndInstallNativeMarketplaces();
|
|
559382
559567
|
const notifs = [];
|
|
559383
559568
|
if (result.configSaveFailed) {
|
|
559384
559569
|
logForDebugging("Showing marketplace config save failure notification");
|
|
@@ -559398,7 +559583,7 @@ async function _temp201() {
|
|
|
559398
559583
|
key: "marketplace-installed",
|
|
559399
559584
|
jsx: /* @__PURE__ */ jsx_runtime448.jsx(ThemedText, {
|
|
559400
559585
|
color: "success",
|
|
559401
|
-
children: "✓
|
|
559586
|
+
children: "✓ Marketplace Verboo instalada · /plugin para ver os plugins"
|
|
559402
559587
|
}),
|
|
559403
559588
|
priority: "immediate",
|
|
559404
559589
|
timeoutMs: 7000
|
|
@@ -559410,7 +559595,7 @@ async function _temp201() {
|
|
|
559410
559595
|
key: "marketplace-install-failed",
|
|
559411
559596
|
jsx: /* @__PURE__ */ jsx_runtime448.jsx(ThemedText, {
|
|
559412
559597
|
color: "warning",
|
|
559413
|
-
children: "
|
|
559598
|
+
children: "Não foi possível instalar a marketplace Verboo · Tentaremos novamente ao iniciar"
|
|
559414
559599
|
}),
|
|
559415
559600
|
priority: "immediate",
|
|
559416
559601
|
timeoutMs: 8000
|
|
@@ -559706,14 +559891,14 @@ async function isOfficialMarketplaceInstalled() {
|
|
|
559706
559891
|
return _isOfficialMarketplaceInstalledCache;
|
|
559707
559892
|
}
|
|
559708
559893
|
const config3 = await loadKnownMarketplacesConfigSafe();
|
|
559709
|
-
_isOfficialMarketplaceInstalledCache =
|
|
559894
|
+
_isOfficialMarketplaceInstalledCache = CLAUDE_MARKETPLACE_NAME in config3;
|
|
559710
559895
|
return _isOfficialMarketplaceInstalledCache;
|
|
559711
559896
|
}
|
|
559712
559897
|
async function isMarketplacePluginRelevant(pluginName, context2, signals2) {
|
|
559713
559898
|
if (!await isOfficialMarketplaceInstalled()) {
|
|
559714
559899
|
return false;
|
|
559715
559900
|
}
|
|
559716
|
-
if (isPluginInstalled(`${pluginName}@${
|
|
559901
|
+
if (isPluginInstalled(`${pluginName}@${CLAUDE_MARKETPLACE_NAME}`)) {
|
|
559717
559902
|
return false;
|
|
559718
559903
|
}
|
|
559719
559904
|
const { bashTools } = context2 ?? {};
|
|
@@ -560110,7 +560295,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
560110
560295
|
content: async (ctx) => {
|
|
560111
560296
|
const blue2 = color("suggestion", ctx.theme);
|
|
560112
560297
|
return `Working with HTML/CSS? Install the frontend-design plugin:
|
|
560113
|
-
${blue2(`/plugin install frontend-design@${
|
|
560298
|
+
${blue2(`/plugin install frontend-design@${CLAUDE_MARKETPLACE_NAME}`)}`;
|
|
560114
560299
|
},
|
|
560115
560300
|
cooldownSessions: 3,
|
|
560116
560301
|
isRelevant: async (context2) => isMarketplacePluginRelevant("frontend-design", context2, {
|
|
@@ -560122,7 +560307,7 @@ ${blue2(`/plugin install frontend-design@${OFFICIAL_MARKETPLACE_NAME}`)}`;
|
|
|
560122
560307
|
content: async (ctx) => {
|
|
560123
560308
|
const blue2 = color("suggestion", ctx.theme);
|
|
560124
560309
|
return `Working with Vercel? Install the vercel plugin:
|
|
560125
|
-
${blue2(`/plugin install vercel@${
|
|
560310
|
+
${blue2(`/plugin install vercel@${CLAUDE_MARKETPLACE_NAME}`)}`;
|
|
560126
560311
|
},
|
|
560127
560312
|
cooldownSessions: 3,
|
|
560128
560313
|
isRelevant: async (context2) => isMarketplacePluginRelevant("vercel", context2, {
|
|
@@ -565091,6 +565276,7 @@ function useVoice({
|
|
|
565091
565276
|
const onErrorRef = import_react317.useRef(onError);
|
|
565092
565277
|
const cleanupTimerRef = import_react317.useRef(null);
|
|
565093
565278
|
const releaseTimerRef = import_react317.useRef(null);
|
|
565279
|
+
const sessionLimitTimerRef = import_react317.useRef(null);
|
|
565094
565280
|
const seenRepeatRef = import_react317.useRef(false);
|
|
565095
565281
|
const repeatFallbackTimerRef = import_react317.useRef(null);
|
|
565096
565282
|
const focusTriggeredRef = import_react317.useRef(false);
|
|
@@ -565127,6 +565313,10 @@ function useVoice({
|
|
|
565127
565313
|
clearTimeout(releaseTimerRef.current);
|
|
565128
565314
|
releaseTimerRef.current = null;
|
|
565129
565315
|
}
|
|
565316
|
+
if (sessionLimitTimerRef.current) {
|
|
565317
|
+
clearTimeout(sessionLimitTimerRef.current);
|
|
565318
|
+
sessionLimitTimerRef.current = null;
|
|
565319
|
+
}
|
|
565130
565320
|
if (repeatFallbackTimerRef.current) {
|
|
565131
565321
|
clearTimeout(repeatFallbackTimerRef.current);
|
|
565132
565322
|
repeatFallbackTimerRef.current = null;
|
|
@@ -565152,6 +565342,10 @@ function useVoice({
|
|
|
565152
565342
|
function finishRecording() {
|
|
565153
565343
|
logForDebugging("[voice] finishRecording: stopping recording, transitioning to processing");
|
|
565154
565344
|
attemptGenRef.current++;
|
|
565345
|
+
if (sessionLimitTimerRef.current) {
|
|
565346
|
+
clearTimeout(sessionLimitTimerRef.current);
|
|
565347
|
+
sessionLimitTimerRef.current = null;
|
|
565348
|
+
}
|
|
565155
565349
|
const focusTriggered = focusTriggeredRef.current;
|
|
565156
565350
|
focusTriggeredRef.current = false;
|
|
565157
565351
|
updateState("processing");
|
|
@@ -565279,6 +565473,14 @@ function useVoice({
|
|
|
565279
565473
|
focusFlushedCharsRef.current = 0;
|
|
565280
565474
|
everConnectedRef.current = false;
|
|
565281
565475
|
const myGen = ++sessionGenRef.current;
|
|
565476
|
+
sessionLimitTimerRef.current = setTimeout((sessionLimitTimerRef2, stateRef2, onErrorRef2, finishRecording2) => {
|
|
565477
|
+
sessionLimitTimerRef2.current = null;
|
|
565478
|
+
if (stateRef2.current !== "recording")
|
|
565479
|
+
return;
|
|
565480
|
+
logForDebugging("[voice] 180-second session limit reached");
|
|
565481
|
+
onErrorRef2.current?.("Voice session reached the 180-second limit and was stopped.");
|
|
565482
|
+
finishRecording2();
|
|
565483
|
+
}, VOICE_SESSION_LIMIT_MS, sessionLimitTimerRef, stateRef, onErrorRef, finishRecording);
|
|
565282
565484
|
const availability = await voiceModule.checkRecordingAvailability();
|
|
565283
565485
|
if (!availability.available) {
|
|
565284
565486
|
logForDebugging(`[voice] Recording not available: ${availability.reason ?? "unknown"}`);
|
|
@@ -571430,7 +571632,7 @@ function WelcomeV2() {
|
|
|
571430
571632
|
dimColor: true,
|
|
571431
571633
|
children: [
|
|
571432
571634
|
"v",
|
|
571433
|
-
"0.
|
|
571635
|
+
"0.13.0",
|
|
571434
571636
|
" "
|
|
571435
571637
|
]
|
|
571436
571638
|
})
|
|
@@ -571617,7 +571819,7 @@ function WelcomeV2() {
|
|
|
571617
571819
|
dimColor: true,
|
|
571618
571820
|
children: [
|
|
571619
571821
|
"v",
|
|
571620
|
-
"0.
|
|
571822
|
+
"0.13.0",
|
|
571621
571823
|
" "
|
|
571622
571824
|
]
|
|
571623
571825
|
})
|
|
@@ -571833,7 +572035,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
571833
572035
|
dimColor: true,
|
|
571834
572036
|
children: [
|
|
571835
572037
|
"v",
|
|
571836
|
-
"0.
|
|
572038
|
+
"0.13.0",
|
|
571837
572039
|
" "
|
|
571838
572040
|
]
|
|
571839
572041
|
});
|
|
@@ -572042,7 +572244,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
572042
572244
|
dimColor: true,
|
|
572043
572245
|
children: [
|
|
572044
572246
|
"v",
|
|
572045
|
-
"0.
|
|
572247
|
+
"0.13.0",
|
|
572046
572248
|
" "
|
|
572047
572249
|
]
|
|
572048
572250
|
});
|
|
@@ -589444,7 +589646,7 @@ __export(exports_update, {
|
|
|
589444
589646
|
});
|
|
589445
589647
|
async function update() {
|
|
589446
589648
|
logEvent("tengu_update_check", {});
|
|
589447
|
-
writeToStdout(`Current version: ${"0.
|
|
589649
|
+
writeToStdout(`Current version: ${"0.13.0"}
|
|
589448
589650
|
`);
|
|
589449
589651
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
589450
589652
|
writeToStdout(`Checking for updates to ${channel2} version...
|
|
@@ -589529,8 +589731,8 @@ async function update() {
|
|
|
589529
589731
|
writeToStdout(`Verboo Code is managed by Homebrew.
|
|
589530
589732
|
`);
|
|
589531
589733
|
const latest = await getLatestVersion(channel2);
|
|
589532
|
-
if (latest && !gte("0.
|
|
589533
|
-
writeToStdout(`Update available: ${"0.
|
|
589734
|
+
if (latest && !gte("0.13.0", latest)) {
|
|
589735
|
+
writeToStdout(`Update available: ${"0.13.0"} → ${latest}
|
|
589534
589736
|
`);
|
|
589535
589737
|
writeToStdout(`
|
|
589536
589738
|
`);
|
|
@@ -589546,8 +589748,8 @@ async function update() {
|
|
|
589546
589748
|
writeToStdout(`Verboo Code is managed by winget.
|
|
589547
589749
|
`);
|
|
589548
589750
|
const latest = await getLatestVersion(channel2);
|
|
589549
|
-
if (latest && !gte("0.
|
|
589550
|
-
writeToStdout(`Update available: ${"0.
|
|
589751
|
+
if (latest && !gte("0.13.0", latest)) {
|
|
589752
|
+
writeToStdout(`Update available: ${"0.13.0"} → ${latest}
|
|
589551
589753
|
`);
|
|
589552
589754
|
writeToStdout(`
|
|
589553
589755
|
`);
|
|
@@ -589563,8 +589765,8 @@ async function update() {
|
|
|
589563
589765
|
writeToStdout(`Verboo Code is managed by apk.
|
|
589564
589766
|
`);
|
|
589565
589767
|
const latest = await getLatestVersion(channel2);
|
|
589566
|
-
if (latest && !gte("0.
|
|
589567
|
-
writeToStdout(`Update available: ${"0.
|
|
589768
|
+
if (latest && !gte("0.13.0", latest)) {
|
|
589769
|
+
writeToStdout(`Update available: ${"0.13.0"} → ${latest}
|
|
589568
589770
|
`);
|
|
589569
589771
|
writeToStdout(`
|
|
589570
589772
|
`);
|
|
@@ -589617,11 +589819,11 @@ async function update() {
|
|
|
589617
589819
|
`);
|
|
589618
589820
|
await gracefulShutdown(1);
|
|
589619
589821
|
}
|
|
589620
|
-
if (result.latestVersion === "0.
|
|
589621
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.
|
|
589822
|
+
if (result.latestVersion === "0.13.0") {
|
|
589823
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.0"})`) + `
|
|
589622
589824
|
`);
|
|
589623
589825
|
} else {
|
|
589624
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.
|
|
589826
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.13.0"} to version ${result.latestVersion}`) + `
|
|
589625
589827
|
`);
|
|
589626
589828
|
await regenerateCompletionCache();
|
|
589627
589829
|
}
|
|
@@ -589681,12 +589883,12 @@ async function update() {
|
|
|
589681
589883
|
`);
|
|
589682
589884
|
await gracefulShutdown(1);
|
|
589683
589885
|
}
|
|
589684
|
-
if (latestVersion === "0.
|
|
589685
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.
|
|
589886
|
+
if (latestVersion === "0.13.0") {
|
|
589887
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.13.0"})`) + `
|
|
589686
589888
|
`);
|
|
589687
589889
|
await gracefulShutdown(0);
|
|
589688
589890
|
}
|
|
589689
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.
|
|
589891
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.13.0"})
|
|
589690
589892
|
`);
|
|
589691
589893
|
writeToStdout(`Installing update...
|
|
589692
589894
|
`);
|
|
@@ -589731,7 +589933,7 @@ async function update() {
|
|
|
589731
589933
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
589732
589934
|
switch (status2) {
|
|
589733
589935
|
case "success":
|
|
589734
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.
|
|
589936
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.13.0"} to version ${latestVersion}`) + `
|
|
589735
589937
|
`);
|
|
589736
589938
|
await regenerateCompletionCache();
|
|
589737
589939
|
break;
|
|
@@ -590986,7 +591188,7 @@ ${customInstructions}` : customInstructions;
|
|
|
590986
591188
|
is_native_binary: isInBundledMode()
|
|
590987
591189
|
});
|
|
590988
591190
|
logMemoryDiagnostics("start", {
|
|
590989
|
-
version: "0.
|
|
591191
|
+
version: "0.13.0",
|
|
590990
591192
|
debug: debug2,
|
|
590991
591193
|
debugToStderr,
|
|
590992
591194
|
print: print ?? false,
|
|
@@ -591797,7 +591999,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
591797
591999
|
pendingHookMessages
|
|
591798
592000
|
}, renderAndRun);
|
|
591799
592001
|
}
|
|
591800
|
-
}).version(`0.
|
|
592002
|
+
}).version(`0.13.0 (${cliDesc})`, "-v, --version", "Output the version number");
|
|
591801
592003
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
591802
592004
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
591803
592005
|
if (canUserConfigureAdvisor()) {
|
|
@@ -592372,7 +592574,7 @@ if (false) {}
|
|
|
592372
592574
|
async function main2() {
|
|
592373
592575
|
const args = process.argv.slice(2);
|
|
592374
592576
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
592375
|
-
console.log(`${"0.
|
|
592577
|
+
console.log(`${"0.13.0"} (Verboo Code)`);
|
|
592376
592578
|
return;
|
|
592377
592579
|
}
|
|
592378
592580
|
if (!IS_VERBOO_CLI && args.includes("--provider")) {
|
|
@@ -592546,4 +592748,4 @@ async function main2() {
|
|
|
592546
592748
|
}
|
|
592547
592749
|
main2();
|
|
592548
592750
|
|
|
592549
|
-
//# debugId=
|
|
592751
|
+
//# debugId=4C258D3E6200781664756E2164756E21
|