@openclaw/matrix 2026.9.1-beta.1 → 2026.9.2

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 (103) hide show
  1. package/dist/{account-config-BZWN9tGS.js → account-config-CRsKoMqJ.js} +1 -1
  2. package/dist/{account-selection-CWuhuFn1.js → account-selection-DA-jfx22.js} +74 -36
  3. package/dist/{accounts-BCzyubQt.js → accounts-DR1c4xF_.js} +4 -5
  4. package/dist/api.js +5 -5
  5. package/dist/{approval-handler.runtime-G9fLHUWe.js → approval-handler.runtime-BJCD4dLf.js} +34 -11
  6. package/dist/{approval-ids-C6FD3pVY.js → approval-ids-Bst7HM_o.js} +1 -1
  7. package/dist/{approval-reaction-auth-60xHiDtQ.js → approval-reaction-auth-DhH8QOSe.js} +2 -2
  8. package/dist/{approval-reactions-tXh9KYrW.js → approval-reactions-1fwEhoK9.js} +1 -1
  9. package/dist/{channel-CBEvelTE.js → channel-Bs8VLb6q.js} +63 -58
  10. package/dist/channel-plugin-api.js +1 -1
  11. package/dist/channel.runtime-CCJRhdH5.js +76 -0
  12. package/dist/{channel.setup-sWPOGyQG.js → channel.setup-DhmDXwPp.js} +32 -22
  13. package/dist/{cli-DrTD2a_q.js → cli-IvDUuiDH.js} +179 -135
  14. package/dist/{cli-metadata-DrYVwQ_r.js → cli-metadata-BGryAl2e.js} +1 -1
  15. package/dist/cli-metadata.js +1 -1
  16. package/dist/{client-hs1ePy2O.js → client-Dj4mcf-s.js} +73 -22
  17. package/dist/{client-bootstrap-BxdxjCwA.js → client-bootstrap-n1Rqc8Go.js} +1 -1
  18. package/dist/{client-BUtHbzib.js → client-oNOlldJI.js} +2 -2
  19. package/dist/{config-update-Bor_Pjsv.js → config-update-BnX26jCO.js} +48 -31
  20. package/dist/contract-api.js +2 -2
  21. package/dist/{credentials-BdAaWuiR.js → credentials-DJj2xs3q.js} +4 -8
  22. package/dist/{credentials-read-B37cQknZ.js → credentials-read-mexhw-Ur.js} +7 -5
  23. package/dist/{credentials-write.runtime-nAV2-5uR.js → credentials-write.runtime-DQt-kgJq.js} +1 -1
  24. package/dist/{crypto-runtime-C4WDYxlP.js → crypto-runtime-m1eplj3b.js} +7 -7
  25. package/dist/crypto-snapshot-doctor.runtime-D0v841D_.js +91 -0
  26. package/dist/{deps-CcVJfvRM.js → deps-mtxF2mHI.js} +1 -1
  27. package/dist/{directory-live-D0KfJlby.js → directory-live-DLUgWBhA.js} +8 -6
  28. package/dist/{doctor-EWf9CDso.js → doctor-CJE8wO6y.js} +1 -1
  29. package/dist/{doctor-contract-DEt4O4Zt.js → doctor-contract-HyWFZQVG.js} +5 -4
  30. package/dist/doctor-contract-api.js +89 -109
  31. package/dist/{draft-stream-B_m79Ynb.js → draft-stream-DglwxWzJ.js} +1 -1
  32. package/dist/{encryption-guidance-DmLY8NiO.js → encryption-guidance-BNcZNQZI.js} +3 -2
  33. package/dist/helper-api.js +1 -1
  34. package/dist/{http-client-D8o8b9u6.js → http-client-DOmFvKvB.js} +10 -7
  35. package/dist/{idb-persistence-DfgW720p.js → idb-persistence-CU7CNLlX.js} +2 -2
  36. package/dist/{idb-persistence-lock-DAJ49nZX.js → idb-persistence-lock-B3fZXyF_.js} +1 -1
  37. package/dist/{inbound-dedupe-RvSLqdsz.js → inbound-dedupe-Ch33GU06.js} +1 -1
  38. package/dist/index.js +1 -1
  39. package/dist/{messages-Dow9EOoJ.js → messages-Czn8lNEh.js} +154 -5
  40. package/dist/{monitor-DBB47wTy.js → monitor-DouG43FJ.js} +200 -156
  41. package/dist/outbound-Co_tJyE6.js +220 -0
  42. package/dist/plugin-entry.handlers.runtime.js +1 -1
  43. package/dist/probe.runtime-B1YPxG9x.js +2 -0
  44. package/dist/{profile-update-C61NR24_.js → profile-update-CAl8nZNG.js} +5 -4
  45. package/dist/{profile-D-Wubo0A.js → profile-vmjsmhh4.js} +1 -1
  46. package/dist/{reaction-events-BZUgLIZI.js → reaction-events-C_7G7bvI.js} +9 -7
  47. package/dist/{resolve-targets-DXzZwsIY.js → resolve-targets-B64O69Nd.js} +1 -1
  48. package/dist/{resolver.runtime-p5qJ3Kst.js → resolver.runtime-TRmePJDV.js} +1 -1
  49. package/dist/{room-info-BXQA7y10.js → room-info-6viLR3NH.js} +55 -1
  50. package/dist/runtime-api.js +2 -2
  51. package/dist/{sdk-CljOKEvc.js → sdk-C1yfda1L.js} +534 -26
  52. package/dist/{send-BKu9Ghi4.js → send-B5XChnvB.js} +31 -33
  53. package/dist/session-binding-contract-api.js +1 -1
  54. package/dist/{setup-bootstrap-CpE6C3qV.js → setup-bootstrap-S_loyUyM.js} +3 -3
  55. package/dist/{setup-core-CyvaCOOr.js → setup-core-XkIfQ65J.js} +8 -7
  56. package/dist/setup-plugin-api.js +1 -1
  57. package/dist/{setup-surface-DtRvRcCT.js → setup-surface-B2yZ8KGc.js} +84 -79
  58. package/dist/{startup-verification-Cs08ca8u.js → startup-verification-1Ney1mmI.js} +2 -2
  59. package/dist/{storage-BsGuHngK.js → storage-BVf4uucD.js} +5 -4
  60. package/dist/{subagent-hooks-CMoZaARG.js → subagent-hooks-DeICLbU5.js} +5 -1
  61. package/dist/subagent-hooks-api.js +1 -1
  62. package/dist/sync-cache-state-d-A_OhbU.js +234 -0
  63. package/dist/{thread-bindings-BvyU66kE.js → thread-bindings-BkBnn4te.js} +4 -4
  64. package/dist/{tool-actions.runtime-DD6jUxFK.js → tool-actions.runtime-a5L5xGSP.js} +226 -215
  65. package/dist/{verification-BP-3-XYn.js → verification-XJtTc5DI.js} +2 -2
  66. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs +216 -183
  67. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs.map +1 -1
  68. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js +7 -7
  69. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js.map +1 -1
  70. package/node_modules/markdown-it/dist/markdown-it.cjs.js +98 -106
  71. package/node_modules/markdown-it/dist/markdown-it.cjs.js.map +1 -1
  72. package/node_modules/markdown-it/dist/markdown-it.d.mts +42 -71
  73. package/node_modules/markdown-it/dist/markdown-it.mjs +98 -106
  74. package/node_modules/markdown-it/dist/markdown-it.mjs.map +1 -1
  75. package/node_modules/markdown-it/package.json +1 -2
  76. package/node_modules/matrix-js-sdk/lib/client.d.ts +2 -1
  77. package/node_modules/matrix-js-sdk/lib/client.js +6 -2
  78. package/node_modules/matrix-js-sdk/lib/sync.js +8 -8
  79. package/node_modules/matrix-js-sdk/src/client.ts +7 -3
  80. package/node_modules/matrix-js-sdk/src/sync.ts +8 -8
  81. package/node_modules/typebox/build/format/email.mjs +1 -1
  82. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +19 -1
  83. package/node_modules/typebox/build/format/json_pointer.d.mts +2 -2
  84. package/node_modules/typebox/build/format/json_pointer.mjs +2 -2
  85. package/node_modules/typebox/build/format/json_pointer_uri_fragment.d.mts +2 -2
  86. package/node_modules/typebox/build/format/json_pointer_uri_fragment.mjs +2 -2
  87. package/node_modules/typebox/build/format/relative_json_pointer.d.mts +2 -2
  88. package/node_modules/typebox/build/format/relative_json_pointer.mjs +2 -2
  89. package/node_modules/typebox/build/system/memory/assign.mjs +2 -1
  90. package/node_modules/typebox/build/system/memory/create.mjs +3 -4
  91. package/node_modules/typebox/build/system/memory/discard.mjs +2 -2
  92. package/node_modules/typebox/build/system/memory/freeze.d.mts +4 -0
  93. package/node_modules/typebox/build/system/memory/freeze.mjs +6 -0
  94. package/node_modules/typebox/build/system/memory/update.mjs +3 -2
  95. package/node_modules/typebox/package.json +1 -1
  96. package/openclaw.plugin.json +17 -3
  97. package/package.json +8 -7
  98. package/dist/channel.runtime-CiDl9deX.js +0 -276
  99. package/dist/env-auth-MVS-Vv41.js +0 -64
  100. package/dist/file-sync-store-DjskBX2o.js +0 -436
  101. package/dist/media-text-OR9uoC4W.js +0 -153
  102. package/dist/probe.runtime-CRM7RIrB.js +0 -2
  103. package/dist/recovery-key-store-CognuDys.js +0 -276
