duclaw-cli 1.8.45 → 1.8.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +141 -106
- package/dist/main.js +1 -1
- package/dist/worker-main.js +1 -1
- package/package.json +1 -1
package/dist/bundle.js
CHANGED
|
@@ -30242,7 +30242,7 @@ function printHelp() {
|
|
|
30242
30242
|
`);
|
|
30243
30243
|
}
|
|
30244
30244
|
function printVersion() {
|
|
30245
|
-
console.log(`duclaw-cli v${true ? "1.8.
|
|
30245
|
+
console.log(`duclaw-cli v${true ? "1.8.47" : "unknown"}`);
|
|
30246
30246
|
}
|
|
30247
30247
|
function getDuclawTemplate() {
|
|
30248
30248
|
return {
|
|
@@ -37985,8 +37985,8 @@ var getMessages = async (storage, userId, limit = 300, date, cronTitle) => {
|
|
|
37985
37985
|
var isInjectedMemoryContextMessage = (msg) => {
|
|
37986
37986
|
if (msg.role !== "user" || msg.content.length === 0) return false;
|
|
37987
37987
|
if (!msg.content.every((block) => block.type === "text")) return false;
|
|
37988
|
-
const
|
|
37989
|
-
return
|
|
37988
|
+
const textContent2 = msg.content.map((block) => block.type === "text" ? block.text : "").join("\n").trim();
|
|
37989
|
+
return textContent2.startsWith("<memory-context>") && textContent2.endsWith("</memory-context>");
|
|
37990
37990
|
};
|
|
37991
37991
|
var hasProtocolBlock = (msg) => {
|
|
37992
37992
|
return msg.content.some((block) => block.type === "tool_use" || block.type === "tool_result");
|
|
@@ -38226,12 +38226,12 @@ var searchChatHistory = async (messageStorage, topicStorage, userId, query, date
|
|
|
38226
38226
|
for (let j = from; j <= to; j++) {
|
|
38227
38227
|
const msg = messages[j];
|
|
38228
38228
|
if (!msg) continue;
|
|
38229
|
-
const
|
|
38230
|
-
if (
|
|
38229
|
+
const textContent2 = msg.content.filter((b) => b.type === "text").map((b) => b.text).join(" ").slice(0, 200);
|
|
38230
|
+
if (textContent2) {
|
|
38231
38231
|
snippets.push({
|
|
38232
38232
|
index: j,
|
|
38233
38233
|
role: msg.role,
|
|
38234
|
-
text:
|
|
38234
|
+
text: textContent2,
|
|
38235
38235
|
isMatch: j === match2.i
|
|
38236
38236
|
});
|
|
38237
38237
|
}
|
|
@@ -43766,10 +43766,14 @@ var CEO_MAILBOX_ID2 = `manager`;
|
|
|
43766
43766
|
var DESCRIPTION28 = `
|
|
43767
43767
|
\u5728\u5F53\u524D mailbox \u7EBF\u7A0B\u4E2D\u8FFD\u52A0\u4E00\u6761\u8865\u5145\u6D88\u606F\uFF0C\u4F46\u4E0D\u7ED3\u675F\u539F\u6D88\u606F\u7684\u5904\u7406\u3002
|
|
43768
43768
|
|
|
43769
|
+
\u5B83\u5728\u7EC4\u7EC7\u91CC\u7684\u542B\u4E49\u66F4\u63A5\u8FD1\u201C\u540C\u4E00\u4EF6\u4E8B\u7684\u7EE7\u7EED\u6C9F\u901A\u201D\uFF1A\u8BA9\u5BF9\u65B9\u77E5\u9053\u4F60\u5DF2\u7ECF\u5B89\u6392\u3001\u6B63\u5728\u7B49\u8C01\u3001\u50AC\u4E86\u8C01\u3001\u76EE\u524D\u770B\u5230\u4E86\u54EA\u4E9B\u90E8\u5206\u7ED3\u679C\uFF0C\u6216\u9700\u8981\u5BF9\u65B9\u8865\u5145\u4EC0\u4E48\u3002
|
|
43770
|
+
\u7279\u522B\u662F\u7ED9 CEO/manager \u540C\u6B65\u201C\u5DF2\u59D4\u6D3E\u3001\u6B63\u5728\u68C0\u67E5\u3001\u7B49\u5F85\u4E0B\u5C5E\u7ED3\u679C\u3001\u5DF2\u50AC\u4FC3\u201D\u8FD9\u7C7B\u8FDB\u5EA6\u65F6\uFF0C\u4F18\u5148\u4F7F\u7528\u5B83\uFF1B\u7B49\u4F60\u9A8C\u6536\u5B8C\u771F\u5B9E\u7ED3\u679C\u3001\u53EF\u4EE5\u4EA4\u4ED8\u6700\u7EC8\u7ED3\u8BBA\u65F6\uFF0C\u518D\u4F7F\u7528 reply_mailbox\u3002
|
|
43771
|
+
|
|
43769
43772
|
\u9002\u7528\u573A\u666F\uFF1A
|
|
43770
43773
|
- \u540C\u6B65\u9636\u6BB5\u6027\u8FDB\u5C55
|
|
43771
43774
|
- \u4E3B\u52A8\u8FFD\u95EE\u6F84\u6E05\u4FE1\u606F
|
|
43772
43775
|
- \u5148\u53D1\u51FA\u90E8\u5206\u7ED3\u679C\uFF0C\u7A0D\u540E\u7EE7\u7EED\u8865\u5145
|
|
43776
|
+
- \u544A\u77E5\u4E0A\u6E38\u5DF2\u5B89\u6392\u4E0B\u5C5E\u3001\u6B63\u5728\u7B49\u5F85\u4E0B\u5C5E\u7ED3\u679C\uFF0C\u6216\u5DF2\u7ECF\u50AC\u529E
|
|
43773
43777
|
- CEO \u6536\u5230\u67D0\u4E2A\u90E8\u95E8\u6210\u5458\u7684\u7ED3\u679C\u540E\uFF0C\u82E5\u7528\u6237\u7EE7\u7EED\u63D0\u4FEE\u6539\u610F\u89C1\u3001bug \u53CD\u9988\u3001\u6253\u4E0D\u5F00\u7B49\u95EE\u9898\uFF0C\u5E94\u4F18\u5148\u5BF9\u8BE5\u6210\u5458\u4E0A\u4E00\u6761\u76F8\u5173\u56DE\u4FE1\u8C03\u7528 mailbox_followup\uFF0C\u628A\u53CD\u9988\u6CBF\u539F\u7EBF\u7A0B\u53D1\u56DE\u539F\u8D23\u4EFB\u4EBA
|
|
43774
43778
|
|
|
43775
43779
|
\u53C2\u6570\uFF1A
|
|
@@ -45235,9 +45239,10 @@ var getCompactConfig = () => ({
|
|
|
45235
45239
|
enabled: readBoolean("COMPACT_ENABLED", true),
|
|
45236
45240
|
contextWindowTokens: readNumber("COMPACT_CONTEXT_WINDOW_TOKENS", 2e5),
|
|
45237
45241
|
outputReserveTokens: readNumber("COMPACT_OUTPUT_RESERVE_TOKENS", 2e4),
|
|
45238
|
-
bufferTokens: readNumber("COMPACT_BUFFER_TOKENS",
|
|
45242
|
+
bufferTokens: readNumber("COMPACT_BUFFER_TOKENS", 0),
|
|
45239
45243
|
warningBufferTokens: readNumber("COMPACT_WARNING_BUFFER_TOKENS", 2e4),
|
|
45240
45244
|
hotTailMessages: readNumber("COMPACT_HOT_TAIL_MESSAGES", 24),
|
|
45245
|
+
compactUserMessageMaxTokens: readNumber("COMPACT_USER_MESSAGE_MAX_TOKENS", 2e4),
|
|
45241
45246
|
maxFailures: readNumber("COMPACT_MAX_FAILURES", 3),
|
|
45242
45247
|
microCompactKeepToolResults: readNumber("MICRO_COMPACT_KEEP_TOOL_RESULTS", 5),
|
|
45243
45248
|
microCompactToolResultChars: readNumber("MICRO_COMPACT_TOOL_RESULT_CHARS", 1200)
|
|
@@ -45363,70 +45368,50 @@ var tokenCountWithEstimation = (messages, systemPrompt = "") => {
|
|
|
45363
45368
|
};
|
|
45364
45369
|
|
|
45365
45370
|
// src/compact/compactPrompt.ts
|
|
45366
|
-
var
|
|
45367
|
-
|
|
45368
|
-
|
|
45369
|
-
|
|
45370
|
-
|
|
45371
|
-
}
|
|
45372
|
-
};
|
|
45373
|
-
var renderBlock2 = (block) => {
|
|
45374
|
-
switch (block.type) {
|
|
45375
|
-
case "text":
|
|
45376
|
-
return block.text;
|
|
45377
|
-
case "tool_use":
|
|
45378
|
-
return `[tool_use id=${block.id} name=${block.name} input=${stringify2(block.input)}]`;
|
|
45379
|
-
case "tool_result":
|
|
45380
|
-
return `[tool_result tool_use_id=${block.tool_use_id} content=${block.content}]`;
|
|
45381
|
-
case "image":
|
|
45382
|
-
return `[image source=${block.source.type}]`;
|
|
45383
|
-
case "thinking":
|
|
45384
|
-
return `[thinking ${block.thinking}]`;
|
|
45385
|
-
default:
|
|
45386
|
-
return stringify2(block);
|
|
45387
|
-
}
|
|
45388
|
-
};
|
|
45389
|
-
var renderMessagesForCompact = (messages) => messages.map((message, index) => {
|
|
45390
|
-
const content = message.content.map(renderBlock2).join("\n");
|
|
45391
|
-
return `<message index="${index}" role="${message.role}">
|
|
45392
|
-
${content}
|
|
45393
|
-
</message>`;
|
|
45394
|
-
}).join("\n\n");
|
|
45395
|
-
var COMPACT_SYSTEM_PROMPT = `\u4F60\u662F Duclaw \u7684\u4F1A\u8BDD\u538B\u7F29\u5668\u3002\u4F60\u53EA\u8D1F\u8D23\u628A\u7814\u53D1\u667A\u80FD\u4F53\u7684\u5386\u53F2\u5BF9\u8BDD\u538B\u7F29\u6210\u53EF\u7EE7\u7EED\u5DE5\u4F5C\u7684\u7ED3\u6784\u5316\u6458\u8981\uFF0C\u4E0D\u8C03\u7528\u5DE5\u5177\uFF0C\u4E0D\u548C\u7528\u6237\u804A\u5929\u3002
|
|
45396
|
-
|
|
45397
|
-
\u8981\u6C42\uFF1A
|
|
45398
|
-
1. \u4FDD\u7559\u5F53\u524D\u7528\u6237\u76EE\u6807\u3001\u6700\u65B0\u660E\u786E\u8981\u6C42\u3001\u7EA6\u675F\u548C\u504F\u597D\u3002
|
|
45399
|
-
2. \u4FDD\u7559\u5F53\u524D\u4EFB\u52A1\u72B6\u6001\u3001\u5DF2\u5B8C\u6210\u5DE5\u4F5C\u3001\u672A\u5B8C\u6210\u4E8B\u9879\u548C\u4E0B\u4E00\u6B65\u3002
|
|
45400
|
-
3. \u4FDD\u7559\u5173\u952E\u6587\u4EF6\u8DEF\u5F84\u3001\u547D\u4EE4\u3001\u9519\u8BEF\u539F\u6587\u7247\u6BB5\u3001\u5916\u90E8\u6587\u6863/\u63A5\u53E3\u7ED3\u8BBA\u3002
|
|
45401
|
-
4. \u4FDD\u7559\u91CD\u8981\u5DE5\u5177\u7ED3\u679C\uFF0C\u4F46\u4E0D\u8981\u7C98\u8D34\u957F\u65E5\u5FD7\uFF1B\u53EA\u5199\u53EF\u884C\u52A8\u7ED3\u8BBA\u3002
|
|
45402
|
-
5. \u6807\u51FA\u5DF2\u4E22\u5F03\u6216\u4E0D\u518D\u91CD\u8981\u7684\u4FE1\u606F\u7C7B\u578B\u3002
|
|
45403
|
-
6. \u5982\u679C\u5386\u53F2\u4E2D\u6709 Department Head\u3001Executor\u3001mailbox\u3001cron \u7EBF\u7D22\uFF0C\u8BB0\u5F55\u8D23\u4EFB\u4EBA\u548C\u7EBF\u7A0B\u72B6\u6001\u3002
|
|
45404
|
-
7. \u8F93\u51FA\u5FC5\u987B\u662F\u7EAF\u6587\u672C\uFF0C\u5E76\u4E25\u683C\u4F7F\u7528\u4E0B\u9762\u7ED3\u6784\uFF1A
|
|
45371
|
+
var COMPACT_SUMMARIZATION_PROMPT = `You are performing a CONTEXT CHECKPOINT COMPACTION. Create a handoff summary for another LLM that will resume the task.
|
|
45372
|
+
|
|
45373
|
+
The summary must be concise, factual, and directly useful for continuing the work. Do not invent missing details. Clearly separate confirmed facts from assumptions or items that still need verification.
|
|
45374
|
+
|
|
45375
|
+
Use this exact schema:
|
|
45405
45376
|
|
|
45406
45377
|
<compact-summary>
|
|
45407
|
-
1. \u7528\u6237\u76EE\u6807
|
|
45408
|
-
2. \
|
|
45409
|
-
3. \
|
|
45410
|
-
4. \u5DF2\
|
|
45411
|
-
5. \
|
|
45412
|
-
6. \
|
|
45413
|
-
7. \u7528\u6237\
|
|
45414
|
-
8. \u672A\u5B8C\u6210\u4E8B\u9879
|
|
45415
|
-
9. \
|
|
45416
|
-
10. \
|
|
45417
|
-
|
|
45418
|
-
|
|
45419
|
-
|
|
45420
|
-
|
|
45421
|
-
|
|
45422
|
-
|
|
45378
|
+
1. \u7528\u6237\u6700\u65B0\u76EE\u6807:
|
|
45379
|
+
2. \u7528\u6237\u786C\u6027\u7EA6\u675F:
|
|
45380
|
+
3. \u5F53\u524D\u4E8B\u5B9E\u72B6\u6001:
|
|
45381
|
+
4. \u5DF2\u5B8C\u6210\u52A8\u4F5C:
|
|
45382
|
+
5. \u6587\u4EF6/\u547D\u4EE4/\u8BC1\u636E:
|
|
45383
|
+
6. mailbox/department \u7EBF\u7A0B:
|
|
45384
|
+
7. \u7528\u6237\u53EF\u89C1\u627F\u8BFA:
|
|
45385
|
+
8. \u672A\u5B8C\u6210\u4E8B\u9879:
|
|
45386
|
+
9. \u5F53\u524D\u963B\u585E\u4E0E\u7B49\u5F85\u5BF9\u8C61:
|
|
45387
|
+
10. \u4E0B\u4E00\u6B65\u5FC5\u987B\u52A8\u4F5C:
|
|
45388
|
+
11. \u4E0D\u786E\u5B9A/\u5F85\u786E\u8BA4:
|
|
45389
|
+
12. \u5DF2\u4E22\u5F03\u4FE1\u606F:
|
|
45390
|
+
</compact-summary>
|
|
45391
|
+
|
|
45392
|
+
Field guidance:
|
|
45393
|
+
- \u7528\u6237\u6700\u65B0\u76EE\u6807: the latest user intent, not stale earlier goals.
|
|
45394
|
+
- \u7528\u6237\u786C\u6027\u7EA6\u675F: explicit user constraints, safety boundaries, deployment/data-persistence constraints, style preferences, or "do not" instructions.
|
|
45395
|
+
- \u5F53\u524D\u4E8B\u5B9E\u72B6\u6001: verified state only. Say "\u65E0" if there is no verified fact.
|
|
45396
|
+
- \u5DF2\u5B8C\u6210\u52A8\u4F5C: concrete actions already performed by the agent or team.
|
|
45397
|
+
- \u6587\u4EF6/\u547D\u4EE4/\u8BC1\u636E: important paths, commands, test results, errors, URLs, versions, sandbox IDs, mailbox IDs, and other evidence required to continue.
|
|
45398
|
+
- mailbox/department \u7EBF\u7A0B: responsible owner, mailbox thread/message IDs, CEO followups, department head/executor status, who owes a reply to whom, and whether the user-visible closure is complete.
|
|
45399
|
+
- \u7528\u6237\u53EF\u89C1\u627F\u8BFA: what the user has been told or promised, including pending follow-ups.
|
|
45400
|
+
- \u672A\u5B8C\u6210\u4E8B\u9879: work still not done.
|
|
45401
|
+
- \u5F53\u524D\u963B\u585E\u4E0E\u7B49\u5F85\u5BF9\u8C61: blockers, external waits, running commands, pending approvals, or a named agent/person/system being waited on.
|
|
45402
|
+
- \u4E0B\u4E00\u6B65\u5FC5\u987B\u52A8\u4F5C: the minimal next actions the next LLM should take, in order.
|
|
45403
|
+
- \u4E0D\u786E\u5B9A/\u5F85\u786E\u8BA4: assumptions, ambiguous facts, or things that must be re-checked.
|
|
45404
|
+
- \u5DF2\u4E22\u5F03\u4FE1\u606F: categories of old details intentionally omitted, such as long logs, obsolete failed attempts, or completed transient steps.
|
|
45405
|
+
|
|
45406
|
+
If a field does not apply, write "\u65E0".`;
|
|
45407
|
+
var COMPACT_SUMMARY_PREFIX = `Another language model started to solve this problem and produced a summary of its thinking process. You also have access to the state of the tools that were used by that language model. Use this to build on the work that has already been done and avoid duplicating work. Here is the summary produced by the other language model, use the information in this summary to assist with your own analysis:`;
|
|
45408
|
+
var COMPACT_SYSTEM_PROMPT = `You are Duclaw's context compaction worker. Produce only the requested handoff summary. Do not call tools and do not chat with the user.`;
|
|
45409
|
+
var buildCompactUserPrompt = (_messages, reason) => `${COMPACT_SUMMARIZATION_PROMPT}
|
|
45410
|
+
|
|
45411
|
+
Compaction trigger: ${reason}`;
|
|
45423
45412
|
|
|
45424
45413
|
// src/compact/CompactEngine.ts
|
|
45425
45414
|
var buildCompactSummaryKey = (userId, date, cronTitle) => `compact:summary:${userId}:${date}${cronTitle ? `:${cronTitle}` : ""}`;
|
|
45426
|
-
var assistantAck = {
|
|
45427
|
-
role: "assistant",
|
|
45428
|
-
content: [text("\u6211\u5DF2\u8BFB\u53D6\u538B\u7F29\u6458\u8981\uFF0C\u5C06\u57FA\u4E8E\u8BE5\u72B6\u6001\u7EE7\u7EED\u3002")]
|
|
45429
|
-
};
|
|
45430
45415
|
var extractSummaryText = (message) => message.content.filter((block) => block.type === "text").map((block) => block.text).join("\n").trim();
|
|
45431
45416
|
var stripAssistantUsage = (message) => {
|
|
45432
45417
|
if (message.role !== "assistant") return { ...message, content: [...message.content] };
|
|
@@ -45435,20 +45420,28 @@ var stripAssistantUsage = (message) => {
|
|
|
45435
45420
|
content: [...message.content]
|
|
45436
45421
|
};
|
|
45437
45422
|
};
|
|
45438
|
-
var
|
|
45439
|
-
|
|
45440
|
-
|
|
45441
|
-
|
|
45442
|
-
|
|
45443
|
-
|
|
45444
|
-
|
|
45445
|
-
|
|
45446
|
-
|
|
45447
|
-
|
|
45448
|
-
|
|
45449
|
-
|
|
45450
|
-
|
|
45451
|
-
};
|
|
45423
|
+
var textContent = (message) => message.content.filter((block) => block.type === "text").map((block) => block.text).join("\n").trim();
|
|
45424
|
+
var isSummaryUserMessage = (message) => message.role === "user" && textContent(message).startsWith(COMPACT_SUMMARY_PREFIX);
|
|
45425
|
+
var isRawTextUserMessage = (message) => message.role === "user" && message.content.length > 0 && message.content.every((block) => block.type === "text") && !isSummaryUserMessage(message);
|
|
45426
|
+
var collectRecentUserMessages = (messages, maxTokens) => {
|
|
45427
|
+
if (maxTokens <= 0) return [];
|
|
45428
|
+
const selected = [];
|
|
45429
|
+
let usedTokens = 0;
|
|
45430
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
45431
|
+
const message = messages[i];
|
|
45432
|
+
if (!message || !isRawTextUserMessage(message)) continue;
|
|
45433
|
+
const messageTokens = roughTokenEstimateText(textContent(message));
|
|
45434
|
+
if (selected.length > 0 && usedTokens + messageTokens > maxTokens) break;
|
|
45435
|
+
if (messageTokens > maxTokens && selected.length === 0) continue;
|
|
45436
|
+
selected.push({ role: "user", content: [...message.content] });
|
|
45437
|
+
usedTokens += messageTokens;
|
|
45438
|
+
}
|
|
45439
|
+
return selected.reverse();
|
|
45440
|
+
};
|
|
45441
|
+
var buildCompactionRequestMessages = (messages, reason) => sanitizeMessagesWithReport([
|
|
45442
|
+
...messages.map(stripAssistantUsage),
|
|
45443
|
+
userMessage(text(buildCompactUserPrompt(messages, reason)))
|
|
45444
|
+
], { mergeAdjacentNonProtocolMessages: false }).messages;
|
|
45452
45445
|
var CompactEngine = class {
|
|
45453
45446
|
storage;
|
|
45454
45447
|
summaryStorage;
|
|
@@ -45469,20 +45462,21 @@ var CompactEngine = class {
|
|
|
45469
45462
|
}
|
|
45470
45463
|
const tokenCountBefore = tokenCountWithEstimation(sourceMessages, input.systemPrompt);
|
|
45471
45464
|
const response = await this.llm.chat(
|
|
45472
|
-
|
|
45465
|
+
buildCompactionRequestMessages(sourceMessages, input.reason),
|
|
45473
45466
|
COMPACT_SYSTEM_PROMPT,
|
|
45474
45467
|
[]
|
|
45475
45468
|
);
|
|
45476
|
-
const
|
|
45477
|
-
if (!
|
|
45469
|
+
const rawSummary = extractSummaryText(response);
|
|
45470
|
+
if (!rawSummary) {
|
|
45478
45471
|
throw new Error("[compact] compact LLM \u6CA1\u6709\u8FD4\u56DE\u6458\u8981\u6587\u672C");
|
|
45479
45472
|
}
|
|
45480
|
-
const
|
|
45481
|
-
|
|
45482
|
-
|
|
45483
|
-
|
|
45484
|
-
...
|
|
45485
|
-
|
|
45473
|
+
const summary = `${COMPACT_SUMMARY_PREFIX}
|
|
45474
|
+
${rawSummary}`.trim();
|
|
45475
|
+
const recentUserMessages = collectRecentUserMessages(sourceMessages, this.config.compactUserMessageMaxTokens);
|
|
45476
|
+
const compactedMessages = sanitizeMessagesWithReport([
|
|
45477
|
+
...recentUserMessages,
|
|
45478
|
+
userMessage(text(summary))
|
|
45479
|
+
], { mergeAdjacentNonProtocolMessages: false }).messages;
|
|
45486
45480
|
if (compactedMessages.length === 0) {
|
|
45487
45481
|
throw new Error("[compact] compact \u540E\u6CA1\u6709\u53EF\u5199\u56DE\u7684\u5408\u6CD5\u6D88\u606F");
|
|
45488
45482
|
}
|
|
@@ -45494,7 +45488,7 @@ var CompactEngine = class {
|
|
|
45494
45488
|
...input.threadId ? { threadId: input.threadId } : {},
|
|
45495
45489
|
summary,
|
|
45496
45490
|
sourceMessageCount: sourceMessages.length,
|
|
45497
|
-
hotTailCount:
|
|
45491
|
+
hotTailCount: recentUserMessages.length,
|
|
45498
45492
|
contextTokensBefore: tokenCountBefore.tokens,
|
|
45499
45493
|
contextTokensAfter: roughTokenEstimateMessages(compactedMessages),
|
|
45500
45494
|
tokenCountSource: tokenCountBefore.source,
|
|
@@ -45534,7 +45528,7 @@ var CompactEngine = class {
|
|
|
45534
45528
|
|
|
45535
45529
|
// src/compact/microCompact.ts
|
|
45536
45530
|
var COMPACTED_MARKER = "[\u65E7\u5DE5\u5177\u7ED3\u679C\u5DF2\u538B\u7F29]";
|
|
45537
|
-
var
|
|
45531
|
+
var stringify2 = (value) => {
|
|
45538
45532
|
try {
|
|
45539
45533
|
return JSON.stringify(value);
|
|
45540
45534
|
} catch {
|
|
@@ -45582,7 +45576,7 @@ var stripAssistantUsage2 = (message) => {
|
|
|
45582
45576
|
};
|
|
45583
45577
|
var buildCompactedToolResultContent = (block, toolUse, maxChars) => {
|
|
45584
45578
|
const toolName = toolUse?.name ?? "unknown";
|
|
45585
|
-
const toolInput = toolUse ?
|
|
45579
|
+
const toolInput = toolUse ? stringify2(toolUse.input) : "{}";
|
|
45586
45580
|
const previewChars = Math.max(200, Math.floor(maxChars * 0.6));
|
|
45587
45581
|
return `${COMPACTED_MARKER}
|
|
45588
45582
|
\u5DE5\u5177: ${toolName}
|
|
@@ -46338,9 +46332,9 @@ ${memoryInjection}` : "") + dreamInjection;
|
|
|
46338
46332
|
const textBlocks = response.content.filter(
|
|
46339
46333
|
(b) => b.type === "text"
|
|
46340
46334
|
);
|
|
46341
|
-
const
|
|
46335
|
+
const textContent2 = textBlocks.map((b) => b.text).join(`
|
|
46342
46336
|
`).trim();
|
|
46343
|
-
if (
|
|
46337
|
+
if (textContent2) {
|
|
46344
46338
|
await addMessage(storage, userId, assistantMessageFromResponse(response), beijingTime, job?.title);
|
|
46345
46339
|
const lateInterrupts = drainInterrupts(userId);
|
|
46346
46340
|
if (lateInterrupts.length > 0) {
|
|
@@ -46367,27 +46361,27 @@ ${msg}</user-interrupt>`
|
|
|
46367
46361
|
}
|
|
46368
46362
|
const visibleCeoFollowupIds = ceoFollowupIdsFromMetadata(request.metadata);
|
|
46369
46363
|
if (!hasSentMessage && visibleCeoFollowupIds.length > 0 && config2.channelPlugin) {
|
|
46370
|
-
if (claimOutboundSend(request.userId,
|
|
46364
|
+
if (claimOutboundSend(request.userId, textContent2)) {
|
|
46371
46365
|
await config2.channelPlugin.outbound.sendText({
|
|
46372
46366
|
cfg: {},
|
|
46373
46367
|
to: request.userId,
|
|
46374
|
-
text:
|
|
46368
|
+
text: textContent2,
|
|
46375
46369
|
accountId: request.requestId
|
|
46376
46370
|
});
|
|
46377
46371
|
} else {
|
|
46378
46372
|
console.log(`[outbound-dedup] \u8DF3\u8FC7\u5BF9\u7528\u6237 ${request.userId} \u7684\u8FD1\u91CD\u590D\u515C\u5E95\u53D1\u9001`);
|
|
46379
46373
|
}
|
|
46380
46374
|
hasSentMessage = true;
|
|
46381
|
-
sentMessageContent =
|
|
46375
|
+
sentMessageContent = textContent2;
|
|
46382
46376
|
completeUserVisibleCeoFollowups();
|
|
46383
46377
|
}
|
|
46384
46378
|
if (topicStorage) {
|
|
46385
|
-
const topicSummary = hasSentMessage ? sentMessageContent :
|
|
46379
|
+
const topicSummary = hasSentMessage ? sentMessageContent : textContent2;
|
|
46386
46380
|
await updateTopicSummary(topicStorage, userId, beijingTime, topicSummary, job?.title);
|
|
46387
46381
|
}
|
|
46388
46382
|
markAgentEventsHandled([...injectedEventIds]);
|
|
46389
46383
|
return {
|
|
46390
|
-
content: hasSentMessage ? sentMessageContent :
|
|
46384
|
+
content: hasSentMessage ? sentMessageContent : textContent2,
|
|
46391
46385
|
alreadySent: hasSentMessage
|
|
46392
46386
|
};
|
|
46393
46387
|
}
|
|
@@ -46806,6 +46800,38 @@ var DESCRIPTION39 = `
|
|
|
46806
46800
|
\u53C2\u6570\uFF1A
|
|
46807
46801
|
- message_id: \u90AE\u4EF6\u7684 id\uFF08\u4ECE list_mailbox \u4E2D\u83B7\u53D6\uFF09
|
|
46808
46802
|
`;
|
|
46803
|
+
var buildUpstreamContext = (msg) => {
|
|
46804
|
+
if (msg.workItemRole !== "executor_result" || !msg.workItemId) return "";
|
|
46805
|
+
const db3 = createSqliteDB();
|
|
46806
|
+
const upstreamId = msg.upstreamMessageId || msg.workItemId;
|
|
46807
|
+
const upstream = db3.prepare(
|
|
46808
|
+
`SELECT
|
|
46809
|
+
id,
|
|
46810
|
+
from_mailbox_id as fromMailboxId,
|
|
46811
|
+
to_mailbox_id as toMailboxId,
|
|
46812
|
+
content,
|
|
46813
|
+
status
|
|
46814
|
+
FROM mailbox
|
|
46815
|
+
WHERE id = ?
|
|
46816
|
+
OR (
|
|
46817
|
+
work_item_id = ?
|
|
46818
|
+
AND from_mailbox_id = 'manager'
|
|
46819
|
+
AND to_mailbox_id = ?
|
|
46820
|
+
)
|
|
46821
|
+
ORDER BY CASE WHEN id = ? THEN 0 ELSE 1 END, send_time ASC
|
|
46822
|
+
LIMIT 1`
|
|
46823
|
+
).get(upstreamId, msg.workItemId, msg.toMailboxId, upstreamId);
|
|
46824
|
+
if (!upstream) return "";
|
|
46825
|
+
const preview2 = upstream.content.length > 180 ? `${upstream.content.slice(0, 180)}...` : upstream.content;
|
|
46826
|
+
return [
|
|
46827
|
+
``,
|
|
46828
|
+
`--- \u4E0A\u6E38\u8D23\u4EFB\u4E0A\u4E0B\u6587 ---`,
|
|
46829
|
+
`\u8FD9\u5C01\u90AE\u4EF6\u662F\u4E0B\u5C5E\u5BF9\u4F60\u59D4\u6D3E\u5DE5\u4F5C\u7684\u7ED3\u679C\uFF0C\u5173\u8054\u5230 CEO/manager \u7ED9\u4F60\u7684\u539F\u59CB\u59D4\u6258\u3002`,
|
|
46830
|
+
`\u4E0A\u6E38\u90AE\u4EF6: ${upstream.id}\uFF08\u72B6\u6001: ${upstream.status}\uFF09`,
|
|
46831
|
+
`\u4E0A\u6E38\u59D4\u6258\u6458\u8981: ${preview2}`,
|
|
46832
|
+
`\u50CF\u8D1F\u8D23\u4EBA\u4E00\u6837\u5148\u9A8C\u6536\u8FD9\u4EFD\u4E0B\u5C5E\u7ED3\u679C\uFF1B\u5982\u679C\u5B83\u5DF2\u7ECF\u8DB3\u591F\u6210\u4E3A\u6700\u7EC8\u7ED3\u8BBA\uFF0C\u8BF7\u6574\u7406\u6210 CEO \u80FD\u76F4\u63A5\u8F6C\u8FF0\u7ED9\u8001\u677F\u7684\u6C47\u603B\uFF0C\u5E76\u56DE\u5230\u4E0A\u6E38\u7EBF\u7A0B\u4EA4\u4EE3\u3002`
|
|
46833
|
+
].join("\n");
|
|
46834
|
+
};
|
|
46809
46835
|
var getMailbox = {
|
|
46810
46836
|
name: `get_mailbox`,
|
|
46811
46837
|
description: DESCRIPTION39,
|
|
@@ -46834,7 +46860,10 @@ var getMailbox = {
|
|
|
46834
46860
|
send_time as sendTime,
|
|
46835
46861
|
status,
|
|
46836
46862
|
thread_id as threadId,
|
|
46837
|
-
parent_message_id as parentMessageId
|
|
46863
|
+
parent_message_id as parentMessageId,
|
|
46864
|
+
work_item_id as workItemId,
|
|
46865
|
+
work_item_role as workItemRole,
|
|
46866
|
+
upstream_message_id as upstreamMessageId
|
|
46838
46867
|
FROM mailbox WHERE id = ?`
|
|
46839
46868
|
);
|
|
46840
46869
|
const msg = stmt.get(messageId);
|
|
@@ -46867,13 +46896,14 @@ var getMailbox = {
|
|
|
46867
46896
|
});
|
|
46868
46897
|
const time = new Date(msg.sendTime).toLocaleString("zh-CN", { timeZone: "Asia/Shanghai" });
|
|
46869
46898
|
const threadId = msg.threadId || msg.id;
|
|
46899
|
+
const upstreamContext = buildUpstreamContext(msg);
|
|
46870
46900
|
return `[getMailbox] \u90AE\u4EF6\u8BE6\u60C5\uFF1A
|
|
46871
46901
|
id: ${msg.id}
|
|
46872
46902
|
\u6765\u81EA: ${msg.fromMailboxId}
|
|
46873
46903
|
\u65F6\u95F4: ${time}
|
|
46874
46904
|
\u72B6\u6001: ${msg.status}
|
|
46875
46905
|
thread: ${threadId}
|
|
46876
|
-
parent: ${msg.parentMessageId || "-"}
|
|
46906
|
+
parent: ${msg.parentMessageId || "-"}${upstreamContext}
|
|
46877
46907
|
|
|
46878
46908
|
--- \u90AE\u4EF6\u6B63\u6587 ---
|
|
46879
46909
|
${msg.content}`;
|
|
@@ -46982,11 +47012,14 @@ var discardMailbox = {
|
|
|
46982
47012
|
|
|
46983
47013
|
// src/tools/tools/department/ReplyMailbox.ts
|
|
46984
47014
|
var DESCRIPTION41 = `
|
|
46985
|
-
\u6B63\u5F0F\u56DE\u590D\u4E00\u5C01\u90AE\u4EF6\u3002\u5BF9\u5F53\u524D\u6D88\u606F\u5F62\u6210\
|
|
47015
|
+
\u6B63\u5F0F\u56DE\u590D\u4E00\u5C01\u90AE\u4EF6\u3002\u5BF9\u5F53\u524D\u6D88\u606F\u5F62\u6210\u53EF\u4EE5\u4EA4\u4ED8\u7ED9\u5BF9\u65B9\u7684\u6700\u7EC8\u7ED3\u8BBA\u540E\uFF0C\u4F7F\u7528\u6B64\u5DE5\u5177\u5C06\u7ED3\u679C\u53D1\u56DE\u7ED9\u90AE\u4EF6\u53D1\u9001\u8005\uFF0C\u5E76\u7ED3\u675F\u8FD9\u5C01\u6D88\u606F\u7684\u5904\u7406\u3002
|
|
47016
|
+
|
|
47017
|
+
\u5B83\u5728\u7EC4\u7EC7\u91CC\u7684\u542B\u4E49\u66F4\u63A5\u8FD1\u201C\u6211\u5DF2\u7ECF\u628A\u8FD9\u4EF6\u4E8B\u9A8C\u6536\u6E05\u695A\uFF0C\u53EF\u4EE5\u7ED9\u4F60\u4E00\u4E2A\u7ED3\u8BBA\u201D\uFF0C\u800C\u4E0D\u662F\u666E\u901A\u804A\u5929\u56DE\u590D\u3002
|
|
47018
|
+
\u5982\u679C\u53EA\u662F\u540C\u6B65\u9636\u6BB5\u6027\u8FDB\u5C55\u3001\u8BF4\u660E\u5DF2\u5B89\u6392\u4E0B\u5C5E\u3001\u8FD8\u5728\u7B49\u5F85\u6267\u884C\u7ED3\u679C\u3001\u50AC\u529E\u3001\u8865\u5145\u4E0A\u4E0B\u6587\u6216\u5148\u7ED9\u90E8\u5206\u53D1\u73B0\uFF0C\u5E94\u4F7F\u7528 mailbox_followup\uFF0C\u8BA9\u539F\u90AE\u4EF6\u7EE7\u7EED\u4FDD\u6301\u672A\u5B8C\u5F85\u7EED\u3002
|
|
46986
47019
|
|
|
46987
47020
|
\u53C2\u6570\uFF1A
|
|
46988
47021
|
- message_id: \u8981\u56DE\u590D\u7684\u90AE\u4EF6 id\uFF08\u4ECE list_mailbox \u6216 get_mailbox \u4E2D\u83B7\u53D6\uFF09
|
|
46989
|
-
- content: \u56DE\u590D\u5185\u5BB9\uFF08\u4F60\u7684\u6B63\u5F0F\u5904\u7406\u7ED3\u679C\u3001\
|
|
47022
|
+
- content: \u56DE\u590D\u5185\u5BB9\uFF08\u4F60\u7684\u6B63\u5F0F\u5904\u7406\u7ED3\u679C\u3001\u6700\u7EC8\u6C47\u603B\u3001\u9A8C\u6536\u7ED3\u8BBA\uFF0C\u6216\u660E\u786E\u8BF4\u660E\u65E0\u6CD5\u7EE7\u7EED\u5904\u7406\u7684\u539F\u56E0\uFF09
|
|
46990
47023
|
|
|
46991
47024
|
\u6B64\u5DE5\u5177\u4F1A\u81EA\u52A8\uFF1A
|
|
46992
47025
|
1. \u5C06\u56DE\u590D\u5185\u5BB9\u53D1\u9001\u5230\u539F\u53D1\u9001\u8005\u7684\u90AE\u7BB1
|
|
@@ -47603,9 +47636,11 @@ var getDepartmentAgentConfig = (tools, memberFocusOn, workspacePath, departmentN
|
|
|
47603
47636
|
|
|
47604
47637
|
\u4E13\u4E1A\u7684\u6267\u884C\u6D3B\u2014\u2014\u5199\u4EE3\u7801\u3001\u8BFB\u4EE3\u7801\u5B9A\u4F4D\u95EE\u9898\u3001\u6539\u6587\u4EF6\u3001\u8DD1\u6D4B\u8BD5\u3001\u8C03\u8BD5\u3001\u90E8\u7F72\uFF0C\u5904\u7406\u6570\u636E/\u6587\u6863/\u97F3\u89C6\u9891/\u56FE\u7247\uFF0C\u67E5\u8BC1\u5916\u90E8 API\uFF0C\u751F\u6210\u590D\u6742\u4EA7\u7269\uFF0C\u5168\u9762\u9A8C\u8BC1\u2014\u2014\u4F60\u7684\u7B2C\u4E00\u53CD\u5E94\u662F\u770B\u770B\u624B\u4E0B\u8C01\u5408\u9002\uFF08department_member_list\uFF09\uFF0C\u628A\u5177\u4F53\u4EFB\u52A1\u6D3E\u7ED9\u5BF9\u5E94\u7684 Executor\uFF08department_communicate\uFF09\uFF1B\u624B\u4E0B\u8FD8\u6CA1\u6709\u5408\u9002\u7684\u4EBA\uFF0C\u4F60\u5C31\u5148\u62DB\u4E00\u4E2A\u804C\u8D23\u6E05\u695A\u7684 Executor\uFF08department_member_create\uFF09\u518D\u6D3E\u6D3B\u3002\u4EFB\u52A1\u600E\u4E48\u62C6\u3001\u6D4B\u8BD5\u8BA1\u5212\u3001\u9A8C\u6536\u6807\u51C6\u3001\u98CE\u9669\u5224\u65AD\u3001\u8FFD\u95EE\u8FDB\u5EA6\u3001\u6700\u7EC8\u6C47\u603B\uFF0C\u8FD9\u4E9B\u624D\u662F\u4F60\u81EA\u5DF1\u7684\u6D3B\u3002
|
|
47605
47638
|
|
|
47639
|
+
\u4F60\u4E0D\u662F\u6D88\u606F\u642C\u8FD0\u5DE5\u3002Executor \u628A\u7ED3\u679C\u4EA4\u7ED9\u4F60\u4EE5\u540E\uFF0C\u4F60\u8981\u50CF\u4E00\u4E2A\u8D1F\u8D23\u4EBA\u90A3\u6837\u5148\u9A8C\u6536\u3001\u63D0\u70BC\u3001\u5224\u65AD\u98CE\u9669\u548C\u4E0B\u4E00\u6B65\uFF0C\u518D\u628A\u4E0B\u5C5E\u4EA4\u4ED8\u8F6C\u6210 CEO \u80FD\u770B\u61C2\u3001\u80FD\u62FF\u53BB\u5411\u8001\u677F\u4EA4\u4EE3\u7684\u7ED3\u8BBA\u3002\u5BF9\u4E0B\u5C5E\u8BF4\u201C\u6536\u5230/\u8BA4\u53EF\u201D\u53EA\u662F\u90E8\u95E8\u5185\u786E\u8BA4\uFF1B\u628A\u771F\u5B9E\u7ED3\u8BBA\u4EA4\u56DE\u7ED9\u4E0A\u6E38\uFF0C\u624D\u662F\u8D1F\u8D23\u4EBA\u8FD9\u4EF6\u4E8B\u7684\u6536\u5C3E\u3002
|
|
47640
|
+
|
|
47606
47641
|
\u8C01\u628A\u4E8B\u4EA4\u7ED9\u4F60\u3001\u8C01\u6765\u95EE\u4F60\uFF08\u901A\u5E38\u662F CEO\uFF09\uFF0C\u4F60\u5C31\u6B20\u4ED6\u4E00\u4E2A\u4EA4\u4EE3\u3002\u5728\u4F60\u628A\u6838\u5B9E\u8FC7\u7684\u771F\u5B9E\u7ED3\u8BBA\u4EA4\u56DE\u5230\u95EE\u4F60\u7684\u4EBA\u624B\u4E0A\u4E4B\u524D\uFF0C\u8FD9\u4EF6\u4E8B\u5BF9\u4F60\u90FD\u6CA1\u7B97\u5B8C\u2014\u2014\u4F60\u987A\u7740\u539F\u6765\u90A3\u5C01\u8BF7\u6C42\u7684\u7EBF\u7A0B\uFF0C\u7528\u5B83\u7684 message_id \u56DE\u7ED9\u4E0A\u6E38\uFF08reply_mailbox \u6216 mailbox_followup\uFF09\uFF1B\u53EA\u56DE\u590D Executor \u4E0D\u7B49\u4E8E\u5411\u4E0A\u6E38\u4EA4\u4EE3\u4E86\uFF0C\u90A3\u6837 CEO \u548C\u8001\u677F\u90A3\u8FB9\u6536\u4E0D\u5230\u3002\u4E0A\u6E38\u518D\u6765\u50AC\u540C\u4E00\u4EF6\u4E8B\uFF0C\u54EA\u6015\u4F60\u624B\u91CC\u5DF2\u7ECF\u6709\u6700\u7EC8\u62A5\u544A\uFF0C\u4E5F\u7167\u6837\u628A\u62A5\u544A\u6216\u7B80\u660E\u72B6\u6001\u56DE\u7ED9\u4ED6\u3002
|
|
47607
47642
|
|
|
47608
|
-
Executor \u56DE\u5F97\u6162\u3001\u6682\u65F6\u6CA1\u56DE\uFF0C\u4E0D\u662F\u4F60\u81EA\u5DF1\u4E0B\u573A\u91CD\u505A\u7684\u7406\u7531\u2014\u2014\u8BE5\u505A\u7684\u662F mailbox_followup \u50AC\u4E00\u4E0B\uFF0C\u5E76\u5982\u5B9E\u8DDF\u4E0A\u6E38\u8BF4\u8FD8\u5728\u7B49\u6267\u884C\u7ED3\u679C\u3002\u53EA\u6709\u4E0A\u6E38\u660E\u786E\u8981\u4F60\u4EB2\u81EA\u505A\u3001\u90E8\u95E8\u91CC\u786E\u5B9E\u6CA1\u6709\u4E5F\u6765\u4E0D\u53CA\u7EC4\u5EFA\u5408\u9002\u7684 Executor\u3001\u6216 Executor \u660E\u786E\u505A\u4E0D\u6210\u4E14\u4E0A\u6E38\u540C\u610F\u4F60\u63A5\u7BA1\u65F6\uFF0C\u4F60\u624D\u81EA\u5DF1\u4E0A\u624B\u90A3\u4E9B\u6267\u884C\u7C7B\u5DE5\u5177\u3002` : `\u4F60\u662F\u6267\u884C\u8005\uFF08Executor\uFF09\u3002\u522B\u4EBA\uFF08\u901A\u5E38\u662F\u4F60\u7684\u90E8\u95E8\u8D1F\u8D23\u4EBA\uFF09\u628A\u5177\u4F53\u4EFB\u52A1\u6D3E\u7ED9\u4F60\uFF0C\u4F60\u5C31\u7528\u81EA\u5DF1\u7684\u4E13\u4E1A\u80FD\u529B\u548C\u5DE5\u5177\u628A\u5B83\u505A\u51FA\u6765\uFF0C\u518D\u5982\u5B9E\u628A\u7ED3\u679C\u56DE\u7ED9\u95EE\u4F60\u7684\u4EBA\u3002\u4F60\u4E13\u6CE8\u505A\u4E8B\uFF0C\u4E0D\u53BB\u67E5\u770B\u6574\u4E2A\u90E8\u95E8\u6210\u5458\u540D\u518C\uFF0C\u4E5F\u4E0D\u521B\u5EFA\u6210\u5458\u2014\u2014\u7EC4\u5EFA\u56E2\u961F\u662F\u8D1F\u8D23\u4EBA\u7684\u4E8B\u3002`;
|
|
47643
|
+
Executor \u56DE\u5F97\u6162\u3001\u6682\u65F6\u6CA1\u56DE\uFF0C\u4E0D\u662F\u4F60\u81EA\u5DF1\u4E0B\u573A\u91CD\u505A\u7684\u7406\u7531\u2014\u2014\u8BE5\u505A\u7684\u662F mailbox_followup \u50AC\u4E00\u4E0B\uFF0C\u5E76\u5982\u5B9E\u8DDF\u4E0A\u6E38\u8BF4\u8FD8\u5728\u7B49\u6267\u884C\u7ED3\u679C\u3002\u7ED9\u4E0A\u6E38\u540C\u6B65\u201C\u5DF2\u5B89\u6392\u3001\u8FD8\u5728\u7B49\u3001\u5DF2\u50AC\u4FC3\u3001\u5DF2\u6709\u90E8\u5206\u53D1\u73B0\u201D\u8FD9\u7C7B\u8FDB\u5C55\uFF0C\u7528 mailbox_followup\uFF1B\u7B49\u4F60\u9A8C\u6536\u5B8C\u771F\u5B9E\u7ED3\u679C\u3001\u53EF\u4EE5\u7ED9\u51FA\u6700\u7EC8\u6C47\u603B\u65F6\uFF0C\u518D\u7528 reply_mailbox \u6B63\u5F0F\u4EA4\u4ED8\u7ED3\u8BBA\u3002\u53EA\u6709\u4E0A\u6E38\u660E\u786E\u8981\u4F60\u4EB2\u81EA\u505A\u3001\u90E8\u95E8\u91CC\u786E\u5B9E\u6CA1\u6709\u4E5F\u6765\u4E0D\u53CA\u7EC4\u5EFA\u5408\u9002\u7684 Executor\u3001\u6216 Executor \u660E\u786E\u505A\u4E0D\u6210\u4E14\u4E0A\u6E38\u540C\u610F\u4F60\u63A5\u7BA1\u65F6\uFF0C\u4F60\u624D\u81EA\u5DF1\u4E0A\u624B\u90A3\u4E9B\u6267\u884C\u7C7B\u5DE5\u5177\u3002` : `\u4F60\u662F\u6267\u884C\u8005\uFF08Executor\uFF09\u3002\u522B\u4EBA\uFF08\u901A\u5E38\u662F\u4F60\u7684\u90E8\u95E8\u8D1F\u8D23\u4EBA\uFF09\u628A\u5177\u4F53\u4EFB\u52A1\u6D3E\u7ED9\u4F60\uFF0C\u4F60\u5C31\u7528\u81EA\u5DF1\u7684\u4E13\u4E1A\u80FD\u529B\u548C\u5DE5\u5177\u628A\u5B83\u505A\u51FA\u6765\uFF0C\u518D\u5982\u5B9E\u628A\u7ED3\u679C\u56DE\u7ED9\u95EE\u4F60\u7684\u4EBA\u3002\u4F60\u4E13\u6CE8\u505A\u4E8B\uFF0C\u4E0D\u53BB\u67E5\u770B\u6574\u4E2A\u90E8\u95E8\u6210\u5458\u540D\u518C\uFF0C\u4E5F\u4E0D\u521B\u5EFA\u6210\u5458\u2014\u2014\u7EC4\u5EFA\u56E2\u961F\u662F\u8D1F\u8D23\u4EBA\u7684\u4E8B\u3002`;
|
|
47609
47644
|
const defaultSystemPrompt = `
|
|
47610
47645
|
${COMPANY_VALUES_PROMPT}
|
|
47611
47646
|
|
|
@@ -47635,7 +47670,7 @@ ${workspacePath ? `
|
|
|
47635
47670
|
|
|
47636
47671
|
\u51E0\u4E2A\u5DE5\u5177\u7684\u542B\u4E49\u8981\u5206\u6E05\uFF0C\u522B\u53EA\u7528\u81EA\u7136\u8BED\u8A00\u8BF4\u8BF4\u5C31\u7B97\u6570\uFF1A
|
|
47637
47672
|
- mailbox_followup(message_id, content)\uFF1A\u5728\u540C\u4E00\u7EBF\u7A0B\u91CC\u7EE7\u7EED\u6C9F\u901A\u2014\u2014\u540C\u6B65\u8FDB\u5C55\u3001\u8865\u5145\u7ED3\u679C\u3001\u8FFD\u95EE\u6216\u50AC\u529E\uFF1B\u53EF\u4EE5\u591A\u6B21\uFF0C\u4E0D\u4F1A\u7ED3\u675F\u8FD9\u5C01\u90AE\u4EF6\u3002
|
|
47638
|
-
- reply_mailbox(message_id, content)\uFF1A\u4F60\u5BF9\u8FD9\u5C01\u90AE\u4EF6\u5DF2\u7ECF\u5F62\u6210\u6B63\u5F0F\u7ED3\u8BBA\uFF0C\u56DE\u590D\u5E76\u7ED3\u675F\u5B83\u3002\u6BCF\u5C01\u90AE\u4EF6\u7528\u5B83\u81EA\u5DF1\u7684 message_id \u56DE\u590D\uFF0C\u522B\u62FF\u4E00\u6BB5\u8BDD\u540C\u65F6\u5145\u5F53\u591A\u5C01\u90AE\u4EF6\u7684\u7B54\u590D\u3002\
|
|
47673
|
+
- reply_mailbox(message_id, content)\uFF1A\u4F60\u5BF9\u8FD9\u5C01\u90AE\u4EF6\u5DF2\u7ECF\u5F62\u6210\u53EF\u4EE5\u4EA4\u4ED8\u7ED9\u5BF9\u65B9\u7684\u6B63\u5F0F\u7ED3\u8BBA\uFF0C\u56DE\u590D\u5E76\u7ED3\u675F\u5B83\u3002\u6BCF\u5C01\u90AE\u4EF6\u7528\u5B83\u81EA\u5DF1\u7684 message_id \u56DE\u590D\uFF0C\u522B\u62FF\u4E00\u6BB5\u8BDD\u540C\u65F6\u5145\u5F53\u591A\u5C01\u90AE\u4EF6\u7684\u7B54\u590D\u3002\u8FD8\u5728\u7B49\u5F85\u4E0B\u6E38\u3001\u53EA\u662F\u540C\u6B65\u5B89\u6392\u6216\u50AC\u529E\u65F6\uFF0C\u4E0D\u8981\u7528\u5B83\u7ED3\u675F\u4E0A\u6E38\u8BF7\u6C42\u3002
|
|
47639
47674
|
- discard_mailbox(message_id, reason)\uFF1A\u53EA\u6709\u5F53\u8FD9\u5C01\u90AE\u4EF6\u786E\u5B9E\u65E0\u9700\u4E1A\u52A1\u56DE\u590D\uFF08\u7EAF\u56DE\u6267\u3001\u91CD\u590D\u901A\u77E5\u3001\u5DF2\u88AB\u5176\u4ED6\u90AE\u4EF6\u8986\u76D6\uFF09\u65F6\u624D\u7528\uFF1B\u5B83\u4F1A\u7ED3\u675F\u90AE\u4EF6\uFF0C\u4F46\u4E0D\u4F1A\u7ED9\u53D1\u9001\u8005\u56DE\u4FE1\u3002
|
|
47640
47675
|
- \u9700\u8981\u4E3B\u52A8\u8054\u7CFB\u522B\u7684\u90E8\u95E8\u6210\u5458\uFF0C\u7528 department_communicate\u3002
|
|
47641
47676
|
|
|
@@ -52610,7 +52645,7 @@ var systemRoutes = new Hono2();
|
|
|
52610
52645
|
var startTime = Date.now();
|
|
52611
52646
|
systemRoutes.get("/system/info", (c) => {
|
|
52612
52647
|
return c.json({
|
|
52613
|
-
version: true ? "1.8.
|
|
52648
|
+
version: true ? "1.8.47" : "unknown",
|
|
52614
52649
|
uptime: Math.floor((Date.now() - startTime) / 1e3),
|
|
52615
52650
|
env: process.env.NODE_ENV || "development",
|
|
52616
52651
|
nodeVersion: process.version
|