duclaw-cli 1.8.39 → 1.8.40
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 +46 -15
- 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.40" : "unknown"}`);
|
|
30246
30246
|
}
|
|
30247
30247
|
function getDuclawTemplate() {
|
|
30248
30248
|
return {
|
|
@@ -42682,6 +42682,18 @@ var departmentCreate = {
|
|
|
42682
42682
|
|
|
42683
42683
|
// src/tools/tools/department/DepartmentCommunicate.ts
|
|
42684
42684
|
var CEO_MAILBOX_ID = `manager`;
|
|
42685
|
+
var MANAGER_ALIAS_PATTERN = /(^|::)(manager|main[-_\s]?manager|ceo)$/i;
|
|
42686
|
+
var looksLikePseudoManagerMailbox = (mailboxId) => {
|
|
42687
|
+
if (mailboxId === CEO_MAILBOX_ID) return true;
|
|
42688
|
+
if (!mailboxId.includes(`::`)) return false;
|
|
42689
|
+
return MANAGER_ALIAS_PATTERN.test(mailboxId.trim());
|
|
42690
|
+
};
|
|
42691
|
+
var buildManagerRoutingRejection = (activeContext) => [
|
|
42692
|
+
`[departmentCommunicate] \u62D2\u7EDD\u53D1\u9001\u5230\u4F2A manager mailbox\u3002`,
|
|
42693
|
+
`Main Manager/CEO \u4E0D\u662F\u90E8\u95E8\u6210\u5458\uFF0C\u4E0D\u80FD\u7528 department_communicate \u53D1\u9001\u5230 manager\u3001Department::Manager\u3001CEO::Manager \u7B49\u5730\u5740\u3002`,
|
|
42694
|
+
activeContext ? `\u5982\u679C\u8981\u5411\u4E0A\u6E38 CEO \u6C47\u62A5\uFF0C\u8BF7\u8C03\u7528 reply_mailbox(message_id="${activeContext.id}", content="...") \u6B63\u5F0F\u56DE\u590D\u539F\u90AE\u4EF6\uFF1B\u82E5\u53EA\u662F\u540C\u6B65\u9636\u6BB5\u8FDB\u5C55\uFF0C\u8BF7\u8C03\u7528 mailbox_followup(message_id="${activeContext.id}", content="...", kind="progress")\u3002` : `\u5982\u679C\u8981\u5411\u4E0A\u6E38 CEO \u6C47\u62A5\uFF0C\u8BF7\u56DE\u5230\u539F manager \u90AE\u4EF6\uFF0C\u4F7F\u7528 reply_mailbox(message_id="\u539F\u90AE\u4EF6ID", content="...") \u6216 mailbox_followup(message_id="\u539F\u90AE\u4EF6ID", content="...", kind="progress")\u3002`
|
|
42695
|
+
].join(`
|
|
42696
|
+
`);
|
|
42685
42697
|
var getActiveMailboxContext = (actorMailboxId, messageId) => {
|
|
42686
42698
|
if (!messageId) return null;
|
|
42687
42699
|
const db3 = createSqliteDB();
|
|
@@ -42708,6 +42720,7 @@ var DESCRIPTION21 = `
|
|
|
42708
42720
|
- CEO \u9ED8\u8BA4\u901A\u8FC7 department_list \u53EA\u770B\u5230\u90E8\u95E8\u548C Department Head\uFF0C\u4E0D\u4E3B\u52A8\u66B4\u9732 Executor\u3002
|
|
42709
42721
|
- Department Head \u9ED8\u8BA4\u7BA1\u7406\u672C\u90E8\u95E8\u6210\u5458\u3002
|
|
42710
42722
|
- \u5982\u679C\u667A\u80FD\u4F53\u5DF2\u7ECF\u901A\u8FC7\u6B63\u5E38\u6C9F\u901A\u77E5\u9053\u4E86\u5176\u4ED6\u6210\u5458\u7684 mailbox \u5730\u5740\uFF0C\u5DE5\u5177\u4E0D\u4F1A\u786C\u6027\u963B\u6B62\u901A\u4FE1\uFF1B\u8FD9\u7C7B\u975E\u9ED8\u8BA4\u8DEF\u5F84\u4F1A\u5199\u5165\u5BA1\u8BA1\u4FE1\u606F\u3002
|
|
42723
|
+
- Main Manager/CEO \u7684 mailbox id \u56FA\u5B9A\u662F manager\u3002Department agent \u4E0D\u5E94\u4F7F\u7528 department_communicate \u7ED9 manager \u6216 Department::Manager \u53D1\u4FE1\uFF1B\u8981\u56DE\u590D\u4E0A\u6E38\u5FC5\u987B\u4F7F\u7528\u539F\u90AE\u4EF6\u7684 reply_mailbox \u6216 mailbox_followup\u3002
|
|
42711
42724
|
|
|
42712
42725
|
\u53C2\u6570\u8BF4\u660E\uFF1A
|
|
42713
42726
|
- department_name + member_name: \u9ED8\u8BA4\u5BFB\u5740\u65B9\u5F0F\u3002
|
|
@@ -42752,18 +42765,6 @@ var departmentCommunicate = {
|
|
|
42752
42765
|
const targetMailboxId = input.target_mailbox_id;
|
|
42753
42766
|
const content = input.content;
|
|
42754
42767
|
const reason = input.reason;
|
|
42755
|
-
let toMailboxId = targetMailboxId;
|
|
42756
|
-
let targetMember = targetMailboxId ? getDepartmentMemberByMailboxId(targetMailboxId) : null;
|
|
42757
|
-
if (!toMailboxId) {
|
|
42758
|
-
if (!departmentName || !memberName) {
|
|
42759
|
-
return `[departmentCommunicate] department_name/member_name \u6216 target_mailbox_id \u81F3\u5C11\u9700\u8981\u63D0\u4F9B\u4E00\u79CD`;
|
|
42760
|
-
}
|
|
42761
|
-
targetMember = getDepartmentMemberByName(departmentName, memberName);
|
|
42762
|
-
if (!targetMember) {
|
|
42763
|
-
return `[departmentCommunicate] \u4E0D\u5B58\u5728 ${departmentName} \u90E8\u95E8\u7684\u6210\u5458: ${memberName}`;
|
|
42764
|
-
}
|
|
42765
|
-
toMailboxId = getMailBoxId(departmentName, memberName);
|
|
42766
|
-
}
|
|
42767
42768
|
let fromMailboxId;
|
|
42768
42769
|
const departmentAgentId = userRequest.departmentAgentId;
|
|
42769
42770
|
const actorMember = departmentAgentId ? getDepartmentMemberByMailboxId(
|
|
@@ -42778,6 +42779,30 @@ var departmentCommunicate = {
|
|
|
42778
42779
|
} else {
|
|
42779
42780
|
fromMailboxId = CEO_MAILBOX_ID;
|
|
42780
42781
|
}
|
|
42782
|
+
const activeContext = departmentAgentId ? getActiveMailboxContext(fromMailboxId, userRequest.requestId) : null;
|
|
42783
|
+
let toMailboxId = targetMailboxId;
|
|
42784
|
+
let targetMember = targetMailboxId ? getDepartmentMemberByMailboxId(targetMailboxId) : null;
|
|
42785
|
+
if (departmentAgentId && targetMailboxId && looksLikePseudoManagerMailbox(targetMailboxId)) {
|
|
42786
|
+
return buildManagerRoutingRejection(activeContext);
|
|
42787
|
+
}
|
|
42788
|
+
if (departmentAgentId && targetMailboxId && !targetMember) {
|
|
42789
|
+
return [
|
|
42790
|
+
`[departmentCommunicate] \u62D2\u7EDD\u53D1\u9001\u5230\u4E0D\u5B58\u5728\u7684 mailbox: ${targetMailboxId}`,
|
|
42791
|
+
`Department agent \u4F7F\u7528 target_mailbox_id \u65F6\uFF0C\u76EE\u6807\u5FC5\u987B\u662F\u5DF2\u5B58\u5728\u7684\u90E8\u95E8\u6210\u5458 mailbox\u3002`,
|
|
42792
|
+
`\u5982\u679C\u4F60\u60F3\u56DE\u590D\u4E0A\u6E38 CEO/Main Manager\uFF0C\u8BF7\u4E0D\u8981\u4F2A\u9020 manager \u5730\u5740\uFF1B\u8BF7\u4F7F\u7528\u539F\u90AE\u4EF6\u7684 reply_mailbox \u6216 mailbox_followup\u3002`
|
|
42793
|
+
].join(`
|
|
42794
|
+
`);
|
|
42795
|
+
}
|
|
42796
|
+
if (!toMailboxId) {
|
|
42797
|
+
if (!departmentName || !memberName) {
|
|
42798
|
+
return `[departmentCommunicate] department_name/member_name \u6216 target_mailbox_id \u81F3\u5C11\u9700\u8981\u63D0\u4F9B\u4E00\u79CD`;
|
|
42799
|
+
}
|
|
42800
|
+
targetMember = getDepartmentMemberByName(departmentName, memberName);
|
|
42801
|
+
if (!targetMember) {
|
|
42802
|
+
return `[departmentCommunicate] \u4E0D\u5B58\u5728 ${departmentName} \u90E8\u95E8\u7684\u6210\u5458: ${memberName}`;
|
|
42803
|
+
}
|
|
42804
|
+
toMailboxId = getMailBoxId(departmentName, memberName);
|
|
42805
|
+
}
|
|
42781
42806
|
const isCrossDepartment = Boolean(actorMember && targetMember && actorMember.departmentId !== targetMember.departmentId);
|
|
42782
42807
|
const isKnownAddressPath = Boolean(targetMailboxId);
|
|
42783
42808
|
const options = {
|
|
@@ -42794,7 +42819,6 @@ var departmentCommunicate = {
|
|
|
42794
42819
|
options.originUserId = userRequest.userId;
|
|
42795
42820
|
options.originPlatform = userRequest.platform;
|
|
42796
42821
|
} else {
|
|
42797
|
-
const activeContext = getActiveMailboxContext(fromMailboxId, userRequest.requestId);
|
|
42798
42822
|
if (activeContext) {
|
|
42799
42823
|
options.originUserId = activeContext.originUserId;
|
|
42800
42824
|
options.originPlatform = activeContext.originPlatform;
|
|
@@ -47056,6 +47080,7 @@ var replyMailbox = {
|
|
|
47056
47080
|
// src/cron/mailbox.ts
|
|
47057
47081
|
var db2 = createSqliteDB();
|
|
47058
47082
|
var DEFAULT_MAILBOX_PROCESSING_STALE_MS = 15 * 6e4;
|
|
47083
|
+
var PSEUDO_MANAGER_MAILBOX_PATTERN = /(^|::)(manager|main[-_\s]?manager|ceo)$/i;
|
|
47059
47084
|
var selectStmt = db2.prepare(`select
|
|
47060
47085
|
id,
|
|
47061
47086
|
to_mailbox_id as toMailboxId,
|
|
@@ -47095,6 +47120,7 @@ var getMailboxLivenessSnapshot = () => {
|
|
|
47095
47120
|
};
|
|
47096
47121
|
};
|
|
47097
47122
|
var hasUnresolvedInternalWork = (snapshot) => snapshot.pendingMailbox > 0 || snapshot.processingMailbox > 0 || snapshot.pendingCeoFollowups > 0 || snapshot.processingCeoFollowups > 0 || snapshot.failedCeoFollowups > 0;
|
|
47123
|
+
var looksLikePseudoManagerMailbox2 = (mailboxId) => mailboxId !== "manager" && mailboxId.includes("::") && PSEUDO_MANAGER_MAILBOX_PATTERN.test(mailboxId.trim());
|
|
47098
47124
|
var reportMailboxLiveness = async (snapshot) => {
|
|
47099
47125
|
if (!hasUnresolvedInternalWork(snapshot)) return;
|
|
47100
47126
|
await reportRuntimeActivity({
|
|
@@ -47249,6 +47275,11 @@ var wakeDepartmentAgent = async (mailboxId, msgIds) => {
|
|
|
47249
47275
|
const member = getDepartmentMemberByName(departmentName, memberName);
|
|
47250
47276
|
if (!member) {
|
|
47251
47277
|
console.warn(`[mailbox] \u76EE\u6807\u6210\u5458\u4E0D\u5B58\u5728\uFF08\u53EF\u80FD\u5DF2\u88AB\u5220\u9664\uFF09: ${mailboxId}`);
|
|
47278
|
+
if (looksLikePseudoManagerMailbox2(mailboxId)) {
|
|
47279
|
+
for (const id of msgIds) markMailboxStatus(id, "cancelled");
|
|
47280
|
+
console.warn(`[mailbox] \u5DF2\u53D6\u6D88\u4F2A manager mailbox \u6295\u9012 ${mailboxId}\uFF0C\u4E0D\u518D\u751F\u6210 CEO \u7CFB\u7EDF\u566A\u58F0`);
|
|
47281
|
+
return;
|
|
47282
|
+
}
|
|
47252
47283
|
const notifyContent = `[\u7CFB\u7EDF\u901A\u77E5] \u90E8\u95E8\u6210\u5458 ${mailboxId} \u4E0D\u5B58\u5728\uFF08\u53EF\u80FD\u6240\u5C5E\u90E8\u95E8\u5DF2\u89E3\u6563\u6216\u6210\u5458\u5DF2\u88AB\u5220\u9664\uFF09\uFF0C\u4EE5\u4E0B\u6D88\u606F\u65E0\u6CD5\u6295\u9012\u5DF2\u88AB\u53D6\u6D88\u3002\u8BF7\u6839\u636E\u60C5\u51B5\u51B3\u5B9A\u662F\u5426\u9700\u8981\u91CD\u65B0\u7EC4\u5EFA\u90E8\u95E8\u6216\u8C03\u6574\u8BA1\u5212\u3002`;
|
|
47253
47284
|
const originStmt = db2.prepare(
|
|
47254
47285
|
`SELECT origin_user_id as originUserId, origin_platform as originPlatform
|
|
@@ -52520,7 +52551,7 @@ var systemRoutes = new Hono2();
|
|
|
52520
52551
|
var startTime = Date.now();
|
|
52521
52552
|
systemRoutes.get("/system/info", (c) => {
|
|
52522
52553
|
return c.json({
|
|
52523
|
-
version: true ? "1.8.
|
|
52554
|
+
version: true ? "1.8.40" : "unknown",
|
|
52524
52555
|
uptime: Math.floor((Date.now() - startTime) / 1e3),
|
|
52525
52556
|
env: process.env.NODE_ENV || "development",
|
|
52526
52557
|
nodeVersion: process.version
|