diff --git a/extensions/imessage/runtime-api.ts b/extensions/imessage/runtime-api.ts index aa6d55c75e5..be3b48ec58b 100644 --- a/extensions/imessage/runtime-api.ts +++ b/extensions/imessage/runtime-api.ts @@ -1,6 +1,7 @@ export { DEFAULT_ACCOUNT_ID, PAIRING_APPROVED_MESSAGE, + buildComputedAccountStatusSnapshot, buildChannelConfigSchema, collectStatusIssuesFromLastError, formatTrimmedAllowFromEntries, diff --git a/extensions/imessage/src/channel.ts b/extensions/imessage/src/channel.ts index fe426323ed0..53c0706cdb2 100644 --- a/extensions/imessage/src/channel.ts +++ b/extensions/imessage/src/channel.ts @@ -5,6 +5,7 @@ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime"; import { resolveOutboundSendDep } from "openclaw/plugin-sdk/outbound-runtime"; import { buildOutboundBaseSessionKey, type RoutePeer } from "openclaw/plugin-sdk/routing"; import { + buildComputedAccountStatusSnapshot, collectStatusIssuesFromLastError, DEFAULT_ACCOUNT_ID, formatTrimmedAllowFromEntries, @@ -206,21 +207,21 @@ export const imessagePlugin: ChannelPlugin = { }), probeAccount: async ({ timeoutMs }) => await (await loadIMessageChannelRuntime()).probeIMessageAccount(timeoutMs), - buildAccountSnapshot: ({ account, runtime, probe }) => ({ - accountId: account.accountId, - name: account.name, - enabled: account.enabled, - configured: account.configured, - running: runtime?.running ?? false, - lastStartAt: runtime?.lastStartAt ?? null, - lastStopAt: runtime?.lastStopAt ?? null, - lastError: runtime?.lastError ?? null, - cliPath: runtime?.cliPath ?? account.config.cliPath ?? null, - dbPath: runtime?.dbPath ?? account.config.dbPath ?? null, - probe, - lastInboundAt: runtime?.lastInboundAt ?? null, - lastOutboundAt: runtime?.lastOutboundAt ?? null, - }), + buildAccountSnapshot: ({ account, runtime, probe }) => + buildComputedAccountStatusSnapshot( + { + accountId: account.accountId, + name: account.name, + enabled: account.enabled, + configured: account.configured, + runtime, + probe, + }, + { + cliPath: runtime?.cliPath ?? account.config.cliPath ?? null, + dbPath: runtime?.dbPath ?? account.config.dbPath ?? null, + }, + ), resolveAccountState: ({ enabled }) => (enabled ? "enabled" : "disabled"), }, gateway: { diff --git a/extensions/matrix/src/channel.ts b/extensions/matrix/src/channel.ts index a9b90873f47..ac06ccffa43 100644 --- a/extensions/matrix/src/channel.ts +++ b/extensions/matrix/src/channel.ts @@ -41,6 +41,7 @@ import { resolveMatrixTargetIdentity, } from "./matrix/target-ids.js"; import { + buildComputedAccountStatusSnapshot, buildChannelConfigSchema, buildProbeChannelStatusSummary, collectStatusIssuesFromLastError, @@ -412,20 +413,22 @@ export const matrixPlugin: ChannelPlugin = { }; } }, - buildAccountSnapshot: ({ account, runtime, probe }) => ({ - accountId: account.accountId, - name: account.name, - enabled: account.enabled, - configured: account.configured, - baseUrl: account.homeserver, - running: runtime?.running ?? false, - lastStartAt: runtime?.lastStartAt ?? null, - lastStopAt: runtime?.lastStopAt ?? null, - lastError: runtime?.lastError ?? null, - probe, - lastProbeAt: runtime?.lastProbeAt ?? null, - ...buildTrafficStatusSummary(runtime), - }), + buildAccountSnapshot: ({ account, runtime, probe }) => + buildComputedAccountStatusSnapshot( + { + accountId: account.accountId, + name: account.name, + enabled: account.enabled, + configured: account.configured, + runtime, + probe, + }, + { + baseUrl: account.homeserver, + lastProbeAt: runtime?.lastProbeAt ?? null, + ...buildTrafficStatusSummary(runtime), + }, + ), }, gateway: { startAccount: async (ctx) => { diff --git a/src/plugin-sdk/imessage.ts b/src/plugin-sdk/imessage.ts index b6c98da97c6..35a9c55c12e 100644 --- a/src/plugin-sdk/imessage.ts +++ b/src/plugin-sdk/imessage.ts @@ -42,7 +42,10 @@ export { export { IMessageConfigSchema } from "../config/zod-schema.providers-core.js"; export { resolveChannelMediaMaxBytes } from "../channels/plugins/media-limits.js"; -export { collectStatusIssuesFromLastError } from "./status-helpers.js"; +export { + buildComputedAccountStatusSnapshot, + collectStatusIssuesFromLastError, +} from "./status-helpers.js"; export { monitorIMessageProvider, probeIMessage, diff --git a/src/plugin-sdk/matrix.ts b/src/plugin-sdk/matrix.ts index 012dc4e6b10..c8117c59405 100644 --- a/src/plugin-sdk/matrix.ts +++ b/src/plugin-sdk/matrix.ts @@ -148,6 +148,7 @@ export { formatResolvedUnresolvedNote } from "./resolution-notes.js"; export { runPluginCommandWithTimeout } from "./run-command.js"; export { createLoggerBackedRuntime, resolveRuntimeEnv } from "./runtime.js"; export { + buildComputedAccountStatusSnapshot, buildProbeChannelStatusSummary, collectStatusIssuesFromLastError, } from "./status-helpers.js";