@xgjktech/xg_cwork_im 1.19.32 → 1.19.34

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/src/connection/account-connection.d.ts.map +1 -1
  2. package/dist/src/connection/account-connection.js +8 -1
  3. package/dist/src/connection/account-connection.js.map +1 -1
  4. package/dist/src/connection/ws-inbound-schema.test.js +29 -0
  5. package/dist/src/connection/ws-inbound-schema.test.js.map +1 -1
  6. package/dist/src/inbound/inbound-display.d.ts.map +1 -1
  7. package/dist/src/inbound/inbound-display.js +5 -0
  8. package/dist/src/inbound/inbound-display.js.map +1 -1
  9. package/dist/src/inbound/inbound-display.test.d.ts +2 -0
  10. package/dist/src/inbound/inbound-display.test.d.ts.map +1 -0
  11. package/dist/src/inbound/inbound-display.test.js +36 -0
  12. package/dist/src/inbound/inbound-display.test.js.map +1 -0
  13. package/dist/src/plugin/plugin-dispose.d.ts.map +1 -1
  14. package/dist/src/plugin/plugin-dispose.js +2 -0
  15. package/dist/src/plugin/plugin-dispose.js.map +1 -1
  16. package/dist/src/session/robot-env-store.d.ts +61 -0
  17. package/dist/src/session/robot-env-store.d.ts.map +1 -0
  18. package/dist/src/session/robot-env-store.js +356 -0
  19. package/dist/src/session/robot-env-store.js.map +1 -0
  20. package/dist/src/session/robot-env-store.test.d.ts +2 -0
  21. package/dist/src/session/robot-env-store.test.d.ts.map +1 -0
  22. package/dist/src/session/robot-env-store.test.js +151 -0
  23. package/dist/src/session/robot-env-store.test.js.map +1 -0
  24. package/dist/src/session/session-env-store.d.ts +7 -2
  25. package/dist/src/session/session-env-store.d.ts.map +1 -1
  26. package/dist/src/session/session-env-store.js +13 -4
  27. package/dist/src/session/session-env-store.js.map +1 -1
  28. package/dist/src/tools/register-exec-env-hook.d.ts +14 -0
  29. package/dist/src/tools/register-exec-env-hook.d.ts.map +1 -1
  30. package/dist/src/tools/register-exec-env-hook.js +48 -1
  31. package/dist/src/tools/register-exec-env-hook.js.map +1 -1
  32. package/dist/src/tools/register-exec-env-hook.test.js +81 -2
  33. package/dist/src/tools/register-exec-env-hook.test.js.map +1 -1
  34. package/package.json +1 -1
