@openclaw/signal 2026.10.10 → 2026.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/.setup/{accounts-BZXLLXyZ.mjs → accounts-B0Pba1-q.mjs} +4 -3
  2. package/dist/.setup/api-DrgONWGQ.mjs +16 -0
  3. package/dist/.setup/{api-COBPAXbQ.mjs → api-t0JU264u.mjs} +11 -11
  4. package/dist/.setup/{approval-auth-BC9o4yna.mjs → approval-auth-DhUKkSkA.mjs} +7 -5
  5. package/dist/.setup/{approval-handler.runtime-Dzb_QGFk.mjs → approval-handler.runtime-YumoxyLn.mjs} +7 -6
  6. package/dist/.setup/{approval-reactions-Drpy356L.mjs → approval-reactions-JsqCEOHK.mjs} +9 -7
  7. package/dist/.setup/{channel-Cd52DrmN.mjs → channel-vYLPpt2W.mjs} +49 -35
  8. package/dist/.setup/{client-CRClyTxP.mjs → client-Duwqbgqi.mjs} +12 -6
  9. package/dist/.setup/{client-adapter-CNEkF_Ej.mjs → client-adapter-Chnbch_z.mjs} +3 -2
  10. package/dist/.setup/{config-schema-WrMl4uyV.mjs → config-schema-DvxZ18SD.mjs} +6 -4
  11. package/dist/.setup/{doctor-contract-api-BXWnMqDt.mjs → doctor-contract-api-BIdVW0PF.mjs} +19 -11
  12. package/dist/.setup/{identity-DzXre34N.mjs → identity-B3JyPqGO.mjs} +4 -2
  13. package/dist/.setup/{install-signal-cli-BjCk7EXq.mjs → install-signal-cli-hYVLYGXe.mjs} +2 -1
  14. package/dist/.setup/{legacy-transport-UHhcutJ4.mjs → legacy-transport-QIpaMNST.mjs} +2 -1
  15. package/dist/.setup/{monitor-C1qvr_Kl.mjs → monitor-BT1RzFIB.mjs} +37 -25
  16. package/dist/.setup/{normalize-B_3XS5ez.mjs → normalize-D7kSomXt.mjs} +2 -1
  17. package/dist/.setup/{probe-BYl1haPH.mjs → probe-D_93QCe0.mjs} +5 -4
  18. package/dist/.setup/{reaction-runtime-api-D7bhF81u.mjs → reaction-runtime-api-mdO4k0yv.mjs} +6 -5
  19. package/dist/.setup/{reaction-targets-Bg9NSMJF.mjs → reaction-targets-BgPLDHBf.mjs} +7 -5
  20. package/dist/.setup/{rpc-context-DmtN26AB.mjs → rpc-context-BAXcX7dI.mjs} +2 -1
  21. package/dist/.setup/{runtime-B_1v-nzc.mjs → runtime-8sxUF217.mjs} +2 -1
  22. package/dist/.setup/{send-BZd_WrI_.mjs → send-DBKOqLo-.mjs} +9 -8
  23. package/dist/.setup/{setup-surface-D5p9z7MO.mjs → setup-surface-D9sJZp9A.mjs} +5 -4
  24. package/dist/.setup/{transport-detection-oXau8_7D.mjs → transport-detection-CmlgOybe.mjs} +5 -4
  25. package/dist/.setup/{transport-policy-BvaaxIjp.mjs → transport-policy-B6C_LogW.mjs} +3 -2
  26. package/dist/.setup/transport-probes.runtime-D-xIMRcn.mjs +2 -0
  27. package/dist/.setup/{transport-url-BptucYNV.mjs → transport-url-CAC0JcuI.mjs} +4 -2
  28. package/dist/api.js +11 -11
  29. package/dist/channel-config-api.js +2 -1
  30. package/dist/channel-entry.js +2 -1
  31. package/dist/channel-plugin-api.js +2 -1
  32. package/dist/contract-api.js +3 -3
  33. package/dist/doctor-contract-api.js +2 -1
  34. package/dist/index.js +2 -1
  35. package/dist/reaction-runtime-api.js +2 -1
  36. package/dist/runtime-api.js +2 -1
  37. package/dist/secret-contract-api.js +2 -1
  38. package/dist/setup-entry.js +3 -2
  39. package/package.json +4 -4
  40. package/dist/.setup/api-Bw9wRi7s.mjs +0 -15
  41. package/dist/.setup/transport-probes.runtime-Ca_Rb1P2.mjs +0 -1
  42. package/dist/.source-module-urls/6644c27f416c8952f1e739724ebf62751ac9fafc7ee3c001a25ab5884899ae60.json +0 -1
