@qwen-code/qwen-code 0.14.0-preview.2 → 0.14.0-preview.3
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/cli.js +279 -248
- package/package.json +2 -2
package/cli.js
CHANGED
|
@@ -3962,11 +3962,11 @@ var require_util2 = __commonJS({
|
|
|
3962
3962
|
var { isUint8Array } = __require("node:util/types");
|
|
3963
3963
|
var { webidl } = require_webidl();
|
|
3964
3964
|
var supportedHashes = [];
|
|
3965
|
-
var
|
|
3965
|
+
var crypto18;
|
|
3966
3966
|
try {
|
|
3967
|
-
|
|
3967
|
+
crypto18 = __require("node:crypto");
|
|
3968
3968
|
const possibleRelevantHashes = ["sha256", "sha384", "sha512"];
|
|
3969
|
-
supportedHashes =
|
|
3969
|
+
supportedHashes = crypto18.getHashes().filter((hash) => possibleRelevantHashes.includes(hash));
|
|
3970
3970
|
} catch {
|
|
3971
3971
|
}
|
|
3972
3972
|
function responseURL(response) {
|
|
@@ -4264,7 +4264,7 @@ var require_util2 = __commonJS({
|
|
|
4264
4264
|
}
|
|
4265
4265
|
__name(isURLPotentiallyTrustworthy, "isURLPotentiallyTrustworthy");
|
|
4266
4266
|
function bytesMatch(bytes, metadataList) {
|
|
4267
|
-
if (
|
|
4267
|
+
if (crypto18 === void 0) {
|
|
4268
4268
|
return true;
|
|
4269
4269
|
}
|
|
4270
4270
|
const parsedMetadata = parseMetadata(metadataList);
|
|
@@ -4279,7 +4279,7 @@ var require_util2 = __commonJS({
|
|
|
4279
4279
|
for (const item of metadata2) {
|
|
4280
4280
|
const algorithm = item.algo;
|
|
4281
4281
|
const expectedValue = item.hash;
|
|
4282
|
-
let actualValue =
|
|
4282
|
+
let actualValue = crypto18.createHash(algorithm).update(bytes).digest("base64");
|
|
4283
4283
|
if (actualValue[actualValue.length - 1] === "=") {
|
|
4284
4284
|
if (actualValue[actualValue.length - 2] === "=") {
|
|
4285
4285
|
actualValue = actualValue.slice(0, -2);
|
|
@@ -5405,8 +5405,8 @@ var require_body = __commonJS({
|
|
|
5405
5405
|
var { multipartFormDataParser } = require_formdata_parser();
|
|
5406
5406
|
var random2;
|
|
5407
5407
|
try {
|
|
5408
|
-
const
|
|
5409
|
-
random2 = /* @__PURE__ */ __name((max) =>
|
|
5408
|
+
const crypto18 = __require("node:crypto");
|
|
5409
|
+
random2 = /* @__PURE__ */ __name((max) => crypto18.randomInt(0, max), "random");
|
|
5410
5410
|
} catch {
|
|
5411
5411
|
random2 = /* @__PURE__ */ __name((max) => Math.floor(Math.random(max)), "random");
|
|
5412
5412
|
}
|
|
@@ -17197,13 +17197,13 @@ var require_frame = __commonJS({
|
|
|
17197
17197
|
init_esbuild_shims();
|
|
17198
17198
|
var { maxUnsigned16Bit } = require_constants5();
|
|
17199
17199
|
var BUFFER_SIZE = 16386;
|
|
17200
|
-
var
|
|
17200
|
+
var crypto18;
|
|
17201
17201
|
var buffer = null;
|
|
17202
17202
|
var bufIdx = BUFFER_SIZE;
|
|
17203
17203
|
try {
|
|
17204
|
-
|
|
17204
|
+
crypto18 = __require("node:crypto");
|
|
17205
17205
|
} catch {
|
|
17206
|
-
|
|
17206
|
+
crypto18 = {
|
|
17207
17207
|
// not full compatibility, but minimum.
|
|
17208
17208
|
randomFillSync: /* @__PURE__ */ __name(function randomFillSync(buffer2, _offset, _size3) {
|
|
17209
17209
|
for (let i4 = 0; i4 < buffer2.length; ++i4) {
|
|
@@ -17216,7 +17216,7 @@ var require_frame = __commonJS({
|
|
|
17216
17216
|
function generateMask() {
|
|
17217
17217
|
if (bufIdx === BUFFER_SIZE) {
|
|
17218
17218
|
bufIdx = 0;
|
|
17219
|
-
|
|
17219
|
+
crypto18.randomFillSync(buffer ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE);
|
|
17220
17220
|
}
|
|
17221
17221
|
return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]];
|
|
17222
17222
|
}
|
|
@@ -17293,9 +17293,9 @@ var require_connection = __commonJS({
|
|
|
17293
17293
|
var { Headers: Headers6, getHeadersList } = require_headers();
|
|
17294
17294
|
var { getDecodeSplit } = require_util2();
|
|
17295
17295
|
var { WebsocketFrameSend } = require_frame();
|
|
17296
|
-
var
|
|
17296
|
+
var crypto18;
|
|
17297
17297
|
try {
|
|
17298
|
-
|
|
17298
|
+
crypto18 = __require("node:crypto");
|
|
17299
17299
|
} catch {
|
|
17300
17300
|
}
|
|
17301
17301
|
function establishWebSocketConnection(url3, protocols, client, ws2, onEstablish, options2) {
|
|
@@ -17315,7 +17315,7 @@ var require_connection = __commonJS({
|
|
|
17315
17315
|
const headersList = getHeadersList(new Headers6(options2.headers));
|
|
17316
17316
|
request4.headersList = headersList;
|
|
17317
17317
|
}
|
|
17318
|
-
const keyValue =
|
|
17318
|
+
const keyValue = crypto18.randomBytes(16).toString("base64");
|
|
17319
17319
|
request4.headersList.append("sec-websocket-key", keyValue);
|
|
17320
17320
|
request4.headersList.append("sec-websocket-version", "13");
|
|
17321
17321
|
for (const protocol of protocols) {
|
|
@@ -17345,7 +17345,7 @@ var require_connection = __commonJS({
|
|
|
17345
17345
|
return;
|
|
17346
17346
|
}
|
|
17347
17347
|
const secWSAccept = response.headersList.get("Sec-WebSocket-Accept");
|
|
17348
|
-
const digest =
|
|
17348
|
+
const digest = crypto18.createHash("sha1").update(keyValue + uid).digest("base64");
|
|
17349
17349
|
if (secWSAccept !== digest) {
|
|
17350
17350
|
failWebsocketConnection(ws2, "Incorrect hash received in Sec-WebSocket-Accept header.");
|
|
17351
17351
|
return;
|
|
@@ -43802,7 +43802,7 @@ var require_gaxios = __commonJS({
|
|
|
43802
43802
|
var retry_js_1 = require_retry2();
|
|
43803
43803
|
var stream_1 = __require("stream");
|
|
43804
43804
|
var interceptor_js_1 = require_interceptor();
|
|
43805
|
-
var
|
|
43805
|
+
var randomUUID15 = /* @__PURE__ */ __name(async () => globalThis.crypto?.randomUUID() || (await import("crypto")).randomUUID(), "randomUUID");
|
|
43806
43806
|
var HTTP_STATUS_NO_CONTENT = 204;
|
|
43807
43807
|
var Gaxios = class {
|
|
43808
43808
|
static {
|
|
@@ -44078,7 +44078,7 @@ var require_gaxios = __commonJS({
|
|
|
44078
44078
|
*/
|
|
44079
44079
|
["Blob", "File", "FormData"].includes(opts.data?.constructor?.name || "");
|
|
44080
44080
|
if (opts.multipart?.length) {
|
|
44081
|
-
const boundary = await
|
|
44081
|
+
const boundary = await randomUUID15();
|
|
44082
44082
|
preparedHeaders.set("content-type", `multipart/related; boundary=${boundary}`);
|
|
44083
44083
|
opts.body = stream_1.Readable.from(this.getMultipartRequest(opts.multipart, boundary));
|
|
44084
44084
|
} else if (shouldDirectlyPassData) {
|
|
@@ -47055,25 +47055,25 @@ var require_crypto2 = __commonJS({
|
|
|
47055
47055
|
init_esbuild_shims();
|
|
47056
47056
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
47057
47057
|
exports2.NodeCrypto = void 0;
|
|
47058
|
-
var
|
|
47058
|
+
var crypto18 = __require("crypto");
|
|
47059
47059
|
var NodeCrypto = class {
|
|
47060
47060
|
static {
|
|
47061
47061
|
__name(this, "NodeCrypto");
|
|
47062
47062
|
}
|
|
47063
47063
|
async sha256DigestBase64(str2) {
|
|
47064
|
-
return
|
|
47064
|
+
return crypto18.createHash("sha256").update(str2).digest("base64");
|
|
47065
47065
|
}
|
|
47066
47066
|
randomBytesBase64(count) {
|
|
47067
|
-
return
|
|
47067
|
+
return crypto18.randomBytes(count).toString("base64");
|
|
47068
47068
|
}
|
|
47069
47069
|
async verify(pubkey, data, signature) {
|
|
47070
|
-
const verifier =
|
|
47070
|
+
const verifier = crypto18.createVerify("RSA-SHA256");
|
|
47071
47071
|
verifier.update(data);
|
|
47072
47072
|
verifier.end();
|
|
47073
47073
|
return verifier.verify(pubkey, signature, "base64");
|
|
47074
47074
|
}
|
|
47075
47075
|
async sign(privateKey, data) {
|
|
47076
|
-
const signer =
|
|
47076
|
+
const signer = crypto18.createSign("RSA-SHA256");
|
|
47077
47077
|
signer.update(data);
|
|
47078
47078
|
signer.end();
|
|
47079
47079
|
return signer.sign(privateKey, "base64");
|
|
@@ -47091,7 +47091,7 @@ var require_crypto2 = __commonJS({
|
|
|
47091
47091
|
* string in hexadecimal encoding.
|
|
47092
47092
|
*/
|
|
47093
47093
|
async sha256DigestHex(str2) {
|
|
47094
|
-
return
|
|
47094
|
+
return crypto18.createHash("sha256").update(str2).digest("hex");
|
|
47095
47095
|
}
|
|
47096
47096
|
/**
|
|
47097
47097
|
* Computes the HMAC hash of a message using the provided crypto key and the
|
|
@@ -47103,7 +47103,7 @@ var require_crypto2 = __commonJS({
|
|
|
47103
47103
|
*/
|
|
47104
47104
|
async signWithHmacSha256(key, msg) {
|
|
47105
47105
|
const cryptoKey = typeof key === "string" ? key : toBuffer(key);
|
|
47106
|
-
return toArrayBuffer(
|
|
47106
|
+
return toArrayBuffer(crypto18.createHmac("sha256", cryptoKey).update(msg).digest());
|
|
47107
47107
|
}
|
|
47108
47108
|
};
|
|
47109
47109
|
exports2.NodeCrypto = NodeCrypto;
|
|
@@ -48050,10 +48050,10 @@ var require_oauth2client = __commonJS({
|
|
|
48050
48050
|
* https://github.com/googleapis/google-auth-library-nodejs/blob/main/samples/oauth2-codeVerifier.js
|
|
48051
48051
|
*/
|
|
48052
48052
|
async generateCodeVerifierAsync() {
|
|
48053
|
-
const
|
|
48054
|
-
const randomString2 =
|
|
48053
|
+
const crypto18 = (0, crypto_1.createCrypto)();
|
|
48054
|
+
const randomString2 = crypto18.randomBytesBase64(96);
|
|
48055
48055
|
const codeVerifier = randomString2.replace(/\+/g, "~").replace(/=/g, "_").replace(/\//g, "-");
|
|
48056
|
-
const unencodedCodeChallenge = await
|
|
48056
|
+
const unencodedCodeChallenge = await crypto18.sha256DigestBase64(codeVerifier);
|
|
48057
48057
|
const codeChallenge = unencodedCodeChallenge.split("=")[0].replace(/\+/g, "-").replace(/\//g, "_");
|
|
48058
48058
|
return { codeVerifier, codeChallenge };
|
|
48059
48059
|
}
|
|
@@ -48494,7 +48494,7 @@ var require_oauth2client = __commonJS({
|
|
|
48494
48494
|
* @return Returns a promise resolving to LoginTicket on verification.
|
|
48495
48495
|
*/
|
|
48496
48496
|
async verifySignedJwtWithCertsAsync(jwt2, certs, requiredAudience, issuers, maxExpiry) {
|
|
48497
|
-
const
|
|
48497
|
+
const crypto18 = (0, crypto_1.createCrypto)();
|
|
48498
48498
|
if (!maxExpiry) {
|
|
48499
48499
|
maxExpiry = _OAuth2Client.DEFAULT_MAX_TOKEN_LIFETIME_SECS_;
|
|
48500
48500
|
}
|
|
@@ -48507,7 +48507,7 @@ var require_oauth2client = __commonJS({
|
|
|
48507
48507
|
let envelope;
|
|
48508
48508
|
let payload;
|
|
48509
48509
|
try {
|
|
48510
|
-
envelope = JSON.parse(
|
|
48510
|
+
envelope = JSON.parse(crypto18.decodeBase64StringUtf8(segments[0]));
|
|
48511
48511
|
} catch (err2) {
|
|
48512
48512
|
if (err2 instanceof Error) {
|
|
48513
48513
|
err2.message = `Can't parse token envelope: ${segments[0]}': ${err2.message}`;
|
|
@@ -48518,7 +48518,7 @@ var require_oauth2client = __commonJS({
|
|
|
48518
48518
|
throw new Error("Can't parse token envelope: " + segments[0]);
|
|
48519
48519
|
}
|
|
48520
48520
|
try {
|
|
48521
|
-
payload = JSON.parse(
|
|
48521
|
+
payload = JSON.parse(crypto18.decodeBase64StringUtf8(segments[1]));
|
|
48522
48522
|
} catch (err2) {
|
|
48523
48523
|
if (err2 instanceof Error) {
|
|
48524
48524
|
err2.message = `Can't parse token payload '${segments[0]}`;
|
|
@@ -48535,7 +48535,7 @@ var require_oauth2client = __commonJS({
|
|
|
48535
48535
|
if (envelope.alg === "ES256") {
|
|
48536
48536
|
signature = formatEcdsa.joseToDer(signature, "ES256").toString("base64");
|
|
48537
48537
|
}
|
|
48538
|
-
const verified = await
|
|
48538
|
+
const verified = await crypto18.verify(cert, signed, signature);
|
|
48539
48539
|
if (!verified) {
|
|
48540
48540
|
throw new Error("Invalid token signature: " + jwt2);
|
|
48541
48541
|
}
|
|
@@ -48933,14 +48933,14 @@ var require_jwa = __commonJS({
|
|
|
48933
48933
|
"node_modules/jwa/index.js"(exports2, module2) {
|
|
48934
48934
|
init_esbuild_shims();
|
|
48935
48935
|
var Buffer9 = require_safe_buffer().Buffer;
|
|
48936
|
-
var
|
|
48936
|
+
var crypto18 = __require("crypto");
|
|
48937
48937
|
var formatEcdsa = require_ecdsa_sig_formatter();
|
|
48938
48938
|
var util5 = __require("util");
|
|
48939
48939
|
var MSG_INVALID_ALGORITHM = '"%s" is not a valid algorithm.\n Supported algorithms are:\n "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".';
|
|
48940
48940
|
var MSG_INVALID_SECRET = "secret must be a string or buffer";
|
|
48941
48941
|
var MSG_INVALID_VERIFIER_KEY = "key must be a string or a buffer";
|
|
48942
48942
|
var MSG_INVALID_SIGNER_KEY = "key must be a string, a buffer or an object";
|
|
48943
|
-
var supportsKeyObjects = typeof
|
|
48943
|
+
var supportsKeyObjects = typeof crypto18.createPublicKey === "function";
|
|
48944
48944
|
if (supportsKeyObjects) {
|
|
48945
48945
|
MSG_INVALID_VERIFIER_KEY += " or a KeyObject";
|
|
48946
48946
|
MSG_INVALID_SECRET += "or a KeyObject";
|
|
@@ -49038,18 +49038,18 @@ var require_jwa = __commonJS({
|
|
|
49038
49038
|
return /* @__PURE__ */ __name(function sign(thing, secret) {
|
|
49039
49039
|
checkIsSecretKey(secret);
|
|
49040
49040
|
thing = normalizeInput(thing);
|
|
49041
|
-
var hmac =
|
|
49041
|
+
var hmac = crypto18.createHmac("sha" + bits, secret);
|
|
49042
49042
|
var sig = (hmac.update(thing), hmac.digest("base64"));
|
|
49043
49043
|
return fromBase64(sig);
|
|
49044
49044
|
}, "sign");
|
|
49045
49045
|
}
|
|
49046
49046
|
__name(createHmacSigner, "createHmacSigner");
|
|
49047
49047
|
var bufferEqual;
|
|
49048
|
-
var timingSafeEqual = "timingSafeEqual" in
|
|
49048
|
+
var timingSafeEqual = "timingSafeEqual" in crypto18 ? /* @__PURE__ */ __name(function timingSafeEqual2(a2, b2) {
|
|
49049
49049
|
if (a2.byteLength !== b2.byteLength) {
|
|
49050
49050
|
return false;
|
|
49051
49051
|
}
|
|
49052
|
-
return
|
|
49052
|
+
return crypto18.timingSafeEqual(a2, b2);
|
|
49053
49053
|
}, "timingSafeEqual") : /* @__PURE__ */ __name(function timingSafeEqual2(a2, b2) {
|
|
49054
49054
|
if (!bufferEqual) {
|
|
49055
49055
|
bufferEqual = require_buffer_equal_constant_time();
|
|
@@ -49067,7 +49067,7 @@ var require_jwa = __commonJS({
|
|
|
49067
49067
|
return /* @__PURE__ */ __name(function sign(thing, privateKey) {
|
|
49068
49068
|
checkIsPrivateKey(privateKey);
|
|
49069
49069
|
thing = normalizeInput(thing);
|
|
49070
|
-
var signer =
|
|
49070
|
+
var signer = crypto18.createSign("RSA-SHA" + bits);
|
|
49071
49071
|
var sig = (signer.update(thing), signer.sign(privateKey, "base64"));
|
|
49072
49072
|
return fromBase64(sig);
|
|
49073
49073
|
}, "sign");
|
|
@@ -49078,7 +49078,7 @@ var require_jwa = __commonJS({
|
|
|
49078
49078
|
checkIsPublicKey(publicKey);
|
|
49079
49079
|
thing = normalizeInput(thing);
|
|
49080
49080
|
signature = toBase64(signature);
|
|
49081
|
-
var verifier =
|
|
49081
|
+
var verifier = crypto18.createVerify("RSA-SHA" + bits);
|
|
49082
49082
|
verifier.update(thing);
|
|
49083
49083
|
return verifier.verify(publicKey, signature, "base64");
|
|
49084
49084
|
}, "verify");
|
|
@@ -49088,11 +49088,11 @@ var require_jwa = __commonJS({
|
|
|
49088
49088
|
return /* @__PURE__ */ __name(function sign(thing, privateKey) {
|
|
49089
49089
|
checkIsPrivateKey(privateKey);
|
|
49090
49090
|
thing = normalizeInput(thing);
|
|
49091
|
-
var signer =
|
|
49091
|
+
var signer = crypto18.createSign("RSA-SHA" + bits);
|
|
49092
49092
|
var sig = (signer.update(thing), signer.sign({
|
|
49093
49093
|
key: privateKey,
|
|
49094
|
-
padding:
|
|
49095
|
-
saltLength:
|
|
49094
|
+
padding: crypto18.constants.RSA_PKCS1_PSS_PADDING,
|
|
49095
|
+
saltLength: crypto18.constants.RSA_PSS_SALTLEN_DIGEST
|
|
49096
49096
|
}, "base64"));
|
|
49097
49097
|
return fromBase64(sig);
|
|
49098
49098
|
}, "sign");
|
|
@@ -49103,12 +49103,12 @@ var require_jwa = __commonJS({
|
|
|
49103
49103
|
checkIsPublicKey(publicKey);
|
|
49104
49104
|
thing = normalizeInput(thing);
|
|
49105
49105
|
signature = toBase64(signature);
|
|
49106
|
-
var verifier =
|
|
49106
|
+
var verifier = crypto18.createVerify("RSA-SHA" + bits);
|
|
49107
49107
|
verifier.update(thing);
|
|
49108
49108
|
return verifier.verify({
|
|
49109
49109
|
key: publicKey,
|
|
49110
|
-
padding:
|
|
49111
|
-
saltLength:
|
|
49110
|
+
padding: crypto18.constants.RSA_PKCS1_PSS_PADDING,
|
|
49111
|
+
saltLength: crypto18.constants.RSA_PSS_SALTLEN_DIGEST
|
|
49112
49112
|
}, signature, "base64");
|
|
49113
49113
|
}, "verify");
|
|
49114
49114
|
}
|
|
@@ -52035,15 +52035,15 @@ var require_awsrequestsigner = __commonJS({
|
|
|
52035
52035
|
}
|
|
52036
52036
|
};
|
|
52037
52037
|
exports2.AwsRequestSigner = AwsRequestSigner;
|
|
52038
|
-
async function sign(
|
|
52039
|
-
return await
|
|
52038
|
+
async function sign(crypto18, key, msg) {
|
|
52039
|
+
return await crypto18.signWithHmacSha256(key, msg);
|
|
52040
52040
|
}
|
|
52041
52041
|
__name(sign, "sign");
|
|
52042
|
-
async function getSigningKey(
|
|
52043
|
-
const kDate = await sign(
|
|
52044
|
-
const kRegion = await sign(
|
|
52045
|
-
const kService = await sign(
|
|
52046
|
-
const kSigning = await sign(
|
|
52042
|
+
async function getSigningKey(crypto18, key, dateStamp, region, serviceName) {
|
|
52043
|
+
const kDate = await sign(crypto18, `AWS4${key}`, dateStamp);
|
|
52044
|
+
const kRegion = await sign(crypto18, kDate, region);
|
|
52045
|
+
const kService = await sign(crypto18, kRegion, serviceName);
|
|
52046
|
+
const kSigning = await sign(crypto18, kService, "aws4_request");
|
|
52047
52047
|
return kSigning;
|
|
52048
52048
|
}
|
|
52049
52049
|
__name(getSigningKey, "getSigningKey");
|
|
@@ -53821,24 +53821,24 @@ var require_googleauth = __commonJS({
|
|
|
53821
53821
|
const signed = await client.sign(data);
|
|
53822
53822
|
return signed.signedBlob;
|
|
53823
53823
|
}
|
|
53824
|
-
const
|
|
53824
|
+
const crypto18 = (0, crypto_1.createCrypto)();
|
|
53825
53825
|
if (client instanceof jwtclient_1.JWT && client.key) {
|
|
53826
|
-
const sign = await
|
|
53826
|
+
const sign = await crypto18.sign(client.key, data);
|
|
53827
53827
|
return sign;
|
|
53828
53828
|
}
|
|
53829
53829
|
const creds = await this.getCredentials();
|
|
53830
53830
|
if (!creds.client_email) {
|
|
53831
53831
|
throw new Error("Cannot sign data without `client_email`.");
|
|
53832
53832
|
}
|
|
53833
|
-
return this.signBlob(
|
|
53833
|
+
return this.signBlob(crypto18, creds.client_email, data, endpoint);
|
|
53834
53834
|
}
|
|
53835
|
-
async signBlob(
|
|
53835
|
+
async signBlob(crypto18, emailOrUniqueId, data, endpoint) {
|
|
53836
53836
|
const url3 = new URL(endpoint + `${emailOrUniqueId}:signBlob`);
|
|
53837
53837
|
const res = await this.request({
|
|
53838
53838
|
method: "POST",
|
|
53839
53839
|
url: url3.href,
|
|
53840
53840
|
data: {
|
|
53841
|
-
payload:
|
|
53841
|
+
payload: crypto18.encodeBase64StringUtf8(data)
|
|
53842
53842
|
},
|
|
53843
53843
|
retry: true,
|
|
53844
53844
|
retryConfig: {
|
|
@@ -90499,8 +90499,8 @@ function sanitizeHookName(hookName) {
|
|
|
90499
90499
|
}
|
|
90500
90500
|
if (command2.includes("/") || command2.includes("\\")) {
|
|
90501
90501
|
const pathParts = command2.split(/[/\\]/);
|
|
90502
|
-
const
|
|
90503
|
-
return
|
|
90502
|
+
const basename32 = pathParts[pathParts.length - 1];
|
|
90503
|
+
return basename32 || "unknown-command";
|
|
90504
90504
|
}
|
|
90505
90505
|
return command2;
|
|
90506
90506
|
}
|
|
@@ -148625,13 +148625,13 @@ var init_uuid = __esm({
|
|
|
148625
148625
|
"node_modules/openai/internal/utils/uuid.mjs"() {
|
|
148626
148626
|
init_esbuild_shims();
|
|
148627
148627
|
uuid4 = /* @__PURE__ */ __name(function() {
|
|
148628
|
-
const { crypto:
|
|
148629
|
-
if (
|
|
148630
|
-
uuid4 =
|
|
148631
|
-
return
|
|
148628
|
+
const { crypto: crypto18 } = globalThis;
|
|
148629
|
+
if (crypto18?.randomUUID) {
|
|
148630
|
+
uuid4 = crypto18.randomUUID.bind(crypto18);
|
|
148631
|
+
return crypto18.randomUUID();
|
|
148632
148632
|
}
|
|
148633
148633
|
const u8 = new Uint8Array(1);
|
|
148634
|
-
const randomByte =
|
|
148634
|
+
const randomByte = crypto18 ? () => crypto18.getRandomValues(u8)[0] : () => Math.random() * 255 & 255;
|
|
148635
148635
|
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c4) => (+c4 ^ randomByte() & 15 >> +c4 / 4).toString(16));
|
|
148636
148636
|
}, "uuid4");
|
|
148637
148637
|
}
|
|
@@ -171295,7 +171295,7 @@ __export(geminiContentGenerator_exports, {
|
|
|
171295
171295
|
createGeminiContentGenerator: () => createGeminiContentGenerator
|
|
171296
171296
|
});
|
|
171297
171297
|
function createGeminiContentGenerator(config2, gcConfig) {
|
|
171298
|
-
const version2 = "0.14.0-preview.
|
|
171298
|
+
const version2 = "0.14.0-preview.3";
|
|
171299
171299
|
const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
|
|
171300
171300
|
const baseHeaders = {
|
|
171301
171301
|
"User-Agent": userAgent2
|
|
@@ -242869,10 +242869,10 @@ var init_esm20 = __esm({
|
|
|
242869
242869
|
}
|
|
242870
242870
|
async _formatEntry(dirent, path140) {
|
|
242871
242871
|
let entry;
|
|
242872
|
-
const
|
|
242872
|
+
const basename32 = this._isDirent ? dirent.name : dirent;
|
|
242873
242873
|
try {
|
|
242874
|
-
const fullPath = presolve(pjoin(path140,
|
|
242875
|
-
entry = { path: prelative(this._root, fullPath), fullPath, basename:
|
|
242874
|
+
const fullPath = presolve(pjoin(path140, basename32));
|
|
242875
|
+
entry = { path: prelative(this._root, fullPath), fullPath, basename: basename32 };
|
|
242876
242876
|
entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);
|
|
242877
242877
|
} catch (err2) {
|
|
242878
242878
|
this._onError(err2);
|
|
@@ -243406,9 +243406,9 @@ var init_handler = __esm({
|
|
|
243406
243406
|
_watchWithNodeFs(path140, listener) {
|
|
243407
243407
|
const opts = this.fsw.options;
|
|
243408
243408
|
const directory = sysPath.dirname(path140);
|
|
243409
|
-
const
|
|
243409
|
+
const basename32 = sysPath.basename(path140);
|
|
243410
243410
|
const parent = this.fsw._getWatchedDir(directory);
|
|
243411
|
-
parent.add(
|
|
243411
|
+
parent.add(basename32);
|
|
243412
243412
|
const absolutePath = sysPath.resolve(path140);
|
|
243413
243413
|
const options2 = {
|
|
243414
243414
|
persistent: opts.persistent
|
|
@@ -243418,7 +243418,7 @@ var init_handler = __esm({
|
|
|
243418
243418
|
let closer;
|
|
243419
243419
|
if (opts.usePolling) {
|
|
243420
243420
|
const enableBin = opts.interval !== opts.binaryInterval;
|
|
243421
|
-
options2.interval = enableBin && isBinaryPath(
|
|
243421
|
+
options2.interval = enableBin && isBinaryPath(basename32) ? opts.binaryInterval : opts.interval;
|
|
243422
243422
|
closer = setFsWatchFileListener(path140, absolutePath, options2, {
|
|
243423
243423
|
listener,
|
|
243424
243424
|
rawEmitter: this.fsw._emitRaw
|
|
@@ -243441,10 +243441,10 @@ var init_handler = __esm({
|
|
|
243441
243441
|
return;
|
|
243442
243442
|
}
|
|
243443
243443
|
const dirname33 = sysPath.dirname(file2);
|
|
243444
|
-
const
|
|
243444
|
+
const basename32 = sysPath.basename(file2);
|
|
243445
243445
|
const parent = this.fsw._getWatchedDir(dirname33);
|
|
243446
243446
|
let prevStats = stats;
|
|
243447
|
-
if (parent.has(
|
|
243447
|
+
if (parent.has(basename32))
|
|
243448
243448
|
return;
|
|
243449
243449
|
const listener = /* @__PURE__ */ __name(async (path140, newStats) => {
|
|
243450
243450
|
if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file2, 5))
|
|
@@ -243469,9 +243469,9 @@ var init_handler = __esm({
|
|
|
243469
243469
|
prevStats = newStats2;
|
|
243470
243470
|
}
|
|
243471
243471
|
} catch (error40) {
|
|
243472
|
-
this.fsw._remove(dirname33,
|
|
243472
|
+
this.fsw._remove(dirname33, basename32);
|
|
243473
243473
|
}
|
|
243474
|
-
} else if (parent.has(
|
|
243474
|
+
} else if (parent.has(basename32)) {
|
|
243475
243475
|
const at2 = newStats.atimeMs;
|
|
243476
243476
|
const mt2 = newStats.mtimeMs;
|
|
243477
243477
|
if (!at2 || at2 <= mt2 || mt2 !== prevStats.mtimeMs) {
|
|
@@ -258348,7 +258348,7 @@ var require_main = __commonJS({
|
|
|
258348
258348
|
var fs126 = __require("fs");
|
|
258349
258349
|
var path140 = __require("path");
|
|
258350
258350
|
var os55 = __require("os");
|
|
258351
|
-
var
|
|
258351
|
+
var crypto18 = __require("crypto");
|
|
258352
258352
|
var packageJson4 = require_package5();
|
|
258353
258353
|
var version2 = packageJson4.version;
|
|
258354
258354
|
var TIPS = [
|
|
@@ -258603,7 +258603,7 @@ var require_main = __commonJS({
|
|
|
258603
258603
|
const authTag = ciphertext.subarray(-16);
|
|
258604
258604
|
ciphertext = ciphertext.subarray(12, -16);
|
|
258605
258605
|
try {
|
|
258606
|
-
const aesgcm =
|
|
258606
|
+
const aesgcm = crypto18.createDecipheriv("aes-256-gcm", key, nonce);
|
|
258607
258607
|
aesgcm.setAuthTag(authTag);
|
|
258608
258608
|
return `${aesgcm.update(ciphertext)}${aesgcm.final()}`;
|
|
258609
258609
|
} catch (error40) {
|
|
@@ -341800,8 +341800,8 @@ var require_command_exists = __commonJS({
|
|
|
341800
341800
|
var isPathName = /[\\]/.test(s5);
|
|
341801
341801
|
if (isPathName) {
|
|
341802
341802
|
var dirname33 = '"' + path140.dirname(s5) + '"';
|
|
341803
|
-
var
|
|
341804
|
-
return dirname33 + ":" +
|
|
341803
|
+
var basename32 = '"' + path140.basename(s5) + '"';
|
|
341804
|
+
return dirname33 + ":" + basename32;
|
|
341805
341805
|
}
|
|
341806
341806
|
return '"' + s5 + '"';
|
|
341807
341807
|
}, "cleanInput");
|
|
@@ -350597,7 +350597,7 @@ var require_client3 = __commonJS({
|
|
|
350597
350597
|
return mod2 && mod2.__esModule ? mod2 : { "default": mod2 };
|
|
350598
350598
|
};
|
|
350599
350599
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
350600
|
-
var
|
|
350600
|
+
var crypto18 = __importStar(__require("crypto"));
|
|
350601
350601
|
var fs126 = __importStar(__require("fs"));
|
|
350602
350602
|
var promises_1 = __require("fs/promises");
|
|
350603
350603
|
var https8 = __importStar(__require("https"));
|
|
@@ -350676,7 +350676,7 @@ var require_client3 = __commonJS({
|
|
|
350676
350676
|
payload[field] = JSON.stringify(payload[field]);
|
|
350677
350677
|
}
|
|
350678
350678
|
}
|
|
350679
|
-
const boundary =
|
|
350679
|
+
const boundary = crypto18.randomBytes(32).toString("hex");
|
|
350680
350680
|
const formData = new multipart_stream_1.default(boundary);
|
|
350681
350681
|
await Promise.all(Object.keys(payload).map((key) => (
|
|
350682
350682
|
// @ts-expect-error payload[key] can obviously index payload, but TS doesn't trust us
|
|
@@ -350705,7 +350705,7 @@ var require_client3 = __commonJS({
|
|
|
350705
350705
|
return;
|
|
350706
350706
|
}
|
|
350707
350707
|
if (id === "thumb" || id === "thumbnail") {
|
|
350708
|
-
const attachmentId =
|
|
350708
|
+
const attachmentId = crypto18.randomBytes(16).toString("hex");
|
|
350709
350709
|
await attachFormMedia(form, value, attachmentId, agent);
|
|
350710
350710
|
return form.addPart({
|
|
350711
350711
|
headers: { "content-disposition": `form-data; name="${id}"` },
|
|
@@ -350718,11 +350718,11 @@ var require_client3 = __commonJS({
|
|
|
350718
350718
|
if (typeof item.media !== "object") {
|
|
350719
350719
|
return await Promise.resolve(item);
|
|
350720
350720
|
}
|
|
350721
|
-
const attachmentId =
|
|
350721
|
+
const attachmentId = crypto18.randomBytes(16).toString("hex");
|
|
350722
350722
|
await attachFormMedia(form, item.media, attachmentId, agent);
|
|
350723
350723
|
const thumb = (_a7 = item.thumb) !== null && _a7 !== void 0 ? _a7 : item.thumbnail;
|
|
350724
350724
|
if (typeof thumb === "object") {
|
|
350725
|
-
const thumbAttachmentId =
|
|
350725
|
+
const thumbAttachmentId = crypto18.randomBytes(16).toString("hex");
|
|
350726
350726
|
await attachFormMedia(form, thumb, thumbAttachmentId, agent);
|
|
350727
350727
|
return {
|
|
350728
350728
|
...item,
|
|
@@ -350738,7 +350738,7 @@ var require_client3 = __commonJS({
|
|
|
350738
350738
|
});
|
|
350739
350739
|
}
|
|
350740
350740
|
if (value && typeof value === "object" && (0, check_1.hasProp)(value, "media") && (0, check_1.hasProp)(value, "type") && typeof value.media !== "undefined" && typeof value.type !== "undefined") {
|
|
350741
|
-
const attachmentId =
|
|
350741
|
+
const attachmentId = crypto18.randomBytes(16).toString("hex");
|
|
350742
350742
|
await attachFormMedia(form, value.media, attachmentId, agent);
|
|
350743
350743
|
return form.addPart({
|
|
350744
350744
|
headers: { "content-disposition": `form-data; name="${id}"` },
|
|
@@ -352405,7 +352405,7 @@ var require_safe_compare = __commonJS({
|
|
|
352405
352405
|
"node_modules/safe-compare/index.js"(exports2, module2) {
|
|
352406
352406
|
"use strict";
|
|
352407
352407
|
init_esbuild_shims();
|
|
352408
|
-
var
|
|
352408
|
+
var crypto18 = __require("crypto");
|
|
352409
352409
|
var bufferAlloc = require_buffer_alloc();
|
|
352410
352410
|
var safeCompare = /* @__PURE__ */ __name(function safeCompare2(a2, b2) {
|
|
352411
352411
|
var strA = String(a2);
|
|
@@ -352430,9 +352430,9 @@ var require_safe_compare = __commonJS({
|
|
|
352430
352430
|
bufA.write(strA);
|
|
352431
352431
|
var bufB = bufferAlloc(aLen, 0, "utf8");
|
|
352432
352432
|
bufB.write(strB);
|
|
352433
|
-
return
|
|
352433
|
+
return crypto18.timingSafeEqual(bufA, bufB) && aLen === bLen;
|
|
352434
352434
|
}, "nativeTimingSafeEqual");
|
|
352435
|
-
module2.exports = typeof
|
|
352435
|
+
module2.exports = typeof crypto18.timingSafeEqual !== "undefined" ? nativeTimingSafeEqual : safeCompare;
|
|
352436
352436
|
}
|
|
352437
352437
|
});
|
|
352438
352438
|
|
|
@@ -352473,7 +352473,7 @@ var require_telegraf = __commonJS({
|
|
|
352473
352473
|
};
|
|
352474
352474
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
352475
352475
|
exports2.Telegraf = void 0;
|
|
352476
|
-
var
|
|
352476
|
+
var crypto18 = __importStar(__require("crypto"));
|
|
352477
352477
|
var http8 = __importStar(__require("http"));
|
|
352478
352478
|
var https8 = __importStar(__require("https"));
|
|
352479
352479
|
var composer_1 = require_composer();
|
|
@@ -352601,7 +352601,7 @@ var require_telegraf = __commonJS({
|
|
|
352601
352601
|
return this;
|
|
352602
352602
|
}
|
|
352603
352603
|
secretPathComponent() {
|
|
352604
|
-
return
|
|
352604
|
+
return crypto18.createHash("sha3-256").update(this.token).update(process.version).digest("hex");
|
|
352605
352605
|
}
|
|
352606
352606
|
/**
|
|
352607
352607
|
* @see https://github.com/telegraf/telegraf/discussions/1344#discussioncomment-335700
|
|
@@ -364358,7 +364358,7 @@ var require_form_data = __commonJS({
|
|
|
364358
364358
|
var parseUrl = __require("url").parse;
|
|
364359
364359
|
var fs126 = __require("fs");
|
|
364360
364360
|
var Stream9 = __require("stream").Stream;
|
|
364361
|
-
var
|
|
364361
|
+
var crypto18 = __require("crypto");
|
|
364362
364362
|
var mime = require_mime_types();
|
|
364363
364363
|
var asynckit = require_asynckit();
|
|
364364
364364
|
var setToStringTag = require_es_set_tostringtag();
|
|
@@ -364565,7 +364565,7 @@ var require_form_data = __commonJS({
|
|
|
364565
364565
|
return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);
|
|
364566
364566
|
};
|
|
364567
364567
|
FormData7.prototype._generateBoundary = function() {
|
|
364568
|
-
this._boundary = "--------------------------" +
|
|
364568
|
+
this._boundary = "--------------------------" + crypto18.randomBytes(12).toString("hex");
|
|
364569
364569
|
};
|
|
364570
364570
|
FormData7.prototype.getLengthSync = function() {
|
|
364571
364571
|
var knownLength = this._overheadLength + this._valueLength;
|
|
@@ -369177,11 +369177,11 @@ var require_util24 = __commonJS({
|
|
|
369177
369177
|
var { isUint8Array } = __require("node:util/types");
|
|
369178
369178
|
var { webidl } = require_webidl2();
|
|
369179
369179
|
var supportedHashes = [];
|
|
369180
|
-
var
|
|
369180
|
+
var crypto18;
|
|
369181
369181
|
try {
|
|
369182
|
-
|
|
369182
|
+
crypto18 = __require("node:crypto");
|
|
369183
369183
|
const possibleRelevantHashes = ["sha256", "sha384", "sha512"];
|
|
369184
|
-
supportedHashes =
|
|
369184
|
+
supportedHashes = crypto18.getHashes().filter((hash) => possibleRelevantHashes.includes(hash));
|
|
369185
369185
|
} catch {
|
|
369186
369186
|
}
|
|
369187
369187
|
function responseURL(response) {
|
|
@@ -369479,7 +369479,7 @@ var require_util24 = __commonJS({
|
|
|
369479
369479
|
}
|
|
369480
369480
|
__name(isURLPotentiallyTrustworthy, "isURLPotentiallyTrustworthy");
|
|
369481
369481
|
function bytesMatch(bytes, metadataList) {
|
|
369482
|
-
if (
|
|
369482
|
+
if (crypto18 === void 0) {
|
|
369483
369483
|
return true;
|
|
369484
369484
|
}
|
|
369485
369485
|
const parsedMetadata = parseMetadata(metadataList);
|
|
@@ -369494,7 +369494,7 @@ var require_util24 = __commonJS({
|
|
|
369494
369494
|
for (const item of metadata2) {
|
|
369495
369495
|
const algorithm = item.algo;
|
|
369496
369496
|
const expectedValue = item.hash;
|
|
369497
|
-
let actualValue =
|
|
369497
|
+
let actualValue = crypto18.createHash(algorithm).update(bytes).digest("base64");
|
|
369498
369498
|
if (actualValue[actualValue.length - 1] === "=") {
|
|
369499
369499
|
if (actualValue[actualValue.length - 2] === "=") {
|
|
369500
369500
|
actualValue = actualValue.slice(0, -2);
|
|
@@ -370620,8 +370620,8 @@ var require_body2 = __commonJS({
|
|
|
370620
370620
|
var { multipartFormDataParser } = require_formdata_parser2();
|
|
370621
370621
|
var random2;
|
|
370622
370622
|
try {
|
|
370623
|
-
const
|
|
370624
|
-
random2 = /* @__PURE__ */ __name((max) =>
|
|
370623
|
+
const crypto18 = __require("node:crypto");
|
|
370624
|
+
random2 = /* @__PURE__ */ __name((max) => crypto18.randomInt(0, max), "random");
|
|
370625
370625
|
} catch {
|
|
370626
370626
|
random2 = /* @__PURE__ */ __name((max) => Math.floor(Math.random(max)), "random");
|
|
370627
370627
|
}
|
|
@@ -382412,13 +382412,13 @@ var require_frame2 = __commonJS({
|
|
|
382412
382412
|
init_esbuild_shims();
|
|
382413
382413
|
var { maxUnsigned16Bit } = require_constants18();
|
|
382414
382414
|
var BUFFER_SIZE = 16386;
|
|
382415
|
-
var
|
|
382415
|
+
var crypto18;
|
|
382416
382416
|
var buffer = null;
|
|
382417
382417
|
var bufIdx = BUFFER_SIZE;
|
|
382418
382418
|
try {
|
|
382419
|
-
|
|
382419
|
+
crypto18 = __require("node:crypto");
|
|
382420
382420
|
} catch {
|
|
382421
|
-
|
|
382421
|
+
crypto18 = {
|
|
382422
382422
|
// not full compatibility, but minimum.
|
|
382423
382423
|
randomFillSync: /* @__PURE__ */ __name(function randomFillSync(buffer2, _offset, _size3) {
|
|
382424
382424
|
for (let i4 = 0; i4 < buffer2.length; ++i4) {
|
|
@@ -382431,7 +382431,7 @@ var require_frame2 = __commonJS({
|
|
|
382431
382431
|
function generateMask() {
|
|
382432
382432
|
if (bufIdx === BUFFER_SIZE) {
|
|
382433
382433
|
bufIdx = 0;
|
|
382434
|
-
|
|
382434
|
+
crypto18.randomFillSync(buffer ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE);
|
|
382435
382435
|
}
|
|
382436
382436
|
return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]];
|
|
382437
382437
|
}
|
|
@@ -382508,9 +382508,9 @@ var require_connection2 = __commonJS({
|
|
|
382508
382508
|
var { Headers: Headers6, getHeadersList } = require_headers2();
|
|
382509
382509
|
var { getDecodeSplit } = require_util24();
|
|
382510
382510
|
var { WebsocketFrameSend } = require_frame2();
|
|
382511
|
-
var
|
|
382511
|
+
var crypto18;
|
|
382512
382512
|
try {
|
|
382513
|
-
|
|
382513
|
+
crypto18 = __require("node:crypto");
|
|
382514
382514
|
} catch {
|
|
382515
382515
|
}
|
|
382516
382516
|
function establishWebSocketConnection(url3, protocols, client, ws2, onEstablish, options2) {
|
|
@@ -382530,7 +382530,7 @@ var require_connection2 = __commonJS({
|
|
|
382530
382530
|
const headersList = getHeadersList(new Headers6(options2.headers));
|
|
382531
382531
|
request4.headersList = headersList;
|
|
382532
382532
|
}
|
|
382533
|
-
const keyValue =
|
|
382533
|
+
const keyValue = crypto18.randomBytes(16).toString("base64");
|
|
382534
382534
|
request4.headersList.append("sec-websocket-key", keyValue);
|
|
382535
382535
|
request4.headersList.append("sec-websocket-version", "13");
|
|
382536
382536
|
for (const protocol of protocols) {
|
|
@@ -382560,7 +382560,7 @@ var require_connection2 = __commonJS({
|
|
|
382560
382560
|
return;
|
|
382561
382561
|
}
|
|
382562
382562
|
const secWSAccept = response.headersList.get("Sec-WebSocket-Accept");
|
|
382563
|
-
const digest =
|
|
382563
|
+
const digest = crypto18.createHash("sha1").update(keyValue + uid).digest("base64");
|
|
382564
382564
|
if (secWSAccept !== digest) {
|
|
382565
382565
|
failWebsocketConnection(ws2, "Incorrect hash received in Sec-WebSocket-Accept header.");
|
|
382566
382566
|
return;
|
|
@@ -392713,7 +392713,7 @@ var require_gaxios2 = __commonJS({
|
|
|
392713
392713
|
var retry_js_1 = require_retry4();
|
|
392714
392714
|
var stream_1 = __require("stream");
|
|
392715
392715
|
var interceptor_js_1 = require_interceptor2();
|
|
392716
|
-
var
|
|
392716
|
+
var randomUUID15 = /* @__PURE__ */ __name(async () => globalThis.crypto?.randomUUID() || (await import("crypto")).randomUUID(), "randomUUID");
|
|
392717
392717
|
var HTTP_STATUS_NO_CONTENT = 204;
|
|
392718
392718
|
var Gaxios = class {
|
|
392719
392719
|
static {
|
|
@@ -392989,7 +392989,7 @@ var require_gaxios2 = __commonJS({
|
|
|
392989
392989
|
*/
|
|
392990
392990
|
["Blob", "File", "FormData"].includes(opts.data?.constructor?.name || "");
|
|
392991
392991
|
if (opts.multipart?.length) {
|
|
392992
|
-
const boundary = await
|
|
392992
|
+
const boundary = await randomUUID15();
|
|
392993
392993
|
preparedHeaders.set("content-type", `multipart/related; boundary=${boundary}`);
|
|
392994
392994
|
opts.body = stream_1.Readable.from(this.getMultipartRequest(opts.multipart, boundary));
|
|
392995
392995
|
} else if (shouldDirectlyPassData) {
|
|
@@ -394072,25 +394072,25 @@ var require_crypto5 = __commonJS({
|
|
|
394072
394072
|
init_esbuild_shims();
|
|
394073
394073
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
394074
394074
|
exports2.NodeCrypto = void 0;
|
|
394075
|
-
var
|
|
394075
|
+
var crypto18 = __require("crypto");
|
|
394076
394076
|
var NodeCrypto = class {
|
|
394077
394077
|
static {
|
|
394078
394078
|
__name(this, "NodeCrypto");
|
|
394079
394079
|
}
|
|
394080
394080
|
async sha256DigestBase64(str2) {
|
|
394081
|
-
return
|
|
394081
|
+
return crypto18.createHash("sha256").update(str2).digest("base64");
|
|
394082
394082
|
}
|
|
394083
394083
|
randomBytesBase64(count) {
|
|
394084
|
-
return
|
|
394084
|
+
return crypto18.randomBytes(count).toString("base64");
|
|
394085
394085
|
}
|
|
394086
394086
|
async verify(pubkey, data, signature) {
|
|
394087
|
-
const verifier =
|
|
394087
|
+
const verifier = crypto18.createVerify("RSA-SHA256");
|
|
394088
394088
|
verifier.update(data);
|
|
394089
394089
|
verifier.end();
|
|
394090
394090
|
return verifier.verify(pubkey, signature, "base64");
|
|
394091
394091
|
}
|
|
394092
394092
|
async sign(privateKey, data) {
|
|
394093
|
-
const signer =
|
|
394093
|
+
const signer = crypto18.createSign("RSA-SHA256");
|
|
394094
394094
|
signer.update(data);
|
|
394095
394095
|
signer.end();
|
|
394096
394096
|
return signer.sign(privateKey, "base64");
|
|
@@ -394108,7 +394108,7 @@ var require_crypto5 = __commonJS({
|
|
|
394108
394108
|
* string in hexadecimal encoding.
|
|
394109
394109
|
*/
|
|
394110
394110
|
async sha256DigestHex(str2) {
|
|
394111
|
-
return
|
|
394111
|
+
return crypto18.createHash("sha256").update(str2).digest("hex");
|
|
394112
394112
|
}
|
|
394113
394113
|
/**
|
|
394114
394114
|
* Computes the HMAC hash of a message using the provided crypto key and the
|
|
@@ -394120,7 +394120,7 @@ var require_crypto5 = __commonJS({
|
|
|
394120
394120
|
*/
|
|
394121
394121
|
async signWithHmacSha256(key, msg) {
|
|
394122
394122
|
const cryptoKey = typeof key === "string" ? key : toBuffer(key);
|
|
394123
|
-
return toArrayBuffer(
|
|
394123
|
+
return toArrayBuffer(crypto18.createHmac("sha256", cryptoKey).update(msg).digest());
|
|
394124
394124
|
}
|
|
394125
394125
|
};
|
|
394126
394126
|
exports2.NodeCrypto = NodeCrypto;
|
|
@@ -394833,10 +394833,10 @@ var require_oauth2client2 = __commonJS({
|
|
|
394833
394833
|
* https://github.com/googleapis/google-auth-library-nodejs/blob/main/samples/oauth2-codeVerifier.js
|
|
394834
394834
|
*/
|
|
394835
394835
|
async generateCodeVerifierAsync() {
|
|
394836
|
-
const
|
|
394837
|
-
const randomString2 =
|
|
394836
|
+
const crypto18 = (0, crypto_1.createCrypto)();
|
|
394837
|
+
const randomString2 = crypto18.randomBytesBase64(96);
|
|
394838
394838
|
const codeVerifier = randomString2.replace(/\+/g, "~").replace(/=/g, "_").replace(/\//g, "-");
|
|
394839
|
-
const unencodedCodeChallenge = await
|
|
394839
|
+
const unencodedCodeChallenge = await crypto18.sha256DigestBase64(codeVerifier);
|
|
394840
394840
|
const codeChallenge = unencodedCodeChallenge.split("=")[0].replace(/\+/g, "-").replace(/\//g, "_");
|
|
394841
394841
|
return { codeVerifier, codeChallenge };
|
|
394842
394842
|
}
|
|
@@ -395277,7 +395277,7 @@ var require_oauth2client2 = __commonJS({
|
|
|
395277
395277
|
* @return Returns a promise resolving to LoginTicket on verification.
|
|
395278
395278
|
*/
|
|
395279
395279
|
async verifySignedJwtWithCertsAsync(jwt2, certs, requiredAudience, issuers, maxExpiry) {
|
|
395280
|
-
const
|
|
395280
|
+
const crypto18 = (0, crypto_1.createCrypto)();
|
|
395281
395281
|
if (!maxExpiry) {
|
|
395282
395282
|
maxExpiry = _OAuth2Client.DEFAULT_MAX_TOKEN_LIFETIME_SECS_;
|
|
395283
395283
|
}
|
|
@@ -395290,7 +395290,7 @@ var require_oauth2client2 = __commonJS({
|
|
|
395290
395290
|
let envelope;
|
|
395291
395291
|
let payload;
|
|
395292
395292
|
try {
|
|
395293
|
-
envelope = JSON.parse(
|
|
395293
|
+
envelope = JSON.parse(crypto18.decodeBase64StringUtf8(segments[0]));
|
|
395294
395294
|
} catch (err2) {
|
|
395295
395295
|
if (err2 instanceof Error) {
|
|
395296
395296
|
err2.message = `Can't parse token envelope: ${segments[0]}': ${err2.message}`;
|
|
@@ -395301,7 +395301,7 @@ var require_oauth2client2 = __commonJS({
|
|
|
395301
395301
|
throw new Error("Can't parse token envelope: " + segments[0]);
|
|
395302
395302
|
}
|
|
395303
395303
|
try {
|
|
395304
|
-
payload = JSON.parse(
|
|
395304
|
+
payload = JSON.parse(crypto18.decodeBase64StringUtf8(segments[1]));
|
|
395305
395305
|
} catch (err2) {
|
|
395306
395306
|
if (err2 instanceof Error) {
|
|
395307
395307
|
err2.message = `Can't parse token payload '${segments[0]}`;
|
|
@@ -395318,7 +395318,7 @@ var require_oauth2client2 = __commonJS({
|
|
|
395318
395318
|
if (envelope.alg === "ES256") {
|
|
395319
395319
|
signature = formatEcdsa.joseToDer(signature, "ES256").toString("base64");
|
|
395320
395320
|
}
|
|
395321
|
-
const verified = await
|
|
395321
|
+
const verified = await crypto18.verify(cert, signed, signature);
|
|
395322
395322
|
if (!verified) {
|
|
395323
395323
|
throw new Error("Invalid token signature: " + jwt2);
|
|
395324
395324
|
}
|
|
@@ -398234,15 +398234,15 @@ var require_awsrequestsigner2 = __commonJS({
|
|
|
398234
398234
|
}
|
|
398235
398235
|
};
|
|
398236
398236
|
exports2.AwsRequestSigner = AwsRequestSigner;
|
|
398237
|
-
async function sign(
|
|
398238
|
-
return await
|
|
398237
|
+
async function sign(crypto18, key, msg) {
|
|
398238
|
+
return await crypto18.signWithHmacSha256(key, msg);
|
|
398239
398239
|
}
|
|
398240
398240
|
__name(sign, "sign");
|
|
398241
|
-
async function getSigningKey(
|
|
398242
|
-
const kDate = await sign(
|
|
398243
|
-
const kRegion = await sign(
|
|
398244
|
-
const kService = await sign(
|
|
398245
|
-
const kSigning = await sign(
|
|
398241
|
+
async function getSigningKey(crypto18, key, dateStamp, region, serviceName) {
|
|
398242
|
+
const kDate = await sign(crypto18, `AWS4${key}`, dateStamp);
|
|
398243
|
+
const kRegion = await sign(crypto18, kDate, region);
|
|
398244
|
+
const kService = await sign(crypto18, kRegion, serviceName);
|
|
398245
|
+
const kSigning = await sign(crypto18, kService, "aws4_request");
|
|
398246
398246
|
return kSigning;
|
|
398247
398247
|
}
|
|
398248
398248
|
__name(getSigningKey, "getSigningKey");
|
|
@@ -400020,24 +400020,24 @@ var require_googleauth2 = __commonJS({
|
|
|
400020
400020
|
const signed = await client.sign(data);
|
|
400021
400021
|
return signed.signedBlob;
|
|
400022
400022
|
}
|
|
400023
|
-
const
|
|
400023
|
+
const crypto18 = (0, crypto_1.createCrypto)();
|
|
400024
400024
|
if (client instanceof jwtclient_1.JWT && client.key) {
|
|
400025
|
-
const sign = await
|
|
400025
|
+
const sign = await crypto18.sign(client.key, data);
|
|
400026
400026
|
return sign;
|
|
400027
400027
|
}
|
|
400028
400028
|
const creds = await this.getCredentials();
|
|
400029
400029
|
if (!creds.client_email) {
|
|
400030
400030
|
throw new Error("Cannot sign data without `client_email`.");
|
|
400031
400031
|
}
|
|
400032
|
-
return this.signBlob(
|
|
400032
|
+
return this.signBlob(crypto18, creds.client_email, data, endpoint);
|
|
400033
400033
|
}
|
|
400034
|
-
async signBlob(
|
|
400034
|
+
async signBlob(crypto18, emailOrUniqueId, data, endpoint) {
|
|
400035
400035
|
const url3 = new URL(endpoint + `${emailOrUniqueId}:signBlob`);
|
|
400036
400036
|
const res = await this.request({
|
|
400037
400037
|
method: "POST",
|
|
400038
400038
|
url: url3.href,
|
|
400039
400039
|
data: {
|
|
400040
|
-
payload:
|
|
400040
|
+
payload: crypto18.encodeBase64StringUtf8(data)
|
|
400041
400041
|
},
|
|
400042
400042
|
retry: true,
|
|
400043
400043
|
retryConfig: {
|
|
@@ -412613,7 +412613,7 @@ var measure_element_default = measureElement;
|
|
|
412613
412613
|
var import_react166 = __toESM(require_react(), 1);
|
|
412614
412614
|
import dns2 from "node:dns";
|
|
412615
412615
|
import os54 from "node:os";
|
|
412616
|
-
import { basename as
|
|
412616
|
+
import { basename as basename31 } from "node:path";
|
|
412617
412617
|
import v8 from "node:v8";
|
|
412618
412618
|
|
|
412619
412619
|
// packages/cli/src/config/auth.ts
|
|
@@ -424275,7 +424275,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
424275
424275
|
// packages/cli/src/utils/version.ts
|
|
424276
424276
|
async function getCliVersion() {
|
|
424277
424277
|
const pkgJson = await getPackageJson();
|
|
424278
|
-
return "0.14.0-preview.
|
|
424278
|
+
return "0.14.0-preview.3";
|
|
424279
424279
|
}
|
|
424280
424280
|
__name(getCliVersion, "getCliVersion");
|
|
424281
424281
|
|
|
@@ -430357,6 +430357,7 @@ var SenderGate = class {
|
|
|
430357
430357
|
|
|
430358
430358
|
// packages/channels/base/dist/PairingStore.js
|
|
430359
430359
|
init_esbuild_shims();
|
|
430360
|
+
import * as crypto14 from "node:crypto";
|
|
430360
430361
|
import * as fs93 from "node:fs";
|
|
430361
430362
|
import * as path99 from "node:path";
|
|
430362
430363
|
import * as os33 from "node:os";
|
|
@@ -430462,7 +430463,7 @@ var PairingStore = class {
|
|
|
430462
430463
|
function generateCode() {
|
|
430463
430464
|
let code2 = "";
|
|
430464
430465
|
for (let i4 = 0; i4 < CODE_LENGTH; i4++) {
|
|
430465
|
-
code2 += SAFE_ALPHABET[
|
|
430466
|
+
code2 += SAFE_ALPHABET[crypto14.randomInt(SAFE_ALPHABET.length)];
|
|
430466
430467
|
}
|
|
430467
430468
|
return code2;
|
|
430468
430469
|
}
|
|
@@ -430483,20 +430484,26 @@ var SessionRouter = class {
|
|
|
430483
430484
|
// session ID → cwd
|
|
430484
430485
|
bridge;
|
|
430485
430486
|
defaultCwd;
|
|
430486
|
-
|
|
430487
|
+
defaultScope;
|
|
430488
|
+
channelScopes = /* @__PURE__ */ new Map();
|
|
430487
430489
|
persistPath;
|
|
430488
430490
|
constructor(bridge, defaultCwd, scope = "user", persistPath) {
|
|
430489
430491
|
this.bridge = bridge;
|
|
430490
430492
|
this.defaultCwd = defaultCwd;
|
|
430491
|
-
this.
|
|
430493
|
+
this.defaultScope = scope;
|
|
430492
430494
|
this.persistPath = persistPath;
|
|
430493
430495
|
}
|
|
430494
430496
|
/** Replace the bridge instance (used after crash recovery restart). */
|
|
430495
430497
|
setBridge(bridge) {
|
|
430496
430498
|
this.bridge = bridge;
|
|
430497
430499
|
}
|
|
430500
|
+
/** Set scope override for a specific channel. */
|
|
430501
|
+
setChannelScope(channelName, scope) {
|
|
430502
|
+
this.channelScopes.set(channelName, scope);
|
|
430503
|
+
}
|
|
430498
430504
|
routingKey(channelName, senderId, chatId, threadId) {
|
|
430499
|
-
|
|
430505
|
+
const scope = this.channelScopes.get(channelName) || this.defaultScope;
|
|
430506
|
+
switch (scope) {
|
|
430500
430507
|
case "thread":
|
|
430501
430508
|
return `${channelName}:${threadId || chatId}`;
|
|
430502
430509
|
case "single":
|
|
@@ -430533,31 +430540,38 @@ var SessionRouter = class {
|
|
|
430533
430540
|
}
|
|
430534
430541
|
return false;
|
|
430535
430542
|
}
|
|
430543
|
+
/**
|
|
430544
|
+
* Remove session(s) for the given sender. Returns the removed session IDs.
|
|
430545
|
+
*/
|
|
430536
430546
|
removeSession(channelName, senderId, chatId) {
|
|
430547
|
+
const removedIds = [];
|
|
430537
430548
|
if (chatId) {
|
|
430538
430549
|
const key = this.routingKey(channelName, senderId, chatId);
|
|
430539
|
-
|
|
430540
|
-
|
|
430541
|
-
|
|
430542
|
-
|
|
430543
|
-
|
|
430544
|
-
|
|
430545
|
-
|
|
430546
|
-
|
|
430550
|
+
const sessionId = this.deleteByKey(key);
|
|
430551
|
+
if (sessionId)
|
|
430552
|
+
removedIds.push(sessionId);
|
|
430553
|
+
} else {
|
|
430554
|
+
const prefix = `${channelName}:${senderId}`;
|
|
430555
|
+
for (const k2 of [...this.toSession.keys()]) {
|
|
430556
|
+
if (k2.startsWith(prefix)) {
|
|
430557
|
+
const sessionId = this.deleteByKey(k2);
|
|
430558
|
+
if (sessionId)
|
|
430559
|
+
removedIds.push(sessionId);
|
|
430560
|
+
}
|
|
430547
430561
|
}
|
|
430548
430562
|
}
|
|
430549
|
-
if (
|
|
430563
|
+
if (removedIds.length > 0)
|
|
430550
430564
|
this.persist();
|
|
430551
|
-
return
|
|
430565
|
+
return removedIds;
|
|
430552
430566
|
}
|
|
430553
430567
|
deleteByKey(key) {
|
|
430554
430568
|
const sessionId = this.toSession.get(key);
|
|
430555
430569
|
if (!sessionId)
|
|
430556
|
-
return
|
|
430570
|
+
return null;
|
|
430557
430571
|
this.toSession.delete(key);
|
|
430558
430572
|
this.toTarget.delete(sessionId);
|
|
430559
430573
|
this.toCwd.delete(sessionId);
|
|
430560
|
-
return
|
|
430574
|
+
return sessionId;
|
|
430561
430575
|
}
|
|
430562
430576
|
/** Get all session entries for crash recovery. */
|
|
430563
430577
|
getAll() {
|
|
@@ -430718,9 +430732,11 @@ var ChannelBase = class {
|
|
|
430718
430732
|
/** Register shared slash commands. Called from constructor. */
|
|
430719
430733
|
registerSharedCommands() {
|
|
430720
430734
|
const clearHandler = /* @__PURE__ */ __name(async (envelope) => {
|
|
430721
|
-
const
|
|
430722
|
-
if (
|
|
430723
|
-
|
|
430735
|
+
const removedIds = this.router.removeSession(this.name, envelope.senderId, envelope.chatId);
|
|
430736
|
+
if (removedIds.length > 0) {
|
|
430737
|
+
for (const id of removedIds) {
|
|
430738
|
+
this.instructedSessions.delete(id);
|
|
430739
|
+
}
|
|
430724
430740
|
await this.sendMessage(envelope.chatId, "Session cleared. Your next message will start a fresh conversation.");
|
|
430725
430741
|
} else {
|
|
430726
430742
|
await this.sendMessage(envelope.chatId, "No active session to clear.");
|
|
@@ -430954,8 +430970,9 @@ init_esbuild_shims();
|
|
|
430954
430970
|
// packages/channels/telegram/dist/TelegramAdapter.js
|
|
430955
430971
|
init_esbuild_shims();
|
|
430956
430972
|
var import_telegraf = __toESM(require_lib9(), 1);
|
|
430957
|
-
import {
|
|
430958
|
-
import {
|
|
430973
|
+
import { mkdirSync as mkdirSync13, writeFileSync as writeFileSync14 } from "node:fs";
|
|
430974
|
+
import { randomUUID as randomUUID7 } from "node:crypto";
|
|
430975
|
+
import { basename as basename21, join as join44 } from "node:path";
|
|
430959
430976
|
import { tmpdir as tmpdir5 } from "node:os";
|
|
430960
430977
|
|
|
430961
430978
|
// node_modules/telegram-markdown-formatter/dist/index.js
|
|
@@ -431267,7 +431284,6 @@ function splitHtmlForTelegram(text) {
|
|
|
431267
431284
|
__name(splitHtmlForTelegram, "splitHtmlForTelegram");
|
|
431268
431285
|
|
|
431269
431286
|
// packages/channels/telegram/dist/TelegramAdapter.js
|
|
431270
|
-
var TELEGRAF_COMMANDS = /* @__PURE__ */ new Set();
|
|
431271
431287
|
var TelegramChannel = class extends ChannelBase {
|
|
431272
431288
|
static {
|
|
431273
431289
|
__name(this, "TelegramChannel");
|
|
@@ -431286,12 +431302,6 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
431286
431302
|
this.bot.on("text", async (ctx) => {
|
|
431287
431303
|
const msg = ctx.message;
|
|
431288
431304
|
const text = msg.text;
|
|
431289
|
-
if (text.startsWith("/")) {
|
|
431290
|
-
const command2 = text.slice(1).split(/[\s@]/)[0]?.toLowerCase();
|
|
431291
|
-
if (command2 && TELEGRAF_COMMANDS.has(command2)) {
|
|
431292
|
-
return;
|
|
431293
|
-
}
|
|
431294
|
-
}
|
|
431295
431305
|
const envelope = this.buildEnvelope(msg, text, msg.entities);
|
|
431296
431306
|
this.handleInbound(envelope).catch((err2) => {
|
|
431297
431307
|
process.stderr.write(`[Telegram:${this.name}] Error handling message: ${err2}
|
|
@@ -431336,10 +431346,9 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
431336
431346
|
if (!resp.ok)
|
|
431337
431347
|
throw new Error(`HTTP ${resp.status}`);
|
|
431338
431348
|
const buf = Buffer.from(await resp.arrayBuffer());
|
|
431339
|
-
const dir = join44(tmpdir5(), "channel-files");
|
|
431340
|
-
|
|
431341
|
-
|
|
431342
|
-
const filePath = join44(dir, fileName);
|
|
431349
|
+
const dir = join44(tmpdir5(), "channel-files", randomUUID7());
|
|
431350
|
+
mkdirSync13(dir, { recursive: true });
|
|
431351
|
+
const filePath = join44(dir, basename21(fileName) || `file_${Date.now()}`);
|
|
431343
431352
|
writeFileSync14(filePath, buf);
|
|
431344
431353
|
envelope.text = msg.caption || "";
|
|
431345
431354
|
envelope.attachments = [
|
|
@@ -431442,19 +431451,20 @@ init_esbuild_shims();
|
|
|
431442
431451
|
|
|
431443
431452
|
// packages/channels/weixin/dist/WeixinAdapter.js
|
|
431444
431453
|
init_esbuild_shims();
|
|
431445
|
-
import {
|
|
431446
|
-
import {
|
|
431454
|
+
import { mkdirSync as mkdirSync15, writeFileSync as writeFileSync17 } from "node:fs";
|
|
431455
|
+
import { randomUUID as randomUUID9 } from "node:crypto";
|
|
431456
|
+
import { basename as basename22, join as join47 } from "node:path";
|
|
431447
431457
|
import { tmpdir as tmpdir6 } from "node:os";
|
|
431448
431458
|
|
|
431449
431459
|
// packages/channels/weixin/dist/accounts.js
|
|
431450
431460
|
init_esbuild_shims();
|
|
431451
|
-
import { existsSync as
|
|
431461
|
+
import { existsSync as existsSync28, mkdirSync as mkdirSync14, readFileSync as readFileSync23, writeFileSync as writeFileSync15, unlinkSync as unlinkSync5, chmodSync } from "node:fs";
|
|
431452
431462
|
import { join as join45 } from "node:path";
|
|
431453
431463
|
import { homedir as homedir20 } from "node:os";
|
|
431454
431464
|
var DEFAULT_BASE_URL = "https://ilinkai.weixin.qq.com";
|
|
431455
431465
|
function getStateDir() {
|
|
431456
431466
|
const dir = process.env["WEIXIN_STATE_DIR"] || join45(homedir20(), ".qwen", "channels", "weixin");
|
|
431457
|
-
if (!
|
|
431467
|
+
if (!existsSync28(dir)) {
|
|
431458
431468
|
mkdirSync14(dir, { recursive: true });
|
|
431459
431469
|
}
|
|
431460
431470
|
return dir;
|
|
@@ -431466,7 +431476,7 @@ function accountPath() {
|
|
|
431466
431476
|
__name(accountPath, "accountPath");
|
|
431467
431477
|
function loadAccount() {
|
|
431468
431478
|
const p2 = accountPath();
|
|
431469
|
-
if (!
|
|
431479
|
+
if (!existsSync28(p2))
|
|
431470
431480
|
return null;
|
|
431471
431481
|
try {
|
|
431472
431482
|
return JSON.parse(readFileSync23(p2, "utf-8"));
|
|
@@ -431483,7 +431493,7 @@ function saveAccount(data) {
|
|
|
431483
431493
|
__name(saveAccount, "saveAccount");
|
|
431484
431494
|
function clearAccount() {
|
|
431485
431495
|
const p2 = accountPath();
|
|
431486
|
-
if (
|
|
431496
|
+
if (existsSync28(p2)) {
|
|
431487
431497
|
unlinkSync5(p2);
|
|
431488
431498
|
}
|
|
431489
431499
|
}
|
|
@@ -431600,7 +431610,7 @@ var TypingStatus = {
|
|
|
431600
431610
|
};
|
|
431601
431611
|
|
|
431602
431612
|
// packages/channels/weixin/dist/monitor.js
|
|
431603
|
-
import { existsSync as
|
|
431613
|
+
import { existsSync as existsSync29, readFileSync as readFileSync24, writeFileSync as writeFileSync16 } from "node:fs";
|
|
431604
431614
|
import { join as join46 } from "node:path";
|
|
431605
431615
|
var contextTokens = /* @__PURE__ */ new Map();
|
|
431606
431616
|
function getContextToken(userId) {
|
|
@@ -431613,7 +431623,7 @@ function cursorPath() {
|
|
|
431613
431623
|
__name(cursorPath, "cursorPath");
|
|
431614
431624
|
function loadCursor() {
|
|
431615
431625
|
const p2 = cursorPath();
|
|
431616
|
-
if (
|
|
431626
|
+
if (existsSync29(p2))
|
|
431617
431627
|
return readFileSync24(p2, "utf-8").trim();
|
|
431618
431628
|
return "";
|
|
431619
431629
|
}
|
|
@@ -431640,10 +431650,6 @@ async function startPollLoop(params) {
|
|
|
431640
431650
|
throw new Error(`getUpdates error: ret=${resp.ret} errcode=${resp.errcode} ${resp.errmsg}`);
|
|
431641
431651
|
}
|
|
431642
431652
|
consecutiveErrors = 0;
|
|
431643
|
-
if (resp.get_updates_buf) {
|
|
431644
|
-
cursor = resp.get_updates_buf;
|
|
431645
|
-
saveCursor(cursor);
|
|
431646
|
-
}
|
|
431647
431653
|
if (resp.longpolling_timeout_ms && resp.longpolling_timeout_ms > 0) {
|
|
431648
431654
|
pollTimeoutMs = resp.longpolling_timeout_ms + 5e3;
|
|
431649
431655
|
}
|
|
@@ -431652,6 +431658,10 @@ async function startPollLoop(params) {
|
|
|
431652
431658
|
await processMessage(msg, onMessage);
|
|
431653
431659
|
}
|
|
431654
431660
|
}
|
|
431661
|
+
if (resp.get_updates_buf) {
|
|
431662
|
+
cursor = resp.get_updates_buf;
|
|
431663
|
+
saveCursor(cursor);
|
|
431664
|
+
}
|
|
431655
431665
|
} catch (err2) {
|
|
431656
431666
|
if (abortSignal.aborted)
|
|
431657
431667
|
break;
|
|
@@ -431731,7 +431741,7 @@ __name(processMessage, "processMessage");
|
|
|
431731
431741
|
|
|
431732
431742
|
// packages/channels/weixin/dist/send.js
|
|
431733
431743
|
init_esbuild_shims();
|
|
431734
|
-
import { randomUUID as
|
|
431744
|
+
import { randomUUID as randomUUID8 } from "node:crypto";
|
|
431735
431745
|
function markdownToPlainText(text) {
|
|
431736
431746
|
return text.replace(/```[\s\S]*?\n([\s\S]*?)```/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/\*\*\*(.+?)\*\*\*/g, "$1").replace(/\*\*(.+?)\*\*/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/___(.+?)___/g, "$1").replace(/__(.+?)__/g, "$1").replace(/_(.+?)_/g, "$1").replace(/~~(.+?)~~/g, "$1").replace(/^#{1,6}\s+/gm, "").replace(/\[([^\]]+)\]\(([^)]+)\)/g, "$1 ($2)").replace(/!\[([^\]]*)\]\([^)]+\)/g, "[$1]").replace(/^>\s+/gm, "").replace(/^[-*_]{3,}$/gm, "---").replace(/^[\s]*[-*+]\s+/gm, "- ").replace(/^[\s]*(\d+)\.\s+/gm, "$1. ").replace(/\n{3,}/g, "\n\n").trim();
|
|
431737
431747
|
}
|
|
@@ -431742,7 +431752,7 @@ async function sendText(params) {
|
|
|
431742
431752
|
await sendMessage(baseUrl, token2, {
|
|
431743
431753
|
to_user_id: to,
|
|
431744
431754
|
from_user_id: "",
|
|
431745
|
-
client_id:
|
|
431755
|
+
client_id: randomUUID8(),
|
|
431746
431756
|
message_type: MessageType.BOT,
|
|
431747
431757
|
message_state: MessageState.FINISH,
|
|
431748
431758
|
context_token: contextToken,
|
|
@@ -431863,10 +431873,9 @@ var WeixinChannel = class extends ChannelBase {
|
|
|
431863
431873
|
if (file2) {
|
|
431864
431874
|
try {
|
|
431865
431875
|
const fileData = await downloadAndDecrypt(file2.encryptQueryParam, file2.aesKey);
|
|
431866
|
-
const dir = join47(tmpdir6(), "channel-files");
|
|
431867
|
-
|
|
431868
|
-
|
|
431869
|
-
const filePath = join47(dir, file2.fileName);
|
|
431876
|
+
const dir = join47(tmpdir6(), "channel-files", randomUUID9());
|
|
431877
|
+
mkdirSync15(dir, { recursive: true });
|
|
431878
|
+
const filePath = join47(dir, basename22(file2.fileName) || `file_${Date.now()}`);
|
|
431870
431879
|
writeFileSync17(filePath, fileData);
|
|
431871
431880
|
envelope.attachments = [
|
|
431872
431881
|
{
|
|
@@ -431948,8 +431957,9 @@ init_esbuild_shims();
|
|
|
431948
431957
|
|
|
431949
431958
|
// packages/channels/dingtalk/dist/DingtalkAdapter.js
|
|
431950
431959
|
init_esbuild_shims();
|
|
431951
|
-
import {
|
|
431952
|
-
import {
|
|
431960
|
+
import { mkdirSync as mkdirSync16, writeFileSync as writeFileSync18 } from "node:fs";
|
|
431961
|
+
import { randomUUID as randomUUID10 } from "node:crypto";
|
|
431962
|
+
import { basename as basename23, join as join48 } from "node:path";
|
|
431953
431963
|
import { tmpdir as tmpdir7 } from "node:os";
|
|
431954
431964
|
|
|
431955
431965
|
// node_modules/dingtalk-stream-sdk-nodejs/dist/index.mjs
|
|
@@ -432798,7 +432808,7 @@ init_esbuild_shims();
|
|
|
432798
432808
|
|
|
432799
432809
|
// node_modules/axios/lib/platform/node/index.js
|
|
432800
432810
|
init_esbuild_shims();
|
|
432801
|
-
import
|
|
432811
|
+
import crypto15 from "crypto";
|
|
432802
432812
|
|
|
432803
432813
|
// node_modules/axios/lib/platform/node/classes/URLSearchParams.js
|
|
432804
432814
|
init_esbuild_shims();
|
|
@@ -432817,7 +432827,7 @@ var generateString = /* @__PURE__ */ __name((size = 16, alphabet2 = ALPHABET.ALP
|
|
|
432817
432827
|
let str2 = "";
|
|
432818
432828
|
const { length } = alphabet2;
|
|
432819
432829
|
const randomValues = new Uint32Array(size);
|
|
432820
|
-
|
|
432830
|
+
crypto15.randomFillSync(randomValues);
|
|
432821
432831
|
for (let i4 = 0; i4 < size; i4++) {
|
|
432822
432832
|
str2 += alphabet2[randomValues[i4] % length];
|
|
432823
432833
|
}
|
|
@@ -436654,10 +436664,9 @@ var DingtalkChannel = class extends ChannelBase {
|
|
|
436654
436664
|
}
|
|
436655
436665
|
];
|
|
436656
436666
|
} else {
|
|
436657
|
-
const dir = join48(tmpdir7(), "channel-files");
|
|
436658
|
-
|
|
436659
|
-
|
|
436660
|
-
const safeName = fileName || `dingtalk_${mediaType}_${Date.now()}`;
|
|
436667
|
+
const dir = join48(tmpdir7(), "channel-files", randomUUID10());
|
|
436668
|
+
mkdirSync16(dir, { recursive: true });
|
|
436669
|
+
const safeName = basename23(fileName || "") || `dingtalk_${mediaType}_${Date.now()}`;
|
|
436661
436670
|
const filePath = join48(dir, safeName);
|
|
436662
436671
|
writeFileSync18(filePath, media.buffer);
|
|
436663
436672
|
if (envelope.text === `(file: ${fileName || "file"})` || envelope.text === "(audio)" || envelope.text === "(video)") {
|
|
@@ -436699,7 +436708,7 @@ var DingtalkChannel = class extends ChannelBase {
|
|
|
436699
436708
|
const content = this.extractContent(data);
|
|
436700
436709
|
let cleanText = content.text;
|
|
436701
436710
|
if (isMentioned) {
|
|
436702
|
-
cleanText = cleanText.replace(/@\S
|
|
436711
|
+
cleanText = cleanText.replace(/@\S+/, "").trim();
|
|
436703
436712
|
}
|
|
436704
436713
|
const quoted = this.extractQuotedContext(data);
|
|
436705
436714
|
const chatId = conversationId || sessionWebhook;
|
|
@@ -436836,7 +436845,7 @@ __name(parseChannelConfig, "parseChannelConfig");
|
|
|
436836
436845
|
// packages/cli/src/commands/channel/pidfile.ts
|
|
436837
436846
|
init_esbuild_shims();
|
|
436838
436847
|
import {
|
|
436839
|
-
existsSync as
|
|
436848
|
+
existsSync as existsSync30,
|
|
436840
436849
|
readFileSync as readFileSync25,
|
|
436841
436850
|
writeFileSync as writeFileSync19,
|
|
436842
436851
|
mkdirSync as mkdirSync17,
|
|
@@ -436859,7 +436868,7 @@ function isProcessAlive(pid) {
|
|
|
436859
436868
|
__name(isProcessAlive, "isProcessAlive");
|
|
436860
436869
|
function readServiceInfo() {
|
|
436861
436870
|
const filePath = pidFilePath();
|
|
436862
|
-
if (!
|
|
436871
|
+
if (!existsSync30(filePath)) return null;
|
|
436863
436872
|
let info2;
|
|
436864
436873
|
try {
|
|
436865
436874
|
info2 = JSON.parse(readFileSync25(filePath, "utf-8"));
|
|
@@ -436883,7 +436892,7 @@ __name(readServiceInfo, "readServiceInfo");
|
|
|
436883
436892
|
function writeServiceInfo(channels) {
|
|
436884
436893
|
const filePath = pidFilePath();
|
|
436885
436894
|
const dir = path101.dirname(filePath);
|
|
436886
|
-
if (!
|
|
436895
|
+
if (!existsSync30(dir)) {
|
|
436887
436896
|
mkdirSync17(dir, { recursive: true });
|
|
436888
436897
|
}
|
|
436889
436898
|
const info2 = {
|
|
@@ -436896,7 +436905,7 @@ function writeServiceInfo(channels) {
|
|
|
436896
436905
|
__name(writeServiceInfo, "writeServiceInfo");
|
|
436897
436906
|
function removeServiceInfo() {
|
|
436898
436907
|
const filePath = pidFilePath();
|
|
436899
|
-
if (
|
|
436908
|
+
if (existsSync30(filePath)) {
|
|
436900
436909
|
try {
|
|
436901
436910
|
unlinkSync6(filePath);
|
|
436902
436911
|
} catch {
|
|
@@ -436925,6 +436934,7 @@ __name(waitForExit, "waitForExit");
|
|
|
436925
436934
|
|
|
436926
436935
|
// packages/cli/src/commands/channel/start.ts
|
|
436927
436936
|
var MAX_CRASH_RESTARTS = 3;
|
|
436937
|
+
var CRASH_WINDOW_MS = 5 * 60 * 1e3;
|
|
436928
436938
|
var RESTART_DELAY_MS = 3e3;
|
|
436929
436939
|
function sessionsPath() {
|
|
436930
436940
|
return path102.join(os35.homedir(), ".qwen", "channels", "sessions.json");
|
|
@@ -437040,11 +437050,16 @@ async function startSingle(name4) {
|
|
|
437040
437050
|
}
|
|
437041
437051
|
const cliEntryPath = findCliEntryPath();
|
|
437042
437052
|
let shuttingDown = false;
|
|
437043
|
-
|
|
437053
|
+
const crashTimestamps = [];
|
|
437044
437054
|
const bridgeOpts = { cliEntryPath, cwd: config2.cwd, model: config2.model };
|
|
437045
437055
|
let bridge = new AcpBridge(bridgeOpts);
|
|
437046
437056
|
await bridge.start();
|
|
437047
|
-
const router = new SessionRouter(
|
|
437057
|
+
const router = new SessionRouter(
|
|
437058
|
+
bridge,
|
|
437059
|
+
config2.cwd,
|
|
437060
|
+
config2.sessionScope,
|
|
437061
|
+
sessionsPath()
|
|
437062
|
+
);
|
|
437048
437063
|
const channels = /* @__PURE__ */ new Map();
|
|
437049
437064
|
const channel = createChannel(name4, config2, bridge, { router });
|
|
437050
437065
|
channels.set(name4, channel);
|
|
@@ -437054,17 +437069,22 @@ async function startSingle(name4) {
|
|
|
437054
437069
|
writeStdoutLine(`[Channel] "${name4}" is running. Press Ctrl+C to stop.`);
|
|
437055
437070
|
bridge.on("disconnected", async () => {
|
|
437056
437071
|
if (shuttingDown) return;
|
|
437057
|
-
|
|
437058
|
-
|
|
437072
|
+
const now = Date.now();
|
|
437073
|
+
crashTimestamps.push(now);
|
|
437074
|
+
const recentCrashes = crashTimestamps.filter(
|
|
437075
|
+
(ts) => now - ts < CRASH_WINDOW_MS
|
|
437076
|
+
);
|
|
437077
|
+
if (recentCrashes.length > MAX_CRASH_RESTARTS) {
|
|
437059
437078
|
writeStderrLine(
|
|
437060
|
-
`[Channel] Bridge crashed ${
|
|
437079
|
+
`[Channel] Bridge crashed ${recentCrashes.length} times in ${CRASH_WINDOW_MS / 1e3}s. Giving up.`
|
|
437061
437080
|
);
|
|
437081
|
+
channel.disconnect();
|
|
437062
437082
|
router.clearAll();
|
|
437063
437083
|
removeServiceInfo();
|
|
437064
437084
|
process.exit(1);
|
|
437065
437085
|
}
|
|
437066
437086
|
writeStderrLine(
|
|
437067
|
-
`[Channel] Bridge crashed (${
|
|
437087
|
+
`[Channel] Bridge crashed (${recentCrashes.length}/${MAX_CRASH_RESTARTS} in window). Restarting in ${RESTART_DELAY_MS / 1e3}s...`
|
|
437068
437088
|
);
|
|
437069
437089
|
await new Promise((r5) => setTimeout(r5, RESTART_DELAY_MS));
|
|
437070
437090
|
try {
|
|
@@ -437077,7 +437097,6 @@ async function startSingle(name4) {
|
|
|
437077
437097
|
writeStdoutLine(
|
|
437078
437098
|
`[Channel] Bridge restarted. Sessions restored: ${result.restored}, failed: ${result.failed}`
|
|
437079
437099
|
);
|
|
437080
|
-
crashCount = 0;
|
|
437081
437100
|
} catch (err2) {
|
|
437082
437101
|
writeStderrLine(
|
|
437083
437102
|
`[Channel] Failed to restart bridge: ${err2 instanceof Error ? err2.message : String(err2)}`
|
|
@@ -437126,7 +437145,7 @@ async function startAll() {
|
|
|
437126
437145
|
const cliEntryPath = findCliEntryPath();
|
|
437127
437146
|
const defaultCwd = process.cwd();
|
|
437128
437147
|
let shuttingDown = false;
|
|
437129
|
-
|
|
437148
|
+
const crashTimestamps = [];
|
|
437130
437149
|
const models = [
|
|
437131
437150
|
...new Set(parsed.map((p2) => p2.config.model).filter(Boolean))
|
|
437132
437151
|
];
|
|
@@ -437143,6 +437162,9 @@ async function startAll() {
|
|
|
437143
437162
|
let bridge = new AcpBridge(bridgeOpts);
|
|
437144
437163
|
await bridge.start();
|
|
437145
437164
|
const router = new SessionRouter(bridge, defaultCwd, "user", sessionsPath());
|
|
437165
|
+
for (const { name: name4, config: config2 } of parsed) {
|
|
437166
|
+
router.setChannelScope(name4, config2.sessionScope);
|
|
437167
|
+
}
|
|
437146
437168
|
const channels = /* @__PURE__ */ new Map();
|
|
437147
437169
|
writeStdoutLine(
|
|
437148
437170
|
`[Channel] Starting ${parsed.length} channel(s): ${parsed.map((p2) => p2.name).join(", ")}`
|
|
@@ -437174,17 +437196,27 @@ async function startAll() {
|
|
|
437174
437196
|
);
|
|
437175
437197
|
bridge.on("disconnected", async () => {
|
|
437176
437198
|
if (shuttingDown) return;
|
|
437177
|
-
|
|
437178
|
-
|
|
437199
|
+
const now = Date.now();
|
|
437200
|
+
crashTimestamps.push(now);
|
|
437201
|
+
const recentCrashes = crashTimestamps.filter(
|
|
437202
|
+
(ts) => now - ts < CRASH_WINDOW_MS
|
|
437203
|
+
);
|
|
437204
|
+
if (recentCrashes.length > MAX_CRASH_RESTARTS) {
|
|
437179
437205
|
writeStderrLine(
|
|
437180
|
-
`[Channel] Bridge crashed ${
|
|
437206
|
+
`[Channel] Bridge crashed ${recentCrashes.length} times in ${CRASH_WINDOW_MS / 1e3}s. Giving up.`
|
|
437181
437207
|
);
|
|
437208
|
+
for (const channel of channels.values()) {
|
|
437209
|
+
try {
|
|
437210
|
+
channel.disconnect();
|
|
437211
|
+
} catch {
|
|
437212
|
+
}
|
|
437213
|
+
}
|
|
437182
437214
|
router.clearAll();
|
|
437183
437215
|
removeServiceInfo();
|
|
437184
437216
|
process.exit(1);
|
|
437185
437217
|
}
|
|
437186
437218
|
writeStderrLine(
|
|
437187
|
-
`[Channel] Bridge crashed (${
|
|
437219
|
+
`[Channel] Bridge crashed (${recentCrashes.length}/${MAX_CRASH_RESTARTS} in window). Restarting in ${RESTART_DELAY_MS / 1e3}s...`
|
|
437188
437220
|
);
|
|
437189
437221
|
await new Promise((r5) => setTimeout(r5, RESTART_DELAY_MS));
|
|
437190
437222
|
try {
|
|
@@ -437199,7 +437231,6 @@ async function startAll() {
|
|
|
437199
437231
|
writeStdoutLine(
|
|
437200
437232
|
`[Channel] Bridge restarted. Sessions restored: ${result.restored}, failed: ${result.failed}`
|
|
437201
437233
|
);
|
|
437202
|
-
crashCount = 0;
|
|
437203
437234
|
} catch (err2) {
|
|
437204
437235
|
writeStderrLine(
|
|
437205
437236
|
`[Channel] Failed to restart bridge: ${err2 instanceof Error ? err2.message : String(err2)}`
|
|
@@ -437281,7 +437312,7 @@ var stopCommand = {
|
|
|
437281
437312
|
|
|
437282
437313
|
// packages/cli/src/commands/channel/status.ts
|
|
437283
437314
|
init_esbuild_shims();
|
|
437284
|
-
import { existsSync as
|
|
437315
|
+
import { existsSync as existsSync31, readFileSync as readFileSync26 } from "node:fs";
|
|
437285
437316
|
import * as path103 from "node:path";
|
|
437286
437317
|
import * as os36 from "node:os";
|
|
437287
437318
|
function formatUptime(startedAt) {
|
|
@@ -437315,7 +437346,7 @@ var statusCommand2 = {
|
|
|
437315
437346
|
"sessions.json"
|
|
437316
437347
|
);
|
|
437317
437348
|
const sessionCounts = /* @__PURE__ */ new Map();
|
|
437318
|
-
if (
|
|
437349
|
+
if (existsSync31(sessionsPath2)) {
|
|
437319
437350
|
try {
|
|
437320
437351
|
const entries = JSON.parse(
|
|
437321
437352
|
readFileSync26(sessionsPath2, "utf-8")
|
|
@@ -440981,7 +441012,7 @@ init_esbuild_shims();
|
|
|
440981
441012
|
// packages/cli/src/nonInteractive/io/BaseJsonOutputAdapter.ts
|
|
440982
441013
|
init_esbuild_shims();
|
|
440983
441014
|
init_dist4();
|
|
440984
|
-
import { randomUUID as
|
|
441015
|
+
import { randomUUID as randomUUID12 } from "node:crypto";
|
|
440985
441016
|
|
|
440986
441017
|
// packages/cli/src/utils/nonInteractiveHelpers.ts
|
|
440987
441018
|
init_esbuild_shims();
|
|
@@ -441271,7 +441302,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
441271
441302
|
|
|
441272
441303
|
// packages/cli/src/generated/git-commit.ts
|
|
441273
441304
|
init_esbuild_shims();
|
|
441274
|
-
var GIT_COMMIT_INFO = "
|
|
441305
|
+
var GIT_COMMIT_INFO = "1c1fb9b11";
|
|
441275
441306
|
|
|
441276
441307
|
// packages/cli/src/utils/systemInfo.ts
|
|
441277
441308
|
async function getNpmVersion() {
|
|
@@ -443004,7 +443035,7 @@ init_esbuild_shims();
|
|
|
443004
443035
|
|
|
443005
443036
|
// packages/cli/src/ui/utils/export/collect.ts
|
|
443006
443037
|
init_esbuild_shims();
|
|
443007
|
-
import { randomUUID as
|
|
443038
|
+
import { randomUUID as randomUUID11 } from "node:crypto";
|
|
443008
443039
|
|
|
443009
443040
|
// packages/cli/src/acp-integration/session/HistoryReplayer.ts
|
|
443010
443041
|
init_esbuild_shims();
|
|
@@ -443885,7 +443916,7 @@ var ExportSessionContext = class {
|
|
|
443885
443916
|
return this.activeRecordTimestamp ?? (/* @__PURE__ */ new Date()).toISOString();
|
|
443886
443917
|
}
|
|
443887
443918
|
getMessageUuid() {
|
|
443888
|
-
return this.activeRecordId ??
|
|
443919
|
+
return this.activeRecordId ?? randomUUID11();
|
|
443889
443920
|
}
|
|
443890
443921
|
handleMessageChunk(role, content, messageRole = role, usageMetadata) {
|
|
443891
443922
|
if (content.type !== "text" || !content.text) return;
|
|
@@ -445196,14 +445227,14 @@ __name(getIdeStatusMessage, "getIdeStatusMessage");
|
|
|
445196
445227
|
function formatFileList(openFiles) {
|
|
445197
445228
|
const basenameCounts = /* @__PURE__ */ new Map();
|
|
445198
445229
|
for (const file2 of openFiles) {
|
|
445199
|
-
const
|
|
445200
|
-
basenameCounts.set(
|
|
445230
|
+
const basename32 = path108.basename(file2.path);
|
|
445231
|
+
basenameCounts.set(basename32, (basenameCounts.get(basename32) || 0) + 1);
|
|
445201
445232
|
}
|
|
445202
445233
|
const fileList = openFiles.map((file2) => {
|
|
445203
|
-
const
|
|
445204
|
-
const isDuplicate = (basenameCounts.get(
|
|
445234
|
+
const basename32 = path108.basename(file2.path);
|
|
445235
|
+
const isDuplicate = (basenameCounts.get(basename32) || 0) > 1;
|
|
445205
445236
|
const parentDir = path108.basename(path108.dirname(file2.path));
|
|
445206
|
-
const displayName = isDuplicate ? `${
|
|
445237
|
+
const displayName = isDuplicate ? `${basename32} (/${parentDir})` : basename32;
|
|
445207
445238
|
return ` - ${displayName}${file2.isActive ? " (active)" : ""}`;
|
|
445208
445239
|
}).join("\n");
|
|
445209
445240
|
const infoMessage = `
|
|
@@ -450226,7 +450257,7 @@ var BaseJsonOutputAdapter = class {
|
|
|
450226
450257
|
* @param state - Message state to reset
|
|
450227
450258
|
*/
|
|
450228
450259
|
startAssistantMessageInternal(state) {
|
|
450229
|
-
state.messageId =
|
|
450260
|
+
state.messageId = randomUUID12();
|
|
450230
450261
|
state.blocks = [];
|
|
450231
450262
|
state.openBlocks = /* @__PURE__ */ new Set();
|
|
450232
450263
|
state.usage = this.createUsage();
|
|
@@ -450663,7 +450694,7 @@ ${event.value}`, null);
|
|
|
450663
450694
|
const content = partsToContentBlock(parts2);
|
|
450664
450695
|
const message = {
|
|
450665
450696
|
type: "user",
|
|
450666
|
-
uuid:
|
|
450697
|
+
uuid: randomUUID12(),
|
|
450667
450698
|
session_id: this.getSessionId(),
|
|
450668
450699
|
parent_tool_use_id: parentToolUseId ?? null,
|
|
450669
450700
|
message: {
|
|
@@ -450716,7 +450747,7 @@ ${event.value}`, null);
|
|
|
450716
450747
|
}
|
|
450717
450748
|
const message = {
|
|
450718
450749
|
type: "user",
|
|
450719
|
-
uuid:
|
|
450750
|
+
uuid: randomUUID12(),
|
|
450720
450751
|
session_id: this.getSessionId(),
|
|
450721
450752
|
parent_tool_use_id: parentToolUseId,
|
|
450722
450753
|
message: {
|
|
@@ -450735,7 +450766,7 @@ ${event.value}`, null);
|
|
|
450735
450766
|
const systemMessage = {
|
|
450736
450767
|
type: "system",
|
|
450737
450768
|
subtype,
|
|
450738
|
-
uuid:
|
|
450769
|
+
uuid: randomUUID12(),
|
|
450739
450770
|
session_id: this.getSessionId(),
|
|
450740
450771
|
parent_tool_use_id: null,
|
|
450741
450772
|
data
|
|
@@ -450763,7 +450794,7 @@ ${event.value}`, null);
|
|
|
450763
450794
|
buildResultMessage(options2, lastAssistantMessage) {
|
|
450764
450795
|
const usage2 = options2.usage ?? createExtendedUsage();
|
|
450765
450796
|
const resultText = options2.summary ?? (lastAssistantMessage ? extractTextFromBlocks(lastAssistantMessage.message.content) : "");
|
|
450766
|
-
const baseUuid =
|
|
450797
|
+
const baseUuid = randomUUID12();
|
|
450767
450798
|
const baseSessionId = this.getSessionId();
|
|
450768
450799
|
if (options2.isError) {
|
|
450769
450800
|
const errorMessage = options2.errorMessage ?? "Unknown error";
|
|
@@ -450817,7 +450848,7 @@ ${event.value}`, null);
|
|
|
450817
450848
|
return {
|
|
450818
450849
|
type: "result",
|
|
450819
450850
|
subtype: "error_during_execution",
|
|
450820
|
-
uuid:
|
|
450851
|
+
uuid: randomUUID12(),
|
|
450821
450852
|
session_id: this.getSessionId(),
|
|
450822
450853
|
is_error: true,
|
|
450823
450854
|
duration_ms: 0,
|
|
@@ -450955,7 +450986,7 @@ var JsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
|
450955
450986
|
|
|
450956
450987
|
// packages/cli/src/nonInteractive/io/StreamJsonOutputAdapter.ts
|
|
450957
450988
|
init_esbuild_shims();
|
|
450958
|
-
import { randomUUID as
|
|
450989
|
+
import { randomUUID as randomUUID13 } from "node:crypto";
|
|
450959
450990
|
var StreamJsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
450960
450991
|
constructor(config2, includePartialMessages) {
|
|
450961
450992
|
super(config2);
|
|
@@ -450993,7 +451024,7 @@ var StreamJsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
|
450993
451024
|
if (this.mainTurnMessageStartEmitted && this.includePartialMessages) {
|
|
450994
451025
|
const partial2 = {
|
|
450995
451026
|
type: "stream_event",
|
|
450996
|
-
uuid:
|
|
451027
|
+
uuid: randomUUID13(),
|
|
450997
451028
|
session_id: this.getSessionId(),
|
|
450998
451029
|
parent_tool_use_id: null,
|
|
450999
451030
|
event: { type: "message_stop" }
|
|
@@ -451143,7 +451174,7 @@ var StreamJsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
|
451143
451174
|
}
|
|
451144
451175
|
const partial2 = {
|
|
451145
451176
|
type: "stream_event",
|
|
451146
|
-
uuid:
|
|
451177
|
+
uuid: randomUUID13(),
|
|
451147
451178
|
session_id: this.getSessionId(),
|
|
451148
451179
|
parent_tool_use_id: null,
|
|
451149
451180
|
event: {
|
|
@@ -451166,7 +451197,7 @@ var StreamJsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
|
451166
451197
|
}
|
|
451167
451198
|
const partial2 = {
|
|
451168
451199
|
type: "stream_event",
|
|
451169
|
-
uuid:
|
|
451200
|
+
uuid: randomUUID13(),
|
|
451170
451201
|
session_id: this.getSessionId(),
|
|
451171
451202
|
parent_tool_use_id: parentToolUseId,
|
|
451172
451203
|
event
|
|
@@ -451823,7 +451854,7 @@ init_esbuild_shims();
|
|
|
451823
451854
|
// packages/cli/src/nonInteractive/control/controllers/baseController.ts
|
|
451824
451855
|
init_esbuild_shims();
|
|
451825
451856
|
init_dist4();
|
|
451826
|
-
import { randomUUID as
|
|
451857
|
+
import { randomUUID as randomUUID14 } from "node:crypto";
|
|
451827
451858
|
var DEFAULT_REQUEST_TIMEOUT_MS = 3e4;
|
|
451828
451859
|
var BaseController = class {
|
|
451829
451860
|
static {
|
|
@@ -451884,7 +451915,7 @@ var BaseController = class {
|
|
|
451884
451915
|
if (signal?.aborted) {
|
|
451885
451916
|
throw new Error("Request aborted");
|
|
451886
451917
|
}
|
|
451887
|
-
const requestId =
|
|
451918
|
+
const requestId = randomUUID14();
|
|
451888
451919
|
return new Promise((resolve36, reject) => {
|
|
451889
451920
|
const abortHandler = /* @__PURE__ */ __name(() => {
|
|
451890
451921
|
this.registry.deregisterOutgoingRequest(requestId);
|
|
@@ -468998,7 +469029,7 @@ var import_react64 = __toESM(require_react(), 1);
|
|
|
468998
469029
|
|
|
468999
469030
|
// packages/cli/src/ui/components/messages/DiffRenderer.tsx
|
|
469000
469031
|
init_esbuild_shims();
|
|
469001
|
-
import
|
|
469032
|
+
import crypto16 from "node:crypto";
|
|
469002
469033
|
var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
|
|
469003
469034
|
function parseDiffWithLineNumbers(diffContent) {
|
|
469004
469035
|
const lines = diffContent.split("\n");
|
|
@@ -469154,7 +469185,7 @@ var renderDiffContent = /* @__PURE__ */ __name((parsedLines, filename, tabWidth
|
|
|
469154
469185
|
if (!isFinite(baseIndentation)) {
|
|
469155
469186
|
baseIndentation = 0;
|
|
469156
469187
|
}
|
|
469157
|
-
const key = filename ? `diff-box-${filename}` : `diff-box-${
|
|
469188
|
+
const key = filename ? `diff-box-${filename}` : `diff-box-${crypto16.createHash("sha1").update(JSON.stringify(parsedLines)).digest("hex")}`;
|
|
469158
469189
|
let lastLineNumber = null;
|
|
469159
469190
|
const MAX_CONTEXT_LINES_WITHOUT_GAP = 5;
|
|
469160
469191
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
@@ -494089,7 +494120,7 @@ ${commandToExecute.subCommands.map((sc) => ` - ${sc.name}: ${sc.description ||
|
|
|
494089
494120
|
|
|
494090
494121
|
// packages/cli/src/ui/AppContainer.tsx
|
|
494091
494122
|
import * as fs122 from "node:fs";
|
|
494092
|
-
import { basename as
|
|
494123
|
+
import { basename as basename30 } from "node:path";
|
|
494093
494124
|
|
|
494094
494125
|
// packages/cli/src/utils/windowTitle.ts
|
|
494095
494126
|
init_esbuild_shims();
|
|
@@ -494131,7 +494162,7 @@ init_dist4();
|
|
|
494131
494162
|
init_esbuild_shims();
|
|
494132
494163
|
var import_react140 = __toESM(require_react(), 1);
|
|
494133
494164
|
init_dist4();
|
|
494134
|
-
import
|
|
494165
|
+
import crypto17 from "node:crypto";
|
|
494135
494166
|
import path125 from "node:path";
|
|
494136
494167
|
import os44 from "node:os";
|
|
494137
494168
|
import fs113 from "node:fs";
|
|
@@ -494177,7 +494208,7 @@ var useShellCommandProcessor = /* @__PURE__ */ __name((addItemToHistory, setPend
|
|
|
494177
494208
|
let pwdFilePath;
|
|
494178
494209
|
if (!isWindows9) {
|
|
494179
494210
|
let command2 = rawQuery.trim();
|
|
494180
|
-
const pwdFileName = `shell_pwd_${
|
|
494211
|
+
const pwdFileName = `shell_pwd_${crypto17.randomBytes(6).toString("hex")}.tmp`;
|
|
494181
494212
|
pwdFilePath = path125.join(os44.tmpdir(), pwdFileName);
|
|
494182
494213
|
if (!command2.endsWith(";") && !command2.endsWith("&")) {
|
|
494183
494214
|
command2 += ";";
|
|
@@ -497069,14 +497100,14 @@ var Temp = {
|
|
|
497069
497100
|
}
|
|
497070
497101
|
}, "purgeSyncAll"),
|
|
497071
497102
|
truncate: /* @__PURE__ */ __name((filePath) => {
|
|
497072
|
-
const
|
|
497073
|
-
if (
|
|
497103
|
+
const basename32 = path129.basename(filePath);
|
|
497104
|
+
if (basename32.length <= LIMIT_BASENAME_LENGTH)
|
|
497074
497105
|
return filePath;
|
|
497075
|
-
const truncable = /^(\.?)(.*?)((?:\.[^.]+)?(?:\.tmp-\d{10}[a-f0-9]{6})?)$/.exec(
|
|
497106
|
+
const truncable = /^(\.?)(.*?)((?:\.[^.]+)?(?:\.tmp-\d{10}[a-f0-9]{6})?)$/.exec(basename32);
|
|
497076
497107
|
if (!truncable)
|
|
497077
497108
|
return filePath;
|
|
497078
|
-
const truncationLength =
|
|
497079
|
-
return `${filePath.slice(0, -
|
|
497109
|
+
const truncationLength = basename32.length - LIMIT_BASENAME_LENGTH;
|
|
497110
|
+
return `${filePath.slice(0, -basename32.length)}${truncable[1]}${truncable[2].slice(0, -truncationLength)}${truncable[3]}`;
|
|
497080
497111
|
}, "truncate")
|
|
497081
497112
|
};
|
|
497082
497113
|
node_default3(Temp.purgeSyncAll);
|
|
@@ -500583,7 +500614,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
500583
500614
|
const branchName = useGitBranchName(config2.getTargetDir());
|
|
500584
500615
|
const mainControlsRef = (0, import_react163.useRef)(null);
|
|
500585
500616
|
const originalTitleRef = (0, import_react163.useRef)(
|
|
500586
|
-
computeWindowTitle(
|
|
500617
|
+
computeWindowTitle(basename30(config2.getTargetDir()))
|
|
500587
500618
|
);
|
|
500588
500619
|
const lastTitleRef = (0, import_react163.useRef)(null);
|
|
500589
500620
|
const staticExtraHeight = 3;
|
|
@@ -504215,7 +504246,7 @@ var QwenAgent = class {
|
|
|
504215
504246
|
async initialize(args2) {
|
|
504216
504247
|
this.clientCapabilities = args2.clientCapabilities;
|
|
504217
504248
|
const authMethods = buildAuthMethods();
|
|
504218
|
-
const version2 = "0.14.0-preview.
|
|
504249
|
+
const version2 = "0.14.0-preview.3";
|
|
504219
504250
|
return {
|
|
504220
504251
|
protocolVersion: PROTOCOL_VERSION,
|
|
504221
504252
|
agentInfo: {
|
|
@@ -504654,7 +504685,7 @@ ${reason.stack}` : ""}`;
|
|
|
504654
504685
|
__name(setupUnhandledRejectionHandler, "setupUnhandledRejectionHandler");
|
|
504655
504686
|
async function startInteractiveUI(config2, settings, startupWarnings, workspaceRoot = process.cwd(), initializationResult) {
|
|
504656
504687
|
const version2 = await getCliVersion();
|
|
504657
|
-
setWindowTitle(
|
|
504688
|
+
setWindowTitle(basename31(workspaceRoot), settings);
|
|
504658
504689
|
const AppWrapper = /* @__PURE__ */ __name(() => {
|
|
504659
504690
|
const kittyProtocolStatus = useKittyKeyboardProtocol();
|
|
504660
504691
|
const nodeMajorVersion = parseInt(process.versions.node.split(".")[0], 10);
|