@xgjktech/xg_cwork_im 1.17.50 → 1.17.52

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 (34) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +4 -3
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/account-connection.d.ts.map +1 -1
  5. package/dist/src/account-connection.js +2 -0
  6. package/dist/src/account-connection.js.map +1 -1
  7. package/dist/src/account-reconciler.d.ts.map +1 -1
  8. package/dist/src/account-reconciler.js +2 -0
  9. package/dist/src/account-reconciler.js.map +1 -1
  10. package/dist/src/active-cron-context-store.d.ts +20 -0
  11. package/dist/src/active-cron-context-store.d.ts.map +1 -0
  12. package/dist/src/active-cron-context-store.js +73 -0
  13. package/dist/src/active-cron-context-store.js.map +1 -0
  14. package/dist/src/cron-appkey-binding-store.d.ts +2 -1
  15. package/dist/src/cron-appkey-binding-store.d.ts.map +1 -1
  16. package/dist/src/cron-appkey-binding-store.js +66 -31
  17. package/dist/src/cron-appkey-binding-store.js.map +1 -1
  18. package/dist/src/cron-appkey-binding-store.test.js +159 -1
  19. package/dist/src/cron-appkey-binding-store.test.js.map +1 -1
  20. package/dist/src/plan-ws-registry.d.ts +2 -0
  21. package/dist/src/plan-ws-registry.d.ts.map +1 -1
  22. package/dist/src/plan-ws-registry.js +8 -0
  23. package/dist/src/plan-ws-registry.js.map +1 -1
  24. package/dist/src/plan-ws-registry.test.js +19 -1
  25. package/dist/src/plan-ws-registry.test.js.map +1 -1
  26. package/dist/src/plugin-dispose.d.ts +4 -2
  27. package/dist/src/plugin-dispose.d.ts.map +1 -1
  28. package/dist/src/plugin-dispose.js +13 -8
  29. package/dist/src/plugin-dispose.js.map +1 -1
  30. package/dist/src/register-exec-env-hook.d.ts +6 -0
  31. package/dist/src/register-exec-env-hook.d.ts.map +1 -1
  32. package/dist/src/register-exec-env-hook.js +99 -32
  33. package/dist/src/register-exec-env-hook.js.map +1 -1
  34. package/package.json +1 -1
@@ -3,11 +3,14 @@ import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "nod
3
3
  import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { afterEach, describe, it } from "node:test";
6
+ import { __resetActiveCronContextStoreForTests, getActiveCronContexts, setActiveCronContext, } from "./active-cron-context-store.js";
6
7
  import { __resetCronAppKeyBindingStoreForTests, bindCronAppKey, getCronAppKeyBinding, initCronAppKeyBindingStore, } from "./cron-appkey-binding-store.js";
7
- import { extractCronJobIdFromResult, isCronCreateCommand, parseCronSessionKey, registerCronAppKeyBindingHook, registerExecEnvHook } from "./register-exec-env-hook.js";
8
+ import { disposePluginModule } from "./plugin-dispose.js";
9
+ import { extractCronJobIdFromResult, isCronCreateCommand, parseCronSessionKey, parseCronSessionTarget, registerCronAppKeyBindingHook, registerExecEnvHook } from "./register-exec-env-hook.js";
8
10
  import { setSessionEnvEntry, setSessionUserContext, XG_OPENAPI_APP_KEY } from "./session-env-store.js";
9
11
  let dirs = [];