@@ -1,8 +1,8 @@
1
- import { i as normalizeSignalTransportHost, n as buildSignalSocketUrl, o as resolveSignalAccountEntry, r as buildSignalTransportHttpUrl, t as assertSignalSocketTransport } from "./transport-url-BptucYNV.mjs";
2
- import { a as isSignalManagedNativeConnectionUrlForBind, c as resolveLocalSignalTransportPort, i as assignSignalManagedNativePort, n as DEFAULT_SIGNAL_MANAGED_NATIVE_PORT, r as allocateSignalManagedNativePort, s as reserveSignalTransportPorts } from "./transport-policy-BvaaxIjp.mjs";
1
+ import { i as normalizeSignalTransportHost, n as buildSignalSocketUrl, o as resolveSignalAccountEntry, r as buildSignalTransportHttpUrl, t as assertSignalSocketTransport } from "./transport-url-CAC0JcuI.mjs";
2
+ import { a as isSignalManagedNativeConnectionUrlForBind, c as resolveLocalSignalTransportPort, i as assignSignalManagedNativePort, n as DEFAULT_SIGNAL_MANAGED_NATIVE_PORT, r as allocateSignalManagedNativePort, s as reserveSignalTransportPorts } from "./transport-policy-B6C_LogW.mjs";
3
3
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { DEFAULT_ACCOUNT_ID, createAccountListHelpers, normalizeAccountId, resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-resolution";
5
- // extensions/signal/src/accounts.ts
5
+ //#region extensions/signal/src/accounts.ts
6
6
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal", {
7
7
  normalizeAccountId,
8
8
  implicitDefaultAccount: { channelKeys: ["account", "transport"] }
@@ -130,4 +130,5 @@ function resolveSignalReplyToMode(params) {
130
130
  const chatType = params.chatType === "direct" || params.chatType === "group" ? params.chatType : void 0;
131
131
  return normalizeSignalReplyToMode(chatType && accountConfig?.replyToModeByChatType?.[chatType]) ?? normalizeSignalReplyToMode(accountConfig?.replyToMode) ?? normalizeSignalReplyToMode(chatType && signalConfig?.replyToModeByChatType?.[chatType]) ?? normalizeSignalReplyToMode(signalConfig?.replyToMode) ?? "all";
132
132
  }
133
+ //#endregion
133
134
  export { resolveSignalAccountConfig as a, resolveSignalAccount as i, listSignalAccountIds as n, resolveSignalReplyToMode as o, resolveDefaultSignalAccountId as r, resolveSignalTransport as s, listEnabledSignalAccounts as t };
@@ -0,0 +1,16 @@
1
+ import "./accounts-B0Pba1-q.mjs";
2
+ import "./normalize-D7kSomXt.mjs";
3
+ import "./identity-B3JyPqGO.mjs";
4
+ import { l as signalSetupContract, n as createSignalPluginBase, r as signalSetupWizard } from "./channel-vYLPpt2W.mjs";
5
+ import "./reaction-runtime-api-mdO4k0yv.mjs";
6
+ import "./install-signal-cli-hYVLYGXe.mjs";
7
+ import "./monitor-BT1RzFIB.mjs";
8
+ import "./send-DBKOqLo-.mjs";
9
+ import "./probe-D_93QCe0.mjs";
10
+ //#region extensions/signal/src/channel.setup.ts
11
+ const signalSetupPlugin = createSignalPluginBase({
12
+ setupWizard: signalSetupWizard,
13
+ setupContract: signalSetupContract
14
+ });
15
+ //#endregion
16
+ export { signalSetupPlugin as t };
@@ -1,12 +1,12 @@
1
- import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-BZXLLXyZ.mjs";
2
- import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-B_3XS5ez.mjs";
3
- import { a as normalizeSignalAllowRecipient, c as resolveSignalSender, i as isSignalSenderAllowed, l as looksLikeUuid, n as formatSignalSenderDisplay, o as resolveSignalPeerId, r as formatSignalSenderId, s as resolveSignalRecipient, t as formatSignalPairingIdLine } from "./identity-DzXre34N.mjs";
4
- import { _ as resolveSignalReactionLevel, a as normalizeSignalAccountInput, b as markdownToSignalTextChunks, d as probeSignalTransport, f as writeSignalAccountTransport, g as signalMessageActions, h as resolveSignalOutboundTarget, t as signalPlugin, u as prepareSignalManagedNativeTransport, y as markdownToSignalText } from "./channel-Cd52DrmN.mjs";
5
- import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-D7bhF81u.mjs";
6
- import { t as detectSignalTransport } from "./transport-detection-oXau8_7D.mjs";
7
- import { t as signalSetupPlugin } from "./api-Bw9wRi7s.mjs";
8
- import { r as installSignalCli } from "./install-signal-cli-BjCk7EXq.mjs";
9
- import { t as monitorSignalProvider } from "./monitor-C1qvr_Kl.mjs";
10
- import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-BZd_WrI_.mjs";
11
- import { t as probeSignal } from "./probe-BYl1haPH.mjs";
1
+ import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-B0Pba1-q.mjs";
2
+ import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-D7kSomXt.mjs";
3
+ import { a as normalizeSignalAllowRecipient, c as resolveSignalSender, i as isSignalSenderAllowed, l as looksLikeUuid, n as formatSignalSenderDisplay, o as resolveSignalPeerId, r as formatSignalSenderId, s as resolveSignalRecipient, t as formatSignalPairingIdLine } from "./identity-B3JyPqGO.mjs";
4
+ import { _ as resolveSignalReactionLevel, a as normalizeSignalAccountInput, b as markdownToSignalTextChunks, d as probeSignalTransport, f as writeSignalAccountTransport, g as signalMessageActions, h as resolveSignalOutboundTarget, t as signalPlugin, u as prepareSignalManagedNativeTransport, y as markdownToSignalText } from "./channel-vYLPpt2W.mjs";
5
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-mdO4k0yv.mjs";
6
+ import { t as detectSignalTransport } from "./transport-detection-CmlgOybe.mjs";
7
+ import { t as signalSetupPlugin } from "./api-DrgONWGQ.mjs";
8
+ import { r as installSignalCli } from "./install-signal-cli-hYVLYGXe.mjs";
9
+ import { t as monitorSignalProvider } from "./monitor-BT1RzFIB.mjs";
10
+ import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-DBKOqLo-.mjs";
11
+ import { t as probeSignal } from "./probe-D_93QCe0.mjs";
12
12
  export { detectSignalTransport, formatSignalPairingIdLine, formatSignalSenderDisplay, formatSignalSenderId, installSignalCli, isSignalSenderAllowed, listEnabledSignalAccounts, listSignalAccountIds, looksLikeSignalTargetId, looksLikeUuid, markdownToSignalText, markdownToSignalTextChunks, monitorSignalProvider, normalizeSignalAccountInput, normalizeSignalAllowRecipient, normalizeSignalMessagingTarget, prepareSignalManagedNativeTransport, probeSignal, probeSignalTransport, removeReactionSignal, resolveDefaultSignalAccountId, resolveSignalAccount, resolveSignalOutboundTarget, resolveSignalPeerId, resolveSignalReactionLevel, resolveSignalRecipient, resolveSignalSender, sendMessageSignal, sendReactionSignal, sendReadReceiptSignal, sendTypingSignal, signalMessageActions, signalPlugin, signalSetupPlugin, writeSignalAccountTransport };
@@ -1,10 +1,10 @@
1
- import { i as resolveSignalAccount } from "./accounts-BZXLLXyZ.mjs";
2
- import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-B_3XS5ez.mjs";
3
- import { l as looksLikeUuid } from "./identity-DzXre34N.mjs";
1
+ import { i as resolveSignalAccount } from "./accounts-B0Pba1-q.mjs";
2
+ import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-D7kSomXt.mjs";
3
+ import { l as looksLikeUuid } from "./identity-B3JyPqGO.mjs";
4
4
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { createChannelApprovalAuth } from "openclaw/plugin-sdk/approval-auth-runtime";
6
6
  import { normalizeE164 } from "openclaw/plugin-sdk/text-utility-runtime";
7
- // extensions/signal/src/aliases.ts
7
+ //#region extensions/signal/src/aliases.ts
8
8
  function normalizeAliasKey(raw) {
9
9
  return normalizeLowercaseStringOrEmpty(raw.trim().replace(/^signal:/i, "")) || void 0;
10
10
  }
@@ -122,7 +122,8 @@ function listSignalAliasDirectoryEntries(params) {
122
122
  }
123
123
  return entries;
124
124
  }
