@xgjktech/xg_cwork_im 1.11.5 → 1.11.7

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.
Files changed (84) hide show
  1. package/README.md +17 -6
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +12 -7
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/agent-context-types.d.ts +33 -0
  6. package/dist/src/agent-context-types.d.ts.map +1 -0
  7. package/dist/src/agent-context-types.js +26 -0
  8. package/dist/src/agent-context-types.js.map +1 -0
  9. package/dist/src/apply-sync-mapping.d.ts +17 -0
  10. package/dist/src/apply-sync-mapping.d.ts.map +1 -0
  11. package/dist/src/apply-sync-mapping.js +86 -0
  12. package/dist/src/apply-sync-mapping.js.map +1 -0
  13. package/dist/src/auth.d.ts +2 -2
  14. package/dist/src/auth.d.ts.map +1 -1
  15. package/dist/src/auth.js +18 -12
  16. package/dist/src/auth.js.map +1 -1
  17. package/dist/src/build-project-prompt.d.ts +28 -0
  18. package/dist/src/build-project-prompt.d.ts.map +1 -0
  19. package/dist/src/build-project-prompt.js +86 -0
  20. package/dist/src/build-project-prompt.js.map +1 -0
  21. package/dist/src/channel-config.d.ts +256 -0
  22. package/dist/src/channel-config.d.ts.map +1 -0
  23. package/dist/src/channel-config.js +194 -0
  24. package/dist/src/channel-config.js.map +1 -0
  25. package/dist/src/channel-log.d.ts +17 -0
  26. package/dist/src/channel-log.d.ts.map +1 -0
  27. package/dist/src/channel-log.js +45 -0
  28. package/dist/src/channel-log.js.map +1 -0
  29. package/dist/src/channel.d.ts +4 -7
  30. package/dist/src/channel.d.ts.map +1 -1
  31. package/dist/src/channel.js +77 -538
  32. package/dist/src/channel.js.map +1 -1
  33. package/dist/src/connection.d.ts +45 -9
  34. package/dist/src/connection.d.ts.map +1 -1
  35. package/dist/src/connection.js +117 -5
  36. package/dist/src/connection.js.map +1 -1
  37. package/dist/src/dispatch-mentioned-reply.d.ts +25 -0
  38. package/dist/src/dispatch-mentioned-reply.d.ts.map +1 -0
  39. package/dist/src/dispatch-mentioned-reply.js +346 -0
  40. package/dist/src/dispatch-mentioned-reply.js.map +1 -0
  41. package/dist/src/gateway-session-queue.d.ts +26 -0
  42. package/dist/src/gateway-session-queue.d.ts.map +1 -0
  43. package/dist/src/gateway-session-queue.js +82 -0
  44. package/dist/src/gateway-session-queue.js.map +1 -0
  45. package/dist/src/group-history-tool.d.ts +11 -3
  46. package/dist/src/group-history-tool.d.ts.map +1 -1
  47. package/dist/src/group-history-tool.js +14 -10
  48. package/dist/src/group-history-tool.js.map +1 -1
  49. package/dist/src/inbound-display.d.ts +25 -0
  50. package/dist/src/inbound-display.d.ts.map +1 -0
  51. package/dist/src/inbound-display.js +100 -0
  52. package/dist/src/inbound-display.js.map +1 -0
  53. package/dist/src/project-path-normalize.d.ts +16 -0
  54. package/dist/src/project-path-normalize.d.ts.map +1 -0
  55. package/dist/src/project-path-normalize.js +75 -0
  56. package/dist/src/project-path-normalize.js.map +1 -0
  57. package/dist/src/resolve-inbound-group-prompt.d.ts +18 -0
  58. package/dist/src/resolve-inbound-group-prompt.d.ts.map +1 -0
  59. package/dist/src/resolve-inbound-group-prompt.js +38 -0
  60. package/dist/src/resolve-inbound-group-prompt.js.map +1 -0
  61. package/dist/src/resource-file.d.ts +17 -8
  62. package/dist/src/resource-file.d.ts.map +1 -1
  63. package/dist/src/resource-file.js +60 -21
  64. package/dist/src/resource-file.js.map +1 -1
  65. package/dist/src/send-group-message-tool.d.ts +3 -2
  66. package/dist/src/send-group-message-tool.d.ts.map +1 -1
  67. package/dist/src/send-group-message-tool.js +5 -4
  68. package/dist/src/send-group-message-tool.js.map +1 -1
  69. package/dist/src/send-service.d.ts +5 -1
  70. package/dist/src/send-service.d.ts.map +1 -1
  71. package/dist/src/send-service.js +6 -2
  72. package/dist/src/send-service.js.map +1 -1
  73. package/dist/src/sync-mapping-types.d.ts +170 -0
  74. package/dist/src/sync-mapping-types.d.ts.map +1 -0
  75. package/dist/src/sync-mapping-types.js +41 -0
  76. package/dist/src/sync-mapping-types.js.map +1 -0
  77. package/dist/src/sync-service-client.d.ts +27 -0
  78. package/dist/src/sync-service-client.d.ts.map +1 -0
  79. package/dist/src/sync-service-client.js +72 -0
  80. package/dist/src/sync-service-client.js.map +1 -0
  81. package/dist/src/types.d.ts +34 -0
  82. package/dist/src/types.d.ts.map +1 -1
  83. package/dist/src/types.js.map +1 -1
  84. package/package.json +1 -1
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 入站消息:附件筛选、展示正文、@ 判定、MediaPath(s)、UntrustedContext、回复元数据。
3
+ */
4
+ import type { MsgFileVO, WsMessage, WsMessageContent, WsMessageParams } from "./types.js";
5
+ export declare function collectFileItems(msgContent: WsMessageContent | undefined): MsgFileVO[];
6
+ export declare function buildInboundDisplayText(msgContent: WsMessageContent | undefined, fileItems: MsgFileVO[]): string;
7
+ export declare function isActuallyMentioned(msg: WsMessage, params: WsMessageParams, bot: {
8
+ userId: string;
9
+ name: string;
10
+ }, rawTextForLegacy: string): boolean;
11
+ /**
12
+ * 会话级队列活跃时仍须立刻派发的控制类消息(当前仅 /stop)。
13
+ */
14
+ export declare function isBypassQueueStopMessage(displayText: string): boolean;
15
+ export declare function mediaFieldsFromFileItems(fileItems: MsgFileVO[]): Record<string, unknown>;
16
+ /** 从 ext 中移除已由 agentContext / GroupSystemPrompt 处理的键,避免重复注入 */
17
+ export declare function extForUntrustedContext(msgExt: WsMessageContent["ext"]): Record<string, unknown> | undefined;
18
+ export declare function buildUntrustedContext(msgExt: WsMessageContent["ext"], senderBackground: string | undefined, fileItems: MsgFileVO[]): string[] | undefined;
19
+ export declare function buildTargetReplyMeta(params: WsMessageParams): {
20
+ targetMsgId: string;
21
+ targetUserId: string;
22
+ targetUserName: string;
23
+ previewText: string;
24
+ };
25
+ //# sourceMappingURL=inbound-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-display.d.ts","sourceRoot":"","sources":["../../src/inbound-display.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1F,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,EAAE,CAEtF;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CA6BhH;AAED,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACrC,gBAAgB,EAAE,MAAM,GACzB,OAAO,CAST;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAIrE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWxF;AAED,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAM3G;AAED,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC/B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,SAAS,EAAE,SAAS,EAAE,GACvB,MAAM,EAAE,GAAG,SAAS,CAgBtB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACvB,CAOA"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * 入站消息:附件筛选、展示正文、@ 判定、MediaPath(s)、UntrustedContext、回复元数据。
3
+ */
4
+ export function collectFileItems(msgContent) {
5
+ return (msgContent?.files ?? []).filter((f) => f.url?.trim() || f.content?.trim());
6
+ }
7
+ export function buildInboundDisplayText(msgContent, fileItems) {
8
+ let rawText = msgContent?.text ?? "";
9
+ if (fileItems.length > 0) {
10
+ const lines = fileItems.map((f) => {
11
+ const name = f.name?.trim() || f.fileId || "未命名文件";
12
+ return `- \`${name}\``;
13
+ });
14
+ const block = `**附件(${fileItems.length})**\n${lines.join("\n")}`;
15
+ rawText = rawText.trim() ? `${rawText.trim()}\n\n${block}` : block;
16
+ const parsedParts = fileItems
17
+ .map((f) => {
18
+ const c = f.content?.trim();
19
+ if (!c)
20
+ return null;
21
+ const name = f.name?.trim() || f.fileId || "未命名文件";
22
+ return `### ${name}\n\n${c}`;
23
+ })
24
+ .filter((x) => x != null);
25
+ if (parsedParts.length > 0) {
26
+ const parsedBlock = `**附件解析内容**\n\n${parsedParts.join("\n\n")}`;
27
+ rawText = `${rawText.trim()}\n\n${parsedBlock}`;
28
+ }
29
+ const urlGuard = "**附件 URL 使用约束**\n" +
30
+ "处理附件时必须逐字原样使用消息中提供的完整 URL;禁止修改、删除或重排任何 query 参数。";
31
+ rawText = `${rawText.trim()}\n\n${urlGuard}`;
32
+ }
33
+ return rawText;
34
+ }
35
+ export function isActuallyMentioned(msg, params, bot, rawTextForLegacy) {
36
+ const mentions = params.mentions;
37
+ const isMentioned = Array.isArray(mentions) && (mentions.includes(bot.userId) || mentions.includes("all"));
38
+ const isLegacyMentioned = msg.cmd === "robotMention" &&
39
+ (!params.mentions || params.mentions.length === 0) &&
40
+ new RegExp(`@${bot.name}\\b`).test(rawTextForLegacy);
41
+ return isMentioned || isLegacyMentioned;
42
+ }
43
+ /**
44
+ * 会话级队列活跃时仍须立刻派发的控制类消息(当前仅 /stop)。
45
+ */
46
+ export function isBypassQueueStopMessage(displayText) {
47
+ const head = displayText.trim().split(/\r?\n/)[0]?.trim() ?? "";
48
+ const withoutLeads = head.replace(/^(@\S+\s+)+/u, "").trim();
49
+ return /^\/stop$/i.test(withoutLeads);
50
+ }
51
+ export function mediaFieldsFromFileItems(fileItems) {
52
+ const urlItems = fileItems.filter((f) => f.url?.trim());
53
+ if (urlItems.length === 0)
54
+ return {};
55
+ if (urlItems.length === 1) {
56
+ return {
57
+ MediaPath: urlItems[0].url,
58
+ };
59
+ }
60
+ return {
61
+ MediaPaths: urlItems.map((f) => f.url),
62
+ };
63
+ }
64
+ /** 从 ext 中移除已由 agentContext / GroupSystemPrompt 处理的键,避免重复注入 */
65
+ export function extForUntrustedContext(msgExt) {
66
+ if (!msgExt || typeof msgExt !== "object")
67
+ return undefined;
68
+ const copy = { ...msgExt };
69
+ delete copy.openclaw;
70
+ delete copy.agentContext;
71
+ return Object.keys(copy).length > 0 ? copy : undefined;
72
+ }
73
+ export function buildUntrustedContext(msgExt, senderBackground, fileItems) {
74
+ const parts = [];
75
+ const extRest = extForUntrustedContext(msgExt);
76
+ if (extRest)
77
+ parts.push(JSON.stringify(extRest));
78
+ if (senderBackground)
79
+ parts.push(String(senderBackground));
80
+ if (fileItems.length > 0) {
81
+ const summary = fileItems.map((f) => ({
82
+ name: f.name ?? null,
83
+ format: f.format ?? null,
84
+ fileId: f.fileId ?? null,
85
+ size: f.size ?? null,
86
+ contentChars: f.content?.trim() ? f.content.trim().length : null,
87
+ }));
88
+ parts.push(`xg_cwork_im.attachments: ${JSON.stringify(summary)}`);
89
+ }
90
+ return parts.length > 0 ? parts : undefined;
91
+ }
92
+ export function buildTargetReplyMeta(params) {
93
+ return {
94
+ targetMsgId: params.msgId,
95
+ targetUserId: params.userInfo?.id ?? "",
96
+ targetUserName: params.userInfo?.name ?? "未知用户",
97
+ previewText: params.msgContent?.text ?? "",
98
+ };
99
+ }
100
+ //# sourceMappingURL=inbound-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-display.js","sourceRoot":"","sources":["../../src/inbound-display.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 项目目录映射:路径规范化与宿主绝对路径求解。
3
+ */
4
+ /** IM 信令 / 项目配置中 localRoot.kind 的合法取值(仅此两种) */
5
+ export declare const LOCAL_ROOT_KINDS: readonly ["workspace_relative", "host_absolute"];
6
+ export type LocalRootKind = (typeof LOCAL_ROOT_KINDS)[number];
7
+ export interface LocalRootSpec {
8
+ kind: LocalRootKind;
9
+ path: string;
10
+ }
11
+ /** 知识库逻辑路径:去掉首部 `/`,统一为正斜杠分段 */
12
+ export declare function normalizeRemoteRootFolderPath(raw: string): string;
13
+ /** 规范化 workspace 相对段(去 ./、前导 /、尾部 /,禁止 ..) */
14
+ export declare function normalizeWorkspaceRelativeSegment(userPath: string): string;
15
+ export declare function resolveLocalAbsolutePath(localRoot: LocalRootSpec, workspaceHostRoot: string | undefined): string;
16
+ //# sourceMappingURL=project-path-normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-path-normalize.d.ts","sourceRoot":"","sources":["../../src/project-path-normalize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,kDAAmD,CAAC;AACjF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAUD,gCAAgC;AAChC,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,8CAA8C;AAC9C,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkB1E;AAED,wBAAgB,wBAAwB,CACpC,SAAS,EAAE,aAAa,EACxB,iBAAiB,EAAE,MAAM,GAAG,SAAS,GACtC,MAAM,CAuBR"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * 项目目录映射:路径规范化与宿主绝对路径求解。
3
+ */
4
+ import path from "node:path";
5
+ /** workspace_relative 每段:ASCII 安全名,或含 Unicode 字母/数字的目录名(如中文路径) */
6
+ const ASCII_SEGMENT = /^[a-zA-Z0-9_\-][a-zA-Z0-9_\-/.]*$/;
7
+ /** 禁止出现在路径段内的字符(路径穿越、Windows 非法字符等) */
8
+ const UNSAFE_SEGMENT_CHAR = /[\0-\x1f\\:*?"<>|]/;
9
+ /** IM 信令 / 项目配置中 localRoot.kind 的合法取值(仅此两种) */
10
+ export const LOCAL_ROOT_KINDS = ["workspace_relative", "host_absolute"];
11
+ function isValidWorkspaceSegment(seg) {
12
+ if (!seg || seg === "." || seg === "..")
13
+ return false;
14
+ if (UNSAFE_SEGMENT_CHAR.test(seg))
15
+ return false;
16
+ if (ASCII_SEGMENT.test(seg))
17
+ return true;
18
+ // 中文等 Unicode 目录名:至少含一个字母或数字
19
+ return /[\p{L}\p{N}]/u.test(seg);
20
+ }
21
+ /** 知识库逻辑路径:去掉首部 `/`,统一为正斜杠分段 */
22
+ export function normalizeRemoteRootFolderPath(raw) {
23
+ let p = raw.trim().replace(/\\/g, "/");
24
+ while (p.startsWith("/"))
25
+ p = p.slice(1);
26
+ p = p.replace(/\/+$/, "");
27
+ if (!p)
28
+ throw new Error("remoteRootFolderPath 不能为空");
29
+ return p;
30
+ }
31
+ /** 规范化 workspace 相对段(去 ./、前导 /、尾部 /,禁止 ..) */
32
+ export function normalizeWorkspaceRelativeSegment(userPath) {
33
+ let p = userPath.trim().replace(/\\/g, "/");
34
+ while (p.startsWith("./"))
35
+ p = p.slice(2);
36
+ while (p.startsWith("/"))
37
+ p = p.slice(1);
38
+ p = p.replace(/\/+$/, "");
39
+ if (!p)
40
+ throw new Error("localRoot.path 不能为空");
41
+ const parts = p.split("/").filter(Boolean);
42
+ for (const seg of parts) {
43
+ if (seg === "..")
44
+ throw new Error("路径不能包含 ..");
45
+ }
46
+ const invalidSeg = parts.find((seg) => !isValidWorkspaceSegment(seg));
47
+ if (invalidSeg) {
48
+ throw new Error(`路径含有非法字符: ${userPath}`);
49
+ }
50
+ return parts.join("/");
51
+ }
52
+ export function resolveLocalAbsolutePath(localRoot, workspaceHostRoot) {
53
+ const p = localRoot.path.trim();
54
+ if (!p)
55
+ throw new Error("localRoot.path 不能为空");
56
+ if (localRoot.kind === "host_absolute") {
57
+ const abs = path.resolve(p);
58
+ if (!path.isAbsolute(abs)) {
59
+ throw new Error("host_absolute 时 localRoot.path 必须是绝对路径");
60
+ }
61
+ return abs;
62
+ }
63
+ if (!workspaceHostRoot?.trim()) {
64
+ throw new Error("workspace_relative 需要可用的 Agent workspace 宿主根目录");
65
+ }
66
+ const rel = normalizeWorkspaceRelativeSegment(p);
67
+ const root = path.resolve(workspaceHostRoot.trim());
68
+ const joined = path.resolve(root, rel);
69
+ const relCheck = path.relative(root, joined);
70
+ if (relCheck.startsWith("..") || path.isAbsolute(relCheck)) {
71
+ throw new Error("localRoot.path 逃出 workspace 根目录");
72
+ }
73
+ return joined;
74
+ }
75
+ //# sourceMappingURL=project-path-normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-path-normalize.js","sourceRoot":"","sources":["../../src/project-path-normalize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,kEAAkE;AAClE,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAE1D,uCAAuC;AACvC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEjD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,EAAE,eAAe,CAAU,CAAC;AAQjF,SAAS,uBAAuB,CAAC,GAAW;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,6BAA6B;IAC7B,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,6BAA6B,CAAC,GAAW;IACrD,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,iCAAiC,CAAC,QAAgB;IAC9D,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,GAAG,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,SAAwB,EACxB,iBAAqC;IAErC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE/C,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,GAAG,GAAG,iCAAiC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * 合并通道静态 systemPrompt 与 IM 下发的 agentContext 项目块。
3
+ */
4
+ import type { OpenClawConfig } from "openclaw/plugin-sdk";
5
+ import type { Log } from "./auth.js";
6
+ import type { RobotMentionAgentContext } from "./agent-context-types.js";
7
+ import type { XgImConfig } from "./types.js";
8
+ export interface ResolveInboundGroupSystemPromptArgs {
9
+ cfg: OpenClawConfig;
10
+ accountId: string;
11
+ config: XgImConfig;
12
+ agentContext?: RobotMentionAgentContext;
13
+ workspaceHostRoot?: string;
14
+ log?: Log;
15
+ logPrefix?: string;
16
+ }
17
+ export declare function resolveInboundGroupSystemPrompt(args: ResolveInboundGroupSystemPromptArgs): string | undefined;
18
+ //# sourceMappingURL=resolve-inbound-group-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-inbound-group-prompt.d.ts","sourceRoot":"","sources":["../../src/resolve-inbound-group-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,mCAAmC;IAChD,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,mCAAmC,GAAG,MAAM,GAAG,SAAS,CAsC7G"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * 合并通道静态 systemPrompt 与 IM 下发的 agentContext 项目块。
3
+ */
4
+ import { buildAgentContextPromptBlock } from "./build-project-prompt.js";
5
+ import { resolveXgImGroupSystemPrompt } from "./channel-config.js";
6
+ export function resolveInboundGroupSystemPrompt(args) {
7
+ const { cfg, accountId, config, agentContext, workspaceHostRoot, log, logPrefix } = args;
8
+ const staticPart = resolveXgImGroupSystemPrompt(cfg, accountId);
9
+ if (!agentContext) {
10
+ return staticPart;
11
+ }
12
+ let projectBlock;
13
+ let built;
14
+ try {
15
+ built = buildAgentContextPromptBlock({
16
+ agentContext,
17
+ config,
18
+ workspaceHostRoot,
19
+ log,
20
+ });
21
+ projectBlock = built.block;
22
+ }
23
+ catch (e) {
24
+ log?.error?.(`${logPrefix ?? ""} [agent-context] failed to build project prompt: ${e instanceof Error ? e.message : String(e)}`);
25
+ return staticPart;
26
+ }
27
+ if (!projectBlock.trim()) {
28
+ return staticPart;
29
+ }
30
+ if (config.debug) {
31
+ log?.info?.(`${logPrefix ?? ""} [agent-context] sandbox=${built.sandboxProjectPath ?? "?"} projectPromptLen=${projectBlock.length}`);
32
+ }
33
+ if (staticPart?.trim()) {
34
+ return `${staticPart.trim()}\n\n${projectBlock}`;
35
+ }
36
+ return projectBlock;
37
+ }
38
+ //# sourceMappingURL=resolve-inbound-group-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-inbound-group-prompt.js","sourceRoot":"","sources":["../../src/resolve-inbound-group-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAanE,MAAM,UAAU,+BAA+B,CAAC,IAAyC;IACrF,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACzF,MAAM,UAAU,GAAG,4BAA4B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,IAAI,YAAoB,CAAC;IACzB,IAAI,KAAsD,CAAC;IAC3D,IAAI,CAAC;QACD,KAAK,GAAG,4BAA4B,CAAC;YACjC,YAAY;YACZ,MAAM;YACN,iBAAiB;YACjB,GAAG;SACN,CAAC,CAAC;QACH,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,GAAG,EAAE,KAAK,EAAE,CACR,GAAG,SAAS,IAAI,EAAE,oDAAoD,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrH,CAAC;QACF,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,GAAG,EAAE,IAAI,EAAE,CACP,GAAG,SAAS,IAAI,EAAE,4BAA4B,KAAK,CAAC,kBAAkB,IAAI,GAAG,qBAAqB,YAAY,CAAC,MAAM,EAAE,CAC1H,CAAC;IACN,CAAC;IAED,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QACrB,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,YAAY,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -30,18 +30,27 @@ export declare function resolveLocalFsPath(ref: string): {
30
30
  via: string;
31
31
  } | null;
