@verboo/code 0.10.0 → 0.10.1
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 +194 -126
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -662,6 +662,7 @@ var init_protectedNamespace = __esm(() => {
|
|
|
662
662
|
});
|
|
663
663
|
|
|
664
664
|
// src/utils/envUtils.ts
|
|
665
|
+
import { existsSync } from "fs";
|
|
665
666
|
import { homedir } from "os";
|
|
666
667
|
import { join } from "path";
|
|
667
668
|
function resolveClaudeConfigHomeDir(options) {
|
|
@@ -680,6 +681,17 @@ function getProjectsDir() {
|
|
|
680
681
|
}
|
|
681
682
|
return join(homedir(), ".claude", "projects");
|
|
682
683
|
}
|
|
684
|
+
function getAdditionalProjectsDirs() {
|
|
685
|
+
const dirs = [];
|
|
686
|
+
const openClaudeDir = join(homedir(), ".openclaude", "projects");
|
|
687
|
+
if (existsSync(openClaudeDir)) {
|
|
688
|
+
dirs.push(openClaudeDir);
|
|
689
|
+
}
|
|
690
|
+
return dirs;
|
|
691
|
+
}
|
|
692
|
+
function getProjectsDirs() {
|
|
693
|
+
return [getProjectsDir(), ...getAdditionalProjectsDirs()];
|
|
694
|
+
}
|
|
683
695
|
function getLegacyClaudeConfigHomeDir() {
|
|
684
696
|
if (process.env.VERBOO_CONFIG_DIR)
|
|
685
697
|
return null;
|
|
@@ -22903,7 +22915,7 @@ var init_runtimeMetadata = __esm(() => {
|
|
|
22903
22915
|
});
|
|
22904
22916
|
|
|
22905
22917
|
// src/services/api/providerConfig.ts
|
|
22906
|
-
import { existsSync as
|
|
22918
|
+
import { existsSync as existsSync3, readFileSync as readFileSync4 } from "node:fs";
|
|
22907
22919
|
import { createHash as createHash2 } from "node:crypto";
|
|
22908
22920
|
import { isIP } from "node:net";
|
|
22909
22921
|
import { homedir as homedir4 } from "node:os";
|
|
@@ -23300,7 +23312,7 @@ function resolveCodexAuthPath(env2 = process.env) {
|
|
|
23300
23312
|
return join7(homedir4(), ".codex", "auth.json");
|
|
23301
23313
|
}
|
|
23302
23314
|
function loadCodexAuthJson(authPath) {
|
|
23303
|
-
if (!
|
|
23315
|
+
if (!existsSync3(authPath))
|
|
23304
23316
|
return;
|
|
23305
23317
|
try {
|
|
23306
23318
|
const raw = readFileSync4(authPath, "utf8");
|
|
@@ -24446,7 +24458,7 @@ var init_memoize2 = __esm(() => {
|
|
|
24446
24458
|
});
|
|
24447
24459
|
|
|
24448
24460
|
// src/utils/geminiAuth.ts
|
|
24449
|
-
import { existsSync as
|
|
24461
|
+
import { existsSync as existsSync4 } from "node:fs";
|
|
24450
24462
|
import { homedir as homedir5 } from "node:os";
|
|
24451
24463
|
import { join as join8 } from "node:path";
|
|
24452
24464
|
function sanitizeCredential(value) {
|
|
@@ -24477,7 +24489,7 @@ function getGeminiAdcCredentialPaths(env2 = process.env) {
|
|
|
24477
24489
|
return [...paths2];
|
|
24478
24490
|
}
|
|
24479
24491
|
function mayHaveGeminiAdcCredentials(env2 = process.env) {
|
|
24480
|
-
return getGeminiAdcCredentialPaths(env2).some((path9) =>
|
|
24492
|
+
return getGeminiAdcCredentialPaths(env2).some((path9) => existsSync4(path9));
|
|
24481
24493
|
}
|
|
24482
24494
|
function normalizeAccessToken(value) {
|
|
24483
24495
|
if (typeof value === "string") {
|
|
@@ -41053,7 +41065,7 @@ var init_providerValidation = __esm(() => {
|
|
|
41053
41065
|
});
|
|
41054
41066
|
|
|
41055
41067
|
// src/utils/providerProfile.ts
|
|
41056
|
-
import { existsSync as
|
|
41068
|
+
import { existsSync as existsSync5, mkdirSync as mkdirSync2, readFileSync as readFileSync5, rmSync as rmSync2, writeFileSync as writeFileSync2 } from "node:fs";
|
|
41057
41069
|
import { dirname as dirname3, join as join10, resolve as resolve3 } from "node:path";
|
|
41058
41070
|
function getDefaultProfileFilePath(configDir) {
|
|
41059
41071
|
return join10(configDir ?? getClaudeConfigHomeDir(), PROFILE_FILE_NAME);
|
|
@@ -41075,7 +41087,7 @@ function resolveProfileFileReadPaths(options) {
|
|
|
41075
41087
|
if (options?.filePath || options?.cwd && !options?.configDir) {
|
|
41076
41088
|
return [primary];
|
|
41077
41089
|
}
|
|
41078
|
-
if (
|
|
41090
|
+
if (existsSync5(primary)) {
|
|
41079
41091
|
return [primary];
|
|
41080
41092
|
}
|
|
41081
41093
|
const legacy = resolveLegacyProfileFilePath(options?.cwd);
|
|
@@ -41099,7 +41111,7 @@ function ensureProfileDirectory(filePath) {
|
|
|
41099
41111
|
}
|
|
41100
41112
|
}
|
|
41101
41113
|
function readProfileFile(filePath) {
|
|
41102
|
-
if (!
|
|
41114
|
+
if (!existsSync5(filePath)) {
|
|
41103
41115
|
return null;
|
|
41104
41116
|
}
|
|
41105
41117
|
try {
|
|
@@ -142642,7 +142654,7 @@ async function checkAndRefreshOAuthTokenIfNeededImpl(retryCount, force) {
|
|
|
142642
142654
|
}
|
|
142643
142655
|
}
|
|
142644
142656
|
function isClaudeAISubscriber() {
|
|
142645
|
-
if (!isAnthropicAuthEnabled()) {
|
|
142657
|
+
if (!isAnthropicAuthEnabled() || isVerbooMode()) {
|
|
142646
142658
|
return false;
|
|
142647
142659
|
}
|
|
142648
142660
|
return shouldUseClaudeAIAuth(getClaudeAIOAuthTokens()?.scopes);
|
|
@@ -150379,7 +150391,7 @@ var init_frontmatterParser = __esm(() => {
|
|
|
150379
150391
|
|
|
150380
150392
|
// src/utils/ripgrep.ts
|
|
150381
150393
|
import { execFile as execFile2, spawn as spawn3 } from "child_process";
|
|
150382
|
-
import { existsSync as
|
|
150394
|
+
import { existsSync as existsSync6 } from "fs";
|
|
150383
150395
|
import { homedir as homedir9 } from "os";
|
|
150384
150396
|
import * as path10 from "path";
|
|
150385
150397
|
function isErrnoException(error41) {
|
|
@@ -150388,7 +150400,7 @@ function isErrnoException(error41) {
|
|
|
150388
150400
|
function resolveBuiltinRgPath() {
|
|
150389
150401
|
try {
|
|
150390
150402
|
const mod = __require("@vscode/ripgrep");
|
|
150391
|
-
if (mod.rgPath &&
|
|
150403
|
+
if (mod.rgPath && existsSync6(mod.rgPath)) {
|
|
150392
150404
|
return mod.rgPath;
|
|
150393
150405
|
}
|
|
150394
150406
|
} catch {}
|
|
@@ -150725,10 +150737,10 @@ var init_ripgrep = __esm(() => {
|
|
|
150725
150737
|
const bundledMode = isInBundledMode();
|
|
150726
150738
|
const rgRoot = path10.resolve(__dirname, "vendor", "ripgrep");
|
|
150727
150739
|
const vendorCommand = process.platform === "win32" ? path10.resolve(rgRoot, `${process.arch}-win32`, "rg.exe") : path10.resolve(rgRoot, `${process.arch}-${process.platform}`, "rg");
|
|
150728
|
-
const builtinExists =
|
|
150740
|
+
const builtinExists = existsSync6(vendorCommand);
|
|
150729
150741
|
const builtinCommand = builtinExists ? vendorCommand : resolveBuiltinRgPath();
|
|
150730
150742
|
const npmCommand = process.platform === "win32" ? path10.resolve(__dirname, "..", "node_modules", "@vscode", "ripgrep", "bin", "rg.exe") : path10.resolve(__dirname, "..", "node_modules", "@vscode", "ripgrep", "bin", "rg");
|
|
150731
|
-
const npmExists =
|
|
150743
|
+
const npmExists = existsSync6(npmCommand);
|
|
150732
150744
|
const { cmd: systemExecutablePath } = findExecutable("rg", []);
|
|
150733
150745
|
return resolveRipgrepConfig({
|
|
150734
150746
|
userWantsSystemRipgrep,
|
|
@@ -164444,18 +164456,18 @@ function getProjectInstructionFilePaths(dir) {
|
|
|
164444
164456
|
join34(dir, FALLBACK_PROJECT_INSTRUCTION_FILE)
|
|
164445
164457
|
];
|
|
164446
164458
|
}
|
|
164447
|
-
function getProjectInstructionFilePath(dir,
|
|
164459
|
+
function getProjectInstructionFilePath(dir, existsSync7) {
|
|
164448
164460
|
const [primaryPath, fallbackPath] = getProjectInstructionFilePaths(dir);
|
|
164449
|
-
return
|
|
164461
|
+
return existsSync7(primaryPath) ? primaryPath : fallbackPath;
|
|
164450
164462
|
}
|
|
164451
|
-
function hasProjectInstructionFile(dir,
|
|
164452
|
-
return getProjectInstructionFilePaths(dir).some((path11) =>
|
|
164463
|
+
function hasProjectInstructionFile(dir, existsSync7) {
|
|
164464
|
+
return getProjectInstructionFilePaths(dir).some((path11) => existsSync7(path11));
|
|
164453
164465
|
}
|
|
164454
|
-
function findProjectInstructionFilePathInAncestors(startDir,
|
|
164466
|
+
function findProjectInstructionFilePathInAncestors(startDir, existsSync7) {
|
|
164455
164467
|
let currentDir = startDir;
|
|
164456
164468
|
while (true) {
|
|
164457
|
-
if (hasProjectInstructionFile(currentDir,
|
|
164458
|
-
return getProjectInstructionFilePath(currentDir,
|
|
164469
|
+
if (hasProjectInstructionFile(currentDir, existsSync7)) {
|
|
164470
|
+
return getProjectInstructionFilePath(currentDir, existsSync7);
|
|
164459
164471
|
}
|
|
164460
164472
|
const parentDir = dirname18(currentDir);
|
|
164461
164473
|
if (parentDir === currentDir) {
|
|
@@ -166632,7 +166644,7 @@ var init_contextAnalysis = __esm(() => {
|
|
|
166632
166644
|
});
|
|
166633
166645
|
|
|
166634
166646
|
// src/utils/memoryDiagnostics.ts
|
|
166635
|
-
import { existsSync as
|
|
166647
|
+
import { existsSync as existsSync7, readFileSync as readFileSync8, readdirSync as readdirSync2, statSync as statSync7 } from "fs";
|
|
166636
166648
|
import { getHeapSpaceStatistics, getHeapStatistics } from "v8";
|
|
166637
166649
|
function parseCgroupMemoryValue(raw) {
|
|
166638
166650
|
const value = raw?.trim();
|
|
@@ -166729,7 +166741,7 @@ function getTaskDiagnostics(task) {
|
|
|
166729
166741
|
if (getMinDebugLogLevel() === "verbose") {
|
|
166730
166742
|
try {
|
|
166731
166743
|
const outputPath = getTaskOutputPath(task.id);
|
|
166732
|
-
if (
|
|
166744
|
+
if (existsSync7(outputPath)) {
|
|
166733
166745
|
const stat14 = statSync7(outputPath);
|
|
166734
166746
|
base2.outputFileSize = stat14.size;
|
|
166735
166747
|
}
|
|
@@ -383070,7 +383082,7 @@ function getAnthropicEnvMetadata() {
|
|
|
383070
383082
|
function getBuildAgeMinutes() {
|
|
383071
383083
|
if (false)
|
|
383072
383084
|
;
|
|
383073
|
-
const buildTime = new Date("2026-06-
|
|
383085
|
+
const buildTime = new Date("2026-06-10T20:56:38.357Z").getTime();
|
|
383074
383086
|
if (isNaN(buildTime))
|
|
383075
383087
|
return;
|
|
383076
383088
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -411300,7 +411312,7 @@ function buildPrimarySection() {
|
|
|
411300
411312
|
});
|
|
411301
411313
|
return [{
|
|
411302
411314
|
label: "Version",
|
|
411303
|
-
value: "0.10.
|
|
411315
|
+
value: "0.10.1"
|
|
411304
411316
|
}, {
|
|
411305
411317
|
label: "Session name",
|
|
411306
411318
|
value: nameValue
|
|
@@ -422458,14 +422470,14 @@ var init_onboard_github2 = __esm(() => {
|
|
|
422458
422470
|
|
|
422459
422471
|
// src/utils/storage/SQLiteProvider.ts
|
|
422460
422472
|
import { join as join108 } from "path";
|
|
422461
|
-
import { existsSync as
|
|
422473
|
+
import { existsSync as existsSync8, mkdirSync as mkdirSync6, unlinkSync as unlinkSync3, statSync as statSync9 } from "fs";
|
|
422462
422474
|
|
|
422463
422475
|
class SQLiteProvider {
|
|
422464
422476
|
db = null;
|
|
422465
422477
|
dbPath;
|
|
422466
422478
|
isInitialized = false;
|
|
422467
422479
|
constructor(projectDir) {
|
|
422468
|
-
if (!
|
|
422480
|
+
if (!existsSync8(projectDir)) {
|
|
422469
422481
|
mkdirSync6(projectDir, { recursive: true });
|
|
422470
422482
|
}
|
|
422471
422483
|
this.dbPath = join108(projectDir, "knowledge.db");
|
|
@@ -422483,7 +422495,7 @@ class SQLiteProvider {
|
|
|
422483
422495
|
}
|
|
422484
422496
|
try {
|
|
422485
422497
|
const { Database } = await import("bun:sqlite");
|
|
422486
|
-
if (
|
|
422498
|
+
if (existsSync8(this.dbPath) && statSync9(this.dbPath).size === 0) {
|
|
422487
422499
|
unlinkSync3(this.dbPath);
|
|
422488
422500
|
}
|
|
422489
422501
|
this.db = new Database(this.dbPath);
|
|
@@ -422503,7 +422515,7 @@ class SQLiteProvider {
|
|
|
422503
422515
|
this.close();
|
|
422504
422516
|
const sidecars = [this.dbPath, `${this.dbPath}-wal`, `${this.dbPath}-shm`];
|
|
422505
422517
|
for (const file2 of sidecars) {
|
|
422506
|
-
if (
|
|
422518
|
+
if (existsSync8(file2)) {
|
|
422507
422519
|
try {
|
|
422508
422520
|
unlinkSync3(file2);
|
|
422509
422521
|
} catch {}
|
|
@@ -422676,7 +422688,7 @@ class SQLiteProvider {
|
|
|
422676
422688
|
}
|
|
422677
422689
|
clear() {
|
|
422678
422690
|
if (!this.db) {
|
|
422679
|
-
return !
|
|
422691
|
+
return !existsSync8(this.dbPath);
|
|
422680
422692
|
}
|
|
422681
422693
|
try {
|
|
422682
422694
|
this.db.transaction(() => {
|
|
@@ -422710,7 +422722,7 @@ var init_SQLiteProvider = __esm(() => {
|
|
|
422710
422722
|
});
|
|
422711
422723
|
|
|
422712
422724
|
// src/utils/storage/JSONProvider.ts
|
|
422713
|
-
import { readFileSync as readFileSync13, mkdirSync as mkdirSync7, existsSync as
|
|
422725
|
+
import { readFileSync as readFileSync13, mkdirSync as mkdirSync7, existsSync as existsSync9, rmSync as rmSync4 } from "fs";
|
|
422714
422726
|
import { join as join109, dirname as dirname49 } from "path";
|
|
422715
422727
|
|
|
422716
422728
|
class JSONProvider {
|
|
@@ -422719,7 +422731,7 @@ class JSONProvider {
|
|
|
422719
422731
|
this.path = join109(projectDir, "knowledge_graph.json");
|
|
422720
422732
|
}
|
|
422721
422733
|
loadGraph() {
|
|
422722
|
-
if (!
|
|
422734
|
+
if (!existsSync9(this.path))
|
|
422723
422735
|
return null;
|
|
422724
422736
|
try {
|
|
422725
422737
|
const data = JSON.parse(readFileSync13(this.path, "utf-8"));
|
|
@@ -422736,7 +422748,7 @@ class JSONProvider {
|
|
|
422736
422748
|
saveGraph(graph) {
|
|
422737
422749
|
try {
|
|
422738
422750
|
const dir = dirname49(this.path);
|
|
422739
|
-
if (!
|
|
422751
|
+
if (!existsSync9(dir)) {
|
|
422740
422752
|
mkdirSync7(dir, { recursive: true });
|
|
422741
422753
|
}
|
|
422742
422754
|
writeFileSyncAndFlush_DEPRECATED(this.path, JSON.stringify(graph, null, 2), { encoding: "utf-8" });
|
|
@@ -422747,12 +422759,12 @@ class JSONProvider {
|
|
|
422747
422759
|
}
|
|
422748
422760
|
}
|
|
422749
422761
|
delete() {
|
|
422750
|
-
if (!
|
|
422762
|
+
if (!existsSync9(this.path)) {
|
|
422751
422763
|
return true;
|
|
422752
422764
|
}
|
|
422753
422765
|
try {
|
|
422754
422766
|
rmSync4(this.path, { force: true });
|
|
422755
|
-
return !
|
|
422767
|
+
return !existsSync9(this.path);
|
|
422756
422768
|
} catch {
|
|
422757
422769
|
return false;
|
|
422758
422770
|
}
|
|
@@ -422763,7 +422775,7 @@ var init_JSONProvider = __esm(() => {
|
|
|
422763
422775
|
});
|
|
422764
422776
|
|
|
422765
422777
|
// src/utils/knowledgeGraph.ts
|
|
422766
|
-
import { rmSync as rmSync5, renameSync as renameSync2, existsSync as
|
|
422778
|
+
import { rmSync as rmSync5, renameSync as renameSync2, existsSync as existsSync10, readFileSync as readFileSync14 } from "fs";
|
|
422767
422779
|
import { join as join110 } from "path";
|
|
422768
422780
|
import { create, insert, search as search2, remove as remove2, getByID } from "@orama/orama";
|
|
422769
422781
|
import { persist, restore } from "@orama/plugin-data-persistence";
|
|
@@ -422778,7 +422790,7 @@ function removePathWithRetry(path18, options2) {
|
|
|
422778
422790
|
for (let attempt = 0;attempt < maxAttempts; attempt++) {
|
|
422779
422791
|
try {
|
|
422780
422792
|
rmSync5(path18, { force: true });
|
|
422781
|
-
if (!
|
|
422793
|
+
if (!existsSync10(path18)) {
|
|
422782
422794
|
return;
|
|
422783
422795
|
}
|
|
422784
422796
|
} catch (error42) {
|
|
@@ -422789,7 +422801,7 @@ function removePathWithRetry(path18, options2) {
|
|
|
422789
422801
|
}
|
|
422790
422802
|
sleepSync(25 * (attempt + 1));
|
|
422791
422803
|
}
|
|
422792
|
-
if (!
|
|
422804
|
+
if (!existsSync10(path18)) {
|
|
422793
422805
|
return;
|
|
422794
422806
|
}
|
|
422795
422807
|
const quarantinePath = `${path18}.stale-${Date.now()}`;
|
|
@@ -422797,7 +422809,7 @@ function removePathWithRetry(path18, options2) {
|
|
|
422797
422809
|
renameSync2(path18, quarantinePath);
|
|
422798
422810
|
return;
|
|
422799
422811
|
} catch (error42) {
|
|
422800
|
-
if (!
|
|
422812
|
+
if (!existsSync10(path18)) {
|
|
422801
422813
|
return;
|
|
422802
422814
|
}
|
|
422803
422815
|
if (!options2?.requireMissingAfterCleanup) {
|
|
@@ -422868,7 +422880,7 @@ async function initOrama(cwd2) {
|
|
|
422868
422880
|
return;
|
|
422869
422881
|
const path18 = getOramaPersistencePath(cwd2);
|
|
422870
422882
|
let restored = false;
|
|
422871
|
-
if (
|
|
422883
|
+
if (existsSync10(path18)) {
|
|
422872
422884
|
try {
|
|
422873
422885
|
const data = readFileSync14(path18);
|
|
422874
422886
|
oramaDb = await restore("binary", data);
|
|
@@ -424228,7 +424240,7 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
|
|
|
424228
424240
|
return `${VERBOO_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
|
|
424229
424241
|
}
|
|
424230
424242
|
function getPublicBuildVersion() {
|
|
424231
|
-
return "0.10.
|
|
424243
|
+
return "0.10.1";
|
|
424232
424244
|
}
|
|
424233
424245
|
var import_semver10, VERBOO_RELEASES_URL = "https://github.com/verbeux-ai/code/releases", fallbackBuildVersion, publicBuildVersion;
|
|
424234
424246
|
var init_version = __esm(() => {
|
|
@@ -428667,15 +428679,11 @@ var login_default = () => ({
|
|
|
428667
428679
|
isEnabled: () => {
|
|
428668
428680
|
if (isEnvTruthy(process.env.DISABLE_LOGIN_COMMAND))
|
|
428669
428681
|
return false;
|
|
428670
|
-
if (isVerbooMode())
|
|
428671
|
-
return !isVerbooSessionValidated();
|
|
428672
428682
|
return true;
|
|
428673
428683
|
},
|
|
428674
428684
|
load: () => Promise.resolve().then(() => (init_login(), exports_login))
|
|
428675
428685
|
});
|
|
428676
428686
|
var init_login2 = __esm(() => {
|
|
428677
|
-
init_oauth();
|
|
428678
|
-
init_verbooStartupAuth();
|
|
428679
428687
|
init_auth();
|
|
428680
428688
|
init_envUtils();
|
|
428681
428689
|
});
|
|
@@ -479576,7 +479584,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
479576
479584
|
var call63 = async () => {
|
|
479577
479585
|
return {
|
|
479578
479586
|
type: "text",
|
|
479579
|
-
value: `${"99.0.0"} (built ${"2026-06-
|
|
479587
|
+
value: `${"99.0.0"} (built ${"2026-06-10T20:56:38.357Z"})`
|
|
479580
479588
|
};
|
|
479581
479589
|
}, version2, version_default;
|
|
479582
479590
|
var init_version2 = __esm(() => {
|
|
@@ -491131,6 +491139,7 @@ __export(exports_sessionStorage, {
|
|
|
491131
491139
|
readRemoteAgentMetadata: () => readRemoteAgentMetadata,
|
|
491132
491140
|
readAgentMetadata: () => readAgentMetadata,
|
|
491133
491141
|
reAppendSessionMetadata: () => reAppendSessionMetadata,
|
|
491142
|
+
mirrorTranscriptToAdditionalDirs: () => mirrorTranscriptToAdditionalDirs,
|
|
491134
491143
|
loadTranscriptFromFile: () => loadTranscriptFromFile,
|
|
491135
491144
|
loadTranscriptFile: () => loadTranscriptFile,
|
|
491136
491145
|
loadSubagentTranscripts: () => loadSubagentTranscripts,
|
|
@@ -491189,6 +491198,7 @@ __export(exports_sessionStorage, {
|
|
|
491189
491198
|
import { closeSync as closeSync4, fstatSync, openSync as openSync5, readSync as readSync3 } from "fs";
|
|
491190
491199
|
import {
|
|
491191
491200
|
appendFile as fsAppendFile,
|
|
491201
|
+
copyFile as copyFile9,
|
|
491192
491202
|
open as fsOpen2,
|
|
491193
491203
|
mkdir as mkdir42,
|
|
491194
491204
|
readdir as readdir31,
|
|
@@ -491221,6 +491231,20 @@ function getTranscriptPathForSession(sessionId) {
|
|
|
491221
491231
|
const projectDir = getProjectDir3(getOriginalCwd());
|
|
491222
491232
|
return join138(projectDir, `${sessionId}.jsonl`);
|
|
491223
491233
|
}
|
|
491234
|
+
async function mirrorTranscriptToAdditionalDirs(writtenFile, sessionId) {
|
|
491235
|
+
const additionalDirs = getAdditionalProjectsDirs();
|
|
491236
|
+
if (additionalDirs.length === 0)
|
|
491237
|
+
return;
|
|
491238
|
+
const projectDirName = sanitizePath2(getSessionProjectDir() ?? getOriginalCwd());
|
|
491239
|
+
for (const baseDir of additionalDirs) {
|
|
491240
|
+
const targetDir = join138(baseDir, projectDirName);
|
|
491241
|
+
const targetPath = join138(targetDir, `${sessionId}.jsonl`);
|
|
491242
|
+
try {
|
|
491243
|
+
await mkdir42(targetDir, { recursive: true, mode: 448 });
|
|
491244
|
+
await copyFile9(writtenFile, targetPath);
|
|
491245
|
+
} catch {}
|
|
491246
|
+
}
|
|
491247
|
+
}
|
|
491224
491248
|
function setAgentTranscriptSubdir(agentId, subdir) {
|
|
491225
491249
|
agentTranscriptSubdirs.set(agentId, subdir);
|
|
491226
491250
|
}
|
|
@@ -491310,13 +491334,22 @@ async function listRemoteAgentMetadata() {
|
|
|
491310
491334
|
return results;
|
|
491311
491335
|
}
|
|
491312
491336
|
function sessionIdExists(sessionId) {
|
|
491337
|
+
const fs4 = getFsImplementation2();
|
|
491313
491338
|
const projectDir = getProjectDir3(getOriginalCwd());
|
|
491314
491339
|
const sessionFile = join138(projectDir, `${sessionId}.jsonl`);
|
|
491315
|
-
const fs4 = getFsImplementation2();
|
|
491316
491340
|
try {
|
|
491317
491341
|
fs4.statSync(sessionFile);
|
|
491318
491342
|
return true;
|
|
491319
491343
|
} catch {
|
|
491344
|
+
for (const additionalDir of getAdditionalProjectsDirs()) {
|
|
491345
|
+
const additionalFile = join138(additionalDir, sanitizePath2(getOriginalCwd()), `${sessionId}.jsonl`);
|
|
491346
|
+
try {
|
|
491347
|
+
fs4.statSync(additionalFile);
|
|
491348
|
+
return true;
|
|
491349
|
+
} catch {
|
|
491350
|
+
continue;
|
|
491351
|
+
}
|
|
491352
|
+
}
|
|
491320
491353
|
return false;
|
|
491321
491354
|
}
|
|
491322
491355
|
}
|
|
@@ -491454,6 +491487,10 @@ class Project {
|
|
|
491454
491487
|
await mkdir42(dirname57(filePath), { recursive: true, mode: 448 });
|
|
491455
491488
|
await fsAppendFile(filePath, data, { mode: 384 });
|
|
491456
491489
|
}
|
|
491490
|
+
const sessionId = getSessionId();
|
|
491491
|
+
if (sessionId) {
|
|
491492
|
+
mirrorTranscriptToAdditionalDirs(filePath, sessionId).catch(() => {});
|
|
491493
|
+
}
|
|
491457
491494
|
}
|
|
491458
491495
|
async drainWriteQueue() {
|
|
491459
491496
|
for (const [filePath, queue2] of this.writeQueues) {
|
|
@@ -491856,11 +491893,19 @@ class Project {
|
|
|
491856
491893
|
await stat46(targetFile);
|
|
491857
491894
|
this.existingSessionFiles.set(sessionId, targetFile);
|
|
491858
491895
|
return targetFile;
|
|
491859
|
-
} catch
|
|
491860
|
-
|
|
491861
|
-
|
|
491862
|
-
|
|
491896
|
+
} catch {}
|
|
491897
|
+
const projectDirName = sanitizePath2(getOriginalCwd());
|
|
491898
|
+
for (const additionalDir of getAdditionalProjectsDirs()) {
|
|
491899
|
+
const candidate = join138(additionalDir, projectDirName, `${sessionId}.jsonl`);
|
|
491900
|
+
try {
|
|
491901
|
+
await stat46(candidate);
|
|
491902
|
+
this.existingSessionFiles.set(sessionId, candidate);
|
|
491903
|
+
return candidate;
|
|
491904
|
+
} catch {
|
|
491905
|
+
continue;
|
|
491906
|
+
}
|
|
491863
491907
|
}
|
|
491908
|
+
return null;
|
|
491864
491909
|
}
|
|
491865
491910
|
async persistToRemote(sessionId, entry) {
|
|
491866
491911
|
if (isShuttingDown()) {
|
|
@@ -493493,7 +493538,18 @@ async function loadTranscriptFile(filePath, opts) {
|
|
|
493493
493538
|
};
|
|
493494
493539
|
}
|
|
493495
493540
|
async function loadSessionFile(sessionId) {
|
|
493496
|
-
const
|
|
493541
|
+
const projectDir = getSessionProjectDir() ?? getProjectDir3(getOriginalCwd());
|
|
493542
|
+
let sessionFile = join138(projectDir, `${sessionId}.jsonl`);
|
|
493543
|
+
const fs4 = getFsImplementation2();
|
|
493544
|
+
if (!fs4.existsSync(sessionFile)) {
|
|
493545
|
+
for (const additionalDir of getAdditionalProjectsDirs()) {
|
|
493546
|
+
const candidate = join138(additionalDir, sanitizePath2(getOriginalCwd()), `${sessionId}.jsonl`);
|
|
493547
|
+
if (fs4.existsSync(candidate)) {
|
|
493548
|
+
sessionFile = candidate;
|
|
493549
|
+
break;
|
|
493550
|
+
}
|
|
493551
|
+
}
|
|
493552
|
+
}
|
|
493497
493553
|
return loadTranscriptFile(sessionFile);
|
|
493498
493554
|
}
|
|
493499
493555
|
function clearSessionMessagesCache() {
|
|
@@ -493579,17 +493635,19 @@ async function loadAllProjectsMessageLogsFull(limit) {
|
|
|
493579
493635
|
return sorted;
|
|
493580
493636
|
}
|
|
493581
493637
|
async function loadAllProjectsMessageLogsProgressive(limit, initialEnrichCount = INITIAL_ENRICH_COUNT) {
|
|
493582
|
-
const
|
|
493583
|
-
let dirents;
|
|
493584
|
-
try {
|
|
493585
|
-
dirents = await readdir31(projectsDir, { withFileTypes: true });
|
|
493586
|
-
} catch {
|
|
493587
|
-
return { logs: [], allStatLogs: [], nextIndex: 0 };
|
|
493588
|
-
}
|
|
493589
|
-
const projectDirs = dirents.filter((dirent) => dirent.isDirectory()).map((dirent) => join138(projectsDir, dirent.name));
|
|
493638
|
+
const projectsDirs = getProjectsDirs();
|
|
493590
493639
|
const rawLogs = [];
|
|
493591
|
-
for (const
|
|
493592
|
-
|
|
493640
|
+
for (const projectsDir of projectsDirs) {
|
|
493641
|
+
let dirents;
|
|
493642
|
+
try {
|
|
493643
|
+
dirents = await readdir31(projectsDir, { withFileTypes: true });
|
|
493644
|
+
} catch {
|
|
493645
|
+
continue;
|
|
493646
|
+
}
|
|
493647
|
+
const projectDirs = dirents.filter((dirent) => dirent.isDirectory()).map((dirent) => join138(projectsDir, dirent.name));
|
|
493648
|
+
for (const projectDir of projectDirs) {
|
|
493649
|
+
rawLogs.push(...await getSessionFilesLite(projectDir, limit));
|
|
493650
|
+
}
|
|
493593
493651
|
}
|
|
493594
493652
|
const sorted = deduplicateLogsBySessionId(rawLogs);
|
|
493595
493653
|
const { logs, nextIndex } = await enrichLogs(sorted, 0, initialEnrichCount);
|
|
@@ -493614,10 +493672,16 @@ async function loadSameRepoMessageLogsProgressive(worktreePaths, limit, initialE
|
|
|
493614
493672
|
}
|
|
493615
493673
|
async function getStatOnlyLogsForWorktrees(worktreePaths, limit) {
|
|
493616
493674
|
const projectsDir = getProjectsDir();
|
|
493675
|
+
const allLogs = [];
|
|
493617
493676
|
if (worktreePaths.length <= 1) {
|
|
493618
493677
|
const cwd2 = getOriginalCwd();
|
|
493619
493678
|
const projectDir = getProjectDir3(cwd2);
|
|
493620
|
-
|
|
493679
|
+
allLogs.push(...await getSessionFilesLite(projectDir, undefined, cwd2));
|
|
493680
|
+
for (const additionalDir of getAdditionalProjectsDirs()) {
|
|
493681
|
+
const additionalProjectDir = join138(additionalDir, sanitizePath2(cwd2));
|
|
493682
|
+
allLogs.push(...await getSessionFilesLite(additionalProjectDir, undefined, cwd2));
|
|
493683
|
+
}
|
|
493684
|
+
return deduplicateLogsBySessionId(allLogs);
|
|
493621
493685
|
}
|
|
493622
493686
|
const caseInsensitive = process.platform === "win32";
|
|
493623
493687
|
const indexed = worktreePaths.map((wt) => {
|
|
@@ -493628,30 +493692,33 @@ async function getStatOnlyLogsForWorktrees(worktreePaths, limit) {
|
|
|
493628
493692
|
};
|
|
493629
493693
|
});
|
|
493630
493694
|
indexed.sort((a2, b) => b.prefix.length - a2.prefix.length);
|
|
493631
|
-
|
|
493632
|
-
|
|
493633
|
-
|
|
493634
|
-
|
|
493635
|
-
|
|
493636
|
-
|
|
493637
|
-
|
|
493638
|
-
const
|
|
493639
|
-
|
|
493640
|
-
|
|
493641
|
-
|
|
493642
|
-
|
|
493643
|
-
|
|
493644
|
-
|
|
493645
|
-
|
|
493646
|
-
|
|
493647
|
-
|
|
493648
|
-
|
|
493649
|
-
|
|
493650
|
-
|
|
493651
|
-
break;
|
|
493695
|
+
async function scanSourceDir(srcDir) {
|
|
493696
|
+
let allDirents;
|
|
493697
|
+
try {
|
|
493698
|
+
allDirents = await readdir31(srcDir, { withFileTypes: true });
|
|
493699
|
+
} catch {
|
|
493700
|
+
return;
|
|
493701
|
+
}
|
|
493702
|
+
const seenDirs = new Set;
|
|
493703
|
+
for (const dirent of allDirents) {
|
|
493704
|
+
if (!dirent.isDirectory())
|
|
493705
|
+
continue;
|
|
493706
|
+
const dirName = caseInsensitive ? dirent.name.toLowerCase() : dirent.name;
|
|
493707
|
+
if (seenDirs.has(dirName))
|
|
493708
|
+
continue;
|
|
493709
|
+
for (const { path: wtPath, prefix } of indexed) {
|
|
493710
|
+
if (dirName === prefix || dirName.startsWith(prefix + "-")) {
|
|
493711
|
+
seenDirs.add(dirName);
|
|
493712
|
+
allLogs.push(...await getSessionFilesLite(join138(srcDir, dirent.name), undefined, wtPath));
|
|
493713
|
+
break;
|
|
493714
|
+
}
|
|
493652
493715
|
}
|
|
493653
493716
|
}
|
|
493654
493717
|
}
|
|
493718
|
+
await scanSourceDir(projectsDir);
|
|
493719
|
+
for (const additionalDir of getAdditionalProjectsDirs()) {
|
|
493720
|
+
await scanSourceDir(additionalDir);
|
|
493721
|
+
}
|
|
493655
493722
|
return deduplicateLogsBySessionId(allLogs);
|
|
493656
493723
|
}
|
|
493657
493724
|
async function getAgentTranscript(agentId) {
|
|
@@ -500849,7 +500916,7 @@ __export(exports_worktree, {
|
|
|
500849
500916
|
});
|
|
500850
500917
|
import { spawnSync as spawnSync4 } from "child_process";
|
|
500851
500918
|
import {
|
|
500852
|
-
copyFile as
|
|
500919
|
+
copyFile as copyFile10,
|
|
500853
500920
|
mkdir as mkdir44,
|
|
500854
500921
|
readdir as readdir32,
|
|
500855
500922
|
readFile as readFile50,
|
|
@@ -501091,7 +501158,7 @@ async function copyWorktreeIncludeFiles(repoRoot, worktreePath) {
|
|
|
501091
501158
|
const destPath = join143(worktreePath, relativePath2);
|
|
501092
501159
|
try {
|
|
501093
501160
|
await mkdir44(dirname58(destPath), { recursive: true });
|
|
501094
|
-
await
|
|
501161
|
+
await copyFile10(srcPath, destPath);
|
|
501095
501162
|
copied.push(relativePath2);
|
|
501096
501163
|
} catch (e2) {
|
|
501097
501164
|
logForDebugging(`Failed to copy ${relativePath2} to worktree: ${e2.message}`, { level: "warn" });
|
|
@@ -501108,7 +501175,7 @@ async function performPostCreationSetup(repoRoot, worktreePath) {
|
|
|
501108
501175
|
try {
|
|
501109
501176
|
const destSettingsLocal = join143(worktreePath, localSettingsRelativePath);
|
|
501110
501177
|
await mkdirRecursive(dirname58(destSettingsLocal));
|
|
501111
|
-
await
|
|
501178
|
+
await copyFile10(sourceSettingsLocal, destSettingsLocal);
|
|
501112
501179
|
logForDebugging(`Copied settings.local.json to worktree: ${destSettingsLocal}`);
|
|
501113
501180
|
} catch (e2) {
|
|
501114
501181
|
const code = getErrnoCode(e2);
|
|
@@ -509188,7 +509255,7 @@ var init_constants6 = __esm(() => {
|
|
|
509188
509255
|
|
|
509189
509256
|
// src/utils/settings/mdm/rawRead.ts
|
|
509190
509257
|
import { execFile as execFile4 } from "child_process";
|
|
509191
|
-
import { existsSync as
|
|
509258
|
+
import { existsSync as existsSync11 } from "fs";
|
|
509192
509259
|
function execFilePromise(cmd, args) {
|
|
509193
509260
|
return new Promise((resolve42) => {
|
|
509194
509261
|
execFile4(cmd, args, { encoding: "utf-8", timeout: MDM_SUBPROCESS_TIMEOUT_MS }, (err2, stdout) => {
|
|
@@ -509201,7 +509268,7 @@ function fireRawRead() {
|
|
|
509201
509268
|
if (process.platform === "darwin") {
|
|
509202
509269
|
const plistPaths = getMacOSPlistPaths();
|
|
509203
509270
|
const allResults = await Promise.all(plistPaths.map(async ({ path: path21, label }) => {
|
|
509204
|
-
if (!
|
|
509271
|
+
if (!existsSync11(path21)) {
|
|
509205
509272
|
return { stdout: "", label, ok: false };
|
|
509206
509273
|
}
|
|
509207
509274
|
const { stdout, code } = await execFilePromise(PLUTIL_PATH, [
|
|
@@ -511761,7 +511828,7 @@ function printStartupScreen(modelOverride) {
|
|
|
511761
511828
|
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
511762
511829
|
const cwd2 = process.cwd();
|
|
511763
511830
|
const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
|
|
511764
|
-
const version3 = "0.10.
|
|
511831
|
+
const version3 = "0.10.1";
|
|
511765
511832
|
const bold2 = `${ESC4}1m`;
|
|
511766
511833
|
const PURPLE = rgb3(...ACCENT);
|
|
511767
511834
|
const SOFT = rgb3(...CREAM);
|
|
@@ -530053,7 +530120,7 @@ var init_routerRateLimitHook = __esm(() => {
|
|
|
530053
530120
|
function getSemverPart(version3) {
|
|
530054
530121
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
530055
530122
|
}
|
|
530056
|
-
function useUpdateNotification(updatedVersion, initialVersion = "0.10.
|
|
530123
|
+
function useUpdateNotification(updatedVersion, initialVersion = "0.10.1") {
|
|
530057
530124
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
|
|
530058
530125
|
const [pendingNotification2, setPendingNotification] = import_react223.useState(null);
|
|
530059
530126
|
if (updatedVersion) {
|
|
@@ -530093,7 +530160,7 @@ function AutoUpdater({
|
|
|
530093
530160
|
return;
|
|
530094
530161
|
}
|
|
530095
530162
|
if (false) {}
|
|
530096
|
-
const currentVersion = "0.10.
|
|
530163
|
+
const currentVersion = "0.10.1";
|
|
530097
530164
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
530098
530165
|
let latestVersion = await getLatestVersion(channel2);
|
|
530099
530166
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -530446,17 +530513,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
530446
530513
|
const maxVersion = await getMaxVersion();
|
|
530447
530514
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
530448
530515
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
530449
|
-
if (gte("0.10.
|
|
530450
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.10.
|
|
530516
|
+
if (gte("0.10.1", maxVersion)) {
|
|
530517
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.10.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
530451
530518
|
setUpdateAvailable(false);
|
|
530452
530519
|
return;
|
|
530453
530520
|
}
|
|
530454
530521
|
latest = maxVersion;
|
|
530455
530522
|
}
|
|
530456
|
-
const hasUpdate = latest && !gte("0.10.
|
|
530523
|
+
const hasUpdate = latest && !gte("0.10.1", latest) && !shouldSkipVersion(latest);
|
|
530457
530524
|
setUpdateAvailable(!!hasUpdate);
|
|
530458
530525
|
if (hasUpdate) {
|
|
530459
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.10.
|
|
530526
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.10.1"} -> ${latest}`);
|
|
530460
530527
|
}
|
|
530461
530528
|
};
|
|
530462
530529
|
$2[0] = t1;
|
|
@@ -530490,7 +530557,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
530490
530557
|
wrap: "truncate",
|
|
530491
530558
|
children: [
|
|
530492
530559
|
"currentVersion: ",
|
|
530493
|
-
"0.10.
|
|
530560
|
+
"0.10.1"
|
|
530494
530561
|
]
|
|
530495
530562
|
});
|
|
530496
530563
|
$2[3] = verbose;
|
|
@@ -534989,7 +535056,7 @@ async function sendDirectMemberMessage(recipientName, message, teamContext, writ
|
|
|
534989
535056
|
}
|
|
534990
535057
|
|
|
534991
535058
|
// src/utils/dragDropPaths.ts
|
|
534992
|
-
import { existsSync as
|
|
535059
|
+
import { existsSync as existsSync12 } from "fs";
|
|
534993
535060
|
import { isAbsolute as isAbsolute27 } from "path";
|
|
534994
535061
|
function extractDraggedFilePaths(text2) {
|
|
534995
535062
|
const segments = text2.split(/ (?=\/|[A-Za-z]:\\)/).flatMap((part) => part.split(`
|
|
@@ -535009,7 +535076,7 @@ function extractDraggedFilePaths(text2) {
|
|
|
535009
535076
|
return [];
|
|
535010
535077
|
if (!isAbsolute27(p))
|
|
535011
535078
|
return [];
|
|
535012
|
-
if (!
|
|
535079
|
+
if (!existsSync12(p))
|
|
535013
535080
|
return [];
|
|
535014
535081
|
cleaned.push(p);
|
|
535015
535082
|
}
|
|
@@ -546251,10 +546318,10 @@ async function autoUpdateCliInBackground() {
|
|
|
546251
546318
|
return;
|
|
546252
546319
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
546253
546320
|
const latest = await getLatestVersion(channel2);
|
|
546254
|
-
if (!latest || gte("0.10.
|
|
546321
|
+
if (!latest || gte("0.10.1", latest))
|
|
546255
546322
|
return;
|
|
546256
546323
|
writeToStdout(`
|
|
546257
|
-
Nova versão disponível: ${latest} (atual: ${"0.10.
|
|
546324
|
+
Nova versão disponível: ${latest} (atual: ${"0.10.1"})
|
|
546258
546325
|
`);
|
|
546259
546326
|
writeToStdout(`Atualizando automaticamente...
|
|
546260
546327
|
`);
|
|
@@ -546403,7 +546470,7 @@ var init_useDeferredHookMessages = __esm(() => {
|
|
|
546403
546470
|
|
|
546404
546471
|
// src/hooks/useApiKeyVerification.ts
|
|
546405
546472
|
function getInitialVerificationStatus() {
|
|
546406
|
-
if (!isAnthropicAuthEnabled() || isClaudeAISubscriber()) {
|
|
546473
|
+
if (!isAnthropicAuthEnabled() || isClaudeAISubscriber() || isVerbooMode()) {
|
|
546407
546474
|
return "valid";
|
|
546408
546475
|
}
|
|
546409
546476
|
const { key, source } = getAnthropicApiKeyWithSource({
|
|
@@ -546417,7 +546484,7 @@ function getInitialVerificationStatus() {
|
|
|
546417
546484
|
function useApiKeyVerification() {
|
|
546418
546485
|
const [status2, setStatus] = import_react268.useState(getInitialVerificationStatus);
|
|
546419
546486
|
const [error42, setError] = import_react268.useState(null);
|
|
546420
|
-
const anthropicVerificationEnabled = isAnthropicAuthEnabled() && !isClaudeAISubscriber();
|
|
546487
|
+
const anthropicVerificationEnabled = isAnthropicAuthEnabled() && !isClaudeAISubscriber() && !isVerbooMode();
|
|
546421
546488
|
import_react268.useEffect(() => {
|
|
546422
546489
|
const nextStatus = anthropicVerificationEnabled ? getInitialVerificationStatus() : "valid";
|
|
546423
546490
|
setStatus((currentStatus) => currentStatus === nextStatus ? currentStatus : nextStatus);
|
|
@@ -546426,7 +546493,7 @@ function useApiKeyVerification() {
|
|
|
546426
546493
|
}
|
|
546427
546494
|
}, [anthropicVerificationEnabled]);
|
|
546428
546495
|
const verify = import_react268.useCallback(async () => {
|
|
546429
|
-
if (!isAnthropicAuthEnabled() || isClaudeAISubscriber()) {
|
|
546496
|
+
if (!isAnthropicAuthEnabled() || isClaudeAISubscriber() || isVerbooMode()) {
|
|
546430
546497
|
setStatus("valid");
|
|
546431
546498
|
return;
|
|
546432
546499
|
}
|
|
@@ -546465,6 +546532,7 @@ var init_useApiKeyVerification = __esm(() => {
|
|
|
546465
546532
|
init_state();
|
|
546466
546533
|
init_claude3();
|
|
546467
546534
|
init_auth();
|
|
546535
|
+
init_oauth();
|
|
546468
546536
|
import_react268 = __toESM(require_react(), 1);
|
|
546469
546537
|
});
|
|
546470
546538
|
|
|
@@ -562979,7 +563047,7 @@ function WelcomeV2() {
|
|
|
562979
563047
|
dimColor: true,
|
|
562980
563048
|
children: [
|
|
562981
563049
|
"v",
|
|
562982
|
-
"0.10.
|
|
563050
|
+
"0.10.1",
|
|
562983
563051
|
" "
|
|
562984
563052
|
]
|
|
562985
563053
|
})
|
|
@@ -563166,7 +563234,7 @@ function WelcomeV2() {
|
|
|
563166
563234
|
dimColor: true,
|
|
563167
563235
|
children: [
|
|
563168
563236
|
"v",
|
|
563169
|
-
"0.10.
|
|
563237
|
+
"0.10.1",
|
|
563170
563238
|
" "
|
|
563171
563239
|
]
|
|
563172
563240
|
})
|
|
@@ -563382,7 +563450,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
563382
563450
|
dimColor: true,
|
|
563383
563451
|
children: [
|
|
563384
563452
|
"v",
|
|
563385
|
-
"0.10.
|
|
563453
|
+
"0.10.1",
|
|
563386
563454
|
" "
|
|
563387
563455
|
]
|
|
563388
563456
|
});
|
|
@@ -563591,7 +563659,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
563591
563659
|
dimColor: true,
|
|
563592
563660
|
children: [
|
|
563593
563661
|
"v",
|
|
563594
|
-
"0.10.
|
|
563662
|
+
"0.10.1",
|
|
563595
563663
|
" "
|
|
563596
563664
|
]
|
|
563597
563665
|
});
|
|
@@ -569787,7 +569855,7 @@ var init_sessionMemory = __esm(() => {
|
|
|
569787
569855
|
});
|
|
569788
569856
|
|
|
569789
569857
|
// src/utils/iTermBackup.ts
|
|
569790
|
-
import { copyFile as
|
|
569858
|
+
import { copyFile as copyFile11, stat as stat54 } from "fs/promises";
|
|
569791
569859
|
import { homedir as homedir39 } from "os";
|
|
569792
569860
|
import { join as join159 } from "path";
|
|
569793
569861
|
function markITerm2SetupComplete() {
|
|
@@ -569822,7 +569890,7 @@ async function checkAndRestoreITerm2Backup() {
|
|
|
569822
569890
|
return { status: "no_backup" };
|
|
569823
569891
|
}
|
|
569824
569892
|
try {
|
|
569825
|
-
await
|
|
569893
|
+
await copyFile11(backupPath, getITerm2PlistPath());
|
|
569826
569894
|
markITerm2SetupComplete();
|
|
569827
569895
|
return { status: "restored" };
|
|
569828
569896
|
} catch (restoreError) {
|
|
@@ -581000,7 +581068,7 @@ __export(exports_update, {
|
|
|
581000
581068
|
});
|
|
581001
581069
|
async function update() {
|
|
581002
581070
|
logEvent("tengu_update_check", {});
|
|
581003
|
-
writeToStdout(`Current version: ${"0.10.
|
|
581071
|
+
writeToStdout(`Current version: ${"0.10.1"}
|
|
581004
581072
|
`);
|
|
581005
581073
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
581006
581074
|
writeToStdout(`Checking for updates to ${channel2} version...
|
|
@@ -581085,8 +581153,8 @@ async function update() {
|
|
|
581085
581153
|
writeToStdout(`Verboo Code is managed by Homebrew.
|
|
581086
581154
|
`);
|
|
581087
581155
|
const latest = await getLatestVersion(channel2);
|
|
581088
|
-
if (latest && !gte("0.10.
|
|
581089
|
-
writeToStdout(`Update available: ${"0.10.
|
|
581156
|
+
if (latest && !gte("0.10.1", latest)) {
|
|
581157
|
+
writeToStdout(`Update available: ${"0.10.1"} → ${latest}
|
|
581090
581158
|
`);
|
|
581091
581159
|
writeToStdout(`
|
|
581092
581160
|
`);
|
|
@@ -581102,8 +581170,8 @@ async function update() {
|
|
|
581102
581170
|
writeToStdout(`Verboo Code is managed by winget.
|
|
581103
581171
|
`);
|
|
581104
581172
|
const latest = await getLatestVersion(channel2);
|
|
581105
|
-
if (latest && !gte("0.10.
|
|
581106
|
-
writeToStdout(`Update available: ${"0.10.
|
|
581173
|
+
if (latest && !gte("0.10.1", latest)) {
|
|
581174
|
+
writeToStdout(`Update available: ${"0.10.1"} → ${latest}
|
|
581107
581175
|
`);
|
|
581108
581176
|
writeToStdout(`
|
|
581109
581177
|
`);
|
|
@@ -581119,8 +581187,8 @@ async function update() {
|
|
|
581119
581187
|
writeToStdout(`Verboo Code is managed by apk.
|
|
581120
581188
|
`);
|
|
581121
581189
|
const latest = await getLatestVersion(channel2);
|
|
581122
|
-
if (latest && !gte("0.10.
|
|
581123
|
-
writeToStdout(`Update available: ${"0.10.
|
|
581190
|
+
if (latest && !gte("0.10.1", latest)) {
|
|
581191
|
+
writeToStdout(`Update available: ${"0.10.1"} → ${latest}
|
|
581124
581192
|
`);
|
|
581125
581193
|
writeToStdout(`
|
|
581126
581194
|
`);
|
|
@@ -581173,11 +581241,11 @@ async function update() {
|
|
|
581173
581241
|
`);
|
|
581174
581242
|
await gracefulShutdown(1);
|
|
581175
581243
|
}
|
|
581176
|
-
if (result.latestVersion === "0.10.
|
|
581177
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.10.
|
|
581244
|
+
if (result.latestVersion === "0.10.1") {
|
|
581245
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.10.1"})`) + `
|
|
581178
581246
|
`);
|
|
581179
581247
|
} else {
|
|
581180
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.10.
|
|
581248
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.10.1"} to version ${result.latestVersion}`) + `
|
|
581181
581249
|
`);
|
|
581182
581250
|
await regenerateCompletionCache();
|
|
581183
581251
|
}
|
|
@@ -581237,12 +581305,12 @@ async function update() {
|
|
|
581237
581305
|
`);
|
|
581238
581306
|
await gracefulShutdown(1);
|
|
581239
581307
|
}
|
|
581240
|
-
if (latestVersion === "0.10.
|
|
581241
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.10.
|
|
581308
|
+
if (latestVersion === "0.10.1") {
|
|
581309
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.10.1"})`) + `
|
|
581242
581310
|
`);
|
|
581243
581311
|
await gracefulShutdown(0);
|
|
581244
581312
|
}
|
|
581245
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.10.
|
|
581313
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.10.1"})
|
|
581246
581314
|
`);
|
|
581247
581315
|
writeToStdout(`Installing update...
|
|
581248
581316
|
`);
|
|
@@ -581287,7 +581355,7 @@ async function update() {
|
|
|
581287
581355
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
581288
581356
|
switch (status2) {
|
|
581289
581357
|
case "success":
|
|
581290
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.10.
|
|
581358
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.10.1"} to version ${latestVersion}`) + `
|
|
581291
581359
|
`);
|
|
581292
581360
|
await regenerateCompletionCache();
|
|
581293
581361
|
break;
|
|
@@ -582542,7 +582610,7 @@ ${customInstructions}` : customInstructions;
|
|
|
582542
582610
|
is_native_binary: isInBundledMode()
|
|
582543
582611
|
});
|
|
582544
582612
|
logMemoryDiagnostics("start", {
|
|
582545
|
-
version: "0.10.
|
|
582613
|
+
version: "0.10.1",
|
|
582546
582614
|
debug: debug2,
|
|
582547
582615
|
debugToStderr,
|
|
582548
582616
|
print: print ?? false,
|
|
@@ -583348,7 +583416,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
583348
583416
|
pendingHookMessages
|
|
583349
583417
|
}, renderAndRun);
|
|
583350
583418
|
}
|
|
583351
|
-
}).version(`0.10.
|
|
583419
|
+
}).version(`0.10.1 (${cliDesc})`, "-v, --version", "Output the version number");
|
|
583352
583420
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
583353
583421
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
583354
583422
|
if (canUserConfigureAdvisor()) {
|
|
@@ -583923,7 +583991,7 @@ if (false) {}
|
|
|
583923
583991
|
async function main2() {
|
|
583924
583992
|
const args = process.argv.slice(2);
|
|
583925
583993
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
583926
|
-
console.log(`${"0.10.
|
|
583994
|
+
console.log(`${"0.10.1"} (Verboo Code)`);
|
|
583927
583995
|
return;
|
|
583928
583996
|
}
|
|
583929
583997
|
if (!IS_VERBOO_CLI && args.includes("--provider")) {
|
|
@@ -584097,4 +584165,4 @@ async function main2() {
|
|
|
584097
584165
|
}
|
|
584098
584166
|
main2();
|
|
584099
584167
|
|
|
584100
|
-
//# debugId=
|
|
584168
|
+
//# debugId=69AD51BE94BA982664756E2164756E21
|