125
- // extensions/signal/src/approval-auth.ts
125
+ //#endregion
126
+ //#region extensions/signal/src/approval-auth.ts
126
127
  function normalizeSignalApproverId(value) {
127
128
  const normalized = normalizeSignalMessagingTarget(String(value));
128
129
  if (!normalized || normalized.startsWith("group:") || normalized.startsWith("username:")) return;
@@ -156,4 +157,5 @@ const signalApproval = createChannelApprovalAuth({
156
157
  });
157
158
  const getSignalApprovalApprovers = signalApproval.resolveApprovers;
158
159
  const signalApprovalAuth = signalApproval.approvalAuth;
160
+ //#endregion
159
161
  export { resolveSignalTarget as a, resolveSignalDeliveredConversationKey as i, signalApprovalAuth as n, listSignalAliasDirectoryEntries as r, getSignalApprovalApprovers as t };
@@ -1,15 +1,15 @@
1
- import { r as resolveDefaultSignalAccountId } from "./accounts-BZXLLXyZ.mjs";
2
- import { n as normalizeSignalMessagingTarget } from "./normalize-B_3XS5ez.mjs";
3
- import { a as resolveSignalTarget } from "./approval-auth-BC9o4yna.mjs";
4
- import { a as registerSignalApprovalReactionTarget, c as resolveSignalApprovalTargetAuthorKeys, l as unregisterSignalApprovalReactionTarget, r as hasSignalApprovalReactionApprovers, s as resolveSignalApprovalConversationKey } from "./approval-reactions-Drpy356L.mjs";
5
- import { r as sendTypingSignal, t as sendMessageSignal } from "./send-BZd_WrI_.mjs";
1
+ import { r as resolveDefaultSignalAccountId } from "./accounts-B0Pba1-q.mjs";
2
+ import { n as normalizeSignalMessagingTarget } from "./normalize-D7kSomXt.mjs";
3
+ import { a as resolveSignalTarget } from "./approval-auth-DhUKkSkA.mjs";
4
+ import { a as registerSignalApprovalReactionTarget, c as resolveSignalApprovalTargetAuthorKeys, l as unregisterSignalApprovalReactionTarget, r as hasSignalApprovalReactionApprovers, s as resolveSignalApprovalConversationKey } from "./approval-reactions-JsqCEOHK.mjs";
5
+ import { r as sendTypingSignal, t as sendMessageSignal } from "./send-DBKOqLo-.mjs";
6
6
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
9
9
  import { buildApprovalReactionPendingContent } from "openclaw/plugin-sdk/approval-reaction-runtime";
10
10
  import { createSubsystemLogger } from "openclaw/plugin-sdk/runtime-env";
11
11
  import { buildChannelApprovalExpiredText, buildChannelApprovalResolvedText, createChannelApprovalNativeRuntimeAdapterAsync, resolvePreparedApprovalAccountId } from "openclaw/plugin-sdk/approval-handler-runtime";
12
- // extensions/signal/src/approval-handler.runtime.ts
12
+ //#region extensions/signal/src/approval-handler.runtime.ts
13
13
  const log = createSubsystemLogger("signal/approvals");
14
14
  function readSignalApprovalRuntimeContext(context) {
15
15
  const value = context;
@@ -158,4 +158,5 @@ const signalApprovalNativeRuntime = createChannelApprovalNativeRuntimeAdapterAsy
158
158
  log.error(`signal approvals: failed to send request ${request.id}: ${String(error)}`);
159
159
  } }
160
160
  });
161
+ //#endregion
161
162
  export { signalApprovalNativeRuntime };
