@rdmind/rdmind 0.1.4-alpha.0 → 0.1.4-alpha.10
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 +606 -445
- package/locales/en.js +77 -182
- package/locales/zh.js +75 -156
- package/package.json +2 -2
package/cli.js
CHANGED
|
@@ -37605,7 +37605,12 @@ var require_sign_stream = __commonJS({
|
|
|
37605
37605
|
}
|
|
37606
37606
|
__name(jwsSign, "jwsSign");
|
|
37607
37607
|
function SignStream(opts) {
|
|
37608
|
-
var secret = opts.secret
|
|
37608
|
+
var secret = opts.secret;
|
|
37609
|
+
secret = secret == null ? opts.privateKey : secret;
|
|
37610
|
+
secret = secret == null ? opts.key : secret;
|
|
37611
|
+
if (/^hs/i.test(opts.header.alg) === true && secret == null) {
|
|
37612
|
+
throw new TypeError("secret must be a string or buffer or a KeyObject");
|
|
37613
|
+
}
|
|
37609
37614
|
var secretStream = new DataStream(secret);
|
|
37610
37615
|
this.readable = true;
|
|
37611
37616
|
this.header = opts.header;
|
|
@@ -37728,7 +37733,12 @@ var require_verify_stream = __commonJS({
|
|
|
37728
37733
|
__name(jwsDecode, "jwsDecode");
|
|
37729
37734
|
function VerifyStream(opts) {
|
|
37730
37735
|
opts = opts || {};
|
|
37731
|
-
var secretOrKey = opts.secret
|
|
37736
|
+
var secretOrKey = opts.secret;
|
|
37737
|
+
secretOrKey = secretOrKey == null ? opts.publicKey : secretOrKey;
|
|
37738
|
+
secretOrKey = secretOrKey == null ? opts.key : secretOrKey;
|
|
37739
|
+
if (/^hs/i.test(opts.algorithm) === true && secretOrKey == null) {
|
|
37740
|
+
throw new TypeError("secret must be a string or buffer or a KeyObject");
|
|
37741
|
+
}
|
|
37732
37742
|
var secretStream = new DataStream(secretOrKey);
|
|
37733
37743
|
this.readable = true;
|
|
37734
37744
|
this.algorithm = opts.algorithm;
|
|
@@ -89290,6 +89300,8 @@ var init_subagent_statistics = __esm({
|
|
|
89290
89300
|
failedToolCalls = 0;
|
|
89291
89301
|
inputTokens = 0;
|
|
89292
89302
|
outputTokens = 0;
|
|
89303
|
+
thoughtTokens = 0;
|
|
89304
|
+
cachedTokens = 0;
|
|
89293
89305
|
toolUsage = /* @__PURE__ */ new Map();
|
|
89294
89306
|
start(now = Date.now()) {
|
|
89295
89307
|
this.startTimeMs = now;
|
|
@@ -89318,15 +89330,17 @@ var init_subagent_statistics = __esm({
|
|
|
89318
89330
|
tu.averageDurationMs = tu.count > 0 ? tu.totalDurationMs / tu.count : 0;
|
|
89319
89331
|
this.toolUsage.set(name3, tu);
|
|
89320
89332
|
}
|
|
89321
|
-
recordTokens(input, output) {
|
|
89333
|
+
recordTokens(input, output, thought = 0, cached2 = 0) {
|
|
89322
89334
|
this.inputTokens += Math.max(0, input || 0);
|
|
89323
89335
|
this.outputTokens += Math.max(0, output || 0);
|
|
89336
|
+
this.thoughtTokens += Math.max(0, thought || 0);
|
|
89337
|
+
this.cachedTokens += Math.max(0, cached2 || 0);
|
|
89324
89338
|
}
|
|
89325
89339
|
getSummary(now = Date.now()) {
|
|
89326
89340
|
const totalDurationMs = this.startTimeMs ? now - this.startTimeMs : 0;
|
|
89327
89341
|
const totalToolCalls = this.totalToolCalls;
|
|
89328
89342
|
const successRate = totalToolCalls > 0 ? this.successfulToolCalls / totalToolCalls * 100 : 0;
|
|
89329
|
-
const totalTokens = this.inputTokens + this.outputTokens;
|
|
89343
|
+
const totalTokens = this.inputTokens + this.outputTokens + this.thoughtTokens + this.cachedTokens;
|
|
89330
89344
|
const estimatedCost = this.inputTokens * 3e-5 + this.outputTokens * 6e-5;
|
|
89331
89345
|
return {
|
|
89332
89346
|
rounds: this.rounds,
|
|
@@ -89337,6 +89351,8 @@ var init_subagent_statistics = __esm({
|
|
|
89337
89351
|
successRate,
|
|
89338
89352
|
inputTokens: this.inputTokens,
|
|
89339
89353
|
outputTokens: this.outputTokens,
|
|
89354
|
+
thoughtTokens: this.thoughtTokens,
|
|
89355
|
+
cachedTokens: this.cachedTokens,
|
|
89340
89356
|
totalTokens,
|
|
89341
89357
|
estimatedCost,
|
|
89342
89358
|
toolUsage: Array.from(this.toolUsage.values())
|
|
@@ -89351,8 +89367,12 @@ var init_subagent_statistics = __esm({
|
|
|
89351
89367
|
`\u23F1\uFE0F Duration: ${this.fmtDuration(stats.totalDurationMs)} | \u{1F501} Rounds: ${stats.rounds}`
|
|
89352
89368
|
];
|
|
89353
89369
|
if (typeof stats.totalTokens === "number") {
|
|
89370
|
+
const parts = [
|
|
89371
|
+
`in ${stats.inputTokens ?? 0}`,
|
|
89372
|
+
`out ${stats.outputTokens ?? 0}`
|
|
89373
|
+
];
|
|
89354
89374
|
lines.push(
|
|
89355
|
-
`\u{1F522} Tokens: ${stats.totalTokens.toLocaleString()}${
|
|
89375
|
+
`\u{1F522} Tokens: ${stats.totalTokens.toLocaleString()}${parts.length ? ` (${parts.join(", ")})` : ""}`
|
|
89356
89376
|
);
|
|
89357
89377
|
}
|
|
89358
89378
|
return lines.join("\n");
|
|
@@ -89380,8 +89400,12 @@ var init_subagent_statistics = __esm({
|
|
|
89380
89400
|
`\u{1F527} Tools: ${stats.totalToolCalls} calls, ${sr.toFixed(1)}% success (${stats.successfulToolCalls} ok, ${stats.failedToolCalls} failed)`
|
|
89381
89401
|
);
|
|
89382
89402
|
if (typeof stats.totalTokens === "number") {
|
|
89403
|
+
const parts = [
|
|
89404
|
+
`in ${stats.inputTokens ?? 0}`,
|
|
89405
|
+
`out ${stats.outputTokens ?? 0}`
|
|
89406
|
+
];
|
|
89383
89407
|
lines.push(
|
|
89384
|
-
`\u{1F522} Tokens: ${stats.totalTokens.toLocaleString()} (
|
|
89408
|
+
`\u{1F522} Tokens: ${stats.totalTokens.toLocaleString()} (${parts.join(", ")})`
|
|
89385
89409
|
);
|
|
89386
89410
|
}
|
|
89387
89411
|
if (stats.toolUsage && stats.toolUsage.length) {
|
|
@@ -147556,6 +147580,7 @@ var init_uiTelemetry = __esm({
|
|
|
147556
147580
|
init_esbuild_shims();
|
|
147557
147581
|
init_constants();
|
|
147558
147582
|
init_tool_call_decision();
|
|
147583
|
+
init_constants();
|
|
147559
147584
|
createInitialModelMetrics = /* @__PURE__ */ __name(() => ({
|
|
147560
147585
|
api: {
|
|
147561
147586
|
totalRequests: 0,
|
|
@@ -160654,7 +160679,7 @@ var init_geminiContentGenerator = __esm({
|
|
|
160654
160679
|
config: {
|
|
160655
160680
|
...request4.config,
|
|
160656
160681
|
thinkingConfig: {
|
|
160657
|
-
includeThoughts:
|
|
160682
|
+
includeThoughts: false,
|
|
160658
160683
|
thinkingLevel
|
|
160659
160684
|
}
|
|
160660
160685
|
}
|
|
@@ -160801,7 +160826,7 @@ function createContentGeneratorConfig(config2, authType, generationConfig) {
|
|
|
160801
160826
|
};
|
|
160802
160827
|
}
|
|
160803
160828
|
async function createContentGenerator(config2, gcConfig, isInitialAuth) {
|
|
160804
|
-
const version3 = "0.1.4-alpha.
|
|
160829
|
+
const version3 = "0.1.4-alpha.10";
|
|
160805
160830
|
const userAgent2 = `QwenCode/${version3} (${process.platform}; ${process.arch})`;
|
|
160806
160831
|
const baseHeaders = {
|
|
160807
160832
|
"User-Agent": userAgent2
|
|
@@ -172624,6 +172649,12 @@ function getCachedEncodingForBuffer(buffer) {
|
|
|
172624
172649
|
cachedSystemEncoding = getSystemEncoding();
|
|
172625
172650
|
}
|
|
172626
172651
|
if (cachedSystemEncoding) {
|
|
172652
|
+
if (cachedSystemEncoding !== "utf-8") {
|
|
172653
|
+
const detected = detectEncodingFromBuffer(buffer);
|
|
172654
|
+
if (detected === "utf-8") {
|
|
172655
|
+
return "utf-8";
|
|
172656
|
+
}
|
|
172657
|
+
}
|
|
172627
172658
|
return cachedSystemEncoding;
|
|
172628
172659
|
}
|
|
172629
172660
|
return detectEncodingFromBuffer(buffer) || "utf-8";
|
|
@@ -179312,6 +179343,7 @@ var init_subagent_events = __esm({
|
|
|
179312
179343
|
SubAgentEventType2["TOOL_CALL"] = "tool_call";
|
|
179313
179344
|
SubAgentEventType2["TOOL_RESULT"] = "tool_result";
|
|
179314
179345
|
SubAgentEventType2["TOOL_WAITING_APPROVAL"] = "tool_waiting_approval";
|
|
179346
|
+
SubAgentEventType2["USAGE_METADATA"] = "usage_metadata";
|
|
179315
179347
|
SubAgentEventType2["FINISH"] = "finish";
|
|
179316
179348
|
SubAgentEventType2["ERROR"] = "error";
|
|
179317
179349
|
return SubAgentEventType2;
|
|
@@ -179563,6 +179595,7 @@ var init_subagent = __esm({
|
|
|
179563
179595
|
tools: [{ functionDeclarations: toolsList }]
|
|
179564
179596
|
}
|
|
179565
179597
|
};
|
|
179598
|
+
const roundStreamStart = Date.now();
|
|
179566
179599
|
const responseStream = await chat.sendMessageStream(
|
|
179567
179600
|
this.modelConfig.model || this.runtimeContext.getModel() || DEFAULT_QWEN_MODEL,
|
|
179568
179601
|
messageParams,
|
|
@@ -179625,16 +179658,27 @@ var init_subagent = __esm({
|
|
|
179625
179658
|
if (lastUsage) {
|
|
179626
179659
|
const inTok = Number(lastUsage.promptTokenCount || 0);
|
|
179627
179660
|
const outTok = Number(lastUsage.candidatesTokenCount || 0);
|
|
179628
|
-
|
|
179661
|
+
const thoughtTok = Number(lastUsage.thoughtsTokenCount || 0);
|
|
179662
|
+
const cachedTok = Number(lastUsage.cachedContentTokenCount || 0);
|
|
179663
|
+
if (isFinite(inTok) || isFinite(outTok) || isFinite(thoughtTok) || isFinite(cachedTok)) {
|
|
179629
179664
|
this.stats.recordTokens(
|
|
179630
179665
|
isFinite(inTok) ? inTok : 0,
|
|
179631
|
-
isFinite(outTok) ? outTok : 0
|
|
179666
|
+
isFinite(outTok) ? outTok : 0,
|
|
179667
|
+
isFinite(thoughtTok) ? thoughtTok : 0,
|
|
179668
|
+
isFinite(cachedTok) ? cachedTok : 0
|
|
179632
179669
|
);
|
|
179633
179670
|
this.executionStats.inputTokens = (this.executionStats.inputTokens || 0) + (isFinite(inTok) ? inTok : 0);
|
|
179634
179671
|
this.executionStats.outputTokens = (this.executionStats.outputTokens || 0) + (isFinite(outTok) ? outTok : 0);
|
|
179635
|
-
this.executionStats.totalTokens = (this.executionStats.inputTokens || 0) + (this.executionStats.outputTokens || 0);
|
|
179672
|
+
this.executionStats.totalTokens = (this.executionStats.inputTokens || 0) + (this.executionStats.outputTokens || 0) + (isFinite(thoughtTok) ? thoughtTok : 0) + (isFinite(cachedTok) ? cachedTok : 0);
|
|
179636
179673
|
this.executionStats.estimatedCost = (this.executionStats.inputTokens || 0) * 3e-5 + (this.executionStats.outputTokens || 0) * 6e-5;
|
|
179637
179674
|
}
|
|
179675
|
+
this.eventEmitter?.emit("usage_metadata" /* USAGE_METADATA */, {
|
|
179676
|
+
subagentId: this.subagentId,
|
|
179677
|
+
round: turnCounter,
|
|
179678
|
+
usage: lastUsage,
|
|
179679
|
+
durationMs: Date.now() - roundStreamStart,
|
|
179680
|
+
timestamp: Date.now()
|
|
179681
|
+
});
|
|
179638
179682
|
}
|
|
179639
179683
|
if (functionCalls.length > 0) {
|
|
179640
179684
|
currentMessages = await this.processFunctionCalls(
|
|
@@ -209076,7 +209120,7 @@ var init_ide_client = __esm({
|
|
|
209076
209120
|
if (this.connectionConfig?.authToken) {
|
|
209077
209121
|
this.authToken = this.connectionConfig.authToken;
|
|
209078
209122
|
}
|
|
209079
|
-
const workspacePath = this.connectionConfig?.workspacePath ?? process.env["
|
|
209123
|
+
const workspacePath = this.connectionConfig?.workspacePath ?? process.env["RDMIND_CODE_IDE_WORKSPACE_PATH"];
|
|
209080
209124
|
const { isValid: isValid2, error: error2 } = _IdeClient.validateWorkspacePath(
|
|
209081
209125
|
workspacePath,
|
|
209082
209126
|
process.cwd()
|
|
@@ -209386,18 +209430,18 @@ var init_ide_client = __esm({
|
|
|
209386
209430
|
return { isValid: true };
|
|
209387
209431
|
}
|
|
209388
209432
|
getPortFromEnv() {
|
|
209389
|
-
const port = process.env["
|
|
209433
|
+
const port = process.env["RDMIND_CODE_IDE_SERVER_PORT"];
|
|
209390
209434
|
if (!port) {
|
|
209391
209435
|
return void 0;
|
|
209392
209436
|
}
|
|
209393
209437
|
return port;
|
|
209394
209438
|
}
|
|
209395
209439
|
getStdioConfigFromEnv() {
|
|
209396
|
-
const command2 = process.env["
|
|
209440
|
+
const command2 = process.env["RDMIND_CODE_IDE_SERVER_STDIO_COMMAND"];
|
|
209397
209441
|
if (!command2) {
|
|
209398
209442
|
return void 0;
|
|
209399
209443
|
}
|
|
209400
|
-
const argsStr = process.env["
|
|
209444
|
+
const argsStr = process.env["RDMIND_CODE_IDE_SERVER_STDIO_ARGS"];
|
|
209401
209445
|
let args = [];
|
|
209402
209446
|
if (argsStr) {
|
|
209403
209447
|
try {
|
|
@@ -209406,11 +209450,11 @@ var init_ide_client = __esm({
|
|
|
209406
209450
|
args = parsedArgs;
|
|
209407
209451
|
} else {
|
|
209408
209452
|
logger.error(
|
|
209409
|
-
"
|
|
209453
|
+
"RDMIND_CODE_IDE_SERVER_STDIO_ARGS must be a JSON array string."
|
|
209410
209454
|
);
|
|
209411
209455
|
}
|
|
209412
209456
|
} catch (e3) {
|
|
209413
|
-
logger.error("Failed to parse
|
|
209457
|
+
logger.error("Failed to parse RDMIND_CODE_IDE_SERVER_STDIO_ARGS:", e3);
|
|
209414
209458
|
}
|
|
209415
209459
|
}
|
|
209416
209460
|
return { command: command2, args };
|
|
@@ -209422,7 +209466,7 @@ var init_ide_client = __esm({
|
|
|
209422
209466
|
try {
|
|
209423
209467
|
const portFile = path38.join(
|
|
209424
209468
|
os20.tmpdir(),
|
|
209425
|
-
`
|
|
209469
|
+
`rdmind-code-ide-server-${this.ideProcessInfo.pid}.json`
|
|
209426
209470
|
);
|
|
209427
209471
|
const portFileContents = await fs35.promises.readFile(portFile, "utf8");
|
|
209428
209472
|
return JSON.parse(portFileContents);
|
|
@@ -209440,7 +209484,7 @@ var init_ide_client = __esm({
|
|
|
209440
209484
|
return void 0;
|
|
209441
209485
|
}
|
|
209442
209486
|
const fileRegex = new RegExp(
|
|
209443
|
-
`^
|
|
209487
|
+
`^rdmind-code-ide-server-${this.ideProcessInfo.pid}-\\d+\\.json$`
|
|
209444
209488
|
);
|
|
209445
209489
|
const matchingFiles = portFiles.filter((file) => fileRegex.test(file)).sort();
|
|
209446
209490
|
if (matchingFiles.length === 0) {
|
|
@@ -235947,8 +235991,8 @@ var init_git_commit = __esm({
|
|
|
235947
235991
|
"packages/core/src/generated/git-commit.ts"() {
|
|
235948
235992
|
"use strict";
|
|
235949
235993
|
init_esbuild_shims();
|
|
235950
|
-
GIT_COMMIT_INFO = "
|
|
235951
|
-
CLI_VERSION = "0.1.4-alpha.
|
|
235994
|
+
GIT_COMMIT_INFO = "a5a74672";
|
|
235995
|
+
CLI_VERSION = "0.1.4-alpha.10";
|
|
235952
235996
|
}
|
|
235953
235997
|
});
|
|
235954
235998
|
|
|
@@ -236884,6 +236928,9 @@ __export(core_exports4, {
|
|
|
236884
236928
|
DeclarativeTool: () => DeclarativeTool,
|
|
236885
236929
|
DiscoveredMCPTool: () => DiscoveredMCPTool,
|
|
236886
236930
|
DiscoveredTool: () => DiscoveredTool,
|
|
236931
|
+
EVENT_API_ERROR: () => EVENT_API_ERROR,
|
|
236932
|
+
EVENT_API_RESPONSE: () => EVENT_API_RESPONSE,
|
|
236933
|
+
EVENT_TOOL_CALL: () => EVENT_TOOL_CALL,
|
|
236887
236934
|
EditTool: () => EditTool,
|
|
236888
236935
|
EndSessionEvent: () => EndSessionEvent,
|
|
236889
236936
|
ExitPlanModeTool: () => ExitPlanModeTool,
|
|
@@ -286473,12 +286520,12 @@ var init_header = __esm({
|
|
|
286473
286520
|
if (!buf || !(buf.length >= off + 512)) {
|
|
286474
286521
|
throw new Error("need 512 bytes for header");
|
|
286475
286522
|
}
|
|
286476
|
-
this.path = decString(buf, off, 100);
|
|
286477
|
-
this.mode = decNumber(buf, off + 100, 8);
|
|
286478
|
-
this.uid = decNumber(buf, off + 108, 8);
|
|
286479
|
-
this.gid = decNumber(buf, off + 116, 8);
|
|
286480
|
-
this.size = decNumber(buf, off + 124, 12);
|
|
286481
|
-
this.mtime = decDate(buf, off + 136, 12);
|
|
286523
|
+
this.path = ex?.path ?? decString(buf, off, 100);
|
|
286524
|
+
this.mode = ex?.mode ?? gex?.mode ?? decNumber(buf, off + 100, 8);
|
|
286525
|
+
this.uid = ex?.uid ?? gex?.uid ?? decNumber(buf, off + 108, 8);
|
|
286526
|
+
this.gid = ex?.gid ?? gex?.gid ?? decNumber(buf, off + 116, 8);
|
|
286527
|
+
this.size = ex?.size ?? gex?.size ?? decNumber(buf, off + 124, 12);
|
|
286528
|
+
this.mtime = ex?.mtime ?? gex?.mtime ?? decDate(buf, off + 136, 12);
|
|
286482
286529
|
this.cksum = decNumber(buf, off + 148, 12);
|
|
286483
286530
|
if (gex)
|
|
286484
286531
|
this.#slurp(gex, true);
|
|
@@ -286496,10 +286543,10 @@ var init_header = __esm({
|
|
|
286496
286543
|
}
|
|
286497
286544
|
this.linkpath = decString(buf, off + 157, 100);
|
|
286498
286545
|
if (buf.subarray(off + 257, off + 265).toString() === "ustar\x0000") {
|
|
286499
|
-
this.uname = decString(buf, off + 265, 32);
|
|
286500
|
-
this.gname = decString(buf, off + 297, 32);
|
|
286501
|
-
this.devmaj = decNumber(buf, off + 329, 8) ?? 0;
|
|
286502
|
-
this.devmin = decNumber(buf, off + 337, 8) ?? 0;
|
|
286546
|
+
this.uname = ex?.uname ?? gex?.uname ?? decString(buf, off + 265, 32);
|
|
286547
|
+
this.gname = ex?.gname ?? gex?.gname ?? decString(buf, off + 297, 32);
|
|
286548
|
+
this.devmaj = ex?.devmaj ?? gex?.devmaj ?? decNumber(buf, off + 329, 8) ?? 0;
|
|
286549
|
+
this.devmin = ex?.devmin ?? gex?.devmin ?? decNumber(buf, off + 337, 8) ?? 0;
|
|
286503
286550
|
if (buf[off + 475] !== 0) {
|
|
286504
286551
|
const prefix = decString(buf, off + 345, 155);
|
|
286505
286552
|
this.path = prefix + "/" + this.path;
|
|
@@ -286508,8 +286555,8 @@ var init_header = __esm({
|
|
|
286508
286555
|
if (prefix) {
|
|
286509
286556
|
this.path = prefix + "/" + this.path;
|
|
286510
286557
|
}
|
|
286511
|
-
this.atime = decDate(buf, off + 476, 12);
|
|
286512
|
-
this.ctime = decDate(buf, off + 488, 12);
|
|
286558
|
+
this.atime = ex?.atime ?? gex?.atime ?? decDate(buf, off + 476, 12);
|
|
286559
|
+
this.ctime = ex?.ctime ?? gex?.ctime ?? decDate(buf, off + 488, 12);
|
|
286513
286560
|
}
|
|
286514
286561
|
}
|
|
286515
286562
|
let sum = 8 * 32;
|
|
@@ -287504,13 +287551,15 @@ var init_list = __esm({
|
|
|
287504
287551
|
const readSize = opt.maxReadSize || 16 * 1024 * 1024;
|
|
287505
287552
|
if (stat7.size < readSize) {
|
|
287506
287553
|
const buf = Buffer.allocUnsafe(stat7.size);
|
|
287507
|
-
fs63.readSync(fd, buf, 0, stat7.size, 0);
|
|
287508
|
-
p.end(buf);
|
|
287554
|
+
const read3 = fs63.readSync(fd, buf, 0, stat7.size, 0);
|
|
287555
|
+
p.end(read3 === buf.byteLength ? buf : buf.subarray(0, read3));
|
|
287509
287556
|
} else {
|
|
287510
287557
|
let pos2 = 0;
|
|
287511
287558
|
const buf = Buffer.allocUnsafe(readSize);
|
|
287512
287559
|
while (pos2 < stat7.size) {
|
|
287513
287560
|
const bytesRead = fs63.readSync(fd, buf, 0, readSize, pos2);
|
|
287561
|
+
if (bytesRead === 0)
|
|
287562
|
+
break;
|
|
287514
287563
|
pos2 += bytesRead;
|
|
287515
287564
|
p.write(buf.subarray(0, bytesRead));
|
|
287516
287565
|
}
|
|
@@ -307580,134 +307629,75 @@ var init_en3 = __esm({
|
|
|
307580
307629
|
// ============================================================================
|
|
307581
307630
|
"Waiting for user confirmation...": "Waiting for user confirmation...",
|
|
307582
307631
|
"(esc to cancel, {{time}})": "(esc to cancel, {{time}})",
|
|
307583
|
-
|
|
307584
|
-
"
|
|
307585
|
-
"
|
|
307586
|
-
"
|
|
307587
|
-
"
|
|
307588
|
-
"
|
|
307589
|
-
"
|
|
307590
|
-
"
|
|
307591
|
-
"
|
|
307632
|
+
// Programming/Technical
|
|
307633
|
+
"Summoning the soul of programmers...": "Summoning the soul of programmers...",
|
|
307634
|
+
"Fixing that bug that's not a bug, it's a feature...": "Fixing that bug that's not a bug, it's a feature...",
|
|
307635
|
+
"Removing pinyin comments from code...": "Removing pinyin comments from code...",
|
|
307636
|
+
"Debating whether array index starts from 0 or 1...": "Debating whether array index starts from 0 or 1...",
|
|
307637
|
+
"Thinking about refactoring...": "Thinking about refactoring...",
|
|
307638
|
+
"Looking for a misplaced semicolon...": "Looking for a misplaced semicolon...",
|
|
307639
|
+
"Cleaning up stack overflow...": "Cleaning up stack overflow...",
|
|
307640
|
+
"Naming variables properly...": "Naming variables properly...",
|
|
307641
|
+
"Commenting code written 3 months ago...": "Commenting code written 3 months ago...",
|
|
307642
|
+
"Praying for no bugs...": "Praying for no bugs...",
|
|
307643
|
+
"Trying to exit Vim...": "Trying to exit Vim...",
|
|
307644
|
+
"Searching for the correct USB orientation...": "Searching for the correct USB orientation...",
|
|
307645
|
+
"That's not a bug, it's an undocumented feature...": "That's not a bug, it's an undocumented feature...",
|
|
307592
307646
|
"Polishing the algorithms...": "Polishing the algorithms...",
|
|
307593
|
-
"Don't rush perfection (or my code)...": "Don't rush perfection (or my code)...",
|
|
307594
|
-
"Brewing fresh bytes...": "Brewing fresh bytes...",
|
|
307595
|
-
"Counting electrons...": "Counting electrons...",
|
|
307596
|
-
"Engaging cognitive processors...": "Engaging cognitive processors...",
|
|
307597
|
-
"Checking for syntax errors in the universe...": "Checking for syntax errors in the universe...",
|
|
307598
|
-
"One moment, optimizing humor...": "One moment, optimizing humor...",
|
|
307599
|
-
"Shuffling punchlines...": "Shuffling punchlines...",
|
|
307600
|
-
"Untangling neural nets...": "Untangling neural nets...",
|
|
307601
307647
|
"Compiling brilliance...": "Compiling brilliance...",
|
|
307602
|
-
"
|
|
307603
|
-
"Summoning the cloud of wisdom...": "Summoning the cloud of wisdom...",
|
|
307604
|
-
"Preparing a witty response...": "Preparing a witty response...",
|
|
307605
|
-
"Just a sec, I'm debugging reality...": "Just a sec, I'm debugging reality...",
|
|
307606
|
-
"Confuzzling the options...": "Confuzzling the options...",
|
|
307607
|
-
"Tuning the cosmic frequencies...": "Tuning the cosmic frequencies...",
|
|
307608
|
-
"Crafting a response worthy of your patience...": "Crafting a response worthy of your patience...",
|
|
307609
|
-
"Compiling the 1s and 0s...": "Compiling the 1s and 0s...",
|
|
307610
|
-
"Resolving dependencies... and existential crises...": "Resolving dependencies... and existential crises...",
|
|
307611
|
-
"Defragmenting memories... both RAM and personal...": "Defragmenting memories... both RAM and personal...",
|
|
307612
|
-
"Rebooting the humor module...": "Rebooting the humor module...",
|
|
307613
|
-
"Caching the essentials (mostly cat memes)...": "Caching the essentials (mostly cat memes)...",
|
|
307614
|
-
"Optimizing for ludicrous speed": "Optimizing for ludicrous speed",
|
|
307615
|
-
"Swapping bits... don't tell the bytes...": "Swapping bits... don't tell the bytes...",
|
|
307648
|
+
"Untangling neural nets...": "Untangling neural nets...",
|
|
307616
307649
|
"Garbage collecting... be right back...": "Garbage collecting... be right back...",
|
|
307617
|
-
"
|
|
307650
|
+
"Resolving dependencies...": "Resolving dependencies...",
|
|
307618
307651
|
"Converting coffee into code...": "Converting coffee into code...",
|
|
307619
|
-
|
|
307620
|
-
"
|
|
307621
|
-
"
|
|
307622
|
-
|
|
307623
|
-
"
|
|
307624
|
-
"
|
|
307625
|
-
"
|
|
307626
|
-
"
|
|
307627
|
-
|
|
307628
|
-
"
|
|
307629
|
-
"
|
|
307630
|
-
"
|
|
307631
|
-
"
|
|
307632
|
-
"
|
|
307633
|
-
"
|
|
307634
|
-
|
|
307635
|
-
"
|
|
307636
|
-
"
|
|
307637
|
-
"
|
|
307638
|
-
"
|
|
307639
|
-
"
|
|
307640
|
-
"
|
|
307641
|
-
|
|
307642
|
-
"
|
|
307643
|
-
"
|
|
307644
|
-
"
|
|
307645
|
-
"
|
|
307646
|
-
"
|
|
307647
|
-
"
|
|
307648
|
-
"
|
|
307649
|
-
"
|
|
307650
|
-
"Pressing 'A' to continue...": "Pressing 'A' to continue...",
|
|
307651
|
-
"Herding digital cats...": "Herding digital cats...",
|
|
307652
|
-
"Polishing the pixels...": "Polishing the pixels...",
|
|
307653
|
-
"Finding a suitable loading screen pun...": "Finding a suitable loading screen pun...",
|
|
307654
|
-
"Distracting you with this witty phrase...": "Distracting you with this witty phrase...",
|
|
307655
|
-
"Almost there... probably...": "Almost there... probably...",
|
|
307656
|
-
"Our hamsters are working as fast as they can...": "Our hamsters are working as fast as they can...",
|
|
307657
|
-
"Giving Cloudy a pat on the head...": "Giving Cloudy a pat on the head...",
|
|
307658
|
-
"Petting the cat...": "Petting the cat...",
|
|
307659
|
-
"Rickrolling my boss...": "Rickrolling my boss...",
|
|
307660
|
-
"Never gonna give you up, never gonna let you down...": "Never gonna give you up, never gonna let you down...",
|
|
307661
|
-
"Slapping the bass...": "Slapping the bass...",
|
|
307662
|
-
"Tasting the snozberries...": "Tasting the snozberries...",
|
|
307663
|
-
"I'm going the distance, I'm going for speed...": "I'm going the distance, I'm going for speed...",
|
|
307664
|
-
"Is this the real life? Is this just fantasy?...": "Is this the real life? Is this just fantasy?...",
|
|
307665
|
-
"I've got a good feeling about this...": "I've got a good feeling about this...",
|
|
307666
|
-
"Poking the bear...": "Poking the bear...",
|
|
307667
|
-
"Doing research on the latest memes...": "Doing research on the latest memes...",
|
|
307668
|
-
"Figuring out how to make this more witty...": "Figuring out how to make this more witty...",
|
|
307652
|
+
// Work/Office Culture
|
|
307653
|
+
"Waiting for product manager to change requirements...": "Waiting for product manager to change requirements...",
|
|
307654
|
+
"Postponing project deadline...": "Postponing project deadline...",
|
|
307655
|
+
'Preparing another "almost done"...': 'Preparing another "almost done"...',
|
|
307656
|
+
"Taking a break...": "Taking a break...",
|
|
307657
|
+
"Making goji berry tea...": "Making goji berry tea...",
|
|
307658
|
+
"Ordering takeout...": "Ordering takeout...",
|
|
307659
|
+
"Pretending to be busy...": "Pretending to be busy...",
|
|
307660
|
+
// Internet Culture
|
|
307661
|
+
"Recharging faith...": "Recharging faith...",
|
|
307662
|
+
"Downloading more RAM...": "Downloading more RAM...",
|
|
307663
|
+
"Feeding the server...": "Feeding the server...",
|
|
307664
|
+
"Waking up sleeping code...": "Waking up sleeping code...",
|
|
307665
|
+
"Feeding data to AI...": "Feeding data to AI...",
|
|
307666
|
+
"Opening imagination...": "Opening imagination...",
|
|
307667
|
+
// Daily Life
|
|
307668
|
+
"Boiling water for tea...": "Boiling water for tea...",
|
|
307669
|
+
"Waiting for the elevator...": "Waiting for the elevator...",
|
|
307670
|
+
"Taking a number in queue...": "Taking a number in queue...",
|
|
307671
|
+
"Waiting for traffic light...": "Waiting for traffic light...",
|
|
307672
|
+
"Charging...": "Charging...",
|
|
307673
|
+
"Buffering life...": "Buffering life...",
|
|
307674
|
+
// Light Humor
|
|
307675
|
+
"Contemplating the meaning of life...": "Contemplating the meaning of life...",
|
|
307676
|
+
"What to eat today? Thinking...": "What to eat today? Thinking...",
|
|
307677
|
+
"Pretending to work...": "Pretending to work...",
|
|
307678
|
+
"Let me think, just a moment...": "Let me think, just a moment...",
|
|
307679
|
+
"Brewing inspiration...": "Brewing inspiration...",
|
|
307680
|
+
"Take a deep breath, almost done...": "Take a deep breath, almost done...",
|
|
307681
|
+
"Don't worry, good things take time...": "Don't worry, good things take time...",
|
|
307682
|
+
"Stay calm, exciting things coming...": "Stay calm, exciting things coming...",
|
|
307669
307683
|
"Hmmm... let me think...": "Hmmm... let me think...",
|
|
307670
|
-
|
|
307671
|
-
"
|
|
307672
|
-
"
|
|
307673
|
-
"
|
|
307674
|
-
"
|
|
307675
|
-
"
|
|
307676
|
-
"
|
|
307677
|
-
"
|
|
307678
|
-
"
|
|
307679
|
-
"
|
|
307680
|
-
|
|
307681
|
-
"
|
|
307682
|
-
"
|
|
307683
|
-
"
|
|
307684
|
-
"
|
|
307685
|
-
"
|
|
307686
|
-
"
|
|
307687
|
-
"Letting the thoughts marinate...": "Letting the thoughts marinate...",
|
|
307688
|
-
"Just remembered where I put my keys...": "Just remembered where I put my keys...",
|
|
307689
|
-
"Pondering the orb...": "Pondering the orb...",
|
|
307690
|
-
"I've seen things you people wouldn't believe... like a user who reads loading messages.": "I've seen things you people wouldn't believe... like a user who reads loading messages.",
|
|
307691
|
-
"Initiating thoughtful gaze...": "Initiating thoughtful gaze...",
|
|
307692
|
-
"What's a computer's favorite snack? Microchips.": "What's a computer's favorite snack? Microchips.",
|
|
307693
|
-
"Why do Java developers wear glasses? Because they don't C#.": "Why do Java developers wear glasses? Because they don't C#.",
|
|
307694
|
-
"Charging the laser... pew pew!": "Charging the laser... pew pew!",
|
|
307695
|
-
"Dividing by zero... just kidding!": "Dividing by zero... just kidding!",
|
|
307696
|
-
"Looking for an adult superviso... I mean, processing.": "Looking for an adult superviso... I mean, processing.",
|
|
307697
|
-
"Making it go beep boop.": "Making it go beep boop.",
|
|
307698
|
-
"Buffering... because even AIs need a moment.": "Buffering... because even AIs need a moment.",
|
|
307699
|
-
"Entangling quantum particles for a faster response...": "Entangling quantum particles for a faster response...",
|
|
307700
|
-
"Polishing the chrome... on the algorithms.": "Polishing the chrome... on the algorithms.",
|
|
307701
|
-
"Are you not entertained? (Working on it!)": "Are you not entertained? (Working on it!)",
|
|
307702
|
-
"Summoning the code gremlins... to help, of course.": "Summoning the code gremlins... to help, of course.",
|
|
307703
|
-
"Just waiting for the dial-up tone to finish...": "Just waiting for the dial-up tone to finish...",
|
|
307704
|
-
"Recalibrating the humor-o-meter.": "Recalibrating the humor-o-meter.",
|
|
307705
|
-
"My other loading screen is even funnier.": "My other loading screen is even funnier.",
|
|
307706
|
-
"Pretty sure there's a cat walking on the keyboard somewhere...": "Pretty sure there's a cat walking on the keyboard somewhere...",
|
|
307707
|
-
"Enhancing... Enhancing... Still loading.": "Enhancing... Enhancing... Still loading.",
|
|
307708
|
-
"It's not a bug, it's a feature... of this loading screen.": "It's not a bug, it's a feature... of this loading screen.",
|
|
307709
|
-
"Have you tried turning it off and on again? (The loading screen, not me.)": "Have you tried turning it off and on again? (The loading screen, not me.)",
|
|
307710
|
-
"Constructing additional pylons...": "Constructing additional pylons...",
|
|
307684
|
+
// Technical but Down-to-earth
|
|
307685
|
+
"Greeting the server...": "Greeting the server...",
|
|
307686
|
+
"Organizing thoughts...": "Organizing thoughts...",
|
|
307687
|
+
"Preparing my words...": "Preparing my words...",
|
|
307688
|
+
"Looking up information...": "Looking up information...",
|
|
307689
|
+
"Sorting out my thoughts...": "Sorting out my thoughts...",
|
|
307690
|
+
"Analyzing the problem...": "Analyzing the problem...",
|
|
307691
|
+
"Looking for the best solution...": "Looking for the best solution...",
|
|
307692
|
+
"Engaging cognitive processors...": "Engaging cognitive processors...",
|
|
307693
|
+
"Crafting a response worthy of your patience...": "Crafting a response worthy of your patience...",
|
|
307694
|
+
// Keep it Generic
|
|
307695
|
+
"Loading...": "Loading...",
|
|
307696
|
+
"Processing, please wait...": "Processing, please wait...",
|
|
307697
|
+
"Almost there...": "Almost there...",
|
|
307698
|
+
"Working hard...": "Working hard...",
|
|
307699
|
+
"Almost... almost...": "Almost... almost...",
|
|
307700
|
+
"Almost there... probably...": "Almost there... probably...",
|
|
307711
307701
|
"Initialize OpenSpec in a project with RDMind integration": "Initialize OpenSpec in a project with RDMind integration",
|
|
307712
307702
|
"Initialize OpenSpec in the current directory": "Initialize OpenSpec in the current directory",
|
|
307713
307703
|
"Scaffold a new OpenSpec change and validate strictly.": "Scaffold a new OpenSpec change and validate strictly.",
|
|
@@ -308430,134 +308420,75 @@ var init_zh = __esm({
|
|
|
308430
308420
|
// ============================================================================
|
|
308431
308421
|
"Waiting for user confirmation...": "\u7B49\u5F85\u7528\u6237\u786E\u8BA4...",
|
|
308432
308422
|
"(esc to cancel, {{time}})": "\uFF08\u6309 esc \u53D6\u6D88\uFF0C{{time}}\uFF09",
|
|
308433
|
-
|
|
308434
|
-
"
|
|
308435
|
-
"
|
|
308436
|
-
"
|
|
308437
|
-
"
|
|
308438
|
-
"
|
|
308439
|
-
"
|
|
308440
|
-
"
|
|
308441
|
-
"
|
|
308423
|
+
// 编程/技术相关
|
|
308424
|
+
"Summoning the soul of programmers...": "\u6B63\u5728\u53EC\u5524\u7A0B\u5E8F\u5458\u7684\u7075\u9B42...",
|
|
308425
|
+
"Fixing that bug that's not a bug, it's a feature...": "\u6B63\u5728\u4FEE\u590D\u90A3\u4E2A\u4E0D\u7B97 bug \u7684 feature...",
|
|
308426
|
+
"Removing pinyin comments from code...": "\u6B63\u5728\u6E05\u9664\u4EE3\u7801\u91CC\u7684\u62FC\u97F3\u6CE8\u91CA...",
|
|
308427
|
+
"Debating whether array index starts from 0 or 1...": "\u6B63\u5728\u4E89\u8BBA\u6570\u7EC4\u4E0B\u6807\u4ECE 0 \u8FD8\u662F\u4ECE 1...",
|
|
308428
|
+
"Thinking about refactoring...": "\u6B63\u5728\u601D\u8003\u8981\u4E0D\u8981\u91CD\u6784...",
|
|
308429
|
+
"Looking for a misplaced semicolon...": "\u6B63\u5728\u5BFB\u627E\u6D88\u5931\u7684\u5206\u53F7...",
|
|
308430
|
+
"Cleaning up stack overflow...": "\u6B63\u5728\u6E05\u7406\u5806\u6808\u6EA2\u51FA...",
|
|
308431
|
+
"Naming variables properly...": "\u6B63\u5728\u7ED9\u53D8\u91CF\u8D77\u4E2A\u597D\u540D\u5B57...",
|
|
308432
|
+
"Commenting code written 3 months ago...": "\u6B63\u5728\u6CE8\u91CA\u4E09\u4E2A\u6708\u524D\u5199\u7684\u4EE3\u7801...",
|
|
308433
|
+
"Praying for no bugs...": "\u6B63\u5728\u7948\u7977\u4E0D\u8981\u6709 bug...",
|
|
308434
|
+
"Trying to exit Vim...": "\u6B63\u5728\u5C1D\u8BD5\u9000\u51FA Vim...",
|
|
308435
|
+
"Searching for the correct USB orientation...": "\u6B63\u5728\u5BFB\u627E\u6B63\u786E\u7684 USB \u65B9\u5411...",
|
|
308436
|
+
"That's not a bug, it's an undocumented feature...": "\u8FD9\u4E0D\u662F bug\uFF0C\u662F\u672A\u8BB0\u5F55\u7684\u529F\u80FD...",
|
|
308442
308437
|
"Polishing the algorithms...": "\u6B63\u5728\u6253\u78E8\u7B97\u6CD5...",
|
|
308443
|
-
"Don't rush perfection (or my code)...": "\u4E0D\u8981\u6025\u4E8E\u8FFD\u6C42\u5B8C\u7F8E\uFF08\u6216\u6211\u7684\u4EE3\u7801\uFF09...",
|
|
308444
|
-
"Brewing fresh bytes...": "\u6B63\u5728\u917F\u9020\u65B0\u9C9C\u5B57\u8282...",
|
|
308445
|
-
"Counting electrons...": "\u6B63\u5728\u8BA1\u7B97\u7535\u5B50...",
|
|
308446
|
-
"Engaging cognitive processors...": "\u6B63\u5728\u542F\u52A8\u8BA4\u77E5\u5904\u7406\u5668...",
|
|
308447
|
-
"Checking for syntax errors in the universe...": "\u6B63\u5728\u68C0\u67E5\u5B87\u5B99\u4E2D\u7684\u8BED\u6CD5\u9519\u8BEF...",
|
|
308448
|
-
"One moment, optimizing humor...": "\u7A0D\u7B49\u7247\u523B\uFF0C\u6B63\u5728\u4F18\u5316\u5E7D\u9ED8\u611F...",
|
|
308449
|
-
"Shuffling punchlines...": "\u6B63\u5728\u6D17\u724C\u7B11\u70B9...",
|
|
308450
|
-
"Untangling neural nets...": "\u6B63\u5728\u89E3\u5F00\u795E\u7ECF\u7F51\u7EDC...",
|
|
308451
308438
|
"Compiling brilliance...": "\u6B63\u5728\u7F16\u8BD1\u667A\u6167...",
|
|
308452
|
-
"
|
|
308453
|
-
"Summoning the cloud of wisdom...": "\u6B63\u5728\u53EC\u5524\u667A\u6167\u4E91...",
|
|
308454
|
-
"Preparing a witty response...": "\u6B63\u5728\u51C6\u5907\u673A\u667A\u7684\u56DE\u590D...",
|
|
308455
|
-
"Just a sec, I'm debugging reality...": "\u7A0D\u7B49\u7247\u523B\uFF0C\u6211\u6B63\u5728\u8C03\u8BD5\u73B0\u5B9E...",
|
|
308456
|
-
"Confuzzling the options...": "\u6B63\u5728\u6DF7\u6DC6\u9009\u9879...",
|
|
308457
|
-
"Tuning the cosmic frequencies...": "\u6B63\u5728\u8C03\u8C10\u5B87\u5B99\u9891\u7387...",
|
|
308458
|
-
"Crafting a response worthy of your patience...": "\u6B63\u5728\u5236\u4F5C\u503C\u5F97\u60A8\u8010\u5FC3\u7B49\u5F85\u7684\u56DE\u590D...",
|
|
308459
|
-
"Compiling the 1s and 0s...": "\u6B63\u5728\u7F16\u8BD1 1 \u548C 0...",
|
|
308460
|
-
"Resolving dependencies... and existential crises...": "\u6B63\u5728\u89E3\u51B3\u4F9D\u8D56\u5173\u7CFB...\u548C\u5B58\u5728\u4E3B\u4E49\u5371\u673A...",
|
|
308461
|
-
"Defragmenting memories... both RAM and personal...": "\u6B63\u5728\u6574\u7406\u8BB0\u5FC6\u788E\u7247...\u5305\u62EC RAM \u548C\u4E2A\u4EBA\u8BB0\u5FC6...",
|
|
308462
|
-
"Rebooting the humor module...": "\u6B63\u5728\u91CD\u542F\u5E7D\u9ED8\u6A21\u5757...",
|
|
308463
|
-
"Caching the essentials (mostly cat memes)...": "\u6B63\u5728\u7F13\u5B58\u5FC5\u9700\u54C1\uFF08\u4E3B\u8981\u662F\u732B\u54AA\u8868\u60C5\u5305\uFF09...",
|
|
308464
|
-
"Optimizing for ludicrous speed": "\u6B63\u5728\u4F18\u5316\u5230\u8352\u8C2C\u7684\u901F\u5EA6",
|
|
308465
|
-
"Swapping bits... don't tell the bytes...": "\u6B63\u5728\u4EA4\u6362\u4F4D...\u4E0D\u8981\u544A\u8BC9\u5B57\u8282...",
|
|
308439
|
+
"Untangling neural nets...": "\u6B63\u5728\u89E3\u5F00\u795E\u7ECF\u7F51\u7EDC...",
|
|
308466
308440
|
"Garbage collecting... be right back...": "\u6B63\u5728\u5783\u573E\u56DE\u6536...\u9A6C\u4E0A\u56DE\u6765...",
|
|
308467
|
-
"
|
|
308441
|
+
"Resolving dependencies...": "\u6B63\u5728\u89E3\u51B3\u4F9D\u8D56\u5173\u7CFB...",
|
|
308468
308442
|
"Converting coffee into code...": "\u6B63\u5728\u5C06\u5496\u5561\u8F6C\u6362\u4E3A\u4EE3\u7801...",
|
|
308469
|
-
|
|
308470
|
-
"
|
|
308471
|
-
"
|
|
308472
|
-
|
|
308473
|
-
"
|
|
308474
|
-
"
|
|
308475
|
-
"
|
|
308476
|
-
"
|
|
308477
|
-
|
|
308478
|
-
"
|
|
308479
|
-
"
|
|
308480
|
-
"
|
|
308481
|
-
"
|
|
308482
|
-
"
|
|
308483
|
-
"
|
|
308484
|
-
|
|
308485
|
-
"
|
|
308486
|
-
"
|
|
308487
|
-
"
|
|
308488
|
-
"
|
|
308489
|
-
"
|
|
308490
|
-
"
|
|
308491
|
-
|
|
308492
|
-
"
|
|
308493
|
-
"
|
|
308494
|
-
"
|
|
308495
|
-
"
|
|
308496
|
-
"
|
|
308497
|
-
"
|
|
308498
|
-
"
|
|
308499
|
-
"
|
|
308500
|
-
"Pressing 'A' to continue...": "\u6309 'A' \u7EE7\u7EED...",
|
|
308501
|
-
"Herding digital cats...": "\u6B63\u5728\u653E\u7267\u6570\u5B57\u732B...",
|
|
308502
|
-
"Polishing the pixels...": "\u6B63\u5728\u6253\u78E8\u50CF\u7D20...",
|
|
308503
|
-
"Finding a suitable loading screen pun...": "\u6B63\u5728\u5BFB\u627E\u5408\u9002\u7684\u52A0\u8F7D\u5C4F\u5E55\u53CC\u5173\u8BED...",
|
|
308504
|
-
"Distracting you with this witty phrase...": "\u6B63\u5728\u7528\u8FD9\u4E2A\u673A\u667A\u7684\u77ED\u8BED\u5206\u6563\u60A8\u7684\u6CE8\u610F\u529B...",
|
|
308505
|
-
"Almost there... probably...": "\u5FEB\u5230\u4E86...\u53EF\u80FD...",
|
|
308506
|
-
"Our hamsters are working as fast as they can...": "\u6211\u4EEC\u7684\u4ED3\u9F20\u6B63\u5728\u5C3D\u53EF\u80FD\u5FEB\u5730\u5DE5\u4F5C...",
|
|
308507
|
-
"Giving Cloudy a pat on the head...": "\u6B63\u5728\u62CD\u62CD Cloudy \u7684\u5934...",
|
|
308508
|
-
"Petting the cat...": "\u6B63\u5728\u629A\u6478\u732B\u54AA...",
|
|
308509
|
-
"Rickrolling my boss...": "\u6B63\u5728 Rickroll \u6211\u7684\u8001\u677F...",
|
|
308510
|
-
"Never gonna give you up, never gonna let you down...": "\u6C38\u8FDC\u4E0D\u4F1A\u653E\u5F03\u4F60\uFF0C\u6C38\u8FDC\u4E0D\u4F1A\u8BA9\u4F60\u5931\u671B...",
|
|
308511
|
-
"Slapping the bass...": "\u6B63\u5728\u62CD\u6253\u4F4E\u97F3...",
|
|
308512
|
-
"Tasting the snozberries...": "\u6B63\u5728\u54C1\u5C1D snozberries...",
|
|
308513
|
-
"I'm going the distance, I'm going for speed...": "\u6211\u8981\u8D70\u5F97\u66F4\u8FDC\uFF0C\u6211\u8981\u8FFD\u6C42\u901F\u5EA6...",
|
|
308514
|
-
"Is this the real life? Is this just fantasy?...": "\u8FD9\u662F\u771F\u5B9E\u7684\u751F\u6D3B\u5417\uFF1F\u8FD8\u662F\u53EA\u662F\u5E7B\u60F3\uFF1F...",
|
|
308515
|
-
"I've got a good feeling about this...": "\u6211\u5BF9\u8FD9\u4E2A\u611F\u89C9\u5F88\u597D...",
|
|
308516
|
-
"Poking the bear...": "\u6B63\u5728\u6233\u718A...",
|
|
308517
|
-
"Doing research on the latest memes...": "\u6B63\u5728\u7814\u7A76\u6700\u65B0\u7684\u8868\u60C5\u5305...",
|
|
308518
|
-
"Figuring out how to make this more witty...": "\u6B63\u5728\u60F3\u529E\u6CD5\u8BA9\u8FD9\u66F4\u6709\u8DA3...",
|
|
308443
|
+
// 工作/职场相关
|
|
308444
|
+
"Waiting for product manager to change requirements...": "\u6B63\u5728\u7B49\u5F85\u4EA7\u54C1\u7ECF\u7406\u6539\u9700\u6C42...",
|
|
308445
|
+
"Postponing project deadline...": "\u6B63\u5728\u5EF6\u671F\u9879\u76EE\u622A\u6B62\u65E5\u671F...",
|
|
308446
|
+
'Preparing another "almost done"...': '\u6B63\u5728\u51C6\u5907\u53C8\u4E00\u6B21"\u5FEB\u597D\u4E86"...',
|
|
308447
|
+
"Taking a break...": "\u6B63\u5728\u6478\u9C7C...",
|
|
308448
|
+
"Making goji berry tea...": "\u6B63\u5728\u6CE1\u67B8\u675E...",
|
|
308449
|
+
"Ordering takeout...": "\u6B63\u5728\u70B9\u5916\u5356...",
|
|
308450
|
+
"Pretending to be busy...": "\u6B63\u5728\u5047\u88C5\u5F88\u5FD9...",
|
|
308451
|
+
// 互联网文化/梗
|
|
308452
|
+
"Recharging faith...": "\u6B63\u5728\u5145\u503C\u4FE1\u4EF0...",
|
|
308453
|
+
"Downloading more RAM...": "\u6B63\u5728\u4E0B\u8F7D\u66F4\u591A RAM...",
|
|
308454
|
+
"Feeding the server...": "\u6B63\u5728\u6295\u5582\u670D\u52A1\u5668...",
|
|
308455
|
+
"Waking up sleeping code...": "\u6B63\u5728\u5524\u9192\u6C89\u7761\u7684\u4EE3\u7801...",
|
|
308456
|
+
"Feeding data to AI...": "\u6B63\u5728\u7ED9 AI \u5582\u6570\u636E...",
|
|
308457
|
+
"Opening imagination...": "\u6B63\u5728\u6253\u5F00\u8111\u6D1E...",
|
|
308458
|
+
// 日常生活
|
|
308459
|
+
"Boiling water for tea...": "\u6B63\u5728\u70E7\u5F00\u6C34\u6CE1\u8336...",
|
|
308460
|
+
"Waiting for the elevator...": "\u6B63\u5728\u7B49\u7535\u68AF...",
|
|
308461
|
+
"Taking a number in queue...": "\u6B63\u5728\u6392\u961F\u53D6\u53F7...",
|
|
308462
|
+
"Waiting for traffic light...": "\u6B63\u5728\u7B49\u7EA2\u7EFF\u706F...",
|
|
308463
|
+
"Charging...": "\u6B63\u5728\u5145\u7535\u4E2D...",
|
|
308464
|
+
"Buffering life...": "\u6B63\u5728\u7F13\u51B2\u4EBA\u751F...",
|
|
308465
|
+
// 轻松幽默
|
|
308466
|
+
"Contemplating the meaning of life...": "\u6B63\u5728\u601D\u8003\u4EBA\u751F\u7684\u610F\u4E49...",
|
|
308467
|
+
"What to eat today? Thinking...": "\u4ECA\u5929\u5403\u4EC0\u4E48\uFF1F\u6B63\u5728\u601D\u8003\u4E2D...",
|
|
308468
|
+
"Pretending to work...": "\u6B63\u5728\u5047\u88C5\u5728\u5DE5\u4F5C...",
|
|
308469
|
+
"Let me think, just a moment...": "\u8BA9\u6211\u60F3\u60F3\uFF0C\u7A0D\u7B49\u4E00\u4E0B...",
|
|
308470
|
+
"Brewing inspiration...": "\u6B63\u5728\u915D\u917F\u7075\u611F...",
|
|
308471
|
+
"Take a deep breath, almost done...": "\u6DF1\u547C\u5438\uFF0C\u9A6C\u4E0A\u5C31\u597D...",
|
|
308472
|
+
"Don't worry, good things take time...": "\u4E0D\u8981\u7740\u6025\uFF0C\u597D\u996D\u4E0D\u6015\u665A...",
|
|
308473
|
+
"Stay calm, exciting things coming...": "\u7A0D\u5B89\u52FF\u8E81\uFF0C\u7CBE\u5F69\u5373\u5C06\u5448\u73B0...",
|
|
308519
308474
|
"Hmmm... let me think...": "\u55EF...\u8BA9\u6211\u60F3\u60F3...",
|
|
308520
|
-
|
|
308521
|
-
"
|
|
308522
|
-
"
|
|
308523
|
-
"
|
|
308524
|
-
"
|
|
308525
|
-
"
|
|
308526
|
-
"
|
|
308527
|
-
"
|
|
308528
|
-
"
|
|
308529
|
-
"
|
|
308530
|
-
|
|
308531
|
-
"
|
|
308532
|
-
"
|
|
308533
|
-
"
|
|
308534
|
-
"
|
|
308535
|
-
"
|
|
308536
|
-
"
|
|
308537
|
-
"Letting the thoughts marinate...": "\u8BA9\u60F3\u6CD5\u6162\u6162\u915D\u917F...",
|
|
308538
|
-
"Just remembered where I put my keys...": "\u521A\u521A\u60F3\u8D77\u6211\u628A\u94A5\u5319\u653E\u5728\u54EA\u91CC\u4E86...",
|
|
308539
|
-
"Pondering the orb...": "\u6B63\u5728\u601D\u8003\u7403\u4F53...",
|
|
308540
|
-
"I've seen things you people wouldn't believe... like a user who reads loading messages.": "\u6211\u89C1\u8FC7\u4F60\u4EEC\u4E0D\u4F1A\u76F8\u4FE1\u7684\u4E8B\u60C5...\u6BD4\u5982\u4E00\u4E2A\u9605\u8BFB\u52A0\u8F7D\u6D88\u606F\u7684\u7528\u6237\u3002",
|
|
308541
|
-
"Initiating thoughtful gaze...": "\u6B63\u5728\u542F\u52A8\u6DF1\u601D\u51DD\u89C6...",
|
|
308542
|
-
"What's a computer's favorite snack? Microchips.": "\u7535\u8111\u6700\u559C\u6B22\u7684\u96F6\u98DF\u662F\u4EC0\u4E48\uFF1F\u5FAE\u82AF\u7247\u3002",
|
|
308543
|
-
"Why do Java developers wear glasses? Because they don't C#.": "\u4E3A\u4EC0\u4E48 Java \u5F00\u53D1\u8005\u6234\u773C\u955C\uFF1F\u56E0\u4E3A\u4ED6\u4EEC\u4E0D\u4F1A C#\u3002",
|
|
308544
|
-
"Charging the laser... pew pew!": "\u6B63\u5728\u7ED9\u6FC0\u5149\u5145\u7535...\u7830\u7830\uFF01",
|
|
308545
|
-
"Dividing by zero... just kidding!": "\u9664\u4EE5\u96F6...\u53EA\u662F\u5F00\u73A9\u7B11\uFF01",
|
|
308546
|
-
"Looking for an adult superviso... I mean, processing.": "\u6B63\u5728\u5BFB\u627E\u6210\u4EBA\u76D1\u7763...\u6211\u662F\u8BF4\uFF0C\u5904\u7406\u4E2D\u3002",
|
|
308547
|
-
"Making it go beep boop.": "\u8BA9\u5B83\u53D1\u51FA\u54D4\u54D4\u58F0\u3002",
|
|
308548
|
-
"Buffering... because even AIs need a moment.": "\u6B63\u5728\u7F13\u51B2...\u56E0\u4E3A\u5373\u4F7F\u662F AI \u4E5F\u9700\u8981\u7247\u523B\u3002",
|
|
308549
|
-
"Entangling quantum particles for a faster response...": "\u6B63\u5728\u7EA0\u7F20\u91CF\u5B50\u7C92\u5B50\u4EE5\u83B7\u5F97\u66F4\u5FEB\u7684\u56DE\u590D...",
|
|
308550
|
-
"Polishing the chrome... on the algorithms.": "\u6B63\u5728\u6253\u78E8\u94EC...\u5728\u7B97\u6CD5\u4E0A\u3002",
|
|
308551
|
-
"Are you not entertained? (Working on it!)": "\u4F60\u4E0D\u89C9\u5F97\u6709\u8DA3\u5417\uFF1F\uFF08\u6B63\u5728\u52AA\u529B\uFF01\uFF09",
|
|
308552
|
-
"Summoning the code gremlins... to help, of course.": "\u6B63\u5728\u53EC\u5524\u4EE3\u7801\u5C0F\u7CBE\u7075...\u5F53\u7136\u662F\u6765\u5E2E\u5FD9\u7684\u3002",
|
|
308553
|
-
"Just waiting for the dial-up tone to finish...": "\u53EA\u662F\u7B49\u5F85\u62E8\u53F7\u97F3\u7ED3\u675F...",
|
|
308554
|
-
"Recalibrating the humor-o-meter.": "\u6B63\u5728\u91CD\u65B0\u6821\u51C6\u5E7D\u9ED8\u8BA1\u3002",
|
|
308555
|
-
"My other loading screen is even funnier.": "\u6211\u7684\u53E6\u4E00\u4E2A\u52A0\u8F7D\u5C4F\u5E55\u66F4\u6709\u8DA3\u3002",
|
|
308556
|
-
"Pretty sure there's a cat walking on the keyboard somewhere...": "\u5F88\u786E\u5B9A\u6709\u53EA\u732B\u5728\u67D0\u4E2A\u5730\u65B9\u952E\u76D8\u4E0A\u8D70...",
|
|
308557
|
-
"Enhancing... Enhancing... Still loading.": "\u6B63\u5728\u589E\u5F3A...\u6B63\u5728\u589E\u5F3A...\u4ECD\u5728\u52A0\u8F7D\u3002",
|
|
308558
|
-
"It's not a bug, it's a feature... of this loading screen.": "\u8FD9\u4E0D\u662F\u4E00\u4E2A\u9519\u8BEF\uFF0C\u8FD9\u662F\u4E00\u4E2A\u529F\u80FD...\u8FD9\u4E2A\u52A0\u8F7D\u5C4F\u5E55\u7684\u529F\u80FD\u3002",
|
|
308559
|
-
"Have you tried turning it off and on again? (The loading screen, not me.)": "\u4F60\u8BD5\u8FC7\u628A\u5B83\u5173\u6389\u518D\u6253\u5F00\u5417\uFF1F\uFF08\u52A0\u8F7D\u5C4F\u5E55\uFF0C\u4E0D\u662F\u6211\u3002\uFF09",
|
|
308560
|
-
"Constructing additional pylons...": "\u6B63\u5728\u5EFA\u9020\u989D\u5916\u7684\u80FD\u91CF\u5854...",
|
|
308475
|
+
// 技术向但接地气
|
|
308476
|
+
"Greeting the server...": "\u6B63\u5728\u5411\u670D\u52A1\u5668\u95EE\u597D...",
|
|
308477
|
+
"Organizing thoughts...": "\u6B63\u5728\u6574\u7406\u601D\u7EEA...",
|
|
308478
|
+
"Preparing my words...": "\u6B63\u5728\u7EC4\u7EC7\u8BED\u8A00...",
|
|
308479
|
+
"Looking up information...": "\u6B63\u5728\u67E5\u9605\u8D44\u6599...",
|
|
308480
|
+
"Sorting out my thoughts...": "\u8BA9\u6211\u7406\u4E00\u7406\u601D\u8DEF...",
|
|
308481
|
+
"Analyzing the problem...": "\u6B63\u5728\u5206\u6790\u95EE\u9898...",
|
|
308482
|
+
"Looking for the best solution...": "\u6B63\u5728\u5BFB\u627E\u6700\u4F73\u65B9\u6848...",
|
|
308483
|
+
"Engaging cognitive processors...": "\u6B63\u5728\u542F\u52A8\u8BA4\u77E5\u5904\u7406\u5668...",
|
|
308484
|
+
"Crafting a response worthy of your patience...": "\u6B63\u5728\u5236\u4F5C\u503C\u5F97\u60A8\u8010\u5FC3\u7B49\u5F85\u7684\u56DE\u590D...",
|
|
308485
|
+
// 保持通用性
|
|
308486
|
+
"Loading...": "\u6B63\u5728\u52A0\u8F7D...",
|
|
308487
|
+
"Processing, please wait...": "\u5904\u7406\u4E2D\uFF0C\u8BF7\u7A0D\u5019...",
|
|
308488
|
+
"Almost there...": "\u9A6C\u4E0A\u5C31\u597D...",
|
|
308489
|
+
"Working hard...": "\u6B63\u5728\u52AA\u529B\u5DE5\u4F5C\u4E2D...",
|
|
308490
|
+
"Almost... almost...": "\u5FEB\u4E86\uFF0C\u5FEB\u4E86...",
|
|
308491
|
+
"Almost there... probably...": "\u5FEB\u5230\u4E86...\u53EF\u80FD...",
|
|
308561
308492
|
"Initialize OpenSpec in a project with RDMind integration": "\u5728\u9879\u76EE\u4E2D\u521D\u59CB\u5316 OpenSpec\uFF08\u96C6\u6210 RDMind\uFF09",
|
|
308562
308493
|
"Initialize OpenSpec in the current directory": "\u5728\u5F53\u524D\u76EE\u5F55\u521D\u59CB\u5316 OpenSpec",
|
|
308563
308494
|
"Scaffold a new OpenSpec change and validate strictly.": "\u642D\u5EFA\u65B0\u7684 OpenSpec \u53D8\u66F4\u5E76\u4E25\u683C\u9A8C\u8BC1\u3002",
|
|
@@ -334141,7 +334072,7 @@ var patchConsole = /* @__PURE__ */ __name((callback) => {
|
|
|
334141
334072
|
var dist_default2 = patchConsole;
|
|
334142
334073
|
|
|
334143
334074
|
// node_modules/ink/build/ink.js
|
|
334144
|
-
var
|
|
334075
|
+
var import_constants21 = __toESM(require_constants11(), 1);
|
|
334145
334076
|
|
|
334146
334077
|
// node_modules/yoga-layout/dist/src/index.js
|
|
334147
334078
|
init_esbuild_shims();
|
|
@@ -336204,7 +336135,7 @@ __name(wrapAnsi, "wrapAnsi");
|
|
|
336204
336135
|
// node_modules/ink/build/reconciler.js
|
|
336205
336136
|
init_esbuild_shims();
|
|
336206
336137
|
var import_react_reconciler = __toESM(require_react_reconciler(), 1);
|
|
336207
|
-
var
|
|
336138
|
+
var import_constants20 = __toESM(require_constants11(), 1);
|
|
336208
336139
|
import process15 from "node:process";
|
|
336209
336140
|
var import_react = __toESM(require_react(), 1);
|
|
336210
336141
|
|
|
@@ -337175,7 +337106,7 @@ var cleanupYogaNode = /* @__PURE__ */ __name((node) => {
|
|
|
337175
337106
|
node?.unsetMeasureFunc();
|
|
337176
337107
|
node?.freeRecursive();
|
|
337177
337108
|
}, "cleanupYogaNode");
|
|
337178
|
-
var currentUpdatePriority =
|
|
337109
|
+
var currentUpdatePriority = import_constants20.NoEventPriority;
|
|
337179
337110
|
var currentRootNode;
|
|
337180
337111
|
var reconciler_default = (0, import_react_reconciler.default)({
|
|
337181
337112
|
getRootHostContext: /* @__PURE__ */ __name(() => ({
|
|
@@ -337332,10 +337263,10 @@ var reconciler_default = (0, import_react_reconciler.default)({
|
|
|
337332
337263
|
},
|
|
337333
337264
|
getCurrentUpdatePriority: /* @__PURE__ */ __name(() => currentUpdatePriority, "getCurrentUpdatePriority"),
|
|
337334
337265
|
resolveUpdatePriority() {
|
|
337335
|
-
if (currentUpdatePriority !==
|
|
337266
|
+
if (currentUpdatePriority !== import_constants20.NoEventPriority) {
|
|
337336
337267
|
return currentUpdatePriority;
|
|
337337
337268
|
}
|
|
337338
|
-
return
|
|
337269
|
+
return import_constants20.DefaultEventPriority;
|
|
337339
337270
|
},
|
|
337340
337271
|
maySuspendCommit() {
|
|
337341
337272
|
return false;
|
|
@@ -339853,7 +339784,7 @@ var Ink = class {
|
|
|
339853
339784
|
this.fullStaticOutput = "";
|
|
339854
339785
|
this.container = reconciler_default.createContainer(
|
|
339855
339786
|
this.rootNode,
|
|
339856
|
-
|
|
339787
|
+
import_constants21.LegacyRoot,
|
|
339857
339788
|
null,
|
|
339858
339789
|
false,
|
|
339859
339790
|
null,
|
|
@@ -346420,7 +346351,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
346420
346351
|
// packages/cli/src/utils/version.ts
|
|
346421
346352
|
async function getCliVersion() {
|
|
346422
346353
|
const pkgJson = await getPackageJson();
|
|
346423
|
-
return "0.1.4-alpha.
|
|
346354
|
+
return "0.1.4-alpha.10";
|
|
346424
346355
|
}
|
|
346425
346356
|
__name(getCliVersion, "getCliVersion");
|
|
346426
346357
|
|
|
@@ -350816,6 +350747,168 @@ var GoogleCode = new Theme(
|
|
|
350816
350747
|
googleCodeColors
|
|
350817
350748
|
);
|
|
350818
350749
|
|
|
350750
|
+
// packages/cli/src/ui/themes/holiday.ts
|
|
350751
|
+
init_esbuild_shims();
|
|
350752
|
+
init_theme();
|
|
350753
|
+
var holidayColors = {
|
|
350754
|
+
type: "dark",
|
|
350755
|
+
Background: "#00210e",
|
|
350756
|
+
Foreground: "#F0F8FF",
|
|
350757
|
+
LightBlue: "#B0E0E6",
|
|
350758
|
+
AccentBlue: "#3CB371",
|
|
350759
|
+
AccentPurple: "#FF9999",
|
|
350760
|
+
AccentCyan: "#33F9FF",
|
|
350761
|
+
AccentGreen: "#3CB371",
|
|
350762
|
+
AccentYellow: "#FFEE8C",
|
|
350763
|
+
AccentRed: "#FF6347",
|
|
350764
|
+
DiffAdded: "#2E8B57",
|
|
350765
|
+
DiffRemoved: "#CD5C5C",
|
|
350766
|
+
Comment: "#8FBC8F",
|
|
350767
|
+
Gray: "#D7F5D3",
|
|
350768
|
+
GradientColors: ["#FF0000", "#FFFFFF", "#008000"]
|
|
350769
|
+
};
|
|
350770
|
+
var Holiday = new Theme(
|
|
350771
|
+
"Holiday",
|
|
350772
|
+
"dark",
|
|
350773
|
+
{
|
|
350774
|
+
hljs: {
|
|
350775
|
+
display: "block",
|
|
350776
|
+
overflowX: "auto",
|
|
350777
|
+
padding: "0.5em",
|
|
350778
|
+
background: holidayColors.Background,
|
|
350779
|
+
color: holidayColors.Foreground
|
|
350780
|
+
},
|
|
350781
|
+
"hljs-keyword": {
|
|
350782
|
+
color: holidayColors.AccentBlue
|
|
350783
|
+
},
|
|
350784
|
+
"hljs-literal": {
|
|
350785
|
+
color: holidayColors.AccentBlue
|
|
350786
|
+
},
|
|
350787
|
+
"hljs-symbol": {
|
|
350788
|
+
color: holidayColors.AccentBlue
|
|
350789
|
+
},
|
|
350790
|
+
"hljs-name": {
|
|
350791
|
+
color: holidayColors.AccentBlue
|
|
350792
|
+
},
|
|
350793
|
+
"hljs-link": {
|
|
350794
|
+
color: holidayColors.AccentBlue,
|
|
350795
|
+
textDecoration: "underline"
|
|
350796
|
+
},
|
|
350797
|
+
"hljs-built_in": {
|
|
350798
|
+
color: holidayColors.AccentCyan
|
|
350799
|
+
},
|
|
350800
|
+
"hljs-type": {
|
|
350801
|
+
color: holidayColors.AccentCyan
|
|
350802
|
+
},
|
|
350803
|
+
"hljs-number": {
|
|
350804
|
+
color: holidayColors.AccentGreen
|
|
350805
|
+
},
|
|
350806
|
+
"hljs-class": {
|
|
350807
|
+
color: holidayColors.AccentGreen
|
|
350808
|
+
},
|
|
350809
|
+
"hljs-string": {
|
|
350810
|
+
color: holidayColors.AccentYellow
|
|
350811
|
+
},
|
|
350812
|
+
"hljs-meta-string": {
|
|
350813
|
+
color: holidayColors.AccentYellow
|
|
350814
|
+
},
|
|
350815
|
+
"hljs-regexp": {
|
|
350816
|
+
color: holidayColors.AccentRed
|
|
350817
|
+
},
|
|
350818
|
+
"hljs-template-tag": {
|
|
350819
|
+
color: holidayColors.AccentRed
|
|
350820
|
+
},
|
|
350821
|
+
"hljs-subst": {
|
|
350822
|
+
color: holidayColors.Foreground
|
|
350823
|
+
},
|
|
350824
|
+
"hljs-function": {
|
|
350825
|
+
color: holidayColors.Foreground
|
|
350826
|
+
},
|
|
350827
|
+
"hljs-title": {
|
|
350828
|
+
color: holidayColors.Foreground
|
|
350829
|
+
},
|
|
350830
|
+
"hljs-params": {
|
|
350831
|
+
color: holidayColors.Foreground
|
|
350832
|
+
},
|
|
350833
|
+
"hljs-formula": {
|
|
350834
|
+
color: holidayColors.Foreground
|
|
350835
|
+
},
|
|
350836
|
+
"hljs-comment": {
|
|
350837
|
+
color: holidayColors.Comment,
|
|
350838
|
+
fontStyle: "italic"
|
|
350839
|
+
},
|
|
350840
|
+
"hljs-quote": {
|
|
350841
|
+
color: holidayColors.Comment,
|
|
350842
|
+
fontStyle: "italic"
|
|
350843
|
+
},
|
|
350844
|
+
"hljs-doctag": {
|
|
350845
|
+
color: holidayColors.Comment
|
|
350846
|
+
},
|
|
350847
|
+
"hljs-meta": {
|
|
350848
|
+
color: holidayColors.Gray
|
|
350849
|
+
},
|
|
350850
|
+
"hljs-meta-keyword": {
|
|
350851
|
+
color: holidayColors.Gray
|
|
350852
|
+
},
|
|
350853
|
+
"hljs-tag": {
|
|
350854
|
+
color: holidayColors.Gray
|
|
350855
|
+
},
|
|
350856
|
+
"hljs-variable": {
|
|
350857
|
+
color: holidayColors.AccentPurple
|
|
350858
|
+
},
|
|
350859
|
+
"hljs-template-variable": {
|
|
350860
|
+
color: holidayColors.AccentPurple
|
|
350861
|
+
},
|
|
350862
|
+
"hljs-attr": {
|
|
350863
|
+
color: holidayColors.LightBlue
|
|
350864
|
+
},
|
|
350865
|
+
"hljs-attribute": {
|
|
350866
|
+
color: holidayColors.LightBlue
|
|
350867
|
+
},
|
|
350868
|
+
"hljs-builtin-name": {
|
|
350869
|
+
color: holidayColors.LightBlue
|
|
350870
|
+
},
|
|
350871
|
+
"hljs-section": {
|
|
350872
|
+
color: holidayColors.AccentYellow
|
|
350873
|
+
},
|
|
350874
|
+
"hljs-emphasis": {
|
|
350875
|
+
fontStyle: "italic"
|
|
350876
|
+
},
|
|
350877
|
+
"hljs-strong": {
|
|
350878
|
+
fontWeight: "bold"
|
|
350879
|
+
},
|
|
350880
|
+
"hljs-bullet": {
|
|
350881
|
+
color: holidayColors.AccentYellow
|
|
350882
|
+
},
|
|
350883
|
+
"hljs-selector-tag": {
|
|
350884
|
+
color: holidayColors.AccentYellow
|
|
350885
|
+
},
|
|
350886
|
+
"hljs-selector-id": {
|
|
350887
|
+
color: holidayColors.AccentYellow
|
|
350888
|
+
},
|
|
350889
|
+
"hljs-selector-class": {
|
|
350890
|
+
color: holidayColors.AccentYellow
|
|
350891
|
+
},
|
|
350892
|
+
"hljs-selector-attr": {
|
|
350893
|
+
color: holidayColors.AccentYellow
|
|
350894
|
+
},
|
|
350895
|
+
"hljs-selector-pseudo": {
|
|
350896
|
+
color: holidayColors.AccentYellow
|
|
350897
|
+
},
|
|
350898
|
+
"hljs-addition": {
|
|
350899
|
+
backgroundColor: holidayColors.DiffAdded,
|
|
350900
|
+
display: "inline-block",
|
|
350901
|
+
width: "100%"
|
|
350902
|
+
},
|
|
350903
|
+
"hljs-deletion": {
|
|
350904
|
+
backgroundColor: holidayColors.DiffRemoved,
|
|
350905
|
+
display: "inline-block",
|
|
350906
|
+
width: "100%"
|
|
350907
|
+
}
|
|
350908
|
+
},
|
|
350909
|
+
holidayColors
|
|
350910
|
+
);
|
|
350911
|
+
|
|
350819
350912
|
// packages/cli/src/ui/themes/theme-manager.ts
|
|
350820
350913
|
init_default_light();
|
|
350821
350914
|
init_default3();
|
|
@@ -352101,6 +352194,7 @@ var ThemeManager = class {
|
|
|
352101
352194
|
GitHubDark,
|
|
352102
352195
|
GitHubLight,
|
|
352103
352196
|
GoogleCode,
|
|
352197
|
+
Holiday,
|
|
352104
352198
|
QwenLight,
|
|
352105
352199
|
QwenDark,
|
|
352106
352200
|
ShadesOfPurple,
|
|
@@ -352787,7 +352881,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
352787
352881
|
|
|
352788
352882
|
// packages/cli/src/generated/git-commit.ts
|
|
352789
352883
|
init_esbuild_shims();
|
|
352790
|
-
var GIT_COMMIT_INFO2 = "
|
|
352884
|
+
var GIT_COMMIT_INFO2 = "a5a74672";
|
|
352791
352885
|
|
|
352792
352886
|
// packages/cli/src/utils/systemInfo.ts
|
|
352793
352887
|
async function getNpmVersion() {
|
|
@@ -388371,7 +388465,7 @@ function IdeIntegrationNudge({
|
|
|
388371
388465
|
{ isActive: true }
|
|
388372
388466
|
);
|
|
388373
388467
|
const { displayName: ideName } = ide;
|
|
388374
|
-
const isExtensionPreInstalled = !!process.env["
|
|
388468
|
+
const isExtensionPreInstalled = !!process.env["RDMIND_CODE_IDE_SERVER_PORT"] && !!process.env["RDMIND_CODE_IDE_WORKSPACE_PATH"];
|
|
388375
388469
|
const OPTIONS = [
|
|
388376
388470
|
{
|
|
388377
388471
|
label: "Yes",
|
|
@@ -394027,12 +394121,17 @@ var InputPrompt = /* @__PURE__ */ __name(({
|
|
|
394027
394121
|
statusColor = theme.status.warning;
|
|
394028
394122
|
statusText = t3("Accepting edits");
|
|
394029
394123
|
}
|
|
394124
|
+
const borderColor = isShellFocused && !isEmbeddedShellFocused ? statusColor ?? theme.border.focused : theme.border.default;
|
|
394030
394125
|
return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_jsx_runtime95.Fragment, { children: [
|
|
394031
394126
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
|
|
394032
394127
|
Box_default,
|
|
394033
394128
|
{
|
|
394034
|
-
borderStyle: "
|
|
394035
|
-
|
|
394129
|
+
borderStyle: "single",
|
|
394130
|
+
borderTop: true,
|
|
394131
|
+
borderBottom: true,
|
|
394132
|
+
borderLeft: false,
|
|
394133
|
+
borderRight: false,
|
|
394134
|
+
borderColor,
|
|
394036
394135
|
paddingX: 1,
|
|
394037
394136
|
children: [
|
|
394038
394137
|
/* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
|
|
@@ -394111,7 +394210,7 @@ var InputPrompt = /* @__PURE__ */ __name(({
|
|
|
394111
394210
|
});
|
|
394112
394211
|
if (isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText)) {
|
|
394113
394212
|
renderedLine.push(
|
|
394114
|
-
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Text3, { children: showCursor ? import_chalk7.default.inverse(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
|
|
394213
|
+
/* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Text3, { children: showCursor ? import_chalk7.default.inverse(" ") + "\u200B" : " \u200B" }, `cursor-end-${cursorVisualColAbsolute}`)
|
|
394115
394214
|
);
|
|
394116
394215
|
}
|
|
394117
394216
|
return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Box_default, { height: 1, children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Text3, { children: renderedLine }) }, `line-${visualIdxInRenderedSet}`);
|
|
@@ -395246,9 +395345,12 @@ var useAuthCommand = /* @__PURE__ */ __name((settings, config2, addItem) => {
|
|
|
395246
395345
|
addItem(
|
|
395247
395346
|
{
|
|
395248
395347
|
type: "info" /* INFO */,
|
|
395249
|
-
text: t3(
|
|
395250
|
-
authType
|
|
395251
|
-
|
|
395348
|
+
text: t3(
|
|
395349
|
+
"Authenticated successfully with {{authType}} credentials.",
|
|
395350
|
+
{
|
|
395351
|
+
authType
|
|
395352
|
+
}
|
|
395353
|
+
)
|
|
395252
395354
|
},
|
|
395253
395355
|
Date.now()
|
|
395254
395356
|
);
|
|
@@ -395285,9 +395387,12 @@ var useAuthCommand = /* @__PURE__ */ __name((settings, config2, addItem) => {
|
|
|
395285
395387
|
addItem(
|
|
395286
395388
|
{
|
|
395287
395389
|
type: "info" /* INFO */,
|
|
395288
|
-
text: t3(
|
|
395289
|
-
authType
|
|
395290
|
-
|
|
395390
|
+
text: t3(
|
|
395391
|
+
"Authenticated successfully with {{authType}} credentials.",
|
|
395392
|
+
{
|
|
395393
|
+
authType
|
|
395394
|
+
}
|
|
395395
|
+
)
|
|
395291
395396
|
},
|
|
395292
395397
|
Date.now()
|
|
395293
395398
|
);
|
|
@@ -399282,135 +399387,75 @@ var useTimer = /* @__PURE__ */ __name((isActive, resetKey) => {
|
|
|
399282
399387
|
init_esbuild_shims();
|
|
399283
399388
|
var import_react119 = __toESM(require_react(), 1);
|
|
399284
399389
|
var WITTY_LOADING_PHRASES = [
|
|
399285
|
-
|
|
399286
|
-
"
|
|
399287
|
-
"
|
|
399288
|
-
"
|
|
399289
|
-
"
|
|
399290
|
-
"
|
|
399291
|
-
"
|
|
399292
|
-
"
|
|
399293
|
-
"
|
|
399390
|
+
// 编程/技术相关
|
|
399391
|
+
"Summoning the soul of programmers...",
|
|
399392
|
+
"Fixing that bug that's not a bug, it's a feature...",
|
|
399393
|
+
"Removing pinyin comments from code...",
|
|
399394
|
+
"Debating whether array index starts from 0 or 1...",
|
|
399395
|
+
"Thinking about refactoring...",
|
|
399396
|
+
"Looking for a misplaced semicolon...",
|
|
399397
|
+
"Cleaning up stack overflow...",
|
|
399398
|
+
"Naming variables properly...",
|
|
399399
|
+
"Commenting code written 3 months ago...",
|
|
399400
|
+
"Praying for no bugs...",
|
|
399401
|
+
"Trying to exit Vim...",
|
|
399402
|
+
"Searching for the correct USB orientation...",
|
|
399403
|
+
"That's not a bug, it's an undocumented feature...",
|
|
399294
399404
|
"Polishing the algorithms...",
|
|
399295
|
-
"Don't rush perfection (or my code)...",
|
|
399296
|
-
"Brewing fresh bytes...",
|
|
399297
|
-
"Counting electrons...",
|
|
399298
|
-
"Engaging cognitive processors...",
|
|
399299
|
-
"Checking for syntax errors in the universe...",
|
|
399300
|
-
"One moment, optimizing humor...",
|
|
399301
|
-
"Shuffling punchlines...",
|
|
399302
|
-
"Untangling neural nets...",
|
|
399303
399405
|
"Compiling brilliance...",
|
|
399304
|
-
"
|
|
399305
|
-
"Summoning the cloud of wisdom...",
|
|
399306
|
-
"Preparing a witty response...",
|
|
399307
|
-
"Just a sec, I'm debugging reality...",
|
|
399308
|
-
"Confuzzling the options...",
|
|
399309
|
-
"Tuning the cosmic frequencies...",
|
|
399310
|
-
"Crafting a response worthy of your patience...",
|
|
399311
|
-
"Compiling the 1s and 0s...",
|
|
399312
|
-
"Resolving dependencies... and existential crises...",
|
|
399313
|
-
"Defragmenting memories... both RAM and personal...",
|
|
399314
|
-
"Rebooting the humor module...",
|
|
399315
|
-
"Caching the essentials (mostly cat memes)...",
|
|
399316
|
-
"Optimizing for ludicrous speed",
|
|
399317
|
-
"Swapping bits... don't tell the bytes...",
|
|
399406
|
+
"Untangling neural nets...",
|
|
399318
399407
|
"Garbage collecting... be right back...",
|
|
399319
|
-
"
|
|
399408
|
+
"Resolving dependencies...",
|
|
399320
399409
|
"Converting coffee into code...",
|
|
399321
|
-
|
|
399322
|
-
"
|
|
399323
|
-
"
|
|
399324
|
-
|
|
399325
|
-
"
|
|
399326
|
-
"
|
|
399327
|
-
"
|
|
399328
|
-
"
|
|
399329
|
-
|
|
399330
|
-
"
|
|
399331
|
-
"
|
|
399332
|
-
"
|
|
399333
|
-
"
|
|
399334
|
-
"
|
|
399335
|
-
"
|
|
399336
|
-
|
|
399337
|
-
"
|
|
399338
|
-
"
|
|
399339
|
-
"
|
|
399340
|
-
"
|
|
399341
|
-
"
|
|
399342
|
-
"
|
|
399343
|
-
|
|
399344
|
-
"
|
|
399345
|
-
"
|
|
399346
|
-
"
|
|
399347
|
-
"
|
|
399348
|
-
"
|
|
399349
|
-
"
|
|
399350
|
-
"
|
|
399351
|
-
"
|
|
399352
|
-
"Pressing 'A' to continue...",
|
|
399353
|
-
"Herding digital cats...",
|
|
399354
|
-
"Polishing the pixels...",
|
|
399355
|
-
"Finding a suitable loading screen pun...",
|
|
399356
|
-
"Distracting you with this witty phrase...",
|
|
399357
|
-
"Almost there... probably...",
|
|
399358
|
-
"Our hamsters are working as fast as they can...",
|
|
399359
|
-
"Giving Cloudy a pat on the head...",
|
|
399360
|
-
"Petting the cat...",
|
|
399361
|
-
"Rickrolling my boss...",
|
|
399362
|
-
"Never gonna give you up, never gonna let you down...",
|
|
399363
|
-
"Slapping the bass...",
|
|
399364
|
-
"Tasting the snozberries...",
|
|
399365
|
-
"I'm going the distance, I'm going for speed...",
|
|
399366
|
-
"Is this the real life? Is this just fantasy?...",
|
|
399367
|
-
"I've got a good feeling about this...",
|
|
399368
|
-
"Poking the bear...",
|
|
399369
|
-
"Doing research on the latest memes...",
|
|
399370
|
-
"Figuring out how to make this more witty...",
|
|
399410
|
+
// 工作/职场相关
|
|
399411
|
+
"Waiting for product manager to change requirements...",
|
|
399412
|
+
"Postponing project deadline...",
|
|
399413
|
+
'Preparing another "almost done"...',
|
|
399414
|
+
"Taking a break...",
|
|
399415
|
+
"Making goji berry tea...",
|
|
399416
|
+
"Ordering takeout...",
|
|
399417
|
+
"Pretending to be busy...",
|
|
399418
|
+
// 互联网文化/梗
|
|
399419
|
+
"Recharging faith...",
|
|
399420
|
+
"Downloading more RAM...",
|
|
399421
|
+
"Feeding the server...",
|
|
399422
|
+
"Waking up sleeping code...",
|
|
399423
|
+
"Feeding data to AI...",
|
|
399424
|
+
"Opening imagination...",
|
|
399425
|
+
// 日常生活
|
|
399426
|
+
"Boiling water for tea...",
|
|
399427
|
+
"Waiting for the elevator...",
|
|
399428
|
+
"Taking a number in queue...",
|
|
399429
|
+
"Waiting for traffic light...",
|
|
399430
|
+
"Charging...",
|
|
399431
|
+
"Buffering life...",
|
|
399432
|
+
// 轻松幽默
|
|
399433
|
+
"Contemplating the meaning of life...",
|
|
399434
|
+
"What to eat today? Thinking...",
|
|
399435
|
+
"Pretending to work...",
|
|
399436
|
+
"Let me think, just a moment...",
|
|
399437
|
+
"Brewing inspiration...",
|
|
399438
|
+
"Take a deep breath, almost done...",
|
|
399439
|
+
"Don't worry, good things take time...",
|
|
399440
|
+
"Stay calm, exciting things coming...",
|
|
399371
399441
|
"Hmmm... let me think...",
|
|
399372
|
-
|
|
399373
|
-
"
|
|
399374
|
-
"
|
|
399375
|
-
"
|
|
399376
|
-
"
|
|
399377
|
-
"
|
|
399378
|
-
"
|
|
399379
|
-
"
|
|
399380
|
-
"
|
|
399381
|
-
"
|
|
399382
|
-
|
|
399383
|
-
"
|
|
399384
|
-
"
|
|
399385
|
-
"
|
|
399386
|
-
"
|
|
399387
|
-
"
|
|
399388
|
-
"
|
|
399389
|
-
"Letting the thoughts marinate...",
|
|
399390
|
-
"Just remembered where I put my keys...",
|
|
399391
|
-
"Pondering the orb...",
|
|
399392
|
-
"I've seen things you people wouldn't believe... like a user who reads loading messages.",
|
|
399393
|
-
"Initiating thoughtful gaze...",
|
|
399394
|
-
"What's a computer's favorite snack? Microchips.",
|
|
399395
|
-
"Why do Java developers wear glasses? Because they don't C#.",
|
|
399396
|
-
"Charging the laser... pew pew!",
|
|
399397
|
-
"Dividing by zero... just kidding!",
|
|
399398
|
-
"Looking for an adult superviso... I mean, processing.",
|
|
399399
|
-
"Making it go beep boop.",
|
|
399400
|
-
"Buffering... because even AIs need a moment.",
|
|
399401
|
-
"Entangling quantum particles for a faster response...",
|
|
399402
|
-
"Polishing the chrome... on the algorithms.",
|
|
399403
|
-
"Are you not entertained? (Working on it!)",
|
|
399404
|
-
"Summoning the code gremlins... to help, of course.",
|
|
399405
|
-
"Just waiting for the dial-up tone to finish...",
|
|
399406
|
-
"Recalibrating the humor-o-meter.",
|
|
399407
|
-
"My other loading screen is even funnier.",
|
|
399408
|
-
"Pretty sure there's a cat walking on the keyboard somewhere...",
|
|
399409
|
-
"Enhancing... Enhancing... Still loading.",
|
|
399410
|
-
"It's not a bug, it's a feature... of this loading screen.",
|
|
399411
|
-
"Have you tried turning it off and on again? (The loading screen, not me.)",
|
|
399412
|
-
"Constructing additional pylons...",
|
|
399413
|
-
"New line? That\u2019s Ctrl+J."
|
|
399442
|
+
// 技术向但接地气
|
|
399443
|
+
"Greeting the server...",
|
|
399444
|
+
"Organizing thoughts...",
|
|
399445
|
+
"Preparing my words...",
|
|
399446
|
+
"Looking up information...",
|
|
399447
|
+
"Sorting out my thoughts...",
|
|
399448
|
+
"Analyzing the problem...",
|
|
399449
|
+
"Looking for the best solution...",
|
|
399450
|
+
"Engaging cognitive processors...",
|
|
399451
|
+
"Crafting a response worthy of your patience...",
|
|
399452
|
+
// 保持通用性
|
|
399453
|
+
"Loading...",
|
|
399454
|
+
"Processing, please wait...",
|
|
399455
|
+
"Almost there...",
|
|
399456
|
+
"Working hard...",
|
|
399457
|
+
"Almost... almost...",
|
|
399458
|
+
"Almost there... probably..."
|
|
399414
399459
|
];
|
|
399415
399460
|
var PHRASE_CHANGE_INTERVAL_MS = 15e3;
|
|
399416
399461
|
var usePhraseCycler = /* @__PURE__ */ __name((isActive, isWaiting, customPhrases) => {
|
|
@@ -405706,8 +405751,8 @@ async function start_sandbox(config2, nodeArgs = [], cliConfig, cliArgs = []) {
|
|
|
405706
405751
|
args.push("--env", `COLORTERM=${process.env["COLORTERM"]}`);
|
|
405707
405752
|
}
|
|
405708
405753
|
for (const envVar of [
|
|
405709
|
-
"
|
|
405710
|
-
"
|
|
405754
|
+
"RDMIND_CODE_IDE_SERVER_PORT",
|
|
405755
|
+
"RDMIND_CODE_IDE_WORKSPACE_PATH",
|
|
405711
405756
|
"TERM_PROGRAM"
|
|
405712
405757
|
]) {
|
|
405713
405758
|
if (process.env[envVar]) {
|
|
@@ -406591,6 +406636,17 @@ var annotationsSchema = external_exports.object({
|
|
|
406591
406636
|
lastModified: external_exports.string().optional().nullable(),
|
|
406592
406637
|
priority: external_exports.number().optional().nullable()
|
|
406593
406638
|
});
|
|
406639
|
+
var usageSchema = external_exports.object({
|
|
406640
|
+
promptTokens: external_exports.number().optional().nullable(),
|
|
406641
|
+
completionTokens: external_exports.number().optional().nullable(),
|
|
406642
|
+
thoughtsTokens: external_exports.number().optional().nullable(),
|
|
406643
|
+
totalTokens: external_exports.number().optional().nullable(),
|
|
406644
|
+
cachedTokens: external_exports.number().optional().nullable()
|
|
406645
|
+
});
|
|
406646
|
+
var sessionUpdateMetaSchema = external_exports.object({
|
|
406647
|
+
usage: usageSchema.optional().nullable(),
|
|
406648
|
+
durationMs: external_exports.number().optional().nullable()
|
|
406649
|
+
});
|
|
406594
406650
|
var requestPermissionResponseSchema = external_exports.object({
|
|
406595
406651
|
outcome: requestPermissionOutcomeSchema
|
|
406596
406652
|
});
|
|
@@ -406746,11 +406802,13 @@ var sessionUpdateSchema = external_exports.union([
|
|
|
406746
406802
|
}),
|
|
406747
406803
|
external_exports.object({
|
|
406748
406804
|
content: contentBlockSchema,
|
|
406749
|
-
sessionUpdate: external_exports.literal("agent_message_chunk")
|
|
406805
|
+
sessionUpdate: external_exports.literal("agent_message_chunk"),
|
|
406806
|
+
_meta: sessionUpdateMetaSchema.optional().nullable()
|
|
406750
406807
|
}),
|
|
406751
406808
|
external_exports.object({
|
|
406752
406809
|
content: contentBlockSchema,
|
|
406753
|
-
sessionUpdate: external_exports.literal("agent_thought_chunk")
|
|
406810
|
+
sessionUpdate: external_exports.literal("agent_thought_chunk"),
|
|
406811
|
+
_meta: sessionUpdateMetaSchema.optional().nullable()
|
|
406754
406812
|
}),
|
|
406755
406813
|
external_exports.object({
|
|
406756
406814
|
content: external_exports.array(toolCallContentSchema).optional(),
|
|
@@ -407080,6 +407138,15 @@ var AcpFileSystemService = class {
|
|
|
407080
407138
|
line: null,
|
|
407081
407139
|
limit: null
|
|
407082
407140
|
});
|
|
407141
|
+
if (response.content.startsWith("ERROR: ENOENT:")) {
|
|
407142
|
+
const match2 = /^ERROR:\s*ENOENT:\s*(?<path>.*)$/i.exec(response.content);
|
|
407143
|
+
const err = new Error(response.content);
|
|
407144
|
+
err.code = "ENOENT";
|
|
407145
|
+
err.errno = -2;
|
|
407146
|
+
const rawPath = match2?.groups?.["path"]?.trim();
|
|
407147
|
+
err["path"] = rawPath ? rawPath.replace(/^['"]|['"]$/g, "") || filePath : filePath;
|
|
407148
|
+
throw err;
|
|
407149
|
+
}
|
|
407083
407150
|
return response.content;
|
|
407084
407151
|
}
|
|
407085
407152
|
async writeTextFile(filePath, content) {
|
|
@@ -407161,6 +407228,15 @@ var MessageEmitter = class extends BaseEmitter {
|
|
|
407161
407228
|
content: { type: "text", text }
|
|
407162
407229
|
});
|
|
407163
407230
|
}
|
|
407231
|
+
/**
|
|
407232
|
+
* Emits an agent thought chunk.
|
|
407233
|
+
*/
|
|
407234
|
+
async emitAgentThought(text) {
|
|
407235
|
+
await this.sendUpdate({
|
|
407236
|
+
sessionUpdate: "agent_thought_chunk",
|
|
407237
|
+
content: { type: "text", text }
|
|
407238
|
+
});
|
|
407239
|
+
}
|
|
407164
407240
|
/**
|
|
407165
407241
|
* Emits an agent message chunk.
|
|
407166
407242
|
*/
|
|
@@ -407171,12 +407247,21 @@ var MessageEmitter = class extends BaseEmitter {
|
|
|
407171
407247
|
});
|
|
407172
407248
|
}
|
|
407173
407249
|
/**
|
|
407174
|
-
* Emits
|
|
407250
|
+
* Emits usage metadata.
|
|
407175
407251
|
*/
|
|
407176
|
-
async
|
|
407252
|
+
async emitUsageMetadata(usageMetadata, text = "", durationMs) {
|
|
407253
|
+
const usage2 = {
|
|
407254
|
+
promptTokens: usageMetadata.promptTokenCount,
|
|
407255
|
+
completionTokens: usageMetadata.candidatesTokenCount,
|
|
407256
|
+
thoughtsTokens: usageMetadata.thoughtsTokenCount,
|
|
407257
|
+
totalTokens: usageMetadata.totalTokenCount,
|
|
407258
|
+
cachedTokens: usageMetadata.cachedContentTokenCount
|
|
407259
|
+
};
|
|
407260
|
+
const meta = typeof durationMs === "number" ? { usage: usage2, durationMs } : { usage: usage2 };
|
|
407177
407261
|
await this.sendUpdate({
|
|
407178
|
-
sessionUpdate: "
|
|
407179
|
-
content: { type: "text", text }
|
|
407262
|
+
sessionUpdate: "agent_message_chunk",
|
|
407263
|
+
content: { type: "text", text },
|
|
407264
|
+
_meta: meta
|
|
407180
407265
|
});
|
|
407181
407266
|
}
|
|
407182
407267
|
/**
|
|
@@ -407293,7 +407378,7 @@ var ToolCallEmitter = class extends BaseEmitter {
|
|
|
407293
407378
|
await this.sendUpdate({
|
|
407294
407379
|
sessionUpdate: "tool_call",
|
|
407295
407380
|
toolCallId: params.callId,
|
|
407296
|
-
status: "
|
|
407381
|
+
status: params.status || "pending",
|
|
407297
407382
|
title,
|
|
407298
407383
|
content: [],
|
|
407299
407384
|
locations,
|
|
@@ -407460,7 +407545,10 @@ var ToolCallEmitter = class extends BaseEmitter {
|
|
|
407460
407545
|
}
|
|
407461
407546
|
if ("functionResponse" in part && part.functionResponse) {
|
|
407462
407547
|
try {
|
|
407463
|
-
const
|
|
407548
|
+
const resp = part.functionResponse.response;
|
|
407549
|
+
const outputField = resp["output"];
|
|
407550
|
+
const errorField = resp["error"];
|
|
407551
|
+
const responseText = typeof outputField === "string" ? outputField : typeof errorField === "string" ? errorField : JSON.stringify(resp);
|
|
407464
407552
|
result.push({
|
|
407465
407553
|
type: "content",
|
|
407466
407554
|
content: { type: "text", text: responseText }
|
|
@@ -407508,6 +407596,9 @@ var HistoryReplayer = class {
|
|
|
407508
407596
|
if (record2.message) {
|
|
407509
407597
|
await this.replayContent(record2.message, "assistant");
|
|
407510
407598
|
}
|
|
407599
|
+
if (record2.usageMetadata) {
|
|
407600
|
+
await this.replayUsageMetadata(record2.usageMetadata);
|
|
407601
|
+
}
|
|
407511
407602
|
break;
|
|
407512
407603
|
case "tool_result":
|
|
407513
407604
|
await this.replayToolResult(record2);
|
|
@@ -407532,11 +407623,19 @@ var HistoryReplayer = class {
|
|
|
407532
407623
|
await this.toolCallEmitter.emitStart({
|
|
407533
407624
|
toolName: functionName,
|
|
407534
407625
|
callId,
|
|
407535
|
-
args: part.functionCall.args
|
|
407626
|
+
args: part.functionCall.args,
|
|
407627
|
+
status: "in_progress"
|
|
407536
407628
|
});
|
|
407537
407629
|
}
|
|
407538
407630
|
}
|
|
407539
407631
|
}
|
|
407632
|
+
/**
|
|
407633
|
+
* Replays usage metadata.
|
|
407634
|
+
* @param usageMetadata - The usage metadata to replay
|
|
407635
|
+
*/
|
|
407636
|
+
async replayUsageMetadata(usageMetadata) {
|
|
407637
|
+
await this.messageEmitter.emitUsageMetadata(usageMetadata);
|
|
407638
|
+
}
|
|
407540
407639
|
/**
|
|
407541
407640
|
* Replays a tool result record.
|
|
407542
407641
|
*/
|
|
@@ -407557,6 +407656,40 @@ var HistoryReplayer = class {
|
|
|
407557
407656
|
// Note: args aren't stored in tool_result records by default
|
|
407558
407657
|
args: void 0
|
|
407559
407658
|
});
|
|
407659
|
+
const { resultDisplay } = result ?? {};
|
|
407660
|
+
if (!!resultDisplay && typeof resultDisplay === "object" && "type" in resultDisplay && resultDisplay.type === "task_execution") {
|
|
407661
|
+
await this.emitTaskUsageFromResultDisplay(
|
|
407662
|
+
resultDisplay
|
|
407663
|
+
);
|
|
407664
|
+
}
|
|
407665
|
+
}
|
|
407666
|
+
/**
|
|
407667
|
+
* Emits token usage from a TaskResultDisplay execution summary, if present.
|
|
407668
|
+
*/
|
|
407669
|
+
async emitTaskUsageFromResultDisplay(resultDisplay) {
|
|
407670
|
+
const summary = resultDisplay.executionSummary;
|
|
407671
|
+
if (!summary) {
|
|
407672
|
+
return;
|
|
407673
|
+
}
|
|
407674
|
+
const usageMetadata = {};
|
|
407675
|
+
if (Number.isFinite(summary.inputTokens)) {
|
|
407676
|
+
usageMetadata.promptTokenCount = summary.inputTokens;
|
|
407677
|
+
}
|
|
407678
|
+
if (Number.isFinite(summary.outputTokens)) {
|
|
407679
|
+
usageMetadata.candidatesTokenCount = summary.outputTokens;
|
|
407680
|
+
}
|
|
407681
|
+
if (Number.isFinite(summary.thoughtTokens)) {
|
|
407682
|
+
usageMetadata.thoughtsTokenCount = summary.thoughtTokens;
|
|
407683
|
+
}
|
|
407684
|
+
if (Number.isFinite(summary.cachedTokens)) {
|
|
407685
|
+
usageMetadata.cachedContentTokenCount = summary.cachedTokens;
|
|
407686
|
+
}
|
|
407687
|
+
if (Number.isFinite(summary.totalTokens)) {
|
|
407688
|
+
usageMetadata.totalTokenCount = summary.totalTokens;
|
|
407689
|
+
}
|
|
407690
|
+
if (Object.keys(usageMetadata).length > 0) {
|
|
407691
|
+
await this.messageEmitter.emitUsageMetadata(usageMetadata);
|
|
407692
|
+
}
|
|
407560
407693
|
}
|
|
407561
407694
|
/**
|
|
407562
407695
|
* Extracts tool name from a chat record's function response.
|
|
@@ -407594,11 +407727,13 @@ var SubAgentTracker = class {
|
|
|
407594
407727
|
this.ctx = ctx;
|
|
407595
407728
|
this.client = client;
|
|
407596
407729
|
this.toolCallEmitter = new ToolCallEmitter(ctx);
|
|
407730
|
+
this.messageEmitter = new MessageEmitter(ctx);
|
|
407597
407731
|
}
|
|
407598
407732
|
static {
|
|
407599
407733
|
__name(this, "SubAgentTracker");
|
|
407600
407734
|
}
|
|
407601
407735
|
toolCallEmitter;
|
|
407736
|
+
messageEmitter;
|
|
407602
407737
|
toolStates = /* @__PURE__ */ new Map();
|
|
407603
407738
|
/**
|
|
407604
407739
|
* Sets up event listeners for a sub-agent's tool events.
|
|
@@ -407611,14 +407746,17 @@ var SubAgentTracker = class {
|
|
|
407611
407746
|
const onToolCall = this.createToolCallHandler(abortSignal);
|
|
407612
407747
|
const onToolResult = this.createToolResultHandler(abortSignal);
|
|
407613
407748
|
const onApproval = this.createApprovalHandler(abortSignal);
|
|
407749
|
+
const onUsageMetadata = this.createUsageMetadataHandler(abortSignal);
|
|
407614
407750
|
eventEmitter.on("tool_call" /* TOOL_CALL */, onToolCall);
|
|
407615
407751
|
eventEmitter.on("tool_result" /* TOOL_RESULT */, onToolResult);
|
|
407616
407752
|
eventEmitter.on("tool_waiting_approval" /* TOOL_WAITING_APPROVAL */, onApproval);
|
|
407753
|
+
eventEmitter.on("usage_metadata" /* USAGE_METADATA */, onUsageMetadata);
|
|
407617
407754
|
return [
|
|
407618
407755
|
() => {
|
|
407619
407756
|
eventEmitter.off("tool_call" /* TOOL_CALL */, onToolCall);
|
|
407620
407757
|
eventEmitter.off("tool_result" /* TOOL_RESULT */, onToolResult);
|
|
407621
407758
|
eventEmitter.off("tool_waiting_approval" /* TOOL_WAITING_APPROVAL */, onApproval);
|
|
407759
|
+
eventEmitter.off("usage_metadata" /* USAGE_METADATA */, onUsageMetadata);
|
|
407622
407760
|
this.toolStates.clear();
|
|
407623
407761
|
}
|
|
407624
407762
|
];
|
|
@@ -407721,6 +407859,16 @@ var SubAgentTracker = class {
|
|
|
407721
407859
|
}
|
|
407722
407860
|
};
|
|
407723
407861
|
}
|
|
407862
|
+
/**
|
|
407863
|
+
* Creates a handler for usage metadata events.
|
|
407864
|
+
*/
|
|
407865
|
+
createUsageMetadataHandler(abortSignal) {
|
|
407866
|
+
return (...args) => {
|
|
407867
|
+
const event = args[0];
|
|
407868
|
+
if (abortSignal.aborted) return;
|
|
407869
|
+
this.messageEmitter.emitUsageMetadata(event.usage, "", event.durationMs);
|
|
407870
|
+
};
|
|
407871
|
+
}
|
|
407724
407872
|
/**
|
|
407725
407873
|
* Converts confirmation details to permission options for the client.
|
|
407726
407874
|
*/
|
|
@@ -407795,6 +407943,7 @@ var Session3 = class {
|
|
|
407795
407943
|
this.toolCallEmitter = new ToolCallEmitter(this);
|
|
407796
407944
|
this.planEmitter = new PlanEmitter(this);
|
|
407797
407945
|
this.historyReplayer = new HistoryReplayer(this);
|
|
407946
|
+
this.messageEmitter = new MessageEmitter(this);
|
|
407798
407947
|
}
|
|
407799
407948
|
static {
|
|
407800
407949
|
__name(this, "Session");
|
|
@@ -407805,6 +407954,7 @@ var Session3 = class {
|
|
|
407805
407954
|
historyReplayer;
|
|
407806
407955
|
toolCallEmitter;
|
|
407807
407956
|
planEmitter;
|
|
407957
|
+
messageEmitter;
|
|
407808
407958
|
// Implement SessionContext interface
|
|
407809
407959
|
sessionId;
|
|
407810
407960
|
getId() {
|
|
@@ -407871,6 +408021,8 @@ var Session3 = class {
|
|
|
407871
408021
|
return { stopReason: "cancelled" };
|
|
407872
408022
|
}
|
|
407873
408023
|
const functionCalls = [];
|
|
408024
|
+
let usageMetadata = null;
|
|
408025
|
+
const streamStartTime = Date.now();
|
|
407874
408026
|
try {
|
|
407875
408027
|
const responseStream = await chat.sendMessageStream(
|
|
407876
408028
|
this.config.getModel(),
|
|
@@ -407893,16 +408045,16 @@ var Session3 = class {
|
|
|
407893
408045
|
if (!part.text) {
|
|
407894
408046
|
continue;
|
|
407895
408047
|
}
|
|
407896
|
-
|
|
407897
|
-
|
|
407898
|
-
|
|
407899
|
-
|
|
407900
|
-
|
|
407901
|
-
sessionUpdate: part.thought ? "agent_thought_chunk" : "agent_message_chunk",
|
|
407902
|
-
content
|
|
407903
|
-
});
|
|
408048
|
+
this.messageEmitter.emitMessage(
|
|
408049
|
+
part.text,
|
|
408050
|
+
"assistant",
|
|
408051
|
+
part.thought
|
|
408052
|
+
);
|
|
407904
408053
|
}
|
|
407905
408054
|
}
|
|
408055
|
+
if (resp.type === "chunk" /* CHUNK */ && resp.value.usageMetadata) {
|
|
408056
|
+
usageMetadata = resp.value.usageMetadata;
|
|
408057
|
+
}
|
|
407906
408058
|
if (resp.type === "chunk" /* CHUNK */ && resp.value.functionCalls) {
|
|
407907
408059
|
functionCalls.push(...resp.value.functionCalls);
|
|
407908
408060
|
}
|
|
@@ -407916,6 +408068,14 @@ var Session3 = class {
|
|
|
407916
408068
|
}
|
|
407917
408069
|
throw error2;
|
|
407918
408070
|
}
|
|
408071
|
+
if (usageMetadata) {
|
|
408072
|
+
const durationMs = Date.now() - streamStartTime;
|
|
408073
|
+
await this.messageEmitter.emitUsageMetadata(
|
|
408074
|
+
usageMetadata,
|
|
408075
|
+
"",
|
|
408076
|
+
durationMs
|
|
408077
|
+
);
|
|
408078
|
+
}
|
|
407919
408079
|
if (functionCalls.length > 0) {
|
|
407920
408080
|
const toolResponseParts = [];
|
|
407921
408081
|
for (const fc of functionCalls) {
|
|
@@ -408054,7 +408214,7 @@ var Session3 = class {
|
|
|
408054
408214
|
abortSignal
|
|
408055
408215
|
);
|
|
408056
408216
|
}
|
|
408057
|
-
const confirmationDetails = await invocation.shouldConfirmExecute(abortSignal);
|
|
408217
|
+
const confirmationDetails = this.config.getApprovalMode() !== "yolo" /* YOLO */ ? await invocation.shouldConfirmExecute(abortSignal) : false;
|
|
408058
408218
|
if (confirmationDetails) {
|
|
408059
408219
|
const content = [];
|
|
408060
408220
|
if (confirmationDetails.type === "edit") {
|
|
@@ -408113,7 +408273,8 @@ var Session3 = class {
|
|
|
408113
408273
|
const startParams = {
|
|
408114
408274
|
callId,
|
|
408115
408275
|
toolName: fc.name,
|
|
408116
|
-
args
|
|
408276
|
+
args,
|
|
408277
|
+
status: "in_progress"
|
|
408117
408278
|
};
|
|
408118
408279
|
await this.toolCallEmitter.emitStart(startParams);
|
|
408119
408280
|
}
|
|
@@ -408526,7 +408687,7 @@ var GeminiAgent = class {
|
|
|
408526
408687
|
name: APPROVAL_MODE_INFO[mode].name,
|
|
408527
408688
|
description: APPROVAL_MODE_INFO[mode].description
|
|
408528
408689
|
}));
|
|
408529
|
-
const version3 = "0.1.4-alpha.
|
|
408690
|
+
const version3 = "0.1.4-alpha.10";
|
|
408530
408691
|
return {
|
|
408531
408692
|
protocolVersion: PROTOCOL_VERSION,
|
|
408532
408693
|
agentInfo: {
|