@openclaw/matrix 2026.5.10-beta.3 → 2026.5.10-beta.5
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/api.js +4 -4
- package/dist/{approval-handler.runtime-DE2Egg6C.js → approval-handler.runtime-DiA6Zj9R.js} +3 -3
- package/dist/{channel-BLDnDlNh.js → channel-FJw9FfCE.js} +8 -8
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-CZJX7t-i.js → channel.runtime-pmZaN3dM.js} +1 -1
- package/dist/{cli-713YQ4Cn.js → cli-Bto_9kZ8.js} +7 -7
- package/dist/{cli-metadata-Dp6eBA-x.js → cli-metadata-BHARQqCV.js} +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/{client-CzwbYhJp.js → client-Dm7mu-C8.js} +1 -1
- package/dist/{config-schema-BxhuVElv.js → config-schema-B975BYl0.js} +5 -0
- package/dist/contract-api.js +4 -4
- package/dist/{direct-management-DMMMgtTB.js → direct-management--Y8ypgLv.js} +14 -12
- package/dist/{draft-stream-CfbJ1hZT.js → draft-stream-BY3Rr2XT.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/{media-text-COrb-tbz.js → media-text-BsC0CZlM.js} +1 -1
- package/dist/{messages-DhSzWb05.js → messages-D_Y6efK2.js} +3 -3
- package/dist/{monitor-Ft48sw1H.js → monitor-DgrYos8M.js} +147 -26
- package/dist/plugin-entry.handlers.runtime.js +1 -1
- package/dist/{profile-update-VfHL5bGn.js → profile-update-BIkLEvFv.js} +1 -1
- package/dist/{send-CxbikeHx.js → send-BEmVVhTJ.js} +1 -1
- package/dist/{setup-bootstrap-2bH7sf6H.js → setup-bootstrap-BYLBeJJ4.js} +1 -1
- package/dist/{setup-core-DtxS62ef.js → setup-core-DW8XlYqw.js} +2 -2
- package/dist/{setup-dm-policy-2-r1FrQh.js → setup-dm-policy-Ca3jA4YW.js} +1 -0
- package/dist/setup-plugin-api.js +3 -3
- package/dist/{setup-surface-BpIVJ14E.js → setup-surface-Dk7piW_w.js} +2 -2
- package/dist/test-api.js +1 -1
- package/dist/{thread-bindings-CbW2O2hP.js → thread-bindings-Dowu8M5c.js} +1 -1
- package/dist/{tool-actions.runtime-BlsvzKgH.js → tool-actions.runtime-DVQT_L6o.js} +5 -5
- package/dist/{verification-D6KOTfn2.js → verification-XL53YYMw.js} +1 -1
- package/openclaw.plugin.json +7 -0
- package/package.json +4 -4
package/dist/api.js
CHANGED
|
@@ -2,10 +2,10 @@ import { d as setMatrixThreadBindingIdleTimeoutBySessionKey, n as getMatrixThrea
|
|
|
2
2
|
import { a as resolveMatrixDefaultOrOnlyAccountId, i as resolveMatrixChannelConfig, n as requiresExplicitMatrixDefaultAccount, r as resolveConfiguredMatrixAccountIds, t as findMatrixAccountEntry } from "./account-selection-BWwIruri.js";
|
|
3
3
|
import { n as listMatrixEnvAccountIds, r as resolveMatrixEnvAccountToken, t as getMatrixScopedEnvVarNames } from "./env-vars-C7uQCTKn.js";
|
|
4
4
|
import { a as resolveMatrixCredentialsPath, c as resolveMatrixLegacyFlatStoreRoot, i as resolveMatrixCredentialsFilename, l as sanitizeMatrixPathSegment, n as resolveMatrixAccountStorageRoot, o as resolveMatrixHomeserverKey, r as resolveMatrixCredentialsDir, s as resolveMatrixLegacyFlatStoragePaths, t as hashMatrixAccessToken } from "./storage-paths-BJLdnCjV.js";
|
|
5
|
-
import { t as matrixPlugin } from "./channel-
|
|
6
|
-
import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-
|
|
7
|
-
import { n as matrixOnboardingAdapter } from "./setup-surface-
|
|
8
|
-
import { t as createMatrixThreadBindingManager } from "./thread-bindings-
|
|
5
|
+
import { t as matrixPlugin } from "./channel-FJw9FfCE.js";
|
|
6
|
+
import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-DW8XlYqw.js";
|
|
7
|
+
import { n as matrixOnboardingAdapter } from "./setup-surface-Dk7piW_w.js";
|
|
8
|
+
import { t as createMatrixThreadBindingManager } from "./thread-bindings-Dowu8M5c.js";
|
|
9
9
|
//#region extensions/matrix/api.ts
|
|
10
10
|
const matrixSessionBindingAdapterChannels = ["matrix"];
|
|
11
11
|
//#endregion
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { a as resolveMatrixTargetIdentity } from "./target-ids-80nQ2gql.js";
|
|
2
2
|
import { i as resolveMatrixAccount } from "./accounts-Bm90Rzvp.js";
|
|
3
3
|
import { c as shouldHandleMatrixApprovalRequest, r as isMatrixAnyApprovalClientEnabled } from "./exec-approvals-Crnh543m.js";
|
|
4
|
-
import { a as sendMessageMatrix, i as reactMatrixMessage, s as sendSingleTextMessageMatrix } from "./send-
|
|
5
|
-
import { a as repairMatrixDirectRooms } from "./direct-management
|
|
4
|
+
import { a as sendMessageMatrix, i as reactMatrixMessage, s as sendSingleTextMessageMatrix } from "./send-BEmVVhTJ.js";
|
|
5
|
+
import { a as repairMatrixDirectRooms } from "./direct-management--Y8ypgLv.js";
|
|
6
6
|
import { a as unregisterMatrixApprovalReactionTarget, n as listMatrixApprovalReactionBindings, r as registerMatrixApprovalReactionTarget, t as buildMatrixApprovalReactionHint } from "./approval-reactions-o2_tuH8D.js";
|
|
7
|
-
import { n as editMatrixMessage, t as deleteMatrixMessage } from "./messages-
|
|
7
|
+
import { n as editMatrixMessage, t as deleteMatrixMessage } from "./messages-D_Y6efK2.js";
|
|
8
8
|
import { listMessageReceiptPlatformIds, resolveMessageReceiptPrimaryId } from "openclaw/plugin-sdk/channel-message";
|
|
9
9
|
import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
|
|
10
10
|
import { setTimeout } from "node:timers/promises";
|
|
@@ -7,12 +7,12 @@ import { n as normalizeMatrixUserId } from "./allowlist-sTzpCn5d.js";
|
|
|
7
7
|
import { t as normalizeMatrixApproverId } from "./approval-ids-DoC2z7tR.js";
|
|
8
8
|
import { a as isMatrixExecApprovalAuthorizedSender, c as shouldHandleMatrixApprovalRequest, d as matrixApprovalAuth, i as isMatrixApprovalClientEnabled, l as shouldSuppressLocalMatrixExecApprovalPrompt, n as getMatrixExecApprovalApprovers, o as isMatrixExecApprovalClientEnabled, r as isMatrixAnyApprovalClientEnabled, s as resolveMatrixExecApprovalTarget, t as getMatrixApprovalApprovers, u as getMatrixApprovalAuthApprovers } from "./exec-approvals-Crnh543m.js";
|
|
9
9
|
import { t as formatMatrixErrorMessage } from "./errors-CTcpEDq-.js";
|
|
10
|
-
import { n as DEFAULT_ACCOUNT_ID$2, r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-
|
|
10
|
+
import { n as DEFAULT_ACCOUNT_ID$2, r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-B975BYl0.js";
|
|
11
11
|
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-D4-64QuJ.js";
|
|
12
12
|
import { n as resolveMatrixRoomConfig, t as resolveMatrixStoredSessionMeta } from "./session-store-metadata-DQXjgNLt.js";
|
|
13
13
|
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-DcrJWCQI.js";
|
|
14
|
-
import { a as namedAccountPromotionKeys, o as resolveSingleAccountPromotionTarget, s as singleAccountKeysToMove } from "./setup-dm-policy-
|
|
15
|
-
import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-
|
|
14
|
+
import { a as namedAccountPromotionKeys, o as resolveSingleAccountPromotionTarget, s as singleAccountKeysToMove } from "./setup-dm-policy-Ca3jA4YW.js";
|
|
15
|
+
import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-DW8XlYqw.js";
|
|
16
16
|
import { i as autoPrepareLegacyMatrixCrypto, o as autoMigrateLegacyMatrixState, r as resolveMatrixMigrationStatus } from "./matrix-migration.runtime-WY6ffcrf.js";
|
|
17
17
|
import { t as maybeCreateMatrixMigrationSnapshot } from "./migration-snapshot-backup-DaCHTp8C.js";
|
|
18
18
|
import { n as resolveMatrixInboundConversation } from "./thread-binding-api-Cq_E-E1K.js";
|
|
@@ -129,7 +129,7 @@ const matrixMessageActions = {
|
|
|
129
129
|
return extractToolSend(args, "sendMessage");
|
|
130
130
|
},
|
|
131
131
|
handleAction: async (ctx) => {
|
|
132
|
-
const { handleMatrixAction } = await import("./tool-actions.runtime-
|
|
132
|
+
const { handleMatrixAction } = await import("./tool-actions.runtime-DVQT_L6o.js");
|
|
133
133
|
const { action, params, cfg, accountId, mediaLocalRoots } = ctx;
|
|
134
134
|
const dispatch = async (actionParams) => await handleMatrixAction({
|
|
135
135
|
...actionParams,
|
|
@@ -405,7 +405,7 @@ const matrixNativeApprovalCapability = createApproverRestrictedNativeApprovalCap
|
|
|
405
405
|
accountId,
|
|
406
406
|
request
|
|
407
407
|
}),
|
|
408
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
408
|
+
load: async () => (await import("./approval-handler.runtime-DiA6Zj9R.js")).matrixApprovalNativeRuntime
|
|
409
409
|
})
|
|
410
410
|
});
|
|
411
411
|
const splitMatrixApprovalCapability = splitChannelApprovalCapability(matrixNativeApprovalCapability);
|
|
@@ -688,8 +688,8 @@ async function runMatrixStartupMaintenance(params) {
|
|
|
688
688
|
//#endregion
|
|
689
689
|
//#region extensions/matrix/src/channel.ts
|
|
690
690
|
let matrixStartupLock = Promise.resolve();
|
|
691
|
-
const loadMatrixSetupWizard = createLazyRuntimeNamedExport(() => import("./setup-surface-
|
|
692
|
-
const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-
|
|
691
|
+
const loadMatrixSetupWizard = createLazyRuntimeNamedExport(() => import("./setup-surface-Dk7piW_w.js").then((n) => n.t), "matrixSetupWizard");
|
|
692
|
+
const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-pmZaN3dM.js"), "matrixChannelRuntime");
|
|
693
693
|
const meta = {
|
|
694
694
|
id: "matrix",
|
|
695
695
|
label: "Matrix",
|
|
@@ -1054,7 +1054,7 @@ const matrixPlugin = createChatChannelPlugin({
|
|
|
1054
1054
|
await previousLock;
|
|
1055
1055
|
let monitorMatrixProvider;
|
|
1056
1056
|
try {
|
|
1057
|
-
monitorMatrixProvider = (await import("./monitor-
|
|
1057
|
+
monitorMatrixProvider = (await import("./monitor-DgrYos8M.js")).monitorMatrixProvider;
|
|
1058
1058
|
} finally {
|
|
1059
1059
|
releaseLock();
|
|
1060
1060
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as matrixPlugin } from "./channel-
|
|
1
|
+
import { t as matrixPlugin } from "./channel-FJw9FfCE.js";
|
|
2
2
|
export { matrixPlugin };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as sendMessageMatrix, c as sendTypingMatrix, o as sendPollMatrix } from "./send-
|
|
1
|
+
import { a as sendMessageMatrix, c as sendTypingMatrix, o as sendPollMatrix } from "./send-BEmVVhTJ.js";
|
|
2
2
|
import { t as isBunRuntime } from "./runtime-C6X4h_SJ.js";
|
|
3
3
|
import { n as resolveMatrixAuth } from "./config-DvF87-p1.js";
|
|
4
4
|
import "./client-wTkencoF.js";
|
|
@@ -3,16 +3,16 @@ import { t as getMatrixRuntime } from "./runtime-Dog86njy.js";
|
|
|
3
3
|
import { i as resolveMatrixAccount } from "./accounts-Bm90Rzvp.js";
|
|
4
4
|
import { t as formatMatrixErrorMessage } from "./errors-CTcpEDq-.js";
|
|
5
5
|
import { n as resolveMatrixConfigPath, r as updateMatrixAccountConfig } from "./config-update-wZX-HLMn.js";
|
|
6
|
-
import { n as matrixSetupAdapter } from "./setup-core-
|
|
6
|
+
import { n as matrixSetupAdapter } from "./setup-core-DW8XlYqw.js";
|
|
7
7
|
import { t as resolveMatrixRoomKeyBackupIssue } from "./backup-health-Cabu_WQC.js";
|
|
8
8
|
import { i as setMatrixSdkLogMode, r as setMatrixSdkConsoleLogging } from "./logging-DZHSPP5N.js";
|
|
9
|
-
import { n as withResolvedActionClient } from "./client-
|
|
9
|
+
import { n as withResolvedActionClient } from "./client-Dm7mu-C8.js";
|
|
10
10
|
import { r as resolveMatrixAuthContext } from "./config-DvF87-p1.js";
|
|
11
11
|
import "./client-wTkencoF.js";
|
|
12
12
|
import { i as formatZonedTimestamp } from "./runtime-api-DTKcXOhp.js";
|
|
13
13
|
import { isOpenClawManagedMatrixDevice, summarizeMatrixDeviceHealth } from "./device-health-UVYpbA_W.js";
|
|
14
|
-
import { n as updateMatrixOwnProfile, t as applyMatrixProfileUpdate } from "./profile-update-
|
|
15
|
-
import { a as confirmMatrixVerificationSas, b as verifyMatrixRecoveryKey, c as getMatrixRoomKeyBackupStatus, d as listMatrixVerifications, f as mismatchMatrixVerificationSas, g as runMatrixSelfVerification, h as restoreMatrixRoomKeyBackup, l as getMatrixVerificationSas, m as resetMatrixRoomKeyBackup, n as bootstrapMatrixVerification, p as requestMatrixVerification, r as cancelMatrixVerification, t as acceptMatrixVerification, u as getMatrixVerificationStatus, v as startMatrixVerification } from "./verification-
|
|
14
|
+
import { n as updateMatrixOwnProfile, t as applyMatrixProfileUpdate } from "./profile-update-BIkLEvFv.js";
|
|
15
|
+
import { a as confirmMatrixVerificationSas, b as verifyMatrixRecoveryKey, c as getMatrixRoomKeyBackupStatus, d as listMatrixVerifications, f as mismatchMatrixVerificationSas, g as runMatrixSelfVerification, h as restoreMatrixRoomKeyBackup, l as getMatrixVerificationSas, m as resetMatrixRoomKeyBackup, n as bootstrapMatrixVerification, p as requestMatrixVerification, r as cancelMatrixVerification, t as acceptMatrixVerification, u as getMatrixVerificationStatus, v as startMatrixVerification } from "./verification-XL53YYMw.js";
|
|
16
16
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
17
17
|
//#region extensions/matrix/src/matrix/actions/devices.ts
|
|
18
18
|
async function listMatrixOwnDevices(opts = {}) {
|
|
@@ -39,11 +39,11 @@ let matrixCliExitScheduled = false;
|
|
|
39
39
|
let matrixActionClientModulePromise;
|
|
40
40
|
let matrixDirectManagementModulePromise;
|
|
41
41
|
function loadMatrixActionClientModule() {
|
|
42
|
-
matrixActionClientModulePromise ??= import("./client-
|
|
42
|
+
matrixActionClientModulePromise ??= import("./client-Dm7mu-C8.js").then((n) => n.t);
|
|
43
43
|
return matrixActionClientModulePromise;
|
|
44
44
|
}
|
|
45
45
|
function loadMatrixDirectManagementModule() {
|
|
46
|
-
matrixDirectManagementModulePromise ??= import("./direct-management
|
|
46
|
+
matrixDirectManagementModulePromise ??= import("./direct-management--Y8ypgLv.js").then((n) => n.t);
|
|
47
47
|
return matrixDirectManagementModulePromise;
|
|
48
48
|
}
|
|
49
49
|
function scheduleMatrixCliExit() {
|
|
@@ -209,7 +209,7 @@ async function addMatrixAccount(params) {
|
|
|
209
209
|
backupVersion: null
|
|
210
210
|
};
|
|
211
211
|
if (accountConfig.encryption === true) {
|
|
212
|
-
const { maybeBootstrapNewEncryptedMatrixAccount } = await import("./setup-bootstrap-
|
|
212
|
+
const { maybeBootstrapNewEncryptedMatrixAccount } = await import("./setup-bootstrap-BYLBeJJ4.js");
|
|
213
213
|
verificationBootstrap = await maybeBootstrapNewEncryptedMatrixAccount({
|
|
214
214
|
previousCfg: cfg,
|
|
215
215
|
cfg: updated,
|
|
@@ -2,7 +2,7 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
|
2
2
|
//#region extensions/matrix/src/cli-metadata.ts
|
|
3
3
|
function registerMatrixCliMetadata(api) {
|
|
4
4
|
api.registerCli(async ({ program }) => {
|
|
5
|
-
const { registerMatrixCli } = await import("./cli-
|
|
5
|
+
const { registerMatrixCli } = await import("./cli-Bto_9kZ8.js");
|
|
6
6
|
registerMatrixCli({ program });
|
|
7
7
|
}, { descriptors: [{
|
|
8
8
|
name: "matrix",
|
package/dist/cli-metadata.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as registerMatrixCliMetadata, t as cli_metadata_default } from "./cli-metadata-
|
|
1
|
+
import { n as registerMatrixCliMetadata, t as cli_metadata_default } from "./cli-metadata-BHARQqCV.js";
|
|
2
2
|
export { cli_metadata_default as default, registerMatrixCliMetadata };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
|
|
2
|
-
import { u as resolveMatrixRoomId } from "./send-
|
|
2
|
+
import { u as resolveMatrixRoomId } from "./send-BEmVVhTJ.js";
|
|
3
3
|
import { n as withResolvedRuntimeMatrixClient } from "./client-bootstrap-CVht4US6.js";
|
|
4
4
|
//#region extensions/matrix/src/matrix/actions/client.ts
|
|
5
5
|
var client_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -36,6 +36,10 @@ const matrixConfigAdapter = createScopedChannelConfigAdapter({
|
|
|
36
36
|
//#endregion
|
|
37
37
|
//#region extensions/matrix/src/config-ui-hints.ts
|
|
38
38
|
const matrixChannelConfigUiHints = {
|
|
39
|
+
dangerouslyAllowNameMatching: {
|
|
40
|
+
label: "Matrix Display Name Matching",
|
|
41
|
+
help: "Compatibility opt-in for resolving Matrix display names and joined room names in allowlists. Prefer full @user:server IDs and room IDs or aliases because names are mutable."
|
|
42
|
+
},
|
|
39
43
|
"streaming.progress.label": {
|
|
40
44
|
label: "Matrix Progress Label",
|
|
41
45
|
help: "Initial progress draft title. Use \"auto\" for built-in single-word labels, a custom string, or false to hide the title."
|
|
@@ -133,6 +137,7 @@ const MatrixChannelConfigSchema = buildChannelConfigSchema(z.object({
|
|
|
133
137
|
initialSyncLimit: z.number().optional(),
|
|
134
138
|
encryption: z.boolean().optional(),
|
|
135
139
|
allowlistOnly: z.boolean().optional(),
|
|
140
|
+
dangerouslyAllowNameMatching: z.boolean().optional(),
|
|
136
141
|
allowBots: z.union([z.boolean(), z.literal("mentions")]).optional(),
|
|
137
142
|
groupPolicy: GroupPolicySchema.optional(),
|
|
138
143
|
contextVisibility: ContextVisibilityModeSchema.optional(),
|
package/dist/contract-api.js
CHANGED
|
@@ -2,8 +2,8 @@ import { s as resetMatrixThreadBindingsForTests } from "./thread-bindings-shared
|
|
|
2
2
|
import { r as setMatrixRuntime } from "./runtime-Dog86njy.js";
|
|
3
3
|
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-D4-64QuJ.js";
|
|
4
4
|
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-DcrJWCQI.js";
|
|
5
|
-
import { a as namedAccountPromotionKeys, o as resolveSingleAccountPromotionTarget, s as singleAccountKeysToMove } from "./setup-dm-policy-
|
|
6
|
-
import { n as matrixSetupAdapter } from "./setup-core-
|
|
7
|
-
import { n as matrixOnboardingAdapter } from "./setup-surface-
|
|
8
|
-
import { t as createMatrixThreadBindingManager } from "./thread-bindings-
|
|
5
|
+
import { a as namedAccountPromotionKeys, o as resolveSingleAccountPromotionTarget, s as singleAccountKeysToMove } from "./setup-dm-policy-Ca3jA4YW.js";
|
|
6
|
+
import { n as matrixSetupAdapter } from "./setup-core-DW8XlYqw.js";
|
|
7
|
+
import { n as matrixOnboardingAdapter } from "./setup-surface-Dk7piW_w.js";
|
|
8
|
+
import { t as createMatrixThreadBindingManager } from "./thread-bindings-Dowu8M5c.js";
|
|
9
9
|
export { collectRuntimeConfigAssignments, createMatrixThreadBindingManager, legacyConfigRules, matrixSetupAdapter, matrixOnboardingAdapter as matrixSetupWizard, namedAccountPromotionKeys, normalizeCompatibilityConfig, resetMatrixThreadBindingsForTests, resolveSingleAccountPromotionTarget, secretTargetRegistryEntries, setMatrixRuntime, singleAccountKeysToMove };
|
|
@@ -80,8 +80,10 @@ function normalizeRoomIdList(values) {
|
|
|
80
80
|
}
|
|
81
81
|
return normalized;
|
|
82
82
|
}
|
|
83
|
-
function
|
|
84
|
-
|
|
83
|
+
function hasMatrixDirectRoomMappings(params) {
|
|
84
|
+
const current = normalizeMappedRoomIds(params.directContent, params.remoteUserId);
|
|
85
|
+
const next = normalizeRoomIdList([...params.roomIds, ...current]);
|
|
86
|
+
return current.length === next.length && current.every((roomId, index) => roomId === next[index]);
|
|
85
87
|
}
|
|
86
88
|
function resolveDirectAccountDataWriteQueue(client) {
|
|
87
89
|
const existing = directAccountDataWriteQueues.get(client);
|
|
@@ -90,18 +92,18 @@ function resolveDirectAccountDataWriteQueue(client) {
|
|
|
90
92
|
directAccountDataWriteQueues.set(client, created);
|
|
91
93
|
return created;
|
|
92
94
|
}
|
|
93
|
-
async function
|
|
95
|
+
async function writeMatrixDirectRoomMappings(params) {
|
|
94
96
|
return await resolveDirectAccountDataWriteQueue(params.client).enqueue(DIRECT_ACCOUNT_DATA_QUEUE_KEY, async () => {
|
|
95
97
|
const directContentBefore = await readMatrixDirectAccountData(params.client);
|
|
96
98
|
const directContentAfter = buildNextDirectContent({
|
|
97
99
|
directContent: directContentBefore,
|
|
98
100
|
remoteUserId: params.remoteUserId,
|
|
99
|
-
|
|
101
|
+
roomIds: params.roomIds
|
|
100
102
|
});
|
|
101
|
-
const changed = !
|
|
103
|
+
const changed = !hasMatrixDirectRoomMappings({
|
|
102
104
|
directContent: directContentBefore,
|
|
103
105
|
remoteUserId: params.remoteUserId,
|
|
104
|
-
|
|
106
|
+
roomIds: params.roomIds
|
|
105
107
|
});
|
|
106
108
|
if (changed) await params.client.setAccountData(EventType.Direct, directContentAfter);
|
|
107
109
|
return {
|
|
@@ -128,7 +130,7 @@ async function classifyDirectRoomCandidate(params) {
|
|
|
128
130
|
}
|
|
129
131
|
function buildNextDirectContent(params) {
|
|
130
132
|
const current = normalizeMappedRoomIds(params.directContent, params.remoteUserId);
|
|
131
|
-
const nextRooms = normalizeRoomIdList([params.
|
|
133
|
+
const nextRooms = normalizeRoomIdList([...params.roomIds, ...current]);
|
|
132
134
|
return {
|
|
133
135
|
...params.directContent,
|
|
134
136
|
[params.remoteUserId]: nextRooms
|
|
@@ -136,10 +138,10 @@ function buildNextDirectContent(params) {
|
|
|
136
138
|
}
|
|
137
139
|
async function persistMatrixDirectRoomMapping(params) {
|
|
138
140
|
const remoteUserId = normalizeRemoteUserId(params.remoteUserId);
|
|
139
|
-
return (await
|
|
141
|
+
return (await writeMatrixDirectRoomMappings({
|
|
140
142
|
client: params.client,
|
|
141
143
|
remoteUserId,
|
|
142
|
-
|
|
144
|
+
roomIds: [params.roomId]
|
|
143
145
|
})).changed;
|
|
144
146
|
}
|
|
145
147
|
async function promoteMatrixDirectRoomCandidate(params) {
|
|
@@ -194,7 +196,7 @@ async function inspectMatrixDirectRooms(params) {
|
|
|
194
196
|
})));
|
|
195
197
|
const mappedStrict = mappedRooms.find((room) => room.strict);
|
|
196
198
|
let joinedRooms = [];
|
|
197
|
-
if (
|
|
199
|
+
if (typeof params.client.getJoinedRooms === "function") try {
|
|
198
200
|
const resolved = await params.client.getJoinedRooms();
|
|
199
201
|
joinedRooms = Array.isArray(resolved) ? resolved : [];
|
|
200
202
|
} catch {
|
|
@@ -231,10 +233,10 @@ async function repairMatrixDirectRooms(params) {
|
|
|
231
233
|
});
|
|
232
234
|
const activeRoomId = inspected.activeRoomId ?? await params.client.createDirectRoom(remoteUserId, { encrypted: params.encrypted === true });
|
|
233
235
|
const createdRoomId = inspected.activeRoomId ? null : activeRoomId;
|
|
234
|
-
const mappingWrite = await
|
|
236
|
+
const mappingWrite = await writeMatrixDirectRoomMappings({
|
|
235
237
|
client: params.client,
|
|
236
238
|
remoteUserId,
|
|
237
|
-
|
|
239
|
+
roomIds: [activeRoomId, ...inspected.discoveredStrictRoomIds]
|
|
238
240
|
});
|
|
239
241
|
return {
|
|
240
242
|
...inspected,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as editMessageMatrix, r as prepareMatrixSingleText, s as sendSingleTextMessageMatrix } from "./send-
|
|
2
|
-
import { l as MsgType } from "./direct-management
|
|
1
|
+
import { n as editMessageMatrix, r as prepareMatrixSingleText, s as sendSingleTextMessageMatrix } from "./send-BEmVVhTJ.js";
|
|
2
|
+
import { l as MsgType } from "./direct-management--Y8ypgLv.js";
|
|
3
3
|
import { createDraftStreamLoop } from "openclaw/plugin-sdk/channel-lifecycle";
|
|
4
4
|
//#region extensions/matrix/src/matrix/draft-stream.ts
|
|
5
5
|
const DEFAULT_THROTTLE_MS = 1e3;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as registerMatrixCliMetadata } from "./cli-metadata-
|
|
1
|
+
import { n as registerMatrixCliMetadata } from "./cli-metadata-BHARQqCV.js";
|
|
2
2
|
import { registerMatrixSubagentHooks } from "./subagent-hooks-api.js";
|
|
3
3
|
import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
4
4
|
//#region extensions/matrix/index.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as buildPollResultsSummary, g as isPollStartType, h as isPollEventType, m as formatPollResultsAsText, p as formatPollAsText, v as parsePollStartContent, y as resolvePollReferenceEventId } from "./send-
|
|
1
|
+
import { f as buildPollResultsSummary, g as isPollStartType, h as isPollEventType, m as formatPollResultsAsText, p as formatPollAsText, v as parsePollStartContent, y as resolvePollReferenceEventId } from "./send-BEmVVhTJ.js";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
//#region extensions/matrix/src/matrix/poll-summary.ts
|
|
4
4
|
function resolveMatrixPollRootEventId(event) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as isMatrixNotFoundError } from "./errors-CTcpEDq-.js";
|
|
2
|
-
import { a as sendMessageMatrix, h as isPollEventType, n as editMessageMatrix } from "./send-
|
|
2
|
+
import { a as sendMessageMatrix, h as isPollEventType, n as editMessageMatrix } from "./send-BEmVVhTJ.js";
|
|
3
3
|
import { n as MATRIX_REACTION_EVENT_TYPE } from "./reaction-common-ejrL19w-.js";
|
|
4
|
-
import { a as resolveMatrixMessageBody, c as resolveMatrixPollRootEventId, i as resolveMatrixMessageAttachment, o as fetchMatrixPollMessageSummary } from "./media-text-
|
|
5
|
-
import { r as withResolvedRoomAction } from "./client-
|
|
4
|
+
import { a as resolveMatrixMessageBody, c as resolveMatrixPollRootEventId, i as resolveMatrixMessageAttachment, o as fetchMatrixPollMessageSummary } from "./media-text-BsC0CZlM.js";
|
|
5
|
+
import { r as withResolvedRoomAction } from "./client-Dm7mu-C8.js";
|
|
6
6
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
//#region extensions/matrix/src/matrix/actions/limits.ts
|
|
8
8
|
function resolveMatrixActionLimit(raw, fallback) {
|
|
@@ -6,16 +6,16 @@ import { n as normalizeMatrixUserId, r as resolveMatrixAllowListMatch, t as norm
|
|
|
6
6
|
import { r as isMatrixNotFoundError, t as formatMatrixErrorMessage } from "./errors-CTcpEDq-.js";
|
|
7
7
|
import { a as canonicalizeAllowlistWithResolvedIds, c as formatLocationText, d as logTypingFailure, f as patchAllowlistUsersInConfigEntries, i as buildAllowlistResolutionSummary, l as getAgentScopedMediaLocalRoots, m as toLocationContext, n as resolveMatrixRoomConfig, o as createReplyPrefixOptions, p as summarizeMapping, r as addAllowlistUserEntriesFromConfigEntry, s as createTypingCallbacks, t as resolveMatrixStoredSessionMeta, u as logInboundDrop } from "./session-store-metadata-DQXjgNLt.js";
|
|
8
8
|
import { i as resolveMatrixStateFilePath } from "./storage-tC3ujLiW.js";
|
|
9
|
-
import { a as sendMessageMatrix, g as isPollStartType, h as isPollEventType, p as formatPollAsText, t as chunkMatrixText, v as parsePollStartContent } from "./send-
|
|
10
|
-
import { i as promoteMatrixDirectRoomCandidate, s as MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY } from "./direct-management
|
|
9
|
+
import { a as sendMessageMatrix, g as isPollStartType, h as isPollEventType, p as formatPollAsText, t as chunkMatrixText, v as parsePollStartContent } from "./send-BEmVVhTJ.js";
|
|
10
|
+
import { i as promoteMatrixDirectRoomCandidate, s as MATRIX_OPENCLAW_FINALIZED_PREVIEW_KEY } from "./direct-management--Y8ypgLv.js";
|
|
11
11
|
import { i as isStrictDirectMembership, n as hasDirectMatrixMemberFlag, o as readJoinedMatrixMembers } from "./direct-room-XkutHjES.js";
|
|
12
|
-
import { t as createMatrixThreadBindingManager } from "./thread-bindings-
|
|
12
|
+
import { t as createMatrixThreadBindingManager } from "./thread-bindings-Dowu8M5c.js";
|
|
13
13
|
import { t as createAsyncLock } from "./async-lock-uQfhfQIY.js";
|
|
14
14
|
import { n as LogService } from "./logger-CnZRVrux.js";
|
|
15
15
|
import { i as isMatrixMediaSizeLimitError, r as MatrixMediaSizeLimitError } from "./http-client-C7AeVJay.js";
|
|
16
16
|
import { i as throwIfMatrixStartupAborted, r as isMatrixStartupAbortError } from "./startup-abort-56edvmbM.js";
|
|
17
17
|
import { n as isMatrixReadySyncState, r as isMatrixTerminalSyncState, t as isMatrixDisconnectedSyncState } from "./sync-state-C_beeevA.js";
|
|
18
|
-
import { a as resolveMatrixMessageBody, i as resolveMatrixMessageAttachment, n as formatMatrixMediaUnavailableText, r as formatMatrixMessageText, s as fetchMatrixPollSnapshot, t as formatMatrixMediaTooLargeText } from "./media-text-
|
|
18
|
+
import { a as resolveMatrixMessageBody, i as resolveMatrixMessageAttachment, n as formatMatrixMediaUnavailableText, r as formatMatrixMessageText, s as fetchMatrixPollSnapshot, t as formatMatrixMediaTooLargeText } from "./media-text-BsC0CZlM.js";
|
|
19
19
|
import { n as setActiveMatrixClient } from "./active-client-uhlxdhEy.js";
|
|
20
20
|
import { t as isBunRuntime } from "./runtime-C6X4h_SJ.js";
|
|
21
21
|
import { n as resolveMatrixAuth, r as resolveMatrixAuthContext, t as backfillMatrixAuthDeviceIdAfterStartup } from "./config-DvF87-p1.js";
|
|
@@ -35,6 +35,7 @@ import { resolveAckReaction } from "openclaw/plugin-sdk/channel-feedback";
|
|
|
35
35
|
import { hasFinalInboundReplyDispatch } from "openclaw/plugin-sdk/inbound-reply-dispatch";
|
|
36
36
|
import { waitUntilAbort } from "openclaw/plugin-sdk/channel-lifecycle";
|
|
37
37
|
import { registerChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
|
|
38
|
+
import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
|
|
38
39
|
import { createChannelIngressResolver, defineStableChannelIngressIdentity } from "openclaw/plugin-sdk/channel-ingress-runtime";
|
|
39
40
|
import { createChannelProgressDraftGate, formatChannelProgressDraftLine, formatChannelProgressDraftLineForEntry, formatChannelProgressDraftText, isChannelProgressDraftWorkToolName, resolveChannelProgressDraftMaxLines } from "openclaw/plugin-sdk/channel-streaming";
|
|
40
41
|
import { evaluateSupplementalContextVisibility, resolveChannelContextVisibilityMode } from "openclaw/plugin-sdk/context-visibility-runtime";
|
|
@@ -106,6 +107,9 @@ function filterResolvedMatrixAllowlistEntries(entries) {
|
|
|
106
107
|
return isMatrixQualifiedUserId(normalizeMatrixUserLookupEntry(trimmed));
|
|
107
108
|
});
|
|
108
109
|
}
|
|
110
|
+
function filterFailClosedMatrixAllowlistEntries(entries) {
|
|
111
|
+
return entries.filter((entry) => entry.trim().length > 0);
|
|
112
|
+
}
|
|
109
113
|
function listResolvedMatrixAllowlistEntries(params) {
|
|
110
114
|
const resolvedEntries = [];
|
|
111
115
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -131,6 +135,12 @@ function normalizeConfiguredMatrixAllowlistEntries(entries) {
|
|
|
131
135
|
}
|
|
132
136
|
return normalized;
|
|
133
137
|
}
|
|
138
|
+
function isMatrixDangerousNameMatchingEnabled(params) {
|
|
139
|
+
return isDangerousNameMatchingEnabled(resolveMatrixAccountConfig({
|
|
140
|
+
cfg: params.cfg,
|
|
141
|
+
accountId: params.accountId
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
134
144
|
function addUniqueMatrixAllowlistEntry(params) {
|
|
135
145
|
const trimmed = params.entry.trim();
|
|
136
146
|
if (!trimmed) return;
|
|
@@ -139,17 +149,48 @@ function addUniqueMatrixAllowlistEntry(params) {
|
|
|
139
149
|
params.seen.add(key);
|
|
140
150
|
params.entries.push(trimmed);
|
|
141
151
|
}
|
|
142
|
-
function
|
|
143
|
-
const
|
|
144
|
-
for (const
|
|
145
|
-
const
|
|
146
|
-
if (!
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
152
|
+
function resolveStableMatrixMonitorUserEntries(entries) {
|
|
153
|
+
const directMatches = [];
|
|
154
|
+
for (const entry of entries) {
|
|
155
|
+
const input = String(entry).trim();
|
|
156
|
+
if (!input) continue;
|
|
157
|
+
const query = normalizeMatrixUserLookupEntry(input);
|
|
158
|
+
if (!query || query === "*") continue;
|
|
159
|
+
directMatches.push(isMatrixQualifiedUserId(query) ? {
|
|
160
|
+
input,
|
|
161
|
+
resolved: true,
|
|
162
|
+
id: normalizeMatrixUserId(query)
|
|
163
|
+
} : {
|
|
164
|
+
input,
|
|
165
|
+
resolved: false
|
|
166
|
+
});
|
|
151
167
|
}
|
|
152
|
-
return
|
|
168
|
+
return buildAllowlistResolutionSummary(directMatches);
|
|
169
|
+
}
|
|
170
|
+
function logStableMatrixAllowlistUnresolved(params) {
|
|
171
|
+
if (params.unresolved.length === 0) return;
|
|
172
|
+
summarizeMapping(params.label, [], params.unresolved, params.runtime);
|
|
173
|
+
params.runtime.log?.(`${params.label} entries must be full Matrix IDs (example: @user:server). Unresolved entries will not match any sender. To match Matrix display names, set channels.matrix.dangerouslyAllowNameMatching=true.`);
|
|
174
|
+
}
|
|
175
|
+
function resolveStableMatrixMonitorUserAllowlist(params) {
|
|
176
|
+
const allowList = params.allowList;
|
|
177
|
+
const resolution = resolveStableMatrixMonitorUserEntries(allowList);
|
|
178
|
+
const canonicalized = canonicalizeAllowlistWithResolvedIds({
|
|
179
|
+
existing: allowList,
|
|
180
|
+
resolvedMap: resolution.resolvedMap
|
|
181
|
+
});
|
|
182
|
+
logStableMatrixAllowlistUnresolved({
|
|
183
|
+
label: params.label,
|
|
184
|
+
unresolved: resolution.unresolved,
|
|
185
|
+
runtime: params.runtime
|
|
186
|
+
});
|
|
187
|
+
return {
|
|
188
|
+
entries: params.failClosedOnUnresolved ? filterFailClosedMatrixAllowlistEntries(canonicalized) : filterResolvedMatrixAllowlistEntries(canonicalized),
|
|
189
|
+
resolvedEntries: listResolvedMatrixAllowlistEntries({
|
|
190
|
+
entries: allowList,
|
|
191
|
+
resolvedMap: resolution.resolvedMap
|
|
192
|
+
})
|
|
193
|
+
};
|
|
153
194
|
}
|
|
154
195
|
async function resolveMatrixMonitorUserEntries(params) {
|
|
155
196
|
const directMatches = [];
|
|
@@ -195,6 +236,15 @@ async function resolveMatrixMonitorUserAllowlist(params) {
|
|
|
195
236
|
entries: allowList,
|
|
196
237
|
resolvedEntries: []
|
|
197
238
|
};
|
|
239
|
+
if (!isMatrixDangerousNameMatchingEnabled({
|
|
240
|
+
cfg: params.cfg,
|
|
241
|
+
accountId: params.accountId
|
|
242
|
+
})) return resolveStableMatrixMonitorUserAllowlist({
|
|
243
|
+
allowList,
|
|
244
|
+
failClosedOnUnresolved: params.failClosedOnUnresolved,
|
|
245
|
+
label: params.label,
|
|
246
|
+
runtime: params.runtime
|
|
247
|
+
});
|
|
198
248
|
const resolution = await resolveMatrixMonitorUserEntries({
|
|
199
249
|
cfg: params.cfg,
|
|
200
250
|
accountId: params.accountId,
|
|
@@ -207,9 +257,9 @@ async function resolveMatrixMonitorUserAllowlist(params) {
|
|
|
207
257
|
resolvedMap: resolution.resolvedMap
|
|
208
258
|
});
|
|
209
259
|
summarizeMapping(params.label, resolution.mapping, resolution.unresolved, params.runtime);
|
|
210
|
-
if (resolution.unresolved.length > 0) params.runtime.log?.(`${params.label} entries must be full Matrix IDs (example: @user:server). Unresolved entries
|
|
260
|
+
if (resolution.unresolved.length > 0) params.runtime.log?.(`${params.label} entries must be full Matrix IDs (example: @user:server). Unresolved entries will not match any sender.`);
|
|
211
261
|
return {
|
|
212
|
-
entries: filterResolvedMatrixAllowlistEntries(canonicalized),
|
|
262
|
+
entries: params.failClosedOnUnresolved ? filterFailClosedMatrixAllowlistEntries(canonicalized) : filterResolvedMatrixAllowlistEntries(canonicalized),
|
|
213
263
|
resolvedEntries: listResolvedMatrixAllowlistEntries({
|
|
214
264
|
entries: allowList,
|
|
215
265
|
resolvedMap: resolution.resolvedMap
|
|
@@ -219,6 +269,10 @@ async function resolveMatrixMonitorUserAllowlist(params) {
|
|
|
219
269
|
async function resolveMatrixMonitorLiveUserAllowlist(params) {
|
|
220
270
|
const liveEntries = normalizeConfiguredMatrixAllowlistEntries(params.entries);
|
|
221
271
|
if (liveEntries.length === 0) return [];
|
|
272
|
+
const allowNameMatching = isMatrixDangerousNameMatchingEnabled({
|
|
273
|
+
cfg: params.cfg,
|
|
274
|
+
accountId: params.accountId
|
|
275
|
+
});
|
|
222
276
|
const effective = [];
|
|
223
277
|
const seen = /* @__PURE__ */ new Set();
|
|
224
278
|
const startupByInput = new Map((params.startupResolvedEntries ?? []).map((entry) => [entry.input, entry.id]));
|
|
@@ -242,7 +296,7 @@ async function resolveMatrixMonitorLiveUserAllowlist(params) {
|
|
|
242
296
|
continue;
|
|
243
297
|
}
|
|
244
298
|
const startupId = startupByInput.get(entry);
|
|
245
|
-
if (startupId) {
|
|
299
|
+
if (allowNameMatching && startupId) {
|
|
246
300
|
addUniqueMatrixAllowlistEntry({
|
|
247
301
|
entries: effective,
|
|
248
302
|
seen,
|
|
@@ -250,7 +304,15 @@ async function resolveMatrixMonitorLiveUserAllowlist(params) {
|
|
|
250
304
|
});
|
|
251
305
|
continue;
|
|
252
306
|
}
|
|
253
|
-
|
|
307
|
+
if (allowNameMatching) {
|
|
308
|
+
pending.push(entry);
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
if (params.failClosedOnUnresolved) addUniqueMatrixAllowlistEntry({
|
|
312
|
+
entries: effective,
|
|
313
|
+
seen,
|
|
314
|
+
entry
|
|
315
|
+
});
|
|
254
316
|
}
|
|
255
317
|
if (pending.length === 0) return effective;
|
|
256
318
|
const canonicalized = canonicalizeAllowlistWithResolvedIds({
|
|
@@ -263,7 +325,8 @@ async function resolveMatrixMonitorLiveUserAllowlist(params) {
|
|
|
263
325
|
resolveTargets: params.resolveTargets ?? resolveMatrixTargets
|
|
264
326
|
})).resolvedMap
|
|
265
327
|
});
|
|
266
|
-
|
|
328
|
+
const resolvedEntries = params.failClosedOnUnresolved ? filterFailClosedMatrixAllowlistEntries(canonicalized) : filterResolvedMatrixAllowlistEntries(canonicalized);
|
|
329
|
+
for (const entry of resolvedEntries) addUniqueMatrixAllowlistEntry({
|
|
267
330
|
entries: effective,
|
|
268
331
|
seen,
|
|
269
332
|
entry
|
|
@@ -276,6 +339,10 @@ async function resolveMatrixMonitorRoomsConfig(params) {
|
|
|
276
339
|
const mapping = [];
|
|
277
340
|
const unresolved = [];
|
|
278
341
|
const nextRooms = {};
|
|
342
|
+
const allowNameMatching = isMatrixDangerousNameMatchingEnabled({
|
|
343
|
+
cfg: params.cfg,
|
|
344
|
+
accountId: params.accountId
|
|
345
|
+
});
|
|
279
346
|
if (roomsConfig["*"]) nextRooms["*"] = roomsConfig["*"];
|
|
280
347
|
const pending = [];
|
|
281
348
|
for (const [entry, roomConfig] of Object.entries(roomsConfig)) {
|
|
@@ -292,6 +359,10 @@ async function resolveMatrixMonitorRoomsConfig(params) {
|
|
|
292
359
|
if (cleaned !== input) mapping.push(`${input}→${cleaned}`);
|
|
293
360
|
continue;
|
|
294
361
|
}
|
|
362
|
+
if (!cleaned.startsWith("#") && !allowNameMatching) {
|
|
363
|
+
unresolved.push(input);
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
295
366
|
pending.push({
|
|
296
367
|
input,
|
|
297
368
|
query: cleaned,
|
|
@@ -318,6 +389,19 @@ async function resolveMatrixMonitorRoomsConfig(params) {
|
|
|
318
389
|
const roomUsers = /* @__PURE__ */ new Set();
|
|
319
390
|
for (const roomConfig of Object.values(nextRooms)) addAllowlistUserEntriesFromConfigEntry(roomUsers, roomConfig);
|
|
320
391
|
if (roomUsers.size === 0) return nextRooms;
|
|
392
|
+
if (!allowNameMatching) {
|
|
393
|
+
const resolution = resolveStableMatrixMonitorUserEntries(Array.from(roomUsers));
|
|
394
|
+
logStableMatrixAllowlistUnresolved({
|
|
395
|
+
label: "matrix room users",
|
|
396
|
+
unresolved: resolution.unresolved,
|
|
397
|
+
runtime: params.runtime
|
|
398
|
+
});
|
|
399
|
+
return patchAllowlistUsersInConfigEntries({
|
|
400
|
+
entries: nextRooms,
|
|
401
|
+
resolvedMap: resolution.resolvedMap,
|
|
402
|
+
strategy: "canonicalize"
|
|
403
|
+
});
|
|
404
|
+
}
|
|
321
405
|
const resolution = await resolveMatrixMonitorUserEntries({
|
|
322
406
|
cfg: params.cfg,
|
|
323
407
|
accountId: params.accountId,
|
|
@@ -326,12 +410,12 @@ async function resolveMatrixMonitorRoomsConfig(params) {
|
|
|
326
410
|
resolveTargets: params.resolveTargets
|
|
327
411
|
});
|
|
328
412
|
summarizeMapping("matrix room users", resolution.mapping, resolution.unresolved, params.runtime);
|
|
329
|
-
if (resolution.unresolved.length > 0) params.runtime.log?.("matrix room users entries must be full Matrix IDs (example: @user:server). Unresolved entries
|
|
330
|
-
return
|
|
413
|
+
if (resolution.unresolved.length > 0) params.runtime.log?.("matrix room users entries must be full Matrix IDs (example: @user:server). Unresolved entries will not match any sender.");
|
|
414
|
+
return patchAllowlistUsersInConfigEntries({
|
|
331
415
|
entries: nextRooms,
|
|
332
416
|
resolvedMap: resolution.resolvedMap,
|
|
333
417
|
strategy: "canonicalize"
|
|
334
|
-
})
|
|
418
|
+
});
|
|
335
419
|
}
|
|
336
420
|
async function resolveMatrixMonitorConfig(params) {
|
|
337
421
|
const resolveTargets = params.resolveTargets ?? resolveMatrixTargets;
|
|
@@ -349,6 +433,7 @@ async function resolveMatrixMonitorConfig(params) {
|
|
|
349
433
|
accountId: params.accountId,
|
|
350
434
|
label: "matrix group allowlist",
|
|
351
435
|
list: params.groupAllowFrom,
|
|
436
|
+
failClosedOnUnresolved: true,
|
|
352
437
|
runtime: params.runtime,
|
|
353
438
|
resolveTargets
|
|
354
439
|
}),
|
|
@@ -455,6 +540,14 @@ function createDirectRoomTracker(client, opts = {}) {
|
|
|
455
540
|
return false;
|
|
456
541
|
}
|
|
457
542
|
};
|
|
543
|
+
const canPromoteUnmappedStrictRoom = async (roomId) => {
|
|
544
|
+
try {
|
|
545
|
+
return await opts.canPromoteUnmappedStrictRoom?.(roomId) ?? false;
|
|
546
|
+
} catch (err) {
|
|
547
|
+
log(`matrix: unmapped strict room promotion veto failed room=${roomId} (${String(err)})`);
|
|
548
|
+
return false;
|
|
549
|
+
}
|
|
550
|
+
};
|
|
458
551
|
const shouldKeepLocallyPromotedDirectRoom = async (roomId) => {
|
|
459
552
|
try {
|
|
460
553
|
return await opts.shouldKeepLocallyPromotedDirectRoom?.(roomId);
|
|
@@ -545,6 +638,19 @@ function createDirectRoomTracker(client, opts = {}) {
|
|
|
545
638
|
return true;
|
|
546
639
|
}
|
|
547
640
|
}
|
|
641
|
+
if (await canPromoteUnmappedStrictRoom(roomId)) {
|
|
642
|
+
const promotion = await promoteMatrixDirectRoomCandidate({
|
|
643
|
+
client,
|
|
644
|
+
remoteUserId: senderId ?? "",
|
|
645
|
+
roomId,
|
|
646
|
+
selfUserId
|
|
647
|
+
});
|
|
648
|
+
if (promotion.classifyAsDirect) {
|
|
649
|
+
rememberLocallyPromotedDirectRoom(roomId, senderId ?? "");
|
|
650
|
+
log(`matrix: dm detected via per-room strict fallback room=${roomId} reason=${promotion.reason} repaired=${String(promotion.repaired)}`);
|
|
651
|
+
return true;
|
|
652
|
+
}
|
|
653
|
+
}
|
|
548
654
|
}
|
|
549
655
|
log(`matrix: dm check room=${roomId} result=group members=${joinedMembers?.length ?? "unknown"}`);
|
|
550
656
|
return false;
|
|
@@ -693,7 +799,7 @@ const SAS_NOTICE_RETRY_DELAY_MS = 750;
|
|
|
693
799
|
const VERIFICATION_EVENT_STARTUP_GRACE_MS = 3e4;
|
|
694
800
|
let matrixDirectRoomDepsPromise;
|
|
695
801
|
async function loadMatrixDirectRoomDeps() {
|
|
696
|
-
matrixDirectRoomDepsPromise ??= Promise.all([import("./direct-management
|
|
802
|
+
matrixDirectRoomDepsPromise ??= Promise.all([import("./direct-management--Y8ypgLv.js").then((n) => n.t), import("./direct-room-XkutHjES.js").then((n) => n.t)]).then(([directManagementModule, directRoomModule]) => ({
|
|
697
803
|
inspectMatrixDirectRooms: directManagementModule.inspectMatrixDirectRooms,
|
|
698
804
|
isStrictDirectRoom: directRoomModule.isStrictDirectRoom
|
|
699
805
|
}));
|
|
@@ -1895,7 +2001,7 @@ let sessionBindingRuntimePromise;
|
|
|
1895
2001
|
let matrixReactionEventsPromise;
|
|
1896
2002
|
let matrixDraftStreamPromise;
|
|
1897
2003
|
function loadMatrixSendModule() {
|
|
1898
|
-
matrixSendModulePromise ??= import("./send-
|
|
2004
|
+
matrixSendModulePromise ??= import("./send-BEmVVhTJ.js").then((n) => n.l);
|
|
1899
2005
|
return matrixSendModulePromise;
|
|
1900
2006
|
}
|
|
1901
2007
|
function loadAcpBindingRuntime() {
|
|
@@ -1911,7 +2017,7 @@ function loadMatrixReactionEvents() {
|
|
|
1911
2017
|
return matrixReactionEventsPromise;
|
|
1912
2018
|
}
|
|
1913
2019
|
function loadMatrixDraftStream() {
|
|
1914
|
-
matrixDraftStreamPromise ??= import("./draft-stream-
|
|
2020
|
+
matrixDraftStreamPromise ??= import("./draft-stream-BY3Rr2XT.js");
|
|
1915
2021
|
return matrixDraftStreamPromise;
|
|
1916
2022
|
}
|
|
1917
2023
|
const MAX_TRACKED_PAIRING_REPLY_SENDERS = 512;
|
|
@@ -2026,12 +2132,21 @@ function createMatrixRoomMessageHandler(params) {
|
|
|
2026
2132
|
let liveDmAllowlistCache = null;
|
|
2027
2133
|
let liveGroupAllowlistCache = null;
|
|
2028
2134
|
const resolveCachedLiveAllowlist = async (params) => {
|
|
2029
|
-
const
|
|
2135
|
+
const accountConfig = resolveMatrixAccountConfig({
|
|
2136
|
+
cfg: params.cfg,
|
|
2137
|
+
accountId
|
|
2138
|
+
});
|
|
2139
|
+
const signature = JSON.stringify({
|
|
2140
|
+
entries: (params.entries ?? []).map((entry) => String(entry).trim()),
|
|
2141
|
+
failClosedOnUnresolved: params.failClosedOnUnresolved === true,
|
|
2142
|
+
dangerouslyAllowNameMatching: isDangerousNameMatchingEnabled(accountConfig)
|
|
2143
|
+
});
|
|
2030
2144
|
if (params.cache?.signature === signature) return params.cache.entries;
|
|
2031
2145
|
const entries = await resolveLiveUserAllowlist({
|
|
2032
2146
|
cfg: params.cfg,
|
|
2033
2147
|
accountId,
|
|
2034
2148
|
entries: params.entries,
|
|
2149
|
+
failClosedOnUnresolved: params.failClosedOnUnresolved,
|
|
2035
2150
|
startupResolvedEntries: params.startupResolvedEntries,
|
|
2036
2151
|
runtime
|
|
2037
2152
|
});
|
|
@@ -2241,6 +2356,7 @@ function createMatrixRoomMessageHandler(params) {
|
|
|
2241
2356
|
groupAllowFrom: await resolveCachedLiveAllowlist({
|
|
2242
2357
|
cfg: liveCfg,
|
|
2243
2358
|
entries: liveAccountAllowlists.groupAllowFrom,
|
|
2359
|
+
failClosedOnUnresolved: true,
|
|
2244
2360
|
startupResolvedEntries: groupAllowFromResolvedEntries,
|
|
2245
2361
|
cache: liveGroupAllowlistCache,
|
|
2246
2362
|
updateCache: (next) => {
|
|
@@ -4018,6 +4134,11 @@ async function monitorMatrixProvider(opts = {}) {
|
|
|
4018
4134
|
roomInfo: await getRoomInfo(roomId, { includeAliases: true }),
|
|
4019
4135
|
rooms: roomsConfig
|
|
4020
4136
|
}),
|
|
4137
|
+
...dmSessionScope === "per-room" ? { canPromoteUnmappedStrictRoom: async (roomId) => shouldPromoteRecentInviteRoom({
|
|
4138
|
+
roomId,
|
|
4139
|
+
roomInfo: await getRoomInfo(roomId, { includeAliases: true }),
|
|
4140
|
+
rooms: roomsConfig
|
|
4141
|
+
}) } : {},
|
|
4021
4142
|
shouldKeepLocallyPromotedDirectRoom: async (roomId) => {
|
|
4022
4143
|
try {
|
|
4023
4144
|
const roomInfo = await getRoomInfo(roomId, { includeAliases: true });
|
|
@@ -3,7 +3,7 @@ import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runti
|
|
|
3
3
|
//#region extensions/matrix/src/plugin-entry.runtime.ts
|
|
4
4
|
let matrixVerificationRuntimePromise;
|
|
5
5
|
function loadMatrixVerificationRuntime() {
|
|
6
|
-
matrixVerificationRuntimePromise ??= import("./verification-
|
|
6
|
+
matrixVerificationRuntimePromise ??= import("./verification-XL53YYMw.js").then((n) => n.y);
|
|
7
7
|
return matrixVerificationRuntimePromise;
|
|
8
8
|
}
|
|
9
9
|
function sendError(respond, err) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as getMatrixRuntime } from "./runtime-Dog86njy.js";
|
|
2
2
|
import { n as resolveMatrixConfigPath, r as updateMatrixAccountConfig } from "./config-update-wZX-HLMn.js";
|
|
3
3
|
import { r as syncMatrixOwnProfile } from "./profile-BlHu0wDX.js";
|
|
4
|
-
import { n as withResolvedActionClient } from "./client-
|
|
4
|
+
import { n as withResolvedActionClient } from "./client-Dm7mu-C8.js";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
6
6
|
//#region extensions/matrix/src/matrix/actions/profile.ts
|
|
7
7
|
async function updateMatrixOwnProfile(opts = {}) {
|
|
@@ -3,7 +3,7 @@ import { r as normalizeMatrixResolvableTarget, t as isMatrixQualifiedUserId } fr
|
|
|
3
3
|
import { a as resolveMatrixAccountConfig } from "./account-config-D2W-V1eQ.js";
|
|
4
4
|
import { t as getMatrixRuntime } from "./runtime-Dog86njy.js";
|
|
5
5
|
import { r as buildMatrixReactionContent } from "./reaction-common-ejrL19w-.js";
|
|
6
|
-
import { c as MSC4357_LIVE_KEY, l as MsgType, n as inspectMatrixDirectRooms, o as EventType, r as persistMatrixDirectRoomMapping, u as RelationType } from "./direct-management
|
|
6
|
+
import { c as MSC4357_LIVE_KEY, l as MsgType, n as inspectMatrixDirectRooms, o as EventType, r as persistMatrixDirectRoomMapping, u as RelationType } from "./direct-management--Y8ypgLv.js";
|
|
7
7
|
import { a as isStrictDirectRoom } from "./direct-room-XkutHjES.js";
|
|
8
8
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeOptionalStringifiedId } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
9
9
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-message";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as resolveMatrixAccountConfig, n as hasExplicitMatrixAccountConfig } from "./account-config-D2W-V1eQ.js";
|
|
2
2
|
import "./accounts-Bm90Rzvp.js";
|
|
3
3
|
import { t as formatMatrixErrorMessage } from "./errors-CTcpEDq-.js";
|
|
4
|
-
import { n as bootstrapMatrixVerification } from "./verification-
|
|
4
|
+
import { n as bootstrapMatrixVerification } from "./verification-XL53YYMw.js";
|
|
5
5
|
//#region extensions/matrix/src/setup-bootstrap.ts
|
|
6
6
|
async function maybeBootstrapNewEncryptedMatrixAccount(params) {
|
|
7
7
|
const accountConfig = resolveMatrixAccountConfig({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as resolveMatrixAccountConfig } from "./account-config-D2W-V1eQ.js";
|
|
2
2
|
import { r as resolveDefaultMatrixAccountId } from "./accounts-Bm90Rzvp.js";
|
|
3
|
-
import { i as validateMatrixSetupInput, n as applyMatrixSetupAccountConfig, t as resolveMatrixSetupDmAllowFrom } from "./setup-dm-policy-
|
|
3
|
+
import { i as validateMatrixSetupInput, n as applyMatrixSetupAccountConfig, t as resolveMatrixSetupDmAllowFrom } from "./setup-dm-policy-Ca3jA4YW.js";
|
|
4
4
|
import { t as resolveMatrixConfigFieldPath } from "./config-paths-nsVaysCu.js";
|
|
5
5
|
import { r as updateMatrixAccountConfig } from "./config-update-wZX-HLMn.js";
|
|
6
6
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId, prepareScopedSetupConfig } from "openclaw/plugin-sdk/setup";
|
|
@@ -103,7 +103,7 @@ const matrixSetupAdapter = {
|
|
|
103
103
|
input
|
|
104
104
|
}),
|
|
105
105
|
afterAccountConfigWritten: async ({ previousCfg, cfg, accountId, runtime }) => {
|
|
106
|
-
const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-
|
|
106
|
+
const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-BYLBeJJ4.js");
|
|
107
107
|
await runMatrixSetupBootstrapAfterConfigWrite({
|
|
108
108
|
previousCfg,
|
|
109
109
|
cfg,
|
package/dist/setup-plugin-api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as resolveMatrixAccount } from "./accounts-Bm90Rzvp.js";
|
|
2
|
-
import { r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-
|
|
3
|
-
import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-
|
|
2
|
+
import { r as matrixConfigAdapter, t as MatrixChannelConfigSchema } from "./config-schema-B975BYl0.js";
|
|
3
|
+
import { n as matrixSetupAdapter, t as createMatrixSetupWizardProxy } from "./setup-core-DW8XlYqw.js";
|
|
4
4
|
import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
|
|
5
5
|
const matrixSetupPlugin = {
|
|
6
6
|
id: "matrix",
|
|
@@ -14,7 +14,7 @@ const matrixSetupPlugin = {
|
|
|
14
14
|
order: 70,
|
|
15
15
|
quickstartAllowFrom: true
|
|
16
16
|
},
|
|
17
|
-
setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./setup-surface-
|
|
17
|
+
setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./setup-surface-Dk7piW_w.js").then((n) => n.t)).matrixSetupWizard })),
|
|
18
18
|
setup: matrixSetupAdapter,
|
|
19
19
|
capabilities: {
|
|
20
20
|
chatTypes: [
|
|
@@ -3,7 +3,7 @@ import { n as requiresExplicitMatrixDefaultAccount } from "./account-selection-B
|
|
|
3
3
|
import { a as resolveMatrixAccountConfig } from "./account-config-D2W-V1eQ.js";
|
|
4
4
|
import { r as resolveMatrixEnvAuthReadiness } from "./env-auth-BJqGI8M6.js";
|
|
5
5
|
import { i as resolveMatrixAccount, r as resolveDefaultMatrixAccountId, t as listMatrixAccountIds } from "./accounts-Bm90Rzvp.js";
|
|
6
|
-
import { r as moveSingleMatrixAccountConfigToNamedAccount, t as resolveMatrixSetupDmAllowFrom } from "./setup-dm-policy-
|
|
6
|
+
import { r as moveSingleMatrixAccountConfigToNamedAccount, t as resolveMatrixSetupDmAllowFrom } from "./setup-dm-policy-Ca3jA4YW.js";
|
|
7
7
|
import { t as resolveMatrixConfigFieldPath } from "./config-paths-nsVaysCu.js";
|
|
8
8
|
import { r as updateMatrixAccountConfig } from "./config-update-wZX-HLMn.js";
|
|
9
9
|
import { n as validateMatrixHomeserverUrl, r as isPrivateOrLoopbackHost, t as resolveValidatedMatrixHomeserverUrl } from "./url-validation-DiK9j7jz.js";
|
|
@@ -510,7 +510,7 @@ const matrixOnboardingAdapter = {
|
|
|
510
510
|
});
|
|
511
511
|
},
|
|
512
512
|
afterConfigWritten: async ({ previousCfg, cfg, accountId, runtime }) => {
|
|
513
|
-
const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-
|
|
513
|
+
const { runMatrixSetupBootstrapAfterConfigWrite } = await import("./setup-bootstrap-BYLBeJJ4.js");
|
|
514
514
|
await runMatrixSetupBootstrapAfterConfigWrite({
|
|
515
515
|
previousCfg,
|
|
516
516
|
cfg,
|
package/dist/test-api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { r as setMatrixRuntime } from "./runtime-Dog86njy.js";
|
|
2
|
-
import { t as matrixPlugin } from "./channel-
|
|
2
|
+
import { t as matrixPlugin } from "./channel-FJw9FfCE.js";
|
|
3
3
|
import { t as MatrixClient } from "./sdk-CwxmHlgN.js";
|
|
4
4
|
export { MatrixClient, matrixPlugin, setMatrixRuntime };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
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-DK-d-oYX.js";
|
|
2
2
|
import { i as resolveMatrixStateFilePath, t as claimCurrentTokenStorageState } from "./storage-tC3ujLiW.js";
|
|
3
|
-
import { a as sendMessageMatrix } from "./send-
|
|
3
|
+
import { a as sendMessageMatrix } from "./send-BEmVVhTJ.js";
|
|
4
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { registerSessionBindingAdapter, resolveThreadBindingFarewellText, unregisterSessionBindingAdapter } from "openclaw/plugin-sdk/thread-bindings-session-runtime";
|
|
6
6
|
import path from "node:path";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { a as resolveMatrixAccountConfig } from "./account-config-D2W-V1eQ.js";
|
|
2
2
|
import "./accounts-Bm90Rzvp.js";
|
|
3
|
-
import { _ as parsePollStart, d as buildPollResponseContent, g as isPollStartType, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-
|
|
3
|
+
import { _ as parsePollStart, d as buildPollResponseContent, g as isPollStartType, i as reactMatrixMessage, u as resolveMatrixRoomId } from "./send-BEmVVhTJ.js";
|
|
4
4
|
import { i as buildMatrixReactionRelationsPath, o as selectOwnMatrixReactionEventIds, s as summarizeMatrixReactionEvents } from "./reaction-common-ejrL19w-.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-Dm7mu-C8.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-D_Y6efK2.js";
|
|
7
7
|
import { a as jsonResult, c as readStringArrayParam, l as readStringParam, o as readNumberParam, r as createActionGate, s as readReactionParams } from "./runtime-api-DTKcXOhp.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-BIkLEvFv.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-XL53YYMw.js";
|
|
10
10
|
import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
11
11
|
//#region extensions/matrix/src/matrix/actions/polls.ts
|
|
12
12
|
function normalizeOptionIndexes(indexes) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-DUslC3ob.js";
|
|
2
|
-
import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-
|
|
2
|
+
import { i as withStartedActionClient, n as withResolvedActionClient } from "./client-Dm7mu-C8.js";
|
|
3
3
|
import { n as formatMatrixEncryptionUnavailableError } from "./encryption-guidance-BPi3A_m3.js";
|
|
4
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
package/openclaw.plugin.json
CHANGED
|
@@ -262,6 +262,9 @@
|
|
|
262
262
|
"allowlistOnly": {
|
|
263
263
|
"type": "boolean"
|
|
264
264
|
},
|
|
265
|
+
"dangerouslyAllowNameMatching": {
|
|
266
|
+
"type": "boolean"
|
|
267
|
+
},
|
|
265
268
|
"allowBots": {
|
|
266
269
|
"anyOf": [
|
|
267
270
|
{
|
|
@@ -778,6 +781,10 @@
|
|
|
778
781
|
"label": "Matrix",
|
|
779
782
|
"description": "open protocol; install the plugin to enable.",
|
|
780
783
|
"uiHints": {
|
|
784
|
+
"dangerouslyAllowNameMatching": {
|
|
785
|
+
"label": "Matrix Display Name Matching",
|
|
786
|
+
"help": "Compatibility opt-in for resolving Matrix display names and joined room names in allowlists. Prefer full @user:server IDs and room IDs or aliases because names are mutable."
|
|
787
|
+
},
|
|
781
788
|
"streaming.progress.label": {
|
|
782
789
|
"label": "Matrix Progress Label",
|
|
783
790
|
"help": "Initial progress draft title. Use \"auto\" for built-in single-word labels, a custom string, or false to hide the title."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/matrix",
|
|
3
|
-
"version": "2026.5.10-beta.
|
|
3
|
+
"version": "2026.5.10-beta.5",
|
|
4
4
|
"description": "OpenClaw Matrix channel plugin",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"openclaw": "workspace:*"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"openclaw": ">=2026.5.10-beta.
|
|
25
|
+
"openclaw": ">=2026.5.10-beta.5"
|
|
26
26
|
},
|
|
27
27
|
"peerDependenciesMeta": {
|
|
28
28
|
"openclaw": {
|
|
@@ -87,10 +87,10 @@
|
|
|
87
87
|
"allowInvalidConfigRecovery": true
|
|
88
88
|
},
|
|
89
89
|
"compat": {
|
|
90
|
-
"pluginApi": ">=2026.5.10-beta.
|
|
90
|
+
"pluginApi": ">=2026.5.10-beta.5"
|
|
91
91
|
},
|
|
92
92
|
"build": {
|
|
93
|
-
"openclawVersion": "2026.5.10-beta.
|
|
93
|
+
"openclawVersion": "2026.5.10-beta.5"
|
|
94
94
|
},
|
|
95
95
|
"release": {
|
|
96
96
|
"publishToClawHub": true,
|