@@ -0,0 +1,356 @@
1
+ /**
2
+ * 机器人(Channel Account)级环境变量缓存。
3
+ *
4
+ * 来源:IM 服务端随 `robotMention` 下发的 `params.msgContent.ext.env`
5
+ * (服务端 `t_im_robot.ext_params.env`,机器人归属人配置、整体覆盖写入)。
6
+ *
7
+ * 语义:
8
+ * - 机器人级整份快照:收到即**整体替换**;`robotMention` 未带 `ext.env` 视为「清空」。
9
+ * - 只放进程内存(进程级共享 Map,跨热重载存活),**不落盘**——每条 robotMention 都会下发,
10
+ * Gateway 重启后等下一条消息即可。
11
+ *
12
+ * 注入:由 `before_tool_call` 在每次 `exec` 时把过滤后的 env 写入 `event.params.env`,
13
+ * 从而进入沙箱 / Gateway / Node 的 exec 环境(沙箱不过滤,非沙箱侧由 OpenClaw 再校验)。
14
+ *
15
+ * 过滤:丢弃 OpenClaw 保留或不安全的「解释器/运行时注入」类键(如 NODE_OPTIONS、LD_*、DYLD_*、
16
+ * PATH 等),避免注入失败或污染子进程;其余键(如 HTTP_PROXY、业务 token)放行。
17
+ */
18
+ import { getSharedMap } from "../plugin/process-shared-store.js";
19
+ /** 单条 value 的 UTF-8 字节上限。 */
20
+ const MAX_VALUE_BYTES = 32768;
21
+ /** 便携环境变量名(工程一致:字母/下划线开头,字母数字下划线)。 */
22
+ const PORTABLE_KEY = /^[A-Za-z_][A-Za-z0-9_]*$/;
23
+ /** 会话级缓存条目数上限(防御无界增长)。 */
24
+ const MAX_ENTRIES = 500;
25
+ /** 条目 TTL:长时间无消息自动清理(下次 robotMention 会重新写入)。 */
26
+ const TTL_MS = 24 * 60 * 60 * 1000;
27
+ /**
28
+ * OpenClaw 全 host 均禁止的「解释器/运行时注入」键。
29
+ * vendor 自 openclaw `src/infra/host-env-security-policy.json` 的 `blockedEverywhereKeys`
30
+ * (对应 OpenClaw 2026.9.x;升级 OpenClaw 时需对照刷新)。
31
+ */
32
+ const BLOCKED_KEYS = new Set([
33
+ "NODE_OPTIONS",
34
+ "NODE_PATH",
35
+ "NODE_REDIRECT_WARNINGS",
36
+ "NODE_REPL_EXTERNAL_MODULE",
37
+ "NODE_REPL_HISTORY",
38
+ "NODE_V8_COVERAGE",
39
+ "PYTHONHOME",
40
+ "PYTHONPATH",
41
+ "PERL5LIB",
42
+ "PERL5OPT",
43
+ "RUBYLIB",
44
+ "RUBYOPT",
45
+ "BASHOPTS",
46
+ "BASH_ENV",
47
+ "ENV",
48
+ "KSH_ENV",
49
+ "BROWSER",
50
+ "GIT_ALLOW_PROTOCOL",
51
+ "GIT_EDITOR",
52
+ "GIT_EXTERNAL_DIFF",
53
+ "GIT_DIR",
54
+ "GIT_WORK_TREE",
55
+ "GIT_COMMON_DIR",
56
+ "GIT_EXEC_PATH",
57
+ "GIT_INDEX_FILE",
58
+ "GIT_OBJECT_DIRECTORY",
59
+ "GIT_ALTERNATE_OBJECT_DIRECTORIES",
60
+ "GIT_NAMESPACE",
61
+ "GIT_PROTOCOL_FROM_USER",
62
+ "GIT_SEQUENCE_EDITOR",
63
+ "GIT_TEMPLATE_DIR",
64
+ "GIT_SSL_NO_VERIFY",
65
+ "GIT_SSL_CAINFO",
66
+ "GIT_SSL_CAPATH",
67
+ "CC",
68
+ "CPP",
69
+ "CXX",
70
+ "CXXCPP",
71
+ "CARGO_BUILD_RUSTC",
72
+ "CARGO_BUILD_RUSTC_WRAPPER",
73
+ "CARGO_BUILD_RUSTC_WORKSPACE_WRAPPER",
74
+ "CARGO_BUILD_RUSTDOC",
75
+ "RUSTC",
76
+ "RUSTC_WRAPPER",
77
+ "RUSTC_WORKSPACE_WRAPPER",
78
+ "RUSTDOC",
79
+ "CMAKE_C_COMPILER",
80
+ "CMAKE_CXX_COMPILER",
81
+ "SHELL",
82
+ "SHELLOPTS",
83
+ "PS4",
84
+ "GCONV_PATH",
85
+ "IFS",
86
+ "SSLKEYLOGFILE",
87
+ "JAVA_OPTS",
88
+ "JAVA_TOOL_OPTIONS",
89
+ "_JAVA_OPTIONS",
90
+ "JDK_JAVA_OPTIONS",
91
+ "PYTHONBREAKPOINT",
92
+ "DOTNET_STARTUP_HOOKS",
93
+ "DOTNET_ADDITIONAL_DEPS",
94
+ "FPATH",
95
+ "GLIBC_TUNABLES",
96
+ "MAVEN_OPTS",
97
+ "MAKE",
98
+ "MAKEFLAGS",
99
+ "MFLAGS",
100
+ "SBT_OPTS",
101
+ "GRADLE_OPTS",
102
+ "ANT_OPTS",
103
+ "HGRCPATH",
104
+ "HGEDITOR",
105
+ "HGMERGE",
106
+ "EXINIT",
107
+ "VIMINIT",
108
+ "MYVIMRC",
109
+ "GVIMINIT",
110
+ "LUA_INIT",
111
+ "LUA_INIT_5_1",
112
+ "LUA_INIT_5_2",
113
+ "LUA_INIT_5_3",
114
+ "LUA_INIT_5_4",
115
+ "EMACSLOADPATH",
116
+ "RUBYSHELL",
117
+ "GIT_HOOK_PATH",
118
+ "SVN_EDITOR",
119
+ "SVN_SSH",
120
+ "BZR_EDITOR",
121
+ "BZR_SSH",
122
+ "BZR_PLUGIN_PATH",
123
+ "SUDO_ASKPASS",
124
+ "JULIA_EDITOR",
125
+ "CONFIG_SITE",
126
+ "CONFIG_SHELL",
127
+ "CMAKE_TOOLCHAIN_FILE",
128
+ "CATALINA_OPTS",
129
+ "CORECLR_PROFILER",
130
+ "HELM_PLUGINS",
131
+ "PACKER_PLUGIN_PATH",
132
+ "VAGRANT_VAGRANTFILE",
133
+ "ERL_AFLAGS",
134
+ "ERL_FLAGS",
135
+ "ERL_ZFLAGS",
136
+ "ELIXIR_ERL_OPTIONS",
137
+ "R_ENVIRON",
138
+ "R_PROFILE",
139
+ "R_ENVIRON_USER",
140
+ "R_PROFILE_USER",
141
+ "TCLLIBPATH",
142
+ "HOSTALIASES",
143
+ ].map((key) => key.toUpperCase()));
144
+ /** OpenClaw 全 host 禁止的前缀(动态链接器 / shell 函数注入)。 */
145
+ const BLOCKED_PREFIXES = ["DYLD_", "LD_", "BASH_FUNC_"];
146
+ /** 插件自留键:不随机器人 env 注入(避免覆盖 OpenClaw 的 PATH 处理与插件身份标记)。 */
147
+ const RESERVED_KEYS = new Set(["PATH", "OPENCLAW_CLI"]);
148
+ const LOG_PREFIX = "[xg_cwork_im] [robot-env]";
149
+ /** 主索引:按机器人(Channel Account)。 */
150
+ const byAccountId = getSharedMap("robot-env-by-account");
151
+ /**
152
+ * 次索引:按 Agent。
153
+ * 供 **cron / 心跳 / exec 完成唤醒** 等没有入站消息、拿不到 `(sessionKey → accountId)`
154
+ * 的回合按 `ctx.agentId` 兜底命中缓存(同一 Agent 的会话只有一个机器人时等同于账户级)。
155
+ */
156
+ const byAgentId = getSharedMap("robot-env-by-agent");
157
+ function isRecord(value) {
158
+ return typeof value === "object" && value !== null && !Array.isArray(value);
159
+ }
160
+ /** 是否属于 OpenClaw 保留 / 不安全的键(解释器、动态链接器、运行时注入类)。 */
161
+ export function isBlockedRobotEnvKey(rawKey) {
162
+ const upper = rawKey.trim().toUpperCase();
163
+ if (!upper)
164
+ return true;
165
+ if (RESERVED_KEYS.has(upper))
166
+ return true;
167
+ if (BLOCKED_KEYS.has(upper))
168
+ return true;
169
+ return BLOCKED_PREFIXES.some((prefix) => upper.startsWith(prefix));
170
+ }
171
+ /**
172
+ * 校验并过滤机器人环境变量。
173
+ * - key 必须为便携名;
174
+ * - value 允许字符串 / 数字 / 布尔(按字符串处理),拒绝 null/对象/数组、NUL、换行、超长;
175
+ * - 丢弃 OpenClaw 保留/危险键。
176
+ *
177
+ * @returns `env` 为通过的键值;`dropped` 为被丢弃的键名(仅用于日志,不记值)。
178
+ */
179
+ export function filterRobotEnv(raw) {
180
+ const env = {};
181
+ const dropped = [];
182
+ if (!isRecord(raw))
183
+ return { env, dropped };
184
+ for (const [rawKey, rawValue] of Object.entries(raw)) {
185
+ const key = rawKey.trim();
186
+ if (!PORTABLE_KEY.test(key)) {
187
+ dropped.push(key || "(empty)");
188
+ continue;
189
+ }
190
+ if (isBlockedRobotEnvKey(key)) {
191
+ dropped.push(key);
192
+ continue;
193
+ }
194
+ let value;
195
+ if (typeof rawValue === "string") {
196
+ value = rawValue;
197
+ }
198
+ else if (typeof rawValue === "number" || typeof rawValue === "boolean") {
199
+ value = String(rawValue);
200
+ }
201
+ else {
202
+ dropped.push(key);
203
+ continue;
204
+ }
205
+ if (value.includes("\0") || /[\r\n]/.test(value)) {
206
+ dropped.push(key);
207
+ continue;
208
+ }
209
+ if (Buffer.byteLength(value, "utf8") > MAX_VALUE_BYTES) {
210
+ dropped.push(key);
211
+ continue;
212
+ }
213
+ env[key] = value;
214
+ }
215
+ return { env, dropped };
216
+ }
217
+ /** 从 `msgContent.ext` 中提取原始 `env`(未校验);不存在返回 undefined。 */
218
+ export function extractRobotEnvFromExt(ext) {
219
+ if (!isRecord(ext))
220
+ return undefined;
221
+ return ext.env;
222
+ }
223
+ function deleteEntry(entry) {
224
+ if (byAccountId.get(entry.accountId) === entry) {
225
+ byAccountId.delete(entry.accountId);
226
+ }
227
+ if (entry.agentId && byAgentId.get(entry.agentId) === entry) {
228
+ byAgentId.delete(entry.agentId);
229
+ }
230
+ }
231
+ function pruneExpired(now) {
232
+ for (const entry of [...byAccountId.values()]) {
233
+ if (now - entry.updatedAt > TTL_MS)
234
+ deleteEntry(entry);
235
+ }
236
+ // 兜底:仅存在于 agent 索引的条目(正常不会出现,防御性处理)。
237
+ for (const entry of [...byAgentId.values()]) {
238
+ if (now - entry.updatedAt > TTL_MS)
239
+ deleteEntry(entry);
240
+ }
241
+ }
242
+ function evictOldestIfOverCapacity() {
243
+ if (byAccountId.size < MAX_ENTRIES)
244
+ return;
245
+ let oldest;
246
+ for (const entry of byAccountId.values()) {
247
+ if (!oldest || entry.updatedAt < oldest.updatedAt)
248
+ oldest = entry;
249
+ }
250
+ if (oldest)
251
+ deleteEntry(oldest);
252
+ }
253
+ /**
254
+ * 整体替换某机器人的环境变量:先校验过滤,再覆盖写入。
255
+ * 过滤后为空(含传入 null/undefined/{})时删除该账户/Agent 缓存。
256
+ *
257
+ * @param agentId 该机器人对应的 Agent。写入后同时建立 Agent 索引,
258
+ * 供 cron / 心跳等无入站上下文的回合按 `ctx.agentId` 兜底命中。
259
+ */
260
+ export function setRobotEnv(accountId, raw, agentId) {
261
+ const id = accountId?.trim();
262
+ if (!id)
263
+ return;
264
+ const agent = agentId?.trim() || undefined;
265
+ const { env, dropped } = filterRobotEnv(raw);
266
+ const now = Date.now();
267
+ pruneExpired(now);
268
+ if (Object.keys(env).length === 0) {
269
+ const existing = byAccountId.get(id);
270
+ if (existing)
271
+ deleteEntry(existing);
272
+ if (agent) {
273
+ const existingAgent = byAgentId.get(agent);
274
+ if (existingAgent)
275
+ deleteEntry(existingAgent);
276
+ }
277
+ if (dropped.length > 0) {
278
+ console.warn(`${LOG_PREFIX} accountId=${id} 全部键被过滤: ${dropped.join(", ")}`);
279
+ }
280
+ return;
281
+ }
282
+ if (!byAccountId.has(id)) {
283
+ evictOldestIfOverCapacity();
284
+ }
285
+ const entry = { accountId: id, agentId: agent, env, updatedAt: now };
286
+ byAccountId.set(id, entry);
287
+ if (agent)
288
+ byAgentId.set(agent, entry);
289
+ if (dropped.length > 0) {
290
+ console.warn(`${LOG_PREFIX} accountId=${id} 已忽略键: ${dropped.join(", ")}`);
291
+ }
292
+ }
293
+ /** 读取某机器人的环境变量快照(过期返回 undefined)。 */
294
+ export function getRobotEnv(accountId) {
295
+ const id = accountId?.trim();
296
+ if (!id)
297
+ return undefined;
298
+ const entry = byAccountId.get(id);
299
+ if (!entry)
300
+ return undefined;
301
+ if (Date.now() - entry.updatedAt > TTL_MS) {
302
+ deleteEntry(entry);
303
+ return undefined;
304
+ }
305
+ return { ...entry.env };
306
+ }
307
+ /**
308
+ * 按 Agent 读取机器人环境变量快照(cron / 心跳 / exec 完成唤醒等无入站上下文的回合兜底)。
309
+ * 同一 Agent 绑定多个机器人时以「最近一次入站」为准。
310
+ */
311
+ export function getRobotEnvByAgentId(agentId) {
312
+ const id = agentId?.trim();
313
+ if (!id)
314
+ return undefined;
315
+ const entry = byAgentId.get(id);
316
+ if (!entry)
317
+ return undefined;
318
+ if (Date.now() - entry.updatedAt > TTL_MS) {
319
+ deleteEntry(entry);
320
+ return undefined;
321
+ }
322
+ return { accountId: entry.accountId, env: { ...entry.env } };
323
+ }
324
+ /** 清除某机器人(或某 Agent)缓存。 */
325
+ export function clearRobotEnv(accountId, agentId) {
326
+ const id = accountId?.trim();
327
+ if (id) {
328
+ const entry = byAccountId.get(id);
329
+ if (entry)
330
+ deleteEntry(entry);
331
+ }
332
+ const agent = agentId?.trim();
333
+ if (agent) {
334
+ const entry = byAgentId.get(agent);
335
+ if (entry)
336
+ deleteEntry(entry);
337
+ }
338
+ }
339
+ /** 插件卸载 / gateway_stop 时清空全部缓存。 */
340
+ export function clearRobotEnvStore() {
341
+ byAccountId.clear();
342
+ byAgentId.clear();
343
+ }
344
+ export function __resetRobotEnvStoreForTests() {
345
+ byAccountId.clear();
346
+ byAgentId.clear();
347
+ }
348
+ /** 仅供测试:账户索引条目数。 */
349
+ export function __robotEnvSizeForTests() {
350
+ return byAccountId.size;
351
+ }
352
+ /** 仅供测试:Agent 索引条目数。 */
353
+ export function __robotEnvAgentSizeForTests() {
354
+ return byAgentId.size;
355
+ }
356
+ //# sourceMappingURL=robot-env-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robot-env-store.js","sourceRoot":"","sources":["../../../src/session/robot-env-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=robot-env-store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robot-env-store.test.d.ts","sourceRoot":"","sources":["../../../src/session/robot-env-store.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
1
+ import assert from "node:assert/strict";
2
+ import { beforeEach, describe, it } from "node:test";
3
+ import { __resetRobotEnvStoreForTests, __robotEnvAgentSizeForTests, __robotEnvSizeForTests, clearRobotEnv, clearRobotEnvStore, extractRobotEnvFromExt, filterRobotEnv, getRobotEnv, getRobotEnvByAgentId, setRobotEnv, } from "./robot-env-store.js";
4
+ beforeEach(() => __resetRobotEnvStoreForTests());
5
+ describe("filterRobotEnv", () => {
6
+ it("保留普通业务键(含代理)并原样返回字符串", () => {
7
+ const { env, dropped } = filterRobotEnv({
8
+ CMS_TOKEN: "abc123",
9
+ HTTP_PROXY: "http://10.0.0.1:8080",
10
+ NO_PROXY: "localhost",
11
+ });
12
+ assert.deepEqual(env, {
13
+ CMS_TOKEN: "abc123",
14
+ HTTP_PROXY: "http://10.0.0.1:8080",
15
+ NO_PROXY: "localhost",
16
+ });
17
+ assert.deepEqual(dropped, []);
18
+ });
19
+ it("数字/布尔按字符串存储", () => {
20
+ const { env } = filterRobotEnv({ RETRY: 3, FLAG: true });
21
+ assert.equal(env.RETRY, "3");
22
+ assert.equal(env.FLAG, "true");
23
+ });
24
+ it("丢弃 OpenClaw 保留 / 危险的解释器与链接器注入键", () => {
25
+ const { env, dropped } = filterRobotEnv({
26
+ NODE_OPTIONS: "--require /tmp/evil",
27
+ PYTHONPATH: "/tmp",
28
+ LD_PRELOAD: "/tmp/evil.so",
29
+ DYLD_INSERT_LIBRARIES: "/tmp/evil.dylib",
30
+ BASH_FUNC_x: "() { :; }",
31
+ PATH: "/tmp/bin",
32
+ OPENCLAW_CLI: "0",
33
+ KEEP: "1",
34
+ });
35
+ assert.deepEqual(env, { KEEP: "1" });
36
+ assert.deepEqual(dropped.sort(), [
37
+ "BASH_FUNC_x",
38
+ "DYLD_INSERT_LIBRARIES",
39
+ "LD_PRELOAD",
40
+ "NODE_OPTIONS",
41
+ "OPENCLAW_CLI",
42
+ "PATH",
43
+ "PYTHONPATH",
44
+ ]);
45
+ });
46
+ it("丢弃非法键名、NUL、换行与非标量值", () => {
47
+ const { env, dropped } = filterRobotEnv({
48
+ "1BAD": "x",
49
+ "A B": "x",
50
+ NUL: "a\0b",
51
+ NL: "a\nb",
52
+ CR: "a\rb",
53
+ OBJ: { a: 1 },
54
+ ARR: [1],
55
+ NULLV: null,
56
+ GOOD: "ok",
57
+ });
58
+ assert.deepEqual(env, { GOOD: "ok" });
59
+ assert.equal(dropped.length, 8);
60
+ });
61
+ it("丢弃超长 value(UTF-8 字节)", () => {
62
+ const { env, dropped } = filterRobotEnv({ BIG: "a".repeat(32769), OK: "a".repeat(32768) });
63
+ assert.deepEqual(Object.keys(env), ["OK"]);
64
+ assert.deepEqual(dropped, ["BIG"]);
65
+ });
66
+ it("非对象输入返回空", () => {
67
+ assert.deepEqual(filterRobotEnv(undefined), { env: {}, dropped: [] });
68
+ assert.deepEqual(filterRobotEnv(null), { env: {}, dropped: [] });
69
+ assert.deepEqual(filterRobotEnv("x"), { env: {}, dropped: [] });
70
+ assert.deepEqual(filterRobotEnv([["A", "1"]]), { env: {}, dropped: [] });
71
+ });
72
+ });
73
+ describe("extractRobotEnvFromExt", () => {
74
+ it("读取 ext.env", () => {
75
+ assert.deepEqual(extractRobotEnvFromExt({ ai_model: "auto", env: { A: "1" } }), { A: "1" });
76
+ });
77
+ it("非对象或无 env 返回 undefined", () => {
78
+ assert.equal(extractRobotEnvFromExt(undefined), undefined);
79
+ assert.equal(extractRobotEnvFromExt(null), undefined);
80
+ assert.equal(extractRobotEnvFromExt({ ai_model: "auto" }), undefined);
81
+ });
82
+ });
83
+ describe("robot env store", () => {
84
+ it("整体替换(服务端快照语义)", () => {
85
+ setRobotEnv("acct-1", { A: "1", B: "2" });
86
+ setRobotEnv("acct-1", { A: "9" });
87
+ assert.deepEqual(getRobotEnv("acct-1"), { A: "9" });
88
+ });
89
+ it("空对象 / undefined 清空该账户", () => {
90
+ setRobotEnv("acct-1", { A: "1" });
91
+ setRobotEnv("acct-1", {});
92
+ assert.equal(getRobotEnv("acct-1"), undefined);
93
+ setRobotEnv("acct-1", { A: "1" });
94
+ setRobotEnv("acct-1", undefined);
95
+ assert.equal(getRobotEnv("acct-1"), undefined);
96
+ });
97
+ it("全部键被过滤时视为清空", () => {
98
+ setRobotEnv("acct-1", { A: "1" });
99
+ setRobotEnv("acct-1", { NODE_OPTIONS: "x" });
100
+ assert.equal(getRobotEnv("acct-1"), undefined);
101
+ assert.equal(__robotEnvSizeForTests(), 0);
102
+ });
103
+ it("按 accountId 隔离,且返回拷贝", () => {
104
+ setRobotEnv("acct-1", { A: "1" });
105
+ setRobotEnv("acct-2", { A: "2" });
106
+ assert.deepEqual(getRobotEnv("acct-1"), { A: "1" });
107
+ assert.deepEqual(getRobotEnv("acct-2"), { A: "2" });
108
+ const snapshot = getRobotEnv("acct-1");
109
+ snapshot.A = "mutated";
110
+ assert.deepEqual(getRobotEnv("acct-1"), { A: "1" });
111
+ });
112
+ it("空 accountId 不写入", () => {
113
+ setRobotEnv("", { A: "1" });
114
+ assert.equal(__robotEnvSizeForTests(), 0);
115
+ });
116
+ it("clearRobotEnv/clearRobotEnvStore 清空", () => {
117
+ setRobotEnv("acct-1", { A: "1" });
118
+ clearRobotEnv("acct-1");
119
+ assert.equal(getRobotEnv("acct-1"), undefined);
120
+ setRobotEnv("acct-1", { A: "1" });
121
+ setRobotEnv("acct-2", { B: "2" });
122
+ clearRobotEnvStore();
123
+ assert.equal(__robotEnvSizeForTests(), 0);
124
+ assert.equal(__robotEnvAgentSizeForTests(), 0);
125
+ });
126
+ it("按 agentId 建索引,供 cron/心跳无入站上下文兜底命中", () => {
127
+ setRobotEnv("acct-1", { A: "1" }, "agent-1");
128
+ assert.deepEqual(getRobotEnvByAgentId("agent-1"), { accountId: "acct-1", env: { A: "1" } });
129
+ // 账户索引同样可读
130
+ assert.deepEqual(getRobotEnv("acct-1"), { A: "1" });
131
+ assert.equal(__robotEnvAgentSizeForTests(), 1);
132
+ });
133
+ it("无 agentId 时只写账户索引", () => {
134
+ setRobotEnv("acct-1", { A: "1" });
135
+ assert.equal(getRobotEnvByAgentId("agent-1"), undefined);
136
+ assert.equal(__robotEnvAgentSizeForTests(), 0);
137
+ });
138
+ it("空 env 同时清除账户与 agent 索引", () => {
139
+ setRobotEnv("acct-1", { A: "1" }, "agent-1");
140
+ setRobotEnv("acct-1", {}, "agent-1");
141
+ assert.equal(getRobotEnv("acct-1"), undefined);
142
+ assert.equal(getRobotEnvByAgentId("agent-1"), undefined);
143
+ assert.equal(__robotEnvAgentSizeForTests(), 0);
144
+ });
145
+ it("整份替换时 agent 索引返回最新快照", () => {
146
+ setRobotEnv("acct-1", { A: "1" }, "agent-1");
147
+ setRobotEnv("acct-1", { A: "9" }, "agent-1");
148
+ assert.deepEqual(getRobotEnvByAgentId("agent-1"), { accountId: "acct-1", env: { A: "9" } });
149
+ });
150
+ });
151
+ //# sourceMappingURL=robot-env-store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robot-env-store.test.js","sourceRoot":"","sources":["../../../src/session/robot-env-store.test.ts"],"names":[],"mappings":"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"}
@@ -35,11 +35,16 @@ export declare function removeSessionEnvKey(sessionKey: string, key: string): vo
35
35
  export declare function linkChildSession(childSessionKey: string, parentSessionKey: string): void;
