@openclaw/matrix 2026.6.5-beta.1 → 2026.6.5-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{account-selection-DEMtY2cn.js → account-selection-Bv_ZuOu4.js} +2 -3
- package/dist/api.js +5 -5
- package/dist/{approval-handler.runtime-DBUlR5vu.js → approval-handler.runtime-D88ERXxc.js} +4 -4
- package/dist/{approval-ids-BWuh0wZT.js → approval-ids-B2J320aL.js} +1 -1
- package/dist/{approval-reaction-auth-NgDjrK6V.js → approval-reaction-auth-ryklScll.js} +2 -2
- package/dist/{channel-6UUus7Ba.js → channel-DtT1oc4C.js} +13 -13
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-CPXd3XKs.js → channel.runtime-CoCkSJV6.js} +6 -6
- package/dist/{cli-CM0h-B_j.js → cli-BX7_GgmS.js} +10 -10
- package/dist/{cli-metadata-CW6xSM2K.js → cli-metadata-C9_um_Yj.js} +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/{client-CdP9vWOu.js → client-CPfb6TMG.js} +2 -2
- package/dist/{client-bootstrap-D5vrHEms.js → client-bootstrap-Dj2242_Y.js} +1 -1
- package/dist/{client-DRRL7Zv5.js → client-dLfa0qNk.js} +2 -2
- package/dist/{config-schema-CVJYP50t.js → config-schema-NrB2XGxM.js} +1 -1
- package/dist/contract-api.js +4 -4
- package/dist/{create-client-B90Sb7LG.js → create-client-MnSzqELZ.js} +4 -4
- package/dist/{credentials-Bi0pTJDK.js → credentials-G8lNmiME.js} +1 -1
- package/dist/{credentials-read-DpxFOhx0.js → credentials-read-TzTOQPOM.js} +1 -1
- package/dist/{credentials-write.runtime-BB5QuM4Z.js → credentials-write.runtime-cZhhyGAZ.js} +1 -1
- package/dist/{crypto-runtime-DWVNNqa3.js → crypto-runtime-B4WWNpMk.js} +4 -174
- package/dist/crypto-state-store-DK2tcEyP.js +352 -0
- package/dist/{directory-live-5uWtLQ41.js → directory-live-C7aYHtRU.js} +2 -2
- package/dist/{doctor-BKjr6uua.js → doctor-BwpkOBwr.js} +5 -5
- package/dist/{doctor-contract-D9oKDvsJ.js → doctor-contract-Dq8OZWHF.js} +1 -1
- package/dist/doctor-contract-api.js +265 -2
- package/dist/{draft-stream-DZ2X1RHP.js → draft-stream-PqFfvyV9.js} +1 -1
- package/dist/{encryption-guidance-aEUzD940.js → encryption-guidance-D_KhjprO.js} +1 -1
- package/dist/file-sync-store-Ni-pkFde.js +402 -0
- package/dist/helper-api.js +1 -1
- package/dist/idb-persistence-BGY1CJ7J.js +229 -0
- package/dist/idb-persistence-lock-DAJ49nZX.js +32 -0
- package/dist/index.js +1 -1
- package/dist/{legacy-crypto-restore-CbVSppMd.js → legacy-crypto-restore-Bm6HmeN5.js} +36 -28
- package/dist/logger-D0GCSDQq.js +78 -0
- package/dist/{logging-Cm8vxO3E.js → logging-QH-48Gr6.js} +1 -1
- package/dist/{matrix-migration.runtime-RzIEp7RP.js → matrix-migration.runtime-dvxE3e5l.js} +24 -25
- package/dist/{media-text-DVhXN81h.js → media-text-D0uvrHo1.js} +1 -1
- package/dist/{messages-sk1eTx7H.js → messages-C00n-MG_.js} +3 -3
- package/dist/{monitor-DXW0sFfU.js → monitor-BWHn9jy2.js} +21 -19
- package/dist/plugin-entry.handlers.runtime.js +1 -1
- package/dist/probe.runtime-DcSBLSet.js +3 -0
- package/dist/{profile-update-rzynJvpi.js → profile-update-CWvjc5i_.js} +2 -2
- package/dist/{reaction-events-DRKzlo8q.js → reaction-events-CdkYjlyo.js} +1 -1
- package/dist/{recovery-key-store-D6RbiZMM.js → recovery-key-store-TSlOpcEG.js} +22 -53
- package/dist/{resolve-targets-CAwsoBQK.js → resolve-targets-0dT0vJZJ.js} +1 -1
- package/dist/{resolver.runtime-phS2hwm9.js → resolver.runtime-BD2ZRhKw.js} +1 -1
- package/dist/runtime-api.js +1 -1
- package/dist/runtime-heavy-api.js +1 -1
- package/dist/{sdk-BdCZ5WwA.js → sdk-CdMhAFz3.js} +9 -202
- package/dist/{send-DEgWxp1p.js → send-Bus9xhUh.js} +1 -1
- package/dist/{setup-bootstrap-B4xc58Ww.js → setup-bootstrap-C9tUX9Ty.js} +2 -2
- package/dist/{setup-core-DJosJdWt.js → setup-core-CUyFBi5x.js} +3 -3
- package/dist/setup-plugin-api.js +3 -3
- package/dist/{setup-surface-CqxGV1WL.js → setup-surface-BRlTR6to.js} +5 -5
- package/dist/{shared-BbT5LdPp.js → shared-Bk7pOHMb.js} +8 -84
- package/dist/{startup-verification-D1p_LRmg.js → startup-verification-BoDITB_u.js} +2 -2
- package/dist/{storage-DSVcH_zM.js → storage-C10h2piS.js} +122 -26
- package/dist/{thread-bindings-gLQYbsB9.js → thread-bindings-CnviJ9Ff.js} +4 -23
- package/dist/{tool-actions.runtime-o06m9bgN.js → tool-actions.runtime-dStqVKMT.js} +6 -6
- package/dist/{verification-BiA5IWPK.js → verification-jZ1KWtb5.js} +2 -2
- package/npm-shrinkwrap.json +3 -3
- package/package.json +4 -4
- package/dist/probe.runtime-BO0mNIe8.js +0 -3
- package/dist/record-shared-CvzjvHRn.js +0 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount } from "./account-selection-
|
|
1
|
+
import { a as resolveMatrixDefaultOrOnlyAccountId, n as requiresExplicitMatrixDefaultAccount } from "./account-selection-Bv_ZuOu4.js";
|
|
2
2
|
import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
|
|
3
3
|
import { n as resolveMatrixAccountStorageRoot, s as resolveMatrixLegacyFlatStoragePaths } from "./storage-paths-BWo_ZEMC.js";
|
|
4
|
+
import { b as scoreMatrixCryptoStateInStore, g as readMatrixIdbSnapshotJson, l as migrateLegacyMatrixRecoveryKeyFileToStore, n as MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME, r as MATRIX_RECOVERY_KEY_FILENAME, s as migrateLegacyMatrixLegacyCryptoMigrationFileToStore, t as MATRIX_IDB_SNAPSHOT_FILENAME, x as writeMatrixIdbSnapshotJson } from "./crypto-state-store-DK2tcEyP.js";
|
|
4
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
5
6
|
import fs from "node:fs";
|
|
6
7
|
import os from "node:os";
|
|
@@ -10,15 +11,8 @@ import { loadJsonFile, saveJsonFile } from "openclaw/plugin-sdk/json-store";
|
|
|
10
11
|
const DEFAULT_ACCOUNT_KEY = "default";
|
|
11
12
|
const STORAGE_META_FILENAME = "storage-meta.json";
|
|
12
13
|
const THREAD_BINDINGS_FILENAME = "thread-bindings.json";
|
|
13
|
-
const LEGACY_CRYPTO_MIGRATION_FILENAME = "legacy-crypto-migration.json";
|
|
14
|
-
const RECOVERY_KEY_FILENAME = "recovery-key.json";
|
|
15
|
-
const IDB_SNAPSHOT_FILENAME = "crypto-idb-snapshot.json";
|
|
16
14
|
function resolveLegacyStoragePaths(env = process.env) {
|
|
17
|
-
|
|
18
|
-
return {
|
|
19
|
-
storagePath: legacy.storagePath,
|
|
20
|
-
cryptoPath: legacy.cryptoPath
|
|
21
|
-
};
|
|
15
|
+
return resolveMatrixLegacyFlatStoragePaths(getMatrixRuntime().state.resolveStateDir(env, os.homedir));
|
|
22
16
|
}
|
|
23
17
|
function assertLegacyMigrationAccountSelection(params) {
|
|
24
18
|
const cfg = getMatrixRuntime().config.current();
|
|
@@ -30,12 +24,13 @@ function assertLegacyMigrationAccountSelection(params) {
|
|
|
30
24
|
}
|
|
31
25
|
function scoreStorageRoot(rootDir) {
|
|
32
26
|
let score = 0;
|
|
33
|
-
if (
|
|
27
|
+
if (readStoredRootMetadata(rootDir).currentTokenStateClaimed === true) score += 8;
|
|
34
28
|
if (fs.existsSync(path.join(rootDir, "crypto"))) score += 8;
|
|
35
29
|
if (fs.existsSync(path.join(rootDir, THREAD_BINDINGS_FILENAME))) score += 4;
|
|
36
|
-
if (fs.existsSync(path.join(rootDir,
|
|
37
|
-
if (fs.existsSync(path.join(rootDir,
|
|
38
|
-
if (fs.existsSync(path.join(rootDir,
|
|
30
|
+
if (fs.existsSync(path.join(rootDir, "legacy-crypto-migration.json"))) score += 3;
|
|
31
|
+
if (fs.existsSync(path.join(rootDir, "recovery-key.json"))) score += 2;
|
|
32
|
+
if (fs.existsSync(path.join(rootDir, "crypto-idb-snapshot.json"))) score += 2;
|
|
33
|
+
score += scoreMatrixCryptoStateInStore(rootDir);
|
|
39
34
|
if (fs.existsSync(path.join(rootDir, STORAGE_META_FILENAME))) score += 1;
|
|
40
35
|
return score;
|
|
41
36
|
}
|
|
@@ -145,8 +140,8 @@ function resolveMatrixStoragePaths(params) {
|
|
|
145
140
|
storagePath: path.join(rootDir, "bot-storage.json"),
|
|
146
141
|
cryptoPath: path.join(rootDir, "crypto"),
|
|
147
142
|
metaPath: path.join(rootDir, STORAGE_META_FILENAME),
|
|
148
|
-
recoveryKeyPath: path.join(rootDir,
|
|
149
|
-
idbSnapshotPath: path.join(rootDir,
|
|
143
|
+
recoveryKeyPath: path.join(rootDir, MATRIX_RECOVERY_KEY_FILENAME),
|
|
144
|
+
idbSnapshotPath: path.join(rootDir, MATRIX_IDB_SNAPSHOT_FILENAME),
|
|
150
145
|
accountKey: canonical.accountKey,
|
|
151
146
|
tokenHash
|
|
152
147
|
};
|
|
@@ -165,15 +160,20 @@ function resolveMatrixStateFilePath(params) {
|
|
|
165
160
|
}
|
|
166
161
|
async function maybeMigrateLegacyStorage(params) {
|
|
167
162
|
const legacy = resolveLegacyStoragePaths(params.env);
|
|
168
|
-
const
|
|
163
|
+
const hasFlatLegacyStorageFile = fs.existsSync(legacy.storagePath);
|
|
164
|
+
const hasAccountScopedLegacyStorageFile = fs.existsSync(params.storagePaths.storagePath);
|
|
165
|
+
const syncCache = hasFlatLegacyStorageFile || hasAccountScopedLegacyStorageFile ? await import("./file-sync-store-Ni-pkFde.js").then((n) => n.n) : null;
|
|
166
|
+
const hasFlatLegacyStorage = hasFlatLegacyStorageFile && await syncCache?.readLegacyMatrixSyncCacheState(legacy.rootDir) !== null;
|
|
167
|
+
const hasAccountScopedLegacyStorage = hasAccountScopedLegacyStorageFile && await syncCache?.readLegacyMatrixSyncCacheState(params.storagePaths.rootDir) !== null;
|
|
169
168
|
const hasLegacyCrypto = fs.existsSync(legacy.cryptoPath);
|
|
170
|
-
|
|
171
|
-
const
|
|
169
|
+
const hasAccountScopedRecoveryKey = fs.existsSync(params.storagePaths.recoveryKeyPath);
|
|
170
|
+
const hasAccountScopedIdbSnapshot = fs.existsSync(params.storagePaths.idbSnapshotPath);
|
|
171
|
+
const hasAccountScopedLegacyCryptoMigration = fs.existsSync(path.join(params.storagePaths.rootDir, MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME));
|
|
172
|
+
if (!hasFlatLegacyStorage && !hasAccountScopedLegacyStorage && !hasLegacyCrypto && !hasAccountScopedRecoveryKey && !hasAccountScopedIdbSnapshot && !hasAccountScopedLegacyCryptoMigration) return;
|
|
172
173
|
const hasTargetCrypto = fs.existsSync(params.storagePaths.cryptoPath);
|
|
173
|
-
const shouldMigrateStorage = hasLegacyStorage && !hasTargetStorage;
|
|
174
174
|
const shouldMigrateCrypto = hasLegacyCrypto && !hasTargetCrypto;
|
|
175
|
-
if (!
|
|
176
|
-
assertLegacyMigrationAccountSelection({ accountKey: params.storagePaths.accountKey });
|
|
175
|
+
if (!hasFlatLegacyStorage && !hasAccountScopedLegacyStorage && !shouldMigrateCrypto && !hasAccountScopedRecoveryKey && !hasAccountScopedIdbSnapshot && !hasAccountScopedLegacyCryptoMigration) return;
|
|
176
|
+
if (hasFlatLegacyStorage || hasLegacyCrypto) assertLegacyMigrationAccountSelection({ accountKey: params.storagePaths.accountKey });
|
|
177
177
|
const logger = getMatrixRuntime().logging.getChildLogger({ module: "matrix-storage" });
|
|
178
178
|
const { maybeCreateMatrixMigrationSnapshot } = await import("./migration-snapshot.runtime-VGD4QfeS.js");
|
|
179
179
|
await maybeCreateMatrixMigrationSnapshot({
|
|
@@ -183,15 +183,25 @@ async function maybeMigrateLegacyStorage(params) {
|
|
|
183
183
|
});
|
|
184
184
|
fs.mkdirSync(params.storagePaths.rootDir, { recursive: true });
|
|
185
185
|
const moved = [];
|
|
186
|
+
const pendingArchives = [];
|
|
186
187
|
const skippedExistingTargets = [];
|
|
187
188
|
try {
|
|
188
|
-
if (
|
|
189
|
+
if (hasAccountScopedLegacyStorage) await migrateLegacySyncCacheToSqlite({
|
|
190
|
+
sourceRootDir: params.storagePaths.rootDir,
|
|
191
|
+
sourcePath: params.storagePaths.storagePath,
|
|
192
|
+
targetRootDir: params.storagePaths.rootDir,
|
|
193
|
+
label: "account sync cache",
|
|
194
|
+
moved,
|
|
195
|
+
pendingArchives
|
|
196
|
+
});
|
|
197
|
+
if (hasFlatLegacyStorage) await migrateLegacySyncCacheToSqlite({
|
|
198
|
+
sourceRootDir: legacy.rootDir,
|
|
189
199
|
sourcePath: legacy.storagePath,
|
|
190
|
-
|
|
191
|
-
label: "sync
|
|
192
|
-
moved
|
|
200
|
+
targetRootDir: params.storagePaths.rootDir,
|
|
201
|
+
label: "flat sync cache",
|
|
202
|
+
moved,
|
|
203
|
+
pendingArchives
|
|
193
204
|
});
|
|
194
|
-
else if (hasLegacyStorage) skippedExistingTargets.push(`- sync store remains at ${legacy.storagePath} because ${params.storagePaths.storagePath} already exists`);
|
|
195
205
|
if (shouldMigrateCrypto) moveLegacyStoragePathOrThrow({
|
|
196
206
|
sourcePath: legacy.cryptoPath,
|
|
197
207
|
targetPath: params.storagePaths.cryptoPath,
|
|
@@ -199,13 +209,99 @@ async function maybeMigrateLegacyStorage(params) {
|
|
|
199
209
|
moved
|
|
200
210
|
});
|
|
201
211
|
else if (hasLegacyCrypto) skippedExistingTargets.push(`- crypto store remains at ${legacy.cryptoPath} because ${params.storagePaths.cryptoPath} already exists`);
|
|
212
|
+
if (hasAccountScopedRecoveryKey) {
|
|
213
|
+
migrateLegacyMatrixRecoveryKeyFileToStore(params.storagePaths.rootDir);
|
|
214
|
+
moved.push({
|
|
215
|
+
sourcePath: params.storagePaths.recoveryKeyPath,
|
|
216
|
+
targetPath: `${params.storagePaths.rootDir} SQLite recovery key state`,
|
|
217
|
+
label: "recovery key"
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
if (hasAccountScopedLegacyCryptoMigration) {
|
|
221
|
+
migrateLegacyMatrixLegacyCryptoMigrationFileToStore(params.storagePaths.rootDir);
|
|
222
|
+
moved.push({
|
|
223
|
+
sourcePath: path.join(params.storagePaths.rootDir, MATRIX_LEGACY_CRYPTO_MIGRATION_FILENAME),
|
|
224
|
+
targetPath: `${params.storagePaths.rootDir} SQLite legacy crypto migration state`,
|
|
225
|
+
label: "legacy crypto migration"
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
if (hasAccountScopedIdbSnapshot) await migrateLegacyIdbSnapshotToSqlite({
|
|
229
|
+
storageRootDir: params.storagePaths.rootDir,
|
|
230
|
+
snapshotPath: params.storagePaths.idbSnapshotPath,
|
|
231
|
+
moved,
|
|
232
|
+
pendingArchives
|
|
233
|
+
});
|
|
202
234
|
} catch (err) {
|
|
203
235
|
const rollbackError = rollbackLegacyMoves(moved);
|
|
204
236
|
throw new Error(rollbackError ? `Failed migrating legacy Matrix client storage: ${String(err)}. Rollback also failed: ${rollbackError}` : `Failed migrating legacy Matrix client storage: ${String(err)}`, { cause: err });
|
|
205
237
|
}
|
|
238
|
+
for (const archive of pendingArchives) archiveLegacyStoragePath({
|
|
239
|
+
...archive,
|
|
240
|
+
skippedExistingTargets
|
|
241
|
+
});
|
|
206
242
|
if (moved.length > 0) logger.info(`matrix: migrated legacy client storage into ${params.storagePaths.rootDir}\n${moved.map((entry) => `- ${entry.label}: ${entry.sourcePath} -> ${entry.targetPath}`).join("\n")}`);
|
|
207
243
|
if (skippedExistingTargets.length > 0) logger.warn?.(`matrix: legacy client storage still exists in the flat path because some account-scoped targets already existed.\n${skippedExistingTargets.join("\n")}`);
|
|
208
244
|
}
|
|
245
|
+
async function migrateLegacyIdbSnapshotToSqlite(params) {
|
|
246
|
+
if (readMatrixIdbSnapshotJson(params.storageRootDir)) {
|
|
247
|
+
params.pendingArchives.push({
|
|
248
|
+
sourcePath: params.snapshotPath,
|
|
249
|
+
label: "IndexedDB snapshot"
|
|
250
|
+
});
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
const { readLegacyMatrixIdbSnapshotState } = await import("./idb-persistence-BGY1CJ7J.js").then((n) => n.t);
|
|
254
|
+
const snapshot = await readLegacyMatrixIdbSnapshotState(params.storageRootDir);
|
|
255
|
+
if (!snapshot) return;
|
|
256
|
+
writeMatrixIdbSnapshotJson({
|
|
257
|
+
storageRootDir: params.storageRootDir,
|
|
258
|
+
snapshotJson: JSON.stringify(snapshot),
|
|
259
|
+
databaseCount: snapshot.length
|
|
260
|
+
});
|
|
261
|
+
params.moved.push({
|
|
262
|
+
sourcePath: params.snapshotPath,
|
|
263
|
+
targetPath: `${params.storageRootDir} SQLite IndexedDB snapshot state`,
|
|
264
|
+
label: "IndexedDB snapshot"
|
|
265
|
+
});
|
|
266
|
+
params.pendingArchives.push({
|
|
267
|
+
sourcePath: params.snapshotPath,
|
|
268
|
+
label: "IndexedDB snapshot"
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
async function migrateLegacySyncCacheToSqlite(params) {
|
|
272
|
+
const syncCache = await import("./file-sync-store-Ni-pkFde.js").then((n) => n.n);
|
|
273
|
+
const persisted = await syncCache.readLegacyMatrixSyncCacheState(params.sourceRootDir);
|
|
274
|
+
if (!persisted) return;
|
|
275
|
+
const store = getMatrixRuntime().state.openKeyedStore(syncCache.openMatrixSyncCacheStoreOptions(params.targetRootDir));
|
|
276
|
+
if (!await syncCache.hasMatrixSyncCacheStateInStore({
|
|
277
|
+
storageRootDir: params.targetRootDir,
|
|
278
|
+
store
|
|
279
|
+
})) {
|
|
280
|
+
await syncCache.writeMatrixSyncCacheStateToStore({
|
|
281
|
+
storageRootDir: params.targetRootDir,
|
|
282
|
+
payload: persisted,
|
|
283
|
+
store
|
|
284
|
+
});
|
|
285
|
+
claimCurrentTokenStorageState({ rootDir: params.targetRootDir });
|
|
286
|
+
params.moved.push({
|
|
287
|
+
sourcePath: params.sourcePath,
|
|
288
|
+
targetPath: `${params.targetRootDir} SQLite sync cache`,
|
|
289
|
+
label: params.label
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
params.pendingArchives.push({
|
|
293
|
+
sourcePath: params.sourcePath,
|
|
294
|
+
label: params.label
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
function archiveLegacyStoragePath(params) {
|
|
298
|
+
const archivedLegacyStoragePath = `${params.sourcePath}.migrated`;
|
|
299
|
+
if (fs.existsSync(archivedLegacyStoragePath)) {
|
|
300
|
+
params.skippedExistingTargets.push(`- ${params.label} remains at ${params.sourcePath} because ${archivedLegacyStoragePath} already exists`);
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
fs.renameSync(params.sourcePath, archivedLegacyStoragePath);
|
|
304
|
+
}
|
|
209
305
|
function moveLegacyStoragePathOrThrow(params) {
|
|
210
306
|
if (!fs.existsSync(params.sourcePath)) return;
|
|
211
307
|
if (fs.existsSync(params.targetPath)) throw new Error(`legacy Matrix ${params.label} target already exists (${params.targetPath}); refusing to overwrite it automatically`);
|
|
@@ -1,34 +1,15 @@
|
|
|
1
1
|
import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
|
|
2
2
|
import { a as listBindingsForAccount, c as resolveBindingKey, f as setMatrixThreadBindingManagerEntry, h as toSessionBindingRecord, l as resolveEffectiveBindingExpiry, m as toMatrixBindingTargetKind, o as removeBindingRecord, r as getMatrixThreadBindingManagerEntry, t as deleteMatrixThreadBindingManagerEntry, u as setBindingRecord } from "./thread-bindings-shared-CKnY4LSd.js";
|
|
3
|
-
import {
|
|
4
|
-
import { a as
|
|
3
|
+
import { O as resolveMatrixSqliteStateEnv, k as resolveMatrixSqliteStateKey } from "./crypto-state-store-DK2tcEyP.js";
|
|
4
|
+
import { a as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-C10h2piS.js";
|
|
5
|
+
import { a as sendMessageMatrix } from "./send-Bus9xhUh.js";
|
|
5
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
|
-
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { createHash } from "node:crypto";
|
|
9
9
|
import { registerSessionBindingAdapter, resolveThreadBindingFarewellText, unregisterSessionBindingAdapter } from "openclaw/plugin-sdk/thread-bindings-session-runtime";
|
|
10
10
|
import { readJsonFileWithFallback } from "openclaw/plugin-sdk/json-store";
|
|
11
11
|
import fs from "node:fs/promises";
|
|
12
12
|
import { resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/session-key-runtime";
|
|
13
|
-
//#region extensions/matrix/src/matrix/sqlite-state.ts
|
|
14
|
-
function resolveStateDirOverride(options) {
|
|
15
|
-
if (!options) return;
|
|
16
|
-
if (options.stateDir) return options.stateDir;
|
|
17
|
-
if (options.stateRootDir) return options.stateRootDir;
|
|
18
|
-
return getMatrixRuntime().state.resolveStateDir(options.env ?? process.env, os.homedir);
|
|
19
|
-
}
|
|
20
|
-
function resolveMatrixSqliteStateKey(options) {
|
|
21
|
-
return resolveStateDirOverride(options) ?? "";
|
|
22
|
-
}
|
|
23
|
-
function resolveMatrixSqliteStateEnv(options) {
|
|
24
|
-
const stateDir = resolveStateDirOverride(options);
|
|
25
|
-
if (!stateDir) return options?.env;
|
|
26
|
-
return {
|
|
27
|
-
...options?.env ?? process.env,
|
|
28
|
-
OPENCLAW_STATE_DIR: stateDir
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
//#endregion
|
|
32
13
|
//#region extensions/matrix/src/matrix/thread-bindings.ts
|
|
33
14
|
const STORE_VERSION = 1;
|
|
34
15
|
const THREAD_BINDINGS_NAMESPACE = "thread-bindings";
|
|
@@ -452,4 +433,4 @@ async function createMatrixThreadBindingManager(params) {
|
|
|
452
433
|
return manager;
|
|
453
434
|
}
|
|
454
435
|
//#endregion
|
|
455
|
-
export {
|
|
436
|
+
export { createMatrixThreadBindingManager as t };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { c as resolveMatrixAccountConfig } from "./config-paths-ZBCMwSos.js";
|
|
2
|
-
import "./setup-core-
|
|
3
|
-
import { E as parsePollStart, T as isPollStartType, b as buildPollResponseContent, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-
|
|
2
|
+
import "./setup-core-CUyFBi5x.js";
|
|
3
|
+
import { E as parsePollStart, T as isPollStartType, b as buildPollResponseContent, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-Bus9xhUh.js";
|
|
4
4
|
import { i as buildMatrixReactionRelationsPath, o as selectOwnMatrixReactionEventIds, s as summarizeMatrixReactionEvents } from "./reaction-common-DkrQdBSZ.js";
|
|
5
|
-
import { n as withResolvedActionClient, r as withResolvedRoomAction } from "./client-
|
|
6
|
-
import { a as fetchEventSummary, c as resolveMatrixActionLimit, i as sendMatrixMessage, n as editMatrixMessage, o as readPinnedEvents, r as readMatrixMessages, s as EventType, t as deleteMatrixMessage } from "./messages-
|
|
5
|
+
import { n as withResolvedActionClient, r as withResolvedRoomAction } from "./client-CPfb6TMG.js";
|
|
6
|
+
import { a as fetchEventSummary, c as resolveMatrixActionLimit, i as sendMatrixMessage, n as editMatrixMessage, o as readPinnedEvents, r as readMatrixMessages, s as EventType, t as deleteMatrixMessage } from "./messages-C00n-MG_.js";
|
|
7
7
|
import { a as jsonResult, c as readStringArrayParam, l as readStringParam, o as readPositiveIntegerParam, r as createActionGate, s as readReactionParams } from "./runtime-api-CsBoesCU.js";
|
|
8
|
-
import { t as applyMatrixProfileUpdate } from "./profile-update-
|
|
9
|
-
import { _ as scanMatrixVerificationQr, a as confirmMatrixVerificationSas, b as verifyMatrixRecoveryKey, c as getMatrixRoomKeyBackupStatus, d as listMatrixVerifications, f as mismatchMatrixVerificationSas, h as restoreMatrixRoomKeyBackup, i as confirmMatrixVerificationReciprocateQr, l as getMatrixVerificationSas, n as bootstrapMatrixVerification, o as generateMatrixVerificationQr, p as requestMatrixVerification, r as cancelMatrixVerification, s as getMatrixEncryptionStatus, t as acceptMatrixVerification, u as getMatrixVerificationStatus, v as startMatrixVerification } from "./verification-
|
|
8
|
+
import { t as applyMatrixProfileUpdate } from "./profile-update-CWvjc5i_.js";
|
|
9
|
+
import { _ as scanMatrixVerificationQr, a as confirmMatrixVerificationSas, b as verifyMatrixRecoveryKey, c as getMatrixRoomKeyBackupStatus, d as listMatrixVerifications, f as mismatchMatrixVerificationSas, h as restoreMatrixRoomKeyBackup, i as confirmMatrixVerificationReciprocateQr, l as getMatrixVerificationSas, n as bootstrapMatrixVerification, o as generateMatrixVerificationQr, p as requestMatrixVerification, r as cancelMatrixVerification, s as getMatrixEncryptionStatus, t as acceptMatrixVerification, u as getMatrixVerificationStatus, v as startMatrixVerification } from "./verification-jZ1KWtb5.js";
|
|
10
10
|
import { normalizeOptionalLowercaseString, uniqueStrings, uniqueValues } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
11
11
|
//#region extensions/matrix/src/matrix/actions/polls.ts
|
|
12
12
|
function normalizeOptionIndexes(indexes) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-
|
|
3
|
-
import { n as formatMatrixEncryptionUnavailableError } from "./encryption-guidance-
|
|
2
|
+
import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-CPfb6TMG.js";
|
|
3
|
+
import { n as formatMatrixEncryptionUnavailableError } from "./encryption-guidance-D_KhjprO.js";
|
|
4
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
6
6
|
import { setTimeout } from "node:timers/promises";
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/matrix",
|
|
3
|
-
"version": "2026.6.5-beta.
|
|
3
|
+
"version": "2026.6.5-beta.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@openclaw/matrix",
|
|
9
|
-
"version": "2026.6.5-beta.
|
|
9
|
+
"version": "2026.6.5-beta.3",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@matrix-org/matrix-sdk-crypto-nodejs": "0.6.0",
|
|
12
12
|
"@matrix-org/matrix-sdk-crypto-wasm": "18.3.0",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"zod": "4.4.3"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"openclaw": ">=2026.6.5-beta.
|
|
21
|
+
"openclaw": ">=2026.6.5-beta.3"
|
|
22
22
|
},
|
|
23
23
|
"peerDependenciesMeta": {
|
|
24
24
|
"openclaw": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/matrix",
|
|
3
|
-
"version": "2026.6.5-beta.
|
|
3
|
+
"version": "2026.6.5-beta.3",
|
|
4
4
|
"description": "OpenClaw Matrix channel plugin for rooms and direct messages.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"zod": "4.4.3"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"openclaw": ">=2026.6.5-beta.
|
|
21
|
+
"openclaw": ">=2026.6.5-beta.3"
|
|
22
22
|
},
|
|
23
23
|
"peerDependenciesMeta": {
|
|
24
24
|
"openclaw": {
|
|
@@ -84,10 +84,10 @@
|
|
|
84
84
|
"allowInvalidConfigRecovery": true
|
|
85
85
|
},
|
|
86
86
|
"compat": {
|
|
87
|
-
"pluginApi": ">=2026.6.5-beta.
|
|
87
|
+
"pluginApi": ">=2026.6.5-beta.3"
|
|
88
88
|
},
|
|
89
89
|
"build": {
|
|
90
|
-
"openclawVersion": "2026.6.5-beta.
|
|
90
|
+
"openclawVersion": "2026.6.5-beta.3"
|
|
91
91
|
},
|
|
92
92
|
"release": {
|
|
93
93
|
"publishToClawHub": true,
|