@xgjktech/xg_cwork_im 1.14.6 → 1.15.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/dist/src/dispatch-mentioned-reply.d.ts.map +1 -1
- package/dist/src/dispatch-mentioned-reply.js +34 -2
- package/dist/src/dispatch-mentioned-reply.js.map +1 -1
- package/dist/src/inbound-terminal-delivery.d.ts.map +1 -1
- package/dist/src/inbound-terminal-delivery.js +4 -1
- package/dist/src/inbound-terminal-delivery.js.map +1 -1
- package/dist/src/inbound-terminal-state.d.ts +2 -1
- package/dist/src/inbound-terminal-state.d.ts.map +1 -1
- package/dist/src/inbound-terminal-state.js +13 -22
- package/dist/src/inbound-terminal-state.js.map +1 -1
- package/dist/src/inbound-terminal-state.test.js +10 -0
- package/dist/src/inbound-terminal-state.test.js.map +1 -1
- package/dist/src/recommended-system-prompt.d.ts +1 -1
- package/dist/src/recommended-system-prompt.d.ts.map +1 -1
- package/dist/src/recommended-system-prompt.js +1 -1
- package/dist/src/recommended-system-prompt.js.map +1 -1
- package/dist/src/resource-file.d.ts +13 -0
- package/dist/src/resource-file.d.ts.map +1 -1
- package/dist/src/resource-file.js +104 -17
- package/dist/src/resource-file.js.map +1 -1
- package/dist/src/resource-file.test.d.ts +2 -0
- package/dist/src/resource-file.test.d.ts.map +1 -0
- package/dist/src/resource-file.test.js +64 -0
- package/dist/src/resource-file.test.js.map +1 -0
- package/dist/src/send-service.d.ts +2 -0
- package/dist/src/send-service.d.ts.map +1 -1
- package/dist/src/send-service.js +9 -5
- package/dist/src/send-service.js.map +1 -1
- package/dist/src/thinking-ws-progress.d.ts +24 -0
- package/dist/src/thinking-ws-progress.d.ts.map +1 -0
- package/dist/src/thinking-ws-progress.js +45 -0
- package/dist/src/thinking-ws-progress.js.map +1 -0
- package/dist/src/thinking-ws-progress.test.d.ts +2 -0
- package/dist/src/thinking-ws-progress.test.d.ts.map +1 -0
- package/dist/src/thinking-ws-progress.test.js +41 -0
- package/dist/src/thinking-ws-progress.test.js.map +1 -0
- package/dist/src/user-facing-errors.d.ts +20 -0
- package/dist/src/user-facing-errors.d.ts.map +1 -0
- package/dist/src/user-facing-errors.js +105 -0
- package/dist/src/user-facing-errors.js.map +1 -0
- package/dist/src/user-facing-errors.test.d.ts +2 -0
- package/dist/src/user-facing-errors.test.d.ts.map +1 -0
- package/dist/src/user-facing-errors.test.js +62 -0
- package/dist/src/user-facing-errors.test.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 面向 IM 用户的错误文案:只描述发生了什么,不包含操作建议。
|
|
3
|
+
*/
|
|
4
|
+
import { summarizeMediaRef } from "./resource-file.js";
|
|
5
|
+
function errorMessageLower(context) {
|
|
6
|
+
return (context?.errorMessage ?? "").trim().toLowerCase();
|
|
7
|
+
}
|
|
8
|
+
export function isAttachmentBlockedErrorMessage(message) {
|
|
9
|
+
const lower = message.trim().toLowerCase();
|
|
10
|
+
return (lower.includes("blocked attachment") ||
|
|
11
|
+
lower.includes("outside allowed roots") ||
|
|
12
|
+
lower.includes("not under an allowed directory") ||
|
|
13
|
+
(lower.includes("skipping attachment") && lower.includes("blocked")));
|
|
14
|
+
}
|
|
15
|
+
export function isContextOverflowErrorMessage(message) {
|
|
16
|
+
const lower = message.trim().toLowerCase();
|
|
17
|
+
return (lower.includes("context overflow") ||
|
|
18
|
+
lower.includes("context-overflow") ||
|
|
19
|
+
lower.includes("overflowtokens") ||
|
|
20
|
+
lower.includes("overflow tokens") ||
|
|
21
|
+
lower.includes("prompt too large") ||
|
|
22
|
+
lower.includes("too large for the model") ||
|
|
23
|
+
lower.includes("too large for this model") ||
|
|
24
|
+
lower.includes("promptbudget") ||
|
|
25
|
+
(lower.includes("precheck") && lower.includes("overflow")));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 根据终态与观测到的原始错误,生成发给用户的中文说明(仅陈述事实)。
|
|
29
|
+
*/
|
|
30
|
+
export function buildTerminalUserMessage(state, context) {
|
|
31
|
+
const errLower = errorMessageLower(context);
|
|
32
|
+
switch (state) {
|
|
33
|
+
case "precheck_error":
|
|
34
|
+
return "当前对话上下文过大,本轮未能调用模型。";
|
|
35
|
+
case "compaction_failed":
|
|
36
|
+
return "系统已尝试压缩对话历史,但仍未生成回复。";
|
|
37
|
+
case "timeout":
|
|
38
|
+
return "当前请求处理超时。";
|
|
39
|
+
case "no_reply":
|
|
40
|
+
if (context?.noReplyCause === "zero_deliver") {
|
|
41
|
+
return "消息已收到,本轮未向 IM 发送任何回复内容。";
|
|
42
|
+
}
|
|
43
|
+
return "消息已收到,但这一轮没有生成回复。";
|
|
44
|
+
case "runtime_error":
|
|
45
|
+
if (isAttachmentBlockedErrorMessage(errLower)) {
|
|
46
|
+
return ("您发送的图片或附件未能加载(系统路径访问受限),模型可能看不到附件内容;文本消息已收到。");
|
|
47
|
+
}
|
|
48
|
+
if (isContextOverflowErrorMessage(errLower)) {
|
|
49
|
+
return "当前对话上下文过大,处理失败。";
|
|
50
|
+
}
|
|
51
|
+
return "当前请求处理时出现异常。";
|
|
52
|
+
case "delivery_failed":
|
|
53
|
+
return "回复已生成,但发送到 IM 时失败。";
|
|
54
|
+
case "cancelled":
|
|
55
|
+
return "当前请求已取消。";
|
|
56
|
+
case "superseded":
|
|
57
|
+
return "当前请求已被更新的处理覆盖。";
|
|
58
|
+
case "success":
|
|
59
|
+
return "";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 出站发文件失败时,将技术错误转为用户可读说明(不含实现细节与操作建议)。
|
|
64
|
+
*/
|
|
65
|
+
export function formatUserFacingMediaDeliverError(err, mediaRefs = []) {
|
|
66
|
+
const raw = err instanceof Error ? err.message : String(err);
|
|
67
|
+
const lower = raw.toLowerCase();
|
|
68
|
+
const ref = mediaRefs.find((u) => u.trim())?.trim() ?? extractPathFromMediaError(raw);
|
|
69
|
+
const shortRef = ref ? summarizeMediaRef(ref, 120) : undefined;
|
|
70
|
+
if (lower.includes("无法读取媒体") || lower.includes("unsupported ref")) {
|
|
71
|
+
if (shortRef && looksLikeWorkspaceRelativePath(shortRef)) {
|
|
72
|
+
return `未能将文件发送到 IM:找不到或无法读取「${shortRef}」。`;
|
|
73
|
+
}
|
|
74
|
+
return "未能将文件发送到 IM:找不到或无法读取附件路径。";
|
|
75
|
+
}
|
|
76
|
+
if (lower.includes("enoent") || lower.includes("no such file")) {
|
|
77
|
+
return shortRef
|
|
78
|
+
? `未能将文件发送到 IM:本地找不到「${shortRef}」。`
|
|
79
|
+
: "未能将文件发送到 IM:本地找不到对应文件。";
|
|
80
|
+
}
|
|
81
|
+
if (lower.includes("eacces") || lower.includes("permission denied")) {
|
|
82
|
+
return "未能将文件发送到 IM:没有读取该文件的权限。";
|
|
83
|
+
}
|
|
84
|
+
if (lower.includes("abort") || lower.includes("timeout") || lower.includes("timed out")) {
|
|
85
|
+
return "未能将文件发送到 IM:读取或上传超时。";
|
|
86
|
+
}
|
|
87
|
+
if (lower.includes("axios") || lower.includes("network") || lower.includes("econnrefused")) {
|
|
88
|
+
return "未能将文件发送到 IM:网络或上传服务异常。";
|
|
89
|
+
}
|
|
90
|
+
return "未能将文件发送到 IM。";
|
|
91
|
+
}
|
|
92
|
+
function looksLikeWorkspaceRelativePath(ref) {
|
|
93
|
+
const t = ref.trim();
|
|
94
|
+
return (t.startsWith("project/") ||
|
|
95
|
+
t.startsWith("./project/") ||
|
|
96
|
+
t.startsWith("/project/") ||
|
|
97
|
+
t.startsWith("xg-cwork-im/") ||
|
|
98
|
+
t.startsWith("./xg") ||
|
|
99
|
+
t.startsWith("/workspace/"));
|
|
100
|
+
}
|
|
101
|
+
function extractPathFromMediaError(raw) {
|
|
102
|
+
const m = /:\s*(\S+)\s*$/.exec(raw.trim());
|
|
103
|
+
return m?.[1];
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=user-facing-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-facing-errors.js","sourceRoot":"","sources":["../../src/user-facing-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-facing-errors.test.d.ts","sourceRoot":"","sources":["../../src/user-facing-errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import { describe, it } from "node:test";
|
|
3
|
+
import { buildTerminalUserMessage, formatUserFacingMediaDeliverError, isAttachmentBlockedErrorMessage, isContextOverflowErrorMessage, } from "./user-facing-errors.js";
|
|
4
|
+
describe("isContextOverflowErrorMessage", () => {
|
|
5
|
+
it("detects context-overflow-precheck log style", () => {
|
|
6
|
+
assert.equal(isContextOverflowErrorMessage("[context-overflow-precheck] overflowTokens=72970 estimatedPromptTokens=328586"), true);
|
|
7
|
+
});
|
|
8
|
+
});
|
|
9
|
+
describe("isAttachmentBlockedErrorMessage", () => {
|
|
10
|
+
it("detects blocked attachment roots", () => {
|
|
11
|
+
assert.equal(isAttachmentBlockedErrorMessage("Blocked attachment path outside allowed roots: ./project/a.png"), true);
|
|
12
|
+
assert.equal(isAttachmentBlockedErrorMessage("Local media path is not under an allowed directory: /Users/x/ws/project/a.png"), true);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
describe("buildTerminalUserMessage", () => {
|
|
16
|
+
it("refines runtime_error for attachment block", () => {
|
|
17
|
+
const msg = buildTerminalUserMessage("runtime_error", {
|
|
18
|
+
errorMessage: "Blocked attachment path outside allowed roots: ./project/x.png",
|
|
19
|
+
});
|
|
20
|
+
assert.ok(msg.includes("附件未能加载"));
|
|
21
|
+
assert.ok(!msg.includes("Blocked attachment"));
|
|
22
|
+
});
|
|
23
|
+
it("refines runtime_error for context overflow", () => {
|
|
24
|
+
const msg = buildTerminalUserMessage("runtime_error", {
|
|
25
|
+
errorMessage: "[context-overflow-precheck] overflowTokens=100",
|
|
26
|
+
});
|
|
27
|
+
assert.ok(msg.includes("上下文过大"));
|
|
28
|
+
});
|
|
29
|
+
it("refines no_reply for zero_deliver", () => {
|
|
30
|
+
const msg = buildTerminalUserMessage("no_reply", { noReplyCause: "zero_deliver" });
|
|
31
|
+
assert.ok(msg.includes("未向 IM 发送"));
|
|
32
|
+
assert.ok(!msg.includes("请"));
|
|
33
|
+
});
|
|
34
|
+
it("does not include operational suggestions in terminal copy", () => {
|
|
35
|
+
const cases = [
|
|
36
|
+
buildTerminalUserMessage("runtime_error"),
|
|
37
|
+
buildTerminalUserMessage("precheck_error"),
|
|
38
|
+
buildTerminalUserMessage("no_reply"),
|
|
39
|
+
];
|
|
40
|
+
for (const msg of cases) {
|
|
41
|
+
assert.ok(!/请(稍后|发送|联系|确认|新开|换)/.test(msg));
|
|
42
|
+
assert.ok(!msg.includes("管理员"));
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe("formatUserFacingMediaDeliverError", () => {
|
|
47
|
+
it("maps workspace-relative media read failure", () => {
|
|
48
|
+
const msg = formatUserFacingMediaDeliverError(new Error("[cwork_im] 无法读取媒体(请使用 http(s)...): project/202607/207/artifacts/daily/summary.md"), ["project/202607/207/artifacts/daily/summary.md"]);
|
|
49
|
+
assert.ok(msg.includes("未能将文件发送到 IM"));
|
|
50
|
+
assert.ok(msg.includes("project/"));
|
|
51
|
+
assert.ok(!msg.includes("[cwork_im]"));
|
|
52
|
+
assert.ok(!msg.includes("http(s)"));
|
|
53
|
+
assert.ok(!/请(稍后|发送|联系|确认)/.test(msg));
|
|
54
|
+
});
|
|
55
|
+
it("maps enoent", () => {
|
|
56
|
+
const msg = formatUserFacingMediaDeliverError(new Error("ENOENT: no such file"), [
|
|
57
|
+
"./project/a.md",
|
|
58
|
+
]);
|
|
59
|
+
assert.ok(msg.includes("找不到"));
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=user-facing-errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-facing-errors.test.js","sourceRoot":"","sources":["../../src/user-facing-errors.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xgjktech/xg_cwork_im",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.1",
|
|
4
4
|
"description": "XG CWork IM channel plugin for OpenClaw",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bot",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"build": "tsc -p tsconfig.json",
|
|
23
23
|
"type-check": "tsc -p tsconfig.json --noEmit",
|
|
24
24
|
"lint": "tsc -p tsconfig.json --noEmit",
|
|
25
|
-
"test": "npm run build && node --test dist/src/inbound-terminal-state.test.js dist/src/deliver-text.test.js dist/src/agent-context-types.test.js dist/src/block-streaming-config.test.js dist/src/per-message-fallback-notice.test.js",
|
|
25
|
+
"test": "npm run build && node --test dist/src/inbound-terminal-state.test.js dist/src/user-facing-errors.test.js dist/src/deliver-text.test.js dist/src/agent-context-types.test.js dist/src/block-streaming-config.test.js dist/src/per-message-fallback-notice.test.js dist/src/thinking-ws-progress.test.js dist/src/resource-file.test.js",
|
|
26
26
|
"install:prod": "npm install --omit=dev",
|
|
27
27
|
"prepublishOnly": "npm run build"
|
|
28
28
|
},
|