36
36
  /** 读取运行时登记的 child -> parent 关系;仅作为宿主父链不可用时的兼容回退。 */
37
37
  export declare function getLinkedParentSessionKey(sessionKey: string | undefined): string | undefined;
38
- /** Record the last IM sender for optional Cron binding audit metadata. */
39
- export declare function setSessionUserContext(sessionKey: string, userId?: string, userName?: string): void;
38
+ /**
39
+ * Record the last IM sender (+ channel account) for Cron binding audit metadata
40
+ * and for resolving the account-scoped robot env on non-inbound turns
41
+ * (heartbeat / exec completion wakeup) where `ctx.requester` is absent.
42
+ */
43
+ export declare function setSessionUserContext(sessionKey: string, userId?: string, userName?: string, accountId?: string): void;
40
44
  export declare function getSessionUserContext(sessionKey: string | undefined): {
41
45
  userId?: string;
42
46
  userName?: string;
47
+ accountId?: string;
43
48
  } | undefined;
44
49
  /**
45
50
  * 解析某个会话应注入 exec 的 env:先查本会话;查不到则沿 subagent 父子链
@@ -1 +1 @@
1
- {"version":3,"file":"session-env-store.d.ts","sourceRoot":"","sources":["../../../src/session/session-env-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAsDvD,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;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQhE;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,oDAAoD;AACpD,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE5F;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,CAErD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAkB7C"}
1
+ {"version":3,"file":"session-env-store.d.ts","sourceRoot":"","sources":["../../../src/session/session-env-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAuDvD,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;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQhE;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,oDAAoD;AACpD,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE5F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,IAAI,CAQN;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC9D;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,SAAS,CAEd;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc3F;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAkB7C"}
@@ -268,11 +268,20 @@ export function linkChildSession(childSessionKey, parentSessionKey) {
268
268
  export function getLinkedParentSessionKey(sessionKey) {
269
269
  return sessionKey ? sessionChildLinks.get(sessionKey) : undefined;
270
270
  }
271
- /** Record the last IM sender for optional Cron binding audit metadata. */
272
- export function setSessionUserContext(sessionKey, userId, userName) {
273
- if (!sessionKey || (!userId && !userName))
271
+ /**
272
+ * Record the last IM sender (+ channel account) for Cron binding audit metadata
273
+ * and for resolving the account-scoped robot env on non-inbound turns
274
+ * (heartbeat / exec completion wakeup) where `ctx.requester` is absent.
275
+ */
276
+ export function setSessionUserContext(sessionKey, userId, userName, accountId) {
277
+ if (!sessionKey || (!userId && !userName && !accountId))
274
278
  return;
275
- sessionUserContexts.set(sessionKey, { userId, userName });
279
+ const current = sessionUserContexts.get(sessionKey);
280
+ sessionUserContexts.set(sessionKey, {
281
+ userId: userId ?? current?.userId,
282
+ userName: userName ?? current?.userName,
283
+ accountId: accountId ?? current?.accountId,
284
+ });
276
285
  }
277
286
  export function getSessionUserContext(sessionKey) {
278
287
  return sessionKey ? sessionUserContexts.get(sessionKey) : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"session-env-store.js","sourceRoot":"","sources":["../../../src/session/session-env-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEpF,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7C,sCAAsC;AACtC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,cAAc;AACd,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C,MAAM,UAAU,GAAG,6BAA6B,CAAC;AAEjD,MAAM,aAAa,GAAG,YAAY,CAAiC,iBAAiB,CAAC,CAAC;AACtF,MAAM,gBAAgB,GAAG,YAAY,CAAiB,wBAAwB,CAAC,CAAC;AAChF,MAAM,iBAAiB,GAAG,YAAY,CAAiB,yBAAyB,CAAC,CAAC;AAClF,MAAM,mBAAmB,GAAG,YAAY,CACpC,2BAA2B,CAC9B,CAAC;AACF,MAAM,aAAa,GAAG,YAAY,CAC9B,4BAA4B,CAC/B,CAAC;AAEF,wDAAwD;AACxD,MAAM,aAAa,GAAG,iBAAiB,CACnC,qBAAqB,EACrB,GAAG,EAAE,CACD,CAAC;IACG,eAAe,EAAE,SAA+B;IAChD,WAAW,EAAE,SAA+B;IAC5C,YAAY,EAAE,SAAsD;IACpE,YAAY,EAAE,KAAK;IACnB,kBAAkB,EAAE,KAAK;IACzB,UAAU,EAAE,KAAK;CACpB,CAOA,CACR,CAAC;AAEF,SAAS,aAAa,CAAC,GAAW;IAC9B,OAAO,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,oBAAoB;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,kBAAkB,CAAC,GAA2B;IAC1D,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB;IACzC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACvC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9B,aAAa,CAAC,GAAG,CACb,UAAU,EACV,UAAU,CAAC,GAAG,EAAE;QACZ,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC,EAAE,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,CAAC;AACN,CAAC;AAED,SAAS,KAAK,CAAC,UAAkB;IAC7B,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,eAAe,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAc;IACrD,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;QACpC,aAAa,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,OAAO,OAAO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9E,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IACxC,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,UAAU;IACf,IAAI,CAAC,aAAa,CAAC,WAAW;QAAE,OAAO;IACvC,IAAI,CAAC;QACD,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;YAC5C,OAAO,CAAC,UAAU,CAAC,GAAG;gBAClB,GAAG,GAAG;gBACN,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;aAC5D,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACxD,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,GAAG,aAAa,CAAC,WAAW,MAAM,CAAC;QACnD,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,gBAAgB,CAAC,MAAM,aAAa,CAAC,WAAW,IAAI,SAAS,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB;IACrB,IAAI,CAAC,aAAa,CAAC,WAAW;QAAE,OAAO;IACvC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;IAClC,IAAI,aAAa,CAAC,YAAY;QAAE,OAAO;IACvC,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;QACzC,aAAa,CAAC,YAAY,GAAG,SAAS,CAAC;QACvC,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;YAC7B,aAAa,CAAC,YAAY,GAAG,KAAK,CAAC;YACnC,UAAU,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAAE,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB;IACzB,IAAI,CAAC,aAAa,CAAC,WAAW;QAAE,OAAO;IACvC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACD,GAAG,GAAG,YAAY,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,gBAAgB,CAAC,MAAM,aAAa,CAAC,WAAW,KAAK,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;QACD,OAAO;IACX,CAAC;IACD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;YACrC,MAAM,SAAS,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,GAAG,GAAG,SAAS,GAAG,cAAc;gBAAE,SAAS;YAC/C,MAAM,GAAG,GAA2B,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,IAAI,GAAG,KAAK,WAAW;oBAAE,SAAS;gBAClC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAChD,CAAC;YACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClD,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACzC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,IAAI,GAAG,CAAC,CAAC;YACnD,eAAe,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,gBAAgB,CAAC,MAAM,aAAa,CAAC,WAAW,KAAK,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACtD,aAAa,CAAC,eAAe,GAAG,QAAQ,CAAC;IACzC,aAAa,CAAC,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,aAAa,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACzC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAC5B,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;QAChC,oBAAoB,EAAE,CAAC;IAC3B,CAAC;AACL,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,0BAA0B;IACtC,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QAC7B,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACzC,aAAa,CAAC,YAAY,GAAG,SAAS,CAAC;IAC3C,CAAC;IACD,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QAC7B,aAAa,CAAC,YAAY,GAAG,KAAK,CAAC;QACnC,UAAU,EAAE,CAAC;IACjB,CAAC;AACL,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,aAAa,CAAC,UAAkB,EAAE,GAA2B;IACzE,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACpD,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAC5D,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,eAAe,CAAC,UAAU,CAAC,CAAC;IAC5B,gBAAgB,EAAE,CAAC;AACvB,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,kBAAkB,CAC9B,UAAkB,EAClB,GAAW,EACX,KAAyB;IAEzB,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO;IAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,gBAAgB,EAAE,CAAC;QACnB,OAAO;IACX,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACrB,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,eAAe,CAAC,UAAU,CAAC,CAAC;IAC5B,gBAAgB,EAAE,CAAC;AACvB,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC5C,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,KAAK,CAAC,UAAU,CAAC,CAAC;IAClB,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;AACtB,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,eAAe,CAAC,UAAkB;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9B,gBAAgB,EAAE,CAAC;AACvB,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,GAAW;IAC/D,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,gBAAgB,CAAC,eAAuB,EAAE,gBAAwB;IAC9E,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,IAAI,eAAe,KAAK,gBAAgB;QAAE,OAAO;IAC1F,iBAAiB,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IACzD,eAAe,CAAC,eAAe,CAAC,CAAC;AACrC,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,yBAAyB,CAAC,UAA8B;IACpE,OAAO,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,MAAe,EAAE,QAAiB;IACxF,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO;IAClD,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAA8B;IAChE,OAAO,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAA8B;IAC/D,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAEnD,IAAI,UAAU,GAAuB,UAAU,CAAC;IAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,oBAAoB,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACrE,UAAU,GAAG,SAAS,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC1C,sBAAsB,EAAE,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IAClC,0BAA0B,EAAE,CAAC;IAC7B,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACzB,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAC1B,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,YAAY,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QAC7B,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACzC,aAAa,CAAC,YAAY,GAAG,SAAS,CAAC;IAC3C,CAAC;IACD,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC;IAC1C,aAAa,CAAC,WAAW,GAAG,SAAS,CAAC;IACtC,aAAa,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACzC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"session-env-store.js","sourceRoot":"","sources":["../../../src/session/session-env-store.ts"],"names":[],"mappings":"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"}