@xgjktech/xg_cwork_im 1.17.41 → 1.17.43

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 (37) hide show
  1. package/README.md +489 -489
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +4 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/account-connection.d.ts.map +1 -1
  6. package/dist/src/account-connection.js +2 -1
  7. package/dist/src/account-connection.js.map +1 -1
  8. package/dist/src/build-project-prompt.test.js +18 -18
  9. package/dist/src/cron-appkey-binding-store.d.ts +26 -0
  10. package/dist/src/cron-appkey-binding-store.d.ts.map +1 -0
  11. package/dist/src/cron-appkey-binding-store.js +182 -0
  12. package/dist/src/cron-appkey-binding-store.js.map +1 -0
  13. package/dist/src/cron-appkey-binding-store.test.d.ts +2 -0
  14. package/dist/src/cron-appkey-binding-store.test.d.ts.map +1 -0
  15. package/dist/src/cron-appkey-binding-store.test.js +93 -0
  16. package/dist/src/cron-appkey-binding-store.test.js.map +1 -0
  17. package/dist/src/gateway-session-queue.d.ts +3 -0
  18. package/dist/src/gateway-session-queue.d.ts.map +1 -1
  19. package/dist/src/gateway-session-queue.js +1 -0
  20. package/dist/src/gateway-session-queue.js.map +1 -1
  21. package/dist/src/register-exec-env-hook.d.ts +13 -0
  22. package/dist/src/register-exec-env-hook.d.ts.map +1 -1
  23. package/dist/src/register-exec-env-hook.js +167 -3
  24. package/dist/src/register-exec-env-hook.js.map +1 -1
  25. package/dist/src/session-env-store.d.ts +6 -0
  26. package/dist/src/session-env-store.d.ts.map +1 -1
  27. package/dist/src/session-env-store.js +12 -0
  28. package/dist/src/session-env-store.js.map +1 -1
  29. package/dist/src/single-chat-no-reply-fallback.d.ts +14 -0
  30. package/dist/src/single-chat-no-reply-fallback.d.ts.map +1 -0
  31. package/dist/src/single-chat-no-reply-fallback.js +20 -0
  32. package/dist/src/single-chat-no-reply-fallback.js.map +1 -0
  33. package/dist/src/subagent-progress-hooks.d.ts +11 -0
  34. package/dist/src/subagent-progress-hooks.d.ts.map +1 -0
  35. package/dist/src/subagent-progress-hooks.js +41 -0
  36. package/dist/src/subagent-progress-hooks.js.map +1 -0
  37. package/package.json +2 -2
@@ -10,5 +10,18 @@
10
10
  */
11
11
  import type { OpenClawPluginApi } from "openclaw/plugin-sdk/channel-plugin-common";
12
12
  export declare const XG_OPENAPI_BASE_URL = "XG_OPENAPI_BASE_URL";
13
+ export type CronSessionRef = {
14
+ agentId: string;
15
+ jobId: string;
16
+ runId: string;
17
+ };
18
+ /** Return true only for the supported CLI/API forms that create a Cron job. */
19
+ export declare function isCronCreateCommand(command: string | undefined): boolean;
20
+ /** Extract the authoritative UUID printed by `openclaw cron add --json`. */
21
+ export declare function extractCronJobIdFromResult(result: unknown): string | undefined;
22
+ /** Parse the stable portion of an OpenClaw Cron run session key. */
23
+ export declare function parseCronSessionKey(sessionKey: string | undefined): CronSessionRef | undefined;
13
24
  export declare function registerExecEnvHook(api: OpenClawPluginApi): void;
25
+ /** Register automatic binding when a Cron job is created from an IM session. */
26
+ export declare function registerCronAppKeyBindingHook(api: OpenClawPluginApi): void;
14
27
  //# sourceMappingURL=register-exec-env-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-exec-env-hook.d.ts","sourceRoot":"","sources":["../../src/register-exec-env-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAInF,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CA+BhE"}