@@ -0,0 +1,234 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
+ import { M as resolveMatrixSqliteStateEnv } from "./storage-BVf4uucD.js";
3
+ import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
4
+ import { createHash, randomUUID } from "node:crypto";
5
+ import path from "node:path";
6
+ import fs from "node:fs/promises";
7
+ //#region extensions/matrix/src/matrix/client/sync-cache-state.ts
8
+ var sync_cache_state_exports = /* @__PURE__ */ __exportAll({
9
+ MATRIX_SYNC_CACHE_VERSION: () => 1,
10
+ deleteMatrixSyncCacheStateFromSyncStore: () => deleteMatrixSyncCacheStateFromSyncStore,
11
+ hasMatrixSyncCacheStateInStore: () => hasMatrixSyncCacheStateInStore,
12
+ openMatrixSyncCacheStoreOptions: () => openMatrixSyncCacheStoreOptions,
13
+ readLegacyMatrixSyncCacheState: () => readLegacyMatrixSyncCacheState,
14
+ readPersistedStoreFromSyncStore: () => readPersistedStoreFromSyncStore,
15
+ writeMatrixSyncCacheStateToStore: () => writeMatrixSyncCacheStateToStore,
16
+ writeMatrixSyncCacheStateToSyncStore: () => writeMatrixSyncCacheStateToSyncStore
17
+ });
18
+ const MATRIX_SYNC_CACHE_VERSION = 1;
19
+ const SYNC_CACHE_NAMESPACE = "sync-cache";
20
+ const SYNC_CACHE_MAX_ENTRIES = 2e4;
21
+ const SYNC_CACHE_MAX_CHUNKS = Math.floor(19999 / 2);
22
+ const SYNC_CACHE_STATE_KEY = "current";
23
+ const SYNC_CACHE_CHUNK_BYTES = 24e3;
24
+ function normalizeRoomsData(value) {
25
+ if (!isRecord(value)) return null;
26
+ return {
27
+ join: isRecord(value.join) ? value.join : {},
28
+ invite: isRecord(value.invite) ? value.invite : {},
29
+ leave: isRecord(value.leave) ? value.leave : {},
30
+ knock: isRecord(value.knock) ? value.knock : {}
31
+ };
32
+ }
33
+ function toPersistedSyncData(value) {
34
+ if (!isRecord(value)) return null;
35
+ if (typeof value.nextBatch === "string" && value.nextBatch.trim()) {
36
+ const roomsData = normalizeRoomsData(value.roomsData);
37
+ if (!Array.isArray(value.accountData) || !roomsData) return null;
38
+ return {
39
+ nextBatch: value.nextBatch,
40
+ accountData: value.accountData,
41
+ roomsData
42
+ };
43
+ }
44
+ if (typeof value.next_batch === "string" && value.next_batch.trim()) {
45
+ const roomsData = normalizeRoomsData(value.rooms);
46
+ if (!roomsData) return null;
47
+ return {
48
+ nextBatch: value.next_batch,
49
+ accountData: isRecord(value.account_data) && Array.isArray(value.account_data.events) ? value.account_data.events : [],
50
+ roomsData
51
+ };
52
+ }
53
+ return null;
54
+ }
55
+ function normalizePersistedStore(value) {
56
+ if (!isRecord(value) || value.version !== 1) return null;
57
+ return {
58
+ version: 1,
59
+ savedSync: toPersistedSyncData(value.savedSync),
60
+ clientOptions: isRecord(value.clientOptions) ? value.clientOptions : void 0,
61
+ cleanShutdown: value.cleanShutdown === true
62
+ };
63
+ }
64
+ function normalizeLegacyPersistedStore(value) {
65
+ const persisted = normalizePersistedStore(value);
66
+ if (persisted) return persisted;
67
+ return {
68
+ version: 1,
69
+ savedSync: toPersistedSyncData(value),
70
+ cleanShutdown: false
71
+ };
72
+ }
73
+ function readPersistedStoreFromSyncStore(store) {
74
+ const stateKey = SYNC_CACHE_STATE_KEY;
75
+ const meta = store.lookup(metaKey(stateKey));
76
+ if (!isSyncCacheMeta(meta)) return null;
77
+ const chunks = [];
78
+ for (let index = 0; index < meta.chunkCount; index += 1) {
79
+ const chunk = store.lookup(chunkKey(stateKey, meta.generation, index));
80
+ if (!isSyncCacheChunk(chunk) || chunk.index !== index) return normalizePersistedStore({
81
+ version: 1,
82
+ savedSync: null,
83
+ clientOptions: meta.clientOptions,
84
+ cleanShutdown: false
85
+ });
86
+ chunks.push(chunk.data);
87
+ }
88
+ let savedSync = null;
89
+ if (chunks.length > 0) {
90
+ const syncJson = chunks.join("");
91
+ if (meta.syncDigest !== digestText(syncJson)) return normalizePersistedStore({
92
+ version: 1,
93
+ savedSync: null,
94
+ clientOptions: meta.clientOptions,
95
+ cleanShutdown: false
96
+ });
97
+ try {
98
+ savedSync = toPersistedSyncData(JSON.parse(syncJson));
99
+ } catch {
100
+ savedSync = null;
101
+ }
102
+ }
103
+ return normalizePersistedStore({
104
+ version: 1,
105
+ savedSync,
106
+ clientOptions: meta.clientOptions,
107
+ cleanShutdown: meta.cleanShutdown
108
+ });
109
+ }
110
+ function metaKey(stateKey) {
111
+ return `${stateKey}:meta`;
112
+ }
113
+ function chunkKeyPrefix(stateKey) {
114
+ return `${stateKey}:sync:`;
115
+ }
116
+ function chunkKey(stateKey, generation, index) {
117
+ return `${chunkKeyPrefix(stateKey)}${generation}:${index}`;
118
+ }
119
+ function resolveLegacySyncCachePath(storageRootDir) {
120
+ return path.join(storageRootDir, "bot-storage.json");
121
+ }
122
+ function digestText(value) {
123
+ return createHash("sha256").update(value, "utf8").digest("hex");
124
+ }
125
+ function isSyncCacheMeta(value) {
126
+ return isRecord(value) && value.kind === "meta" && value.version === 1 && typeof value.generation === "string" && value.generation.trim() !== "" && typeof value.chunkCount === "number" && Number.isSafeInteger(value.chunkCount) && value.chunkCount >= 0 && value.chunkCount <= SYNC_CACHE_MAX_CHUNKS;
127
+ }
128
+ function isSyncCacheChunk(value) {
129
+ return isRecord(value) && value.kind === "sync-chunk" && typeof value.index === "number" && Number.isSafeInteger(value.index) && value.index >= 0 && typeof value.data === "string";
130
+ }
131
+ function chunkSyncCacheJson(value) {
132
+ const chunks = [];
133
+ const pushChunk = (chunk) => {
134
+ if (chunks.length >= SYNC_CACHE_MAX_CHUNKS) throw new Error("Matrix sync cache exceeds SQLite chunk limit");
135
+ chunks.push(chunk);
136
+ };
137
+ let current = "";
138
+ let currentBytes = 0;
139
+ for (const char of value) {
140
+ const charBytes = Buffer.byteLength(char, "utf8");
141
+ if (current && currentBytes + charBytes > SYNC_CACHE_CHUNK_BYTES) {
142
+ pushChunk(current);
143
+ current = "";
144
+ currentBytes = 0;
145
+ }
146
+ current += char;
147
+ currentBytes += charBytes;
148
+ }
149
+ if (current) pushChunk(current);
150
+ return chunks;
151
+ }
152
+ function buildSyncCacheRows(stateKey, payload) {
153
+ const generation = randomUUID().replaceAll("-", "");
154
+ const syncJson = payload.savedSync ? JSON.stringify(payload.savedSync) : "";
155
+ const chunks = (syncJson ? chunkSyncCacheJson(syncJson) : []).map((data, index) => ({
156
+ key: chunkKey(stateKey, generation, index),
157
+ value: {
158
+ kind: "sync-chunk",
159
+ index,
160
+ data
161
+ }
162
+ }));
163
+ return {
164
+ chunks,
165
+ nextChunkKeys: new Set(chunks.map((chunk) => chunk.key)),
166
+ meta: {
167
+ key: metaKey(stateKey),
168
+ value: {
169
+ kind: "meta",
170
+ version: 1,
171
+ generation,
172
+ chunkCount: chunks.length,
173
+ ...syncJson ? { syncDigest: digestText(syncJson) } : {},
174
+ ...payload.clientOptions ? { clientOptions: payload.clientOptions } : {},
175
+ cleanShutdown: payload.cleanShutdown === true
176
+ }
177
+ }
178
+ };
179
+ }
180
+ async function readLegacyMatrixSyncCacheState(storageRootDir) {
181
+ try {
182
+ const raw = await fs.readFile(resolveLegacySyncCachePath(storageRootDir), "utf8");
183
+ const persisted = normalizeLegacyPersistedStore(JSON.parse(raw));
184
+ if (!persisted?.savedSync && !persisted?.clientOptions) return null;
185
+ return persisted;
186
+ } catch {
187
+ return null;
188
+ }
189
+ }
190
+ async function hasMatrixSyncCacheStateInStore(params) {
191
+ const stateKey = SYNC_CACHE_STATE_KEY;
192
+ const meta = await params.store.lookup(metaKey(stateKey));
193
+ if (!isSyncCacheMeta(meta) || meta.chunkCount <= 0) return false;
194
+ const chunks = [];
195
+ for (let index = 0; index < meta.chunkCount; index += 1) {
196
+ const chunk = await params.store.lookup(chunkKey(stateKey, meta.generation, index));
197
+ if (!isSyncCacheChunk(chunk) || chunk.index !== index) return false;
198
+ chunks.push(chunk.data);
199
+ }
200
+ const syncJson = chunks.join("");
201
+ if (meta.syncDigest !== digestText(syncJson)) return false;
202
+ try {
203
+ return toPersistedSyncData(JSON.parse(syncJson)) !== null;
204
+ } catch {
205
+ return false;
206
+ }
207
+ }
208
+ async function writeMatrixSyncCacheStateToStore(params) {
209
+ const stateKey = SYNC_CACHE_STATE_KEY;
210
+ const rows = buildSyncCacheRows(stateKey, params.payload);
211
+ for (const row of rows.chunks) await params.store.register(row.key, row.value);
212
+ await params.store.register(rows.meta.key, rows.meta.value);
213
+ for (const row of await params.store.entries()) if (row.key.startsWith(chunkKeyPrefix(stateKey)) && !rows.nextChunkKeys.has(row.key)) await params.store.delete(row.key);
214
+ }
215
+ function openMatrixSyncCacheStoreOptions(storageRootDir) {
216
+ return {
217
+ namespace: SYNC_CACHE_NAMESPACE,
218
+ maxEntries: SYNC_CACHE_MAX_ENTRIES,
219
+ env: resolveMatrixSqliteStateEnv({ stateDir: storageRootDir })
220
+ };
221
+ }
222
+ function writeMatrixSyncCacheStateToSyncStore(params) {
223
+ const rows = buildSyncCacheRows(SYNC_CACHE_STATE_KEY, params.payload);
224
+ for (const row of rows.chunks) params.store.register(row.key, row.value);
225
+ params.store.register(rows.meta.key, rows.meta.value);
226
+ for (const row of params.store.entries()) if (row.key.startsWith(chunkKeyPrefix(SYNC_CACHE_STATE_KEY)) && !rows.nextChunkKeys.has(row.key)) params.store.delete(row.key);
227
+ }
228
+ async function deleteMatrixSyncCacheStateFromSyncStore(params) {
229
+ params.store.delete(metaKey(SYNC_CACHE_STATE_KEY));
230
+ for (const row of params.store.entries()) if (row.key.startsWith(chunkKeyPrefix(SYNC_CACHE_STATE_KEY))) params.store.delete(row.key);
231
+ await fs.rm(resolveLegacySyncCachePath(params.storageRootDir), { force: true }).catch(() => void 0);
232
+ }
233
+ //#endregion
234
+ export { readLegacyMatrixSyncCacheState as a, writeMatrixSyncCacheStateToStore as c, openMatrixSyncCacheStoreOptions as i, writeMatrixSyncCacheStateToSyncStore as l, deleteMatrixSyncCacheStateFromSyncStore as n, readPersistedStoreFromSyncStore as o, hasMatrixSyncCacheStateInStore as r, sync_cache_state_exports as s, MATRIX_SYNC_CACHE_VERSION as t };
@@ -1,13 +1,13 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
2
2
  import { a as listBindingsForAccount, c as resolveEffectiveBindingExpiry, d as setMatrixThreadBindingManagerEntry, l as setBindingRecord, m as toSessionBindingRecord, o as removeBindingRecord, p as toMatrixBindingTargetKind, r as getMatrixThreadBindingManagerEntry, s as resolveBindingKey, t as deleteMatrixThreadBindingManagerEntry } from "./thread-bindings-shared-oNPiyMWY.js";
