@openclaw/signal 2026.8.1-beta.2 → 2026.8.1
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/{accounts-DrStJjiK.js → accounts-DO4HMqaK.js} +2 -2
- package/dist/api.js +11 -10
- package/dist/{runtime-JPrGlV7h.js → approval-auth-BsYHLTHK.js} +4 -10
- package/dist/{approval-handler.runtime-Bi5yNhnj.js → approval-handler.runtime-PqC23XbY.js} +5 -5
- package/dist/{approval-reactions-BulCzhdB.js → approval-reactions-DB-86mqK.js} +63 -154
- package/dist/{channel-CzDJMDtX.js → channel-C4vwPXz8.js} +28 -23
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-D12iYzJB.js → channel.runtime-CSviXPlC.js} +2 -2
- package/dist/{config-schema-CkMIK7zp.js → config-schema-q_QuhDy2.js} +8 -7
- package/dist/contract-api.js +3 -2
- package/dist/{doctor-contract-api-Dnp5eQQJ.js → doctor-contract-api-C18u1hW0.js} +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{identity-BQ4OzXXk.js → identity-YXPmgFMu.js} +2 -47
- package/dist/{monitor-DiN2hKnG.js → monitor-fR9bCL2p.js} +188 -85
- package/dist/normalize-l_b99hap.js +51 -0
- package/dist/{probe-C_THuQzn.js → probe-D7BV0KJ5.js} +1 -1
- package/dist/{question-reactions-ByjH5qST.js → question-reactions-D04hVKsE.js} +2 -2
- package/dist/{reaction-runtime-api-Cf6QHcE5.js → reaction-runtime-api-Ch0dk2sh.js} +11 -36
- package/dist/reaction-runtime-api.js +1 -1
- package/dist/rpc-context-dXSy4NtF.js +15 -0
- package/dist/runtime-api.js +9 -10
- package/dist/{send-BvGgByMd.js → send-DO3rs413.js} +6 -24
- package/dist/{send.runtime-CtTBBrjL.js → send.runtime-FRY_sREg.js} +1 -1
- package/dist/{transport-detection-BItHawMq.js → transport-detection-BSXAOmuH.js} +19 -42
- package/dist/{transport-detection.runtime-DoiwPcrG.js → transport-detection.runtime-Cnykqcu0.js} +1 -1
- package/node_modules/ws/lib/permessage-deflate.js +3 -1
- package/node_modules/ws/package.json +1 -1
- package/openclaw.plugin.json +0 -6
- package/package.json +5 -5
- package/dist/rpc-context-CZUoE0-A.js +0 -17
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as isSignalManagedNativeConnectionUrlForBind, c as buildSignalTransportHttpUrl, i as assignSignalManagedNativePort, n as DEFAULT_SIGNAL_MANAGED_NATIVE_PORT, r as allocateSignalManagedNativePort, s as resolveLocalSignalTransportPort } from "./transport-policy-DxvSMHp9.js";
|
|
1
|
+
import { a as isSignalManagedNativeConnectionUrlForBind, c as buildSignalTransportHttpUrl, i as assignSignalManagedNativePort, l as normalizeSignalTransportHost, n as DEFAULT_SIGNAL_MANAGED_NATIVE_PORT, r as allocateSignalManagedNativePort, s as resolveLocalSignalTransportPort } from "./transport-policy-DxvSMHp9.js";
|
|
2
2
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { DEFAULT_ACCOUNT_ID, createAccountListHelpers, normalizeAccountId, resolveAccountEntry, resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-resolution";
|
|
4
4
|
//#region extensions/signal/src/accounts.ts
|
|
@@ -80,7 +80,7 @@ function resolveSignalTransport(transport, managedNativePort = DEFAULT_SIGNAL_MA
|
|
|
80
80
|
baseUrl: transport.url.trim()
|
|
81
81
|
};
|
|
82
82
|
const managedTransport = transport?.kind === "managed-native" ? assignSignalManagedNativePort(transport, transport.httpPort ?? managedNativePort) : transport;
|
|
83
|
-
const httpHost = normalizeOptionalString(managedTransport?.httpHost) ?? "127.0.0.1";
|
|
83
|
+
const httpHost = normalizeSignalTransportHost(normalizeOptionalString(managedTransport?.httpHost) ?? "127.0.0.1");
|
|
84
84
|
const httpPort = managedTransport?.httpPort ?? managedNativePort;
|
|
85
85
|
const configPath = normalizeOptionalString(managedTransport?.configPath);
|
|
86
86
|
return {
|
package/dist/api.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-
|
|
2
|
-
import {
|
|
3
|
-
import { a as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { t as
|
|
1
|
+
import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-DO4HMqaK.js";
|
|
2
|
+
import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
|
|
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-YXPmgFMu.js";
|
|
4
|
+
import { c as resolveSignalReactionLevel, d as markdownToSignalTextChunks, s as signalMessageActions, t as detectSignalTransport, u as markdownToSignalText } from "./transport-detection-BSXAOmuH.js";
|
|
5
|
+
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-Ch0dk2sh.js";
|
|
6
|
+
import { a as normalizeSignalAccountInput, d as probeSignalTransport, f as writeSignalAccountTransport, l as signalSetupContract, n as createSignalPluginBase, p as resolveSignalOutboundTarget, r as signalSetupWizard, t as signalPlugin, u as prepareSignalManagedNativeTransport } from "./channel-C4vwPXz8.js";
|
|
7
|
+
import { i as installSignalCli } from "./install-signal-cli-Cpiyk0k1.js";
|
|
8
|
+
import { t as monitorSignalProvider } from "./monitor-fR9bCL2p.js";
|
|
9
|
+
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-DO3rs413.js";
|
|
10
|
+
import { t as probeSignal } from "./probe-D7BV0KJ5.js";
|
|
10
11
|
//#region extensions/signal/src/channel.setup.ts
|
|
11
12
|
const signalSetupPlugin = { ...createSignalPluginBase({
|
|
12
13
|
setupWizard: signalSetupWizard,
|
|
13
14
|
setupContract: signalSetupContract
|
|
14
15
|
}) };
|
|
15
16
|
//#endregion
|
|
16
|
-
export { detectSignalTransport,
|
|
17
|
+
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,9 +1,9 @@
|
|
|
1
|
-
import { i as resolveSignalAccount } from "./accounts-
|
|
2
|
-
import {
|
|
1
|
+
import { i as resolveSignalAccount } from "./accounts-DO4HMqaK.js";
|
|
2
|
+
import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
|
|
3
|
+
import { l as looksLikeUuid } from "./identity-YXPmgFMu.js";
|
|
3
4
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
5
|
import { createChannelApprovalAuth } from "openclaw/plugin-sdk/approval-auth-runtime";
|
|
5
6
|
import { normalizeE164 } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
6
|
-
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
|
|
7
7
|
//#region extensions/signal/src/aliases.ts
|
|
8
8
|
function normalizeAliasKey(raw) {
|
|
9
9
|
const trimmed = raw.trim();
|
|
@@ -152,10 +152,4 @@ const signalApproval = createChannelApprovalAuth({
|
|
|
152
152
|
const getSignalApprovalApprovers = signalApproval.resolveApprovers;
|
|
153
153
|
const signalApprovalAuth = signalApproval.approvalAuth;
|
|
154
154
|
//#endregion
|
|
155
|
-
|
|
156
|
-
const { setRuntime: setSignalRuntime, tryGetRuntime: getOptionalSignalRuntime } = createPluginRuntimeStore({
|
|
157
|
-
pluginId: "signal",
|
|
158
|
-
errorMessage: "Signal runtime not initialized"
|
|
159
|
-
});
|
|
160
|
-
//#endregion
|
|
161
|
-
export { listSignalAliasDirectoryEntries as a, signalApprovalAuth as i, setSignalRuntime as n, resolveSignalTarget as o, getSignalApprovalApprovers as r, getOptionalSignalRuntime as t };
|
|
155
|
+
export { resolveSignalTarget as i, signalApprovalAuth as n, listSignalAliasDirectoryEntries as r, getSignalApprovalApprovers as t };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as resolveDefaultSignalAccountId } from "./accounts-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-
|
|
1
|
+
import { r as resolveDefaultSignalAccountId } from "./accounts-DO4HMqaK.js";
|
|
2
|
+
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.js";
|
|
3
|
+
import { i as resolveSignalTarget } from "./approval-auth-BsYHLTHK.js";
|
|
4
|
+
import { a as registerSignalApprovalReactionTarget, c as resolveSignalApprovalTargetAuthorKeys, l as unregisterSignalApprovalReactionTarget, r as hasSignalApprovalReactionApprovers, s as resolveSignalApprovalConversationKey } from "./approval-reactions-DB-86mqK.js";
|
|
5
|
+
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-DO3rs413.js";
|
|
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";
|
|
@@ -1,44 +1,18 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import {
|
|
3
|
-
import { i as
|
|
2
|
+
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.js";
|
|
3
|
+
import { i as resolveSignalTarget, n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-BsYHLTHK.js";
|
|
4
|
+
import { l as looksLikeUuid } from "./identity-YXPmgFMu.js";
|
|
5
|
+
import { i as getOptionalSignalRuntime } from "./transport-detection-BSXAOmuH.js";
|
|
4
6
|
import { createLazyRuntimeSurface } from "openclaw/plugin-sdk/lazy-runtime";
|
|
5
7
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
6
8
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
|
-
import { addApprovalReactionHintToText,
|
|
9
|
+
import { addApprovalReactionHintToText, createApprovalReactionTargetStore, hasApprovalReactionHintText, listApprovalReactionBindings, readApprovalReactionDecisionList, resolveTypedApprovalReactionTarget } from "openclaw/plugin-sdk/approval-reaction-runtime";
|
|
8
10
|
import { normalizeE164 } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
9
11
|
import { isApprovalNotFoundError } from "openclaw/plugin-sdk/error-runtime";
|
|
10
12
|
import { getExecApprovalReplyMetadata } from "openclaw/plugin-sdk/approval-reply-runtime";
|
|
11
|
-
import { matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
|
|
12
13
|
import { createPluginStateErrorReporter } from "openclaw/plugin-sdk/plugin-state-runtime";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
addSignalApprovalReactionHintToStructuredPayload: () => addSignalApprovalReactionHintToStructuredPayload,
|
|
16
|
-
addSignalApprovalReactionHintToText: () => addSignalApprovalReactionHintToText,
|
|
17
|
-
appendSignalApprovalReactionHintForOutboundMessage: () => appendSignalApprovalReactionHintForOutboundMessage,
|
|
18
|
-
buildSignalApprovalReactionHint: () => buildSignalApprovalReactionHint,
|
|
19
|
-
clearSignalApprovalReactionTargetsForTest: () => clearSignalApprovalReactionTargetsForTest,
|
|
20
|
-
hasSignalApprovalReactionApprovers: () => hasSignalApprovalReactionApprovers,
|
|
21
|
-
maybeResolveSignalApprovalReaction: () => maybeResolveSignalApprovalReaction,
|
|
22
|
-
registerSignalApprovalReactionTarget: () => registerSignalApprovalReactionTarget,
|
|
23
|
-
registerSignalApprovalReactionTargetForDeliveredPayload: () => registerSignalApprovalReactionTargetForDeliveredPayload,
|
|
24
|
-
registerSignalApprovalReactionTargetForOutboundMessage: () => registerSignalApprovalReactionTargetForOutboundMessage,
|
|
25
|
-
resolveSignalApprovalConversationKey: () => resolveSignalApprovalConversationKey,
|
|
26
|
-
resolveSignalApprovalReactionTargetWithPersistence: () => resolveSignalApprovalReactionTargetWithPersistence,
|
|
27
|
-
resolveSignalApprovalTargetAuthorKeys: () => resolveSignalApprovalTargetAuthorKeys,
|
|
28
|
-
unregisterSignalApprovalReactionTarget: () => unregisterSignalApprovalReactionTarget
|
|
29
|
-
});
|
|
30
|
-
const PERSISTENT_NAMESPACE = "signal.approval-reactions.v2";
|
|
31
|
-
const PERSISTENT_MAX_ENTRIES = 1e3;
|
|
32
|
-
const DEFAULT_REACTION_TARGET_TTL_MS = 1440 * 60 * 1e3;
|
|
33
|
-
const loadResolveApprovalOverGateway = createLazyRuntimeSurface(() => import("openclaw/plugin-sdk/approval-gateway-runtime"), (runtime) => runtime.resolveApprovalOverGateway);
|
|
34
|
-
const signalApprovalReactionTargets = createApprovalReactionTargetStore({
|
|
35
|
-
namespace: PERSISTENT_NAMESPACE,
|
|
36
|
-
maxEntries: PERSISTENT_MAX_ENTRIES,
|
|
37
|
-
defaultTtlMs: DEFAULT_REACTION_TARGET_TTL_MS,
|
|
38
|
-
openStore: (storeParams) => getOptionalSignalRuntime()?.state.openKeyedStore(storeParams),
|
|
39
|
-
logPersistentError: createPluginStateErrorReporter(getOptionalSignalRuntime, "signal", "approval-reaction-state", "Signal persistent approval reaction state failed"),
|
|
40
|
-
readPersistedTarget
|
|
41
|
-
});
|
|
14
|
+
import { matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
|
|
15
|
+
//#region extensions/signal/src/approval-reaction-routes.ts
|
|
42
16
|
function resolveApprovalForwardingConfig(params) {
|
|
43
17
|
return params.approvalKind === "plugin" ? params.cfg.approvals?.plugin : params.cfg.approvals?.exec;
|
|
44
18
|
}
|
|
@@ -115,6 +89,54 @@ function isSignalApprovalReactionRouteStillEnabled(params) {
|
|
|
115
89
|
route: params.target.route
|
|
116
90
|
});
|
|
117
91
|
}
|
|
92
|
+
function buildTargetRoute(params) {
|
|
93
|
+
const to = resolveSignalApprovalRouteTarget({
|
|
94
|
+
cfg: params.cfg,
|
|
95
|
+
accountId: params.accountId,
|
|
96
|
+
to: params.to
|
|
97
|
+
});
|
|
98
|
+
if (!to) return null;
|
|
99
|
+
const route = {
|
|
100
|
+
deliveryMode: "target",
|
|
101
|
+
to,
|
|
102
|
+
...normalizeOptionalString(params.accountId) ? { accountId: normalizeOptionalString(params.accountId) } : {},
|
|
103
|
+
...normalizeOptionalString(params.agentId) ? { agentId: normalizeOptionalString(params.agentId) } : {},
|
|
104
|
+
...normalizeOptionalString(params.sessionKey) ? { sessionKey: normalizeOptionalString(params.sessionKey) } : {}
|
|
105
|
+
};
|
|
106
|
+
return isSignalApprovalReactionRouteStillEnabled({
|
|
107
|
+
cfg: params.cfg,
|
|
108
|
+
target: {
|
|
109
|
+
approvalKind: params.approvalKind,
|
|
110
|
+
route
|
|
111
|
+
}
|
|
112
|
+
}) ? route : null;
|
|
113
|
+
}
|
|
114
|
+
//#endregion
|
|
115
|
+
//#region extensions/signal/src/approval-reactions.ts
|
|
116
|
+
var approval_reactions_exports = /* @__PURE__ */ __exportAll({
|
|
117
|
+
addSignalApprovalReactionHintToStructuredPayload: () => addSignalApprovalReactionHintToStructuredPayload,
|
|
118
|
+
clearSignalApprovalReactionTargetsForTest: () => clearSignalApprovalReactionTargetsForTest,
|
|
119
|
+
hasSignalApprovalReactionApprovers: () => hasSignalApprovalReactionApprovers,
|
|
120
|
+
maybeResolveSignalApprovalReaction: () => maybeResolveSignalApprovalReaction,
|
|
121
|
+
registerSignalApprovalReactionTarget: () => registerSignalApprovalReactionTarget,
|
|
122
|
+
registerSignalApprovalReactionTargetForDeliveredPayload: () => registerSignalApprovalReactionTargetForDeliveredPayload,
|
|
123
|
+
resolveSignalApprovalConversationKey: () => resolveSignalApprovalConversationKey,
|
|
124
|
+
resolveSignalApprovalReactionTargetWithPersistence: () => resolveSignalApprovalReactionTargetWithPersistence,
|
|
125
|
+
resolveSignalApprovalTargetAuthorKeys: () => resolveSignalApprovalTargetAuthorKeys,
|
|
126
|
+
unregisterSignalApprovalReactionTarget: () => unregisterSignalApprovalReactionTarget
|
|
127
|
+
});
|
|
128
|
+
const PERSISTENT_NAMESPACE = "signal.approval-reactions.v2";
|
|
129
|
+
const PERSISTENT_MAX_ENTRIES = 1e3;
|
|
130
|
+
const DEFAULT_REACTION_TARGET_TTL_MS = 1440 * 60 * 1e3;
|
|
131
|
+
const loadResolveApprovalOverGateway = createLazyRuntimeSurface(() => import("openclaw/plugin-sdk/approval-gateway-runtime"), (runtime) => runtime.resolveApprovalOverGateway);
|
|
132
|
+
const signalApprovalReactionTargets = createApprovalReactionTargetStore({
|
|
133
|
+
namespace: PERSISTENT_NAMESPACE,
|
|
134
|
+
maxEntries: PERSISTENT_MAX_ENTRIES,
|
|
135
|
+
defaultTtlMs: DEFAULT_REACTION_TARGET_TTL_MS,
|
|
136
|
+
openStore: (storeParams) => getOptionalSignalRuntime()?.state.openKeyedStore(storeParams),
|
|
137
|
+
logPersistentError: createPluginStateErrorReporter(getOptionalSignalRuntime, "signal", "approval-reaction-state", "Signal persistent approval reaction state failed"),
|
|
138
|
+
readPersistedTarget
|
|
139
|
+
});
|
|
118
140
|
function resolveSignalApprovalConversationKey(to) {
|
|
119
141
|
return normalizeSignalMessagingTarget(to) ?? null;
|
|
120
142
|
}
|
|
@@ -154,7 +176,9 @@ function buildReactionTargetKey(params) {
|
|
|
154
176
|
}
|
|
155
177
|
function readPersistedTarget(target) {
|
|
156
178
|
const value = target;
|
|
157
|
-
if (!value || typeof value.approvalId !== "string" || value.approvalKind !== "exec" && value.approvalKind !== "plugin" || !value.route || value.route.deliveryMode !== "session" && value.route.deliveryMode !== "target" || !Array.isArray(value.targetAuthorKeys)
|
|
179
|
+
if (!value || typeof value.approvalId !== "string" || value.approvalKind !== "exec" && value.approvalKind !== "plugin" || !value.route || value.route.deliveryMode !== "session" && value.route.deliveryMode !== "target" || !Array.isArray(value.targetAuthorKeys)) return null;
|
|
180
|
+
const allowedDecisions = readApprovalReactionDecisionList(value.allowedDecisions);
|
|
181
|
+
if (!allowedDecisions) return null;
|
|
158
182
|
const targetRouteTo = value.route.deliveryMode === "target" && typeof value.route.to === "string" ? normalizeSignalMessagingTarget(value.route.to) : null;
|
|
159
183
|
if (value.route.deliveryMode === "target" && !targetRouteTo) return null;
|
|
160
184
|
const route = value.route.deliveryMode === "target" ? {
|
|
@@ -171,89 +195,11 @@ function readPersistedTarget(target) {
|
|
|
171
195
|
return {
|
|
172
196
|
approvalId: value.approvalId,
|
|
173
197
|
approvalKind: value.approvalKind,
|
|
174
|
-
allowedDecisions
|
|
198
|
+
allowedDecisions,
|
|
175
199
|
targetAuthorKeys: value.targetAuthorKeys,
|
|
176
200
|
route
|
|
177
201
|
};
|
|
178
202
|
}
|
|
179
|
-
function listSignalApprovalReactionBindings(allowedDecisions) {
|
|
180
|
-
return listApprovalReactionBindings({ allowedDecisions });
|
|
181
|
-
}
|
|
182
|
-
function buildSignalApprovalReactionHint(allowedDecisions) {
|
|
183
|
-
return buildApprovalReactionHint({ allowedDecisions });
|
|
184
|
-
}
|
|
185
|
-
function addSignalApprovalReactionHintToText(params) {
|
|
186
|
-
return addApprovalReactionHintToText(params);
|
|
187
|
-
}
|
|
188
|
-
function resolveStandaloneApprovalPromptKind(text) {
|
|
189
|
-
const firstLine = text.split(/\r?\n/).map((line) => line.replace(/\*\*/g, "").trim()).find(Boolean);
|
|
190
|
-
if (/^(?:🔒\s*)?Exec approval required$/.test(firstLine ?? "")) return "exec";
|
|
191
|
-
if (/^(?:(?:🛡️|🛡|🚨|ℹ️|ℹ)\s*)?Plugin approval required$/.test(firstLine ?? "")) return "plugin";
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
|
-
function isStandaloneApprovalPromptText(text) {
|
|
195
|
-
return resolveStandaloneApprovalPromptKind(text) !== null;
|
|
196
|
-
}
|
|
197
|
-
function extractSignalApprovalPromptBinding(text) {
|
|
198
|
-
const approvalKind = resolveStandaloneApprovalPromptKind(text);
|
|
199
|
-
return approvalKind ? extractApprovalReactionPromptBinding({
|
|
200
|
-
text,
|
|
201
|
-
approvalKind,
|
|
202
|
-
replyInstructionOnly: true
|
|
203
|
-
}) : null;
|
|
204
|
-
}
|
|
205
|
-
function buildTargetRoute(params) {
|
|
206
|
-
const to = resolveSignalApprovalRouteTarget({
|
|
207
|
-
cfg: params.cfg,
|
|
208
|
-
accountId: params.accountId,
|
|
209
|
-
to: params.to
|
|
210
|
-
});
|
|
211
|
-
if (!to) return null;
|
|
212
|
-
const route = {
|
|
213
|
-
deliveryMode: "target",
|
|
214
|
-
to,
|
|
215
|
-
...normalizeOptionalString(params.accountId) ? { accountId: normalizeOptionalString(params.accountId) } : {},
|
|
216
|
-
...normalizeOptionalString(params.agentId) ? { agentId: normalizeOptionalString(params.agentId) } : {},
|
|
217
|
-
...normalizeOptionalString(params.sessionKey) ? { sessionKey: normalizeOptionalString(params.sessionKey) } : {}
|
|
218
|
-
};
|
|
219
|
-
return isSignalApprovalReactionRouteStillEnabled({
|
|
220
|
-
cfg: params.cfg,
|
|
221
|
-
target: {
|
|
222
|
-
approvalKind: params.approvalKind,
|
|
223
|
-
route
|
|
224
|
-
}
|
|
225
|
-
}) ? route : null;
|
|
226
|
-
}
|
|
227
|
-
function shouldAppendSignalApprovalReactionHintForOutboundMessage(params) {
|
|
228
|
-
const binding = extractSignalApprovalPromptBinding(params.text);
|
|
229
|
-
if (!binding) return false;
|
|
230
|
-
if (resolveSignalApprovalTargetAuthorKeys(params).length === 0) return false;
|
|
231
|
-
if (!hasSignalApprovalReactionApprovers({
|
|
232
|
-
cfg: params.cfg,
|
|
233
|
-
accountId: params.accountId
|
|
234
|
-
})) return false;
|
|
235
|
-
return Boolean(buildTargetRoute({
|
|
236
|
-
cfg: params.cfg,
|
|
237
|
-
accountId: params.accountId,
|
|
238
|
-
to: params.to,
|
|
239
|
-
approvalId: binding.approvalId,
|
|
240
|
-
approvalKind: binding.approvalKind,
|
|
241
|
-
agentId: params.agentId,
|
|
242
|
-
sessionKey: params.sessionKey
|
|
243
|
-
}));
|
|
244
|
-
}
|
|
245
|
-
function appendSignalApprovalReactionHintForOutboundMessage(params) {
|
|
246
|
-
if (!isStandaloneApprovalPromptText(params.text)) return params.text;
|
|
247
|
-
const binding = extractSignalApprovalPromptBinding(params.text);
|
|
248
|
-
if (!binding || !shouldAppendSignalApprovalReactionHintForOutboundMessage({
|
|
249
|
-
...params,
|
|
250
|
-
text: params.text
|
|
251
|
-
})) return params.text;
|
|
252
|
-
return addSignalApprovalReactionHintToText({
|
|
253
|
-
text: params.text,
|
|
254
|
-
allowedDecisions: binding.allowedDecisions
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
203
|
function hasSignalApprovalReactionApprovers(params) {
|
|
258
204
|
return getSignalApprovalApprovers(params).length > 0;
|
|
259
205
|
}
|
|
@@ -261,7 +207,7 @@ function registerSignalApprovalReactionTarget(params) {
|
|
|
261
207
|
const key = buildReactionTargetKey(params);
|
|
262
208
|
const approvalId = params.approvalId.trim();
|
|
263
209
|
const targetAuthorKeys = Array.from(new Set(params.targetAuthorKeys.map((entry) => normalizeSignalApprovalTargetAuthorKey(entry)).filter((entry) => Boolean(entry))));
|
|
264
|
-
const allowedDecisions =
|
|
210
|
+
const allowedDecisions = listApprovalReactionBindings({ allowedDecisions: params.allowedDecisions }).map((binding) => binding.decision);
|
|
265
211
|
if (!params.routeAllowed || params.approvalKind !== "exec" && params.approvalKind !== "plugin" || !key || !approvalId || allowedDecisions.length === 0) return null;
|
|
266
212
|
if (targetAuthorKeys.length === 0) return null;
|
|
267
213
|
const route = params.route.deliveryMode === "target" ? {
|
|
@@ -301,14 +247,13 @@ function addSignalApprovalReactionHintToStructuredPayload(params) {
|
|
|
301
247
|
cfg: params.cfg,
|
|
302
248
|
accountId: params.accountId,
|
|
303
249
|
to: params.to,
|
|
304
|
-
approvalId: metadata.approvalId,
|
|
305
250
|
approvalKind: metadata.approvalKind,
|
|
306
251
|
agentId: metadata.agentId,
|
|
307
252
|
sessionKey: metadata.sessionKey
|
|
308
253
|
}) || !params.payload.text) return null;
|
|
309
254
|
return {
|
|
310
255
|
...params.payload,
|
|
311
|
-
text:
|
|
256
|
+
text: addApprovalReactionHintToText({
|
|
312
257
|
text: params.payload.text,
|
|
313
258
|
allowedDecisions: metadata.allowedDecisions
|
|
314
259
|
})
|
|
@@ -345,7 +290,6 @@ function registerSignalApprovalReactionTargetForDeliveredPayload(params) {
|
|
|
345
290
|
cfg: params.cfg,
|
|
346
291
|
accountId: params.target.accountId,
|
|
347
292
|
to: params.target.to,
|
|
348
|
-
approvalId: metadata.approvalId,
|
|
349
293
|
approvalKind: metadata.approvalKind,
|
|
350
294
|
agentId: metadata.agentId,
|
|
351
295
|
sessionKey: metadata.sessionKey
|
|
@@ -371,41 +315,6 @@ function registerSignalApprovalReactionTargetForDeliveredPayload(params) {
|
|
|
371
315
|
})) || registered;
|
|
372
316
|
return registered;
|
|
373
317
|
}
|
|
374
|
-
function registerSignalApprovalReactionTargetForOutboundMessage(params) {
|
|
375
|
-
if (!isStandaloneApprovalPromptText(params.text)) return false;
|
|
376
|
-
const binding = extractSignalApprovalPromptBinding(params.text);
|
|
377
|
-
if (!binding) return false;
|
|
378
|
-
if (!hasSignalApprovalReactionApprovers({
|
|
379
|
-
cfg: params.cfg,
|
|
380
|
-
accountId: params.accountId
|
|
381
|
-
})) return false;
|
|
382
|
-
const targetAuthorKeys = resolveSignalApprovalTargetAuthorKeys(params);
|
|
383
|
-
if (targetAuthorKeys.length === 0) return false;
|
|
384
|
-
const conversationKey = resolveSignalApprovalConversationKey(params.to);
|
|
385
|
-
if (!conversationKey) return false;
|
|
386
|
-
const route = buildTargetRoute({
|
|
387
|
-
cfg: params.cfg,
|
|
388
|
-
accountId: params.accountId,
|
|
389
|
-
to: params.to,
|
|
390
|
-
approvalId: binding.approvalId,
|
|
391
|
-
approvalKind: binding.approvalKind,
|
|
392
|
-
agentId: params.agentId,
|
|
393
|
-
sessionKey: params.sessionKey
|
|
394
|
-
});
|
|
395
|
-
if (!route) return false;
|
|
396
|
-
return Boolean(registerSignalApprovalReactionTarget({
|
|
397
|
-
accountId: params.accountId,
|
|
398
|
-
conversationKey,
|
|
399
|
-
messageId: params.messageId,
|
|
400
|
-
approvalId: binding.approvalId,
|
|
401
|
-
approvalKind: binding.approvalKind,
|
|
402
|
-
allowedDecisions: binding.allowedDecisions,
|
|
403
|
-
targetAuthorKeys,
|
|
404
|
-
route,
|
|
405
|
-
routeAllowed: true,
|
|
406
|
-
ttlMs: params.ttlMs
|
|
407
|
-
}));
|
|
408
|
-
}
|
|
409
318
|
function unregisterSignalApprovalReactionTarget(params) {
|
|
410
319
|
const key = buildReactionTargetKey(params);
|
|
411
320
|
if (!key) return;
|
|
@@ -512,7 +421,7 @@ async function maybeResolveSignalApprovalReaction(params) {
|
|
|
512
421
|
return true;
|
|
513
422
|
}
|
|
514
423
|
params.logVerboseMessage?.(`signal: approval reaction failed id=${target.approvalId} sender=${actorId}: ${String(error)}`);
|
|
515
|
-
|
|
424
|
+
throw error;
|
|
516
425
|
}
|
|
517
426
|
}
|
|
518
427
|
function clearSignalApprovalReactionTargetsForTest() {
|
|
@@ -520,4 +429,4 @@ function clearSignalApprovalReactionTargetsForTest() {
|
|
|
520
429
|
loadResolveApprovalOverGateway.clear();
|
|
521
430
|
}
|
|
522
431
|
//#endregion
|
|
523
|
-
export {
|
|
432
|
+
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,10 +1,12 @@
|
|
|
1
1
|
import { a as isSignalManagedNativeConnectionUrlForBind, i as assignSignalManagedNativePort, l as normalizeSignalTransportHost, o as isValidSignalManagedNativePort, r as allocateSignalManagedNativePort, s as resolveLocalSignalTransportPort, u as normalizeSignalTransportUrl } from "./transport-policy-DxvSMHp9.js";
|
|
2
|
-
import { a as resolveSignalAccountConfig, i as resolveSignalAccount, n as listSignalAccountIds, o as resolveSignalReplyToMode, r as resolveDefaultSignalAccountId, s as resolveSignalTransport } from "./accounts-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
2
|
+
import { a as resolveSignalAccountConfig, i as resolveSignalAccount, n as listSignalAccountIds, o as resolveSignalReplyToMode, r as resolveDefaultSignalAccountId, s as resolveSignalTransport } from "./accounts-DO4HMqaK.js";
|
|
3
|
+
import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
|
|
4
|
+
import { i as resolveSignalTarget, r as listSignalAliasDirectoryEntries } from "./approval-auth-BsYHLTHK.js";
|
|
5
|
+
import { c as resolveSignalSender, l as looksLikeUuid, o as resolveSignalPeerId, s as resolveSignalRecipient } from "./identity-YXPmgFMu.js";
|
|
6
|
+
import { c as resolveSignalReactionLevel, d as markdownToSignalTextChunks, l as formatSignalMediaText, m as signalApprovalCapability, o as materializeSignalPresentationFallback, p as shouldSuppressLocalSignalExecApprovalPrompt, r as resolveSignalReplyContextWithPersistence, s as signalMessageActions, t as detectSignalTransport } from "./transport-detection-BSXAOmuH.js";
|
|
7
|
+
import { i as migrateLegacySignalTransportConfig, n as normalizeCompatibilityConfig, r as clearLegacySignalTransportFieldsForAccount } from "./doctor-contract-api-C18u1hW0.js";
|
|
8
|
+
import { t as SignalChannelConfigSchema } from "./config-schema-q_QuhDy2.js";
|
|
9
|
+
import { describeAccountSnapshot, resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/account-helpers";
|
|
8
10
|
import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
|
|
9
11
|
import { buildDmGroupAccountAllowlistAdapter } from "openclaw/plugin-sdk/allowlist-config-edit";
|
|
10
12
|
import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
@@ -14,7 +16,6 @@ import { attachChannelToResult } from "openclaw/plugin-sdk/channel-send-result";
|
|
|
14
16
|
import { PAIRING_APPROVED_MESSAGE } from "openclaw/plugin-sdk/channel-status";
|
|
15
17
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
16
18
|
import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
17
|
-
import { resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/media-runtime";
|
|
18
19
|
import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
|
|
19
20
|
import { chunkText, resolveTextChunkLimit } from "openclaw/plugin-sdk/reply-chunking";
|
|
20
21
|
import { buildOutboundBaseSessionKey } from "openclaw/plugin-sdk/routing";
|
|
@@ -29,7 +30,6 @@ import { createChannelDmPolicy } from "openclaw/plugin-sdk/channel-dm-policy";
|
|
|
29
30
|
import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
|
|
30
31
|
import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$2, createCliPathTextInput, createDelegatedSetupWizardProxy, createDelegatedTextInputShouldPrompt, createPatchedAccountSetupAdapter, createSetupInputPresenceValidator, createSetupTranslator, patchChannelConfigForAccount, promptParsedAllowFromForAccount, setAccountAllowFromForChannel, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup-runtime";
|
|
31
32
|
import { formatCliCommand, formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
|
|
32
|
-
import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
|
|
33
33
|
import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
34
34
|
import { createRestrictSendersChannelSecurity } from "openclaw/plugin-sdk/channel-policy";
|
|
35
35
|
//#region extensions/signal/src/outbound-session.ts
|
|
@@ -570,7 +570,7 @@ function createSignalSetupWizardProxy(loadWizard) {
|
|
|
570
570
|
const signalDoctor = {
|
|
571
571
|
normalizeCompatibilityConfig,
|
|
572
572
|
cleanStaleConfig: async ({ cfg }) => {
|
|
573
|
-
const { detectSignalTransport } = await import("./transport-detection.runtime-
|
|
573
|
+
const { detectSignalTransport } = await import("./transport-detection.runtime-Cnykqcu0.js");
|
|
574
574
|
return await migrateLegacySignalTransportConfig({
|
|
575
575
|
cfg,
|
|
576
576
|
detect: detectSignalTransport
|
|
@@ -581,7 +581,7 @@ const signalDoctor = {
|
|
|
581
581
|
//#region extensions/signal/src/shared.ts
|
|
582
582
|
const SIGNAL_CHANNEL = "signal";
|
|
583
583
|
async function loadSignalChannelRuntime() {
|
|
584
|
-
return await import("./channel.runtime-
|
|
584
|
+
return await import("./channel.runtime-CSviXPlC.js");
|
|
585
585
|
}
|
|
586
586
|
const signalSetupWizard = createSignalSetupWizardProxy(async () => (await loadSignalChannelRuntime()).signalSetupWizard);
|
|
587
587
|
const signalConfigAdapter = {
|
|
@@ -627,6 +627,7 @@ const signalSecurityAdapter = createRestrictSendersChannelSecurity({
|
|
|
627
627
|
groupPolicyPath: "channels.signal.groupPolicy",
|
|
628
628
|
groupAllowFromPath: "channels.signal.groupAllowFrom",
|
|
629
629
|
mentionGated: false,
|
|
630
|
+
findingTitle: "Signal security warning",
|
|
630
631
|
policyPathSuffix: "dmPolicy",
|
|
631
632
|
normalizeDmEntry: (raw) => normalizeE164(raw.replace(/^signal:/i, "").trim())
|
|
632
633
|
});
|
|
@@ -665,17 +666,16 @@ function createSignalPluginBase(params) {
|
|
|
665
666
|
}
|
|
666
667
|
//#endregion
|
|
667
668
|
//#region extensions/signal/src/channel.ts
|
|
668
|
-
const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-
|
|
669
|
-
const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-
|
|
670
|
-
const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-
|
|
671
|
-
const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-
|
|
669
|
+
const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-fR9bCL2p.js").then((n) => n.n));
|
|
670
|
+
const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-D7BV0KJ5.js").then((n) => n.n));
|
|
671
|
+
const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-FRY_sREg.js"));
|
|
672
|
+
const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-DB-86mqK.js").then((n) => n.n));
|
|
672
673
|
async function resolveSignalSendContext(params) {
|
|
673
674
|
return {
|
|
674
675
|
send: resolveOutboundSendDep(params.deps, "signal") ?? (await loadSignalSendRuntime()).sendMessageSignal,
|
|
675
676
|
maxBytes: resolveChannelMediaMaxBytes({
|
|
676
677
|
cfg: params.cfg,
|
|
677
|
-
resolveChannelLimitMb: (
|
|
678
|
-
accountId: params.accountId
|
|
678
|
+
resolveChannelLimitMb: () => resolveSignalAccount(params).config.mediaMaxMb
|
|
679
679
|
})
|
|
680
680
|
};
|
|
681
681
|
}
|
|
@@ -748,6 +748,7 @@ function attachSignalVisibleText(result, visibleText) {
|
|
|
748
748
|
...result,
|
|
749
749
|
meta: {
|
|
750
750
|
...meta,
|
|
751
|
+
visibleText,
|
|
751
752
|
signalVisibleText: visibleText
|
|
752
753
|
}
|
|
753
754
|
};
|
|
@@ -756,7 +757,10 @@ const signalMessageAdapter = defineChannelMessageAdapter({
|
|
|
756
757
|
id: "signal",
|
|
757
758
|
durableFinal: { capabilities: {
|
|
758
759
|
text: true,
|
|
759
|
-
media: true
|
|
760
|
+
media: true,
|
|
761
|
+
payload: true,
|
|
762
|
+
replyTo: true,
|
|
763
|
+
messageSendingHooks: true
|
|
760
764
|
} },
|
|
761
765
|
send: {
|
|
762
766
|
text: sendSignalOutbound,
|
|
@@ -810,14 +814,15 @@ async function sendFormattedSignalText(ctx) {
|
|
|
810
814
|
text: ctx.text,
|
|
811
815
|
styles: []
|
|
812
816
|
}];
|
|
817
|
+
const effectiveReplyToMode = ctx.replyToMode ?? resolveSignalReplyToMode({
|
|
818
|
+
cfg: ctx.cfg,
|
|
819
|
+
accountId: ctx.accountId,
|
|
820
|
+
chatType: inferSignalTargetChatType(to)
|
|
821
|
+
});
|
|
813
822
|
const nextReplyToId = createReplyToFanout({
|
|
814
823
|
replyToId: ctx.replyToId,
|
|
815
824
|
replyToIdSource: ctx.replyToIdSource,
|
|
816
|
-
replyToMode:
|
|
817
|
-
cfg: ctx.cfg,
|
|
818
|
-
accountId: ctx.accountId,
|
|
819
|
-
chatType: inferSignalTargetChatType(to)
|
|
820
|
-
})
|
|
825
|
+
replyToMode: effectiveReplyToMode
|
|
821
826
|
});
|
|
822
827
|
const results = [];
|
|
823
828
|
for (const chunk of chunks) {
|
|
@@ -890,7 +895,7 @@ async function registerDeliveredSignalApprovalPayloadForReactions(params) {
|
|
|
890
895
|
const targetAuthor = normalizeOptionalString(account.config.account);
|
|
891
896
|
const targetAuthorUuid = normalizeOptionalString(account.config.accountUuid);
|
|
892
897
|
if (!targetAuthor && !targetAuthorUuid) return;
|
|
893
|
-
const { registerSignalQuestionReactionTargetForDeliveredPayload } = await import("./question-reactions-
|
|
898
|
+
const { registerSignalQuestionReactionTargetForDeliveredPayload } = await import("./question-reactions-D04hVKsE.js").then((n) => n.n);
|
|
894
899
|
registerSignalQuestionReactionTargetForDeliveredPayload({
|
|
895
900
|
cfg: params.cfg,
|
|
896
901
|
target: {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SignalChannelConfigSchema } from "./config-schema-
|
|
1
|
+
import { t as SignalChannelConfigSchema } from "./config-schema-q_QuhDy2.js";
|
|
2
2
|
export { SignalChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as signalPlugin } from "./channel-
|
|
1
|
+
import { t as signalPlugin } from "./channel-C4vwPXz8.js";
|
|
2
2
|
export { signalPlugin };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as resolveSignalAccount, n as listSignalAccountIds } from "./accounts-
|
|
2
|
-
import { c as signalNumberTextInput, i as createSignalCliPathTextInput, o as signalCompletionNote, s as signalDmPolicy } from "./channel-
|
|
1
|
+
import { i as resolveSignalAccount, n as listSignalAccountIds } from "./accounts-DO4HMqaK.js";
|
|
2
|
+
import { c as signalNumberTextInput, i as createSignalCliPathTextInput, o as signalCompletionNote, s as signalDmPolicy } from "./channel-C4vwPXz8.js";
|
|
3
3
|
import { i as installSignalCli } from "./install-signal-cli-Cpiyk0k1.js";
|
|
4
4
|
import { detectBinary } from "openclaw/plugin-sdk/setup-tools";
|
|
5
5
|
import { createDetectedBinaryStatus, createSetupTranslator, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
|
|
2
2
|
import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId, resolveAccountEntry } from "openclaw/plugin-sdk/account-resolution";
|
|
4
|
-
import { ChannelDeliveryStreamingConfigSchema, ChannelSendReadReceiptsSchema, ExecutableTokenSchema, ReplyToModeSchema, buildChannelConfigSchema, buildChannelReactionShape,
|
|
4
|
+
import { ChannelDeliveryStreamingConfigSchema, ChannelSendReadReceiptsSchema, ExecutableTokenSchema, ReplyToModeSchema, buildChannelAccountSchemaParts, buildChannelConfigSchema, buildChannelReactionShape, buildGroupEntrySchema, requireAllowlistAllowFrom, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
//#region extensions/signal/src/config-ui-hints.ts
|
|
7
7
|
const signalChannelConfigUiHints = {
|
|
@@ -104,13 +104,13 @@ const SignalGroupEntrySchema = buildGroupEntrySchema({ ingest: z.boolean().optio
|
|
|
104
104
|
"systemPrompt"
|
|
105
105
|
] });
|
|
106
106
|
const SignalGroupsSchema = z.record(z.string(), SignalGroupEntrySchema.optional()).optional();
|
|
107
|
+
const { accountShape, rootPolicyShape } = buildChannelAccountSchemaParts({
|
|
108
|
+
omit: ["mentionPatterns"],
|
|
109
|
+
streaming: ChannelDeliveryStreamingConfigSchema.optional(),
|
|
110
|
+
mediaMaxMb: z.number().int().positive().optional()
|
|
111
|
+
});
|
|
107
112
|
const SignalAccountSchemaBase = z.object({
|
|
108
|
-
...
|
|
109
|
-
useDefaults: true,
|
|
110
|
-
omit: ["mentionPatterns"],
|
|
111
|
-
streaming: ChannelDeliveryStreamingConfigSchema.optional(),
|
|
112
|
-
mediaMaxMb: z.number().int().positive().optional()
|
|
113
|
-
}),
|
|
113
|
+
...accountShape,
|
|
114
114
|
account: z.string().optional(),
|
|
115
115
|
accountUuid: z.string().optional(),
|
|
116
116
|
transport: SignalTransportSchema.optional(),
|
|
@@ -137,6 +137,7 @@ const SignalAccountSchemaBase = z.object({
|
|
|
137
137
|
actions: z.object({ reactions: z.boolean().optional() }).strict().optional()
|
|
138
138
|
}).strict();
|
|
139
139
|
const SignalConfigSchemaBase = SignalAccountSchemaBase.extend({
|
|
140
|
+
...rootPolicyShape,
|
|
140
141
|
accounts: z.record(z.string(), SignalAccountSchemaBase.optional()).optional(),
|
|
141
142
|
defaultAccount: z.string().optional()
|
|
142
143
|
});
|
package/dist/contract-api.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
|
|
2
|
+
import { i as isSignalSenderAllowed } from "./identity-YXPmgFMu.js";
|
|
2
3
|
import { a as installSignalCliFromRelease, i as installSignalCli, n as downloadToFile, o as looksLikeArchive, r as extractSignalCliArchive, s as pickAsset, t as MAX_SIGNAL_CLI_EXTRACTED_BYTES } from "./install-signal-cli-Cpiyk0k1.js";
|
|
3
|
-
export { MAX_SIGNAL_CLI_EXTRACTED_BYTES, downloadToFile, extractSignalCliArchive, installSignalCli, installSignalCliFromRelease, isSignalSenderAllowed, looksLikeArchive, looksLikeSignalTargetId, normalizeSignalMessagingTarget, pickAsset };
|
|
4
|
+
export { MAX_SIGNAL_CLI_EXTRACTED_BYTES, downloadToFile, extractSignalCliArchive, installSignalCli, installSignalCliFromRelease, isSignalSenderAllowed, looksLikeArchive, looksLikeSignalTargetId, normalizeSignalMessagingTarget, normalizeSignalReactionRecipient, pickAsset };
|
|
@@ -428,7 +428,7 @@ function migrateLegacySignalTransportConfigSync(cfg) {
|
|
|
428
428
|
};
|
|
429
429
|
}
|
|
430
430
|
//#endregion
|
|
431
|
-
//#region extensions/signal/doctor-
|
|
431
|
+
//#region extensions/signal/config-doctor-api.ts
|
|
432
432
|
const RETIRED_SIGNAL_ACCOUNT_TRANSPORT_FIELDS = [
|
|
433
433
|
"configPath",
|
|
434
434
|
"httpUrl",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-api-
|
|
1
|
+
import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-api-C18u1hW0.js";
|
|
2
2
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|