@openclaw/signal 2026.11.1 → 2026.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.setup/{accounts-BZXLLXyZ.mjs → accounts-B0Pba1-q.mjs} +4 -3
- package/dist/.setup/api-CJBtD3lT.mjs +16 -0
- package/dist/.setup/{api-COBPAXbQ.mjs → api-CbN3mye4.mjs} +11 -11
- package/dist/.setup/{approval-auth-BC9o4yna.mjs → approval-auth-DhUKkSkA.mjs} +7 -5
- package/dist/.setup/{approval-handler.runtime-Dzb_QGFk.mjs → approval-handler.runtime-CsEcBZoc.mjs} +7 -6
- package/dist/.setup/{approval-reactions-Drpy356L.mjs → approval-reactions-JsqCEOHK.mjs} +9 -7
- package/dist/.setup/{channel-Cd52DrmN.mjs → channel-CM-rLLPN.mjs} +166 -36
- package/dist/.setup/{client-CRClyTxP.mjs → client-Duwqbgqi.mjs} +12 -6
- package/dist/.setup/{client-adapter-CNEkF_Ej.mjs → client-adapter-Chnbch_z.mjs} +3 -2
- package/dist/.setup/{config-schema-WrMl4uyV.mjs → config-schema-DvxZ18SD.mjs} +6 -4
- package/dist/.setup/{doctor-contract-api-BXWnMqDt.mjs → doctor-contract-api-BIdVW0PF.mjs} +19 -11
- package/dist/.setup/{identity-DzXre34N.mjs → identity-B3JyPqGO.mjs} +4 -2
- package/dist/.setup/{install-signal-cli-BjCk7EXq.mjs → install-signal-cli-hYVLYGXe.mjs} +2 -1
- package/dist/.setup/{legacy-transport-UHhcutJ4.mjs → legacy-transport-QIpaMNST.mjs} +2 -1
- package/dist/.setup/{monitor-C1qvr_Kl.mjs → monitor-C6u1JV2C.mjs} +55 -31
- package/dist/.setup/{normalize-B_3XS5ez.mjs → normalize-D7kSomXt.mjs} +2 -1
- package/dist/.setup/{probe-BYl1haPH.mjs → probe-D_93QCe0.mjs} +5 -4
- package/dist/.setup/{reaction-runtime-api-D7bhF81u.mjs → reaction-runtime-api-mdO4k0yv.mjs} +6 -5
- package/dist/.setup/{reaction-targets-Bg9NSMJF.mjs → reaction-targets-BgPLDHBf.mjs} +7 -5
- package/dist/.setup/{rpc-context-DmtN26AB.mjs → rpc-context-BAXcX7dI.mjs} +2 -1
- package/dist/.setup/{runtime-B_1v-nzc.mjs → runtime-8sxUF217.mjs} +2 -1
- package/dist/.setup/{send-BZd_WrI_.mjs → send-CM7-016e.mjs} +9 -8
- package/dist/.setup/{setup-surface-D5p9z7MO.mjs → setup-surface-DvKLwYrl.mjs} +5 -4
- package/dist/.setup/{transport-detection-oXau8_7D.mjs → transport-detection-CmlgOybe.mjs} +5 -4
- package/dist/.setup/{transport-policy-BvaaxIjp.mjs → transport-policy-B6C_LogW.mjs} +3 -2
- package/dist/.setup/transport-probes.runtime-D-xIMRcn.mjs +2 -0
- package/dist/.setup/{transport-url-BptucYNV.mjs → transport-url-CAC0JcuI.mjs} +4 -2
- package/dist/api.js +11 -11
- package/dist/channel-config-api.js +2 -1
- package/dist/channel-entry.js +2 -1
- package/dist/channel-plugin-api.js +2 -1
- package/dist/contract-api.js +3 -3
- package/dist/doctor-contract-api.js +2 -1
- package/dist/index.js +2 -1
- package/dist/reaction-runtime-api.js +2 -1
- package/dist/runtime-api.js +2 -1
- package/dist/secret-contract-api.js +2 -1
- package/dist/setup-entry.js +3 -2
- package/package.json +4 -4
- package/dist/.setup/api-Bw9wRi7s.mjs +0 -15
- package/dist/.setup/transport-probes.runtime-Ca_Rb1P2.mjs +0 -1
- 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-
|
|
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-
|
|
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
|
-
|
|
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 { f as signalSetupContract, n as createSignalPluginBase, r as signalSetupWizard } from "./channel-CM-rLLPN.mjs";
|
|
5
|
+
import "./reaction-runtime-api-mdO4k0yv.mjs";
|
|
6
|
+
import "./install-signal-cli-hYVLYGXe.mjs";
|
|
7
|
+
import "./monitor-C6u1JV2C.mjs";
|
|
8
|
+
import "./send-CM7-016e.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-
|
|
2
|
-
import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-
|
|
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-
|
|
4
|
-
import {
|
|
5
|
-
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-
|
|
6
|
-
import { t as detectSignalTransport } from "./transport-detection-
|
|
7
|
-
import { t as signalSetupPlugin } from "./api-
|
|
8
|
-
import { r as installSignalCli } from "./install-signal-cli-
|
|
9
|
-
import { t as monitorSignalProvider } from "./monitor-
|
|
10
|
-
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-
|
|
11
|
-
import { t as probeSignal } from "./probe-
|
|
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 { C as markdownToSignalTextChunks, S as markdownToSignalText, b as resolveSignalReactionLevel, c as normalizeSignalAccountInput, h as writeSignalAccountTransport, m as probeSignalTransport, p as prepareSignalManagedNativeTransport, t as signalPlugin, v as resolveSignalOutboundTarget, y as signalMessageActions } from "./channel-CM-rLLPN.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-CJBtD3lT.mjs";
|
|
8
|
+
import { r as installSignalCli } from "./install-signal-cli-hYVLYGXe.mjs";
|
|
9
|
+
import { t as monitorSignalProvider } from "./monitor-C6u1JV2C.mjs";
|
|
10
|
+
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-CM7-016e.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-
|
|
2
|
-
import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-
|
|
3
|
-
import { l as looksLikeUuid } from "./identity-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/.setup/{approval-handler.runtime-Dzb_QGFk.mjs → approval-handler.runtime-CsEcBZoc.mjs}
RENAMED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { r as resolveDefaultSignalAccountId } from "./accounts-
|
|
2
|
-
import { n as normalizeSignalMessagingTarget } from "./normalize-
|
|
3
|
-
import { a as resolveSignalTarget } from "./approval-auth-
|
|
4
|
-
import { a as registerSignalApprovalReactionTarget, c as resolveSignalApprovalTargetAuthorKeys, l as unregisterSignalApprovalReactionTarget, r as hasSignalApprovalReactionApprovers, s as resolveSignalApprovalConversationKey } from "./approval-reactions-
|
|
5
|
-
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-
|
|
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-CM7-016e.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
|
-
|
|
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-
|
|
2
|
-
import { n as normalizeSignalMessagingTarget } from "./normalize-
|
|
3
|
-
import { a as resolveSignalTarget, i as resolveSignalDeliveredConversationKey, n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-
|
|
4
|
-
import { l as looksLikeUuid } from "./identity-
|
|
5
|
-
import { t as getOptionalSignalRuntime } from "./runtime-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
2
|
-
import { a as normalizeSignalTransportUrl, i as normalizeSignalTransportHost, o as resolveSignalAccountEntry, s as resolveSignalAccountKey, t as assertSignalSocketTransport } from "./transport-url-
|
|
3
|
-
import { a as isSignalManagedNativeConnectionUrlForBind, c as resolveLocalSignalTransportPort, i as assignSignalManagedNativePort, o as isValidSignalManagedNativePort, r as allocateSignalManagedNativePort, s as reserveSignalTransportPorts } from "./transport-policy-
|
|
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-
|
|
5
|
-
import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./normalize-
|
|
6
|
-
import { a as resolveSignalTarget, n as signalApprovalAuth, r as listSignalAliasDirectoryEntries, t as getSignalApprovalApprovers } from "./approval-auth-
|
|
7
|
-
import { c as resolveSignalSender, l as looksLikeUuid, o as resolveSignalPeerId, s as resolveSignalRecipient } from "./identity-
|
|
8
|
-
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-
|
|
9
|
-
import { t as getOptionalSignalRuntime } from "./runtime-
|
|
10
|
-
import { t as detectSignalTransport } from "./transport-detection-
|
|
11
|
-
import { t as SignalChannelConfigSchema } from "./config-schema-
|
|
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
|
-
|
|
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-
|
|
105
|
+
load: async () => (await import("./approval-handler.runtime-CsEcBZoc.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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
391
|
+
//#endregion
|
|
392
|
+
//#region extensions/signal/src/reply-authors-state.ts
|
|
386
393
|
const signalReplyAuthorState = { memoryReplyContexts: /* @__PURE__ */ new Map() };
|
|
387
|
-
|
|
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
|
-
|
|
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-
|
|
643
|
-
return (params.probeNative ?? (await import("./transport-probes.runtime-
|
|
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
|
-
|
|
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,128 @@ function createSignalSetupWizardProxy(loadWizard) {
|
|
|
977
987
|
disable: (cfg) => setSetupChannelEnabled$1(cfg, channel, false)
|
|
978
988
|
});
|
|
979
989
|
}
|
|
980
|
-
|
|
990
|
+
//#endregion
|
|
991
|
+
//#region extensions/signal/src/daemon-env.ts
|
|
992
|
+
const SIGNAL_CLI_INHERITED_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
993
|
+
"PATH",
|
|
994
|
+
"HOME",
|
|
995
|
+
"USER",
|
|
996
|
+
"LOGNAME",
|
|
997
|
+
"LANG",
|
|
998
|
+
"LANGUAGE",
|
|
999
|
+
"TZ",
|
|
1000
|
+
"TMPDIR",
|
|
1001
|
+
"TMP",
|
|
1002
|
+
"TEMP",
|
|
1003
|
+
"JAVA_HOME",
|
|
1004
|
+
"JAVA_OPTS",
|
|
1005
|
+
"JAVA_TOOL_OPTIONS",
|
|
1006
|
+
"JDK_JAVA_OPTIONS",
|
|
1007
|
+
"_JAVA_OPTIONS",
|
|
1008
|
+
"SIGNAL_CLI_OPTS",
|
|
1009
|
+
"SIGNAL_CLI_CONFIG",
|
|
1010
|
+
"SIGNAL_CLI_USER_AGENT",
|
|
1011
|
+
"LD_LIBRARY_PATH",
|
|
1012
|
+
"DYLD_LIBRARY_PATH",
|
|
1013
|
+
"DYLD_FALLBACK_LIBRARY_PATH",
|
|
1014
|
+
"SYSTEMROOT",
|
|
1015
|
+
"SYSTEMDRIVE",
|
|
1016
|
+
"WINDIR",
|
|
1017
|
+
"COMSPEC",
|
|
1018
|
+
"PATHEXT",
|
|
1019
|
+
"USERPROFILE",
|
|
1020
|
+
"USERNAME",
|
|
1021
|
+
"HOMEDRIVE",
|
|
1022
|
+
"HOMEPATH",
|
|
1023
|
+
"APPDATA",
|
|
1024
|
+
"LOCALAPPDATA",
|
|
1025
|
+
"PROGRAMDATA",
|
|
1026
|
+
"PROGRAMFILES",
|
|
1027
|
+
"PROGRAMFILES(X86)",
|
|
1028
|
+
"PROGRAMW6432",
|
|
1029
|
+
"ALLUSERSPROFILE",
|
|
1030
|
+
"PUBLIC",
|
|
1031
|
+
"OS",
|
|
1032
|
+
"PROCESSOR_ARCHITECTURE",
|
|
1033
|
+
"NUMBER_OF_PROCESSORS"
|
|
1034
|
+
]);
|
|
1035
|
+
const SIGNAL_CLI_INHERITED_ENV_PREFIXES = ["LC_", "XDG_"];
|
|
1036
|
+
const SIGNAL_CLI_DROPPED_ENV_HINT_KEYS = /* @__PURE__ */ new Set([
|
|
1037
|
+
"HTTP_PROXY",
|
|
1038
|
+
"HTTPS_PROXY",
|
|
1039
|
+
"NO_PROXY",
|
|
1040
|
+
"ALL_PROXY",
|
|
1041
|
+
"SSL_CERT_FILE",
|
|
1042
|
+
"SSL_CERT_DIR",
|
|
1043
|
+
"REQUESTS_CA_BUNDLE",
|
|
1044
|
+
"CURL_CA_BUNDLE",
|
|
1045
|
+
"NODE_EXTRA_CA_CERTS"
|
|
1046
|
+
]);
|
|
1047
|
+
const SIGNAL_MANAGED_DAEMON_ENV_DOCS_URL = "https://docs.openclaw.ai/channels/signal#managed-daemon-environment";
|
|
1048
|
+
function isSignalDaemonEnvKeyInherited(name) {
|
|
1049
|
+
return SIGNAL_CLI_INHERITED_ENV_KEYS.has(name) || SIGNAL_CLI_INHERITED_ENV_PREFIXES.some((prefix) => name.startsWith(prefix));
|
|
1050
|
+
}
|
|
1051
|
+
function buildSignalDaemonEnv(source = process.env, platform = process.platform) {
|
|
1052
|
+
const env = {};
|
|
1053
|
+
const retainedWindowsKeys = /* @__PURE__ */ new Map();
|
|
1054
|
+
for (const [key, value] of Object.entries(source)) {
|
|
1055
|
+
if (typeof value !== "string") continue;
|
|
1056
|
+
const name = platform === "win32" ? key.toUpperCase() : key;
|
|
1057
|
+
if (!isSignalDaemonEnvKeyInherited(name)) continue;
|
|
1058
|
+
if (platform === "win32") {
|
|
1059
|
+
const previousKey = retainedWindowsKeys.get(name);
|
|
1060
|
+
if (previousKey !== void 0) delete env[previousKey];
|
|
1061
|
+
retainedWindowsKeys.set(name, key);
|
|
1062
|
+
}
|
|
1063
|
+
env[key] = value;
|
|
1064
|
+
}
|
|
1065
|
+
return env;
|
|
1066
|
+
}
|
|
1067
|
+
/** Names (as set, sorted) of commonly needed non-secret variables the daemon does not inherit. */
|
|
1068
|
+
function listSignalDaemonDroppedEnvHints(source = process.env) {
|
|
1069
|
+
const names = /* @__PURE__ */ new Set();
|
|
1070
|
+
for (const [key, value] of Object.entries(source)) if (typeof value === "string" && value.trim() && SIGNAL_CLI_DROPPED_ENV_HINT_KEYS.has(key.toUpperCase())) names.add(key);
|
|
1071
|
+
return [...names].toSorted();
|
|
1072
|
+
}
|
|
1073
|
+
/** Operator notice naming the dropped variables and the supported ways to supply them. */
|
|
1074
|
+
function formatSignalDaemonDroppedEnvNotice(names) {
|
|
1075
|
+
return `The managed signal-cli daemon does not inherit ${names.join(", ")} from the OpenClaw process environment. signal-cli's JVM takes proxy and trust-store settings from Java system properties: pass them in JAVA_TOOL_OPTIONS (for example -Dhttps.proxyHost=<host> -Dhttps.proxyPort=<port>, or -Djavax.net.ssl.trustStore=<path> for a private CA), set the variables inside a transport.cliPath wrapper script, or run the daemon yourself with transport.kind external-native. See ${SIGNAL_MANAGED_DAEMON_ENV_DOCS_URL}`;
|
|
1076
|
+
}
|
|
1077
|
+
//#endregion
|
|
1078
|
+
//#region extensions/signal/src/doctor.ts
|
|
1079
|
+
function usesManagedSignalDaemon(cfg) {
|
|
1080
|
+
if (!cfg.channels?.signal) return false;
|
|
1081
|
+
return listSignalAccountIds(cfg).some((accountId) => {
|
|
1082
|
+
try {
|
|
1083
|
+
const account = resolveSignalAccount({
|
|
1084
|
+
cfg,
|
|
1085
|
+
accountId
|
|
1086
|
+
});
|
|
1087
|
+
return account.enabled && account.configured && account.transport.kind === "managed-native";
|
|
1088
|
+
} catch {
|
|
1089
|
+
return false;
|
|
1090
|
+
}
|
|
1091
|
+
});
|
|
1092
|
+
}
|
|
1093
|
+
/** Warn when the managed daemon will not see proxy or trust-store variables set for OpenClaw. */
|
|
1094
|
+
function collectSignalDaemonEnvNotes(params) {
|
|
1095
|
+
const result = {
|
|
1096
|
+
changeNotes: [],
|
|
1097
|
+
warningNotes: []
|
|
1098
|
+
};
|
|
1099
|
+
if (!usesManagedSignalDaemon(params.cfg)) return result;
|
|
1100
|
+
const names = listSignalDaemonDroppedEnvHints(params.env ?? process.env);
|
|
1101
|
+
if (names.length > 0) result.warningNotes.push(`- channels.signal: ${formatSignalDaemonDroppedEnvNotice(names)}`);
|
|
1102
|
+
return result;
|
|
1103
|
+
}
|
|
981
1104
|
const signalDoctor = {
|
|
982
1105
|
normalizeCompatibilityConfig,
|
|
1106
|
+
runConfigSequence: ({ cfg, env }) => collectSignalDaemonEnvNotes({
|
|
1107
|
+
cfg,
|
|
1108
|
+
env
|
|
1109
|
+
}),
|
|
983
1110
|
cleanStaleConfig: async ({ cfg }) => {
|
|
984
|
-
const { detectSignalTransport } = await import("./transport-detection-
|
|
1111
|
+
const { detectSignalTransport } = await import("./transport-detection-CmlgOybe.mjs").then((n) => n.n);
|
|
985
1112
|
const transport = await migrateLegacySignalTransportConfig({
|
|
986
1113
|
cfg,
|
|
987
1114
|
detect: detectSignalTransport
|
|
@@ -992,9 +1119,10 @@ const signalDoctor = {
|
|
|
992
1119
|
};
|
|
993
1120
|
}
|
|
994
1121
|
};
|
|
995
|
-
|
|
1122
|
+
//#endregion
|
|
1123
|
+
//#region extensions/signal/src/shared.ts
|
|
996
1124
|
const SIGNAL_CHANNEL = "signal";
|
|
997
|
-
const signalSetupWizard = createSignalSetupWizardProxy(async () => (await import("./setup-surface-
|
|
1125
|
+
const signalSetupWizard = createSignalSetupWizardProxy(async () => (await import("./setup-surface-DvKLwYrl.mjs")).signalSetupWizard);
|
|
998
1126
|
const signalConfigAdapter = {
|
|
999
1127
|
...createScopedChannelConfigAdapter({
|
|
1000
1128
|
sectionKey: SIGNAL_CHANNEL,
|
|
@@ -1077,11 +1205,12 @@ function createSignalPluginBase(params) {
|
|
|
1077
1205
|
messaging: { defaultMarkdownTableMode: "bullets" }
|
|
1078
1206
|
};
|
|
1079
1207
|
}
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
const
|
|
1083
|
-
const
|
|
1084
|
-
const
|
|
1208
|
+
//#endregion
|
|
1209
|
+
//#region extensions/signal/src/channel.ts
|
|
1210
|
+
const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-C6u1JV2C.mjs").then((n) => n.n));
|
|
1211
|
+
const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-D_93QCe0.mjs").then((n) => n.n));
|
|
1212
|
+
const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send-CM7-016e.mjs").then((n) => n.i));
|
|
1213
|
+
const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-JsqCEOHK.mjs").then((n) => n.n));
|
|
1085
1214
|
async function createSignalOutboundSender(params) {
|
|
1086
1215
|
const send = resolveOutboundSendDep(params.deps, "signal") ?? (await loadSignalSendRuntime()).sendMessageSignal;
|
|
1087
1216
|
const maxBytes = resolveChannelMediaMaxBytes({
|
|
@@ -1261,7 +1390,7 @@ async function registerDeliveredSignalApprovalPayloadForReactions(params) {
|
|
|
1261
1390
|
const targetAuthor = normalizeOptionalString(account.config.account);
|
|
1262
1391
|
const targetAuthorUuid = normalizeOptionalString(account.config.accountUuid);
|
|
1263
1392
|
if (!targetAuthor && !targetAuthorUuid) return;
|
|
1264
|
-
const { registerSignalReactionTargetsForDeliveredPayload } = await import("./reaction-targets-
|
|
1393
|
+
const { registerSignalReactionTargetsForDeliveredPayload } = await import("./reaction-targets-BgPLDHBf.mjs").then((n) => n.t);
|
|
1265
1394
|
await registerSignalReactionTargetsForDeliveredPayload({
|
|
1266
1395
|
cfg: params.cfg,
|
|
1267
1396
|
target: {
|
|
@@ -1525,4 +1654,5 @@ const signalPlugin = createChatChannelPlugin({
|
|
|
1525
1654
|
}
|
|
1526
1655
|
}
|
|
1527
1656
|
});
|
|
1528
|
-
|
|
1657
|
+
//#endregion
|
|
1658
|
+
export { markdownToSignalTextChunks as C, markdownToSignalText as S, materializeSignalPresentationFallback as _, formatSignalDaemonDroppedEnvNotice as a, resolveSignalReactionLevel as b, normalizeSignalAccountInput as c, signalNumberTextInput as d, signalSetupContract as f, registerSignalReplyContext as g, writeSignalAccountTransport as h, buildSignalDaemonEnv as i, signalCompletionNote as l, probeSignalTransport as m, createSignalPluginBase as n, listSignalDaemonDroppedEnvHints as o, prepareSignalManagedNativeTransport as p, signalSetupWizard as r, createSignalCliPathTextInput as s, signalPlugin as t, signalDmPolicy as u, resolveSignalOutboundTarget as v, isSignalNativeApprovalHandlerConfigured as w, formatSignalMediaText as x, signalMessageActions 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
2
|
-
import { t as LEGACY_SIGNAL_TRANSPORT_FIELDS } from "./legacy-transport-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|