@openclaw/signal 2026.9.2 → 2026.9.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/api.js +7 -7
- package/dist/{approval-handler.runtime-Dsg_GE8N.js → approval-handler.runtime-X6DXgK_3.js} +2 -2
- package/dist/{approval-reactions-D-nkbsvm.js → approval-reactions-Cub0slPC.js} +24 -53
- package/dist/{channel-B-A_5_Vz.js → channel-DJQccJtU.js} +17 -14
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-LfE0qPMj.js → channel.runtime-QerbTca6.js} +2 -2
- package/dist/{client-BmpTN7R3.js → client-B3C0ciqU.js} +6 -1
- package/dist/{client-adapter-CDyW9LrQ.js → client-adapter-CNc5wzzs.js} +1 -1
- package/dist/{config-schema-CHihQTOp.js → config-schema-DfEbpMVQ.js} +10 -37
- package/dist/contract-api.js +1 -1
- package/dist/{doctor-contract-api-C18u1hW0.js → doctor-contract-api-D0SnglP4.js} +40 -78
- package/dist/doctor-contract-api.js +1 -1
- package/dist/{monitor-D7Slr0-A.js → monitor-CokYfKOk.js} +9 -9
- package/dist/{probe-CtO2EIfg.js → probe-Bh9f0rRO.js} +3 -3
- package/dist/{question-reactions-CsVOpHg_.js → question-reactions-B06vyt3T.js} +2 -2
- package/dist/{reaction-runtime-api-7FQFT_qb.js → reaction-runtime-api-CWqDv5-q.js} +1 -1
- package/dist/reaction-runtime-api.js +1 -1
- package/dist/{rolldown-runtime-D7D4PA-g.js → rolldown-runtime-8H4AJuhK.js} +1 -0
- package/dist/runtime-api.js +7 -7
- package/dist/{send-DuH2ntJt.js → send-BvWSfyNf.js} +2 -2
- package/dist/{send.runtime-BLiqhyHW.js → send.runtime-BNQ0x-2k.js} +1 -1
- package/dist/{transport-detection-BcDiypLn.js → transport-detection-BD__qywn.js} +3 -3
- package/dist/{transport-detection.runtime-DYuvIa7s.js → transport-detection.runtime-c9q3r3AM.js} +1 -1
- package/dist/{transport-probes.runtime-B7kr_6Zu.js → transport-probes.runtime-DV7x4VWu.js} +1 -1
- package/package.json +4 -4
- package/dist/{install-signal-cli-7tEL37_j.js → install-signal-cli-QlEIfWBv.js} +1 -1
package/dist/api.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-DO4HMqaK.js";
|
|
2
2
|
import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
|
|
3
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-
|
|
5
|
-
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-
|
|
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-
|
|
7
|
-
import { i as installSignalCli } from "./install-signal-cli-
|
|
8
|
-
import { t as monitorSignalProvider } from "./monitor-
|
|
9
|
-
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-
|
|
10
|
-
import { t as probeSignal } from "./probe-
|
|
4
|
+
import { c as resolveSignalReactionLevel, d as markdownToSignalTextChunks, s as signalMessageActions, t as detectSignalTransport, u as markdownToSignalText } from "./transport-detection-BD__qywn.js";
|
|
5
|
+
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-CWqDv5-q.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-DJQccJtU.js";
|
|
7
|
+
import { i as installSignalCli } from "./install-signal-cli-QlEIfWBv.js";
|
|
8
|
+
import { t as monitorSignalProvider } from "./monitor-CokYfKOk.js";
|
|
9
|
+
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-BvWSfyNf.js";
|
|
10
|
+
import { t as probeSignal } from "./probe-Bh9f0rRO.js";
|
|
11
11
|
//#region extensions/signal/src/channel.setup.ts
|
|
12
12
|
const signalSetupPlugin = { ...createSignalPluginBase({
|
|
13
13
|
setupWizard: signalSetupWizard,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as resolveDefaultSignalAccountId } from "./accounts-DO4HMqaK.js";
|
|
2
2
|
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.js";
|
|
3
3
|
import { a as resolveSignalTarget } from "./approval-auth-pNCKKotV.js";
|
|
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-
|
|
4
|
+
import { a as registerSignalApprovalReactionTarget, c as resolveSignalApprovalTargetAuthorKeys, l as unregisterSignalApprovalReactionTarget, r as hasSignalApprovalReactionApprovers, s as resolveSignalApprovalConversationKey } from "./approval-reactions-Cub0slPC.js";
|
|
5
|
+
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-BvWSfyNf.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,14 +1,13 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
2
|
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.js";
|
|
3
3
|
import { a as resolveSignalTarget, i as resolveSignalDeliveredConversationKey, n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-pNCKKotV.js";
|
|
4
4
|
import { l as looksLikeUuid } from "./identity-YXPmgFMu.js";
|
|
5
|
-
import { i as getOptionalSignalRuntime } from "./transport-detection-
|
|
5
|
+
import { i as getOptionalSignalRuntime } from "./transport-detection-BD__qywn.js";
|
|
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";
|
|
9
|
-
import { addApprovalReactionHintToText, createApprovalReactionTargetStore, hasApprovalReactionHintText, listApprovalReactionBindings,
|
|
9
|
+
import { addApprovalReactionHintToText, createApprovalReactionTargetStore, hasApprovalReactionHintText, listApprovalReactionBindings, readApprovalReactionTargetRecord, resolveTypedApprovalReactionTarget, settleApprovalReaction } from "openclaw/plugin-sdk/approval-reaction-runtime";
|
|
10
10
|
import { normalizeE164 } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
11
|
-
import { isApprovalNotFoundError } from "openclaw/plugin-sdk/error-runtime";
|
|
12
11
|
import { getExecApprovalReplyMetadata } from "openclaw/plugin-sdk/approval-reply-runtime";
|
|
13
12
|
import { createPluginStateErrorReporter } from "openclaw/plugin-sdk/plugin-state-runtime";
|
|
14
13
|
import { matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
|
|
@@ -165,10 +164,9 @@ function buildReactionTargetKey(params) {
|
|
|
165
164
|
return `${accountId}:${conversationKey}:${messageId}`;
|
|
166
165
|
}
|
|
167
166
|
function readPersistedTarget(target) {
|
|
167
|
+
const record = readApprovalReactionTargetRecord(target);
|
|
168
168
|
const value = target;
|
|
169
|
-
if (!
|
|
170
|
-
const allowedDecisions = readApprovalReactionDecisionList(value.allowedDecisions);
|
|
171
|
-
if (!allowedDecisions) return null;
|
|
169
|
+
if (!record || !value?.route || value.route.deliveryMode !== "session" && value.route.deliveryMode !== "target" || !Array.isArray(value.targetAuthorKeys)) return null;
|
|
172
170
|
const targetRouteTo = value.route.deliveryMode === "target" && typeof value.route.to === "string" ? normalizeSignalMessagingTarget(value.route.to) : null;
|
|
173
171
|
if (value.route.deliveryMode === "target" && !targetRouteTo) return null;
|
|
174
172
|
const route = value.route.deliveryMode === "target" ? {
|
|
@@ -183,9 +181,7 @@ function readPersistedTarget(target) {
|
|
|
183
181
|
...typeof value.route.sessionKey === "string" ? { sessionKey: value.route.sessionKey } : {}
|
|
184
182
|
};
|
|
185
183
|
return {
|
|
186
|
-
|
|
187
|
-
approvalKind: value.approvalKind,
|
|
188
|
-
allowedDecisions,
|
|
184
|
+
...record,
|
|
189
185
|
targetAuthorKeys: value.targetAuthorKeys,
|
|
190
186
|
route
|
|
191
187
|
};
|
|
@@ -359,26 +355,8 @@ async function maybeResolveSignalApprovalReaction(params) {
|
|
|
359
355
|
params.logVerboseMessage?.(`signal: approval reaction ignored for ${target.approvalId}; missing actor identity`);
|
|
360
356
|
return true;
|
|
361
357
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
accountId: params.accountId
|
|
365
|
-
}).length === 0) {
|
|
366
|
-
params.logVerboseMessage?.(`signal: approval reaction denied id=${target.approvalId}; reactions require explicit approvers`);
|
|
367
|
-
return true;
|
|
368
|
-
}
|
|
369
|
-
if (!signalApprovalAuth.authorizeActorAction({
|
|
370
|
-
cfg: params.cfg,
|
|
371
|
-
accountId: params.accountId,
|
|
372
|
-
senderId: actorId,
|
|
373
|
-
action: "approve",
|
|
374
|
-
approvalKind: target.approvalKind
|
|
375
|
-
}).authorized) {
|
|
376
|
-
params.logVerboseMessage?.(`signal: approval reaction denied id=${target.approvalId} sender=${actorId}`);
|
|
377
|
-
return true;
|
|
378
|
-
}
|
|
379
|
-
const resolveApprovalOverGateway = await loadResolveApprovalOverGateway();
|
|
380
|
-
try {
|
|
381
|
-
const result = await resolveApprovalOverGateway({
|
|
358
|
+
await settleApprovalReaction({
|
|
359
|
+
request: {
|
|
382
360
|
cfg: params.cfg,
|
|
383
361
|
approvalId: target.approvalId,
|
|
384
362
|
approvalKind: target.approvalKind,
|
|
@@ -387,32 +365,25 @@ async function maybeResolveSignalApprovalReaction(params) {
|
|
|
387
365
|
accountId: params.accountId,
|
|
388
366
|
senderId: actorId,
|
|
389
367
|
gatewayUrl: params.gatewayUrl
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
|
|
368
|
+
},
|
|
369
|
+
approvers: getSignalApprovalApprovers({
|
|
370
|
+
cfg: params.cfg,
|
|
371
|
+
accountId: params.accountId
|
|
372
|
+
}),
|
|
373
|
+
authorizeActorAction: (input) => signalApprovalAuth.authorizeActorAction(input),
|
|
374
|
+
loadResolver: loadResolveApprovalOverGateway,
|
|
375
|
+
clearTarget: () => unregisterSignalApprovalReactionTarget({
|
|
393
376
|
accountId: params.accountId,
|
|
394
377
|
conversationKey: params.conversationKey,
|
|
395
378
|
messageId: params.messageId
|
|
396
|
-
})
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
if (isApprovalNotFoundError(error)) {
|
|
405
|
-
unregisterSignalApprovalReactionTarget({
|
|
406
|
-
accountId: params.accountId,
|
|
407
|
-
conversationKey: params.conversationKey,
|
|
408
|
-
messageId: params.messageId
|
|
409
|
-
});
|
|
410
|
-
params.logVerboseMessage?.(`signal: approval reaction ignored for expired approval id=${target.approvalId} sender=${actorId}`);
|
|
411
|
-
return true;
|
|
412
|
-
}
|
|
413
|
-
params.logVerboseMessage?.(`signal: approval reaction failed id=${target.approvalId} sender=${actorId}: ${String(error)}`);
|
|
414
|
-
throw error;
|
|
415
|
-
}
|
|
379
|
+
}),
|
|
380
|
+
onResolved: (result) => {
|
|
381
|
+
const outcome = result.applied ? "resolved" : "already resolved";
|
|
382
|
+
params.logVerboseMessage?.(`signal: approval reaction ${outcome} id=${target.approvalId} sender=${actorId} ${formatSignalApprovalTerminalTruth(result.approval)}`);
|
|
383
|
+
},
|
|
384
|
+
logVerboseMessage: params.logVerboseMessage
|
|
385
|
+
});
|
|
386
|
+
return true;
|
|
416
387
|
}
|
|
417
388
|
function clearSignalApprovalReactionTargetsForTest() {
|
|
418
389
|
signalApprovalReactionTargets.clearForTest();
|
|
@@ -3,9 +3,9 @@ import { a as resolveSignalAccountConfig, i as resolveSignalAccount, n as listSi
|
|
|
3
3
|
import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
|
|
4
4
|
import { a as resolveSignalTarget, r as listSignalAliasDirectoryEntries } from "./approval-auth-pNCKKotV.js";
|
|
5
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-
|
|
7
|
-
import { i as migrateLegacySignalTransportConfig, n as normalizeCompatibilityConfig, r as clearLegacySignalTransportFieldsForAccount } from "./doctor-contract-api-
|
|
8
|
-
import { t as SignalChannelConfigSchema } from "./config-schema-
|
|
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-BD__qywn.js";
|
|
7
|
+
import { i as migrateLegacySignalTransportConfig, n as normalizeCompatibilityConfig, r as clearLegacySignalTransportFieldsForAccount } from "./doctor-contract-api-D0SnglP4.js";
|
|
8
|
+
import { t as SignalChannelConfigSchema } from "./config-schema-DfEbpMVQ.js";
|
|
9
9
|
import { describeAccountSnapshot, resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/account-helpers";
|
|
10
10
|
import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
|
|
11
11
|
import { buildDmGroupAccountAllowlistAdapter } from "openclaw/plugin-sdk/allowlist-config-edit";
|
|
@@ -214,8 +214,8 @@ async function probeSignalTransport(params) {
|
|
|
214
214
|
overrides: managedTransportOptions(params.transport)
|
|
215
215
|
}) : params.transport;
|
|
216
216
|
const resolved = resolveSignalTransport(transport);
|
|
217
|
-
if (resolved.kind === "container") return (params.probeContainer ?? (await import("./transport-probes.runtime-
|
|
218
|
-
return (params.probeNative ?? (await import("./transport-probes.runtime-
|
|
217
|
+
if (resolved.kind === "container") return (params.probeContainer ?? (await import("./transport-probes.runtime-DV7x4VWu.js")).containerCheck)(resolved.baseUrl, timeoutMs, params.account);
|
|
218
|
+
return (params.probeNative ?? (await import("./transport-probes.runtime-DV7x4VWu.js")).nativeCheck)(resolved.baseUrl, timeoutMs);
|
|
219
219
|
}
|
|
220
220
|
function writeSignalAccountTransport(params) {
|
|
221
221
|
const transport = normalizeTransport(params.transport);
|
|
@@ -572,7 +572,7 @@ function createSignalSetupWizardProxy(loadWizard) {
|
|
|
572
572
|
const signalDoctor = {
|
|
573
573
|
normalizeCompatibilityConfig,
|
|
574
574
|
cleanStaleConfig: async ({ cfg }) => {
|
|
575
|
-
const { detectSignalTransport } = await import("./transport-detection.runtime-
|
|
575
|
+
const { detectSignalTransport } = await import("./transport-detection.runtime-c9q3r3AM.js");
|
|
576
576
|
return await migrateLegacySignalTransportConfig({
|
|
577
577
|
cfg,
|
|
578
578
|
detect: detectSignalTransport
|
|
@@ -583,7 +583,7 @@ const signalDoctor = {
|
|
|
583
583
|
//#region extensions/signal/src/shared.ts
|
|
584
584
|
const SIGNAL_CHANNEL = "signal";
|
|
585
585
|
async function loadSignalChannelRuntime() {
|
|
586
|
-
return await import("./channel.runtime-
|
|
586
|
+
return await import("./channel.runtime-QerbTca6.js");
|
|
587
587
|
}
|
|
588
588
|
const signalSetupWizard = createSignalSetupWizardProxy(async () => (await loadSignalChannelRuntime()).signalSetupWizard);
|
|
589
589
|
const signalConfigAdapter = {
|
|
@@ -671,10 +671,10 @@ function createSignalPluginBase(params) {
|
|
|
671
671
|
}
|
|
672
672
|
//#endregion
|
|
673
673
|
//#region extensions/signal/src/channel.ts
|
|
674
|
-
const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-
|
|
675
|
-
const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-
|
|
676
|
-
const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-
|
|
677
|
-
const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-
|
|
674
|
+
const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-CokYfKOk.js").then((n) => n.n));
|
|
675
|
+
const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-Bh9f0rRO.js").then((n) => n.n));
|
|
676
|
+
const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-BNQ0x-2k.js"));
|
|
677
|
+
const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-Cub0slPC.js").then((n) => n.n));
|
|
678
678
|
async function resolveSignalSendContext(params) {
|
|
679
679
|
return {
|
|
680
680
|
send: resolveOutboundSendDep(params.deps, "signal") ?? (await loadSignalSendRuntime()).sendMessageSignal,
|
|
@@ -902,7 +902,7 @@ async function registerDeliveredSignalApprovalPayloadForReactions(params) {
|
|
|
902
902
|
const targetAuthor = normalizeOptionalString(account.config.account);
|
|
903
903
|
const targetAuthorUuid = normalizeOptionalString(account.config.accountUuid);
|
|
904
904
|
if (!targetAuthor && !targetAuthorUuid) return;
|
|
905
|
-
const { registerSignalQuestionReactionTargetForDeliveredPayload } = await import("./question-reactions-
|
|
905
|
+
const { registerSignalQuestionReactionTargetForDeliveredPayload } = await import("./question-reactions-B06vyt3T.js").then((n) => n.n);
|
|
906
906
|
registerSignalQuestionReactionTargetForDeliveredPayload({
|
|
907
907
|
cfg: params.cfg,
|
|
908
908
|
target: {
|
|
@@ -1093,8 +1093,11 @@ const signalPlugin = createChatChannelPlugin({
|
|
|
1093
1093
|
idLabel: "signalNumber",
|
|
1094
1094
|
message: PAIRING_APPROVED_MESSAGE,
|
|
1095
1095
|
normalizeAllowEntry: createPairingPrefixStripper(/^signal:/i),
|
|
1096
|
-
notify: async ({ cfg, id, message }) => {
|
|
1097
|
-
await (await loadSignalSendRuntime()).sendMessageSignal(id, message, {
|
|
1096
|
+
notify: async ({ cfg, id, message, accountId }) => {
|
|
1097
|
+
await (await loadSignalSendRuntime()).sendMessageSignal(id, message, {
|
|
1098
|
+
cfg,
|
|
1099
|
+
accountId
|
|
1100
|
+
});
|
|
1098
1101
|
}
|
|
1099
1102
|
} },
|
|
1100
1103
|
security: signalSecurityAdapter,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SignalChannelConfigSchema } from "./config-schema-
|
|
1
|
+
import { t as SignalChannelConfigSchema } from "./config-schema-DfEbpMVQ.js";
|
|
2
2
|
export { SignalChannelConfigSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as signalPlugin } from "./channel-
|
|
1
|
+
import { t as signalPlugin } from "./channel-DJQccJtU.js";
|
|
2
2
|
export { signalPlugin };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
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-
|
|
3
|
-
import { i as installSignalCli } from "./install-signal-cli-
|
|
2
|
+
import { c as signalNumberTextInput, i as createSignalCliPathTextInput, o as signalCompletionNote, s as signalDmPolicy } from "./channel-DJQccJtU.js";
|
|
3
|
+
import { i as installSignalCli } from "./install-signal-cli-QlEIfWBv.js";
|
|
4
4
|
import { detectBinary } from "openclaw/plugin-sdk/setup-tools";
|
|
5
5
|
import { createDetectedBinaryStatus, createSetupTranslator, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
|
|
6
6
|
//#region extensions/signal/src/setup-surface.ts
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
1
2
|
import { detectMime, extractOriginalFilename, parseMediaContentLength } from "openclaw/plugin-sdk/media-runtime";
|
|
2
3
|
import { parseStrictNonNegativeInteger, resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
|
3
4
|
import { coerceErrorMessage, formatErrorMessage, toErrorObject } from "openclaw/plugin-sdk/error-runtime";
|
|
4
5
|
import { resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
|
|
5
6
|
import { readResponseTextPrefix, readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtime";
|
|
6
7
|
import { readRegularFile } from "openclaw/plugin-sdk/security-runtime";
|
|
7
|
-
import
|
|
8
|
+
import path from "node:path";
|
|
8
9
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
9
10
|
import http from "node:http";
|
|
10
11
|
import https from "node:https";
|
|
11
12
|
import { generateSecureUuid } from "openclaw/plugin-sdk/core";
|
|
13
|
+
//#region extensions/signal/src/ws-runtime.ts
|
|
14
|
+
const require = createRequire(import.meta.url);
|
|
15
|
+
const WebSocket = require(path.join(path.dirname(require.resolve("ws/package.json")), "index.js"));
|
|
16
|
+
//#endregion
|
|
12
17
|
//#region extensions/signal/src/client-container.ts
|
|
13
18
|
/**
|
|
14
19
|
* Signal client for bbernhard/signal-cli-rest-api container.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as containerCheck, i as streamSignalEvents$1, n as signalCheck$1, o as containerRpcRequest, r as signalRpcRequest$1, s as streamContainerEvents } from "./client-
|
|
1
|
+
import { a as containerCheck, i as streamSignalEvents$1, n as signalCheck$1, o as containerRpcRequest, r as signalRpcRequest$1, s as streamContainerEvents } from "./client-B3C0ciqU.js";
|
|
2
2
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
3
3
|
//#region extensions/signal/src/client-adapter.ts
|
|
4
4
|
/**
|
|
@@ -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, buildChannelAccountSchemaParts, buildChannelConfigSchema, buildChannelReactionShape, buildGroupEntrySchema,
|
|
4
|
+
import { ChannelDeliveryStreamingConfigSchema, ChannelSendReadReceiptsSchema, ExecutableTokenSchema, ReplyToModeSchema, buildChannelAccountSchemaParts, buildChannelConfigSchema, buildChannelReactionShape, buildGroupEntrySchema, refineChannelDmPolicy } 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 = {
|
|
@@ -142,45 +142,18 @@ const SignalConfigSchemaBase = SignalAccountSchemaBase.extend({
|
|
|
142
142
|
defaultAccount: z.string().optional()
|
|
143
143
|
});
|
|
144
144
|
function validateSignalConfigAllowFrom(value, ctx) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
ctx
|
|
149
|
-
path: ["allowFrom"],
|
|
150
|
-
message: "channels.signal.dmPolicy=\"open\" requires channels.signal.allowFrom to include \"*\""
|
|
151
|
-
});
|
|
152
|
-
requireAllowlistAllowFrom({
|
|
153
|
-
policy: value.dmPolicy,
|
|
154
|
-
allowFrom: value.allowFrom,
|
|
155
|
-
ctx,
|
|
156
|
-
path: ["allowFrom"],
|
|
157
|
-
message: "channels.signal.dmPolicy=\"allowlist\" requires channels.signal.allowFrom to contain at least one sender ID"
|
|
145
|
+
refineChannelDmPolicy({
|
|
146
|
+
channelId: "signal",
|
|
147
|
+
value,
|
|
148
|
+
ctx
|
|
158
149
|
});
|
|
159
150
|
for (const [accountId, account] of Object.entries(value.accounts ?? {})) {
|
|
160
151
|
if (!account) continue;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
ctx,
|
|
167
|
-
path: [
|
|
168
|
-
"accounts",
|
|
169
|
-
accountId,
|
|
170
|
-
"allowFrom"
|
|
171
|
-
],
|
|
172
|
-
message: "channels.signal.accounts.*.dmPolicy=\"open\" requires channels.signal.accounts.*.allowFrom (or channels.signal.allowFrom) to include \"*\""
|
|
173
|
-
});
|
|
174
|
-
requireAllowlistAllowFrom({
|
|
175
|
-
policy: effectivePolicy,
|
|
176
|
-
allowFrom: effectiveAllowFrom,
|
|
177
|
-
ctx,
|
|
178
|
-
path: [
|
|
179
|
-
"accounts",
|
|
180
|
-
accountId,
|
|
181
|
-
"allowFrom"
|
|
182
|
-
],
|
|
183
|
-
message: "channels.signal.accounts.*.dmPolicy=\"allowlist\" requires channels.signal.accounts.*.allowFrom (or channels.signal.allowFrom) to contain at least one sender ID"
|
|
152
|
+
refineChannelDmPolicy({
|
|
153
|
+
channelId: "signal",
|
|
154
|
+
value,
|
|
155
|
+
accountId,
|
|
156
|
+
ctx
|
|
184
157
|
});
|
|
185
158
|
}
|
|
186
159
|
}
|
package/dist/contract-api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
|
|
2
2
|
import { i as isSignalSenderAllowed } from "./identity-YXPmgFMu.js";
|
|
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-
|
|
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-QlEIfWBv.js";
|
|
4
4
|
export { MAX_SIGNAL_CLI_EXTRACTED_BYTES, downloadToFile, extractSignalCliArchive, installSignalCli, installSignalCliFromRelease, isSignalSenderAllowed, looksLikeArchive, looksLikeSignalTargetId, normalizeSignalMessagingTarget, normalizeSignalReactionRecipient, pickAsset };
|
|
@@ -293,76 +293,7 @@ function hasContainerTransportWithoutEffectiveAccount(cfg) {
|
|
|
293
293
|
}
|
|
294
294
|
return false;
|
|
295
295
|
}
|
|
296
|
-
|
|
297
|
-
const signal = params.cfg.channels?.signal;
|
|
298
|
-
if (!isRecord(signal)) return {
|
|
299
|
-
config: params.cfg,
|
|
300
|
-
changes: []
|
|
301
|
-
};
|
|
302
|
-
const accounts = isRecord(signal.accounts) ? signal.accounts : {};
|
|
303
|
-
if (!(Object.hasOwn(signal, "apiMode") || hasLegacyFields(signal) || Object.values(accounts).some((entry) => isRecord(entry) && hasLegacyFields(entry)))) return {
|
|
304
|
-
config: params.cfg,
|
|
305
|
-
changes: []
|
|
306
|
-
};
|
|
307
|
-
const apiMode = signal.apiMode;
|
|
308
|
-
const entries = [signal, ...Object.values(accounts).filter(isRecord)];
|
|
309
|
-
const legacyResolutionEntries = entries.filter((_, index) => shouldMaterializeTransport(entries, index)).filter((entry) => !isSignalTransportConfig(entry.transport));
|
|
310
|
-
const invalidDerivedEndpoint = findInvalidLegacyDerivedEndpoint(legacyResolutionEntries, signal);
|
|
311
|
-
if (invalidDerivedEndpoint) return {
|
|
312
|
-
config: params.cfg,
|
|
313
|
-
changes: [],
|
|
314
|
-
warnings: [invalidDerivedEndpoint === "port" ? PENDING_LEGACY_INVALID_PORT_WARNING : PENDING_LEGACY_INVALID_HOST_WARNING]
|
|
315
|
-
};
|
|
316
|
-
if (hasInvalidLegacyHttpUrl(legacyResolutionEntries, signal)) return {
|
|
317
|
-
config: params.cfg,
|
|
318
|
-
changes: [],
|
|
319
|
-
warnings: [PENDING_LEGACY_INVALID_URL_WARNING]
|
|
320
|
-
};
|
|
321
|
-
if (!params.detect && legacyResolutionEntries.some((entry) => requiresDetection(entry, signal, apiMode))) return {
|
|
322
|
-
config: params.cfg,
|
|
323
|
-
changes: [],
|
|
324
|
-
warnings: [PENDING_LEGACY_TRANSPORT_WARNING]
|
|
325
|
-
};
|
|
326
|
-
const resolvedTransports = await Promise.all(entries.map(async (entry, index) => !shouldMaterializeTransport(entries, index) ? void 0 : await resolveLegacyTransport({
|
|
327
|
-
entry,
|
|
328
|
-
parent: signal,
|
|
329
|
-
apiMode,
|
|
330
|
-
detect: params.detect
|
|
331
|
-
})));
|
|
332
|
-
if (hasInvalidManagedTransportPort(resolvedTransports)) return {
|
|
333
|
-
config: params.cfg,
|
|
334
|
-
changes: [],
|
|
335
|
-
warnings: [PENDING_LEGACY_INVALID_PORT_WARNING]
|
|
336
|
-
};
|
|
337
|
-
const transports = allocateMigratedManagedPorts({
|
|
338
|
-
entries,
|
|
339
|
-
transports: resolvedTransports
|
|
340
|
-
});
|
|
341
|
-
if (transports.some((transport, index) => shouldMaterializeTransport(entries, index) && !transport)) return {
|
|
342
|
-
config: params.cfg,
|
|
343
|
-
changes: [],
|
|
344
|
-
warnings: [PENDING_LEGACY_TRANSPORT_WARNING]
|
|
345
|
-
};
|
|
346
|
-
const next = applyMigratedSignalTransports({
|
|
347
|
-
cfg: params.cfg,
|
|
348
|
-
entries,
|
|
349
|
-
transports
|
|
350
|
-
});
|
|
351
|
-
if (!next) return {
|
|
352
|
-
config: params.cfg,
|
|
353
|
-
changes: []
|
|
354
|
-
};
|
|
355
|
-
if (hasContainerTransportWithoutEffectiveAccount(next)) return {
|
|
356
|
-
config: params.cfg,
|
|
357
|
-
changes: [],
|
|
358
|
-
warnings: [PENDING_LEGACY_CONTAINER_ACCOUNT_WARNING]
|
|
359
|
-
};
|
|
360
|
-
return {
|
|
361
|
-
config: next,
|
|
362
|
-
changes: ["Migrated channels.signal transport settings to concrete account-owned transport objects."]
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
function migrateLegacySignalTransportConfigSync(cfg) {
|
|
296
|
+
function prepareLegacySignalTransportMigration(cfg) {
|
|
366
297
|
const signal = cfg.channels?.signal;
|
|
367
298
|
if (!isRecord(signal)) return {
|
|
368
299
|
config: cfg,
|
|
@@ -373,6 +304,7 @@ function migrateLegacySignalTransportConfigSync(cfg) {
|
|
|
373
304
|
config: cfg,
|
|
374
305
|
changes: []
|
|
375
306
|
};
|
|
307
|
+
const apiMode = signal.apiMode;
|
|
376
308
|
const entries = [signal, ...Object.values(accounts).filter(isRecord)];
|
|
377
309
|
const legacyResolutionEntries = entries.filter((_, index) => shouldMaterializeTransport(entries, index)).filter((entry) => !isSignalTransportConfig(entry.transport));
|
|
378
310
|
const invalidDerivedEndpoint = findInvalidLegacyDerivedEndpoint(legacyResolutionEntries, signal);
|
|
@@ -386,14 +318,14 @@ function migrateLegacySignalTransportConfigSync(cfg) {
|
|
|
386
318
|
changes: [],
|
|
387
319
|
warnings: [PENDING_LEGACY_INVALID_URL_WARNING]
|
|
388
320
|
};
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
321
|
+
return {
|
|
322
|
+
signal,
|
|
323
|
+
apiMode,
|
|
324
|
+
entries,
|
|
325
|
+
legacyResolutionEntries
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
function finishLegacySignalTransportMigration(cfg, entries, resolvedTransports) {
|
|
397
329
|
if (hasInvalidManagedTransportPort(resolvedTransports)) return {
|
|
398
330
|
config: cfg,
|
|
399
331
|
changes: [],
|
|
@@ -427,6 +359,36 @@ function migrateLegacySignalTransportConfigSync(cfg) {
|
|
|
427
359
|
changes: ["Migrated channels.signal transport settings to concrete account-owned transport objects."]
|
|
428
360
|
};
|
|
429
361
|
}
|
|
362
|
+
async function migrateLegacySignalTransportConfig(params) {
|
|
363
|
+
const prepared = prepareLegacySignalTransportMigration(params.cfg);
|
|
364
|
+
if ("config" in prepared) return prepared;
|
|
365
|
+
const { signal, apiMode, entries, legacyResolutionEntries } = prepared;
|
|
366
|
+
if (!params.detect && legacyResolutionEntries.some((entry) => requiresDetection(entry, signal, apiMode))) return {
|
|
367
|
+
config: params.cfg,
|
|
368
|
+
changes: [],
|
|
369
|
+
warnings: [PENDING_LEGACY_TRANSPORT_WARNING]
|
|
370
|
+
};
|
|
371
|
+
const resolvedTransports = await Promise.all(entries.map(async (entry, index) => !shouldMaterializeTransport(entries, index) ? void 0 : await resolveLegacyTransport({
|
|
372
|
+
entry,
|
|
373
|
+
parent: signal,
|
|
374
|
+
apiMode,
|
|
375
|
+
detect: params.detect
|
|
376
|
+
})));
|
|
377
|
+
return finishLegacySignalTransportMigration(params.cfg, entries, resolvedTransports);
|
|
378
|
+
}
|
|
379
|
+
function migrateLegacySignalTransportConfigSync(cfg) {
|
|
380
|
+
const prepared = prepareLegacySignalTransportMigration(cfg);
|
|
381
|
+
if ("config" in prepared) return prepared;
|
|
382
|
+
const { signal, apiMode, entries } = prepared;
|
|
383
|
+
return finishLegacySignalTransportMigration(cfg, entries, entries.map((entry, index) => {
|
|
384
|
+
if (!shouldMaterializeTransport(entries, index)) return;
|
|
385
|
+
return resolveLegacyTransportWithoutDetection({
|
|
386
|
+
entry,
|
|
387
|
+
parent: signal,
|
|
388
|
+
apiMode
|
|
389
|
+
});
|
|
390
|
+
}));
|
|
391
|
+
}
|
|
430
392
|
//#endregion
|
|
431
393
|
//#region extensions/signal/config-doctor-api.ts
|
|
432
394
|
const RETIRED_SIGNAL_ACCOUNT_TRANSPORT_FIELDS = [
|
|
@@ -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-D0SnglP4.js";
|
|
2
2
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
2
|
import { l as normalizeSignalTransportHost } from "./transport-policy-DxvSMHp9.js";
|
|
3
3
|
import { i as resolveSignalAccount, o as resolveSignalReplyToMode } from "./accounts-DO4HMqaK.js";
|
|
4
4
|
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.js";
|
|
5
5
|
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";
|
|
6
|
-
import { c as resolveSignalReactionLevel, f as isSignalNativeApprovalHandlerConfigured, i as getOptionalSignalRuntime, l as formatSignalMediaText, n as registerSignalReplyContext, o as materializeSignalPresentationFallback } from "./transport-detection-
|
|
7
|
-
import { t as SignalSseRejectionError } from "./client-
|
|
8
|
-
import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-adapter-
|
|
9
|
-
import { n as sendReactionSignal } from "./reaction-runtime-api-
|
|
10
|
-
import { i as maybeResolveSignalApprovalReaction, o as registerSignalApprovalReactionTargetForDeliveredPayload, s as resolveSignalApprovalConversationKey, t as addSignalApprovalReactionHintToStructuredPayload } from "./approval-reactions-
|
|
11
|
-
import { r as registerSignalQuestionReactionTargetForDeliveredPayload, t as maybeResolveSignalQuestionReaction } from "./question-reactions-
|
|
12
|
-
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-
|
|
6
|
+
import { c as resolveSignalReactionLevel, f as isSignalNativeApprovalHandlerConfigured, i as getOptionalSignalRuntime, l as formatSignalMediaText, n as registerSignalReplyContext, o as materializeSignalPresentationFallback } from "./transport-detection-BD__qywn.js";
|
|
7
|
+
import { t as SignalSseRejectionError } from "./client-B3C0ciqU.js";
|
|
8
|
+
import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-adapter-CNc5wzzs.js";
|
|
9
|
+
import { n as sendReactionSignal } from "./reaction-runtime-api-CWqDv5-q.js";
|
|
10
|
+
import { i as maybeResolveSignalApprovalReaction, o as registerSignalApprovalReactionTargetForDeliveredPayload, s as resolveSignalApprovalConversationKey, t as addSignalApprovalReactionHintToStructuredPayload } from "./approval-reactions-Cub0slPC.js";
|
|
11
|
+
import { r as registerSignalQuestionReactionTargetForDeliveredPayload, t as maybeResolveSignalQuestionReaction } from "./question-reactions-B06vyt3T.js";
|
|
12
|
+
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-BvWSfyNf.js";
|
|
13
13
|
import { bindIngressLifecycleToReplyOptions, createChannelIngressError, createChannelIngressMonitor, createChannelMessageReplyPipeline, resolveChannelStreamingBlockEnabled } from "openclaw/plugin-sdk/channel-outbound";
|
|
14
14
|
import { createChannelPairingChallengeIssuer } from "openclaw/plugin-sdk/channel-pairing";
|
|
15
15
|
import { resolveAgentRoute, resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
|
|
@@ -20,8 +20,8 @@ import { buildChannelInboundEventContext, buildMentionRegexes, createChannelInbo
|
|
|
20
20
|
import { canonicalizeBase64, detectMime, estimateBase64DecodedBytes, kindFromMime, saveMediaBuffer } from "openclaw/plugin-sdk/media-runtime";
|
|
21
21
|
import { collectErrorGraphCandidates, formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
22
22
|
import { ensurePortAvailable, extractErrorCode, formatErrorMessage as formatErrorMessage$1, resolvePinnedMainDmOwnerFromAllowlist } from "openclaw/plugin-sdk/security-runtime";
|
|
23
|
-
import { resolveChannelGroupPolicy, resolveChannelGroupRequireMention, resolveChannelGroups, resolveChannelGroupsConfigPath } from "openclaw/plugin-sdk/channel-policy";
|
|
24
23
|
import path from "node:path";
|
|
24
|
+
import { resolveChannelGroupPolicy, resolveChannelGroupRequireMention, resolveChannelGroups, resolveChannelGroupsConfigPath } from "openclaw/plugin-sdk/channel-policy";
|
|
25
25
|
import { registerChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
|
|
26
26
|
import { DEFAULT_GROUP_HISTORY_LIMIT, createChannelHistoryWindow } from "openclaw/plugin-sdk/reply-history";
|
|
27
27
|
import { deliverTextOrMediaReply, resolveSendableOutboundReplyParts } from "openclaw/plugin-sdk/reply-payload";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-
|
|
2
|
-
import { t as detectSignalTransport } from "./transport-detection-
|
|
3
|
-
import { n as signalRpcRequest, t as signalCheck } from "./client-adapter-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
+
import { t as detectSignalTransport } from "./transport-detection-BD__qywn.js";
|
|
3
|
+
import { n as signalRpcRequest, t as signalCheck } from "./client-adapter-CNc5wzzs.js";
|
|
4
4
|
import { runChannelProbe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
5
5
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
6
6
|
//#region extensions/signal/src/probe.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
2
|
import { i as resolveSignalDeliveredConversationKey } from "./approval-auth-pNCKKotV.js";
|
|
3
|
-
import { c as resolveSignalApprovalTargetAuthorKeys } from "./approval-reactions-
|
|
3
|
+
import { c as resolveSignalApprovalTargetAuthorKeys } from "./approval-reactions-Cub0slPC.js";
|
|
4
4
|
import { createQuestionReactionTargetStore, questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
6
6
|
//#region extensions/signal/src/question-reactions.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as resolveSignalAccount } from "./accounts-DO4HMqaK.js";
|
|
2
2
|
import { r as normalizeSignalReactionRecipient } from "./normalize-l_b99hap.js";
|
|
3
|
-
import { n as signalRpcRequest } from "./client-adapter-
|
|
3
|
+
import { n as signalRpcRequest } from "./client-adapter-CNc5wzzs.js";
|
|
4
4
|
import { t as resolveSignalRpcContext } from "./rpc-context-dXSy4NtF.js";
|
|
5
5
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
6
6
|
//#region extensions/signal/src/send-reactions.ts
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-
|
|
1
|
+
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-CWqDv5-q.js";
|
|
2
2
|
export { removeReactionSignal, sendReactionSignal };
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-DO4HMqaK.js";
|
|
2
2
|
import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
|
|
3
|
-
import { a as setSignalRuntime, c as resolveSignalReactionLevel, s as signalMessageActions } from "./transport-detection-
|
|
4
|
-
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-
|
|
5
|
-
import { n as SignalConfigSchema } from "./config-schema-
|
|
6
|
-
import { i as installSignalCli } from "./install-signal-cli-
|
|
7
|
-
import { t as monitorSignalProvider } from "./monitor-
|
|
8
|
-
import { t as sendMessageSignal } from "./send-
|
|
9
|
-
import { t as probeSignal } from "./probe-
|
|
3
|
+
import { a as setSignalRuntime, c as resolveSignalReactionLevel, s as signalMessageActions } from "./transport-detection-BD__qywn.js";
|
|
4
|
+
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-CWqDv5-q.js";
|
|
5
|
+
import { n as SignalConfigSchema } from "./config-schema-DfEbpMVQ.js";
|
|
6
|
+
import { i as installSignalCli } from "./install-signal-cli-QlEIfWBv.js";
|
|
7
|
+
import { t as monitorSignalProvider } from "./monitor-CokYfKOk.js";
|
|
8
|
+
import { t as sendMessageSignal } from "./send-BvWSfyNf.js";
|
|
9
|
+
import { t as probeSignal } from "./probe-Bh9f0rRO.js";
|
|
10
10
|
import { resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/account-helpers";
|
|
11
11
|
import { PAIRING_APPROVED_MESSAGE } from "openclaw/plugin-sdk/channel-status";
|
|
12
12
|
import { buildBaseAccountStatusSnapshot, buildBaseChannelStatusSummary, collectStatusIssuesFromLastError, createDefaultChannelRuntimeState } from "openclaw/plugin-sdk/status-helpers";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as resolveSignalAccount } from "./accounts-DO4HMqaK.js";
|
|
2
2
|
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.js";
|
|
3
|
-
import { n as registerSignalReplyContext, u as markdownToSignalText } from "./transport-detection-
|
|
4
|
-
import { n as signalRpcRequest } from "./client-adapter-
|
|
3
|
+
import { n as registerSignalReplyContext, u as markdownToSignalText } from "./transport-detection-BD__qywn.js";
|
|
4
|
+
import { n as signalRpcRequest } from "./client-adapter-CNc5wzzs.js";
|
|
5
5
|
import { t as resolveSignalRpcContext } from "./rpc-context-dXSy4NtF.js";
|
|
6
6
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
7
7
|
import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-
|
|
1
|
+
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-BvWSfyNf.js";
|
|
2
2
|
export { sendMessageSignal, sendTypingSignal };
|
|
@@ -2,7 +2,7 @@ import { u as normalizeSignalTransportUrl } from "./transport-policy-DxvSMHp9.js
|
|
|
2
2
|
import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-DO4HMqaK.js";
|
|
3
3
|
import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient } from "./normalize-l_b99hap.js";
|
|
4
4
|
import { n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-pNCKKotV.js";
|
|
5
|
-
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-
|
|
5
|
+
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-CWqDv5-q.js";
|
|
6
6
|
import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
|
|
7
7
|
import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
|
|
8
8
|
import { parseAgentSessionKey } from "openclaw/plugin-sdk/routing";
|
|
@@ -73,7 +73,7 @@ const signalApproval = createApproverRestrictedNativeApprovalCapabilityFromForwa
|
|
|
73
73
|
approvalKind,
|
|
74
74
|
request
|
|
75
75
|
}),
|
|
76
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
76
|
+
load: async () => (await import("./approval-handler.runtime-X6DXgK_3.js")).signalApprovalNativeRuntime
|
|
77
77
|
})
|
|
78
78
|
});
|
|
79
79
|
const signalApprovalRouting = signalApproval.routing;
|
|
@@ -522,7 +522,7 @@ const DEFAULT_PROBE_TIMEOUT_MS = 1e4;
|
|
|
522
522
|
async function detectSignalTransport(params) {
|
|
523
523
|
const url = normalizeSignalTransportUrl(params.url);
|
|
524
524
|
const timeoutMs = params.timeoutMs ?? DEFAULT_PROBE_TIMEOUT_MS;
|
|
525
|
-
const probes = params.probeNative && params.probeContainer ? void 0 : await import("./transport-probes.runtime-
|
|
525
|
+
const probes = params.probeNative && params.probeContainer ? void 0 : await import("./transport-probes.runtime-DV7x4VWu.js");
|
|
526
526
|
const probeNative = params.probeNative ?? probes?.nativeCheck;
|
|
527
527
|
const probeContainer = params.probeContainer ?? probes?.containerCheck;
|
|
528
528
|
if (!probeNative || !probeContainer) throw new Error("Signal transport probes are unavailable");
|
package/dist/{transport-detection.runtime-DYuvIa7s.js → transport-detection.runtime-c9q3r3AM.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as detectSignalTransport } from "./transport-detection-
|
|
1
|
+
import { t as detectSignalTransport } from "./transport-detection-BD__qywn.js";
|
|
2
2
|
export { detectSignalTransport };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as containerCheck, n as signalCheck } from "./client-
|
|
1
|
+
import { a as containerCheck, n as signalCheck } from "./client-B3C0ciqU.js";
|
|
2
2
|
export { containerCheck, signalCheck as nativeCheck };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/signal",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.3",
|
|
4
4
|
"description": "OpenClaw Signal channel plugin",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -93,10 +93,10 @@
|
|
|
93
93
|
"allowInvalidConfigRecovery": true
|
|
94
94
|
},
|
|
95
95
|
"compat": {
|
|
96
|
-
"pluginApi": ">=2026.9.
|
|
96
|
+
"pluginApi": ">=2026.9.3"
|
|
97
97
|
},
|
|
98
98
|
"build": {
|
|
99
|
-
"openclawVersion": "2026.9.
|
|
99
|
+
"openclawVersion": "2026.9.3",
|
|
100
100
|
"bundledDist": false
|
|
101
101
|
},
|
|
102
102
|
"release": {
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"README.md"
|
|
119
119
|
],
|
|
120
120
|
"peerDependencies": {
|
|
121
|
-
"openclaw": ">=2026.9.
|
|
121
|
+
"openclaw": ">=2026.9.3"
|
|
122
122
|
},
|
|
123
123
|
"peerDependenciesMeta": {
|
|
124
124
|
"openclaw": {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
2
|
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
3
3
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
4
|
+
import path from "node:path";
|
|
4
5
|
import { CONFIG_DIR, extractArchive, resolveBrewExecutable } from "openclaw/plugin-sdk/setup-tools";
|
|
5
6
|
import { createWriteStream } from "node:fs";
|
|
6
7
|
import fs from "node:fs/promises";
|
|
7
|
-
import path from "node:path";
|
|
8
8
|
import { Readable, Transform } from "node:stream";
|
|
9
9
|
import { pipeline } from "node:stream/promises";
|
|
10
10
|
import { readProviderJsonObjectResponse } from "openclaw/plugin-sdk/provider-http";
|