32
32
  /**
33
- * 将 OpenClaw 约定的 `/workspace/<rel>` 路径解析为本机绝对路径(跨平台)。
33
+ * 将 OpenClaw 约定的 `/workspace/<rel>` 路径解析为本机绝对路径列表(通常 1 条)。
34
34
  *
35
- * OpenClaw 在所有平台启动时均会 chdir 到 workspace 目录,因此
36
- * `process.cwd()` 即为 workspace 根,/workspace/<rel> 等价于 cwd/<rel>:
37
- * - Windows : C:\Users\..\.openclaw\workspace\<rel>
38
- * - macOS : ~/.openclaw/workspace/<rel>
39
- * - Linux容器: /workspace/<rel>(cwd=/workspace,path.join 结果不变)
35
+ * **已能定位 agent 时(传入非空的 agentWorkspaceDir)**:
36
+ * 只返回该 agent 在宿主机上的 workspace 根目录拼出的唯一路径,不再尝试 `cwd` 或字面量 `/workspace`,
37
+ * 避免多个 agent 存在相同相对路径(如都叫 `output/report.pdf`)时误读他人文件。
40
38
  *
41
- * 返回 null 表示路径不符合 /workspace/ 格式。
39
+ * **无法解析出 agentWorkspaceDir 时**(例如 SDK 解析失败、或未传入):
40
+ * 退化为依次尝试 `process.cwd()` 与 `/workspace`(容器挂载),由调用方 readFile 试错;
41
+ * 此模式下存在跨会话路径混淆的理论风险,应尽量保证上游传入 agentWorkspaceDir。
42
+ *
43
+ * 返回空数组表示路径不符合 /workspace/ 格式。
44
+ */
45
+ export declare function resolveWorkspaceCandidatePaths(raw: string, agentWorkspaceDir?: string): string[];
46
+ /**
47
+ * @deprecated 使用 resolveWorkspaceCandidatePaths 替代(支持多沙箱 agent)。
48
+ * 保留此函数避免外部直接引用时编译报错,内部逻辑已切换到多候选方式。
42
49
  */
