@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.
- package/README.md +17 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/dist/src/agent-context-types.d.ts +33 -0
- package/dist/src/agent-context-types.d.ts.map +1 -0
- package/dist/src/agent-context-types.js +26 -0
- package/dist/src/agent-context-types.js.map +1 -0
- package/dist/src/apply-sync-mapping.d.ts +17 -0
- package/dist/src/apply-sync-mapping.d.ts.map +1 -0
- package/dist/src/apply-sync-mapping.js +86 -0
- package/dist/src/apply-sync-mapping.js.map +1 -0
- package/dist/src/auth.d.ts +2 -2
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.js +18 -12
- package/dist/src/auth.js.map +1 -1
- package/dist/src/build-project-prompt.d.ts +28 -0
- package/dist/src/build-project-prompt.d.ts.map +1 -0
- package/dist/src/build-project-prompt.js +86 -0
- package/dist/src/build-project-prompt.js.map +1 -0
- package/dist/src/channel-config.d.ts +256 -0
- package/dist/src/channel-config.d.ts.map +1 -0
- package/dist/src/channel-config.js +194 -0
- package/dist/src/channel-config.js.map +1 -0
- package/dist/src/channel-log.d.ts +17 -0
- package/dist/src/channel-log.d.ts.map +1 -0
- package/dist/src/channel-log.js +45 -0
- package/dist/src/channel-log.js.map +1 -0
- package/dist/src/channel.d.ts +4 -7
- package/dist/src/channel.d.ts.map +1 -1
- package/dist/src/channel.js +77 -538
- package/dist/src/channel.js.map +1 -1
- package/dist/src/connection.d.ts +45 -9
- package/dist/src/connection.d.ts.map +1 -1
- package/dist/src/connection.js +117 -5
- package/dist/src/connection.js.map +1 -1
- package/dist/src/dispatch-mentioned-reply.d.ts +25 -0
- package/dist/src/dispatch-mentioned-reply.d.ts.map +1 -0
- package/dist/src/dispatch-mentioned-reply.js +346 -0
- package/dist/src/dispatch-mentioned-reply.js.map +1 -0
- package/dist/src/gateway-session-queue.d.ts +26 -0
- package/dist/src/gateway-session-queue.d.ts.map +1 -0
- package/dist/src/gateway-session-queue.js +82 -0
- package/dist/src/gateway-session-queue.js.map +1 -0
- package/dist/src/group-history-tool.d.ts +11 -3
- package/dist/src/group-history-tool.d.ts.map +1 -1
- package/dist/src/group-history-tool.js +14 -10
- package/dist/src/group-history-tool.js.map +1 -1
- package/dist/src/inbound-display.d.ts +25 -0
- package/dist/src/inbound-display.d.ts.map +1 -0
- package/dist/src/inbound-display.js +100 -0
- package/dist/src/inbound-display.js.map +1 -0
- package/dist/src/project-path-normalize.d.ts +16 -0
- package/dist/src/project-path-normalize.d.ts.map +1 -0
- package/dist/src/project-path-normalize.js +75 -0
- package/dist/src/project-path-normalize.js.map +1 -0
- package/dist/src/resolve-inbound-group-prompt.d.ts +18 -0
- package/dist/src/resolve-inbound-group-prompt.d.ts.map +1 -0
- package/dist/src/resolve-inbound-group-prompt.js +38 -0
- package/dist/src/resolve-inbound-group-prompt.js.map +1 -0
- package/dist/src/resource-file.d.ts +17 -8
- package/dist/src/resource-file.d.ts.map +1 -1
- package/dist/src/resource-file.js +60 -21
- package/dist/src/resource-file.js.map +1 -1
- package/dist/src/send-group-message-tool.d.ts +3 -2
- package/dist/src/send-group-message-tool.d.ts.map +1 -1
- package/dist/src/send-group-message-tool.js +5 -4
- package/dist/src/send-group-message-tool.js.map +1 -1
- package/dist/src/send-service.d.ts +5 -1
- package/dist/src/send-service.d.ts.map +1 -1
- package/dist/src/send-service.js +6 -2
- package/dist/src/send-service.js.map +1 -1
- package/dist/src/sync-mapping-types.d.ts +170 -0
- package/dist/src/sync-mapping-types.d.ts.map +1 -0
- package/dist/src/sync-mapping-types.js +41 -0
- package/dist/src/sync-mapping-types.js.map +1 -0
- package/dist/src/sync-service-client.d.ts +27 -0
- package/dist/src/sync-service-client.d.ts.map +1 -0
- package/dist/src/sync-service-client.js +72 -0
- package/dist/src/sync-service-client.js.map +1 -0
- package/dist/src/types.d.ts +34 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- 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":"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"}
|
|
@@ -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
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
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
|
-
*
|
|
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
|
|
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;
|
|
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
|
-
*
|
|
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
|
-
*
|
|
176
|
-
* `process.cwd()`
|
|
177
|
-
*
|
|
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
|
-
*
|
|
195
|
+
* 返回空数组表示路径不符合 /workspace/ 格式。
|
|
182
196
|
*/
|
|
183
|
-
export function
|
|
197
|
+
export function resolveWorkspaceCandidatePaths(raw, agentWorkspaceDir) {
|
|
184
198
|
if (!raw.startsWith("/workspace/") && raw !== "/workspace")
|
|
185
|
-
return
|
|
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
|
-
|
|
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:
|
|
194
|
-
const
|
|
195
|
-
if (
|
|
196
|
-
log?.info(`[cwork_im:media] /workspace/
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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
|
-
*
|
|
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;
|
|
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
|
|
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
|
-
*
|
|
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 = []
|
|
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,
|
|
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
|
|
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"}
|