@@ -1,8 +1,8 @@
1
- import { o as __exportAll } from "./doctor-contract-api-BXWnMqDt.mjs";
2
- import { n as normalizeSignalMessagingTarget } from "./normalize-B_3XS5ez.mjs";
3
- import { a as resolveSignalTarget, i as resolveSignalDeliveredConversationKey, n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-BC9o4yna.mjs";
4
- import { l as looksLikeUuid } from "./identity-DzXre34N.mjs";
5
- import { t as getOptionalSignalRuntime } from "./runtime-B_1v-nzc.mjs";
1
+ import { o as __exportAll } from "./doctor-contract-api-BIdVW0PF.mjs";
2
+ import { n as normalizeSignalMessagingTarget } from "./normalize-D7kSomXt.mjs";
3
+ import { a as resolveSignalTarget, i as resolveSignalDeliveredConversationKey, n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-DhUKkSkA.mjs";
4
+ import { l as looksLikeUuid } from "./identity-B3JyPqGO.mjs";
5
+ import { t as getOptionalSignalRuntime } from "./runtime-8sxUF217.mjs";
6
6
  import { createLazyRuntimeSurface } from "openclaw/plugin-sdk/lazy-runtime";
7
7
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
8
8
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -11,7 +11,7 @@ import { normalizeE164 } from "openclaw/plugin-sdk/text-utility-runtime";
11
11
  import { getExecApprovalReplyMetadata } from "openclaw/plugin-sdk/approval-reply-runtime";
12
12
  import { createPluginStateErrorReporter } from "openclaw/plugin-sdk/plugin-state-runtime";
13
13
  import { matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
14
- // extensions/signal/src/approval-reaction-routes.ts
14
+ //#region extensions/signal/src/approval-reaction-routes.ts
15
15
  function resolveSignalApprovalRouteTarget(params) {
16
16
  try {
17
17
  return resolveSignalTarget({
@@ -77,7 +77,8 @@ function buildTargetRoute(params) {
77
77
  }
78
78
  }) ? route : null;
79
79
  }
80
- // extensions/signal/src/approval-reactions.ts
80
+ //#endregion
81
+ //#region extensions/signal/src/approval-reactions.ts
81
82
  var approval_reactions_exports = /* @__PURE__ */ __exportAll({
82
83
  addSignalApprovalReactionHintToStructuredPayload: () => addSignalApprovalReactionHintToStructuredPayload,
83
84
  clearSignalApprovalReactionTargetsForTest: () => clearSignalApprovalReactionTargetsForTest,
@@ -351,4 +352,5 @@ function clearSignalApprovalReactionTargetsForTest() {
351
352
  signalApprovalReactionTargets.clearForTest();
352
353
  loadResolveApprovalOverGateway.clear();
353
354
  }
355
+ //#endregion
354
356
  export { registerSignalApprovalReactionTarget as a, resolveSignalApprovalTargetAuthorKeys as c, maybeResolveSignalApprovalReaction as i, unregisterSignalApprovalReactionTarget as l, approval_reactions_exports as n, registerSignalApprovalReactionTargetForDeliveredPayload as o, hasSignalApprovalReactionApprovers as r, resolveSignalApprovalConversationKey as s, addSignalApprovalReactionHintToStructuredPayload as t };
@@ -1,14 +1,14 @@
1
- import { a as migrateLegacySignalTransportConfig, i as clearLegacySignalTransportFieldsForAccount, n as normalizeCompatibilityConfig, r as repairSignalAccountKeys } from "./doctor-contract-api-BXWnMqDt.mjs";
2
- import { a as normalizeSignalTransportUrl, i as normalizeSignalTransportHost, o as resolveSignalAccountEntry, s as resolveSignalAccountKey, t as assertSignalSocketTransport } from "./transport-url-BptucYNV.mjs";
3
- import { a as isSignalManagedNativeConnectionUrlForBind, c as resolveLocalSignalTransportPort, i as assignSignalManagedNativePort, o as isValidSignalManagedNativePort, r as allocateSignalManagedNativePort, s as reserveSignalTransportPorts } from "./transport-policy-BvaaxIjp.mjs";
4
- import { a as resolveSignalAccountConfig, i as resolveSignalAccount, n as listSignalAccountIds, o as resolveSignalReplyToMode, r as resolveDefaultSignalAccountId, s as resolveSignalTransport, t as listEnabledSignalAccounts } from "./accounts-BZXLLXyZ.mjs";
5
- import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./normalize-B_3XS5ez.mjs";
6
- import { a as resolveSignalTarget, n as signalApprovalAuth, r as listSignalAliasDirectoryEntries, t as getSignalApprovalApprovers } from "./approval-auth-BC9o4yna.mjs";
7
- import { c as resolveSignalSender, l as looksLikeUuid, o as resolveSignalPeerId, s as resolveSignalRecipient } from "./identity-DzXre34N.mjs";
8
- import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-D7bhF81u.mjs";
9
- import { t as getOptionalSignalRuntime } from "./runtime-B_1v-nzc.mjs";
10
- import { t as detectSignalTransport } from "./transport-detection-oXau8_7D.mjs";
11
- import { t as SignalChannelConfigSchema } from "./config-schema-WrMl4uyV.mjs";
1
+ import { a as migrateLegacySignalTransportConfig, i as clearLegacySignalTransportFieldsForAccount, n as normalizeCompatibilityConfig, r as repairSignalAccountKeys } from "./doctor-contract-api-BIdVW0PF.mjs";
2
+ import { a as normalizeSignalTransportUrl, i as normalizeSignalTransportHost, o as resolveSignalAccountEntry, s as resolveSignalAccountKey, t as assertSignalSocketTransport } from "./transport-url-CAC0JcuI.mjs";
3
+ import { a as isSignalManagedNativeConnectionUrlForBind, c as resolveLocalSignalTransportPort, i as assignSignalManagedNativePort, o as isValidSignalManagedNativePort, r as allocateSignalManagedNativePort, s as reserveSignalTransportPorts } from "./transport-policy-B6C_LogW.mjs";
4
+ import { a as resolveSignalAccountConfig, i as resolveSignalAccount, n as listSignalAccountIds, o as resolveSignalReplyToMode, r as resolveDefaultSignalAccountId, s as resolveSignalTransport, t as listEnabledSignalAccounts } from "./accounts-B0Pba1-q.mjs";
5
+ import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./normalize-D7kSomXt.mjs";
6
+ import { a as resolveSignalTarget, n as signalApprovalAuth, r as listSignalAliasDirectoryEntries, t as getSignalApprovalApprovers } from "./approval-auth-DhUKkSkA.mjs";
7
+ import { c as resolveSignalSender, l as looksLikeUuid, o as resolveSignalPeerId, s as resolveSignalRecipient } from "./identity-B3JyPqGO.mjs";
8
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-mdO4k0yv.mjs";
9
+ import { t as getOptionalSignalRuntime } from "./runtime-8sxUF217.mjs";
10
+ import { t as detectSignalTransport } from "./transport-detection-CmlgOybe.mjs";
11
+ import { t as SignalChannelConfigSchema } from "./config-schema-DvxZ18SD.mjs";
12
12
  import { describeAccountSnapshot, resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/account-helpers";
13
13
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
14
14
  import { buildDmGroupAccountAllowlistAdapter } from "openclaw/plugin-sdk/allowlist-config-edit";
@@ -48,7 +48,7 @@ import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$2, createCliPathTextInput, cre
48
48
  import { formatCliCommand, formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
49
49
  import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
50
50
  import { createRestrictSendersChannelSecurity } from "openclaw/plugin-sdk/channel-policy";
51
- // extensions/signal/src/approval-native.ts
51
+ //#region extensions/signal/src/approval-native.ts
52
52
  function isSignalApprovalTransportEnabled(params) {
53
53
  return resolveSignalAccount({
54
54
  cfg: params.cfg,
@@ -102,7 +102,7 @@ const signalApproval = createApproverRestrictedNativeApprovalCapabilityFromForwa
102
102
  approvalKind,
103
103
  request
104
104
  }),
105
- load: async () => (await import("./approval-handler.runtime-Dzb_QGFk.mjs")).signalApprovalNativeRuntime
105
+ load: async () => (await import("./approval-handler.runtime-YumoxyLn.mjs")).signalApprovalNativeRuntime
106
106
  })
107
107
  });
108
108
  const signalApprovalRouting = signalApproval.routing;
@@ -132,7 +132,8 @@ function isSignalGroupTarget(to) {
132
132
  return normalizeLowercaseStringOrEmpty(to).startsWith("group:");
133
133
  }
134
134
  const signalApprovalCapability = signalApproval.capability;
135
- // extensions/signal/src/format.ts
135
+ //#endregion
136
+ //#region extensions/signal/src/format.ts
136
137
  const SIGNAL_STYLE_MAP = {
137
138
  bold: "BOLD",
138
139
  italic: "ITALIC",
@@ -211,7 +212,8 @@ function markdownToSignalTextChunks(markdown, limit, options = {}) {
211
212
  measureRendered: (rendered) => rendered.text.length
212
213
  }).map(({ rendered }) => rendered);
213
214
  }
214
- // extensions/signal/src/media-text.ts
215
+ //#endregion
216
+ //#region extensions/signal/src/media-text.ts
215
217
  /** Keeps Signal's established multi-attachment text while sharing single-item rendering. */
216
218
  function formatSignalMediaText(media) {
217
219
  if (media.length <= 1) return formatMediaPlaceholderText(media);
@@ -222,7 +224,8 @@ function formatSignalMediaText(media) {
222
224
  }
223
225
  return `[${[...kindCounts.entries()].map(([kind, count]) => `${count} ${kind === "attachment" ? "file" : kind}${count > 1 ? "s" : ""}`).join(" + ")} attached]`;
224
226
  }
225
- // extensions/signal/src/reaction-level.ts
227
+ //#endregion
228
+ //#region extensions/signal/src/reaction-level.ts
226
229
  function resolveSignalReactionLevel(params) {
227
230
  const account = resolveSignalAccount({
228
231
  cfg: params.cfg,
@@ -234,7 +237,8 @@ function resolveSignalReactionLevel(params) {
234
237
  invalidFallback: "minimal"
235
238
  });
236
239
  }
237
- // extensions/signal/src/message-actions.ts
240
+ //#endregion
241
+ //#region extensions/signal/src/message-actions.ts
238
242
  const providerId = "signal";
239
243
  const GROUP_PREFIX = "group:";
240
244
  function resolveSignalReactionTarget(raw) {
@@ -315,7 +319,8 @@ const signalMessageActions = {
315
319
  throw new Error(`Action ${action} not supported for ${providerId}.`);
316
320
  }
317
321
  };
318
- // extensions/signal/src/outbound-session.ts
322
+ //#endregion
323
+ //#region extensions/signal/src/outbound-session.ts
319
324
  function resolveSignalOutboundTarget(target) {
320
325
  const normalized = normalizeSignalMessagingTarget(target);
321
326
  if (!normalized) return null;
@@ -359,7 +364,8 @@ function resolveSignalOutboundTarget(target) {
359
364
  to: `signal:${displayRecipient}`
360
365
  };
361
366
  }
362
- // extensions/signal/src/presentation-fallback.ts
367
+ //#endregion
368
+ //#region extensions/signal/src/presentation-fallback.ts
363
369
  /** Materialize presentation content once before Signal's text-only delivery funnels. */
364
370
  function materializeSignalPresentationFallback(payload, presentationOverride) {
365
371
  const reactionPayload = questionGatewayRuntime.prepareReactionPayloadForDelivery({
@@ -382,9 +388,11 @@ function materializeSignalPresentationFallback(payload, presentationOverride) {
382
388
  text
383
389
  };
384
390
  }
385
- // extensions/signal/src/reply-authors-state.ts
391
+ //#endregion
392
+ //#region extensions/signal/src/reply-authors-state.ts
386
393
  const signalReplyAuthorState = { memoryReplyContexts: /* @__PURE__ */ new Map() };
387
- // extensions/signal/src/reply-authors.ts
394
+ //#endregion
395
+ //#region extensions/signal/src/reply-authors.ts
388
396
  const PERSISTENT_NAMESPACE = "signal.reply-authors.v1";
389
397
  const PERSISTENT_MAX_ENTRIES = 5e3;
390
398
  const DEFAULT_REPLY_AUTHOR_TTL_MS = 6048e5;
@@ -509,7 +517,8 @@ async function resolveSignalReplyContextWithPersistence(params) {
509
517
  return;
510
518
  }
511
519
  }
512
- // extensions/signal/src/setup-transport.ts
520
+ //#endregion
521
+ //#region extensions/signal/src/setup-transport.ts
513
522
  function normalizeTransport(transport) {
514
523
  if (transport.kind === "managed-native") {
515
524
  assertSignalSocketTransport(transport);
@@ -639,8 +648,8 @@ async function probeSignalTransport(params) {
639
648
  overrides: params.transport
640
649
  }) : params.transport;
641
650
  const resolved = resolveSignalTransport(transport);
642
- if (resolved.kind === "container") return (params.probeContainer ?? (await import("./transport-probes.runtime-Ca_Rb1P2.mjs")).containerCheck)(resolved.baseUrl, timeoutMs, params.account);
643
- return (params.probeNative ?? (await import("./transport-probes.runtime-Ca_Rb1P2.mjs")).nativeCheck)(resolved.baseUrl, timeoutMs);
651
+ if (resolved.kind === "container") return (params.probeContainer ?? (await import("./transport-probes.runtime-D-xIMRcn.mjs")).containerCheck)(resolved.baseUrl, timeoutMs, params.account);
652
+ return (params.probeNative ?? (await import("./transport-probes.runtime-D-xIMRcn.mjs")).nativeCheck)(resolved.baseUrl, timeoutMs);
644
653
  }
645
654
  function writeSignalAccountTransport(params) {
646
655
  const transport = normalizeTransport(params.transport);
@@ -670,7 +679,8 @@ function writeSignalAccountTransport(params) {
670
679
  });
671
680
  return canonical;
672
681
  }
673
- // extensions/signal/src/setup-core.ts
682
+ //#endregion
683
+ //#region extensions/signal/src/setup-core.ts
674
684
  const t = createSetupTranslator$1();
675
685
  const channel = "signal";
676
686
  const signalSetupFields = {
@@ -977,11 +987,12 @@ function createSignalSetupWizardProxy(loadWizard) {
977
987
  disable: (cfg) => setSetupChannelEnabled$1(cfg, channel, false)
978
988
  });
979
989
  }
980
- // extensions/signal/src/doctor.ts
990
+ //#endregion
991
+ //#region extensions/signal/src/doctor.ts
981
992
  const signalDoctor = {
982
993
  normalizeCompatibilityConfig,
983
994
  cleanStaleConfig: async ({ cfg }) => {
984
- const { detectSignalTransport } = await import("./transport-detection-oXau8_7D.mjs").then((n) => n.n);
995
+ const { detectSignalTransport } = await import("./transport-detection-CmlgOybe.mjs").then((n) => n.n);
985
996
  const transport = await migrateLegacySignalTransportConfig({
986
997
  cfg,
987
998
  detect: detectSignalTransport
@@ -992,9 +1003,10 @@ const signalDoctor = {
992
1003
  };
993
1004
  }
994
1005
  };
995
- // extensions/signal/src/shared.ts
1006
+ //#endregion
1007
+ //#region extensions/signal/src/shared.ts
996
1008
  const SIGNAL_CHANNEL = "signal";
997
- const signalSetupWizard = createSignalSetupWizardProxy(async () => (await import("./setup-surface-D5p9z7MO.mjs")).signalSetupWizard);
1009
+ const signalSetupWizard = createSignalSetupWizardProxy(async () => (await import("./setup-surface-D9sJZp9A.mjs")).signalSetupWizard);
998
1010
  const signalConfigAdapter = {
999
1011
  ...createScopedChannelConfigAdapter({
1000
1012
  sectionKey: SIGNAL_CHANNEL,
@@ -1077,11 +1089,12 @@ function createSignalPluginBase(params) {
1077
1089
  messaging: { defaultMarkdownTableMode: "bullets" }
1078
1090
  };
1079
1091
  }
1080
- // extensions/signal/src/channel.ts
1081
- const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-C1qvr_Kl.mjs").then((n) => n.n));
1082
- const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-BYl1haPH.mjs").then((n) => n.n));
1083
- const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send-BZd_WrI_.mjs").then((n) => n.i));
1084
- const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-Drpy356L.mjs").then((n) => n.n));
1092
+ //#endregion
1093
+ //#region extensions/signal/src/channel.ts
1094
+ const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-BT1RzFIB.mjs").then((n) => n.n));
1095
+ const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-D_93QCe0.mjs").then((n) => n.n));
1096
+ const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send-DBKOqLo-.mjs").then((n) => n.i));
1097
+ const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-JsqCEOHK.mjs").then((n) => n.n));
1085
1098
  async function createSignalOutboundSender(params) {
1086
1099
  const send = resolveOutboundSendDep(params.deps, "signal") ?? (await loadSignalSendRuntime()).sendMessageSignal;
1087
1100
  const maxBytes = resolveChannelMediaMaxBytes({
@@ -1261,7 +1274,7 @@ async function registerDeliveredSignalApprovalPayloadForReactions(params) {
1261
1274
  const targetAuthor = normalizeOptionalString(account.config.account);
1262
1275
  const targetAuthorUuid = normalizeOptionalString(account.config.accountUuid);
1263
1276
  if (!targetAuthor && !targetAuthorUuid) return;
1264
- const { registerSignalReactionTargetsForDeliveredPayload } = await import("./reaction-targets-Bg9NSMJF.mjs").then((n) => n.t);
1277
+ const { registerSignalReactionTargetsForDeliveredPayload } = await import("./reaction-targets-BgPLDHBf.mjs").then((n) => n.t);
1265
1278
  await registerSignalReactionTargetsForDeliveredPayload({
1266
1279
  cfg: params.cfg,
1267
1280
  target: {
@@ -1525,4 +1538,5 @@ const signalPlugin = createChatChannelPlugin({
1525
1538
  }
1526
1539
  }
1527
1540
  });
1541
+ //#endregion
1528
1542
  export { resolveSignalReactionLevel as _, normalizeSignalAccountInput as a, markdownToSignalTextChunks as b, signalNumberTextInput as c, probeSignalTransport as d, writeSignalAccountTransport as f, signalMessageActions as g, resolveSignalOutboundTarget as h, createSignalCliPathTextInput as i, signalSetupContract as l, materializeSignalPresentationFallback as m, createSignalPluginBase as n, signalCompletionNote as o, registerSignalReplyContext as p, signalSetupWizard as r, signalDmPolicy as s, signalPlugin as t, prepareSignalManagedNativeTransport as u, formatSignalMediaText as v, isSignalNativeApprovalHandlerConfigured as x, markdownToSignalText as y };
@@ -18,10 +18,11 @@ import { execFile } from "node:child_process";
18
18
  import { lstat, mkdir, rmdir, unlink } from "node:fs/promises";
19
19
  import os from "node:os";
20
20
  import { promisify } from "node:util";
21
- // extensions/signal/src/ws-runtime.ts
21
+ //#region extensions/signal/src/ws-runtime.ts
22
22
  const require = createRequire(import.meta.url);
23
23
  const WebSocket = require(path.join(path.dirname(require.resolve("ws/package.json")), "index.js"));
24
- // extensions/signal/src/client-container.ts
24
+ //#endregion
25
+ //#region extensions/signal/src/client-container.ts
25
26
  const DEFAULT_TIMEOUT_MS$2 = 1e4;
26
27
  const DEFAULT_ATTACHMENT_RESPONSE_MAX_BYTES = 1048576;
27
28
  const SIGNAL_REST_ERROR_RESPONSE_MAX_BYTES = 16384;
@@ -527,7 +528,8 @@ async function containerRpcRequest(method, params, opts) {
527
528
  default: throw new Error(`Unsupported container RPC method: ${method}`);
528
529
  }
529
530
  }
530
- // extensions/signal/src/quote-rejection.ts
531
+ //#endregion
532
+ //#region extensions/signal/src/quote-rejection.ts
531
533
  function isSignalQuoteMetadataRejection(error) {
532
534
  const message = error instanceof Error ? error.message : String(error);
533
535
  const normalized = normalizeLowercaseStringOrEmpty(message);
@@ -543,7 +545,8 @@ function isSignalQuoteMetadataRejection(error) {
543
545
  if (!normalized.includes("quote")) return false;
544
546
  return normalized.includes("reject") || normalized.includes("invalid") || normalized.includes("unrecognized") || normalized.includes("unsupported") || normalized.includes("not found") || normalized.includes("no such") || normalized.includes("unknown");
545
547
  }
546
- // extensions/signal/src/socket-path.ts
548
+ //#endregion
549
+ //#region extensions/signal/src/socket-path.ts
547
550
  const execFileAsync = promisify(execFile);
548
551
  function socketOwner(socketPath) {
549
552
  if (process.platform === "win32" || !process.getuid) throw new Error("Signal UNIX socket transport requires a POSIX host");
@@ -656,7 +659,8 @@ async function prepareSignalSocketPath(socketPath, abortSignal) {
656
659
  throw error;
657
660
  }
658
661
  }
659
- // extensions/signal/src/client-unix.ts
662
+ //#endregion
663
+ //#region extensions/signal/src/client-unix.ts
660
664
  const MAX_FRAME_BYTES = 1048576;
661
665
  const DEFAULT_TIMEOUT_MS$1 = 1e4;
662
666
  function socketPath(baseUrl) {
@@ -791,7 +795,8 @@ async function streamSignalUnixEvents(params) {
791
795
  connection.close();
792
796
  }
793
797
  }
794
- // extensions/signal/src/client.ts
798
+ //#endregion
799
+ //#region extensions/signal/src/client.ts
795
800
  /** Thrown when the native SSE endpoint rejects the request with a non-2xx HTTP status. */
796
801
  var SignalSseRejectionError = class extends Error {
797
802
  constructor(status, statusText) {
@@ -1099,4 +1104,5 @@ async function streamSignalEvents(params) {
1099
1104
  }
1100
1105
  await flushEvent();
1101
1106
  }
1107
+ //#endregion
1102
1108
  export { prepareSignalSocketPath as a, containerRpcRequest as c, streamSignalEvents as i, streamContainerEvents as l, signalCheck as n, isSignalQuoteMetadataRejection as o, signalRpcRequest as r, containerCheck as s, SignalSseRejectionError as t };
@@ -1,6 +1,6 @@
1
- import { c as containerRpcRequest, i as streamSignalEvents$1, l as streamContainerEvents, n as signalCheck$1, r as signalRpcRequest$1, s as containerCheck } from "./client-CRClyTxP.mjs";
1
+ import { c as containerRpcRequest, i as streamSignalEvents$1, l as streamContainerEvents, n as signalCheck$1, r as signalRpcRequest$1, s as containerCheck } from "./client-Duwqbgqi.mjs";
2
2
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
3
- // extensions/signal/src/client-adapter.ts
3
+ //#region extensions/signal/src/client-adapter.ts
4
4
  const DEFAULT_TIMEOUT_MS = 1e4;
5
5
  async function signalRpcRequest(method, params, opts) {
6
6
  return opts.transportKind === "container" ? containerRpcRequest(method, params, opts) : signalRpcRequest$1(method, params, opts);
@@ -26,4 +26,5 @@ async function streamSignalEvents(params) {
26
26
  });
27
27
  return streamSignalEvents$1(params);
28
28
  }
29
+ //#endregion
29
30
  export { signalRpcRequest as n, streamSignalEvents as r, signalCheck as t };
@@ -1,11 +1,11 @@
1
- import { o as resolveSignalAccountEntry, t as assertSignalSocketTransport } from "./transport-url-BptucYNV.mjs";
2
- import { t as LEGACY_SIGNAL_TRANSPORT_FIELDS } from "./legacy-transport-UHhcutJ4.mjs";
1
+ import { o as resolveSignalAccountEntry, t as assertSignalSocketTransport } from "./transport-url-CAC0JcuI.mjs";
2
+ import { t as LEGACY_SIGNAL_TRANSPORT_FIELDS } from "./legacy-transport-QIpaMNST.mjs";
3
3
  import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
4
4
  import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
6
6
  import { ChannelDeliveryStreamingConfigSchema, ChannelSendReadReceiptsSchema, ExecutableTokenSchema, ReplyToModeSchema, buildChannelAccountSchemaParts, buildChannelConfigSchema, buildChannelReactionShape, buildGroupEntrySchema, refineChannelDmPolicy } from "openclaw/plugin-sdk/channel-config-schema";
7
7
  import { z } from "zod";
8
- // extensions/signal/src/config-ui-hints.ts
8
+ //#region extensions/signal/src/config-ui-hints.ts
9
9
  const signalChannelConfigUiHints = {
10
10
  "": {
11
11
  label: "Signal",
@@ -51,7 +51,8 @@ const signalChannelConfigUiHints = {
51
51
  help: "Base URL for an external-native or container transport, or the connection endpoint for a managed-native daemon when it differs from the bind address."
52
52
  }
53
53
  };
54
- // extensions/signal/src/config-schema.ts
54
+ //#endregion
55
+ //#region extensions/signal/src/config-schema.ts
55
56
  const SIGNAL_RETIRED_TRANSPORT_KEYS = ["apiMode", ...LEGACY_SIGNAL_TRANSPORT_FIELDS];
56
57
  const SignalTransportUrlSchema = z.string().url().regex(/^[Hh][Tt][Tt][Pp][Ss]?:\/\/(?![^/?#]*@)/, "Expected http:// or https:// URL without embedded credentials");
57
58
  function projectSignalConfigForUpdateValidation(value) {
@@ -194,4 +195,5 @@ const CanonicalSignalConfigSchema = SignalConfigSchemaBase.superRefine((value, c
194
195
  });
195
196
  const SignalConfigSchema = z.preprocess(projectSignalConfigForUpdateValidation, CanonicalSignalConfigSchema);
196
197
  const SignalChannelConfigSchema = buildChannelConfigSchema(SignalConfigSchema, { uiHints: signalChannelConfigUiHints });
198
+ //#endregion
197
199
  export { SignalChannelConfigSchema as t };
@@ -1,10 +1,10 @@
1
- import { a as normalizeSignalTransportUrl, r as buildSignalTransportHttpUrl, s as resolveSignalAccountKey, t as assertSignalSocketTransport } from "./transport-url-BptucYNV.mjs";
2
- import { a as isSignalManagedNativeConnectionUrlForBind, c as resolveLocalSignalTransportPort, i as assignSignalManagedNativePort, o as isValidSignalManagedNativePort, r as allocateSignalManagedNativePort } from "./transport-policy-BvaaxIjp.mjs";
3
- import { n as hasLegacySignalTransportFields, t as LEGACY_SIGNAL_TRANSPORT_FIELDS } from "./legacy-transport-UHhcutJ4.mjs";
1
+ import { a as normalizeSignalTransportUrl, r as buildSignalTransportHttpUrl, s as resolveSignalAccountKey, t as assertSignalSocketTransport } from "./transport-url-CAC0JcuI.mjs";
2
+ import { a as isSignalManagedNativeConnectionUrlForBind, c as resolveLocalSignalTransportPort, i as assignSignalManagedNativePort, o as isValidSignalManagedNativePort, r as allocateSignalManagedNativePort } from "./transport-policy-B6C_LogW.mjs";
3
+ import { n as hasLegacySignalTransportFields, t as LEGACY_SIGNAL_TRANSPORT_FIELDS } from "./legacy-transport-QIpaMNST.mjs";
4
4
  import "node:module";
5
5
  import { isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
7
- // \0rolldown/runtime.js
7
+ //#region \0rolldown/runtime.js
8
8
  var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -29,7 +29,8 @@ var __copyProps = (to, from, except, desc) => {
29
29
  return to;
30
30
  };
31
31
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
32
- // extensions/signal/src/config-compat.ts
32
+ //#endregion
33
+ //#region extensions/signal/src/config-compat.ts
33
34
  const PENDING_LEGACY_TRANSPORT_WARNING = "- channels.signal: legacy auto transport is ambiguous while its endpoint is unavailable; bring the endpoint online and rerun openclaw doctor --fix, or replace the retired fields with an explicit account-owned transport in openclaw.json.";
34
35
  const PENDING_LEGACY_INVALID_URL_WARNING = "- channels.signal: legacy httpUrl is invalid; keep the current config, correct httpUrl, then run openclaw doctor --fix.";
35
36
  const PENDING_LEGACY_INVALID_HOST_WARNING = "- channels.signal: legacy httpHost is invalid; keep the current config, correct httpHost, then run openclaw doctor --fix.";
@@ -383,7 +384,8 @@ function migrateLegacySignalTransportConfigSync(cfg) {
383
384
  });
384
385
  }));
385
386
  }
386
- // packages/normalization-core/src/record-coerce.ts
387
+ //#endregion
388
+ //#region packages/normalization-core/src/record-coerce.ts
387
389
  /** Type guard for non-array object records at browser-safe boundaries. */
388
390
  function isRecord$1(value) {
389
391
  return value !== null && typeof value === "object" && !Array.isArray(value);
@@ -392,7 +394,8 @@ function isRecord$1(value) {
392
394
  function asNullableRecord(value) {
393
395
  return isRecord$1(value) ? value : null;
394
396
  }
395
- // src/config/channel-config-normalization.ts
397
+ //#endregion
398
+ //#region src/config/channel-config-normalization.ts
396
399
  /** Applies one channel-specific doctor migration to every object-shaped account. */
397
400
  function normalizeChannelAccounts(params) {
398
401
  const rawAccounts = asNullableRecord(params.entry.accounts);
@@ -468,7 +471,8 @@ function normalizeChannelConfigEntries(params) {
468
471
  changes
469
472
  };
470
473
  }
471
- // src/plugin-sdk/legacy-webhook-listener-migration.ts
474
+ //#endregion
475
+ //#region src/plugin-sdk/legacy-webhook-listener-migration.ts
472
476
  /** Preserve explicitly configured webhook listeners while moving ingress onto Gateway routes. */
473
477
  function createLegacyWebhookListenerDoctorContract(params) {
474
478
  const portKey = params.portKey ?? "webhookPort";
@@ -538,11 +542,13 @@ function createLegacyWebhookListenerDoctorContract(params) {
538
542
  }
539
543
  };
540
544
  }
541
- // \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
545
+ //#endregion
546
+ //#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
542
547
  var runtime_doctor_migrations_exports = /* @__PURE__ */ __exportAll({ createLegacyWebhookListenerDoctorContract: () => createLegacyWebhookListenerDoctorContract });
543
548
  import * as import_openclaw_plugin_sdk_runtime_doctor_migrations from "openclaw/plugin-sdk/runtime-doctor-migrations";
544
549
  __reExport(runtime_doctor_migrations_exports, import_openclaw_plugin_sdk_runtime_doctor_migrations);
545
- // extensions/signal/src/account-key-repair.ts
550
+ //#endregion
551
+ //#region extensions/signal/src/account-key-repair.ts
546
552
  function repairSignalAccountKeys({ cfg }) {
547
553
  const signal = cfg.channels?.signal;
548
554
  const accounts = signal?.accounts;
@@ -586,7 +592,8 @@ function repairSignalAccountKeys({ cfg }) {
586
592
  warnings
587
593
  };
588
594
  }
589
- // extensions/signal/config-doctor-api.ts
595
+ //#endregion
596
+ //#region extensions/signal/config-doctor-api.ts
590
597
  const streamingAliasMigration = (0, runtime_doctor_migrations_exports.defineChannelAliasMigration)({
591
598
  channelId: "signal",
592
599
  streaming: {
@@ -626,4 +633,5 @@ function normalizeCompatibilityConfig({ cfg }) {
626
633
  ...transport.warnings?.length ? { warnings: transport.warnings } : {}
627
634
  };
628
635
  }
636
+ //#endregion
629
637
  export { migrateLegacySignalTransportConfig as a, clearLegacySignalTransportFieldsForAccount as i, normalizeCompatibilityConfig as n, __exportAll as o, repairSignalAccountKeys as r, legacyConfigRules as t };
@@ -1,7 +1,7 @@
1
1
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
2
2
  import { normalizeE164 } from "openclaw/plugin-sdk/text-utility-runtime";
3
3
  import { resolveAllowlistMatchByCandidates } from "openclaw/plugin-sdk/allow-from";
4
- // extensions/signal/src/uuid.ts
4
+ //#region extensions/signal/src/uuid.ts
5
5
  const UUID_HYPHENATED_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
6
6
  const UUID_COMPACT_RE = /^[0-9a-f]{32}$/i;
7
7
  function looksLikeUuid(value) {
@@ -10,7 +10,8 @@ function looksLikeUuid(value) {
10
10
  if (!/^[0-9a-f]+$/i.test(compact)) return false;
11
11
  return /[a-f]/i.test(compact);
12
12
  }
13
- // extensions/signal/src/identity.ts
13
+ //#endregion
14
+ //#region extensions/signal/src/identity.ts
14
15
  function stripSignalPrefix(value) {
15
16
  return value.replace(/^signal:/i, "").trim();
16
17
  }
@@ -92,4 +93,5 @@ function isSignalSenderAllowed(sender, allowFrom) {
92
93
  }]
93
94
  }).allowed;
94
95
  }
96
+ //#endregion
95
97
  export { normalizeSignalAllowRecipient as a, resolveSignalSender as c, isSignalSenderAllowed as i, looksLikeUuid as l, formatSignalSenderDisplay as n, resolveSignalPeerId as o, formatSignalSenderId as r, resolveSignalRecipient as s, formatSignalPairingIdLine as t };
@@ -10,7 +10,7 @@ import { readProviderJsonObjectResponse } from "openclaw/plugin-sdk/provider-htt
10
10
  import { runPluginCommandWithTimeout } from "openclaw/plugin-sdk/run-command";
11
11
  import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
12
12
  import { withTempDownloadPath } from "openclaw/plugin-sdk/temp-path";
13
- // extensions/signal/src/install-signal-cli.ts
13
+ //#region extensions/signal/src/install-signal-cli.ts
14
14
  const MAX_SIGNAL_CLI_ARCHIVE_BYTES = 268435456;
15
15
  const MAX_SIGNAL_CLI_EXTRACTED_BYTES = 402653184;
16
16
  const SIGNAL_CLI_DOWNLOAD_TIMEOUT_MS = 3e5;
@@ -232,4 +232,5 @@ async function installSignalCli(runtime) {
232
232
  if (process.platform === "linux" && process.arch === "x64") return installSignalCliFromRelease(runtime);
233
233
  return installSignalCliViaBrew(runtime);
234
234
  }
235
+ //#endregion
235
236
  export { installSignalCliFromRelease as i, extractSignalCliArchive as n, installSignalCli as r, downloadToFile as t };
@@ -1,5 +1,5 @@
1
1
  import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
2
- // extensions/signal/src/legacy-transport.ts
2
+ //#region extensions/signal/src/legacy-transport.ts
3
3
  const LEGACY_SIGNAL_TRANSPORT_FIELDS = [
4
4
  "configPath",
5
5
  "httpUrl",
@@ -14,4 +14,5 @@ const LEGACY_SIGNAL_TRANSPORT_FIELDS = [
14
14
  function hasLegacySignalTransportFields(value) {
15
15
  return isRecord(value) && LEGACY_SIGNAL_TRANSPORT_FIELDS.some((field) => Object.hasOwn(value, field));
16
16
  }
17
+ //#endregion
17
18
  export { hasLegacySignalTransportFields as n, LEGACY_SIGNAL_TRANSPORT_FIELDS as t };