3
- import { M as resolveMatrixSqliteStateEnv, N as resolveMatrixSqliteStateKey, c as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-BsGuHngK.js";
4
- import { r as sendMessageMatrix } from "./send-BKu9Ghi4.js";
3
+ import { M as resolveMatrixSqliteStateEnv, N as resolveMatrixSqliteStateKey, c as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-BVf4uucD.js";
4
+ import { r as sendMessageMatrix } from "./send-B5XChnvB.js";
5
5
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { createHash } from "node:crypto";
7
7
  import path from "node:path";
8
8
  import { registerSessionBindingAdapter, resolveThreadBindingFarewellText, unregisterSessionBindingAdapter } from "openclaw/plugin-sdk/thread-bindings-session-runtime";
9
9
  import fs from "node:fs/promises";
10
- import { resolveSessionAgentId } from "openclaw/plugin-sdk/agent-scope-runtime";
10
+ import { resolveSessionAgentIdStrict } from "openclaw/plugin-sdk/agent-scope-runtime";
11
11
  import { readJsonFileWithFallback } from "openclaw/plugin-sdk/json-store";
12
12
  import { resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
13
13
  //#region extensions/matrix/src/matrix/thread-bindings.ts
@@ -358,7 +358,7 @@ async function createMatrixThreadBindingManager(params) {
358
358
  ...boundParentConversationId ? { parentConversationId: boundParentConversationId } : {},
359
359
  targetKind: toMatrixBindingTargetKind(input.targetKind),
360
360
  targetSessionKey,
361
- agentId: normalizeOptionalString(input.metadata?.agentId) ?? resolveSessionAgentId({
361
+ agentId: normalizeOptionalString(input.metadata?.agentId) ?? resolveSessionAgentIdStrict({
362
362
  config: params.cfg,
363
363
  sessionKey: targetSessionKey
364
364
  }),