duclaw-cli 1.6.0 → 1.7.1
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/README.md +8 -0
- package/dist/bundle.js +51 -4
- package/dist/main.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -132,3 +132,11 @@ pnpm build
|
|
|
132
132
|
## License
|
|
133
133
|
|
|
134
134
|
Private
|
|
135
|
+
|
|
136
|
+
## 打赏
|
|
137
|
+
|
|
138
|
+
如果 Duclaw 对你有帮助,欢迎请作者喝杯咖啡 ☕
|
|
139
|
+
|
|
140
|
+
<p align="center">
|
|
141
|
+
<img src="https://public-img0.oss-cn-beijing.aliyuncs.com/a26aee81e6e5ba739ebb7abfd9dadfad.jpg" alt="打赏二维码" width="300">
|
|
142
|
+
</p>
|
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.
|
|
30245
|
+
console.log(`duclaw-cli v${true ? "1.7.1" : "unknown"}`);
|
|
30246
30246
|
}
|
|
30247
30247
|
function getDuclawTemplate() {
|
|
30248
30248
|
return {
|
|
@@ -35445,7 +35445,40 @@ var getMessages = async (storage, userId, limit = 100, date, cronTitle) => {
|
|
|
35445
35445
|
start = later;
|
|
35446
35446
|
}
|
|
35447
35447
|
}
|
|
35448
|
-
return data.slice(start);
|
|
35448
|
+
return sanitizeMessages(data.slice(start));
|
|
35449
|
+
};
|
|
35450
|
+
var sanitizeMessages = (messages) => {
|
|
35451
|
+
if (messages.length === 0) return messages;
|
|
35452
|
+
const result = [];
|
|
35453
|
+
for (let i = 0; i < messages.length; i++) {
|
|
35454
|
+
const msg = messages[i];
|
|
35455
|
+
if (!msg.content || msg.content.length === 0) continue;
|
|
35456
|
+
if (msg.role === "assistant") {
|
|
35457
|
+
const toolUses = msg.content.filter((b) => b.type === "tool_use");
|
|
35458
|
+
if (toolUses.length > 0) {
|
|
35459
|
+
const next = messages[i + 1];
|
|
35460
|
+
if (!next || next.role !== "user") {
|
|
35461
|
+
console.warn(`[sanitize] \u53D1\u73B0 assistant tool_use \u65E0\u5BF9\u5E94 tool_result\uFF0C\u622A\u65AD\u6D88\u606F\u5386\u53F2\uFF08index=${i}\uFF09`);
|
|
35462
|
+
break;
|
|
35463
|
+
}
|
|
35464
|
+
const resultIds = new Set(
|
|
35465
|
+
next.content.filter((b) => b.type === "tool_result").map((b) => b.tool_use_id)
|
|
35466
|
+
);
|
|
35467
|
+
const allMatched = toolUses.every((tu) => resultIds.has(tu.id));
|
|
35468
|
+
if (!allMatched) {
|
|
35469
|
+
console.warn(`[sanitize] tool_use/tool_result id \u4E0D\u5339\u914D\uFF0C\u622A\u65AD\u6D88\u606F\u5386\u53F2\uFF08index=${i}\uFF09`);
|
|
35470
|
+
break;
|
|
35471
|
+
}
|
|
35472
|
+
}
|
|
35473
|
+
}
|
|
35474
|
+
const prev = result[result.length - 1];
|
|
35475
|
+
if (prev && prev.role === msg.role) {
|
|
35476
|
+
prev.content = [...prev.content, ...msg.content];
|
|
35477
|
+
} else {
|
|
35478
|
+
result.push({ ...msg, content: [...msg.content] });
|
|
35479
|
+
}
|
|
35480
|
+
}
|
|
35481
|
+
return result;
|
|
35449
35482
|
};
|
|
35450
35483
|
var addMessage = async (storage, userId, message, date, cronTitle) => {
|
|
35451
35484
|
let key = `mem:${userId}`;
|
|
@@ -42281,9 +42314,23 @@ ${content}
|
|
|
42281
42314
|
teamAgentId: "",
|
|
42282
42315
|
content: replyContent
|
|
42283
42316
|
};
|
|
42284
|
-
const
|
|
42317
|
+
const config2 = getDefaultAgentConfig();
|
|
42318
|
+
const mainAgent = createAgent(config2);
|
|
42285
42319
|
const result = await mainAgent(request);
|
|
42286
42320
|
console.log(`[mailbox] \u4E3B agent \u5904\u7406\u5B8C ${fromMailboxId} \u7684\u56DE\u4FE1, alreadySent=${result.alreadySent}`);
|
|
42321
|
+
if (!result.alreadySent && result.content && config2.channelPlugin) {
|
|
42322
|
+
try {
|
|
42323
|
+
await config2.channelPlugin.outbound.sendText({
|
|
42324
|
+
cfg: {},
|
|
42325
|
+
to: origin.originUserId,
|
|
42326
|
+
text: result.content,
|
|
42327
|
+
accountId: replyMsg.id
|
|
42328
|
+
});
|
|
42329
|
+
console.log(`[mailbox] \u4E3B agent \u672A\u4E3B\u52A8\u53D1\u9001\uFF0C\u5DF2\u901A\u8FC7\u6E20\u9053\u8865\u53D1\u7ED3\u679C\u7ED9\u7528\u6237 ${origin.originUserId}`);
|
|
42330
|
+
} catch (sendErr) {
|
|
42331
|
+
console.error(`[mailbox] \u8865\u53D1\u6D88\u606F\u5931\u8D25:`, sendErr);
|
|
42332
|
+
}
|
|
42333
|
+
}
|
|
42287
42334
|
};
|
|
42288
42335
|
var wakeTeamAgent = async (mailboxId, msgIds) => {
|
|
42289
42336
|
try {
|
|
@@ -46296,7 +46343,7 @@ var systemRoutes = new Hono2();
|
|
|
46296
46343
|
var startTime = Date.now();
|
|
46297
46344
|
systemRoutes.get("/system/info", (c) => {
|
|
46298
46345
|
return c.json({
|
|
46299
|
-
version: true ? "1.
|
|
46346
|
+
version: true ? "1.7.1" : "unknown",
|
|
46300
46347
|
uptime: Math.floor((Date.now() - startTime) / 1e3),
|
|
46301
46348
|
env: process.env.NODE_ENV || "development",
|
|
46302
46349
|
nodeVersion: process.version
|