duclaw-cli 1.8.18 → 1.8.19

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 CHANGED
@@ -30242,7 +30242,7 @@ function printHelp() {
30242
30242
  `);
30243
30243
  }
30244
30244
  function printVersion() {
30245
- console.log(`duclaw-cli v${true ? "1.8.18" : "unknown"}`);
30245
+ console.log(`duclaw-cli v${true ? "1.8.19" : "unknown"}`);
30246
30246
  }
30247
30247
  function getDuclawTemplate() {
30248
30248
  return {
@@ -46098,7 +46098,7 @@ var saveResultToFile = (job, cronResp) => {
46098
46098
  var DESCRIPTION38 = `
46099
46099
  \u67E5\u770B\u4F60\u7684\u90AE\u7BB1\u4E2D\u6240\u6709\u5F85\u5904\u7406\u90AE\u4EF6\u7684\u6458\u8981\u5217\u8868\u3002
46100
46100
 
46101
- \u8FD4\u56DE\u6BCF\u5C01\u90AE\u4EF6\u7684\uFF1Aid\u3001\u53D1\u9001\u8005\u3001\u53D1\u9001\u65F6\u95F4\u3001\u5185\u5BB9\u6458\u8981\uFF08\u524D100\u5B57\uFF09\u3002
46101
+ \u8FD4\u56DE\u6BCF\u5C01\u90AE\u4EF6\u7684\uFF1Aid\u3001\u53D1\u9001\u8005\u3001\u53D1\u9001\u65F6\u95F4\u3001\u72B6\u6001\u3001\u5185\u5BB9\u6458\u8981\uFF08\u524D100\u5B57\uFF09\u3002
46102
46102
  \u4F60\u5E94\u8BE5\u5148\u8C03\u7528\u6B64\u5DE5\u5177\u4E86\u89E3\u5F53\u524D\u6709\u54EA\u4E9B\u90AE\u4EF6\uFF0C\u518D\u6839\u636E\u65F6\u6548\u6027\u548C\u91CD\u8981\u6027\u51B3\u5B9A\u4F18\u5148\u5904\u7406\u54EA\u5C01\u3002
46103
46103
 
46104
46104
  \u4F7F\u7528\u6D41\u7A0B\uFF1A
@@ -46123,9 +46123,9 @@ var listMailbox = {
46123
46123
  const myMailboxId = userRequest.departmentAgentId;
46124
46124
  const db3 = createSqliteDB();
46125
46125
  const stmt = db3.prepare(
46126
- `SELECT id, from_mailbox_id as fromMailboxId, content, send_time as sendTime
46126
+ `SELECT id, from_mailbox_id as fromMailboxId, content, send_time as sendTime, status
46127
46127
  FROM mailbox
46128
- WHERE to_mailbox_id = ? AND status = 'processing'
46128
+ WHERE to_mailbox_id = ? AND status in ('pending', 'processing')
46129
46129
  ORDER BY send_time ASC`
46130
46130
  );
46131
46131
  const msgs = stmt.all(myMailboxId);
@@ -46157,6 +46157,7 @@ var listMailbox = {
46157
46157
  return `[${i + 1}] id: ${msg.id}
46158
46158
  \u6765\u81EA: ${msg.fromMailboxId}
46159
46159
  \u65F6\u95F4: ${time}
46160
+ \u72B6\u6001: ${msg.status}
46160
46161
  \u6458\u8981: ${preview2}`;
46161
46162
  }).join("\n\n");
46162
46163
  return `[listMailbox] \u4F60\u6709 ${msgs.length} \u5C01\u5F85\u5904\u7406\u90AE\u4EF6\uFF1A
@@ -46170,7 +46171,7 @@ var DESCRIPTION39 = `
46170
46171
  \u83B7\u53D6\u6307\u5B9A\u90AE\u4EF6\u7684\u5B8C\u6574\u5185\u5BB9\u3002
46171
46172
 
46172
46173
  \u5728 list_mailbox \u67E5\u770B\u90AE\u4EF6\u5217\u8868\u540E\uFF0C\u4F7F\u7528\u6B64\u5DE5\u5177\u83B7\u53D6\u4F60\u60F3\u8981\u5904\u7406\u7684\u90AE\u4EF6\u7684\u5B8C\u6574\u5185\u5BB9\u3002
46173
- \u4F20\u5165\u90AE\u4EF6 id \u5373\u53EF\u83B7\u53D6\u5B8C\u6574\u7684\u90AE\u4EF6\u6B63\u6587\u3002
46174
+ \u4F20\u5165\u90AE\u4EF6 id \u5373\u53EF\u83B7\u53D6\u5B8C\u6574\u7684\u90AE\u4EF6\u6B63\u6587\u3002\u5982\u679C\u90AE\u4EF6\u4ECD\u662F pending\uFF0C\u672C\u5DE5\u5177\u4F1A\u5148\u9886\u53D6\u8FD9\u5C01\u90AE\u4EF6\uFF0C\u5C06\u5B83\u6807\u8BB0\u4E3A processing\u3002
46174
46175
 
46175
46176
  \u53C2\u6570\uFF1A
46176
46177
  - message_id: \u90AE\u4EF6\u7684 id\uFF08\u4ECE list_mailbox \u4E2D\u83B7\u53D6\uFF09
@@ -46213,6 +46214,20 @@ var getMailbox = {
46213
46214
  if (msg.toMailboxId !== userRequest.departmentAgentId) {
46214
46215
  return `[getMailbox] \u8BE5\u90AE\u4EF6\u4E0D\u5C5E\u4E8E\u4F60\u7684\u90AE\u7BB1`;
46215
46216
  }
46217
+ if (msg.status === "pending") {
46218
+ const claimed = updateMailboxMessageStatus(msg.id, "processing", {
46219
+ fromStatus: "pending",
46220
+ actorMailboxId: userRequest.departmentAgentId,
46221
+ counterpartMailboxId: msg.fromMailboxId,
46222
+ reason: "get_mailbox_claim"
46223
+ });
46224
+ if (!claimed) {
46225
+ return `[getMailbox] \u90AE\u4EF6 ${messageId} \u9886\u53D6\u5931\u8D25\uFF0C\u72B6\u6001\u53EF\u80FD\u5DF2\u88AB\u5176\u4ED6\u6D41\u7A0B\u6539\u53D8\uFF0C\u8BF7\u91CD\u65B0\u8C03\u7528 list_mailbox \u67E5\u770B\u3002`;
46226
+ }
46227
+ msg.status = "processing";
46228
+ } else if (msg.status !== "processing") {
46229
+ return `[getMailbox] \u90AE\u4EF6 ${messageId} \u5F53\u524D\u72B6\u6001\u4E3A ${msg.status}\uFF0C\u4E0D\u53EF\u9886\u53D6\u6216\u5904\u7406\u3002`;
46230
+ }
46216
46231
  recordMailboxEvent({
46217
46232
  messageId: msg.id,
46218
46233
  mailboxId: msg.toMailboxId,
@@ -46446,7 +46461,7 @@ var wakeDepartmentAgent = async (mailboxId, msgIds) => {
46446
46461
  requestId: msgIds[0],
46447
46462
  departmentAgentId: mailboxId,
46448
46463
  workspacePath,
46449
- content: `\u4F60\u7684\u90AE\u7BB1\u4E2D\u6709 ${msgIds.length} \u5C01\u65B0\u90AE\u4EF6\u3002\u8BF7\u4F7F\u7528 list_mailbox \u67E5\u770B\u90AE\u4EF6\u5217\u8868\uFF0C\u6839\u636E\u91CD\u8981\u6027\u548C\u65F6\u6548\u6027\u51B3\u5B9A\u5904\u7406\u987A\u5E8F\uFF0C\u7136\u540E\u4F7F\u7528 get_mailbox \u83B7\u53D6\u90AE\u4EF6\u5185\u5BB9\uFF0C\u5B8C\u6210\u5DE5\u4F5C\u540E\u4F7F\u7528 reply_mailbox \u56DE\u590D\u3002`
46464
+ content: `\u4F60\u7684\u90AE\u7BB1\u4E2D\u6709 ${msgIds.length} \u5C01\u5F85\u5904\u7406\u90AE\u4EF6\u3002\u8BF7\u4F7F\u7528 list_mailbox \u67E5\u770B\u90AE\u4EF6\u5217\u8868\uFF0C\u6839\u636E\u91CD\u8981\u6027\u548C\u65F6\u6548\u6027\u9009\u62E9\u4E00\u5C01\u90AE\u4EF6\uFF0C\u518D\u7528 get_mailbox \u9886\u53D6\u5E76\u8BFB\u53D6\u8BE5\u90AE\u4EF6\u3002\u5B8C\u6210\u8FD9\u5C01\u90AE\u4EF6\u540E\u5FC5\u987B\u4F7F\u7528 reply_mailbox \u56DE\u590D\u5E76\u7ED3\u675F\u5B83\uFF0C\u7136\u540E\u7EE7\u7EED list_mailbox \u51B3\u5B9A\u4E0B\u4E00\u5C01\u8981\u5904\u7406\u6216\u5FFD\u7565\u7684\u90AE\u4EF6\u3002`
46450
46465
  };
46451
46466
  const result = await agent(request);
46452
46467
  console.log(`[mailbox] department agent ${mailboxId} \u5904\u7406\u5B8C\u6210, alreadySent=${result.alreadySent}`);
@@ -46563,9 +46578,6 @@ var pollMailbox = async () => {
46563
46578
  const mailBoxMsgs = selectStmt.all("pending");
46564
46579
  if (mailBoxMsgs.length === 0) return;
46565
46580
  console.log(`[mailbox] \u62C9\u53D6\u5230 ${mailBoxMsgs.length} \u6761\u5F85\u5904\u7406\u6D88\u606F`);
46566
- for (const msg of mailBoxMsgs) {
46567
- markMailboxStatus(msg.id, "processing");
46568
- }
46569
46581
  const grouped = /* @__PURE__ */ new Map();
46570
46582
  for (const msg of mailBoxMsgs) {
46571
46583
  const group = grouped.get(msg.toMailboxId) || [];
@@ -46577,6 +46589,7 @@ var pollMailbox = async () => {
46577
46589
  for (const msg of ceoMsgs) {
46578
46590
  console.log(`[mailbox] \u6536\u5230 department agent \u56DE\u4FE1\uFF08\u6765\u81EA ${msg.fromMailboxId}\uFF09\uFF0C\u6B63\u5728\u5524\u9192\u4E3B agent...`);
46579
46591
  try {
46592
+ markMailboxStatus(msg.id, "processing");
46580
46593
  await handleCeoReply(msg);
46581
46594
  markMailboxStatus(msg.id, "done");
46582
46595
  } catch (err) {
@@ -46661,9 +46674,9 @@ ${workspacePath ? `
46661
46674
  <Mailbox Workflow>
46662
46675
  \u4F60\u901A\u8FC7\u90AE\u7BB1\u7CFB\u7EDF\u4E0E\u5176\u4ED6 agent \u901A\u4FE1\u3002\u6536\u5230\u65B0\u90AE\u4EF6\u901A\u77E5\u540E\uFF0C\u6309\u4EE5\u4E0B\u6D41\u7A0B\u5904\u7406\uFF1A
46663
46676
 
46664
- 1. \u8C03\u7528 list_mailbox \u67E5\u770B\u90AE\u7BB1\u4E2D\u6240\u6709\u5F85\u5904\u7406\u90AE\u4EF6\u7684\u6458\u8981
46677
+ 1. \u8C03\u7528 list_mailbox \u67E5\u770B\u90AE\u7BB1\u4E2D\u6240\u6709\u5F85\u5904\u7406\u90AE\u4EF6\u7684\u6458\u8981\uFF0C\u5305\u62EC pending \u548C processing
46665
46678
  2. \u6839\u636E\u90AE\u4EF6\u7684\u65F6\u6548\u6027\u548C\u91CD\u8981\u6027\uFF0C\u51B3\u5B9A\u4F18\u5148\u5904\u7406\u54EA\u5C01
46666
- 3. \u8C03\u7528 get_mailbox(message_id) \u83B7\u53D6\u4F60\u8981\u5904\u7406\u7684\u90AE\u4EF6\u5B8C\u6574\u5185\u5BB9
46679
+ 3. \u8C03\u7528 get_mailbox(message_id) \u9886\u53D6\u5E76\u83B7\u53D6\u4F60\u8981\u5904\u7406\u7684\u90AE\u4EF6\u5B8C\u6574\u5185\u5BB9
46667
46680
  4. \u4F7F\u7528\u4F60\u7684\u4E13\u4E1A\u80FD\u529B\u548C\u5DE5\u5177\u5B8C\u6210\u90AE\u4EF6\u4E2D\u7684\u4EFB\u52A1
46668
46681
  5. \u5904\u7406\u4E2D\u5982\u679C\u9700\u8981\u540C\u6B65\u8FDB\u5C55\u3001\u8865\u5145\u90E8\u5206\u7ED3\u679C\u6216\u4E3B\u52A8\u8FFD\u95EE\uFF0C\u8C03\u7528 mailbox_followup(message_id, content)
46669
46682
  6. \u5F53\u4F60\u5BF9\u5F53\u524D\u6D88\u606F\u5F62\u6210\u6B63\u5F0F\u5904\u7406\u7ED3\u8BBA\u540E\uFF0C\u8C03\u7528 reply_mailbox(message_id, content) \u56DE\u590D\u8BE5\u90AE\u4EF6
@@ -46672,6 +46685,7 @@ ${workspacePath ? `
46672
46685
  \u6CE8\u610F\u4E8B\u9879\uFF1A
46673
46686
  - 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
46674
46687
  - 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
46688
+ - \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
46675
46689
  - \u5982\u679C\u90AE\u4EF6\u4E2D\u7684\u4EFB\u52A1\u4F60\u5DF2\u7ECF\u5B8C\u6210\u6216\u4E0D\u9700\u8981\u5904\u7406\uFF0C\u53EF\u4EE5\u7528 reply_mailbox \u7B80\u77ED\u56DE\u590D\u8BF4\u660E\u539F\u56E0\uFF08\u5982"\u5DF2\u5B8C\u6210\uFF0C\u65E0\u9700\u5904\u7406"\uFF09\uFF0C\u7136\u540E\u7EE7\u7EED\u4E0B\u4E00\u5C01
46676
46690
  - \u5982\u679C\u9700\u8981\u4E3B\u52A8\u8054\u7CFB\u5176\u4ED6\u90E8\u95E8\u6210\u5458\uFF0C\u4F7F\u7528 department_communicate \u5DE5\u5177
46677
46691
  - \u5982\u679C\u4F60\u662F Department Head\uFF0C\u5904\u7406\u590D\u6742\u4EFB\u52A1\u524D\u53EF\u4EE5\u4F7F\u7528 department_member_list \u67E5\u770B\u672C\u90E8\u95E8\u5DF2\u6709\u6210\u5458\uFF0C\u5E76\u5728\u9700\u8981\u65F6\u4F7F\u7528 department_member_create \u521B\u5EFA Executor
@@ -51522,7 +51536,7 @@ var systemRoutes = new Hono2();
51522
51536
  var startTime = Date.now();
51523
51537
  systemRoutes.get("/system/info", (c) => {
51524
51538
  return c.json({
51525
- version: true ? "1.8.18" : "unknown",
51539
+ version: true ? "1.8.19" : "unknown",
51526
51540
  uptime: Math.floor((Date.now() - startTime) / 1e3),
51527
51541
  env: process.env.NODE_ENV || "development",
51528
51542
  nodeVersion: process.version