1
+ {"version":3,"file":"register-exec-env-hook.d.ts","sourceRoot":"","sources":["../../src/register-exec-env-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAKnF,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAM/E,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKxE;AAwBD,4EAA4E;AAC5E,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAM9E;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAa9F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAiDhE;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAqE1E"}
@@ -9,8 +9,74 @@
9
9
  * 不注册 resolve_exec_env,因此 params.env 即最终生效值)。不碰 process.env。
10
10
  */
11
11
  import { getXgImConfig } from "./channel-config.js";
12
- import { isRecord, resolveEnvForSession } from "./session-env-store.js";
12
+ import { getSessionUserContext, isRecord, resolveEnvForSession } from "./session-env-store.js";
13
+ import { bindCronAppKey as persistCronBinding, getCronAppKeyBinding as readCronBinding } from "./cron-appkey-binding-store.js";
13
14
  export const XG_OPENAPI_BASE_URL = "XG_OPENAPI_BASE_URL";
15
+ // OpenClaw job ids are UUID-like, but some released versions emit an
16
+ // 11-character final segment. Keep the shape strict while accepting both.
17
+ const CRON_JOB_ID_PATTERN = /\b[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{8,16}\b/i;
18
+ /** Return true only for the supported CLI/API forms that create a Cron job. */
19
+ export function isCronCreateCommand(command) {
20
+ if (!command)
21
+ return false;
22
+ const normalized = command.toLowerCase();
23
+ return /\bopenclaw(?:\.cmd)?\s+cron\s+(?:add|create)\b/.test(normalized) ||
24
+ /\bopenclaw(?:\.cmd)?\s+gateway\s+call\s+cron\.create\b/.test(normalized);
25
+ }
26
+ function collectText(value, out = [], seen = new Set()) {
27
+ if (value == null || seen.has(value))
28
+ return out;
29
+ if (typeof value === "string") {
30
+ out.push(value);
31
+ return out;
32
+ }
33
+ if (typeof value !== "object")
34
+ return out;
35
+ seen.add(value);
36
+ if (Array.isArray(value)) {
37
+ for (const item of value)
38
+ collectText(item, out, seen);
39
+ }
40
+ else {
41
+ for (const [key, item] of Object.entries(value)) {
42
+ if (key === "id" || key === "jobId") {
43
+ if (typeof item === "string")
44
+ out.push(item);
45
+ }
46
+ else {
47
+ collectText(item, out, seen);
48
+ }
49
+ }
50
+ }
51
+ return out;
52
+ }
53
+ /** Extract the authoritative UUID printed by `openclaw cron add --json`. */
54
+ export function extractCronJobIdFromResult(result) {
55
+ for (const text of collectText(result)) {
56
+ const match = text.match(CRON_JOB_ID_PATTERN);
57
+ if (match)
58
+ return match[0];
59
+ }
60
+ return undefined;
61
+ }
62
+ /** Parse the stable portion of an OpenClaw Cron run session key. */
63
+ export function parseCronSessionKey(sessionKey) {
64
+ if (!sessionKey)
65
+ return undefined;
66
+ const marker = ":cron:";
67
+ const markerIndex = sessionKey.indexOf(marker);
68
+ if (!sessionKey.startsWith("agent:") || markerIndex <= "agent:".length)
69
+ return undefined;
70
+ const agentId = sessionKey.slice("agent:".length, markerIndex);
71
+ const rest = sessionKey.slice(markerIndex + marker.length);
72
+ const runMarker = ":run:";
73
+ const runIndex = rest.indexOf(runMarker);
74
+ if (!agentId || runIndex <= 0 || runIndex + runMarker.length >= rest.length)
75
+ return undefined;
76
+ const jobId = rest.slice(0, runIndex);
77
+ const runId = rest.slice(runIndex + runMarker.length);
78
+ return jobId && runId ? { agentId, jobId, runId } : undefined;
79
+ }
14
80
  export function registerExecEnvHook(api) {
15
81
  const resolveBaseUrl = () => {
16
82
  try {
@@ -26,14 +92,33 @@ export function registerExecEnvHook(api) {
26
92
  api.on("before_tool_call", (event, ctx) => {
27
93
  if (event.toolName !== "exec")
28
94
  return;
29
- const env = { ...resolveEnvForSession(ctx.sessionKey) };
95
+ const cron = parseCronSessionKey(ctx.sessionKey);
96
+ const cronBinding = cron ? readCronBinding(cron.agentId, cron.jobId) : undefined;
97
+ const env = cron
98
+ ? {}
99
+ : { ...resolveEnvForSession(ctx.sessionKey) };
100
+ if (cronBinding)
101
+ env.XG_OPENAPI_APP_KEY = cronBinding.appKey;
30
102
  const baseUrl = resolveBaseUrl();
31
103
  if (baseUrl) {
32
104
  env[XG_OPENAPI_BASE_URL] = baseUrl;
33
105
  }
106
+ const existing = isRecord(event.params.env) ? event.params.env : {};
107
+ if (cron && !cronBinding) {
108
+ const hadAppKey = Object.prototype.hasOwnProperty.call(existing, "XG_OPENAPI_APP_KEY");
109
+ const sanitizedExisting = { ...existing };
110
+ delete sanitizedExisting.XG_OPENAPI_APP_KEY;
111
+ if (!hadAppKey && Object.keys(sanitizedExisting).length === 0 && !baseUrl)
112
+ return;
113
+ return {
114
+ params: {
115
+ ...event.params,
116
+ env: { ...sanitizedExisting, ...(baseUrl ? { [XG_OPENAPI_BASE_URL]: baseUrl } : {}) },
117
+ },
118
+ };
119
+ }
34
120
  if (Object.keys(env).length === 0)
35
121
  return;
36
- const existing = isRecord(event.params.env) ? event.params.env : {};
37
122
  return {
38
123
  params: {
39
124
  ...event.params,
@@ -42,4 +127,83 @@ export function registerExecEnvHook(api) {
42
127
  };
43
128
  }, { priority: 0 });
44
129
  }
130
+ /** Register automatic binding when a Cron job is created from an IM session. */
131
+ export function registerCronAppKeyBindingHook(api) {
132
+ const bindFromSession = (jobId, sessionKey, agentIdHint) => {
133
+ if (!jobId || !sessionKey) {
134
+ console.warn(`[xg_cwork_im] [cron-binding] missing jobId/sessionKey; binding skipped`);
135
+ return;
136
+ }
137
+ const sessionEnv = resolveEnvForSession(sessionKey);
138
+ const appKey = sessionEnv.XG_OPENAPI_APP_KEY;
139
+ if (!appKey) {
140
+ console.warn(`[xg_cwork_im] [cron-binding] no appKey in creator session; jobId=${jobId}`);
141
+ return;
142
+ }
143
+ const sessionAgent = sessionKey.startsWith("agent:") ? sessionKey.slice("agent:".length).split(":", 1)[0] : undefined;
144
+ if (sessionAgent && agentIdHint && sessionAgent !== agentIdHint) {
145
+ console.warn(`[xg_cwork_im] [cron-binding] agent mismatch; sessionAgent=${sessionAgent} agentId=${agentIdHint} jobId=${jobId}`);
146
+ return;
147
+ }
148
+ const agentId = agentIdHint ?? sessionAgent;
149
+ if (!agentId) {
150
+ console.warn(`[xg_cwork_im] [cron-binding] missing agentId; jobId=${jobId}`);
151
+ return;
152
+ }
153
+ const user = getSessionUserContext(sessionKey);
154
+ const saved = persistCronBinding({
155
+ agentId,
156
+ jobId,
157
+ appKey,
158
+ userId: user?.userId,
159
+ userName: user?.userName,
160
+ ownerSessionKey: sessionKey,
161
+ source: "im",
162
+ });
163
+ if (!saved)
164
+ console.warn(`[xg_cwork_im] [cron-binding] persist failed; agentId=${agentId} jobId=${jobId}`);
165
+ };
166
+ // The cron tool result contains the authoritative job id and runs in the
167
+ // creator's session, unlike prompt text which must never be parsed for ids.
168
+ api.on("after_tool_call", (event, ctx) => {
169
+ if (event.error)
170
+ return;
171
+ // In the current IM agent toolset Cron is exposed through exec rather
172
+ // than as a native `cron` tool. Bind only an explicit Cron create
173
+ // command; never infer a job id from arbitrary command output.
174
+ if (event.toolName === "exec") {
175
+ const command = typeof event.params.command === "string" ? event.params.command : undefined;
176
+ if (!isCronCreateCommand(command))
177
+ return;
178
+ const jobId = extractCronJobIdFromResult(event.result);
179
+ if (jobId)
180
+ bindFromSession(jobId, ctx.sessionKey, ctx.agentId);
181
+ else
182
+ console.warn(`[xg_cwork_im] [cron-binding] CLI Cron create succeeded but jobId was not found in result`);
183
+ return;
184
+ }
185
+ if (event.toolName !== "cron")
186
+ return;
187
+ const action = typeof event.params.action === "string" ? event.params.action : "";
188
+ if (action !== "add" && action !== "create")
189
+ return;
190
+ const result = isRecord(event.result) ? event.result : undefined;
191
+ const details = result && isRecord(result.details) ? result.details : undefined;
192
+ const jobId = (details && (typeof details.id === "string" ? details.id : typeof details.jobId === "string" ? details.jobId : undefined)) ??
193
+ (result && (typeof result.id === "string" ? result.id : typeof result.jobId === "string" ? result.jobId : undefined));
194
+ if (jobId)
195
+ bindFromSession(jobId, ctx.sessionKey, ctx.agentId);
196
+ else
197
+ console.warn(`[xg_cwork_im] [cron-binding] cron add succeeded but jobId was not found in result`);
198
+ });
199
+ // OpenClaw emits this after cron.add/create succeeds. The event carries the
200
+ // originating sessionKey, allowing us to bind the appKey captured for that
201
+ // IM session without guessing a job id from tool text.
202
+ api.on("cron_changed", (event) => {
203
+ if (event.action !== "added" || !event.jobId || !event.sessionKey)
204
+ return;
205
+ const agentId = event.agentId ?? event.job?.agentId;
206
+ bindFromSession(event.jobId, event.sessionKey, agentId);
207
+ });
208
+ }
45
209
  //# sourceMappingURL=register-exec-env-hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-exec-env-hook.js","sourceRoot":"","sources":["../../src/register-exec-env-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAExE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD,MAAM,UAAU,mBAAmB,CAAC,GAAsB;IACtD,MAAM,cAAc,GAAG,GAAuB,EAAE;QAC5C,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG;gBAAE,OAAO,SAAS,CAAC;YAC3B,OAAO,aAAa,CAAC,GAAqB,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC,CAAC;IAEF,GAAG,CAAC,EAAE,CACF,kBAAkB,EAClB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACX,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;YAAE,OAAO;QACtC,MAAM,GAAG,GAA2B,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAChF,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,IAAI,OAAO,EAAE,CAAC;YACV,GAAG,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC;QACvC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO;YACH,MAAM,EAAE;gBACJ,GAAG,KAAK,CAAC,MAAM;gBACf,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE;aAC/B;SACJ,CAAC;IACN,CAAC,EACD,EAAE,QAAQ,EAAE,CAAC,EAAE,CAClB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"register-exec-env-hook.js","sourceRoot":"","sources":["../../src/register-exec-env-hook.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,12 @@ export declare function clearSessionEnv(sessionKey: string): void;
32
32
  export declare function removeSessionEnvKey(sessionKey: string, key: string): void;
33
33
  /** 登记 subagent 子会话到父会话的关联,供 exec env 父子链反查。 */
34
34
  export declare function linkChildSession(childSessionKey: string, parentSessionKey: string): void;
35
+ /** Record the last IM sender for optional Cron binding audit metadata. */
36
+ export declare function setSessionUserContext(sessionKey: string, userId?: string, userName?: string): void;
37
+ export declare function getSessionUserContext(sessionKey: string | undefined): {
38
+ userId?: string;
39
+ userName?: string;
40
+ } | undefined;
35
41
  /**
36
42
  * 解析某个会话应注入 exec 的 env:先查本会话;查不到则沿 subagent 父子链
37
43
  * 反查父会话(限深,防环)。subagent 内 exec 触发 hook 时 sessionKey 是子会话 key。
@@ -1 +1 @@
1
- {"version":3,"file":"session-env-store.d.ts","sourceRoot":"","sources":["../../src/session-env-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAkCvD,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQtF;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AA8GD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED,2BAA2B;AAC3B,wBAAgB,0BAA0B,IAAI,IAAI,CASjD;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASnF;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CAqBN;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAMpF;AAED,yBAAyB;AACzB,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAOxD;AAED,uBAAuB;AACvB,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAIxF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc3F;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAgBrD"}
1
+ {"version":3,"file":"session-env-store.d.ts","sourceRoot":"","sources":["../../src/session-env-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAmCvD,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQtF;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AA+GD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED,2BAA2B;AAC3B,wBAAgB,0BAA0B,IAAI,IAAI,CASjD;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASnF;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CAqBN;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAMpF;AAED,yBAAyB;AACzB,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAOxD;AAED,uBAAuB;AACvB,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAIxF;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAGlG;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAExH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc3F;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAiBrD"}
@@ -24,6 +24,7 @@ const LOG_PREFIX = "[xg_cwork_im] [session-env]";
24
24
  const sessionEnvMap = new Map();
25
25
  const sessionUpdatedAt = new Map();
26
26
  const sessionChildLinks = new Map();
27
+ const sessionUserContexts = new Map();
27
28
  const cleanupTimers = new Map();
28
29
  let persistStateDir;
29
30
  let persistPath;
@@ -66,6 +67,7 @@ function scheduleCleanup(sessionKey) {
66
67
  sessionEnvMap.delete(sessionKey);
67
68
  sessionUpdatedAt.delete(sessionKey);
68
69
  sessionChildLinks.delete(sessionKey);
70
+ sessionUserContexts.delete(sessionKey);
69
71
  cleanupTimers.delete(sessionKey);
70
72
  }, CLEANUP_DELAY_MS).unref?.());
71
73
  }
@@ -253,6 +255,15 @@ export function linkChildSession(childSessionKey, parentSessionKey) {
253
255
  sessionChildLinks.set(childSessionKey, parentSessionKey);
254
256
  scheduleCleanup(childSessionKey);
255
257
  }
258
+ /** Record the last IM sender for optional Cron binding audit metadata. */
259
+ export function setSessionUserContext(sessionKey, userId, userName) {
260
+ if (!sessionKey || (!userId && !userName))
261
+ return;
262
+ sessionUserContexts.set(sessionKey, { userId, userName });
263
+ }
264
+ export function getSessionUserContext(sessionKey) {
265
+ return sessionKey ? sessionUserContexts.get(sessionKey) : undefined;
266
+ }
256
267
  /**
257
268
  * 解析某个会话应注入 exec 的 env:先查本会话;查不到则沿 subagent 父子链
258
269
  * 反查父会话(限深,防环)。subagent 内 exec 触发 hook 时 sessionKey 是子会话 key。
@@ -279,6 +290,7 @@ export function __resetSessionEnvStoreForTests() {
279
290
  sessionEnvMap.clear();
280
291
  sessionUpdatedAt.clear();
281
292
  sessionChildLinks.clear();
293
+ sessionUserContexts.clear();
282
294
  for (const timer of cleanupTimers.values()) {
283
295
  clearTimeout(timer);
284
296
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-env-store.js","sourceRoot":"","sources":["../../src/session-env-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-env-store.js","sourceRoot":"","sources":["../../src/session-env-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 单聊轮次结束但未向 IM 发出正文时的兜底话术(如模型输出 NO_REPLY、deliver 未被调用)。
3
+ */
4
+ import type { WsMessageParams } from "./types.js";
5
+ export declare function shouldSendSingleChatNoReplyFallback(args: {
6
+ params: WsMessageParams;
7
+ hasFirstReply: boolean;
8
+ deliverCallCount: number;
9
+ dispatchError?: unknown;
10
+ lastDeliverError?: unknown;
11
+ }): boolean;
12
+ /** 单聊静默轮次兜底:简短告知并引导重试。 */
13
+ export declare function buildSingleChatNoReplyFallbackText(): string;
14
+ //# sourceMappingURL=single-chat-no-reply-fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-chat-no-reply-fallback.d.ts","sourceRoot":"","sources":["../../src/single-chat-no-reply-fallback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,mCAAmC,CAAC,IAAI,EAAE;IACtD,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,OAAO,CAMV;AAED,0BAA0B;AAC1B,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 单聊轮次结束但未向 IM 发出正文时的兜底话术(如模型输出 NO_REPLY、deliver 未被调用)。
3
+ */
4
+ import { isImSingleChat } from "./inbound-chat-type.js";
5
+ export function shouldSendSingleChatNoReplyFallback(args) {
6
+ if (args.hasFirstReply)
7
+ return false;
8
+ if (args.dispatchError !== undefined || args.lastDeliverError !== undefined)
9
+ return false;
10
+ if (!isImSingleChat(args.params))
11
+ return false;
12
+ if (args.deliverCallCount > 0)
13
+ return false;
14
+ return true;
15
+ }
16
+ /** 单聊静默轮次兜底:简短告知并引导重试。 */
17
+ export function buildSingleChatNoReplyFallbackText() {
18
+ return "消息已收到,但这一轮没有生成回复。请换个说法或把需求说具体一些后再试。";
19
+ }
20
+ //# sourceMappingURL=single-chat-no-reply-fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-chat-no-reply-fallback.js","sourceRoot":"","sources":["../../src/single-chat-no-reply-fallback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,MAAM,UAAU,mCAAmC,CAAC,IAMnD;IACG,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1F,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,kCAAkC;IAC9C,OAAO,qCAAqC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
2
+ import type { ImStreamClient } from "./connection.js";
3
+ interface SubagentWsTarget {
4
+ streamClient: ImStreamClient;
5
+ groupId: string;
6
+ replyToMsgId: string;
7
+ }
8
+ export declare function registerSubagentProgressHooks(api: OpenClawPluginApi): void;
9
+ export declare function setSubagentWsTarget(childSessionKey: string, target: SubagentWsTarget): void;
10
+ export {};
11
+ //# sourceMappingURL=subagent-progress-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-progress-hooks.d.ts","sourceRoot":"","sources":["../../src/subagent-progress-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,UAAU,gBAAgB;IACtB,YAAY,EAAE,cAAc,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACxB;AAYD,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAqC1E;AAED,wBAAgB,mBAAmB,CAC/B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,gBAAgB,GACzB,IAAI,CAEN"}
@@ -0,0 +1,41 @@
1
+ const subagentWsTargets = new Map();
2
+ export function registerSubagentProgressHooks(api) {
3
+ // subagent_progress is not in the installed SDK's PluginHookName type union,
4
+ // but the runtime supports it. Cast to bypass the type check.
5
+ api.on("subagent_progress", async (event) => {
6
+ const childSessionKey = event.childSessionKey;
7
+ if (!childSessionKey)
8
+ return;
9
+ const target = subagentWsTargets.get(childSessionKey);
10
+ if (!target)
11
+ return;
12
+ let displayText;
13
+ if (event.phase === "started") {
14
+ displayText = "子任务已启动";
15
+ }
16
+ else if (event.phase === "ended") {
17
+ displayText = event.outcome === "ok" ? "子任务已完成" : `子任务异常: ${event.outcome ?? "unknown"}`;
18
+ }
19
+ else {
20
+ displayText = "子任务状态更新";
21
+ }
22
+ try {
23
+ await target.streamClient.streamProgress({
24
+ groupId: target.groupId,
25
+ replyToMsgId: target.replyToMsgId,
26
+ event: "RUN_EVENT",
27
+ displayText,
28
+ });
29
+ }
30
+ catch {
31
+ // WS best-effort: don't propagate errors from progress events
32
+ }
33
+ if (event.phase === "ended") {
34
+ subagentWsTargets.delete(childSessionKey);
35
+ }
36
+ });
37
+ }
38
+ export function setSubagentWsTarget(childSessionKey, target) {
39
+ subagentWsTargets.set(childSessionKey, target);
40
+ }
41
+ //# sourceMappingURL=subagent-progress-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-progress-hooks.js","sourceRoot":"","sources":["../../src/subagent-progress-hooks.ts"],"names":[],"mappings":"AAiBA,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;AAE9D,MAAM,UAAU,6BAA6B,CAAC,GAAsB;IAChE,6EAA6E;IAC7E,8DAA8D;IAC7D,GAAG,CAAC,EAA8F,CAC/F,mBAAmB,EACnB,KAAK,EAAE,KAA4B,EAAE,EAAE;QACnC,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,IAAI,WAAmB,CAAC;QACxB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5B,WAAW,GAAG,QAAQ,CAAC;QAC3B,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACjC,WAAW,GAAG,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QAC7F,CAAC;aAAM,CAAC;YACJ,WAAW,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC;gBACrC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,KAAK,EAAE,WAAW;gBAClB,WAAW;aACd,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,8DAA8D;QAClE,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC1B,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,eAAuB,EACvB,MAAwB;IAExB,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xgjktech/xg_cwork_im",
3
- "version": "1.17.41",
3
+ "version": "1.17.43",
4
4
  "description": "XG CWork IM channel plugin for OpenClaw",
5
5
  "keywords": [
6
6
  "bot",
@@ -25,7 +25,7 @@
25
25
  "build": "tsc -p tsconfig.json",
26
26
  "type-check": "tsc -p tsconfig.json --noEmit",
27
27
  "lint": "tsc -p tsconfig.json --noEmit",
28
- "test": "npm run build && node --test dist/src/account-reconciler.test.js 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/build-project-prompt.test.js dist/src/nas-volumes.test.js dist/src/workspace-event.test.js dist/src/workspace-event-scheduler.test.js dist/src/connection-workspace-event.test.js dist/src/block-streaming-config.test.js dist/src/channel-disabled-account.test.js dist/src/per-message-fallback-notice.test.js dist/src/thinking-ws-progress.test.js dist/src/resource-file.test.js dist/src/turn-deliver-buffer.test.js dist/src/run-usage.test.js dist/src/ws-run-event-unmapped.test.js dist/src/item-event-guard.test.js dist/src/inbound-model.test.js dist/src/auto-model-router.test.js dist/src/channel-config.test.js dist/src/send-service.test.js dist/src/send-file-tool.test.js dist/src/plan-tool-result.test.js dist/src/plan-blocked-notice.test.js dist/src/plan-store-access.test.js dist/src/plan-tool-middleware.test.js dist/src/plan-event-subscription.test.js dist/src/plan-ws-registry.test.js dist/src/plan-stat-event.test.js dist/src/active-round-registry.test.js dist/src/interrupt-round.test.js dist/src/subagent-monitor.test.js dist/src/session-env-store.test.js dist/src/register-exec-env-hook.test.js dist/src/ws-inbound-schema.test.js",
28
+ "test": "npm run build && node --test dist/src/account-reconciler.test.js 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/build-project-prompt.test.js dist/src/nas-volumes.test.js dist/src/workspace-event.test.js dist/src/workspace-event-scheduler.test.js dist/src/connection-workspace-event.test.js dist/src/block-streaming-config.test.js dist/src/channel-disabled-account.test.js dist/src/per-message-fallback-notice.test.js dist/src/thinking-ws-progress.test.js dist/src/resource-file.test.js dist/src/turn-deliver-buffer.test.js dist/src/run-usage.test.js dist/src/ws-run-event-unmapped.test.js dist/src/item-event-guard.test.js dist/src/inbound-model.test.js dist/src/auto-model-router.test.js dist/src/channel-config.test.js dist/src/send-service.test.js dist/src/send-file-tool.test.js dist/src/plan-tool-result.test.js dist/src/plan-blocked-notice.test.js dist/src/plan-store-access.test.js dist/src/plan-tool-middleware.test.js dist/src/plan-event-subscription.test.js dist/src/plan-ws-registry.test.js dist/src/plan-stat-event.test.js dist/src/active-round-registry.test.js dist/src/interrupt-round.test.js dist/src/subagent-monitor.test.js dist/src/session-env-store.test.js dist/src/register-exec-env-hook.test.js dist/src/cron-appkey-binding-store.test.js dist/src/ws-inbound-schema.test.js",
29
29
  "install:prod": "npm install --omit=dev",
30
30
  "prepublishOnly": "npm run build"
31
31
  },