diff --git a/extensions/matrix/src/runtime-api.ts b/extensions/matrix/src/runtime-api.ts index 79a283ac39a..6f6e1d13865 100644 --- a/extensions/matrix/src/runtime-api.ts +++ b/extensions/matrix/src/runtime-api.ts @@ -1,4 +1,27 @@ -export * from "../../../src/plugin-sdk/matrix.js"; +// Pre-export only the symbols that plugin-sdk/matrix re-exports from this +// extension via helper-api.js and thread-bindings-runtime.js. These must be +// defined before the star re-export so Jiti's CJS interop guard +// (hasOwnProperty check) skips the duplicate definition that would otherwise +// come through the circular alias round-trip. +export { + requiresExplicitMatrixDefaultAccount, + resolveMatrixDefaultOrOnlyAccountId, +} from "./account-selection.js"; +export { getMatrixScopedEnvVarNames } from "./env-vars.js"; +export { + resolveMatrixAccountStorageRoot, + resolveMatrixCredentialsDir, + resolveMatrixCredentialsPath, + resolveMatrixLegacyFlatStoragePaths, +} from "./storage-paths.js"; +export { + setMatrixThreadBindingIdleTimeoutBySessionKey, + setMatrixThreadBindingMaxAgeBySessionKey, +} from "./matrix/thread-bindings-shared.js"; +// Star re-export for the remaining (non-extension) symbols in plugin-sdk/matrix. +// Properties already defined above are skipped by the CJS interop guard, so the +// circular helper-api path is never reached for those symbols. +export * from "openclaw/plugin-sdk/matrix"; export { assertHttpUrlTargetsPrivateNetwork, closeDispatcher,