10
12
  afterEach(() => {
13
+ __resetActiveCronContextStoreForTests();
11
14
  __resetCronAppKeyBindingStoreForTests();
12
15
  for (const dir of dirs.splice(0))
13
16
  rmSync(dir, { recursive: true, force: true });
@@ -24,6 +27,18 @@ describe("cron appKey binding store", () => {
24
27
  initCronAppKeyBindingStore(join(dir, "state"));
25
28
  assert.equal(getCronAppKeyBinding("agent-a", "job-1")?.appKey, "key-1");
26
29
  });
30
+ it("reuses one process-shared binding store across register and old Registry cleanup", async () => {
31
+ const dir = mkdtempSync(join(tmpdir(), "xg-cron-binding-"));
32
+ dirs.push(dir);
33
+ const stateDir = join(dir, "state");
34
+ initCronAppKeyBindingStore(stateDir);
35
+ bindCronAppKey({ agentId: "agent-a", jobId: "job-1", appKey: "key-1" });
36
+ // A new Registry initializes the same process store before the old
37
+ // Registry cleanup runs.
38
+ initCronAppKeyBindingStore(stateDir);
39
+ await disposePluginModule({ skipConnections: true, skipPlanResources: true });
40
+ assert.equal(getCronAppKeyBinding("agent-a", "job-1")?.appKey, "key-1");
41
+ });
27
42
  it("rejects invalid values and ignores malformed records", () => {
28
43
  const dir = mkdtempSync(join(tmpdir(), "xg-cron-binding-"));
29
44
  dirs.push(dir);
@@ -92,6 +107,149 @@ describe("cron appKey binding store", () => {
92
107
  assert.equal(extractCronJobIdFromResult({ details: { created: true, job: { id: "daily-report" } } }), "daily-report");
93
108
  assert.equal(extractCronJobIdFromResult({ content: [{ type: "text", text: '{"id":"daily-report"}' }] }), "daily-report");
94
109
  });
110
+ it("parses only confirmed session:agent: Cron targets", () => {
111
+ assert.deepEqual(parseCronSessionTarget("session:agent:agent-a:xg_cwork_im:group:g1"), {
112
+ agentId: "agent-a",
113
+ sessionKey: "agent:agent-a:xg_cwork_im:group:g1",
114
+ });
115
+ assert.equal(parseCronSessionTarget("isolated"), undefined);
116
+ assert.equal(parseCronSessionTarget("main"), undefined);
117
+ assert.equal(parseCronSessionTarget("session:main"), undefined);
118
+ });
119
+ it("sessionTarget=session:... injects its exact active Cron binding", () => {
120
+ const dir = mkdtempSync(join(tmpdir(), "xg-cron-binding-"));
121
+ dirs.push(dir);
122
+ initCronAppKeyBindingStore(join(dir, "state"));
123
+ bindCronAppKey({ agentId: "agent-a", jobId: "job-1", appKey: "key-1" });
124
+ const sessionKey = "agent:agent-a:xg_cwork_im:group:g1";
125
+ let before;
126
+ let changed;
127
+ const api = {
128
+ runtime: { config: { current: () => ({ channels: { xg_cwork_im: {} } }) } },
129
+ on: (name, handler) => {
130
+ if (name === "before_tool_call")
131
+ before = handler;
132
+ if (name === "cron_changed")
133
+ changed = handler;
134
+ },
135
+ };
136
+ registerExecEnvHook(api);
137
+ registerCronAppKeyBindingHook(api);
138
+ changed?.({
139
+ action: "started",
140
+ jobId: "job-1",
141
+ agentId: "agent-a",
142
+ job: { sessionTarget: `session:${sessionKey}` },
143
+ }, {});
144
+ const result = before?.({ toolName: "exec", params: { env: { XG_OPENAPI_APP_KEY: "ai-wrong" } } }, { sessionKey, agentId: "agent-a" });
145
+ assert.equal(result.params.env.XG_OPENAPI_APP_KEY, "key-1");
146
+ });
147
+ it("new Registry reads the active context created by the old Registry after cleanup", async () => {
148
+ const dir = mkdtempSync(join(tmpdir(), "xg-cron-binding-"));
149
+ dirs.push(dir);
150
+ initCronAppKeyBindingStore(join(dir, "state"));
151
+ bindCronAppKey({ agentId: "agent-a", jobId: "job-1", appKey: "key-1" });
152
+ const sessionKey = "agent:agent-a:xg_cwork_im:group:g1";
153
+ let oldChanged;
154
+ registerCronAppKeyBindingHook({
155
+ on: (name, handler) => { if (name === "cron_changed")
156
+ oldChanged = handler; },
157
+ });
158
+ oldChanged?.({ action: "started", jobId: "job-1", sessionTarget: `session:${sessionKey}` }, {});
159
+ let newBefore;
160
+ registerExecEnvHook({
161
+ runtime: { config: { current: () => ({ channels: { xg_cwork_im: {} } }) } },
162
+ on: (name, handler) => { if (name === "before_tool_call")
163
+ newBefore = handler; },
164
+ });
165
+ await disposePluginModule({ skipConnections: true, skipPlanResources: true });
166
+ const result = newBefore?.({ toolName: "exec", params: { env: {} } }, { sessionKey, agentId: "agent-a" });
167
+ assert.equal(result.params.env.XG_OPENAPI_APP_KEY, "key-1");
168
+ });
169
+ it("sessionTarget Cron child inherits through its persisted parent chain", () => {
170
+ const dir = mkdtempSync(join(tmpdir(), "xg-cron-binding-"));
171
+ dirs.push(dir);
172
+ initCronAppKeyBindingStore(join(dir, "state"));
173
+ bindCronAppKey({ agentId: "agent-a", jobId: "job-1", appKey: "key-1" });
174
+ const parentSessionKey = "agent:agent-a:xg_cwork_im:group:g1";
175
+ const childSessionKey = "agent:agent-a:subagent:child-1";
176
+ let before;
177
+ let changed;
178
+ const api = {
179
+ runtime: {
180
+ config: { current: () => ({ channels: { xg_cwork_im: {} } }) },
181
+ agent: { session: {
182
+ resolveStorePath: () => "test-store",
183
+ getSessionEntry: ({ sessionKey }) => sessionKey === childSessionKey ? { spawnedBy: parentSessionKey } : undefined,
184
+ } },
185
+ },
186
+ on: (name, handler) => {
187
+ if (name === "before_tool_call")
188
+ before = handler;
189
+ if (name === "cron_changed")
190
+ changed = handler;
191
+ },
192
+ };
193
+ registerExecEnvHook(api);
194
+ registerCronAppKeyBindingHook(api);
195
+ changed?.({ action: "started", jobId: "job-1", job: { sessionTarget: `session:${parentSessionKey}` } }, {});
196
+ const result = before?.({ toolName: "exec", params: { env: {} } }, { sessionKey: childSessionKey, agentId: "agent-a" });
197
+ assert.equal(result.params.env.XG_OPENAPI_APP_KEY, "key-1");
198
+ });
199
+ it("finished removes active context immediately and TTL removes a missing-finished context", () => {
200
+ const sessionKey = "agent:agent-a:xg_cwork_im:group:g1";
201
+ setActiveCronContext({ agentId: "agent-a", sessionKey, jobId: "job-1", ttlMs: 100, now: 1_000 });
202
+ assert.equal(getActiveCronContexts("agent-a", sessionKey, 1_099).length, 1);
203
+ assert.equal(getActiveCronContexts("agent-a", sessionKey, 1_100).length, 0);
204
+ let changed;
205
+ registerCronAppKeyBindingHook({ on: (name, handler) => { if (name === "cron_changed")
206
+ changed = handler; } });
207
+ changed?.({ action: "started", jobId: "job-2", agentId: "agent-a", sessionTarget: `session:${sessionKey}` }, {});
208
+ assert.equal(getActiveCronContexts("agent-a", sessionKey).length, 1);
209
+ changed?.({ action: "finished", jobId: "job-2", agentId: "agent-a" }, {});
210
+ assert.equal(getActiveCronContexts("agent-a", sessionKey).length, 0);
211
+ });
212
+ it("allows equal active Cron AppKeys and rejects conflicting AppKeys", () => {
213
+ const dir = mkdtempSync(join(tmpdir(), "xg-cron-binding-"));
214
+ dirs.push(dir);
215
+ initCronAppKeyBindingStore(join(dir, "state"));
216
+ const sessionKey = "agent:agent-a:xg_cwork_im:group:g1";
217
+ bindCronAppKey({ agentId: "agent-a", jobId: "job-1", appKey: "same-key" });
218
+ bindCronAppKey({ agentId: "agent-a", jobId: "job-2", appKey: "same-key" });
219
+ setActiveCronContext({ agentId: "agent-a", sessionKey, jobId: "job-1" });
220
+ setActiveCronContext({ agentId: "agent-a", sessionKey, jobId: "job-2" });
221
+ let before;
222
+ registerExecEnvHook({
223
+ runtime: { config: { current: () => ({ channels: { xg_cwork_im: {} } }) } },
224
+ on: (name, handler) => { if (name === "before_tool_call")
225
+ before = handler; },
226
+ });
227
+ const equal = before?.({ toolName: "exec", params: { env: {} } }, { sessionKey, agentId: "agent-a" });
228
+ assert.equal(equal.params.env.XG_OPENAPI_APP_KEY, "same-key");
229
+ bindCronAppKey({ agentId: "agent-a", jobId: "job-2", appKey: "different-key" });
230
+ const conflict = before?.({ toolName: "exec", params: { env: { XG_OPENAPI_APP_KEY: "ai-wrong" } } }, { sessionKey, agentId: "agent-a" });
231
+ assert.deepEqual(conflict.params.env, {});
232
+ });
233
+ it("keeps ordinary exec parameters when the Cron binding file is unreadable", () => {
234
+ const dir = mkdtempSync(join(tmpdir(), "xg-cron-binding-"));
235
+ dirs.push(dir);
236
+ const stateDir = join(dir, "state");
237
+ initCronAppKeyBindingStore(stateDir);
238
+ const bindingPath = join(dir, "xg-cwork-im", "cron-appkey-bindings.json");
239
+ mkdirSync(join(dir, "xg-cwork-im"), { recursive: true });
240
+ writeFileSync(bindingPath, "{not-json");
241
+ const sessionKey = "agent:agent-a:xg_cwork_im:group:g1";
242
+ setActiveCronContext({ agentId: "agent-a", sessionKey, jobId: "job-1" });
243
+ let before;
244
+ registerExecEnvHook({
245
+ runtime: { config: { current: () => ({ channels: { xg_cwork_im: {} } }) } },
246
+ on: (name, handler) => { if (name === "before_tool_call")
247
+ before = handler; },
248
+ });
249
+ const result = before?.({ toolName: "exec", params: { command: "echo ok", env: { XG_OPENAPI_APP_KEY: "ai-wrong", KEEP: "1" } } }, { sessionKey, agentId: "agent-a" });
250
+ assert.equal(result.params.command, "echo ok");
251
+ assert.deepEqual(result.params.env, { KEEP: "1" });
252
+ });
95
253
  it("does not guess a creator AppKey from cron_changed without sessionKey", () => {
96
254
  const dir = mkdtempSync(join(tmpdir(), "xg-cron-binding-"));
97
255
  dirs.push(dir);
@@ -1 +1 @@
1
- {"version":3,"file":"cron-appkey-binding-store.test.js","sourceRoot":"","sources":["../../src/cron-appkey-binding-store.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cron-appkey-binding-store.test.js","sourceRoot":"","sources":["../../src/cron-appkey-binding-store.test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export interface PlanWsTarget {
6
6
  /** 按 groupId 覆盖登记(新一轮会话的 client 取代旧的)。 */
7
7
  export declare function setPlanWsClient(groupId: string, client: ImStreamClient, replyToMsgId: string): void;
8
8
  export declare function getPlanWsClient(groupId: string): PlanWsTarget | undefined;
9
+ /** 账号真正停止时,移除指向该物理 client 的全部群组路由;其他账号路由不受影响。 */
10
+ export declare function removePlanWsClientsByClient(client: ImStreamClient): void;
9
11
  /** 测试用:重置模块级缓存 */
10
12
  export declare function resetPlanWsRegistryForTest(): void;
11
13
  /** 插件卸载/重载时清空计划 WS 登记表。 */
@@ -1 +1 @@
1
- {"version":3,"file":"plan-ws-registry.d.ts","sourceRoot":"","sources":["../../src/plan-ws-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACxB;AAiBD,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAKnG;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEzE;AAED,kBAAkB;AAClB,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,2BAA2B;AAC3B,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
1
+ {"version":3,"file":"plan-ws-registry.d.ts","sourceRoot":"","sources":["../../src/plan-ws-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACxB;AAiBD,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAKnG;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEzE;AAED,iDAAiD;AACjD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAMxE;AAED,kBAAkB;AAClB,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,2BAA2B;AAC3B,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -20,6 +20,14 @@ export function setPlanWsClient(groupId, client, replyToMsgId) {
20
20
  export function getPlanWsClient(groupId) {
21
21
  return planWsClients.get(groupId);
22
22
  }
23
+ /** 账号真正停止时,移除指向该物理 client 的全部群组路由;其他账号路由不受影响。 */
24
+ export function removePlanWsClientsByClient(client) {
25
+ for (const [groupId, target] of planWsClients) {
26
+ if (target.client === client) {
27
+ planWsClients.delete(groupId);
28
+ }
29
+ }
30
+ }
23
31
  /** 测试用:重置模块级缓存 */
24
32
  export function resetPlanWsRegistryForTest() {
25
33
  disposePlanWsRegistry();
@@ -1 +1 @@
1
- {"version":3,"file":"plan-ws-registry.js","sourceRoot":"","sources":["../../src/plan-ws-registry.ts"],"names":[],"mappings":"AAOA,gDAAgD;AAChD,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEtD,SAAS,uBAAuB;IAC5B,OAAO,aAAa,CAAC,IAAI,GAAG,yBAAyB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACpD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM;QACV,CAAC;QACD,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;AACL,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,MAAsB,EAAE,YAAoB;IACzF,+BAA+B;IAC/B,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACrD,uBAAuB,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC3C,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,0BAA0B;IACtC,qBAAqB,EAAE,CAAC;AAC5B,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,qBAAqB;IACjC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"plan-ws-registry.js","sourceRoot":"","sources":["../../src/plan-ws-registry.ts"],"names":[],"mappings":"AAOA,gDAAgD;AAChD,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;AAEtD,SAAS,uBAAuB;IAC5B,OAAO,aAAa,CAAC,IAAI,GAAG,yBAAyB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACpD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM;QACV,CAAC;QACD,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;AACL,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,MAAsB,EAAE,YAAoB;IACzF,+BAA+B;IAC/B,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACrD,uBAAuB,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC3C,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,2BAA2B,CAAC,MAAsB;IAC9D,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;AACL,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,0BAA0B;IACtC,qBAAqB,EAAE,CAAC;AAC5B,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,qBAAqB;IACjC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import assert from "node:assert/strict";
2
2
  import { describe, it, beforeEach } from "node:test";
3
- import { getPlanWsClient, resetPlanWsRegistryForTest, setPlanWsClient, } from "./plan-ws-registry.js";
3
+ import { getPlanWsClient, removePlanWsClientsByClient, resetPlanWsRegistryForTest, setPlanWsClient, } from "./plan-ws-registry.js";
4
+ import { disposePluginModule } from "./plugin-dispose.js";
4
5
  function makeClient() {
5
6
  return {
6
7
  start: async () => { },
@@ -39,5 +40,22 @@ describe("plan-ws-registry", () => {
39
40
  it("未登记的 groupId → undefined", () => {
40
41
  assert.equal(getPlanWsClient("g-never-registered"), undefined);
41
42
  });
43
+ it("按物理 client 定向移除路由时不影响其他 client", () => {
44
+ const clientA = makeClient();
45
+ const clientB = makeClient();
46
+ setPlanWsClient("g-a1", clientA, "msg-a1");
47
+ setPlanWsClient("g-a2", clientA, "msg-a2");
48
+ setPlanWsClient("g-b1", clientB, "msg-b1");
49
+ removePlanWsClientsByClient(clientA);
50
+ assert.equal(getPlanWsClient("g-a1"), undefined);
51
+ assert.equal(getPlanWsClient("g-a2"), undefined);
52
+ assert.equal(getPlanWsClient("g-b1")?.client, clientB);
53
+ });
54
+ it("registry cleanup 跳过计划资源时保留 WS 路由", async () => {
55
+ const client = makeClient();
56
+ setPlanWsClient("g-keep", client, "msg-keep");
57
+ await disposePluginModule({ skipConnections: true, skipPlanResources: true });
58
+ assert.equal(getPlanWsClient("g-keep")?.client, client);
59
+ });
42
60
  });
43
61
  //# sourceMappingURL=plan-ws-registry.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-ws-registry.test.js","sourceRoot":"","sources":["../../src/plan-ws-registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EACH,eAAe,EACf,0BAA0B,EAC1B,eAAe,GAClB,MAAM,uBAAuB,CAAC;AAE/B,SAAS,UAAU;IACf,OAAO;QACH,KAAK,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC;QACtB,cAAc,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC;QAC/B,WAAW,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC;QAC5B,SAAS,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC;QAC1B,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC;KACvB,CAAC;AACN,CAAC;AAED,UAAU,CAAC,GAAG,EAAE;IACZ,0BAA0B,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAE7B,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAE5D,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAElE,gBAAgB;QAChB,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,cAAc,CAAC,CAAC;QAE5D,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjE,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"plan-ws-registry.test.js","sourceRoot":"","sources":["../../src/plan-ws-registry.test.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,16 @@
5
5
  * - 真卸载 / gateway_stop:`disposePluginModule()`(skipConnections=false)——连同进程级共享的
6
6
  * account-reconciler 一起 stopAll,并清空全部共享内存态(连接/流客户端/会话上下文/轮次/去重/env/
7
7
  * subagent 监控)。由 index.ts 的 gateway_stop 钩子触发,且用 once 闸门保证只执行一次。
8
- * - 插件热重载 / registry 代际交替:cleanup 一律以 `disposePluginModule({ skipConnections: true })`
9
- * 调用——只收尾本模块实例独占、非连接的句柄(plan/action/cron SQLite、plan-ws、token 缓存),
8
+ * - 插件热重载 / registry 代际交替:cleanup `disposePluginModule({ skipConnections: true,
9
+ * skipPlanResources: true })` 调用——只收尾可安全代际清理的句柄,保留计划读库与 plan-ws 路由,
10
10
  * **绝不 stopAll、绝不清理共享连接/内存态**。连接只在 AccountReconciler(配置 diff,账号级)
11
11
  * 与 gateway_stop(进程停机)处拆解,避免 OpenClaw runtime 代际交替误拆全部 WebSocket。
12
12
  */
13
13
  export interface DisposePluginModuleOptions {
14
14
  /** 注册表代际交替(热重载)场景:只收尾独占句柄,跳过共享连接与共享内存态。 */
15
15
  skipConnections?: boolean;
16
+ /** 注册表代际交替时保留计划读库句柄与计划 WS 路由;gateway_stop 使用默认 false 完整清理。 */
17
+ skipPlanResources?: boolean;
16
18
  }
17
19
  /** skipConnections=false(gateway_stop)时停连接+清共享态;true(cleanup)只收尾独占句柄。 */
18
20
  export declare function disposePluginModule(options?: DisposePluginModuleOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-dispose.d.ts","sourceRoot":"","sources":["../../src/plugin-dispose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiBH,MAAM,WAAW,0BAA0B;IACvC,2CAA2C;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,yEAAyE;AACzE,wBAAsB,mBAAmB,CACrC,OAAO,GAAE,0BAA+B,GACzC,OAAO,CAAC,IAAI,CAAC,CAuBf"}
1
+ {"version":3,"file":"plugin-dispose.d.ts","sourceRoot":"","sources":["../../src/plugin-dispose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkBH,MAAM,WAAW,0BAA0B;IACvC,2CAA2C;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,yEAAyE;AACzE,wBAAsB,mBAAmB,CACrC,OAAO,GAAE,0BAA+B,GACzC,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -5,12 +5,13 @@
5
5
  * - 真卸载 / gateway_stop:`disposePluginModule()`(skipConnections=false)——连同进程级共享的
6
6
  * account-reconciler 一起 stopAll,并清空全部共享内存态(连接/流客户端/会话上下文/轮次/去重/env/
7
7
  * subagent 监控)。由 index.ts 的 gateway_stop 钩子触发,且用 once 闸门保证只执行一次。
8
- * - 插件热重载 / registry 代际交替:cleanup 一律以 `disposePluginModule({ skipConnections: true })`
9
- * 调用——只收尾本模块实例独占、非连接的句柄(plan/action/cron SQLite、plan-ws、token 缓存),
8
+ * - 插件热重载 / registry 代际交替:cleanup `disposePluginModule({ skipConnections: true,
9
+ * skipPlanResources: true })` 调用——只收尾可安全代际清理的句柄,保留计划读库与 plan-ws 路由,
10
10
  * **绝不 stopAll、绝不清理共享连接/内存态**。连接只在 AccountReconciler(配置 diff,账号级)
11
11
  * 与 gateway_stop(进程停机)处拆解,避免 OpenClaw runtime 代际交替误拆全部 WebSocket。
12
12
  */
13
13
  import { accountReconciler } from "./account-reconciler.js";
14
+ import { disposeActiveCronContextStore } from "./active-cron-context-store.js";
14
15
  import { clearStreamClients } from "./agent-stream-client-registry.js";
15
16
  import { disposeActiveRoundRegistry } from "./active-round-registry.js";
16
17
  import { disposeActionStore } from "./action-store-access.js";
@@ -27,8 +28,10 @@ import { disposeSubagentMonitor } from "./subagent-monitor.js";
27
28
  /** skipConnections=false(gateway_stop)时停连接+清共享态;true(cleanup)只收尾独占句柄。 */
28
29
  export async function disposePluginModule(options = {}) {
29
30
  const { skipConnections = false } = options;
31
+ const { skipPlanResources = false } = options;
30
32
  if (skipConnections) {
31
- console.log("[xg_cwork_im] [reload] disposePluginModule skipConnections=true (registry cycle)");
33
+ console.log(`[xg_cwork_im] [reload] disposePluginModule skipConnections=true ` +
34
+ `skipPlanResources=${skipPlanResources} (registry cycle)`);
32
35
  }
33
36
  else {
34
37
  // gateway_stop:停共享连接 + 清空共享热路径内存态(含 subagent 监控 maps/ticker)。
@@ -41,13 +44,15 @@ export async function disposePluginModule(options = {}) {
41
44
  clearAllPendingPerMessageModel();
42
45
  clearSessionNasVolumeStates();
43
46
  disposeSessionEnvStore();
47
+ disposeActiveCronContextStore();
48
+ disposeCronAppKeyBindingStore();
44
49
  }
45
- // 以下为本模块实例独占资源(不随模块共享),registry 代际交替时也照常清理,避免逐代泄漏:
46
- // plan/action/cron SQLite 句柄、plan-ws 句柄、token 缓存。
50
+ // 计划资源在 registry 代际交替时由新一代继续使用,不能被旧 cleanup 清空;gateway_stop 仍完整释放。
47
51
  disposeActionStore();
48
- disposePlanStore();
49
- disposePlanWsRegistry();
50
- disposeCronAppKeyBindingStore();
52
+ if (!skipPlanResources) {
53
+ disposePlanStore();
54
+ disposePlanWsRegistry();
55
+ }
51
56
  clearAllTokenCache();
52
57
  }
53
58
  //# sourceMappingURL=plugin-dispose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-dispose.js","sourceRoot":"","sources":["../../src/plugin-dispose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAO/D,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,UAAsC,EAAE;IAExC,MAAM,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAC5C,IAAI,eAAe,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;IACpG,CAAC;SAAM,CAAC;QACJ,8DAA8D;QAC9D,MAAM,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChD,sBAAsB,EAAE,CAAC;QACzB,kBAAkB,EAAE,CAAC;QACrB,uBAAuB,EAAE,CAAC;QAC1B,0BAA0B,EAAE,CAAC;QAC7B,yBAAyB,EAAE,CAAC;QAC5B,8BAA8B,EAAE,CAAC;QACjC,2BAA2B,EAAE,CAAC;QAC9B,sBAAsB,EAAE,CAAC;IAC7B,CAAC;IACD,mDAAmD;IACnD,kDAAkD;IAClD,kBAAkB,EAAE,CAAC;IACrB,gBAAgB,EAAE,CAAC;IACnB,qBAAqB,EAAE,CAAC;IACxB,6BAA6B,EAAE,CAAC;IAChC,kBAAkB,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"plugin-dispose.js","sourceRoot":"","sources":["../../src/plugin-dispose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAS/D,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,UAAsC,EAAE;IAExC,MAAM,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAC9C,IAAI,eAAe,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CACP,kEAAkE;YAC9D,qBAAqB,iBAAiB,mBAAmB,CAChE,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,8DAA8D;QAC9D,MAAM,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChD,sBAAsB,EAAE,CAAC;QACzB,kBAAkB,EAAE,CAAC;QACrB,uBAAuB,EAAE,CAAC;QAC1B,0BAA0B,EAAE,CAAC;QAC7B,yBAAyB,EAAE,CAAC;QAC5B,8BAA8B,EAAE,CAAC;QACjC,2BAA2B,EAAE,CAAC;QAC9B,sBAAsB,EAAE,CAAC;QACzB,6BAA6B,EAAE,CAAC;QAChC,6BAA6B,EAAE,CAAC;IACpC,CAAC;IACD,mEAAmE;IACnE,kBAAkB,EAAE,CAAC;IACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,gBAAgB,EAAE,CAAC;QACnB,qBAAqB,EAAE,CAAC;IAC5B,CAAC;IACD,kBAAkB,EAAE,CAAC;AACzB,CAAC"}
@@ -15,6 +15,11 @@ export type CronSessionRef = {
15
15
  jobId: string;
16
16
  runId: string;
17
17
  };
18
+ type SessionTargetRef = {
19
+ agentId: string;
20
+ sessionKey: string;
21
+ };
22
+ export declare function parseCronSessionTarget(sessionTarget: string | undefined): SessionTargetRef | undefined;
18
23
  /** Return true only for the supported CLI/API forms that create a Cron job. */
19
24
  export declare function isCronCreateCommand(command: string | undefined): boolean;
20
25
  /** Extract the authoritative job id from native Cron or CLI results. */
@@ -24,4 +29,5 @@ export declare function parseCronSessionKey(sessionKey: string | undefined): Cro
24
29
  export declare function registerExecEnvHook(api: OpenClawPluginApi): void;
25
30
  /** Register automatic binding when a Cron job is created from an IM session. */
26
31
  export declare function registerCronAppKeyBindingHook(api: OpenClawPluginApi): void;
32
+ export {};
27
33
  //# 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;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAUnF,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;AAkJ/E,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKxE;AA0CD,wEAAwE;AACxE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkB9E;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAkB9F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAgDhE;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAqE1E"}
1
+ {"version":3,"file":"register-exec-env-hook.d.ts","sourceRoot":"","sources":["../../src/register-exec-env-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAmBnF,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;AAsB/E,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AA0BhE,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAMtG;AAgJD,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKxE;AA0CD,wEAAwE;AACxE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkB9E;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAkB9F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAgDhE;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAiG1E"}