@verboo/code 0.14.3 → 0.14.5
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 +389 -273
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -135947,7 +135947,8 @@ function buildAuthUrl({
|
|
|
135947
135947
|
inferenceOnly,
|
|
135948
135948
|
orgUUID,
|
|
135949
135949
|
loginHint,
|
|
135950
|
-
loginMethod
|
|
135950
|
+
loginMethod,
|
|
135951
|
+
installationId
|
|
135951
135952
|
}) {
|
|
135952
135953
|
const authUrlBase = loginWithClaudeAi ? getOauthConfig().CLAUDE_AI_AUTHORIZE_URL : getOauthConfig().CONSOLE_AUTHORIZE_URL;
|
|
135953
135954
|
const authUrl = new URL(authUrlBase);
|
|
@@ -135960,6 +135961,9 @@ function buildAuthUrl({
|
|
|
135960
135961
|
authUrl.searchParams.append("code_challenge", codeChallenge);
|
|
135961
135962
|
authUrl.searchParams.append("code_challenge_method", "S256");
|
|
135962
135963
|
authUrl.searchParams.append("state", state);
|
|
135964
|
+
if (installationId) {
|
|
135965
|
+
authUrl.searchParams.append("installation_id", installationId);
|
|
135966
|
+
}
|
|
135963
135967
|
if (orgUUID) {
|
|
135964
135968
|
authUrl.searchParams.append("orgUUID", orgUUID);
|
|
135965
135969
|
}
|
|
@@ -135974,14 +135978,15 @@ function buildAuthUrl({
|
|
|
135974
135978
|
function getOAuthRedirectUri(port2) {
|
|
135975
135979
|
return `http://localhost:${port2}/callback`;
|
|
135976
135980
|
}
|
|
135977
|
-
async function exchangeCodeForTokens(authorizationCode, state, codeVerifier, port2, _useManualRedirect = false, expiresIn) {
|
|
135981
|
+
async function exchangeCodeForTokens(authorizationCode, state, codeVerifier, port2, _useManualRedirect = false, expiresIn, installationId) {
|
|
135978
135982
|
const requestBody = {
|
|
135979
135983
|
grant_type: "authorization_code",
|
|
135980
135984
|
code: authorizationCode,
|
|
135981
135985
|
redirect_uri: getOAuthRedirectUri(port2),
|
|
135982
135986
|
client_id: getOauthConfig().CLIENT_ID,
|
|
135983
135987
|
code_verifier: codeVerifier,
|
|
135984
|
-
state
|
|
135988
|
+
state,
|
|
135989
|
+
installation_id: installationId
|
|
135985
135990
|
};
|
|
135986
135991
|
if (expiresIn !== undefined) {
|
|
135987
135992
|
requestBody.expires_in = expiresIn;
|
|
@@ -136023,11 +136028,12 @@ async function postOAuthForm(body) {
|
|
|
136023
136028
|
}
|
|
136024
136029
|
return normalizeOAuthTokenResponse(response.data);
|
|
136025
136030
|
}
|
|
136026
|
-
async function refreshOAuthToken(refreshToken, { scopes: requestedScopes } = {}) {
|
|
136031
|
+
async function refreshOAuthToken(refreshToken, { scopes: requestedScopes, installationId } = {}) {
|
|
136027
136032
|
const requestBody = {
|
|
136028
136033
|
grant_type: "refresh_token",
|
|
136029
136034
|
refresh_token: refreshToken,
|
|
136030
136035
|
client_id: getOauthConfig().CLIENT_ID,
|
|
136036
|
+
installation_id: installationId,
|
|
136031
136037
|
scope: ((requestedScopes?.length) ? requestedScopes : CLAUDE_AI_OAUTH_SCOPES).join(" ")
|
|
136032
136038
|
};
|
|
136033
136039
|
try {
|
|
@@ -140974,7 +140980,9 @@ async function prefetchFastModeStatus() {
|
|
|
140974
140980
|
if (isAuthError) {
|
|
140975
140981
|
const failedAccessToken = getClaudeAIOAuthTokens()?.accessToken;
|
|
140976
140982
|
if (failedAccessToken) {
|
|
140977
|
-
await
|
|
140983
|
+
const outcome = await handleOAuth401ErrorWithOutcome(failedAccessToken);
|
|
140984
|
+
if (!didOAuthRefreshRecover(outcome))
|
|
140985
|
+
throw err;
|
|
140978
140986
|
status = await fetchWithCurrentAuth();
|
|
140979
140987
|
} else {
|
|
140980
140988
|
throw err;
|
|
@@ -144149,6 +144157,21 @@ var init_toolSchemaCache = __esm(() => {
|
|
|
144149
144157
|
TOOL_SCHEMA_CACHE = new Map;
|
|
144150
144158
|
});
|
|
144151
144159
|
|
|
144160
|
+
// src/utils/verbooInstallation.ts
|
|
144161
|
+
import { randomUUID as randomUUID3 } from "crypto";
|
|
144162
|
+
function getOrCreateVerbooInstallationId() {
|
|
144163
|
+
const storage = getSecureStorage();
|
|
144164
|
+
const current = storage.read() ?? {};
|
|
144165
|
+
if (current.verbooInstallationId)
|
|
144166
|
+
return current.verbooInstallationId;
|
|
144167
|
+
const installationId = randomUUID3();
|
|
144168
|
+
storage.update({ ...current, verbooInstallationId: installationId });
|
|
144169
|
+
return installationId;
|
|
144170
|
+
}
|
|
144171
|
+
var init_verbooInstallation = __esm(() => {
|
|
144172
|
+
init_secureStorage();
|
|
144173
|
+
});
|
|
144174
|
+
|
|
144152
144175
|
// src/utils/auth.ts
|
|
144153
144176
|
var exports_auth = {};
|
|
144154
144177
|
__export(exports_auth, {
|
|
@@ -144182,6 +144205,7 @@ __export(exports_auth, {
|
|
|
144182
144205
|
hasProfileScope: () => hasProfileScope,
|
|
144183
144206
|
hasOpusAccess: () => hasOpusAccess,
|
|
144184
144207
|
hasAnthropicApiKeyAuth: () => hasAnthropicApiKeyAuth,
|
|
144208
|
+
handleOAuth401ErrorWithOutcome: () => handleOAuth401ErrorWithOutcome,
|
|
144185
144209
|
handleOAuth401Error: () => handleOAuth401Error,
|
|
144186
144210
|
getSubscriptionType: () => getSubscriptionType,
|
|
144187
144211
|
getSubscriptionName: () => getSubscriptionName,
|
|
@@ -144199,6 +144223,7 @@ __export(exports_auth, {
|
|
|
144199
144223
|
getAnthropicApiKeyWithSource: () => getAnthropicApiKeyWithSource,
|
|
144200
144224
|
getAnthropicApiKey: () => getAnthropicApiKey,
|
|
144201
144225
|
getAccountInformation: () => getAccountInformation,
|
|
144226
|
+
didOAuthRefreshRecover: () => didOAuthRefreshRecover,
|
|
144202
144227
|
clearOAuthTokenCache: () => clearOAuthTokenCache,
|
|
144203
144228
|
clearGcpCredentialsCache: () => clearGcpCredentialsCache,
|
|
144204
144229
|
clearAwsCredentialsCache: () => clearAwsCredentialsCache,
|
|
@@ -144837,15 +144862,18 @@ function saveOAuthTokensIfNeeded(tokens) {
|
|
|
144837
144862
|
const secureStorage = getSecureStorage();
|
|
144838
144863
|
const storageBackend = secureStorage.name;
|
|
144839
144864
|
try {
|
|
144840
|
-
const
|
|
144841
|
-
const existingOauth =
|
|
144842
|
-
storageData
|
|
144843
|
-
|
|
144844
|
-
|
|
144845
|
-
|
|
144846
|
-
|
|
144847
|
-
|
|
144848
|
-
|
|
144865
|
+
const currentStorageData = secureStorage.read() || {};
|
|
144866
|
+
const existingOauth = currentStorageData.verbooOauth;
|
|
144867
|
+
const storageData = {
|
|
144868
|
+
...currentStorageData,
|
|
144869
|
+
verbooOauth: {
|
|
144870
|
+
accessToken: tokens.accessToken,
|
|
144871
|
+
refreshToken: tokens.refreshToken,
|
|
144872
|
+
expiresAt: tokens.expiresAt,
|
|
144873
|
+
scopes: tokens.scopes,
|
|
144874
|
+
subscriptionType: tokens.subscriptionType ?? existingOauth?.subscriptionType ?? null,
|
|
144875
|
+
rateLimitTier: tokens.rateLimitTier ?? existingOauth?.rateLimitTier ?? null
|
|
144876
|
+
}
|
|
144849
144877
|
};
|
|
144850
144878
|
const updateStatus = secureStorage.update(storageData);
|
|
144851
144879
|
if (updateStatus.success) {
|
|
@@ -144899,7 +144927,10 @@ async function invalidateOAuthCacheIfDiskChanged() {
|
|
|
144899
144927
|
getClaudeAIOAuthTokens.cache?.clear?.();
|
|
144900
144928
|
}
|
|
144901
144929
|
}
|
|
144902
|
-
function
|
|
144930
|
+
function didOAuthRefreshRecover(outcome) {
|
|
144931
|
+
return outcome === "token_changed" || outcome === "refreshed";
|
|
144932
|
+
}
|
|
144933
|
+
function handleOAuth401ErrorWithOutcome(failedAccessToken) {
|
|
144903
144934
|
const pending = pending401Handlers.get(failedAccessToken);
|
|
144904
144935
|
if (pending)
|
|
144905
144936
|
return pending;
|
|
@@ -144909,17 +144940,20 @@ function handleOAuth401Error(failedAccessToken) {
|
|
|
144909
144940
|
pending401Handlers.set(failedAccessToken, promise2);
|
|
144910
144941
|
return promise2;
|
|
144911
144942
|
}
|
|
144943
|
+
async function handleOAuth401Error(failedAccessToken) {
|
|
144944
|
+
return didOAuthRefreshRecover(await handleOAuth401ErrorWithOutcome(failedAccessToken));
|
|
144945
|
+
}
|
|
144912
144946
|
async function handleOAuth401ErrorImpl(failedAccessToken) {
|
|
144913
144947
|
clearOAuthTokenCache();
|
|
144914
144948
|
const currentTokens = await getClaudeAIOAuthTokensAsync();
|
|
144915
144949
|
if (!currentTokens?.refreshToken) {
|
|
144916
|
-
return
|
|
144950
|
+
return "reauth_required";
|
|
144917
144951
|
}
|
|
144918
144952
|
if (currentTokens.accessToken !== failedAccessToken) {
|
|
144919
144953
|
logEvent("tengu_oauth_401_recovered_from_keychain", {});
|
|
144920
|
-
return
|
|
144954
|
+
return "token_changed";
|
|
144921
144955
|
}
|
|
144922
|
-
return
|
|
144956
|
+
return checkAndRefreshOAuthTokenIfNeededImpl(0, true, failedAccessToken);
|
|
144923
144957
|
}
|
|
144924
144958
|
async function getClaudeAIOAuthTokensAsync() {
|
|
144925
144959
|
if (isBareMode())
|
|
@@ -144934,39 +144968,83 @@ async function getClaudeAIOAuthTokensAsync() {
|
|
|
144934
144968
|
}
|
|
144935
144969
|
return getStoredVerbooOAuthTokensAsync();
|
|
144936
144970
|
}
|
|
144971
|
+
function isOAuthInvalidGrant(error41) {
|
|
144972
|
+
const response = error41?.response;
|
|
144973
|
+
const data = response?.data;
|
|
144974
|
+
return typeof data === "object" && data !== null && "error" in data && data.error === "invalid_grant";
|
|
144975
|
+
}
|
|
144976
|
+
async function persistRefreshedOAuthTokens(refreshedTokens) {
|
|
144977
|
+
const delays = [0, 100, 250];
|
|
144978
|
+
for (const delay of delays) {
|
|
144979
|
+
if (delay > 0)
|
|
144980
|
+
await sleep2(delay);
|
|
144981
|
+
const status = saveOAuthTokensIfNeeded(refreshedTokens);
|
|
144982
|
+
if (!status.success)
|
|
144983
|
+
continue;
|
|
144984
|
+
clearOAuthTokenCache();
|
|
144985
|
+
const stored = await getClaudeAIOAuthTokensAsync();
|
|
144986
|
+
if (stored?.accessToken === refreshedTokens.accessToken && stored.refreshToken === refreshedTokens.refreshToken) {
|
|
144987
|
+
return true;
|
|
144988
|
+
}
|
|
144989
|
+
}
|
|
144990
|
+
logEvent("tengu_oauth_tokens_save_retry_exhausted", {});
|
|
144991
|
+
return false;
|
|
144992
|
+
}
|
|
144993
|
+
function clearStoredVerbooOAuthIfRefreshTokenMatches(refreshToken) {
|
|
144994
|
+
if (!isVerbooMode())
|
|
144995
|
+
return;
|
|
144996
|
+
try {
|
|
144997
|
+
const secureStorage = getSecureStorage();
|
|
144998
|
+
const data = secureStorage.read();
|
|
144999
|
+
if (data?.verbooOauth?.refreshToken !== refreshToken)
|
|
145000
|
+
return;
|
|
145001
|
+
const { verbooOauth: _, ...dataWithoutVerbooOAuth } = data;
|
|
145002
|
+
secureStorage.update(dataWithoutVerbooOAuth);
|
|
145003
|
+
clearOAuthTokenCache();
|
|
145004
|
+
} catch (error41) {
|
|
145005
|
+
logError2(error41);
|
|
145006
|
+
}
|
|
145007
|
+
}
|
|
144937
145008
|
function checkAndRefreshOAuthTokenIfNeeded(retryCount = 0, force = false) {
|
|
144938
145009
|
if (retryCount === 0 && !force) {
|
|
144939
145010
|
if (pendingRefreshCheck) {
|
|
144940
|
-
return pendingRefreshCheck;
|
|
145011
|
+
return pendingRefreshCheck.then(didOAuthRefreshRecover);
|
|
144941
145012
|
}
|
|
144942
145013
|
const promise2 = checkAndRefreshOAuthTokenIfNeededImpl(retryCount, force);
|
|
144943
145014
|
pendingRefreshCheck = promise2.finally(() => {
|
|
144944
145015
|
pendingRefreshCheck = null;
|
|
144945
145016
|
});
|
|
144946
|
-
return pendingRefreshCheck;
|
|
145017
|
+
return pendingRefreshCheck.then(didOAuthRefreshRecover);
|
|
144947
145018
|
}
|
|
144948
|
-
return checkAndRefreshOAuthTokenIfNeededImpl(retryCount, force);
|
|
145019
|
+
return checkAndRefreshOAuthTokenIfNeededImpl(retryCount, force).then(didOAuthRefreshRecover);
|
|
144949
145020
|
}
|
|
144950
|
-
async function checkAndRefreshOAuthTokenIfNeededImpl(retryCount, force) {
|
|
145021
|
+
async function checkAndRefreshOAuthTokenIfNeededImpl(retryCount, force, failedAccessToken) {
|
|
144951
145022
|
const MAX_RETRIES = 5;
|
|
144952
145023
|
await invalidateOAuthCacheIfDiskChanged();
|
|
144953
145024
|
const tokens = getClaudeAIOAuthTokens();
|
|
144954
145025
|
if (!force) {
|
|
144955
145026
|
if (!tokens?.refreshToken || !isOAuthTokenExpired(tokens.expiresAt)) {
|
|
144956
|
-
return
|
|
145027
|
+
return "unchanged";
|
|
144957
145028
|
}
|
|
144958
145029
|
}
|
|
144959
145030
|
if (!tokens?.refreshToken) {
|
|
144960
|
-
return
|
|
145031
|
+
return force ? "reauth_required" : "unchanged";
|
|
144961
145032
|
}
|
|
144962
145033
|
if (!shouldUseClaudeAIAuth(tokens.scopes)) {
|
|
144963
|
-
return
|
|
145034
|
+
return "unchanged";
|
|
144964
145035
|
}
|
|
144965
145036
|
getClaudeAIOAuthTokens.cache?.clear?.();
|
|
144966
145037
|
clearKeychainCache();
|
|
144967
145038
|
const freshTokens = await getClaudeAIOAuthTokensAsync();
|
|
144968
|
-
if (!freshTokens?.refreshToken
|
|
144969
|
-
return
|
|
145039
|
+
if (!freshTokens?.refreshToken) {
|
|
145040
|
+
return force ? "reauth_required" : "unchanged";
|
|
145041
|
+
}
|
|
145042
|
+
if (force && failedAccessToken && freshTokens.accessToken !== failedAccessToken) {
|
|
145043
|
+
logEvent("tengu_oauth_token_refresh_race_resolved", {});
|
|
145044
|
+
return "token_changed";
|
|
145045
|
+
}
|
|
145046
|
+
if (!force && !isOAuthTokenExpired(freshTokens.expiresAt)) {
|
|
145047
|
+
return "unchanged";
|
|
144970
145048
|
}
|
|
144971
145049
|
const claudeDir = getClaudeConfigHomeDir();
|
|
144972
145050
|
await mkdir3(claudeDir, { recursive: true });
|
|
@@ -144982,45 +145060,66 @@ async function checkAndRefreshOAuthTokenIfNeededImpl(retryCount, force) {
|
|
|
144982
145060
|
retryCount: retryCount + 1
|
|
144983
145061
|
});
|
|
144984
145062
|
await sleep2(1000 + Math.random() * 1000);
|
|
144985
|
-
return checkAndRefreshOAuthTokenIfNeededImpl(retryCount + 1, force);
|
|
145063
|
+
return checkAndRefreshOAuthTokenIfNeededImpl(retryCount + 1, force, failedAccessToken);
|
|
144986
145064
|
}
|
|
144987
145065
|
logEvent("tengu_oauth_token_refresh_lock_retry_limit_reached", {
|
|
144988
145066
|
maxRetries: MAX_RETRIES
|
|
144989
145067
|
});
|
|
144990
|
-
|
|
145068
|
+
clearOAuthTokenCache();
|
|
145069
|
+
const latestTokens = await getClaudeAIOAuthTokensAsync();
|
|
145070
|
+
return failedAccessToken && latestTokens?.accessToken && latestTokens.accessToken !== failedAccessToken ? "token_changed" : "transient_error";
|
|
144991
145071
|
}
|
|
144992
145072
|
logError2(err);
|
|
144993
145073
|
logEvent("tengu_oauth_token_refresh_lock_error", {
|
|
144994
145074
|
error: errorMessage(err)
|
|
144995
145075
|
});
|
|
144996
|
-
return
|
|
145076
|
+
return "transient_error";
|
|
144997
145077
|
}
|
|
145078
|
+
let attemptedRefreshToken;
|
|
144998
145079
|
try {
|
|
144999
145080
|
getClaudeAIOAuthTokens.cache?.clear?.();
|
|
145000
145081
|
clearKeychainCache();
|
|
145001
145082
|
const lockedTokens = await getClaudeAIOAuthTokensAsync();
|
|
145002
|
-
if (!lockedTokens?.refreshToken
|
|
145083
|
+
if (!lockedTokens?.refreshToken) {
|
|
145084
|
+
return force ? "reauth_required" : "unchanged";
|
|
145085
|
+
}
|
|
145086
|
+
if (force && failedAccessToken && lockedTokens.accessToken !== failedAccessToken) {
|
|
145003
145087
|
logEvent("tengu_oauth_token_refresh_race_resolved", {});
|
|
145004
|
-
return
|
|
145088
|
+
return "token_changed";
|
|
145089
|
+
}
|
|
145090
|
+
if (!force && !isOAuthTokenExpired(lockedTokens.expiresAt)) {
|
|
145091
|
+
logEvent("tengu_oauth_token_refresh_race_resolved", {});
|
|
145092
|
+
return "unchanged";
|
|
145005
145093
|
}
|
|
145006
145094
|
logEvent("tengu_oauth_token_refresh_starting", {});
|
|
145007
|
-
|
|
145008
|
-
|
|
145009
|
-
|
|
145010
|
-
|
|
145011
|
-
|
|
145012
|
-
|
|
145013
|
-
|
|
145095
|
+
attemptedRefreshToken = lockedTokens.refreshToken;
|
|
145096
|
+
const refreshedTokens = await refreshOAuthToken(attemptedRefreshToken, {
|
|
145097
|
+
scopes: shouldUseClaudeAIAuth(lockedTokens.scopes) ? undefined : lockedTokens.scopes,
|
|
145098
|
+
installationId: isVerbooMode() ? getOrCreateVerbooInstallationId() : undefined
|
|
145099
|
+
});
|
|
145100
|
+
const persisted = await persistRefreshedOAuthTokens(refreshedTokens);
|
|
145101
|
+
if (!persisted) {
|
|
145102
|
+
clearStoredVerbooOAuthIfRefreshTokenMatches(attemptedRefreshToken);
|
|
145103
|
+
return "storage_error";
|
|
145104
|
+
}
|
|
145105
|
+
clearOAuthTokenCache();
|
|
145106
|
+
return "refreshed";
|
|
145014
145107
|
} catch (error41) {
|
|
145015
145108
|
logError2(error41);
|
|
145016
|
-
|
|
145017
|
-
clearKeychainCache();
|
|
145109
|
+
clearOAuthTokenCache();
|
|
145018
145110
|
const currentTokens = await getClaudeAIOAuthTokensAsync();
|
|
145019
|
-
if (currentTokens &&
|
|
145111
|
+
if (currentTokens?.accessToken && (failedAccessToken && currentTokens.accessToken !== failedAccessToken || !failedAccessToken && tokens?.accessToken && currentTokens.accessToken !== tokens.accessToken)) {
|
|
145020
145112
|
logEvent("tengu_oauth_token_refresh_race_recovered", {});
|
|
145021
|
-
return
|
|
145113
|
+
return "token_changed";
|
|
145022
145114
|
}
|
|
145023
|
-
|
|
145115
|
+
if (isOAuthInvalidGrant(error41)) {
|
|
145116
|
+
if (attemptedRefreshToken) {
|
|
145117
|
+
clearStoredVerbooOAuthIfRefreshTokenMatches(attemptedRefreshToken);
|
|
145118
|
+
}
|
|
145119
|
+
logEvent("tengu_oauth_token_refresh_reauth_required", {});
|
|
145120
|
+
return "reauth_required";
|
|
145121
|
+
}
|
|
145122
|
+
return "transient_error";
|
|
145024
145123
|
} finally {
|
|
145025
145124
|
logEvent("tengu_oauth_token_refresh_lock_releasing", {});
|
|
145026
145125
|
await release();
|
|
@@ -145292,6 +145391,7 @@ var init_auth = __esm(() => {
|
|
|
145292
145391
|
init_settings2();
|
|
145293
145392
|
init_slowOperations();
|
|
145294
145393
|
init_toolSchemaCache();
|
|
145394
|
+
init_verbooInstallation();
|
|
145295
145395
|
DEFAULT_API_KEY_HELPER_TTL = 5 * 60 * 1000;
|
|
145296
145396
|
DEFAULT_AWS_STS_TTL = 60 * 60 * 1000;
|
|
145297
145397
|
AWS_AUTH_REFRESH_TIMEOUT_MS = 3 * 60 * 1000;
|
|
@@ -169532,7 +169632,10 @@ async function* withRetry(getClient, operation, options2) {
|
|
|
169532
169632
|
if (lastError instanceof APIError && lastError.status === 401 || isOAuthTokenRevokedError(lastError)) {
|
|
169533
169633
|
const failedAccessToken = getClaudeAIOAuthTokens()?.accessToken;
|
|
169534
169634
|
if (failedAccessToken) {
|
|
169535
|
-
await
|
|
169635
|
+
const outcome = await handleOAuth401ErrorWithOutcome(failedAccessToken);
|
|
169636
|
+
if (!didOAuthRefreshRecover(outcome)) {
|
|
169637
|
+
throw new CannotRetryError(lastError, retryContext);
|
|
169638
|
+
}
|
|
169536
169639
|
}
|
|
169537
169640
|
}
|
|
169538
169641
|
client = await getClient();
|
|
@@ -173830,7 +173933,7 @@ function getClaudeCodeUserAgent() {
|
|
|
173830
173933
|
return `claude-code/${"99.0.0"}`;
|
|
173831
173934
|
}
|
|
173832
173935
|
function getVerbooCodeUserAgent() {
|
|
173833
|
-
const version2 =
|
|
173936
|
+
const version2 = "0.14.5";
|
|
173834
173937
|
return `verboo-code/${version2}`;
|
|
173835
173938
|
}
|
|
173836
173939
|
|
|
@@ -173902,7 +174005,9 @@ async function withOAuth401Retry(request, opts) {
|
|
|
173902
174005
|
const failedAccessToken = getClaudeAIOAuthTokens()?.accessToken;
|
|
173903
174006
|
if (!failedAccessToken)
|
|
173904
174007
|
throw err2;
|
|
173905
|
-
await
|
|
174008
|
+
const outcome = await handleOAuth401ErrorWithOutcome(failedAccessToken);
|
|
174009
|
+
if (!didOAuthRefreshRecover(outcome))
|
|
174010
|
+
throw err2;
|
|
173906
174011
|
return await request();
|
|
173907
174012
|
}
|
|
173908
174013
|
}
|
|
@@ -176755,9 +176860,9 @@ var init_toolArgumentNormalization = __esm(() => {
|
|
|
176755
176860
|
});
|
|
176756
176861
|
|
|
176757
176862
|
// src/utils/requestLogging.ts
|
|
176758
|
-
import { randomUUID as
|
|
176863
|
+
import { randomUUID as randomUUID4 } from "crypto";
|
|
176759
176864
|
function createCorrelationId() {
|
|
176760
|
-
return
|
|
176865
|
+
return randomUUID4();
|
|
176761
176866
|
}
|
|
176762
176867
|
function logApiCallStart(provider, model2) {
|
|
176763
176868
|
const correlationId = createCorrelationId();
|
|
@@ -176915,7 +177020,7 @@ __export(exports_openaiShim, {
|
|
|
176915
177020
|
setOpenAIShimRouterStatusHandler: () => setOpenAIShimRouterStatusHandler,
|
|
176916
177021
|
createOpenAIShimClient: () => createOpenAIShimClient
|
|
176917
177022
|
});
|
|
176918
|
-
import { randomUUID as
|
|
177023
|
+
import { randomUUID as randomUUID5 } from "crypto";
|
|
176919
177024
|
function isGithubModelsMode() {
|
|
176920
177025
|
return isEnvTruthy(process.env.CLAUDE_CODE_USE_GITHUB);
|
|
176921
177026
|
}
|
|
@@ -177246,7 +177351,7 @@ function convertMessages(messages, system, options2) {
|
|
|
177246
177351
|
}
|
|
177247
177352
|
if (toolUses.length > 0) {
|
|
177248
177353
|
const mappedToolCalls = toolUses.map((tu) => {
|
|
177249
|
-
const id = tu.id ?? `call_${
|
|
177354
|
+
const id = tu.id ?? `call_${randomUUID5().replace(/-/g, "")}`;
|
|
177250
177355
|
if (!toolResultIds.has(id) && !isLastInHistory) {
|
|
177251
177356
|
return null;
|
|
177252
177357
|
}
|
|
@@ -177396,7 +177501,7 @@ function convertTools(tools, options2 = {}) {
|
|
|
177396
177501
|
});
|
|
177397
177502
|
}
|
|
177398
177503
|
function makeMessageId2() {
|
|
177399
|
-
return `msg_${
|
|
177504
|
+
return `msg_${randomUUID5().replace(/-/g, "")}`;
|
|
177400
177505
|
}
|
|
177401
177506
|
function convertChunkUsage(usage) {
|
|
177402
177507
|
if (!usage)
|
|
@@ -192274,7 +192379,7 @@ var init_bedrock_sdk = __esm(() => {
|
|
|
192274
192379
|
});
|
|
192275
192380
|
|
|
192276
192381
|
// src/services/api/client.ts
|
|
192277
|
-
import { randomUUID as
|
|
192382
|
+
import { randomUUID as randomUUID6 } from "crypto";
|
|
192278
192383
|
function createStderrLogger() {
|
|
192279
192384
|
return {
|
|
192280
192385
|
error: (msg, ...args) => console.error("[Verboo SDK ERROR]", msg, ...args),
|
|
@@ -192410,8 +192515,8 @@ async function getAnthropicClient({
|
|
|
192410
192515
|
apiKey: accessToken ?? "",
|
|
192411
192516
|
getApiKey: () => getClaudeAIOAuthTokens()?.accessToken ?? "",
|
|
192412
192517
|
refreshApiKey: async (failedAccessToken) => {
|
|
192413
|
-
const
|
|
192414
|
-
return
|
|
192518
|
+
const outcome = await handleOAuth401ErrorWithOutcome(failedAccessToken);
|
|
192519
|
+
return didOAuthRefreshRecover(outcome) ? getClaudeAIOAuthTokens()?.accessToken ?? null : null;
|
|
192415
192520
|
}
|
|
192416
192521
|
}
|
|
192417
192522
|
});
|
|
@@ -192583,7 +192688,7 @@ function buildFetch(fetchOverride, source) {
|
|
|
192583
192688
|
return (input, init) => {
|
|
192584
192689
|
const headers = new Headers(init?.headers);
|
|
192585
192690
|
if (injectClientRequestId && !headers.has(CLIENT_REQUEST_ID_HEADER)) {
|
|
192586
|
-
headers.set(CLIENT_REQUEST_ID_HEADER,
|
|
192691
|
+
headers.set(CLIENT_REQUEST_ID_HEADER, randomUUID6());
|
|
192587
192692
|
}
|
|
192588
192693
|
try {
|
|
192589
192694
|
const url3 = input instanceof Request ? input.url : String(input);
|
|
@@ -199051,7 +199156,7 @@ var init_queryHelpers = __esm(() => {
|
|
|
199051
199156
|
});
|
|
199052
199157
|
|
|
199053
199158
|
// src/services/PromptSuggestion/speculation.ts
|
|
199054
|
-
import { randomUUID as
|
|
199159
|
+
import { randomUUID as randomUUID7 } from "crypto";
|
|
199055
199160
|
import { rm as rm2 } from "fs";
|
|
199056
199161
|
import { appendFile as appendFile3, copyFile, mkdir as mkdir6 } from "fs/promises";
|
|
199057
199162
|
import { dirname as dirname21, isAbsolute as isAbsolute10, join as join39, relative as relative7 } from "path";
|
|
@@ -199241,7 +199346,7 @@ async function startSpeculation(suggestionText, context, setAppState, isPipeline
|
|
|
199241
199346
|
if (!isSpeculationEnabled())
|
|
199242
199347
|
return;
|
|
199243
199348
|
abortSpeculation(setAppState);
|
|
199244
|
-
const id =
|
|
199349
|
+
const id = randomUUID7().slice(0, 8);
|
|
199245
199350
|
const abortController = createChildAbortController(context.toolUseContext.abortController);
|
|
199246
199351
|
if (abortController.signal.aborted)
|
|
199247
199352
|
return;
|
|
@@ -199621,7 +199726,7 @@ var init_speculation = __esm(() => {
|
|
|
199621
199726
|
});
|
|
199622
199727
|
|
|
199623
199728
|
// src/utils/sdkEventQueue.ts
|
|
199624
|
-
import { randomUUID as
|
|
199729
|
+
import { randomUUID as randomUUID8 } from "crypto";
|
|
199625
199730
|
function enqueueSdkEvent(event) {
|
|
199626
199731
|
if (!getIsNonInteractiveSession()) {
|
|
199627
199732
|
return;
|
|
@@ -199638,7 +199743,7 @@ function drainSdkEvents() {
|
|
|
199638
199743
|
const events = queue.splice(0);
|
|
199639
199744
|
return events.map((e) => ({
|
|
199640
199745
|
...e,
|
|
199641
|
-
uuid:
|
|
199746
|
+
uuid: randomUUID8(),
|
|
199642
199747
|
session_id: getSessionId()
|
|
199643
199748
|
}));
|
|
199644
199749
|
}
|
|
@@ -206515,7 +206620,7 @@ var init_cron = __esm(() => {
|
|
|
206515
206620
|
});
|
|
206516
206621
|
|
|
206517
206622
|
// src/utils/cronTasks.ts
|
|
206518
|
-
import { randomUUID as
|
|
206623
|
+
import { randomUUID as randomUUID9 } from "crypto";
|
|
206519
206624
|
import { readFileSync as readFileSync9 } from "fs";
|
|
206520
206625
|
import { mkdir as mkdir7, writeFile as writeFile6 } from "fs/promises";
|
|
206521
206626
|
import { join as join40 } from "path";
|
|
@@ -206584,7 +206689,7 @@ async function writeCronTasks(tasks, dir) {
|
|
|
206584
206689
|
`, "utf-8");
|
|
206585
206690
|
}
|
|
206586
206691
|
async function addCronTask(cron, prompt, recurring, durable, agentId) {
|
|
206587
|
-
const id =
|
|
206692
|
+
const id = randomUUID9().slice(0, 8);
|
|
206588
206693
|
const task = {
|
|
206589
206694
|
id,
|
|
206590
206695
|
cron,
|
|
@@ -220474,7 +220579,7 @@ var init_xaaIdpLogin = __esm(() => {
|
|
|
220474
220579
|
});
|
|
220475
220580
|
|
|
220476
220581
|
// src/services/mcp/auth.ts
|
|
220477
|
-
import { createHash as createHash8, randomBytes as randomBytes3, randomUUID as
|
|
220582
|
+
import { createHash as createHash8, randomBytes as randomBytes3, randomUUID as randomUUID10 } from "crypto";
|
|
220478
220583
|
import { mkdir as mkdir8 } from "fs/promises";
|
|
220479
220584
|
import { createServer as createServer3 } from "http";
|
|
220480
220585
|
import { join as join46 } from "path";
|
|
@@ -220913,7 +221018,7 @@ async function performMCPOAuthFlow(serverName, serverConfig, onAuthorizationUrl,
|
|
|
220913
221018
|
scope: cachedStepUpScope,
|
|
220914
221019
|
resourceMetadataUrl
|
|
220915
221020
|
};
|
|
220916
|
-
const flowAttemptId =
|
|
221021
|
+
const flowAttemptId = randomUUID10();
|
|
220917
221022
|
logEvent("tengu_mcp_oauth_flow_start", {
|
|
220918
221023
|
flowAttemptId,
|
|
220919
221024
|
isOAuthFlow: true,
|
|
@@ -229430,7 +229535,8 @@ function createClaudeAiProxyFetch(innerFetch) {
|
|
|
229430
229535
|
if (response.status !== 401) {
|
|
229431
229536
|
return response;
|
|
229432
229537
|
}
|
|
229433
|
-
const
|
|
229538
|
+
const refreshOutcome = await handleOAuth401ErrorWithOutcome(sentToken).catch(() => "transient_error");
|
|
229539
|
+
const tokenChanged = didOAuthRefreshRecover(refreshOutcome);
|
|
229434
229540
|
logEvent("tengu_mcp_claudeai_proxy_401", {
|
|
229435
229541
|
tokenChanged
|
|
229436
229542
|
});
|
|
@@ -295016,7 +295122,7 @@ function movePlanFocus(index, direction, count3, columns) {
|
|
|
295016
295122
|
return safeIndex + columns < count3 ? safeIndex + columns : safeIndex;
|
|
295017
295123
|
}
|
|
295018
295124
|
function isCurrentLocalTrial(subscription) {
|
|
295019
|
-
return subscription?.
|
|
295125
|
+
return subscription?.status === "trialing" && ["trial", "stripe_trial"].includes(subscription.source ?? "");
|
|
295020
295126
|
}
|
|
295021
295127
|
function filterCliPurchasablePlans(groups, subscriptions) {
|
|
295022
295128
|
const subscriptionsByGroup = new Map(subscriptions.filter((subscription) => ["active", "trialing", "past_due"].includes(subscription.status)).map((subscription) => [subscription.groupId, subscription]));
|
|
@@ -296632,6 +296738,7 @@ class OAuthService {
|
|
|
296632
296738
|
this.port = await this.authCodeListener.start();
|
|
296633
296739
|
const codeChallenge = await generateCodeChallenge(this.codeVerifier);
|
|
296634
296740
|
const state = generateState();
|
|
296741
|
+
const installationId = isVerbooMode() ? getOrCreateVerbooInstallationId() : undefined;
|
|
296635
296742
|
const opts = {
|
|
296636
296743
|
codeChallenge,
|
|
296637
296744
|
state,
|
|
@@ -296640,7 +296747,8 @@ class OAuthService {
|
|
|
296640
296747
|
inferenceOnly: options2?.inferenceOnly,
|
|
296641
296748
|
orgUUID: options2?.orgUUID,
|
|
296642
296749
|
loginHint: options2?.loginHint,
|
|
296643
|
-
loginMethod: options2?.loginMethod
|
|
296750
|
+
loginMethod: options2?.loginMethod,
|
|
296751
|
+
installationId
|
|
296644
296752
|
};
|
|
296645
296753
|
const manualFlowUrl = buildAuthUrl({ ...opts, isManual: true });
|
|
296646
296754
|
const automaticFlowUrl = buildAuthUrl({ ...opts, isManual: false });
|
|
@@ -296655,7 +296763,7 @@ class OAuthService {
|
|
|
296655
296763
|
const isAutomaticFlow = this.authCodeListener?.hasPendingResponse() ?? false;
|
|
296656
296764
|
logEvent("tengu_oauth_auth_code_received", { automatic: isAutomaticFlow });
|
|
296657
296765
|
try {
|
|
296658
|
-
const tokenResponse = await exchangeCodeForTokens(authorizationCode, state, this.codeVerifier, this.port, !isAutomaticFlow, options2?.expiresIn);
|
|
296766
|
+
const tokenResponse = await exchangeCodeForTokens(authorizationCode, state, this.codeVerifier, this.port, !isAutomaticFlow, options2?.expiresIn, installationId);
|
|
296659
296767
|
const profileInfo = await fetchProfileInfo(tokenResponse.access_token);
|
|
296660
296768
|
if (isAutomaticFlow) {
|
|
296661
296769
|
const scopes = parseScopes(tokenResponse.scope);
|
|
@@ -296712,7 +296820,9 @@ class OAuthService {
|
|
|
296712
296820
|
}
|
|
296713
296821
|
}
|
|
296714
296822
|
var init_oauth2 = __esm(() => {
|
|
296823
|
+
init_oauth();
|
|
296715
296824
|
init_browser();
|
|
296825
|
+
init_verbooInstallation();
|
|
296716
296826
|
init_auth_code_listener();
|
|
296717
296827
|
init_client2();
|
|
296718
296828
|
init_crypto2();
|
|
@@ -300070,7 +300180,10 @@ async function authLogin({
|
|
|
300070
300180
|
const scopes = envScopes.split(/\s+/).filter(Boolean);
|
|
300071
300181
|
try {
|
|
300072
300182
|
logEvent("tengu_login_from_refresh_token", {});
|
|
300073
|
-
const tokens = await refreshOAuthToken(envRefreshToken, {
|
|
300183
|
+
const tokens = await refreshOAuthToken(envRefreshToken, {
|
|
300184
|
+
scopes,
|
|
300185
|
+
installationId: isVerbooMode() ? getOrCreateVerbooInstallationId() : undefined
|
|
300186
|
+
});
|
|
300074
300187
|
await installOAuthTokens(tokens);
|
|
300075
300188
|
const orgResult = await validateForceLoginOrg();
|
|
300076
300189
|
if (!orgResult.valid) {
|
|
@@ -300328,6 +300441,7 @@ var init_auth6 = __esm(() => {
|
|
|
300328
300441
|
init_providers();
|
|
300329
300442
|
init_settings2();
|
|
300330
300443
|
init_slowOperations();
|
|
300444
|
+
init_verbooInstallation();
|
|
300331
300445
|
init_status();
|
|
300332
300446
|
init_oauth();
|
|
300333
300447
|
init_crypto2();
|
|
@@ -300954,11 +301068,13 @@ async function validateVerbooSession() {
|
|
|
300954
301068
|
if (result.status === "unauthorized" && tokens.refreshToken) {
|
|
300955
301069
|
logForDebugging("[VerbooStartup] /api/me returned 401, tentando refresh");
|
|
300956
301070
|
try {
|
|
300957
|
-
const
|
|
300958
|
-
|
|
300959
|
-
|
|
300960
|
-
|
|
300961
|
-
|
|
301071
|
+
const outcome = await handleOAuth401ErrorWithOutcome(tokens.accessToken);
|
|
301072
|
+
if (!didOAuthRefreshRecover(outcome)) {
|
|
301073
|
+
return outcome === "transient_error" ? { kind: "degraded", reason: "temporary OAuth refresh failure" } : { kind: "unauthenticated" };
|
|
301074
|
+
}
|
|
301075
|
+
const refreshed = await getClaudeAIOAuthTokensAsync();
|
|
301076
|
+
if (!refreshed?.accessToken)
|
|
301077
|
+
return { kind: "unauthenticated" };
|
|
300962
301078
|
result = await callApiMe(refreshed.accessToken);
|
|
300963
301079
|
if (result.status === "ok" && result.data) {
|
|
300964
301080
|
persistAccount(result.data);
|
|
@@ -305853,7 +305969,7 @@ __export(exports_api, {
|
|
|
305853
305969
|
CodeSessionSchema: () => CodeSessionSchema,
|
|
305854
305970
|
CCR_BYOC_BETA: () => CCR_BYOC_BETA
|
|
305855
305971
|
});
|
|
305856
|
-
import { randomUUID as
|
|
305972
|
+
import { randomUUID as randomUUID11 } from "crypto";
|
|
305857
305973
|
function isTransientNetworkError(error42) {
|
|
305858
305974
|
if (!axios_default.isAxiosError(error42)) {
|
|
305859
305975
|
return false;
|
|
@@ -305996,7 +306112,7 @@ async function sendEventToRemoteSession(sessionId, messageContent, opts) {
|
|
|
305996
306112
|
"x-organization-uuid": orgUUID
|
|
305997
306113
|
};
|
|
305998
306114
|
const userEvent = {
|
|
305999
|
-
uuid: opts?.uuid ??
|
|
306115
|
+
uuid: opts?.uuid ?? randomUUID11(),
|
|
306000
306116
|
session_id: sessionId,
|
|
306001
306117
|
type: "user",
|
|
306002
306118
|
parent_tool_use_id: null,
|
|
@@ -316375,7 +316491,7 @@ __export(exports_processSlashCommand, {
|
|
|
316375
316491
|
looksLikeCommand: () => looksLikeCommand,
|
|
316376
316492
|
formatSkillLoadingMetadata: () => formatSkillLoadingMetadata
|
|
316377
316493
|
});
|
|
316378
|
-
import { randomUUID as
|
|
316494
|
+
import { randomUUID as randomUUID12 } from "crypto";
|
|
316379
316495
|
async function executeForkedSlashCommand(command, args, context, precedingInputBlocks, setToolJSX, canUseTool) {
|
|
316380
316496
|
const agentId = createAgentId();
|
|
316381
316497
|
const pluginMarketplace = command.pluginInfo ? parsePluginIdentifier(command.pluginInfo.repository).marketplace : undefined;
|
|
@@ -316419,7 +316535,7 @@ async function executeForkedSlashCommand(command, args, context, precedingInputB
|
|
|
316419
316535
|
parentToolUseID,
|
|
316420
316536
|
toolUseID: `${parentToolUseID}-${toolUseCounter}`,
|
|
316421
316537
|
timestamp: new Date().toISOString(),
|
|
316422
|
-
uuid:
|
|
316538
|
+
uuid: randomUUID12()
|
|
316423
316539
|
};
|
|
316424
316540
|
};
|
|
316425
316541
|
const updateProgress = () => {
|
|
@@ -316544,7 +316660,7 @@ async function processSlashCommand(inputString, precedingInputBlocks, imageConte
|
|
|
316544
316660
|
resultText: unknownMessage
|
|
316545
316661
|
};
|
|
316546
316662
|
}
|
|
316547
|
-
const promptId =
|
|
316663
|
+
const promptId = randomUUID12();
|
|
316548
316664
|
setPromptId(promptId);
|
|
316549
316665
|
logEvent("tengu_input_prompt", {});
|
|
316550
316666
|
logOTelEvent("user_prompt", {
|
|
@@ -317054,7 +317170,7 @@ var init_MonitorMcpTask = __esm(() => {
|
|
|
317054
317170
|
});
|
|
317055
317171
|
|
|
317056
317172
|
// src/tools/AgentTool/runAgent.ts
|
|
317057
|
-
import { randomUUID as
|
|
317173
|
+
import { randomUUID as randomUUID13 } from "crypto";
|
|
317058
317174
|
async function initializeAgentMcpServers(agentDefinition, parentClients) {
|
|
317059
317175
|
if (!agentDefinition.mcpServers?.length) {
|
|
317060
317176
|
return {
|
|
@@ -317239,7 +317355,7 @@ async function* runAgent({
|
|
|
317239
317355
|
type: "hook_additional_context",
|
|
317240
317356
|
content: additionalContexts,
|
|
317241
317357
|
hookName: "SubagentStart",
|
|
317242
|
-
toolUseID:
|
|
317358
|
+
toolUseID: randomUUID13(),
|
|
317243
317359
|
hookEvent: "SubagentStart"
|
|
317244
317360
|
});
|
|
317245
317361
|
initialMessages.push(contextMessage);
|
|
@@ -320177,7 +320293,7 @@ var init_words = __esm(() => {
|
|
|
320177
320293
|
});
|
|
320178
320294
|
|
|
320179
320295
|
// src/utils/plans.ts
|
|
320180
|
-
import { randomUUID as
|
|
320296
|
+
import { randomUUID as randomUUID14 } from "crypto";
|
|
320181
320297
|
import { copyFile as copyFile4, writeFile as writeFile18 } from "fs/promises";
|
|
320182
320298
|
import { homedir as homedir22 } from "os";
|
|
320183
320299
|
import { join as join68, resolve as resolve21, sep as sep13 } from "path";
|
|
@@ -320370,7 +320486,7 @@ async function persistFileSnapshotIfRemote() {
|
|
|
320370
320486
|
level: "info",
|
|
320371
320487
|
isMeta: true,
|
|
320372
320488
|
timestamp: new Date().toISOString(),
|
|
320373
|
-
uuid:
|
|
320489
|
+
uuid: randomUUID14(),
|
|
320374
320490
|
snapshotFiles
|
|
320375
320491
|
};
|
|
320376
320492
|
const { recordTranscript: recordTranscript2 } = await Promise.resolve().then(() => (init_sessionStorage(), exports_sessionStorage));
|
|
@@ -321336,7 +321452,7 @@ var init_conversationRecovery = __esm(() => {
|
|
|
321336
321452
|
});
|
|
321337
321453
|
|
|
321338
321454
|
// src/services/api/filesApi.ts
|
|
321339
|
-
import { randomUUID as
|
|
321455
|
+
import { randomUUID as randomUUID15 } from "crypto";
|
|
321340
321456
|
import * as fs2 from "fs/promises";
|
|
321341
321457
|
import * as path12 from "path";
|
|
321342
321458
|
function getDefaultApiBaseUrl() {
|
|
@@ -321520,7 +321636,7 @@ async function uploadFile(filePath, relativePath, config2, opts) {
|
|
|
321520
321636
|
success: false
|
|
321521
321637
|
};
|
|
321522
321638
|
}
|
|
321523
|
-
const boundary = `----FormBoundary${
|
|
321639
|
+
const boundary = `----FormBoundary${randomUUID15()}`;
|
|
321524
321640
|
const filename = path12.basename(relativePath);
|
|
321525
321641
|
const bodyParts = [];
|
|
321526
321642
|
bodyParts.push(Buffer.from(`--${boundary}\r
|
|
@@ -321824,7 +321940,7 @@ __export(exports_teleport, {
|
|
|
321824
321940
|
checkOutTeleportedSessionBranch: () => checkOutTeleportedSessionBranch,
|
|
321825
321941
|
archiveRemoteSession: () => archiveRemoteSession
|
|
321826
321942
|
});
|
|
321827
|
-
import { randomUUID as
|
|
321943
|
+
import { randomUUID as randomUUID16 } from "crypto";
|
|
321828
321944
|
function createTeleportResumeSystemMessage(branchError) {
|
|
321829
321945
|
if (branchError === null) {
|
|
321830
321946
|
return createSystemMessage("Session resumed", "suggestion");
|
|
@@ -322541,7 +322657,7 @@ async function teleportToRemote(options2) {
|
|
|
322541
322657
|
type: "event",
|
|
322542
322658
|
data: {
|
|
322543
322659
|
type: "control_request",
|
|
322544
|
-
request_id: `set-mode-${
|
|
322660
|
+
request_id: `set-mode-${randomUUID16()}`,
|
|
322545
322661
|
request: {
|
|
322546
322662
|
subtype: "set_permission_mode",
|
|
322547
322663
|
mode: options2.permissionMode,
|
|
@@ -322554,7 +322670,7 @@ async function teleportToRemote(options2) {
|
|
|
322554
322670
|
events.push({
|
|
322555
322671
|
type: "event",
|
|
322556
322672
|
data: {
|
|
322557
|
-
uuid:
|
|
322673
|
+
uuid: randomUUID16(),
|
|
322558
322674
|
session_id: "",
|
|
322559
322675
|
type: "user",
|
|
322560
322676
|
parent_tool_use_id: null,
|
|
@@ -323873,12 +323989,12 @@ ${result.result}`
|
|
|
323873
323989
|
});
|
|
323874
323990
|
|
|
323875
323991
|
// src/services/lsp/LSPDiagnosticRegistry.ts
|
|
323876
|
-
import { randomUUID as
|
|
323992
|
+
import { randomUUID as randomUUID17 } from "crypto";
|
|
323877
323993
|
function registerPendingLSPDiagnostic({
|
|
323878
323994
|
serverName,
|
|
323879
323995
|
files
|
|
323880
323996
|
}) {
|
|
323881
|
-
const diagnosticId =
|
|
323997
|
+
const diagnosticId = randomUUID17();
|
|
323882
323998
|
logForDebugging(`LSP Diagnostics: Registering ${files.length} diagnostic file(s) from ${serverName} (ID: ${diagnosticId})`);
|
|
323883
323999
|
pendingDiagnostics.set(diagnosticId, {
|
|
323884
324000
|
serverName,
|
|
@@ -337675,7 +337791,7 @@ var init_PowerShellTool = __esm(() => {
|
|
|
337675
337791
|
});
|
|
337676
337792
|
|
|
337677
337793
|
// src/utils/promptShellExecution.ts
|
|
337678
|
-
import { randomUUID as
|
|
337794
|
+
import { randomUUID as randomUUID18 } from "crypto";
|
|
337679
337795
|
async function executeShellCommandsInPrompt(text, context, slashCommandName, shell) {
|
|
337680
337796
|
let result = text;
|
|
337681
337797
|
const shellTool = shell === "powershell" && isPowerShellToolEnabled() ? getPowerShellTool() : BashTool;
|
|
@@ -337696,7 +337812,7 @@ async function executeShellCommandsInPrompt(text, context, slashCommandName, she
|
|
|
337696
337812
|
stdout: typeof data.stdout === "string" ? data.stdout : "",
|
|
337697
337813
|
stderr: typeof data.stderr === "string" ? data.stderr : ""
|
|
337698
337814
|
};
|
|
337699
|
-
const toolResultBlock = await processToolResultBlock(shellTool, normalizedData,
|
|
337815
|
+
const toolResultBlock = await processToolResultBlock(shellTool, normalizedData, randomUUID18());
|
|
337700
337816
|
const output = typeof toolResultBlock.content === "string" ? toolResultBlock.content : formatBashOutput(normalizedData.stdout, normalizedData.stderr);
|
|
337701
337817
|
result = result.replace(match[0], () => output);
|
|
337702
337818
|
} catch (e) {
|
|
@@ -382005,7 +382121,7 @@ var init_systemPrompt = __esm(() => {
|
|
|
382005
382121
|
});
|
|
382006
382122
|
|
|
382007
382123
|
// src/tools/AgentTool/forkSubagent.ts
|
|
382008
|
-
import { randomUUID as
|
|
382124
|
+
import { randomUUID as randomUUID19 } from "crypto";
|
|
382009
382125
|
function isForkSubagentEnabled() {
|
|
382010
382126
|
if (false) {}
|
|
382011
382127
|
return false;
|
|
@@ -382023,7 +382139,7 @@ function isInForkChild(messages) {
|
|
|
382023
382139
|
function buildForkedMessages(directive, assistantMessage2) {
|
|
382024
382140
|
const fullAssistantMessage = {
|
|
382025
382141
|
...assistantMessage2,
|
|
382026
|
-
uuid:
|
|
382142
|
+
uuid: randomUUID19(),
|
|
382027
382143
|
message: {
|
|
382028
382144
|
...assistantMessage2.message,
|
|
382029
382145
|
content: [...assistantMessage2.message.content]
|
|
@@ -394675,13 +394791,13 @@ var init_config4 = __esm(() => {
|
|
|
394675
394791
|
});
|
|
394676
394792
|
|
|
394677
394793
|
// src/query/deps.ts
|
|
394678
|
-
import { randomUUID as
|
|
394794
|
+
import { randomUUID as randomUUID20 } from "crypto";
|
|
394679
394795
|
function productionDeps() {
|
|
394680
394796
|
return {
|
|
394681
394797
|
callModel: queryModelWithStreaming,
|
|
394682
394798
|
microcompact: microcompactMessages,
|
|
394683
394799
|
autocompact: autoCompactIfNeeded,
|
|
394684
|
-
uuid:
|
|
394800
|
+
uuid: randomUUID20
|
|
394685
394801
|
};
|
|
394686
394802
|
}
|
|
394687
394803
|
var init_deps = __esm(() => {
|
|
@@ -395806,7 +395922,7 @@ function getAnthropicEnvMetadata() {
|
|
|
395806
395922
|
function getBuildAgeMinutes() {
|
|
395807
395923
|
if (false)
|
|
395808
395924
|
;
|
|
395809
|
-
const buildTime = new Date("2026-07-
|
|
395925
|
+
const buildTime = new Date("2026-07-26T19:55:07.255Z").getTime();
|
|
395810
395926
|
if (isNaN(buildTime))
|
|
395811
395927
|
return;
|
|
395812
395928
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -396203,7 +396319,7 @@ var init_denialTracking = __esm(() => {
|
|
|
396203
396319
|
});
|
|
396204
396320
|
|
|
396205
396321
|
// src/utils/forkedAgent.ts
|
|
396206
|
-
import { randomUUID as
|
|
396322
|
+
import { randomUUID as randomUUID21 } from "crypto";
|
|
396207
396323
|
function saveCacheSafeParams(params) {
|
|
396208
396324
|
lastCacheSafeParams = params;
|
|
396209
396325
|
}
|
|
@@ -396312,7 +396428,7 @@ function createSubagentContext(parentContext, overrides) {
|
|
|
396312
396428
|
agentId: overrides?.agentId ?? createAgentId(),
|
|
396313
396429
|
agentType: overrides?.agentType,
|
|
396314
396430
|
queryTracking: {
|
|
396315
|
-
chainId:
|
|
396431
|
+
chainId: randomUUID21(),
|
|
396316
396432
|
depth: (parentContext.queryTracking?.depth ?? -1) + 1
|
|
396317
396433
|
},
|
|
396318
396434
|
fileReadingLimits: parentContext.fileReadingLimits,
|
|
@@ -399430,7 +399546,7 @@ var init_toolSearch = __esm(() => {
|
|
|
399430
399546
|
});
|
|
399431
399547
|
|
|
399432
399548
|
// src/services/vcr.ts
|
|
399433
|
-
import { createHash as createHash18, randomUUID as
|
|
399549
|
+
import { createHash as createHash18, randomUUID as randomUUID22 } from "crypto";
|
|
399434
399550
|
import { mkdir as mkdir25, readFile as readFile29, writeFile as writeFile25 } from "fs/promises";
|
|
399435
399551
|
import { dirname as dirname36, join as join86 } from "path";
|
|
399436
399552
|
function shouldUseVCR() {
|
|
@@ -399483,7 +399599,7 @@ async function withVCR(messages, f) {
|
|
|
399483
399599
|
try {
|
|
399484
399600
|
const cached3 = jsonParse(await readFile29(filename, { encoding: "utf8" }));
|
|
399485
399601
|
cached3.output.forEach(addCachedCostToTotalSessionCost);
|
|
399486
|
-
return cached3.output.map((message, index) => mapMessage(message, hydrateValue, index,
|
|
399602
|
+
return cached3.output.map((message, index) => mapMessage(message, hydrateValue, index, randomUUID22()));
|
|
399487
399603
|
} catch (e2) {
|
|
399488
399604
|
const code = getErrnoCode(e2);
|
|
399489
399605
|
if (code !== "ENOENT") {
|
|
@@ -399944,7 +400060,7 @@ var init_tokenEstimation = __esm(() => {
|
|
|
399944
400060
|
});
|
|
399945
400061
|
|
|
399946
400062
|
// src/utils/pdf.ts
|
|
399947
|
-
import { randomUUID as
|
|
400063
|
+
import { randomUUID as randomUUID23 } from "crypto";
|
|
399948
400064
|
import { mkdir as mkdir26, readdir as readdir15, readFile as readFile30 } from "fs/promises";
|
|
399949
400065
|
import { join as join87 } from "path";
|
|
399950
400066
|
async function readPDF(filePath) {
|
|
@@ -400055,7 +400171,7 @@ async function extractPDFPages(filePath, options2) {
|
|
|
400055
400171
|
}
|
|
400056
400172
|
};
|
|
400057
400173
|
}
|
|
400058
|
-
const uuid3 =
|
|
400174
|
+
const uuid3 = randomUUID23();
|
|
400059
400175
|
const outputDir = join87(getToolResultsDir(), `pdf-${uuid3}`);
|
|
400060
400176
|
await mkdir26(outputDir, { recursive: true });
|
|
400061
400177
|
const prefix = join87(outputDir, "page");
|
|
@@ -401623,7 +401739,7 @@ var init_findRelevantMemories = __esm(() => {
|
|
|
401623
401739
|
// src/utils/attachments.ts
|
|
401624
401740
|
import { readdir as readdir17, stat as stat34 } from "fs/promises";
|
|
401625
401741
|
import { dirname as dirname37, parse as parse13, relative as relative20, resolve as resolve30 } from "path";
|
|
401626
|
-
import { randomUUID as
|
|
401742
|
+
import { randomUUID as randomUUID24 } from "crypto";
|
|
401627
401743
|
async function getAttachments(input, toolUseContext, ideSelection, queuedCommands, messages, querySource, options2) {
|
|
401628
401744
|
if (isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_ATTACHMENTS) || isEnvTruthy(process.env.CLAUDE_CODE_SIMPLE)) {
|
|
401629
401745
|
return getQueuedCommandAttachments(queuedCommands);
|
|
@@ -402850,7 +402966,7 @@ function createAttachmentMessage(attachment) {
|
|
|
402850
402966
|
return {
|
|
402851
402967
|
attachment,
|
|
402852
402968
|
type: "attachment",
|
|
402853
|
-
uuid:
|
|
402969
|
+
uuid: randomUUID24(),
|
|
402854
402970
|
timestamp: new Date().toISOString()
|
|
402855
402971
|
};
|
|
402856
402972
|
}
|
|
@@ -408728,7 +408844,7 @@ ${EXPLANATORY_FEATURE_PROMPT}`
|
|
|
408728
408844
|
});
|
|
408729
408845
|
|
|
408730
408846
|
// src/utils/messages.ts
|
|
408731
|
-
import { randomUUID as
|
|
408847
|
+
import { randomUUID as randomUUID25 } from "crypto";
|
|
408732
408848
|
function getTeammateMailbox() {
|
|
408733
408849
|
return init_teammateMailbox(), __toCommonJS(exports_teammateMailbox);
|
|
408734
408850
|
}
|
|
@@ -408808,10 +408924,10 @@ function baseCreateAssistantMessage({
|
|
|
408808
408924
|
}) {
|
|
408809
408925
|
return {
|
|
408810
408926
|
type: "assistant",
|
|
408811
|
-
uuid:
|
|
408927
|
+
uuid: randomUUID25(),
|
|
408812
408928
|
timestamp: new Date().toISOString(),
|
|
408813
408929
|
message: {
|
|
408814
|
-
id:
|
|
408930
|
+
id: randomUUID25(),
|
|
408815
408931
|
container: null,
|
|
408816
408932
|
model: SYNTHETIC_MODEL,
|
|
408817
408933
|
role: "assistant",
|
|
@@ -408892,7 +409008,7 @@ function createUserMessage({
|
|
|
408892
409008
|
isVirtual,
|
|
408893
409009
|
isCompactSummary,
|
|
408894
409010
|
summarizeMetadata,
|
|
408895
|
-
uuid: uuid3 ||
|
|
409011
|
+
uuid: uuid3 || randomUUID25(),
|
|
408896
409012
|
timestamp: timestamp ?? new Date().toISOString(),
|
|
408897
409013
|
toolUseResult,
|
|
408898
409014
|
mcpMeta,
|
|
@@ -408961,7 +409077,7 @@ function createProgressMessage({
|
|
|
408961
409077
|
data,
|
|
408962
409078
|
toolUseID,
|
|
408963
409079
|
parentToolUseID,
|
|
408964
|
-
uuid:
|
|
409080
|
+
uuid: randomUUID25(),
|
|
408965
409081
|
timestamp: new Date().toISOString()
|
|
408966
409082
|
};
|
|
408967
409083
|
}
|
|
@@ -411278,7 +411394,7 @@ function createSystemMessage(content, level, toolUseID, preventContinuation) {
|
|
|
411278
411394
|
content,
|
|
411279
411395
|
isMeta: false,
|
|
411280
411396
|
timestamp: new Date().toISOString(),
|
|
411281
|
-
uuid:
|
|
411397
|
+
uuid: randomUUID25(),
|
|
411282
411398
|
toolUseID,
|
|
411283
411399
|
level,
|
|
411284
411400
|
...preventContinuation && { preventContinuation }
|
|
@@ -411293,7 +411409,7 @@ function createPermissionRetryMessage(commands) {
|
|
|
411293
411409
|
level: "info",
|
|
411294
411410
|
isMeta: false,
|
|
411295
411411
|
timestamp: new Date().toISOString(),
|
|
411296
|
-
uuid:
|
|
411412
|
+
uuid: randomUUID25()
|
|
411297
411413
|
};
|
|
411298
411414
|
}
|
|
411299
411415
|
function createScheduledTaskFireMessage(content) {
|
|
@@ -411303,7 +411419,7 @@ function createScheduledTaskFireMessage(content) {
|
|
|
411303
411419
|
content,
|
|
411304
411420
|
isMeta: false,
|
|
411305
411421
|
timestamp: new Date().toISOString(),
|
|
411306
|
-
uuid:
|
|
411422
|
+
uuid: randomUUID25()
|
|
411307
411423
|
};
|
|
411308
411424
|
}
|
|
411309
411425
|
function createStopHookSummaryMessage(hookCount, hookInfos, hookErrors, preventedContinuation, stopReason, hasOutput, level, toolUseID, hookLabel, totalDurationMs) {
|
|
@@ -411318,7 +411434,7 @@ function createStopHookSummaryMessage(hookCount, hookInfos, hookErrors, prevente
|
|
|
411318
411434
|
hasOutput,
|
|
411319
411435
|
level,
|
|
411320
411436
|
timestamp: new Date().toISOString(),
|
|
411321
|
-
uuid:
|
|
411437
|
+
uuid: randomUUID25(),
|
|
411322
411438
|
toolUseID,
|
|
411323
411439
|
hookLabel,
|
|
411324
411440
|
totalDurationMs
|
|
@@ -411334,7 +411450,7 @@ function createTurnDurationMessage(durationMs, budget, messageCount) {
|
|
|
411334
411450
|
budgetNudges: budget?.nudges,
|
|
411335
411451
|
messageCount,
|
|
411336
411452
|
timestamp: new Date().toISOString(),
|
|
411337
|
-
uuid:
|
|
411453
|
+
uuid: randomUUID25(),
|
|
411338
411454
|
isMeta: false
|
|
411339
411455
|
};
|
|
411340
411456
|
}
|
|
@@ -411344,7 +411460,7 @@ function createAwaySummaryMessage(content) {
|
|
|
411344
411460
|
subtype: "away_summary",
|
|
411345
411461
|
content,
|
|
411346
411462
|
timestamp: new Date().toISOString(),
|
|
411347
|
-
uuid:
|
|
411463
|
+
uuid: randomUUID25(),
|
|
411348
411464
|
isMeta: false
|
|
411349
411465
|
};
|
|
411350
411466
|
}
|
|
@@ -411354,7 +411470,7 @@ function createMemorySavedMessage(writtenPaths) {
|
|
|
411354
411470
|
subtype: "memory_saved",
|
|
411355
411471
|
writtenPaths,
|
|
411356
411472
|
timestamp: new Date().toISOString(),
|
|
411357
|
-
uuid:
|
|
411473
|
+
uuid: randomUUID25(),
|
|
411358
411474
|
isMeta: false
|
|
411359
411475
|
};
|
|
411360
411476
|
}
|
|
@@ -411363,7 +411479,7 @@ function createAgentsKilledMessage() {
|
|
|
411363
411479
|
type: "system",
|
|
411364
411480
|
subtype: "agents_killed",
|
|
411365
411481
|
timestamp: new Date().toISOString(),
|
|
411366
|
-
uuid:
|
|
411482
|
+
uuid: randomUUID25(),
|
|
411367
411483
|
isMeta: false
|
|
411368
411484
|
};
|
|
411369
411485
|
}
|
|
@@ -411374,7 +411490,7 @@ function createCommandInputMessage(content) {
|
|
|
411374
411490
|
content,
|
|
411375
411491
|
level: "info",
|
|
411376
411492
|
timestamp: new Date().toISOString(),
|
|
411377
|
-
uuid:
|
|
411493
|
+
uuid: randomUUID25(),
|
|
411378
411494
|
isMeta: false
|
|
411379
411495
|
};
|
|
411380
411496
|
}
|
|
@@ -411385,7 +411501,7 @@ function createCompactBoundaryMessage(trigger, preTokens, lastPreCompactMessageU
|
|
|
411385
411501
|
content: `Conversation compacted`,
|
|
411386
411502
|
isMeta: false,
|
|
411387
411503
|
timestamp: new Date().toISOString(),
|
|
411388
|
-
uuid:
|
|
411504
|
+
uuid: randomUUID25(),
|
|
411389
411505
|
level: "info",
|
|
411390
411506
|
compactMetadata: {
|
|
411391
411507
|
trigger,
|
|
@@ -411406,7 +411522,7 @@ function createMicrocompactBoundaryMessage(trigger, preTokens, tokensSaved, comp
|
|
|
411406
411522
|
content: "Context microcompacted",
|
|
411407
411523
|
isMeta: false,
|
|
411408
411524
|
timestamp: new Date().toISOString(),
|
|
411409
|
-
uuid:
|
|
411525
|
+
uuid: randomUUID25(),
|
|
411410
411526
|
level: "info",
|
|
411411
411527
|
microcompactMetadata: {
|
|
411412
411528
|
trigger,
|
|
@@ -411428,7 +411544,7 @@ function createSystemAPIErrorMessage(error42, retryInMs, retryAttempt, maxRetrie
|
|
|
411428
411544
|
retryAttempt,
|
|
411429
411545
|
maxRetries,
|
|
411430
411546
|
timestamp: new Date().toISOString(),
|
|
411431
|
-
uuid:
|
|
411547
|
+
uuid: randomUUID25()
|
|
411432
411548
|
};
|
|
411433
411549
|
}
|
|
411434
411550
|
function isCompactBoundaryMessage(message) {
|
|
@@ -411697,7 +411813,7 @@ function createToolUseSummaryMessage(summary, precedingToolUseIds) {
|
|
|
411697
411813
|
type: "tool_use_summary",
|
|
411698
411814
|
summary,
|
|
411699
411815
|
precedingToolUseIds,
|
|
411700
|
-
uuid:
|
|
411816
|
+
uuid: randomUUID25(),
|
|
411701
411817
|
timestamp: new Date().toISOString()
|
|
411702
411818
|
};
|
|
411703
411819
|
}
|
|
@@ -421972,7 +422088,7 @@ var exports_conversation = {};
|
|
|
421972
422088
|
__export(exports_conversation, {
|
|
421973
422089
|
clearConversation: () => clearConversation
|
|
421974
422090
|
});
|
|
421975
|
-
import { randomUUID as
|
|
422091
|
+
import { randomUUID as randomUUID26 } from "crypto";
|
|
421976
422092
|
async function clearConversation({
|
|
421977
422093
|
setMessages,
|
|
421978
422094
|
readFileState,
|
|
@@ -422021,7 +422137,7 @@ async function clearConversation({
|
|
|
422021
422137
|
setMessages(() => []);
|
|
422022
422138
|
if (false) {}
|
|
422023
422139
|
if (setConversationId) {
|
|
422024
|
-
setConversationId(
|
|
422140
|
+
setConversationId(randomUUID26());
|
|
422025
422141
|
}
|
|
422026
422142
|
clearSessionCaches(preservedAgentIds);
|
|
422027
422143
|
setCwd(getOriginalCwd());
|
|
@@ -424066,7 +424182,7 @@ function buildPrimarySection() {
|
|
|
424066
424182
|
});
|
|
424067
424183
|
return [{
|
|
424068
424184
|
label: "Version",
|
|
424069
|
-
value: "0.14.
|
|
424185
|
+
value: "0.14.5"
|
|
424070
424186
|
}, {
|
|
424071
424187
|
label: "Session name",
|
|
424072
424188
|
value: nameValue
|
|
@@ -436995,7 +437111,7 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
|
|
|
436995
437111
|
return `${VERBOO_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
|
|
436996
437112
|
}
|
|
436997
437113
|
function getPublicBuildVersion() {
|
|
436998
|
-
return "0.14.
|
|
437114
|
+
return "0.14.5";
|
|
436999
437115
|
}
|
|
437000
437116
|
var import_semver10, VERBOO_RELEASES_URL = "https://github.com/verbeux-ai/code/releases", fallbackBuildVersion, publicBuildVersion;
|
|
437001
437117
|
var init_version = __esm(() => {
|
|
@@ -471125,7 +471241,7 @@ var init_InProcessTeammateDetailDialog = __esm(() => {
|
|
|
471125
471241
|
});
|
|
471126
471242
|
|
|
471127
471243
|
// src/utils/messages/mappers.ts
|
|
471128
|
-
import { randomUUID as
|
|
471244
|
+
import { randomUUID as randomUUID27 } from "crypto";
|
|
471129
471245
|
function toInternalMessages(messages) {
|
|
471130
471246
|
return messages.flatMap((message) => {
|
|
471131
471247
|
switch (message.type) {
|
|
@@ -471144,7 +471260,7 @@ function toInternalMessages(messages) {
|
|
|
471144
471260
|
{
|
|
471145
471261
|
type: "user",
|
|
471146
471262
|
message: message.message,
|
|
471147
|
-
uuid: message.uuid ??
|
|
471263
|
+
uuid: message.uuid ?? randomUUID27(),
|
|
471148
471264
|
timestamp: message.timestamp ?? new Date().toISOString(),
|
|
471149
471265
|
isMeta: message.isSynthetic
|
|
471150
471266
|
}
|
|
@@ -481330,7 +481446,7 @@ __export(exports_branch, {
|
|
|
481330
481446
|
deriveFirstPrompt: () => deriveFirstPrompt,
|
|
481331
481447
|
call: () => call57
|
|
481332
481448
|
});
|
|
481333
|
-
import { randomUUID as
|
|
481449
|
+
import { randomUUID as randomUUID28 } from "crypto";
|
|
481334
481450
|
import { mkdir as mkdir35, readFile as readFile43, writeFile as writeFile39 } from "fs/promises";
|
|
481335
481451
|
function deriveFirstPrompt(firstUserMessage) {
|
|
481336
481452
|
const content = firstUserMessage?.message?.content;
|
|
@@ -481342,7 +481458,7 @@ function deriveFirstPrompt(firstUserMessage) {
|
|
|
481342
481458
|
return raw.replace(/\s+/g, " ").trim().slice(0, 100) || "Branched conversation";
|
|
481343
481459
|
}
|
|
481344
481460
|
async function createFork(customTitle) {
|
|
481345
|
-
const forkSessionId =
|
|
481461
|
+
const forkSessionId = randomUUID28();
|
|
481346
481462
|
const originalSessionId = getSessionId();
|
|
481347
481463
|
const projectDir = getProjectDir3(getOriginalCwd());
|
|
481348
481464
|
const forkSessionPath = getTranscriptPathForSession(forkSessionId);
|
|
@@ -488388,7 +488504,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
488388
488504
|
var call64 = async () => {
|
|
488389
488505
|
return {
|
|
488390
488506
|
type: "text",
|
|
488391
|
-
value: `${"99.0.0"} (built ${"2026-07-
|
|
488507
|
+
value: `${"99.0.0"} (built ${"2026-07-26T19:55:07.255Z"})`
|
|
488392
488508
|
};
|
|
488393
488509
|
}, version2, version_default;
|
|
488394
488510
|
var init_version2 = __esm(() => {
|
|
@@ -505971,9 +506087,9 @@ var init_hookHelpers = __esm(() => {
|
|
|
505971
506087
|
});
|
|
505972
506088
|
|
|
505973
506089
|
// src/utils/hooks/execPromptHook.ts
|
|
505974
|
-
import { randomUUID as
|
|
506090
|
+
import { randomUUID as randomUUID29 } from "crypto";
|
|
505975
506091
|
async function execPromptHook(hook, hookName, hookEvent, jsonInput, signal, toolUseContext, messages, toolUseID) {
|
|
505976
|
-
const effectiveToolUseID = toolUseID || `hook-${
|
|
506092
|
+
const effectiveToolUseID = toolUseID || `hook-${randomUUID29()}`;
|
|
505977
506093
|
try {
|
|
505978
506094
|
const processedPrompt = addArgumentsToPrompt(hook.prompt, jsonInput);
|
|
505979
506095
|
logForDebugging(`Hooks: Processing prompt hook with prompt: ${processedPrompt}`);
|
|
@@ -506127,9 +506243,9 @@ var init_execPromptHook = __esm(() => {
|
|
|
506127
506243
|
});
|
|
506128
506244
|
|
|
506129
506245
|
// src/utils/hooks/execAgentHook.ts
|
|
506130
|
-
import { randomUUID as
|
|
506246
|
+
import { randomUUID as randomUUID30 } from "crypto";
|
|
506131
506247
|
async function execAgentHook(hook, hookName, hookEvent, jsonInput, signal, toolUseContext, toolUseID, _messages, agentName) {
|
|
506132
|
-
const effectiveToolUseID = toolUseID || `hook-${
|
|
506248
|
+
const effectiveToolUseID = toolUseID || `hook-${randomUUID30()}`;
|
|
506133
506249
|
const transcriptPath = toolUseContext.agentId ? getAgentTranscriptPath(toolUseContext.agentId) : getTranscriptPath();
|
|
506134
506250
|
const hookStartTime = Date.now();
|
|
506135
506251
|
try {
|
|
@@ -506164,7 +506280,7 @@ When done, return your result using the ${SYNTHETIC_OUTPUT_TOOL_NAME} tool with:
|
|
|
506164
506280
|
]);
|
|
506165
506281
|
const model2 = hook.model ?? getSmallFastModel();
|
|
506166
506282
|
const MAX_AGENT_TURNS = 50;
|
|
506167
|
-
const hookAgentId = asAgentId(`hook-agent-${
|
|
506283
|
+
const hookAgentId = asAgentId(`hook-agent-${randomUUID30()}`);
|
|
506168
506284
|
const agentToolUseContext = {
|
|
506169
506285
|
...toolUseContext,
|
|
506170
506286
|
agentId: hookAgentId,
|
|
@@ -507548,7 +507664,7 @@ __export(exports_hooks2, {
|
|
|
507548
507664
|
});
|
|
507549
507665
|
import { basename as basename47 } from "path";
|
|
507550
507666
|
import { spawn as spawn10 } from "child_process";
|
|
507551
|
-
import { randomUUID as
|
|
507667
|
+
import { randomUUID as randomUUID31 } from "crypto";
|
|
507552
507668
|
function dedupeRegisteredPluginHooks(registeredHooks) {
|
|
507553
507669
|
const seenPluginMatchers = new Set;
|
|
507554
507670
|
const deduped = [];
|
|
@@ -508683,7 +508799,7 @@ async function* executeHooks({
|
|
|
508683
508799
|
parentToolUseID: toolUseID,
|
|
508684
508800
|
toolUseID,
|
|
508685
508801
|
timestamp: new Date().toISOString(),
|
|
508686
|
-
uuid:
|
|
508802
|
+
uuid: randomUUID31()
|
|
508687
508803
|
}
|
|
508688
508804
|
};
|
|
508689
508805
|
}
|
|
@@ -508745,7 +508861,7 @@ async function* executeHooks({
|
|
|
508745
508861
|
const { signal: abortSignal, cleanup } = createCombinedAbortSignal(signal, {
|
|
508746
508862
|
timeoutMs: commandTimeoutMs
|
|
508747
508863
|
});
|
|
508748
|
-
const hookId =
|
|
508864
|
+
const hookId = randomUUID31();
|
|
508749
508865
|
const hookStartMs = Date.now();
|
|
508750
508866
|
const hookCommand = getHookDisplayText(hook);
|
|
508751
508867
|
try {
|
|
@@ -509393,7 +509509,7 @@ async function executeHooksOutsideREPL({
|
|
|
509393
509509
|
const callbackTimeoutMs = hook.timeout ? hook.timeout * 1000 : timeoutMs;
|
|
509394
509510
|
const { signal: abortSignal2, cleanup: cleanup2 } = createCombinedAbortSignal(signal, { timeoutMs: callbackTimeoutMs });
|
|
509395
509511
|
try {
|
|
509396
|
-
const toolUseID =
|
|
509512
|
+
const toolUseID = randomUUID31();
|
|
509397
509513
|
const json2 = await hook.callback(hookInput, toolUseID, abortSignal2, hookIndex);
|
|
509398
509514
|
cleanup2?.();
|
|
509399
509515
|
if (isAsyncHookJSONOutput(json2)) {
|
|
@@ -509504,7 +509620,7 @@ async function executeHooksOutsideREPL({
|
|
|
509504
509620
|
const commandTimeoutMs = hook.timeout ? hook.timeout * 1000 : timeoutMs;
|
|
509505
509621
|
const { signal: abortSignal, cleanup } = createCombinedAbortSignal(signal, { timeoutMs: commandTimeoutMs });
|
|
509506
509622
|
try {
|
|
509507
|
-
const result = await execCommandHook(hook, hookEvent, hookName, jsonInput, abortSignal,
|
|
509623
|
+
const result = await execCommandHook(hook, hookEvent, hookName, jsonInput, abortSignal, randomUUID31(), hookIndex, pluginRoot, pluginId);
|
|
509508
509624
|
cleanup?.();
|
|
509509
509625
|
if (result.aborted) {
|
|
509510
509626
|
logForDebugging(`${hookName} [${hook.command}] cancelled`);
|
|
@@ -509722,7 +509838,7 @@ async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_E
|
|
|
509722
509838
|
};
|
|
509723
509839
|
yield* executeHooks({
|
|
509724
509840
|
hookInput,
|
|
509725
|
-
toolUseID:
|
|
509841
|
+
toolUseID: randomUUID31(),
|
|
509726
509842
|
signal,
|
|
509727
509843
|
timeoutMs,
|
|
509728
509844
|
toolUseContext,
|
|
@@ -509739,7 +509855,7 @@ async function* executeTeammateIdleHooks(teammateName, teamName, permissionMode,
|
|
|
509739
509855
|
};
|
|
509740
509856
|
yield* executeHooks({
|
|
509741
509857
|
hookInput,
|
|
509742
|
-
toolUseID:
|
|
509858
|
+
toolUseID: randomUUID31(),
|
|
509743
509859
|
signal,
|
|
509744
509860
|
timeoutMs
|
|
509745
509861
|
});
|
|
@@ -509756,7 +509872,7 @@ async function* executeTaskCreatedHooks(taskId, taskSubject, taskDescription, te
|
|
|
509756
509872
|
};
|
|
509757
509873
|
yield* executeHooks({
|
|
509758
509874
|
hookInput,
|
|
509759
|
-
toolUseID:
|
|
509875
|
+
toolUseID: randomUUID31(),
|
|
509760
509876
|
signal,
|
|
509761
509877
|
timeoutMs,
|
|
509762
509878
|
toolUseContext
|
|
@@ -509776,7 +509892,7 @@ async function* executeTaskCompletedHooks(taskId, taskSubject, taskDescription,
|
|
|
509776
509892
|
let preventedContinuation = false;
|
|
509777
509893
|
for await (const result of executeHooks({
|
|
509778
509894
|
hookInput,
|
|
509779
|
-
toolUseID:
|
|
509895
|
+
toolUseID: randomUUID31(),
|
|
509780
509896
|
signal,
|
|
509781
509897
|
timeoutMs,
|
|
509782
509898
|
toolUseContext
|
|
@@ -509814,7 +509930,7 @@ async function* executeUserPromptSubmitHooks(prompt, permissionMode, toolUseCont
|
|
|
509814
509930
|
};
|
|
509815
509931
|
yield* executeHooks({
|
|
509816
509932
|
hookInput,
|
|
509817
|
-
toolUseID:
|
|
509933
|
+
toolUseID: randomUUID31(),
|
|
509818
509934
|
signal: toolUseContext.abortController.signal,
|
|
509819
509935
|
timeoutMs: TOOL_HOOK_EXECUTION_TIMEOUT_MS,
|
|
509820
509936
|
toolUseContext,
|
|
@@ -509831,7 +509947,7 @@ async function* executeSessionStartHooks(source, sessionId, agentType, model2, s
|
|
|
509831
509947
|
};
|
|
509832
509948
|
yield* executeHooks({
|
|
509833
509949
|
hookInput,
|
|
509834
|
-
toolUseID:
|
|
509950
|
+
toolUseID: randomUUID31(),
|
|
509835
509951
|
matchQuery: source,
|
|
509836
509952
|
signal,
|
|
509837
509953
|
timeoutMs,
|
|
@@ -509846,7 +509962,7 @@ async function* executeSetupHooks(trigger, signal, timeoutMs = TOOL_HOOK_EXECUTI
|
|
|
509846
509962
|
};
|
|
509847
509963
|
yield* executeHooks({
|
|
509848
509964
|
hookInput,
|
|
509849
|
-
toolUseID:
|
|
509965
|
+
toolUseID: randomUUID31(),
|
|
509850
509966
|
matchQuery: trigger,
|
|
509851
509967
|
signal,
|
|
509852
509968
|
timeoutMs,
|
|
@@ -509862,7 +509978,7 @@ async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs
|
|
|
509862
509978
|
};
|
|
509863
509979
|
yield* executeHooks({
|
|
509864
509980
|
hookInput,
|
|
509865
|
-
toolUseID:
|
|
509981
|
+
toolUseID: randomUUID31(),
|
|
509866
509982
|
matchQuery: agentType,
|
|
509867
509983
|
signal,
|
|
509868
509984
|
timeoutMs
|
|
@@ -510225,7 +510341,7 @@ async function executeStatusLineCommand(statusLineInput, signal, timeoutMs = 500
|
|
|
510225
510341
|
const { signal: abortSignal, cleanup } = signal ? { signal, cleanup: () => {} } : createCombinedAbortSignal(undefined, { timeoutMs });
|
|
510226
510342
|
try {
|
|
510227
510343
|
const jsonInput = jsonStringify(statusLineInput);
|
|
510228
|
-
const result = await execCommandHook(statusLine, "StatusLine", "statusLine", jsonInput, abortSignal,
|
|
510344
|
+
const result = await execCommandHook(statusLine, "StatusLine", "statusLine", jsonInput, abortSignal, randomUUID31());
|
|
510229
510345
|
if (result.aborted) {
|
|
510230
510346
|
return;
|
|
510231
510347
|
}
|
|
@@ -510271,7 +510387,7 @@ async function executeFileSuggestionCommand(fileSuggestionInput, signal, timeout
|
|
|
510271
510387
|
try {
|
|
510272
510388
|
const jsonInput = jsonStringify(fileSuggestionInput);
|
|
510273
510389
|
const hook = { type: "command", command: fileSuggestion.command };
|
|
510274
|
-
const result = await execCommandHook(hook, "FileSuggestion", "FileSuggestion", jsonInput, abortSignal,
|
|
510390
|
+
const result = await execCommandHook(hook, "FileSuggestion", "FileSuggestion", jsonInput, abortSignal, randomUUID31());
|
|
510275
510391
|
if (result.aborted || result.status !== 0) {
|
|
510276
510392
|
return [];
|
|
510277
510393
|
}
|
|
@@ -512430,7 +512546,7 @@ function insertBlockAfterToolResults(content, block2) {
|
|
|
512430
512546
|
}
|
|
512431
512547
|
|
|
512432
512548
|
// src/services/api/claude.ts
|
|
512433
|
-
import { randomUUID as
|
|
512549
|
+
import { randomUUID as randomUUID32 } from "crypto";
|
|
512434
512550
|
function getExtraBodyParams(betaHeaders) {
|
|
512435
512551
|
const extraBodyStr = process.env.CLAUDE_CODE_EXTRA_BODY;
|
|
512436
512552
|
let result = {};
|
|
@@ -513251,7 +513367,7 @@ ${deferredToolList}
|
|
|
513251
513367
|
if (!options2.agentId) {
|
|
513252
513368
|
headlessProfilerCheckpoint("api_request_sent");
|
|
513253
513369
|
}
|
|
513254
|
-
clientRequestId = getAPIProvider() === "firstParty" && isFirstPartyAnthropicBaseUrl() ?
|
|
513370
|
+
clientRequestId = getAPIProvider() === "firstParty" && isFirstPartyAnthropicBaseUrl() ? randomUUID32() : undefined;
|
|
513255
513371
|
const result = await anthropic.beta.messages.create({ ...params, stream: true }, {
|
|
513256
513372
|
signal,
|
|
513257
513373
|
...clientRequestId && {
|
|
@@ -513496,7 +513612,7 @@ ${deferredToolList}
|
|
|
513496
513612
|
},
|
|
513497
513613
|
requestId: streamRequestId ?? undefined,
|
|
513498
513614
|
type: "assistant",
|
|
513499
|
-
uuid:
|
|
513615
|
+
uuid: randomUUID32(),
|
|
513500
513616
|
timestamp: new Date().toISOString(),
|
|
513501
513617
|
...process.env.USER_TYPE === "ant" && research !== undefined && { research },
|
|
513502
513618
|
...advisorModel && { advisorModel }
|
|
@@ -513678,7 +513794,7 @@ ${deferredToolList}
|
|
|
513678
513794
|
},
|
|
513679
513795
|
requestId: streamRequestId ?? undefined,
|
|
513680
513796
|
type: "assistant",
|
|
513681
|
-
uuid:
|
|
513797
|
+
uuid: randomUUID32(),
|
|
513682
513798
|
timestamp: new Date().toISOString(),
|
|
513683
513799
|
...process.env.USER_TYPE === "ant" && research !== undefined && {
|
|
513684
513800
|
research
|
|
@@ -513732,7 +513848,7 @@ ${deferredToolList}
|
|
|
513732
513848
|
},
|
|
513733
513849
|
requestId: streamRequestId ?? undefined,
|
|
513734
513850
|
type: "assistant",
|
|
513735
|
-
uuid:
|
|
513851
|
+
uuid: randomUUID32(),
|
|
513736
513852
|
timestamp: new Date().toISOString(),
|
|
513737
513853
|
...process.env.USER_TYPE === "ant" && research !== undefined && { research },
|
|
513738
513854
|
...advisorModel && { advisorModel }
|
|
@@ -514325,9 +514441,9 @@ function matchesKeepGoingKeyword(input) {
|
|
|
514325
514441
|
}
|
|
514326
514442
|
|
|
514327
514443
|
// src/utils/processUserInput/processTextPrompt.ts
|
|
514328
|
-
import { randomUUID as
|
|
514444
|
+
import { randomUUID as randomUUID33 } from "crypto";
|
|
514329
514445
|
function processTextPrompt(input, imageContentBlocks, imagePasteIds, attachmentMessages, uuid3, permissionMode, isMeta) {
|
|
514330
|
-
const promptId =
|
|
514446
|
+
const promptId = randomUUID33();
|
|
514331
514447
|
setPromptId(promptId);
|
|
514332
514448
|
const userPromptText = typeof input === "string" ? input : input.find((block2) => block2.type === "text")?.text || "";
|
|
514333
514449
|
startInteractionSpan(userPromptText);
|
|
@@ -514459,7 +514575,7 @@ var exports_processBashCommand = {};
|
|
|
514459
514575
|
__export(exports_processBashCommand, {
|
|
514460
514576
|
processBashCommand: () => processBashCommand
|
|
514461
514577
|
});
|
|
514462
|
-
import { randomUUID as
|
|
514578
|
+
import { randomUUID as randomUUID34 } from "crypto";
|
|
514463
514579
|
async function processBashCommand(inputString, precedingInputBlocks, attachmentMessages, context2, setToolJSX) {
|
|
514464
514580
|
const usePowerShell = isPowerShellToolEnabled() && resolveDefaultShell() === "powershell";
|
|
514465
514581
|
logEvent("tengu_input_bash", {
|
|
@@ -514525,7 +514641,7 @@ async function processBashCommand(inputString, precedingInputBlocks, attachmentM
|
|
|
514525
514641
|
const mapped = await processToolResultBlock(shellTool, {
|
|
514526
514642
|
...data,
|
|
514527
514643
|
stderr: ""
|
|
514528
|
-
},
|
|
514644
|
+
}, randomUUID34());
|
|
514529
514645
|
const stdout = typeof mapped.content === "string" ? mapped.content : escapeXml(data.stdout);
|
|
514530
514646
|
return {
|
|
514531
514647
|
messages: [createSyntheticUserCaveatMessage(), userMessage, ...attachmentMessages, createUserMessage({
|
|
@@ -514573,7 +514689,7 @@ var init_processBashCommand = __esm(() => {
|
|
|
514573
514689
|
});
|
|
514574
514690
|
|
|
514575
514691
|
// src/utils/processUserInput/processUserInput.ts
|
|
514576
|
-
import { randomUUID as
|
|
514692
|
+
import { randomUUID as randomUUID35 } from "crypto";
|
|
514577
514693
|
async function processUserInput({
|
|
514578
514694
|
input,
|
|
514579
514695
|
preExpansionInput,
|
|
@@ -514635,7 +514751,7 @@ Original prompt: ${input}`, "warning")
|
|
|
514635
514751
|
type: "hook_additional_context",
|
|
514636
514752
|
content: hookResult.additionalContexts.map(applyTruncation),
|
|
514637
514753
|
hookName: "UserPromptSubmit",
|
|
514638
|
-
toolUseID: `hook-${
|
|
514754
|
+
toolUseID: `hook-${randomUUID35()}`,
|
|
514639
514755
|
hookEvent: "UserPromptSubmit"
|
|
514640
514756
|
}));
|
|
514641
514757
|
}
|
|
@@ -514973,7 +515089,7 @@ var init_messageFilters = __esm(() => {
|
|
|
514973
515089
|
});
|
|
514974
515090
|
|
|
514975
515091
|
// src/utils/messages/systemInit.ts
|
|
514976
|
-
import { randomUUID as
|
|
515092
|
+
import { randomUUID as randomUUID36 } from "crypto";
|
|
514977
515093
|
function sdkCompatToolName(name) {
|
|
514978
515094
|
return name === AGENT_TOOL_NAME ? LEGACY_AGENT_TOOL_NAME : name;
|
|
514979
515095
|
}
|
|
@@ -515004,7 +515120,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
515004
515120
|
path: plugin2.path,
|
|
515005
515121
|
source: plugin2.source
|
|
515006
515122
|
})),
|
|
515007
|
-
uuid:
|
|
515123
|
+
uuid: randomUUID36()
|
|
515008
515124
|
};
|
|
515009
515125
|
if (false) {}
|
|
515010
515126
|
initMessage.fast_mode_state = getFastModeState(inputs.model, inputs.fastMode);
|
|
@@ -515021,7 +515137,7 @@ var init_systemInit = __esm(() => {
|
|
|
515021
515137
|
});
|
|
515022
515138
|
|
|
515023
515139
|
// src/QueryEngine.ts
|
|
515024
|
-
import { randomUUID as
|
|
515140
|
+
import { randomUUID as randomUUID37 } from "crypto";
|
|
515025
515141
|
|
|
515026
515142
|
class QueryEngine {
|
|
515027
515143
|
config;
|
|
@@ -515330,7 +515446,7 @@ class QueryEngine {
|
|
|
515330
515446
|
modelUsage: getModelUsage(),
|
|
515331
515447
|
permission_denials: this.permissionDenials,
|
|
515332
515448
|
fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
|
|
515333
|
-
uuid:
|
|
515449
|
+
uuid: randomUUID37()
|
|
515334
515450
|
};
|
|
515335
515451
|
return;
|
|
515336
515452
|
}
|
|
@@ -515453,7 +515569,7 @@ class QueryEngine {
|
|
|
515453
515569
|
event: message.event,
|
|
515454
515570
|
session_id: getSessionId(),
|
|
515455
515571
|
parent_tool_use_id: null,
|
|
515456
|
-
uuid:
|
|
515572
|
+
uuid: randomUUID37()
|
|
515457
515573
|
};
|
|
515458
515574
|
}
|
|
515459
515575
|
break;
|
|
@@ -515485,7 +515601,7 @@ class QueryEngine {
|
|
|
515485
515601
|
modelUsage: getModelUsage(),
|
|
515486
515602
|
permission_denials: this.permissionDenials,
|
|
515487
515603
|
fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
|
|
515488
|
-
uuid:
|
|
515604
|
+
uuid: randomUUID37(),
|
|
515489
515605
|
errors: [
|
|
515490
515606
|
`Reached maximum number of turns (${message.attachment.maxTurns})`
|
|
515491
515607
|
]
|
|
@@ -515580,7 +515696,7 @@ class QueryEngine {
|
|
|
515580
515696
|
modelUsage: getModelUsage(),
|
|
515581
515697
|
permission_denials: this.permissionDenials,
|
|
515582
515698
|
fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
|
|
515583
|
-
uuid:
|
|
515699
|
+
uuid: randomUUID37(),
|
|
515584
515700
|
errors: [`Reached maximum budget ($${maxBudgetUsd})`]
|
|
515585
515701
|
};
|
|
515586
515702
|
return;
|
|
@@ -515610,7 +515726,7 @@ class QueryEngine {
|
|
|
515610
515726
|
modelUsage: getModelUsage(),
|
|
515611
515727
|
permission_denials: this.permissionDenials,
|
|
515612
515728
|
fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
|
|
515613
|
-
uuid:
|
|
515729
|
+
uuid: randomUUID37(),
|
|
515614
515730
|
errors: [
|
|
515615
515731
|
`Failed to provide valid structured output after ${maxRetries} attempts`
|
|
515616
515732
|
]
|
|
@@ -515642,7 +515758,7 @@ class QueryEngine {
|
|
|
515642
515758
|
modelUsage: getModelUsage(),
|
|
515643
515759
|
permission_denials: this.permissionDenials,
|
|
515644
515760
|
fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
|
|
515645
|
-
uuid:
|
|
515761
|
+
uuid: randomUUID37(),
|
|
515646
515762
|
errors: (() => {
|
|
515647
515763
|
const all4 = getInMemoryErrors();
|
|
515648
515764
|
const start = errorLogWatermark ? all4.lastIndexOf(errorLogWatermark) + 1 : 0;
|
|
@@ -515679,7 +515795,7 @@ class QueryEngine {
|
|
|
515679
515795
|
permission_denials: this.permissionDenials,
|
|
515680
515796
|
structured_output: structuredOutputFromTool,
|
|
515681
515797
|
fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
|
|
515682
|
-
uuid:
|
|
515798
|
+
uuid: randomUUID37()
|
|
515683
515799
|
};
|
|
515684
515800
|
}
|
|
515685
515801
|
interrupt() {
|
|
@@ -516899,7 +517015,7 @@ var init_shared3 = __esm(() => {
|
|
|
516899
517015
|
});
|
|
516900
517016
|
|
|
516901
517017
|
// src/entrypoints/sdk/sessions.ts
|
|
516902
|
-
import { randomUUID as
|
|
517018
|
+
import { randomUUID as randomUUID38 } from "crypto";
|
|
516903
517019
|
import { appendFile as appendFile6, mkdir as mkdir46, unlink as unlink24, writeFile as writeFile49 } from "fs/promises";
|
|
516904
517020
|
import { dirname as dirname59, join as join145 } from "path";
|
|
516905
517021
|
function toSDKSessionInfo(info) {
|
|
@@ -516953,7 +517069,7 @@ async function forkSession(sessionId, options2) {
|
|
|
516953
517069
|
if (entries.length === 0) {
|
|
516954
517070
|
throw new Error(`Session is empty: ${sessionId}`);
|
|
516955
517071
|
}
|
|
516956
|
-
const forkSessionId =
|
|
517072
|
+
const forkSessionId = randomUUID38();
|
|
516957
517073
|
const targetDir = dirname59(resolved.filePath);
|
|
516958
517074
|
const forkPath = join145(targetDir, `${forkSessionId}.jsonl`);
|
|
516959
517075
|
const uuidMap = new Map;
|
|
@@ -516972,7 +517088,7 @@ async function forkSession(sessionId, options2) {
|
|
|
516972
517088
|
metadataEntries.push(entry);
|
|
516973
517089
|
continue;
|
|
516974
517090
|
}
|
|
516975
|
-
const newUuid =
|
|
517091
|
+
const newUuid = randomUUID38();
|
|
516976
517092
|
uuidMap.set(entry.uuid, newUuid);
|
|
516977
517093
|
mainEntries.push(entry);
|
|
516978
517094
|
if (options2?.upToMessageId && entry.uuid === options2.upToMessageId) {
|
|
@@ -517272,7 +517388,7 @@ function stripExtraFields(messages) {
|
|
|
517272
517388
|
}
|
|
517273
517389
|
|
|
517274
517390
|
// src/entrypoints/sdk/query.ts
|
|
517275
|
-
import { randomUUID as
|
|
517391
|
+
import { randomUUID as randomUUID39 } from "crypto";
|
|
517276
517392
|
import { dirname as dirname60 } from "path";
|
|
517277
517393
|
import { stat as stat50 } from "fs/promises";
|
|
517278
517394
|
async function loadAndInjectSessionMessages(sessionId, cwd2, engine, upToUuid) {
|
|
@@ -517440,7 +517556,7 @@ var init_query3 = __esm(() => {
|
|
|
517440
517556
|
this.appStateStore = appStateStore;
|
|
517441
517557
|
this.envOverrides = envOverrides;
|
|
517442
517558
|
this._sessionIdExplicitlyProvided = sessionId !== undefined;
|
|
517443
|
-
this._sessionId = sessionId ??
|
|
517559
|
+
this._sessionId = sessionId ?? randomUUID39();
|
|
517444
517560
|
this.shouldFork = fork;
|
|
517445
517561
|
this.continueSession = continueSession;
|
|
517446
517562
|
this.cwd = cwd2;
|
|
@@ -521463,7 +521579,7 @@ function printStartupScreen(modelOverride) {
|
|
|
521463
521579
|
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
521464
521580
|
const cwd2 = process.cwd();
|
|
521465
521581
|
const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
|
|
521466
|
-
const version3 = "0.14.
|
|
521582
|
+
const version3 = "0.14.5";
|
|
521467
521583
|
const bold2 = `${ESC4}1m`;
|
|
521468
521584
|
const PURPLE = rgb3(...ACCENT);
|
|
521469
521585
|
const SOFT = rgb3(...CREAM);
|
|
@@ -524505,7 +524621,7 @@ var init_useReplBridge = __esm(() => {
|
|
|
524505
524621
|
});
|
|
524506
524622
|
|
|
524507
524623
|
// src/components/MessageSelector.tsx
|
|
524508
|
-
import { randomUUID as
|
|
524624
|
+
import { randomUUID as randomUUID40 } from "crypto";
|
|
524509
524625
|
import * as path21 from "path";
|
|
524510
524626
|
function isTextBlock3(block2) {
|
|
524511
524627
|
return block2.type === "text";
|
|
@@ -524525,7 +524641,7 @@ function MessageSelector({
|
|
|
524525
524641
|
const fileHistory = useAppState((s) => s.fileHistory);
|
|
524526
524642
|
const [error42, setError] = import_react196.useState(undefined);
|
|
524527
524643
|
const isFileHistoryEnabled = fileHistoryEnabled();
|
|
524528
|
-
const currentUUID = import_react196.useMemo(
|
|
524644
|
+
const currentUUID = import_react196.useMemo(randomUUID40, []);
|
|
524529
524645
|
const messageOptions = import_react196.useMemo(() => [...messages.filter(selectableUserMessagesFilter), {
|
|
524530
524646
|
...createUserMessage({
|
|
524531
524647
|
content: ""
|
|
@@ -530319,7 +530435,7 @@ var init_FileEditToolDiff = __esm(() => {
|
|
|
530319
530435
|
});
|
|
530320
530436
|
|
|
530321
530437
|
// src/hooks/useDiffInIDE.ts
|
|
530322
|
-
import { randomUUID as
|
|
530438
|
+
import { randomUUID as randomUUID41 } from "crypto";
|
|
530323
530439
|
import { basename as basename51 } from "path";
|
|
530324
530440
|
async function runAllPendingDiffCleanups() {
|
|
530325
530441
|
const cleanups = Array.from(pendingDiffCleanups);
|
|
@@ -530349,7 +530465,7 @@ function useDiffInIDE({
|
|
|
530349
530465
|
}) {
|
|
530350
530466
|
const isUnmounted = import_react207.useRef(false);
|
|
530351
530467
|
const [hasError, setHasError] = import_react207.useState(false);
|
|
530352
|
-
const sha = import_react207.useMemo(() =>
|
|
530468
|
+
const sha = import_react207.useMemo(() => randomUUID41().slice(0, 6), []);
|
|
530353
530469
|
const tabName = import_react207.useMemo(() => `✻ [Verboo Code] ${basename51(filePath)} (${sha}) ⧉`, [filePath, sha]);
|
|
530354
530470
|
const shouldShowDiffInIDE = hasAccessToIDEExtensionDiffFeature(toolUseContext.options.mcpClients) && getGlobalConfig().diffTool === "auto" && !filePath.endsWith(".ipynb");
|
|
530355
530471
|
const ideName = getConnectedIdeName(toolUseContext.options.mcpClients) ?? "IDE";
|
|
@@ -539755,7 +539871,7 @@ var init_routerRateLimitHook = __esm(() => {
|
|
|
539755
539871
|
function getSemverPart(version3) {
|
|
539756
539872
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
539757
539873
|
}
|
|
539758
|
-
function useUpdateNotification(updatedVersion, initialVersion = "0.14.
|
|
539874
|
+
function useUpdateNotification(updatedVersion, initialVersion = "0.14.5") {
|
|
539759
539875
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
539760
539876
|
const [pendingNotification2, setPendingNotification] = import_react225.useState(null);
|
|
539761
539877
|
if (updatedVersion) {
|
|
@@ -539795,7 +539911,7 @@ function AutoUpdater({
|
|
|
539795
539911
|
return;
|
|
539796
539912
|
}
|
|
539797
539913
|
if (false) {}
|
|
539798
|
-
const currentVersion = "0.14.
|
|
539914
|
+
const currentVersion = "0.14.5";
|
|
539799
539915
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
539800
539916
|
let latestVersion = await getLatestVersion(channel2);
|
|
539801
539917
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -540148,17 +540264,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
540148
540264
|
const maxVersion = await getMaxVersion();
|
|
540149
540265
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
540150
540266
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
540151
|
-
if (gte("0.14.
|
|
540152
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.14.
|
|
540267
|
+
if (gte("0.14.5", maxVersion)) {
|
|
540268
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.14.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
540153
540269
|
setUpdateAvailable(false);
|
|
540154
540270
|
return;
|
|
540155
540271
|
}
|
|
540156
540272
|
latest = maxVersion;
|
|
540157
540273
|
}
|
|
540158
|
-
const hasUpdate = latest && !gte("0.14.
|
|
540274
|
+
const hasUpdate = latest && !gte("0.14.5", latest) && !shouldSkipVersion(latest);
|
|
540159
540275
|
setUpdateAvailable(!!hasUpdate);
|
|
540160
540276
|
if (hasUpdate) {
|
|
540161
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.14.
|
|
540277
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.14.5"} -> ${latest}`);
|
|
540162
540278
|
}
|
|
540163
540279
|
};
|
|
540164
540280
|
$2[0] = t1;
|
|
@@ -540192,7 +540308,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
540192
540308
|
wrap: "truncate",
|
|
540193
540309
|
children: [
|
|
540194
540310
|
"currentVersion: ",
|
|
540195
|
-
"0.14.
|
|
540311
|
+
"0.14.5"
|
|
540196
540312
|
]
|
|
540197
540313
|
});
|
|
540198
540314
|
$2[3] = verbose;
|
|
@@ -547021,7 +547137,7 @@ var init_teamDiscovery = __esm(() => {
|
|
|
547021
547137
|
});
|
|
547022
547138
|
|
|
547023
547139
|
// src/components/teams/TeamsDialog.tsx
|
|
547024
|
-
import { randomUUID as
|
|
547140
|
+
import { randomUUID as randomUUID42 } from "crypto";
|
|
547025
547141
|
function TeamsDialog({
|
|
547026
547142
|
initialTeams,
|
|
547027
547143
|
onDone
|
|
@@ -547645,7 +547761,7 @@ async function killTeammate(paneId, backendType, teamName, teammateId, teammateN
|
|
|
547645
547761
|
},
|
|
547646
547762
|
inbox: {
|
|
547647
547763
|
messages: [...prev.inbox.messages, {
|
|
547648
|
-
id:
|
|
547764
|
+
id: randomUUID42(),
|
|
547649
547765
|
from: "system",
|
|
547650
547766
|
text: jsonStringify({
|
|
547651
547767
|
type: "teammate_terminated",
|
|
@@ -553602,7 +553718,7 @@ function normalizeControlMessageKeys(obj) {
|
|
|
553602
553718
|
}
|
|
553603
553719
|
|
|
553604
553720
|
// src/bridge/bridgeMessaging.ts
|
|
553605
|
-
import { randomUUID as
|
|
553721
|
+
import { randomUUID as randomUUID43 } from "crypto";
|
|
553606
553722
|
function isSDKMessage(value) {
|
|
553607
553723
|
return value !== null && typeof value === "object" && "type" in value && typeof value.type === "string";
|
|
553608
553724
|
}
|
|
@@ -553810,7 +553926,7 @@ function makeResultMessage(sessionId) {
|
|
|
553810
553926
|
modelUsage: {},
|
|
553811
553927
|
permission_denials: [],
|
|
553812
553928
|
session_id: sessionId,
|
|
553813
|
-
uuid:
|
|
553929
|
+
uuid: randomUUID43()
|
|
553814
553930
|
};
|
|
553815
553931
|
}
|
|
553816
553932
|
|
|
@@ -553853,7 +553969,7 @@ var init_bridgeMessaging = __esm(() => {
|
|
|
553853
553969
|
});
|
|
553854
553970
|
|
|
553855
553971
|
// src/remote/SessionsWebSocket.ts
|
|
553856
|
-
import { randomUUID as
|
|
553972
|
+
import { randomUUID as randomUUID44 } from "crypto";
|
|
553857
553973
|
function isSessionsMessage(value) {
|
|
553858
553974
|
if (typeof value !== "object" || value === null || !("type" in value)) {
|
|
553859
553975
|
return false;
|
|
@@ -554078,7 +554194,7 @@ class SessionsWebSocket {
|
|
|
554078
554194
|
}
|
|
554079
554195
|
const controlRequest = {
|
|
554080
554196
|
type: "control_request",
|
|
554081
|
-
request_id:
|
|
554197
|
+
request_id: randomUUID44(),
|
|
554082
554198
|
request
|
|
554083
554199
|
};
|
|
554084
554200
|
logForDebugging(`[SessionsWebSocket] Sending control request: ${request.subtype}`);
|
|
@@ -554267,11 +554383,11 @@ var init_RemoteSessionManager = __esm(() => {
|
|
|
554267
554383
|
});
|
|
554268
554384
|
|
|
554269
554385
|
// src/remote/remotePermissionBridge.ts
|
|
554270
|
-
import { randomUUID as
|
|
554386
|
+
import { randomUUID as randomUUID45 } from "crypto";
|
|
554271
554387
|
function createSyntheticAssistantMessage(request, requestId) {
|
|
554272
554388
|
return {
|
|
554273
554389
|
type: "assistant",
|
|
554274
|
-
uuid:
|
|
554390
|
+
uuid: randomUUID45(),
|
|
554275
554391
|
message: {
|
|
554276
554392
|
id: `remote-${requestId}`,
|
|
554277
554393
|
type: "message",
|
|
@@ -555089,7 +555205,7 @@ var init_useDirectConnect = __esm(() => {
|
|
|
555089
555205
|
});
|
|
555090
555206
|
|
|
555091
555207
|
// src/hooks/useSSHSession.ts
|
|
555092
|
-
import { randomUUID as
|
|
555208
|
+
import { randomUUID as randomUUID46 } from "crypto";
|
|
555093
555209
|
function useSSHSession({
|
|
555094
555210
|
session: session2,
|
|
555095
555211
|
setMessages,
|
|
@@ -555187,7 +555303,7 @@ function useSSHSession({
|
|
|
555187
555303
|
subtype: "informational",
|
|
555188
555304
|
content: `SSH connection dropped — reconnecting (attempt ${attempt}/${max2})...`,
|
|
555189
555305
|
timestamp: new Date().toISOString(),
|
|
555190
|
-
uuid:
|
|
555306
|
+
uuid: randomUUID46(),
|
|
555191
555307
|
level: "warning"
|
|
555192
555308
|
};
|
|
555193
555309
|
setMessages((prev) => [...prev, msg]);
|
|
@@ -556143,10 +556259,10 @@ async function autoUpdateCliInBackground() {
|
|
|
556143
556259
|
return;
|
|
556144
556260
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
556145
556261
|
const latest = await getLatestVersion(channel2);
|
|
556146
|
-
if (!latest || gte("0.14.
|
|
556262
|
+
if (!latest || gte("0.14.5", latest))
|
|
556147
556263
|
return;
|
|
556148
556264
|
writeToStdout(`
|
|
556149
|
-
Nova versão disponível: ${latest} (atual: ${"0.14.
|
|
556265
|
+
Nova versão disponível: ${latest} (atual: ${"0.14.5"})
|
|
556150
556266
|
`);
|
|
556151
556267
|
writeToStdout(`Atualizando automaticamente...
|
|
556152
556268
|
`);
|
|
@@ -557391,7 +557507,7 @@ var init_PermissionContext = __esm(() => {
|
|
|
557391
557507
|
});
|
|
557392
557508
|
|
|
557393
557509
|
// src/hooks/toolPermission/handlers/interactiveHandler.ts
|
|
557394
|
-
import { randomUUID as
|
|
557510
|
+
import { randomUUID as randomUUID47 } from "crypto";
|
|
557395
557511
|
function handleInteractivePermission(params, resolve45) {
|
|
557396
557512
|
const {
|
|
557397
557513
|
ctx,
|
|
@@ -557405,7 +557521,7 @@ function handleInteractivePermission(params, resolve45) {
|
|
|
557405
557521
|
let userInteracted = false;
|
|
557406
557522
|
let checkmarkTransitionTimer;
|
|
557407
557523
|
let checkmarkAbortHandler;
|
|
557408
|
-
const bridgeRequestId = bridgeCallbacks ?
|
|
557524
|
+
const bridgeRequestId = bridgeCallbacks ? randomUUID47() : undefined;
|
|
557409
557525
|
let channelUnsubscribe;
|
|
557410
557526
|
const permissionPromptStartTimeMs = Date.now();
|
|
557411
557527
|
const displayInput = result.updatedInput ?? ctx.input;
|
|
@@ -559168,7 +559284,7 @@ var init_sessionRestore = __esm(() => {
|
|
|
559168
559284
|
});
|
|
559169
559285
|
|
|
559170
559286
|
// src/hooks/useInboxPoller.ts
|
|
559171
|
-
import { randomUUID as
|
|
559287
|
+
import { randomUUID as randomUUID48 } from "crypto";
|
|
559172
559288
|
function getAgentNameToPoll(appState) {
|
|
559173
559289
|
if (isInProcessTeammate()) {
|
|
559174
559290
|
return;
|
|
@@ -559585,7 +559701,7 @@ function useInboxPoller({
|
|
|
559585
559701
|
messages: [
|
|
559586
559702
|
...prev.inbox.messages,
|
|
559587
559703
|
{
|
|
559588
|
-
id:
|
|
559704
|
+
id: randomUUID48(),
|
|
559589
559705
|
from: "system",
|
|
559590
559706
|
text: jsonStringify({
|
|
559591
559707
|
type: "teammate_terminated",
|
|
@@ -559625,7 +559741,7 @@ ${messageContent}
|
|
|
559625
559741
|
messages: [
|
|
559626
559742
|
...prev.inbox.messages,
|
|
559627
559743
|
...regularMessages.map((m) => ({
|
|
559628
|
-
id:
|
|
559744
|
+
id: randomUUID48(),
|
|
559629
559745
|
from: m.from,
|
|
559630
559746
|
text: m.text,
|
|
559631
559747
|
timestamp: m.timestamp,
|
|
@@ -560464,7 +560580,7 @@ async function submitTranscriptShare() {
|
|
|
560464
560580
|
}
|
|
560465
560581
|
|
|
560466
560582
|
// src/components/FeedbackSurvey/useSurveyState.tsx
|
|
560467
|
-
import { randomUUID as
|
|
560583
|
+
import { randomUUID as randomUUID49 } from "crypto";
|
|
560468
560584
|
function useSurveyState({
|
|
560469
560585
|
hideThanksAfterMs,
|
|
560470
560586
|
onOpen,
|
|
@@ -560475,7 +560591,7 @@ function useSurveyState({
|
|
|
560475
560591
|
}) {
|
|
560476
560592
|
const [state3, setState] = import_react291.useState("closed");
|
|
560477
560593
|
const [lastResponse, setLastResponse] = import_react291.useState(null);
|
|
560478
|
-
const appearanceId = import_react291.useRef(
|
|
560594
|
+
const appearanceId = import_react291.useRef(randomUUID49());
|
|
560479
560595
|
const lastResponseRef = import_react291.useRef(null);
|
|
560480
560596
|
const showThanksThenClose = import_react291.useCallback(() => {
|
|
560481
560597
|
setState("thanks");
|
|
@@ -560493,7 +560609,7 @@ function useSurveyState({
|
|
|
560493
560609
|
return;
|
|
560494
560610
|
}
|
|
560495
560611
|
setState("open");
|
|
560496
|
-
appearanceId.current =
|
|
560612
|
+
appearanceId.current = randomUUID49();
|
|
560497
560613
|
onOpen(appearanceId.current);
|
|
560498
560614
|
}, [state3, onOpen]);
|
|
560499
560615
|
const handleSelect = import_react291.useCallback((selected) => {
|
|
@@ -563097,7 +563213,7 @@ var init_ndjsonSafeStringify = __esm(() => {
|
|
|
563097
563213
|
});
|
|
563098
563214
|
|
|
563099
563215
|
// src/cli/structuredIO.ts
|
|
563100
|
-
import { randomUUID as
|
|
563216
|
+
import { randomUUID as randomUUID50 } from "crypto";
|
|
563101
563217
|
function serializeDecisionReason(reason) {
|
|
563102
563218
|
if (!reason) {
|
|
563103
563219
|
return;
|
|
@@ -563347,7 +563463,7 @@ class StructuredIO {
|
|
|
563347
563463
|
writeToStdout(ndjsonSafeStringify(message) + `
|
|
563348
563464
|
`);
|
|
563349
563465
|
}
|
|
563350
|
-
async sendRequest(request, schema, signal, requestId =
|
|
563466
|
+
async sendRequest(request, schema, signal, requestId = randomUUID50()) {
|
|
563351
563467
|
const message = {
|
|
563352
563468
|
type: "control_request",
|
|
563353
563469
|
request_id: requestId,
|
|
@@ -563413,7 +563529,7 @@ class StructuredIO {
|
|
|
563413
563529
|
parentSignal.addEventListener("abort", onParentAbort, { once: true });
|
|
563414
563530
|
try {
|
|
563415
563531
|
const hookPromise = executePermissionRequestHooksForSDK(tool2.name, toolUseID, input, toolUseContext, mainPermissionResult.suggestions).then((decision) => ({ source: "hook", decision }));
|
|
563416
|
-
const requestId =
|
|
563532
|
+
const requestId = randomUUID50();
|
|
563417
563533
|
onPermissionPrompt?.(buildRequiresActionDetails(tool2, input, toolUseID, requestId));
|
|
563418
563534
|
const sdkPromise = this.sendRequest({
|
|
563419
563535
|
subtype: "can_use_tool",
|
|
@@ -563493,7 +563609,7 @@ class StructuredIO {
|
|
|
563493
563609
|
subtype: "can_use_tool",
|
|
563494
563610
|
tool_name: SANDBOX_NETWORK_ACCESS_TOOL_NAME,
|
|
563495
563611
|
input: { host: hostPattern.host },
|
|
563496
|
-
tool_use_id:
|
|
563612
|
+
tool_use_id: randomUUID50(),
|
|
563497
563613
|
description: `Allow network connection to ${hostPattern.host}?`
|
|
563498
563614
|
}, outputSchema35());
|
|
563499
563615
|
return result.behavior === "allow";
|
|
@@ -568852,7 +568968,7 @@ __export(exports_REPL, {
|
|
|
568852
568968
|
import { dirname as dirname65, join as join157 } from "path";
|
|
568853
568969
|
import { tmpdir as tmpdir10 } from "os";
|
|
568854
568970
|
import { writeFile as writeFile52 } from "fs/promises";
|
|
568855
|
-
import { randomUUID as
|
|
568971
|
+
import { randomUUID as randomUUID51 } from "crypto";
|
|
568856
568972
|
function TranscriptModeFooter(t0) {
|
|
568857
568973
|
const $2 = import_react_compiler_runtime353.c(9);
|
|
568858
568974
|
const {
|
|
@@ -569662,7 +569778,7 @@ function REPL({
|
|
|
569662
569778
|
const [isMessageSelectorVisible, setIsMessageSelectorVisible] = import_react320.useState(false);
|
|
569663
569779
|
const [messageSelectorPreselect, setMessageSelectorPreselect] = import_react320.useState(undefined);
|
|
569664
569780
|
const [showCostDialog, setShowCostDialog] = import_react320.useState(false);
|
|
569665
|
-
const [conversationId, setConversationId] = import_react320.useState(
|
|
569781
|
+
const [conversationId, setConversationId] = import_react320.useState(randomUUID51());
|
|
569666
569782
|
const [idleReturnPending, setIdleReturnPending] = import_react320.useState(null);
|
|
569667
569783
|
const skipIdleCheckRef = import_react320.useRef(false);
|
|
569668
569784
|
const lastQueryCompletionTimeRef = import_react320.useRef(lastQueryCompletionTime);
|
|
@@ -570428,7 +570544,7 @@ Error: sandbox required but unavailable: ${reason}
|
|
|
570428
570544
|
} else {
|
|
570429
570545
|
setMessages(() => [newMessage]);
|
|
570430
570546
|
}
|
|
570431
|
-
setConversationId(
|
|
570547
|
+
setConversationId(randomUUID51());
|
|
570432
570548
|
if (false) {}
|
|
570433
570549
|
} else if (newMessage.type === "progress" && isEphemeralToolProgress(newMessage.data.type)) {
|
|
570434
570550
|
setMessages((oldMessages) => {
|
|
@@ -570504,7 +570620,7 @@ Error: sandbox required but unavailable: ${reason}
|
|
|
570504
570620
|
});
|
|
570505
570621
|
if (!shouldQuery) {
|
|
570506
570622
|
if (newMessages.some(isCompactBoundaryMessage)) {
|
|
570507
|
-
setConversationId(
|
|
570623
|
+
setConversationId(randomUUID51());
|
|
570508
570624
|
if (false) {}
|
|
570509
570625
|
}
|
|
570510
570626
|
resetLoadingState();
|
|
@@ -571152,7 +571268,7 @@ Error: sandbox required but unavailable: ${reason}
|
|
|
571152
571268
|
rewindToMessageIndex: messageIndex
|
|
571153
571269
|
});
|
|
571154
571270
|
setMessages(prev.slice(0, messageIndex));
|
|
571155
|
-
setConversationId(
|
|
571271
|
+
setConversationId(randomUUID51());
|
|
571156
571272
|
resetMicrocompactState();
|
|
571157
571273
|
if (false) {}
|
|
571158
571274
|
setAppState((prev2) => ({
|
|
@@ -572336,7 +572452,7 @@ Note: ctrl + z now suspends Verboo Code, ctrl + _ undoes input.
|
|
|
572336
572452
|
setMessages(postCompact);
|
|
572337
572453
|
}
|
|
572338
572454
|
if (false) {}
|
|
572339
|
-
setConversationId(
|
|
572455
|
+
setConversationId(randomUUID51());
|
|
572340
572456
|
runPostCompactCleanup(context2.options.querySource);
|
|
572341
572457
|
if (direction === "from") {
|
|
572342
572458
|
const r = textForResubmit(message);
|
|
@@ -573840,7 +573956,7 @@ function WelcomeV2() {
|
|
|
573840
573956
|
dimColor: true,
|
|
573841
573957
|
children: [
|
|
573842
573958
|
"v",
|
|
573843
|
-
"0.14.
|
|
573959
|
+
"0.14.5",
|
|
573844
573960
|
" "
|
|
573845
573961
|
]
|
|
573846
573962
|
})
|
|
@@ -574027,7 +574143,7 @@ function WelcomeV2() {
|
|
|
574027
574143
|
dimColor: true,
|
|
574028
574144
|
children: [
|
|
574029
574145
|
"v",
|
|
574030
|
-
"0.14.
|
|
574146
|
+
"0.14.5",
|
|
574031
574147
|
" "
|
|
574032
574148
|
]
|
|
574033
574149
|
})
|
|
@@ -574243,7 +574359,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
574243
574359
|
dimColor: true,
|
|
574244
574360
|
children: [
|
|
574245
574361
|
"v",
|
|
574246
|
-
"0.14.
|
|
574362
|
+
"0.14.5",
|
|
574247
574363
|
" "
|
|
574248
574364
|
]
|
|
574249
574365
|
});
|
|
@@ -574452,7 +574568,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
574452
574568
|
dimColor: true,
|
|
574453
574569
|
children: [
|
|
574454
574570
|
"v",
|
|
574455
|
-
"0.14.
|
|
574571
|
+
"0.14.5",
|
|
574456
574572
|
" "
|
|
574457
574573
|
]
|
|
574458
574574
|
});
|
|
@@ -582947,7 +583063,7 @@ function coalescePatches(base2, overlay) {
|
|
|
582947
583063
|
var init_WorkerStateUploader = () => {};
|
|
582948
583064
|
|
|
582949
583065
|
// src/cli/transports/ccrClient.ts
|
|
582950
|
-
import { randomUUID as
|
|
583066
|
+
import { randomUUID as randomUUID52 } from "crypto";
|
|
582951
583067
|
function alwaysValidStatus() {
|
|
582952
583068
|
return true;
|
|
582953
583069
|
}
|
|
@@ -583306,7 +583422,7 @@ class CCRClient {
|
|
|
583306
583422
|
return {
|
|
583307
583423
|
payload: {
|
|
583308
583424
|
...msg,
|
|
583309
|
-
uuid: typeof msg.uuid === "string" ? msg.uuid :
|
|
583425
|
+
uuid: typeof msg.uuid === "string" ? msg.uuid : randomUUID52()
|
|
583310
583426
|
}
|
|
583311
583427
|
};
|
|
583312
583428
|
}
|
|
@@ -583330,7 +583446,7 @@ class CCRClient {
|
|
|
583330
583446
|
payload: {
|
|
583331
583447
|
type: eventType,
|
|
583332
583448
|
...payload,
|
|
583333
|
-
uuid: typeof payload.uuid === "string" ? payload.uuid :
|
|
583449
|
+
uuid: typeof payload.uuid === "string" ? payload.uuid : randomUUID52()
|
|
583334
583450
|
},
|
|
583335
583451
|
...isCompaction && { is_compaction: true },
|
|
583336
583452
|
...agentId && { agent_id: agentId }
|
|
@@ -584799,7 +584915,7 @@ var init_idleTimeout = __esm(() => {
|
|
|
584799
584915
|
});
|
|
584800
584916
|
|
|
584801
584917
|
// src/bridge/inboundAttachments.ts
|
|
584802
|
-
import { randomUUID as
|
|
584918
|
+
import { randomUUID as randomUUID53 } from "crypto";
|
|
584803
584919
|
import { mkdir as mkdir49, writeFile as writeFile54 } from "fs/promises";
|
|
584804
584920
|
import { basename as basename63, join as join161 } from "path";
|
|
584805
584921
|
function debug(msg) {
|
|
@@ -584844,7 +584960,7 @@ async function resolveOne(att) {
|
|
|
584844
584960
|
return;
|
|
584845
584961
|
}
|
|
584846
584962
|
const safeName = sanitizeFileName(att.file_name);
|
|
584847
|
-
const prefix = (att.file_uuid.slice(0, 8) ||
|
|
584963
|
+
const prefix = (att.file_uuid.slice(0, 8) || randomUUID53().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
584848
584964
|
const dir = uploadsDir();
|
|
584849
584965
|
const outPath = join161(dir, `${prefix}-${safeName}`);
|
|
584850
584966
|
try {
|
|
@@ -584908,11 +585024,11 @@ var init_inboundAttachments = __esm(() => {
|
|
|
584908
585024
|
});
|
|
584909
585025
|
|
|
584910
585026
|
// src/utils/sessionUrl.ts
|
|
584911
|
-
import { randomUUID as
|
|
585027
|
+
import { randomUUID as randomUUID54 } from "crypto";
|
|
584912
585028
|
function parseSessionIdentifier(resumeIdentifier) {
|
|
584913
585029
|
if (resumeIdentifier.toLowerCase().endsWith(".jsonl")) {
|
|
584914
585030
|
return {
|
|
584915
|
-
sessionId:
|
|
585031
|
+
sessionId: randomUUID54(),
|
|
584916
585032
|
ingressUrl: null,
|
|
584917
585033
|
isUrl: false,
|
|
584918
585034
|
jsonlFile: resumeIdentifier,
|
|
@@ -584931,7 +585047,7 @@ function parseSessionIdentifier(resumeIdentifier) {
|
|
|
584931
585047
|
try {
|
|
584932
585048
|
const url3 = new URL(resumeIdentifier);
|
|
584933
585049
|
return {
|
|
584934
|
-
sessionId:
|
|
585050
|
+
sessionId: randomUUID54(),
|
|
584935
585051
|
ingressUrl: url3.href,
|
|
584936
585052
|
isUrl: true,
|
|
584937
585053
|
jsonlFile: null,
|
|
@@ -585541,7 +585657,7 @@ var init_bridgePointer = __esm(() => {
|
|
|
585541
585657
|
});
|
|
585542
585658
|
|
|
585543
585659
|
// src/bridge/replBridge.ts
|
|
585544
|
-
import { randomUUID as
|
|
585660
|
+
import { randomUUID as randomUUID55 } from "crypto";
|
|
585545
585661
|
async function initBridgeCore(params) {
|
|
585546
585662
|
const {
|
|
585547
585663
|
dir,
|
|
@@ -585598,9 +585714,9 @@ async function initBridgeCore(params) {
|
|
|
585598
585714
|
spawnMode: "single-session",
|
|
585599
585715
|
verbose: false,
|
|
585600
585716
|
sandbox: false,
|
|
585601
|
-
bridgeId:
|
|
585717
|
+
bridgeId: randomUUID55(),
|
|
585602
585718
|
workerType,
|
|
585603
|
-
environmentId:
|
|
585719
|
+
environmentId: randomUUID55(),
|
|
585604
585720
|
reuseEnvironmentId: prior?.environmentId,
|
|
585605
585721
|
apiBaseUrl: baseUrl,
|
|
585606
585722
|
sessionIngressUrl
|
|
@@ -587468,7 +587584,7 @@ __export(exports_print, {
|
|
|
587468
587584
|
import { readFile as readFile57, stat as stat58 } from "fs/promises";
|
|
587469
587585
|
import { dirname as dirname69 } from "path";
|
|
587470
587586
|
import { cwd as cwd3 } from "process";
|
|
587471
|
-
import { randomUUID as
|
|
587587
|
+
import { randomUUID as randomUUID56 } from "crypto";
|
|
587472
587588
|
function trackReceivedMessageUuid(uuid3) {
|
|
587473
587589
|
if (receivedMessageUuids.has(uuid3)) {
|
|
587474
587590
|
return false;
|
|
@@ -587588,7 +587704,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
|
|
|
587588
587704
|
hook_id: event.hookId,
|
|
587589
587705
|
hook_name: event.hookName,
|
|
587590
587706
|
hook_event: event.hookEvent,
|
|
587591
|
-
uuid:
|
|
587707
|
+
uuid: randomUUID56(),
|
|
587592
587708
|
session_id: getSessionId()
|
|
587593
587709
|
};
|
|
587594
587710
|
case "progress":
|
|
@@ -587601,7 +587717,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
|
|
|
587601
587717
|
stdout: event.stdout,
|
|
587602
587718
|
stderr: event.stderr,
|
|
587603
587719
|
output: event.output,
|
|
587604
|
-
uuid:
|
|
587720
|
+
uuid: randomUUID56(),
|
|
587605
587721
|
session_id: getSessionId()
|
|
587606
587722
|
};
|
|
587607
587723
|
case "response":
|
|
@@ -587616,7 +587732,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
|
|
|
587616
587732
|
stderr: event.stderr,
|
|
587617
587733
|
exit_code: event.exitCode,
|
|
587618
587734
|
outcome: event.outcome,
|
|
587619
|
-
uuid:
|
|
587735
|
+
uuid: randomUUID56(),
|
|
587620
587736
|
session_id: getSessionId()
|
|
587621
587737
|
};
|
|
587622
587738
|
}
|
|
@@ -587815,7 +587931,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
587815
587931
|
subtype: "status",
|
|
587816
587932
|
status: null,
|
|
587817
587933
|
permissionMode: newMode,
|
|
587818
|
-
uuid:
|
|
587934
|
+
uuid: randomUUID56(),
|
|
587819
587935
|
session_id: getSessionId()
|
|
587820
587936
|
});
|
|
587821
587937
|
}
|
|
@@ -587836,7 +587952,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
587836
587952
|
isAuthenticating: status2.isAuthenticating,
|
|
587837
587953
|
output: status2.output,
|
|
587838
587954
|
error: status2.error,
|
|
587839
|
-
uuid:
|
|
587955
|
+
uuid: randomUUID56(),
|
|
587840
587956
|
session_id: getSessionId()
|
|
587841
587957
|
});
|
|
587842
587958
|
});
|
|
@@ -587847,7 +587963,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
587847
587963
|
output.enqueue({
|
|
587848
587964
|
type: "rate_limit_event",
|
|
587849
587965
|
rate_limit_info: rateLimitInfo,
|
|
587850
|
-
uuid:
|
|
587966
|
+
uuid: randomUUID56(),
|
|
587851
587967
|
session_id: getSessionId()
|
|
587852
587968
|
});
|
|
587853
587969
|
}
|
|
@@ -587863,7 +587979,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
587863
587979
|
enqueue({
|
|
587864
587980
|
mode: "prompt",
|
|
587865
587981
|
value: turnInterruptionState.message.message.content,
|
|
587866
|
-
uuid:
|
|
587982
|
+
uuid: randomUUID56()
|
|
587867
587983
|
});
|
|
587868
587984
|
}
|
|
587869
587985
|
const modelOptions = getModelOptions();
|
|
@@ -587956,7 +588072,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
587956
588072
|
subtype: "elicitation_complete",
|
|
587957
588073
|
mcp_server_name: serverName,
|
|
587958
588074
|
elicitation_id: elicitationId,
|
|
587959
|
-
uuid:
|
|
588075
|
+
uuid: randomUUID56(),
|
|
587960
588076
|
session_id: getSessionId()
|
|
587961
588077
|
});
|
|
587962
588078
|
});
|
|
@@ -588301,7 +588417,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
588301
588417
|
duration_ms: durationMsMatch ? parseInt(durationMsMatch[1], 10) : 0
|
|
588302
588418
|
} : undefined,
|
|
588303
588419
|
session_id: getSessionId(),
|
|
588304
|
-
uuid:
|
|
588420
|
+
uuid: randomUUID56()
|
|
588305
588421
|
});
|
|
588306
588422
|
}
|
|
588307
588423
|
}
|
|
@@ -588375,7 +588491,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
588375
588491
|
subtype: "status",
|
|
588376
588492
|
status: status2,
|
|
588377
588493
|
session_id: getSessionId(),
|
|
588378
|
-
uuid:
|
|
588494
|
+
uuid: randomUUID56()
|
|
588379
588495
|
});
|
|
588380
588496
|
}
|
|
588381
588497
|
})) {
|
|
@@ -588423,7 +588539,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
588423
588539
|
const suggestionMsg = {
|
|
588424
588540
|
type: "prompt_suggestion",
|
|
588425
588541
|
suggestion: result.suggestion,
|
|
588426
|
-
uuid:
|
|
588542
|
+
uuid: randomUUID56(),
|
|
588427
588543
|
session_id: getSessionId()
|
|
588428
588544
|
};
|
|
588429
588545
|
const lastEmittedEntry = {
|
|
@@ -588513,7 +588629,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
588513
588629
|
usage: EMPTY_USAGE,
|
|
588514
588630
|
modelUsage: {},
|
|
588515
588631
|
permission_denials: [],
|
|
588516
|
-
uuid:
|
|
588632
|
+
uuid: randomUUID56(),
|
|
588517
588633
|
errors: [
|
|
588518
588634
|
errorMessage(error42),
|
|
588519
588635
|
...getInMemoryErrors().map((_) => _.error)
|
|
@@ -588597,7 +588713,7 @@ ${m.text}
|
|
|
588597
588713
|
enqueue({
|
|
588598
588714
|
mode: "prompt",
|
|
588599
588715
|
value: formatted,
|
|
588600
|
-
uuid:
|
|
588716
|
+
uuid: randomUUID56()
|
|
588601
588717
|
});
|
|
588602
588718
|
run();
|
|
588603
588719
|
return;
|
|
@@ -588608,7 +588724,7 @@ ${m.text}
|
|
|
588608
588724
|
enqueue({
|
|
588609
588725
|
mode: "prompt",
|
|
588610
588726
|
value: SHUTDOWN_TEAM_PROMPT,
|
|
588611
|
-
uuid:
|
|
588727
|
+
uuid: randomUUID56()
|
|
588612
588728
|
});
|
|
588613
588729
|
run();
|
|
588614
588730
|
return;
|
|
@@ -588632,7 +588748,7 @@ ${m.text}
|
|
|
588632
588748
|
enqueue({
|
|
588633
588749
|
mode: "prompt",
|
|
588634
588750
|
value: SHUTDOWN_TEAM_PROMPT,
|
|
588635
|
-
uuid:
|
|
588751
|
+
uuid: randomUUID56()
|
|
588636
588752
|
});
|
|
588637
588753
|
run();
|
|
588638
588754
|
} else {
|
|
@@ -588659,7 +588775,7 @@ ${m.text}
|
|
|
588659
588775
|
enqueue({
|
|
588660
588776
|
mode: "prompt",
|
|
588661
588777
|
value: prompt,
|
|
588662
|
-
uuid:
|
|
588778
|
+
uuid: randomUUID56(),
|
|
588663
588779
|
priority: "later",
|
|
588664
588780
|
isMeta: true,
|
|
588665
588781
|
workload: WORKLOAD_CRON
|
|
@@ -589401,7 +589517,7 @@ ${m.text}
|
|
|
589401
589517
|
subtype: "bridge_state",
|
|
589402
589518
|
state: state3,
|
|
589403
589519
|
detail,
|
|
589404
|
-
uuid:
|
|
589520
|
+
uuid: randomUUID56(),
|
|
589405
589521
|
session_id: getSessionId()
|
|
589406
589522
|
});
|
|
589407
589523
|
},
|
|
@@ -589709,7 +589825,7 @@ async function handleInitializeRequest(request, requestId, initialized5, output,
|
|
|
589709
589825
|
isAuthenticating: status2.isAuthenticating,
|
|
589710
589826
|
output: status2.output,
|
|
589711
589827
|
error: status2.error,
|
|
589712
|
-
uuid:
|
|
589828
|
+
uuid: randomUUID56(),
|
|
589713
589829
|
session_id: getSessionId()
|
|
589714
589830
|
});
|
|
589715
589831
|
}
|
|
@@ -589908,7 +590024,7 @@ function emitLoadError(message, outputFormat) {
|
|
|
589908
590024
|
usage: EMPTY_USAGE,
|
|
589909
590025
|
modelUsage: {},
|
|
589910
590026
|
permission_denials: [],
|
|
589911
|
-
uuid:
|
|
590027
|
+
uuid: randomUUID56(),
|
|
589912
590028
|
errors: [message]
|
|
589913
590029
|
};
|
|
589914
590030
|
process.stdout.write(jsonStringify(errorResult) + `
|
|
@@ -591854,7 +591970,7 @@ __export(exports_update, {
|
|
|
591854
591970
|
});
|
|
591855
591971
|
async function update() {
|
|
591856
591972
|
logEvent("tengu_update_check", {});
|
|
591857
|
-
writeToStdout(`Current version: ${"0.14.
|
|
591973
|
+
writeToStdout(`Current version: ${"0.14.5"}
|
|
591858
591974
|
`);
|
|
591859
591975
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
591860
591976
|
writeToStdout(`Checking for updates to ${channel2} version...
|
|
@@ -591939,8 +592055,8 @@ async function update() {
|
|
|
591939
592055
|
writeToStdout(`Verboo Code is managed by Homebrew.
|
|
591940
592056
|
`);
|
|
591941
592057
|
const latest = await getLatestVersion(channel2);
|
|
591942
|
-
if (latest && !gte("0.14.
|
|
591943
|
-
writeToStdout(`Update available: ${"0.14.
|
|
592058
|
+
if (latest && !gte("0.14.5", latest)) {
|
|
592059
|
+
writeToStdout(`Update available: ${"0.14.5"} → ${latest}
|
|
591944
592060
|
`);
|
|
591945
592061
|
writeToStdout(`
|
|
591946
592062
|
`);
|
|
@@ -591956,8 +592072,8 @@ async function update() {
|
|
|
591956
592072
|
writeToStdout(`Verboo Code is managed by winget.
|
|
591957
592073
|
`);
|
|
591958
592074
|
const latest = await getLatestVersion(channel2);
|
|
591959
|
-
if (latest && !gte("0.14.
|
|
591960
|
-
writeToStdout(`Update available: ${"0.14.
|
|
592075
|
+
if (latest && !gte("0.14.5", latest)) {
|
|
592076
|
+
writeToStdout(`Update available: ${"0.14.5"} → ${latest}
|
|
591961
592077
|
`);
|
|
591962
592078
|
writeToStdout(`
|
|
591963
592079
|
`);
|
|
@@ -591973,8 +592089,8 @@ async function update() {
|
|
|
591973
592089
|
writeToStdout(`Verboo Code is managed by apk.
|
|
591974
592090
|
`);
|
|
591975
592091
|
const latest = await getLatestVersion(channel2);
|
|
591976
|
-
if (latest && !gte("0.14.
|
|
591977
|
-
writeToStdout(`Update available: ${"0.14.
|
|
592092
|
+
if (latest && !gte("0.14.5", latest)) {
|
|
592093
|
+
writeToStdout(`Update available: ${"0.14.5"} → ${latest}
|
|
591978
592094
|
`);
|
|
591979
592095
|
writeToStdout(`
|
|
591980
592096
|
`);
|
|
@@ -592027,11 +592143,11 @@ async function update() {
|
|
|
592027
592143
|
`);
|
|
592028
592144
|
await gracefulShutdown(1);
|
|
592029
592145
|
}
|
|
592030
|
-
if (result.latestVersion === "0.14.
|
|
592031
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.14.
|
|
592146
|
+
if (result.latestVersion === "0.14.5") {
|
|
592147
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.14.5"})`) + `
|
|
592032
592148
|
`);
|
|
592033
592149
|
} else {
|
|
592034
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.14.
|
|
592150
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.14.5"} to version ${result.latestVersion}`) + `
|
|
592035
592151
|
`);
|
|
592036
592152
|
await regenerateCompletionCache();
|
|
592037
592153
|
}
|
|
@@ -592091,12 +592207,12 @@ async function update() {
|
|
|
592091
592207
|
`);
|
|
592092
592208
|
await gracefulShutdown(1);
|
|
592093
592209
|
}
|
|
592094
|
-
if (latestVersion === "0.14.
|
|
592095
|
-
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.14.
|
|
592210
|
+
if (latestVersion === "0.14.5") {
|
|
592211
|
+
writeToStdout(source_default.green(`Verboo Code is up to date (${"0.14.5"})`) + `
|
|
592096
592212
|
`);
|
|
592097
592213
|
await gracefulShutdown(0);
|
|
592098
592214
|
}
|
|
592099
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.14.
|
|
592215
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.14.5"})
|
|
592100
592216
|
`);
|
|
592101
592217
|
writeToStdout(`Installing update...
|
|
592102
592218
|
`);
|
|
@@ -592141,7 +592257,7 @@ async function update() {
|
|
|
592141
592257
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
592142
592258
|
switch (status2) {
|
|
592143
592259
|
case "success":
|
|
592144
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.14.
|
|
592260
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.14.5"} to version ${latestVersion}`) + `
|
|
592145
592261
|
`);
|
|
592146
592262
|
await regenerateCompletionCache();
|
|
592147
592263
|
break;
|
|
@@ -593425,7 +593541,7 @@ ${customInstructions}` : customInstructions;
|
|
|
593425
593541
|
is_native_binary: isInBundledMode()
|
|
593426
593542
|
});
|
|
593427
593543
|
logMemoryDiagnostics("start", {
|
|
593428
|
-
version: "0.14.
|
|
593544
|
+
version: "0.14.5",
|
|
593429
593545
|
debug: debug2,
|
|
593430
593546
|
debugToStderr,
|
|
593431
593547
|
print: print ?? false,
|
|
@@ -594236,7 +594352,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
594236
594352
|
pendingHookMessages
|
|
594237
594353
|
}, renderAndRun);
|
|
594238
594354
|
}
|
|
594239
|
-
}).version(`0.14.
|
|
594355
|
+
}).version(`0.14.5 (${cliDesc})`, "-v, --version", "Output the version number");
|
|
594240
594356
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
594241
594357
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
594242
594358
|
if (canUserConfigureAdvisor()) {
|
|
@@ -594812,7 +594928,7 @@ if (false) {}
|
|
|
594812
594928
|
async function main2() {
|
|
594813
594929
|
const args = process.argv.slice(2);
|
|
594814
594930
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
594815
|
-
console.log(`${"0.14.
|
|
594931
|
+
console.log(`${"0.14.5"} (Verboo Code)`);
|
|
594816
594932
|
return;
|
|
594817
594933
|
}
|
|
594818
594934
|
if (!IS_VERBOO_CLI && args.includes("--provider")) {
|
|
@@ -594986,4 +595102,4 @@ async function main2() {
|
|
|
594986
595102
|
}
|
|
594987
595103
|
main2();
|
|
594988
595104
|
|
|
594989
|
-
//# debugId=
|
|
595105
|
+
//# debugId=292E3C301BA7E2A364756E2164756E21
|