duclaw-cli 1.8.35 → 1.8.37
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 +189 -23
- package/dist/main.js +1 -1
- package/dist/web/assets/index-BYLnL8Rp.js +95 -0
- package/dist/web/assets/index-Bbgvdjvr.css +1 -0
- package/dist/web/index.html +2 -2
- package/dist/worker-main.js +1 -1
- package/package.json +1 -1
- package/dist/web/assets/index-C9gholC4.css +0 -1
- package/dist/web/assets/index-GIi2Lr_s.js +0 -95
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.37" : "unknown"}`);
|
|
30246
30246
|
}
|
|
30247
30247
|
function getDuclawTemplate() {
|
|
30248
30248
|
return {
|
|
@@ -41463,6 +41463,9 @@ var create_mailbox_table = () => {
|
|
|
41463
41463
|
origin_platform TEXT,
|
|
41464
41464
|
thread_id TEXT,
|
|
41465
41465
|
parent_message_id TEXT,
|
|
41466
|
+
work_item_id TEXT,
|
|
41467
|
+
work_item_role TEXT,
|
|
41468
|
+
upstream_message_id TEXT,
|
|
41466
41469
|
send_time INTEGER DEFAULT ((strftime('%s', 'now')) * 1000),
|
|
41467
41470
|
created_at INTEGER DEFAULT ((strftime('%s', 'now')) * 1000),
|
|
41468
41471
|
updated_at INTEGER DEFAULT ((strftime('%s', 'now')) * 1000)
|
|
@@ -41486,9 +41489,23 @@ var create_mailbox_table = () => {
|
|
|
41486
41489
|
db3.exec(`ALTER TABLE mailbox ADD COLUMN parent_message_id TEXT`);
|
|
41487
41490
|
} catch (_) {
|
|
41488
41491
|
}
|
|
41492
|
+
try {
|
|
41493
|
+
db3.exec(`ALTER TABLE mailbox ADD COLUMN work_item_id TEXT`);
|
|
41494
|
+
} catch (_) {
|
|
41495
|
+
}
|
|
41496
|
+
try {
|
|
41497
|
+
db3.exec(`ALTER TABLE mailbox ADD COLUMN work_item_role TEXT`);
|
|
41498
|
+
} catch (_) {
|
|
41499
|
+
}
|
|
41500
|
+
try {
|
|
41501
|
+
db3.exec(`ALTER TABLE mailbox ADD COLUMN upstream_message_id TEXT`);
|
|
41502
|
+
} catch (_) {
|
|
41503
|
+
}
|
|
41489
41504
|
const columns = db3.prepare(`PRAGMA table_info(mailbox)`).all();
|
|
41490
41505
|
const hasThreadId = columns.some((column) => column.name === "thread_id");
|
|
41491
41506
|
const hasParentMessageId = columns.some((column) => column.name === "parent_message_id");
|
|
41507
|
+
const hasWorkItemId = columns.some((column) => column.name === "work_item_id");
|
|
41508
|
+
const hasUpstreamMessageId = columns.some((column) => column.name === "upstream_message_id");
|
|
41492
41509
|
if (hasThreadId) {
|
|
41493
41510
|
db3.exec(`
|
|
41494
41511
|
CREATE INDEX IF NOT EXISTS idx_mailbox_thread
|
|
@@ -41502,6 +41519,18 @@ var create_mailbox_table = () => {
|
|
|
41502
41519
|
ON mailbox(parent_message_id)
|
|
41503
41520
|
`);
|
|
41504
41521
|
}
|
|
41522
|
+
if (hasWorkItemId) {
|
|
41523
|
+
db3.exec(`
|
|
41524
|
+
CREATE INDEX IF NOT EXISTS idx_mailbox_work_item
|
|
41525
|
+
ON mailbox(work_item_id, send_time DESC)
|
|
41526
|
+
`);
|
|
41527
|
+
}
|
|
41528
|
+
if (hasUpstreamMessageId) {
|
|
41529
|
+
db3.exec(`
|
|
41530
|
+
CREATE INDEX IF NOT EXISTS idx_mailbox_upstream
|
|
41531
|
+
ON mailbox(upstream_message_id)
|
|
41532
|
+
`);
|
|
41533
|
+
}
|
|
41505
41534
|
};
|
|
41506
41535
|
var create_mailbox_events_table = () => {
|
|
41507
41536
|
const db3 = createSqliteDB();
|
|
@@ -42102,6 +42131,87 @@ var cancelMailboxMessages = (mailboxId) => {
|
|
|
42102
42131
|
}
|
|
42103
42132
|
return messages.length;
|
|
42104
42133
|
};
|
|
42134
|
+
var getWorkItemContextFromMessage = (messageId) => {
|
|
42135
|
+
if (!messageId) return null;
|
|
42136
|
+
const db3 = createSqliteDB();
|
|
42137
|
+
const row = db3.prepare(
|
|
42138
|
+
`SELECT
|
|
42139
|
+
work_item_id as workItemId,
|
|
42140
|
+
work_item_role as workItemRole,
|
|
42141
|
+
upstream_message_id as upstreamMessageId
|
|
42142
|
+
FROM mailbox
|
|
42143
|
+
WHERE id = ?`
|
|
42144
|
+
).get(messageId);
|
|
42145
|
+
if (!row?.workItemId) return null;
|
|
42146
|
+
return row;
|
|
42147
|
+
};
|
|
42148
|
+
var getWorkItemContextFromThread = (threadId) => {
|
|
42149
|
+
if (!threadId) return null;
|
|
42150
|
+
const db3 = createSqliteDB();
|
|
42151
|
+
const row = db3.prepare(
|
|
42152
|
+
`SELECT
|
|
42153
|
+
work_item_id as workItemId,
|
|
42154
|
+
work_item_role as workItemRole,
|
|
42155
|
+
upstream_message_id as upstreamMessageId
|
|
42156
|
+
FROM mailbox
|
|
42157
|
+
WHERE thread_id = ?
|
|
42158
|
+
AND work_item_id IS NOT NULL
|
|
42159
|
+
ORDER BY send_time ASC
|
|
42160
|
+
LIMIT 1`
|
|
42161
|
+
).get(threadId);
|
|
42162
|
+
if (!row?.workItemId) return null;
|
|
42163
|
+
return row;
|
|
42164
|
+
};
|
|
42165
|
+
var mailboxLooksLikeRole = (mailboxId, role) => {
|
|
42166
|
+
const lower = mailboxId.toLowerCase();
|
|
42167
|
+
if (role === "department_head") {
|
|
42168
|
+
return lower.includes("department-head") || mailboxId.includes("\u8D1F\u8D23\u4EBA");
|
|
42169
|
+
}
|
|
42170
|
+
return lower.includes("executor") || mailboxId.includes("\u6267\u884C\u8005") || mailboxId.includes("\u4E13\u5458");
|
|
42171
|
+
};
|
|
42172
|
+
var inferWorkItemRole = (fromMailboxId, toMailboxId, inherited) => {
|
|
42173
|
+
if (fromMailboxId === "manager") return "upstream_request";
|
|
42174
|
+
if (toMailboxId === "manager") return "upstream_report";
|
|
42175
|
+
const fromMember = getDepartmentMemberByMailboxId(fromMailboxId);
|
|
42176
|
+
const toMember = getDepartmentMemberByMailboxId(toMailboxId);
|
|
42177
|
+
const fromIsHead = fromMember?.role === "department_head" || mailboxLooksLikeRole(fromMailboxId, "department_head");
|
|
42178
|
+
const toIsHead = toMember?.role === "department_head" || mailboxLooksLikeRole(toMailboxId, "department_head");
|
|
42179
|
+
const fromIsExecutor = fromMember?.role === "executor" || mailboxLooksLikeRole(fromMailboxId, "executor");
|
|
42180
|
+
const toIsExecutor = toMember?.role === "executor" || mailboxLooksLikeRole(toMailboxId, "executor");
|
|
42181
|
+
if (fromIsHead && toIsExecutor) {
|
|
42182
|
+
return inherited?.workItemRole === "executor_result" ? "downstream_reply" : "delegation";
|
|
42183
|
+
}
|
|
42184
|
+
if (fromIsExecutor && toIsHead) return "executor_result";
|
|
42185
|
+
return inherited?.workItemRole ? "followup" : "message";
|
|
42186
|
+
};
|
|
42187
|
+
var resolveWorkItemContext = (fromMailboxId, toMailboxId, id, options) => {
|
|
42188
|
+
if (options?.workItemId) {
|
|
42189
|
+
return {
|
|
42190
|
+
workItemId: options.workItemId,
|
|
42191
|
+
workItemRole: options.workItemRole ?? inferWorkItemRole(fromMailboxId, toMailboxId),
|
|
42192
|
+
upstreamMessageId: options.upstreamMessageId ?? options.workItemId
|
|
42193
|
+
};
|
|
42194
|
+
}
|
|
42195
|
+
const inherited = getWorkItemContextFromMessage(options?.parentMessageId) ?? getWorkItemContextFromThread(options?.threadId);
|
|
42196
|
+
if (inherited?.workItemId) {
|
|
42197
|
+
return {
|
|
42198
|
+
workItemId: inherited.workItemId,
|
|
42199
|
+
workItemRole: options?.workItemRole ?? inferWorkItemRole(fromMailboxId, toMailboxId, inherited),
|
|
42200
|
+
upstreamMessageId: inherited.upstreamMessageId ?? inherited.workItemId
|
|
42201
|
+
};
|
|
42202
|
+
}
|
|
42203
|
+
const targetMember = getDepartmentMemberByMailboxId(toMailboxId);
|
|
42204
|
+
if (fromMailboxId === "manager" && targetMember?.role === "department_head") {
|
|
42205
|
+
return {
|
|
42206
|
+
workItemId: id,
|
|
42207
|
+
workItemRole: "upstream_request",
|
|
42208
|
+
upstreamMessageId: id
|
|
42209
|
+
};
|
|
42210
|
+
}
|
|
42211
|
+
return {
|
|
42212
|
+
workItemRole: options?.workItemRole ?? inferWorkItemRole(fromMailboxId, toMailboxId)
|
|
42213
|
+
};
|
|
42214
|
+
};
|
|
42105
42215
|
var buildMailboxInterruptContent = (msg) => {
|
|
42106
42216
|
const from = msg.fromMailboxId;
|
|
42107
42217
|
return [
|
|
@@ -42157,6 +42267,9 @@ var recordMailboxReceivedAgentEvent = (msg) => {
|
|
|
42157
42267
|
};
|
|
42158
42268
|
var sendMessage2 = (fromMailboxId, toMailboxId, content, options) => {
|
|
42159
42269
|
const db3 = createSqliteDB();
|
|
42270
|
+
const id = (0, import_node_crypto4.randomUUID)().slice(0, 8);
|
|
42271
|
+
const threadId = options?.threadId || id;
|
|
42272
|
+
const workItemContext = resolveWorkItemContext(fromMailboxId, toMailboxId, id, options);
|
|
42160
42273
|
const stmt = db3.prepare(`insert into mailbox (
|
|
42161
42274
|
id,
|
|
42162
42275
|
to_mailbox_id,
|
|
@@ -42167,10 +42280,11 @@ var sendMessage2 = (fromMailboxId, toMailboxId, content, options) => {
|
|
|
42167
42280
|
origin_user_id,
|
|
42168
42281
|
origin_platform,
|
|
42169
42282
|
thread_id,
|
|
42170
|
-
parent_message_id
|
|
42171
|
-
|
|
42172
|
-
|
|
42173
|
-
|
|
42283
|
+
parent_message_id,
|
|
42284
|
+
work_item_id,
|
|
42285
|
+
work_item_role,
|
|
42286
|
+
upstream_message_id
|
|
42287
|
+
) values (?,?,?,?,?,?,?,?,?,?,?,?,?) `);
|
|
42174
42288
|
let mailboxMsg = {
|
|
42175
42289
|
id,
|
|
42176
42290
|
toMailboxId,
|
|
@@ -42181,7 +42295,10 @@ var sendMessage2 = (fromMailboxId, toMailboxId, content, options) => {
|
|
|
42181
42295
|
originUserId: options?.originUserId,
|
|
42182
42296
|
originPlatform: options?.originPlatform,
|
|
42183
42297
|
threadId,
|
|
42184
|
-
parentMessageId: options?.parentMessageId
|
|
42298
|
+
parentMessageId: options?.parentMessageId,
|
|
42299
|
+
workItemId: workItemContext.workItemId,
|
|
42300
|
+
workItemRole: workItemContext.workItemRole,
|
|
42301
|
+
upstreamMessageId: workItemContext.upstreamMessageId
|
|
42185
42302
|
};
|
|
42186
42303
|
const result = stmt.run(
|
|
42187
42304
|
mailboxMsg.id,
|
|
@@ -42193,7 +42310,10 @@ var sendMessage2 = (fromMailboxId, toMailboxId, content, options) => {
|
|
|
42193
42310
|
mailboxMsg.originUserId || null,
|
|
42194
42311
|
mailboxMsg.originPlatform || null,
|
|
42195
42312
|
mailboxMsg.threadId || mailboxMsg.id,
|
|
42196
|
-
mailboxMsg.parentMessageId || null
|
|
42313
|
+
mailboxMsg.parentMessageId || null,
|
|
42314
|
+
mailboxMsg.workItemId || null,
|
|
42315
|
+
mailboxMsg.workItemRole || null,
|
|
42316
|
+
mailboxMsg.upstreamMessageId || null
|
|
42197
42317
|
);
|
|
42198
42318
|
recordMailboxEvent({
|
|
42199
42319
|
messageId: mailboxMsg.id,
|
|
@@ -42203,6 +42323,9 @@ var sendMessage2 = (fromMailboxId, toMailboxId, content, options) => {
|
|
|
42203
42323
|
eventType: "message_sent",
|
|
42204
42324
|
detail: {
|
|
42205
42325
|
initialStatus: mailboxMsg.status,
|
|
42326
|
+
workItemId: mailboxMsg.workItemId ?? null,
|
|
42327
|
+
workItemRole: mailboxMsg.workItemRole ?? null,
|
|
42328
|
+
upstreamMessageId: mailboxMsg.upstreamMessageId ?? null,
|
|
42206
42329
|
...options?.auditDetail ?? {}
|
|
42207
42330
|
},
|
|
42208
42331
|
createdAt: mailboxMsg.sendTime
|
|
@@ -42314,7 +42437,9 @@ var getActiveMailboxContext = (actorMailboxId, messageId) => {
|
|
|
42314
42437
|
to_mailbox_id as toMailboxId,
|
|
42315
42438
|
origin_user_id as originUserId,
|
|
42316
42439
|
origin_platform as originPlatform,
|
|
42317
|
-
thread_id as threadId
|
|
42440
|
+
thread_id as threadId,
|
|
42441
|
+
work_item_id as workItemId,
|
|
42442
|
+
upstream_message_id as upstreamMessageId
|
|
42318
42443
|
FROM mailbox
|
|
42319
42444
|
WHERE id = ?
|
|
42320
42445
|
AND (from_mailbox_id = ? OR to_mailbox_id = ?)`
|
|
@@ -42420,6 +42545,8 @@ var departmentCommunicate = {
|
|
|
42420
42545
|
options.originPlatform = activeContext.originPlatform;
|
|
42421
42546
|
options.threadId = activeContext.threadId || activeContext.id;
|
|
42422
42547
|
options.parentMessageId = activeContext.id;
|
|
42548
|
+
options.workItemId = activeContext.workItemId;
|
|
42549
|
+
options.upstreamMessageId = activeContext.upstreamMessageId;
|
|
42423
42550
|
}
|
|
42424
42551
|
}
|
|
42425
42552
|
try {
|
|
@@ -46472,7 +46599,10 @@ var discardMailbox = {
|
|
|
46472
46599
|
id,
|
|
46473
46600
|
from_mailbox_id as fromMailboxId,
|
|
46474
46601
|
to_mailbox_id as toMailboxId,
|
|
46602
|
+
content,
|
|
46475
46603
|
status,
|
|
46604
|
+
origin_user_id as originUserId,
|
|
46605
|
+
origin_platform as originPlatform,
|
|
46476
46606
|
thread_id as threadId,
|
|
46477
46607
|
parent_message_id as parentMessageId
|
|
46478
46608
|
FROM mailbox WHERE id = ?`
|
|
@@ -46487,6 +46617,13 @@ var discardMailbox = {
|
|
|
46487
46617
|
if (msg.status !== "pending" && msg.status !== "processing") {
|
|
46488
46618
|
return `[discardMailbox] \u90AE\u4EF6 ${messageId} \u5F53\u524D\u72B6\u6001\u4E3A ${msg.status}\uFF0C\u5DF2\u5904\u7406\u6216\u4E0D\u53EF\u4E22\u5F03`;
|
|
46489
46619
|
}
|
|
46620
|
+
if (msg.fromMailboxId === "manager" && msg.originUserId) {
|
|
46621
|
+
return [
|
|
46622
|
+
`[discardMailbox] \u62D2\u7EDD\u4E22\u5F03 manager/CEO \u8F6C\u6765\u7684\u7528\u6237\u4E0A\u4E0B\u6587\u90AE\u4EF6 ${messageId}\u3002`,
|
|
46623
|
+
`\u8FD9\u7C7B\u90AE\u4EF6\u4EE3\u8868\u4E0A\u6E38\u6B63\u5728\u7B49\u5F85\u4E1A\u52A1\u7ED3\u8BBA\u6216\u8FDB\u5EA6\u540C\u6B65\uFF0C\u4E0D\u80FD\u7528 discard_mailbox \u9759\u9ED8\u5173\u95ED\u3002`,
|
|
46624
|
+
`\u8BF7\u6539\u7528 reply_mailbox(message_id="${messageId}", content="...") \u76F4\u63A5\u56DE\u590D\u5F53\u524D\u72B6\u6001\u3001\u6700\u7EC8\u7ED3\u679C\u6216\u660E\u786E\u963B\u585E\u9879\uFF1B\u5982\u4ECD\u9700\u7B49\u5F85\u4E0B\u6E38\uFF0C\u56DE\u590D\u201C\u6B63\u5728\u7B49\u5F85\u8C01/\u54EA\u4E00\u6B65/\u4E0B\u4E00\u6B21\u540C\u6B65\u65F6\u95F4\u201D\u3002`
|
|
46625
|
+
].join("\n");
|
|
46626
|
+
}
|
|
46490
46627
|
const changed = updateMailboxMessageStatus(messageId, "cancelled", {
|
|
46491
46628
|
fromStatus: ["pending", "processing"],
|
|
46492
46629
|
actorMailboxId: myMailboxId,
|
|
@@ -46524,9 +46661,25 @@ var DESCRIPTION41 = `
|
|
|
46524
46661
|
1. \u5C06\u56DE\u590D\u5185\u5BB9\u53D1\u9001\u5230\u539F\u53D1\u9001\u8005\u7684\u90AE\u7BB1
|
|
46525
46662
|
2. \u5C06\u8BE5\u90AE\u4EF6\u6807\u8BB0\u4E3A\u5DF2\u5904\u7406\uFF08done\uFF09
|
|
46526
46663
|
`;
|
|
46527
|
-
var findUpstreamManagerMessage = (myMailboxId, threadId) => {
|
|
46528
|
-
if (!threadId) return null;
|
|
46664
|
+
var findUpstreamManagerMessage = (myMailboxId, threadId, workItemId) => {
|
|
46529
46665
|
const db3 = createSqliteDB();
|
|
46666
|
+
if (workItemId) {
|
|
46667
|
+
const row2 = db3.prepare(
|
|
46668
|
+
`SELECT
|
|
46669
|
+
id,
|
|
46670
|
+
from_mailbox_id as fromMailboxId,
|
|
46671
|
+
to_mailbox_id as toMailboxId,
|
|
46672
|
+
status
|
|
46673
|
+
FROM mailbox
|
|
46674
|
+
WHERE work_item_id = ?
|
|
46675
|
+
AND from_mailbox_id = 'manager'
|
|
46676
|
+
AND to_mailbox_id = ?
|
|
46677
|
+
ORDER BY send_time ASC
|
|
46678
|
+
LIMIT 1`
|
|
46679
|
+
).get(workItemId, myMailboxId);
|
|
46680
|
+
if (row2) return row2;
|
|
46681
|
+
}
|
|
46682
|
+
if (!threadId) return null;
|
|
46530
46683
|
const row = db3.prepare(
|
|
46531
46684
|
`SELECT
|
|
46532
46685
|
id,
|
|
@@ -46542,16 +46695,18 @@ var findUpstreamManagerMessage = (myMailboxId, threadId) => {
|
|
|
46542
46695
|
).get(threadId, myMailboxId);
|
|
46543
46696
|
return row ?? null;
|
|
46544
46697
|
};
|
|
46545
|
-
var buildUpstreamReminder = (myMailboxId, repliedToMailboxId, threadId) => {
|
|
46698
|
+
var buildUpstreamReminder = (myMailboxId, repliedToMailboxId, threadId, workItemId) => {
|
|
46546
46699
|
const member = getDepartmentMemberByMailboxId(myMailboxId);
|
|
46547
|
-
|
|
46700
|
+
const looksLikeHead = myMailboxId.toLowerCase().includes("department-head") || myMailboxId.includes("\u8D1F\u8D23\u4EBA");
|
|
46701
|
+
if (member?.role !== "department_head" && !looksLikeHead) return "";
|
|
46548
46702
|
if (repliedToMailboxId === "manager") return "";
|
|
46549
|
-
const upstream = findUpstreamManagerMessage(myMailboxId, threadId);
|
|
46703
|
+
const upstream = findUpstreamManagerMessage(myMailboxId, threadId, workItemId);
|
|
46550
46704
|
if (!upstream) return "";
|
|
46705
|
+
if (upstream.status === "done" || upstream.status === "read") return "";
|
|
46551
46706
|
return [
|
|
46552
46707
|
``,
|
|
46553
|
-
`[replyMailbox] \u63D0\u9192\uFF1A\u4F60\u521A\u521A\u56DE\u590D\u7684\u662F\u4E0B\u6E38\u6210\u5458 ${repliedToMailboxId}\uFF0C\u4F46\
|
|
46554
|
-
`\u5982\u679C\u8FD9\u6B21\u56DE\u590D\u4EE3\u8868\u4EFB\u52A1\u5DF2\u5B8C\u6210\u6216\u5DF2\u9A8C\u6536\uFF0C\u8BF7\u7EE7\u7EED\u8C03\u7528 reply_mailbox(message_id="${upstream.id}", content="...")\
|
|
46708
|
+
`[replyMailbox] \u5F3A\u5236\u95ED\u73AF\u63D0\u9192\uFF1A\u4F60\u521A\u521A\u56DE\u590D\u7684\u662F\u4E0B\u6E38\u6210\u5458 ${repliedToMailboxId}\uFF0C\u4F46 work_item \u7684\u4E0A\u6E38 manager \u90AE\u4EF6 ${upstream.id} \u5F53\u524D\u72B6\u6001\u4E3A ${upstream.status}\uFF0C\u4ECD\u9700\u8981\u6700\u7EC8\u6C47\u62A5\u3002`,
|
|
46709
|
+
`\u5982\u679C\u8FD9\u6B21\u56DE\u590D\u4EE3\u8868\u4EFB\u52A1\u5DF2\u5B8C\u6210\u6216\u5DF2\u9A8C\u6536\uFF0C\u8BF7\u7EE7\u7EED\u8C03\u7528 reply_mailbox(message_id="${upstream.id}", content="...") \u5C06\u6700\u7EC8\u7ED3\u679C\u540C\u6B65\u7ED9 manager\uFF1B\u5982\u679C\u4ECD\u5728\u7B49\u5F85\u4E0B\u6E38\uFF0C\u8BF7\u7528 mailbox_followup(message_id="${upstream.id}", content="...", kind="progress") \u6C47\u62A5\u5F53\u524D\u8FDB\u5EA6\u3002`
|
|
46555
46710
|
].join("\n");
|
|
46556
46711
|
};
|
|
46557
46712
|
var replyMailbox = {
|
|
@@ -46588,7 +46743,10 @@ var replyMailbox = {
|
|
|
46588
46743
|
origin_user_id as originUserId,
|
|
46589
46744
|
origin_platform as originPlatform,
|
|
46590
46745
|
thread_id as threadId,
|
|
46591
|
-
parent_message_id as parentMessageId
|
|
46746
|
+
parent_message_id as parentMessageId,
|
|
46747
|
+
work_item_id as workItemId,
|
|
46748
|
+
work_item_role as workItemRole,
|
|
46749
|
+
upstream_message_id as upstreamMessageId
|
|
46592
46750
|
FROM mailbox WHERE id = ?`
|
|
46593
46751
|
);
|
|
46594
46752
|
const msg = stmt.get(messageId);
|
|
@@ -46598,11 +46756,12 @@ var replyMailbox = {
|
|
|
46598
46756
|
if (msg.toMailboxId !== myMailboxId) {
|
|
46599
46757
|
return `[replyMailbox] \u8BE5\u90AE\u4EF6\u4E0D\u5C5E\u4E8E\u4F60\u7684\u90AE\u7BB1\uFF0C\u65E0\u6CD5\u56DE\u590D`;
|
|
46600
46758
|
}
|
|
46601
|
-
if (msg.status !== "processing") {
|
|
46759
|
+
if (msg.status !== "pending" && msg.status !== "processing") {
|
|
46602
46760
|
return `[replyMailbox] \u90AE\u4EF6 ${messageId} \u5F53\u524D\u72B6\u6001\u4E3A ${msg.status}\uFF0C\u5DF2\u5904\u7406\u6216\u4E0D\u53EF\u56DE\u590D\uFF0C\u65E0\u9700\u91CD\u590D\u53D1\u9001`;
|
|
46603
46761
|
}
|
|
46762
|
+
const claimedFromPending = msg.status === "pending";
|
|
46604
46763
|
const changed = updateMailboxMessageStatus(messageId, "done", {
|
|
46605
|
-
fromStatus: "processing",
|
|
46764
|
+
fromStatus: ["pending", "processing"],
|
|
46606
46765
|
actorMailboxId: myMailboxId,
|
|
46607
46766
|
counterpartMailboxId: msg.fromMailboxId,
|
|
46608
46767
|
reason: "reply_mailbox"
|
|
@@ -46614,7 +46773,10 @@ var replyMailbox = {
|
|
|
46614
46773
|
originUserId: msg.originUserId,
|
|
46615
46774
|
originPlatform: msg.originPlatform,
|
|
46616
46775
|
threadId: msg.threadId || msg.id,
|
|
46617
|
-
parentMessageId: msg.id
|
|
46776
|
+
parentMessageId: msg.id,
|
|
46777
|
+
workItemId: msg.workItemId,
|
|
46778
|
+
workItemRole: msg.workItemRole === "executor_result" ? "downstream_reply" : void 0,
|
|
46779
|
+
upstreamMessageId: msg.upstreamMessageId
|
|
46618
46780
|
});
|
|
46619
46781
|
recordMailboxEvent({
|
|
46620
46782
|
messageId,
|
|
@@ -46625,11 +46787,13 @@ var replyMailbox = {
|
|
|
46625
46787
|
detail: {
|
|
46626
46788
|
replyPreview: content.slice(0, 200),
|
|
46627
46789
|
replyMessageId: replyMsg.id,
|
|
46628
|
-
threadId: replyMsg.threadId || msg.threadId || msg.id
|
|
46790
|
+
threadId: replyMsg.threadId || msg.threadId || msg.id,
|
|
46791
|
+
workItemId: msg.workItemId ?? null,
|
|
46792
|
+
upstreamMessageId: msg.upstreamMessageId ?? null
|
|
46629
46793
|
}
|
|
46630
46794
|
});
|
|
46631
|
-
const upstreamReminder = buildUpstreamReminder(myMailboxId, msg.fromMailboxId, msg.threadId || msg.id);
|
|
46632
|
-
return `[replyMailbox] \u5DF2\u6B63\u5F0F\u56DE\u590D\u90AE\u4EF6 ${messageId}\uFF0C\u56DE\u590D\u6D88\u606F ${replyMsg.id} \u5DF2\u53D1\u9001\u5230 ${msg.fromMailboxId} \u7684\u90AE\u7BB1\uFF08thread: ${replyMsg.threadId}\uFF09${upstreamReminder}`;
|
|
46795
|
+
const upstreamReminder = buildUpstreamReminder(myMailboxId, msg.fromMailboxId, msg.threadId || msg.id, msg.workItemId);
|
|
46796
|
+
return `[replyMailbox] ${claimedFromPending ? "\u5DF2\u9886\u53D6\u5E76" : "\u5DF2"}\u6B63\u5F0F\u56DE\u590D\u90AE\u4EF6 ${messageId}\uFF0C\u56DE\u590D\u6D88\u606F ${replyMsg.id} \u5DF2\u53D1\u9001\u5230 ${msg.fromMailboxId} \u7684\u90AE\u7BB1\uFF08thread: ${replyMsg.threadId}\uFF09${upstreamReminder}`;
|
|
46633
46797
|
}
|
|
46634
46798
|
};
|
|
46635
46799
|
|
|
@@ -46999,6 +47163,7 @@ ${workspacePath ? `
|
|
|
46999
47163
|
- mailbox_followup \u53EF\u4EE5\u8C03\u7528\u591A\u6B21\uFF0C\u7528\u4E8E\u7EBF\u7A0B\u5185\u6301\u7EED\u534F\u4F5C\uFF1B\u5B83\u4E0D\u4F1A\u7ED3\u675F\u539F\u6D88\u606F
|
|
47000
47164
|
- reply_mailbox \u8868\u793A\u201C\u5F53\u524D\u8FD9\u5C01\u6D88\u606F\u6211\u5DF2\u5F62\u6210\u6B63\u5F0F\u56DE\u590D\u201D\uFF0C\u4F1A\u7ED3\u675F\u8FD9\u5C01\u6D88\u606F\u7684\u5904\u7406
|
|
47001
47165
|
- discard_mailbox \u8868\u793A\u201C\u5F53\u524D\u8FD9\u5C01\u6D88\u606F\u65E0\u9700\u4E1A\u52A1\u56DE\u590D\u201D\uFF0C\u4F1A\u7ED3\u675F\u8FD9\u5C01\u6D88\u606F\u4F46\u4E0D\u4F1A\u5411\u53D1\u9001\u8005\u53D1\u9001\u56DE\u4FE1\uFF1B\u4E0D\u8981\u53EA\u7528\u81EA\u7136\u8BED\u8A00\u8BF4\u201C\u5FFD\u7565\u201D
|
|
47166
|
+
- \u6765\u81EA manager/CEO \u4E14\u5E26\u6709\u7528\u6237\u4E0A\u4E0B\u6587\u7684\u90AE\u4EF6\uFF0C\u5C24\u5176\u662F\u201C\u73B0\u5728\u600E\u4E48\u6837 / \u56DE\u4E86\u5417 / \u8FDB\u5EA6 / \u62A5\u544A\u51FA\u6765\u6CA1 / \u5361\u5728\u54EA / \u50AC\u4E00\u4E0B\u201D\u8FD9\u7C7B\u8FFD\u95EE\uFF0C\u5FC5\u987B\u4F7F\u7528 reply_mailbox \u76F4\u63A5\u56DE\u590D\u5F53\u524D\u72B6\u6001\u3001\u6700\u7EC8\u7ED3\u679C\u6216\u660E\u786E\u963B\u585E\u9879\uFF1B\u5373\u4F7F\u4F60\u8BA4\u4E3A\u5185\u5BB9\u91CD\u590D\uFF0C\u4E5F\u4E0D\u80FD\u7528 discard_mailbox \u9759\u9ED8\u5173\u95ED
|
|
47002
47167
|
- \u4E0D\u8981\u628A\u4E00\u6BB5\u6700\u7EC8\u56DE\u590D\u540C\u65F6\u5F53\u4F5C\u591A\u5C01\u90AE\u4EF6\u7684\u7B54\u6848\uFF1B\u6BCF\u5C01\u90AE\u4EF6\u90FD\u5FC5\u987B\u7528\u5B83\u81EA\u5DF1\u7684 message_id \u56DE\u590D
|
|
47003
47168
|
- \u5982\u679C\u53D1\u9001\u8005\u9700\u8981\u77E5\u9053\u5904\u7406\u7ED3\u8BBA\uFF0C\u5FC5\u987B\u7528 reply_mailbox\uFF1B\u5982\u679C\u53EA\u662F\u65E0\u9700\u56DE\u5E94\u7684\u56DE\u6267/\u91CD\u590D\u901A\u77E5\uFF0C\u624D\u7528 discard_mailbox
|
|
47004
47169
|
- \u5982\u679C\u9700\u8981\u4E3B\u52A8\u8054\u7CFB\u5176\u4ED6\u90E8\u95E8\u6210\u5458\uFF0C\u4F7F\u7528 department_communicate \u5DE5\u5177
|
|
@@ -47019,6 +47184,7 @@ ${workspacePath ? `
|
|
|
47019
47184
|
6. \u53EA\u6709\u5F53\u90AE\u4EF6\u660E\u786E\u8981\u6C42 Department Head \u4EB2\u81EA\u6267\u884C\u3001\u5F53\u524D\u90E8\u95E8\u6CA1\u6709\u53EF\u7528 Executor \u4E14\u77ED\u671F\u65E0\u6CD5\u521B\u5EFA\u3001\u6216 Executor \u660E\u786E\u5931\u8D25\u4E14\u4E0A\u6E38\u540C\u610F Head \u63A5\u7BA1\u65F6\uFF0CDepartment Head \u624D\u80FD\u4EB2\u81EA\u4F7F\u7528\u6267\u884C\u7C7B\u5DE5\u5177\u5B8C\u6210\u4E13\u4E1A\u6267\u884C\u3002
|
|
47020
47185
|
7. \u6536\u5230 Executor \u56DE\u4FE1\u540E\uFF0CDepartment Head \u5E94\u505A\u9A8C\u6536\u548C\u6C47\u603B\uFF1A\u5FC5\u8981\u65F6\u53EF\u4EE5\u68C0\u67E5\u5C11\u91CF\u5173\u952E\u8BC1\u636E\uFF0C\u4F46\u4E0D\u8981\u628A Executor \u7684\u5B8C\u6574\u6267\u884C\u804C\u8D23\u91CD\u65B0\u81EA\u5DF1\u505A\u4E00\u904D\u3002
|
|
47021
47186
|
8. Department Head \u9A8C\u6536 Executor \u7ED3\u679C\u540E\uFF0C\u5FC5\u987B\u56DE\u5230\u4E0A\u6E38\u8BF7\u6C42\u7EBF\u7A0B\u5411\u539F\u53D1\u9001\u8005\u540C\u6B65\u6700\u7EC8\u7ED3\u8BBA\u3002\u82E5\u4E0A\u6E38\u662F manager/CEO\uFF0C\u4F7F\u7528\u539F manager \u90AE\u4EF6\u7684 message_id \u8C03\u7528 reply_mailbox \u6216 mailbox_followup\uFF1B\u4E0D\u8981\u53EA\u628A\u201C\u9A8C\u6536\u901A\u8FC7/\u5B8C\u6210\u6C47\u62A5\u201D\u56DE\u590D\u7ED9 Executor\uFF0C\u5426\u5219 CEO \u548C\u7528\u6237\u4E0D\u4F1A\u6536\u5230\u7ED3\u679C\u3002
|
|
47187
|
+
9. \u5982\u679C\u4E0A\u6E38 manager/CEO \u540E\u7EED\u50AC\u95EE\u540C\u4E00\u7EBF\u7A0B\uFF0C\u5373\u4F7F\u4F60\u5DF2\u7ECF\u638C\u63E1\u6700\u7EC8\u62A5\u544A\uFF0C\u4E5F\u8981\u628A\u6700\u7EC8\u62A5\u544A\u6216\u7B80\u660E\u72B6\u6001\u56DE\u7ED9 manager/CEO\uFF1B\u50AC\u95EE\u4E0D\u662F\u53EF\u4E22\u5F03\u901A\u77E5\u3002
|
|
47022
47188
|
</Department Head Delegation Rules>
|
|
47023
47189
|
|
|
47024
47190
|
<Task Execution>
|
|
@@ -51989,7 +52155,7 @@ var systemRoutes = new Hono2();
|
|
|
51989
52155
|
var startTime = Date.now();
|
|
51990
52156
|
systemRoutes.get("/system/info", (c) => {
|
|
51991
52157
|
return c.json({
|
|
51992
|
-
version: true ? "1.8.
|
|
52158
|
+
version: true ? "1.8.37" : "unknown",
|
|
51993
52159
|
uptime: Math.floor((Date.now() - startTime) / 1e3),
|
|
51994
52160
|
env: process.env.NODE_ENV || "development",
|
|
51995
52161
|
nodeVersion: process.version
|