43
50
  export declare function resolveWorkspacePrefixPath(raw: string): string | null;
44
- export declare function downloadMediaBuffer(url: string, maxBytes: number, log?: Log): Promise<{
51
+ export declare function downloadMediaBuffer(url: string, maxBytes: number, log?: Log,
52
+ /** Agent workspace 宿主机路径(由 resolveAgentWorkspaceDir 得到),用于多沙箱场景下准确解析 /workspace/ 路径 */
53
+ agentWorkspaceDir?: string): Promise<{
45
54
  buffer: Buffer;
46
55
  filename: string;
47
56
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-file.d.ts","sourceRoot":"","sources":["../../src/resource-file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,mDAAmD;AACnD,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AAEvE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,yCAAyC;AACzC,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAcjF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,iEAAiE;AACjE,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASpE;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CA0BlG;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtD;AAED,qBAAqB;AACrB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAInE;AAWD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiCtF;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrE;AAED,wBAAsB,mBAAmB,CACrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,GAAG,GACV,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA6E/C;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,GAAG,CAAC;CACb,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA+C5C;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEzF"}
1
+ {"version":3,"file":"resource-file.d.ts","sourceRoot":"","sources":["../../src/resource-file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,mDAAmD;AACnD,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AAEvE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,yCAAyC;AACzC,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAcjF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,iEAAiE;AACjE,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASpE;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CA0BlG;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtD;AAED,qBAAqB;AACrB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAInE;AAWD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiCtF;AA2BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAehG;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrE;AAED,wBAAsB,mBAAmB,CACrC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,GAAG;AACT,uFAAuF;AACvF,iBAAiB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAsF/C;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,GAAG,CAAC;CACb,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA+C5C;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEzF"}
@@ -170,37 +170,76 @@ async function readLocalFsIntoBuffer(fsPath, maxBytes, log) {
170
170
  return { buffer, filename };
171
171
  }
172
172
  /**
173
- * OpenClaw 约定的 `/workspace/<rel>` 路径解析为本机绝对路径(跨平台)。
173
+ * 将沙箱约定的相对路径 `rel` 解析到 workspace 根下,并保证结果仍在该根之下(禁止 `../` 逃出)。
174
+ */
175
+ function resolveUnderWorkspaceRoot(workspaceRoot, rel) {
176
+ const rootResolved = path.resolve(workspaceRoot);
177
+ const candidate = rel ? path.resolve(rootResolved, rel) : rootResolved;
178
+ const relToRoot = path.relative(rootResolved, candidate);
179
+ if (relToRoot.startsWith("..") || path.isAbsolute(relToRoot)) {
180
+ throw new Error(`[cwork_im:media] /workspace/ path escapes workspace root (${summarizeMediaRef(workspaceRoot)}): ${summarizeMediaRef(rel)}`);
181
+ }
182
+ return candidate;
183
+ }
184
+ /**
185
+ * 将 OpenClaw 约定的 `/workspace/<rel>` 路径解析为本机绝对路径列表(通常 1 条)。
186
+ *
187
+ * **已能定位 agent 时(传入非空的 agentWorkspaceDir)**:
188
+ * 只返回该 agent 在宿主机上的 workspace 根目录拼出的唯一路径,不再尝试 `cwd` 或字面量 `/workspace`,
189
+ * 避免多个 agent 存在相同相对路径(如都叫 `output/report.pdf`)时误读他人文件。
174
190
  *
175
- * OpenClaw 在所有平台启动时均会 chdir workspace 目录,因此
176
- * `process.cwd()` 即为 workspace 根,/workspace/<rel> 等价于 cwd/<rel>:
177
- * - Windows : C:\Users\..\.openclaw\workspace\<rel>
178
- * - macOS : ~/.openclaw/workspace/<rel>
179
- * - Linux容器: /workspace/<rel>(cwd=/workspace,path.join 结果不变)
191
+ * **无法解析出 agentWorkspaceDir 时**(例如 SDK 解析失败、或未传入):
192
+ * 退化为依次尝试 `process.cwd()` `/workspace`(容器挂载),由调用方 readFile 试错;
193
+ * 此模式下存在跨会话路径混淆的理论风险,应尽量保证上游传入 agentWorkspaceDir。
180
194
  *
181
- * 返回 null 表示路径不符合 /workspace/ 格式。
195
+ * 返回空数组表示路径不符合 /workspace/ 格式。
182
196
  */
183
- export function resolveWorkspacePrefixPath(raw) {
197
+ export function resolveWorkspaceCandidatePaths(raw, agentWorkspaceDir) {
184
198
  if (!raw.startsWith("/workspace/") && raw !== "/workspace")
185
- return null;
199
+ return [];
186
200
  const rel = raw.startsWith("/workspace/") ? raw.slice("/workspace/".length) : "";
201
+ const trimmed = agentWorkspaceDir?.trim();
202
+ if (trimmed) {
203
+ return [resolveUnderWorkspaceRoot(trimmed, rel)];
204
+ }
205
+ const bases = [];
187
206
  const cwd = process.cwd();
188
- return rel ? path.join(cwd, rel) : cwd;
207
+ bases.push(cwd);
208
+ if (!bases.includes("/workspace"))
209
+ bases.push("/workspace");
210
+ return bases.map((base) => resolveUnderWorkspaceRoot(base, rel));
211
+ }
212
+ /**
213
+ * @deprecated 使用 resolveWorkspaceCandidatePaths 替代(支持多沙箱 agent)。
214
+ * 保留此函数避免外部直接引用时编译报错,内部逻辑已切换到多候选方式。
215
+ */
216
+ export function resolveWorkspacePrefixPath(raw) {
217
+ const candidates = resolveWorkspaceCandidatePaths(raw);
218
+ return candidates[0] ?? null;
189
219
  }
190
- export async function downloadMediaBuffer(url, maxBytes, log) {
220
+ export async function downloadMediaBuffer(url, maxBytes, log,
221
+ /** Agent workspace 宿主机路径(由 resolveAgentWorkspaceDir 得到),用于多沙箱场景下准确解析 /workspace/ 路径 */
222
+ agentWorkspaceDir) {
191
223
  const raw = url.trim();
192
224
  log?.info(`[cwork_im:media] resolve ref=${summarizeMediaRef(raw)}`);
193
- // Handle OpenClaw /workspace/ convention: map to actual workspace directory.
194
- const workspaceResolved = resolveWorkspacePrefixPath(raw);
195
- if (workspaceResolved && workspaceResolved !== raw) {
196
- log?.info(`[cwork_im:media] /workspace/ -> ${summarizeMediaRef(workspaceResolved)}`);
197
- try {
198
- return await readLocalFsIntoBuffer(workspaceResolved, maxBytes, log);
199
- }
200
- catch (err) {
201
- log?.error(`[cwork_im:media] readFile failed /workspace/ ${summarizeMediaRef(workspaceResolved)}: ${String(err)}`);
202
- throw err;
225
+ // Handle OpenClaw /workspace/ convention: try multiple host-side candidates.
226
+ const workspaceCandidates = resolveWorkspaceCandidatePaths(raw, agentWorkspaceDir);
227
+ if (workspaceCandidates.length > 0) {
228
+ log?.info(`[cwork_im:media] /workspace/ candidates(${workspaceCandidates.length}): ${workspaceCandidates.map((p) => summarizeMediaRef(p)).join(" | ")}`);
229
+ let lastErr;
230
+ for (const fsPath of workspaceCandidates) {
231
+ try {
232
+ const result = await readLocalFsIntoBuffer(fsPath, maxBytes, log);
233
+ log?.info(`[cwork_im:media] /workspace/ resolved via ${summarizeMediaRef(fsPath)}`);
234
+ return result;
235
+ }
236
+ catch (err) {
237
+ lastErr = err;
238
+ log?.info(`[cwork_im:media] /workspace/ candidate miss ${summarizeMediaRef(fsPath)}: ${String(err)}`);
239
+ }
203
240
  }
241
+ log?.error(`[cwork_im:media] /workspace/ all ${workspaceCandidates.length} candidates failed`);
242
+ throw lastErr;
204
243
  }
205
244
  if (raw.startsWith("file://")) {
206
245
  let fsPath;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-file.js","sourceRoot":"","sources":["../../src/resource-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-file.js","sourceRoot":"","sources":["../../src/resource-file.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,10 @@
8
8
  */
9
9
  import type { AnyAgentTool } from "openclaw/plugin-sdk";
10
10
  import type { XgImConfig } from "./types.js";
11
+ import { type XgImToolSessionHints } from "./group-history-tool.js";
11
12
  /**
12
13
  * 构建「主动推送群消息」工具(纯文本)。
13
- * index.ts register() 里调用。
14
+ * 建议使用工厂 `(ctx) => buildSendGroupMessageTool(cfg, hints)` 注册以带上通道账户上下文。
14
15
  */
15
- export declare function buildSendGroupMessageTool(config: XgImConfig): AnyAgentTool;
16
+ export declare function buildSendGroupMessageTool(config: XgImConfig, hints?: XgImToolSessionHints): AnyAgentTool;
16
17
  //# sourceMappingURL=send-group-message-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"send-group-message-tool.d.ts","sourceRoot":"","sources":["../../src/send-group-message-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,YAAY,CAAC;AA2B1D;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CAkD1E"}
1
+ {"version":3,"file":"send-group-message-tool.d.ts","sourceRoot":"","sources":["../../src/send-group-message-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AA0B1F;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,oBAAoB,GAAG,YAAY,CAmDxG"}
@@ -17,7 +17,7 @@ const SendGroupMessageParams = Type.Object({
17
17
  description: "目标群聊 ID(IM 系统的群组唯一标识符,即 groupId / gid)",
18
18
  }),
19
19
  accountId: Type.Optional(Type.String({
20
- description: "(可选)要使用的 xg_cwork_im 账户 ID(即 accounts 的 key,例如 main/orchestrator)。",
20
+ description: "(可选)要使用的 xg_cwork_im 账户 ID(即 accounts 的 key);若省略则使用当前 IM 通道绑定的账户(由网关注入)。",
21
21
  })),
22
22
  text: Type.String({
23
23
  description: "要发送的消息内容(仅纯文本,不支持附件/文件)",
@@ -29,9 +29,9 @@ const SendGroupMessageParams = Type.Object({
29
29
  // ─── 工具构建函数 ─────────────────────────────────────────────────────────────
30
30
  /**
31
31
  * 构建「主动推送群消息」工具(纯文本)。
32
- * index.ts register() 里调用。
32
+ * 建议使用工厂 `(ctx) => buildSendGroupMessageTool(cfg, hints)` 注册以带上通道账户上下文。
33
33
  */
34
- export function buildSendGroupMessageTool(config) {
34
+ export function buildSendGroupMessageTool(config, hints) {
35
35
  return {
36
36
  name: "xg_cwork_im_send_group_message",
37
37
  label: "【xg_cwork_im】主动推送群消息(纯文本)",
@@ -43,7 +43,8 @@ export function buildSendGroupMessageTool(config) {
43
43
  ].join("\n"),
44
44
  parameters: SendGroupMessageParams,
45
45
  async execute(_toolCallId, params) {
46
- const { groupId, text, atUserIds = [], accountId } = params;
46
+ const { groupId, text, atUserIds = [] } = params;
47
+ const accountId = params.accountId ?? hints?.channelAccountId;
47
48
  console.log(`[cwork_im][tool] xg_cwork_im_send_group_message called: groupId=${groupId} atUsers=${JSON.stringify(atUserIds)}`);
48
49
  let identity;
49
50
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"send-group-message-tool.js","sourceRoot":"","sources":["../../src/send-group-message-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-group-message-tool.js","sourceRoot":"","sources":["../../src/send-group-message-tool.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,12 @@ export type ReplyDeliverPayload = {
16
16
  };
17
17
  /**
18
18
  * 将 deliver 块发到 IM:若有媒体则先 POST baseUrl/file/upDownload/uploadWholeFile 再发 FILE;否则发 RICH_TEXT。
19
+ *
20
+ * @param agentWorkspaceDir 可选。Agent 在宿主机的 workspace 绝对路径(由 resolveAgentWorkspaceDir 得到)。
21
+ * 用于在多沙箱 agent 场景下正确解析 /workspace/ 前缀路径。
22
+ * 未传时回退到 process.cwd(),单 agent 部署下行为不变。
19
23
  */
20
- export declare function sendReplyDeliverBlock(config: XgImConfig, token: string, groupId: string, payload: ReplyDeliverPayload, atUserIds?: string[], log?: Log, msgId?: string, reply?: SendMessageReply): Promise<void>;
24
+ export declare function sendReplyDeliverBlock(config: XgImConfig, token: string, groupId: string, payload: ReplyDeliverPayload, atUserIds?: string[], log?: Log, msgId?: string, reply?: SendMessageReply, agentWorkspaceDir?: string): Promise<void>;
21
25
  /**
22
26
  * 发送文本消息到指定 IM 群聊。
23
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"send-service.d.ts","sourceRoot":"","sources":["../../src/send-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAQrC,OAAO,KAAK,EAA8C,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAsL3G,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAC5B,SAAS,GAAE,MAAM,EAAO,EACxB,GAAG,CAAC,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAsGf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAM,EAAO,EACxB,GAAG,CAAC,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
1
+ {"version":3,"file":"send-service.d.ts","sourceRoot":"","sources":["../../src/send-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAQrC,OAAO,KAAK,EAA8C,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAsL3G,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAC5B,SAAS,GAAE,MAAM,EAAO,EACxB,GAAG,CAAC,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsGf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAM,EAAO,EACxB,GAAG,CAAC,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAqBf"}