@openclaw/signal 2026.8.2 → 2026.9.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/api.js +6 -6
- package/dist/{approval-handler.runtime-C5SsJ5ko.js → approval-handler.runtime-DvZd_IWj.js} +7 -3
- package/dist/{approval-reactions-C5MzjYo0.js → approval-reactions-Cno-4mmH.js} +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel-CU23CLyl.js → channel-sL5Cf1nT.js} +10 -10
- package/dist/{channel.runtime-CdtB9bsX.js → channel.runtime-D2a4nSLo.js} +1 -1
- package/dist/{client-DtHac18U.js → client-BmpTN7R3.js} +17 -10
- package/dist/{client-adapter-E06RAM6-.js → client-adapter-CDyW9LrQ.js} +1 -1
- package/dist/{monitor-CfRPorq9.js → monitor-BPOcRufA.js} +22 -7
- package/dist/{probe-CiVqVfko.js → probe-Bjs1Yd79.js} +2 -2
- package/dist/{question-reactions-Bw30cacw.js → question-reactions-DJfSmeYo.js} +1 -1
- package/dist/{reaction-runtime-api-BUy1VGT6.js → reaction-runtime-api-7FQFT_qb.js} +1 -1
- package/dist/reaction-runtime-api.js +1 -1
- package/dist/runtime-api.js +5 -5
- package/dist/{send-G6zfBh13.js → send-DF4T9tXZ.js} +2 -2
- package/dist/{send.runtime-CmnwC2vm.js → send.runtime-DHPi6R_z.js} +1 -1
- package/dist/{transport-detection-DROVGqJp.js → transport-detection-CbPFIo0i.js} +8 -4
- package/dist/{transport-detection.runtime-BD5NyqbG.js → transport-detection.runtime-B81flHI8.js} +1 -1
- package/dist/transport-probes.runtime-B7kr_6Zu.js +2 -0
- package/package.json +4 -4
- package/dist/transport-probes.runtime-BMxOPSFh.js +0 -2
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-
|
|
4
|
+
import { c as resolveSignalReactionLevel, d as markdownToSignalTextChunks, s as signalMessageActions, t as detectSignalTransport, u as markdownToSignalText } from "./transport-detection-CbPFIo0i.js";
|
|
5
|
+
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-7FQFT_qb.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-sL5Cf1nT.js";
|
|
7
7
|
import { i as installSignalCli } from "./install-signal-cli-7tEL37_j.js";
|
|
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-
|
|
8
|
+
import { t as monitorSignalProvider } from "./monitor-BPOcRufA.js";
|
|
9
|
+
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-DF4T9tXZ.js";
|
|
10
|
+
import { t as probeSignal } from "./probe-Bjs1Yd79.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 { i as resolveSignalTarget } from "./approval-auth-CkljhI65.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-Cno-4mmH.js";
|
|
5
|
+
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-DF4T9tXZ.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";
|
|
@@ -23,7 +23,11 @@ function buildPendingPayload(params) {
|
|
|
23
23
|
return buildApprovalReactionPendingContent(params);
|
|
24
24
|
}
|
|
25
25
|
const signalApprovalNativeRuntime = createChannelApprovalNativeRuntimeAdapter({
|
|
26
|
-
eventKinds: [
|
|
26
|
+
eventKinds: [
|
|
27
|
+
"exec",
|
|
28
|
+
"plugin",
|
|
29
|
+
"system-agent"
|
|
30
|
+
],
|
|
27
31
|
availability: {
|
|
28
32
|
isConfigured: ({ context }) => Boolean(context),
|
|
29
33
|
shouldHandle: ({ context }) => Boolean(context)
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
|
2
2
|
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.js";
|
|
3
3
|
import { i as resolveSignalTarget, n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-CkljhI65.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-CbPFIo0i.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";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as signalPlugin } from "./channel-
|
|
1
|
+
import { t as signalPlugin } from "./channel-sL5Cf1nT.js";
|
|
2
2
|
export { signalPlugin };
|
|
@@ -3,7 +3,7 @@ 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 { i as resolveSignalTarget, r as listSignalAliasDirectoryEntries } from "./approval-auth-CkljhI65.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-
|
|
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-CbPFIo0i.js";
|
|
7
7
|
import { i as migrateLegacySignalTransportConfig, n as normalizeCompatibilityConfig, r as clearLegacySignalTransportFieldsForAccount } from "./doctor-contract-api-C18u1hW0.js";
|
|
8
8
|
import { t as SignalChannelConfigSchema } from "./config-schema-CHihQTOp.js";
|
|
9
9
|
import { describeAccountSnapshot, resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/account-helpers";
|
|
@@ -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-B7kr_6Zu.js")).containerCheck)(resolved.baseUrl, timeoutMs, params.account);
|
|
218
|
+
return (params.probeNative ?? (await import("./transport-probes.runtime-B7kr_6Zu.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-B81flHI8.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-D2a4nSLo.js");
|
|
587
587
|
}
|
|
588
588
|
const signalSetupWizard = createSignalSetupWizardProxy(async () => (await loadSignalChannelRuntime()).signalSetupWizard);
|
|
589
589
|
const signalConfigAdapter = {
|
|
@@ -668,10 +668,10 @@ function createSignalPluginBase(params) {
|
|
|
668
668
|
}
|
|
669
669
|
//#endregion
|
|
670
670
|
//#region extensions/signal/src/channel.ts
|
|
671
|
-
const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-
|
|
672
|
-
const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-
|
|
673
|
-
const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-
|
|
674
|
-
const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-
|
|
671
|
+
const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-BPOcRufA.js").then((n) => n.n));
|
|
672
|
+
const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-Bjs1Yd79.js").then((n) => n.n));
|
|
673
|
+
const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send.runtime-DHPi6R_z.js"));
|
|
674
|
+
const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-Cno-4mmH.js").then((n) => n.n));
|
|
675
675
|
async function resolveSignalSendContext(params) {
|
|
676
676
|
return {
|
|
677
677
|
send: resolveOutboundSendDep(params.deps, "signal") ?? (await loadSignalSendRuntime()).sendMessageSignal,
|
|
@@ -899,7 +899,7 @@ async function registerDeliveredSignalApprovalPayloadForReactions(params) {
|
|
|
899
899
|
const targetAuthor = normalizeOptionalString(account.config.account);
|
|
900
900
|
const targetAuthorUuid = normalizeOptionalString(account.config.accountUuid);
|
|
901
901
|
if (!targetAuthor && !targetAuthorUuid) return;
|
|
902
|
-
const { registerSignalQuestionReactionTargetForDeliveredPayload } = await import("./question-reactions-
|
|
902
|
+
const { registerSignalQuestionReactionTargetForDeliveredPayload } = await import("./question-reactions-DJfSmeYo.js").then((n) => n.n);
|
|
903
903
|
registerSignalQuestionReactionTargetForDeliveredPayload({
|
|
904
904
|
cfg: params.cfg,
|
|
905
905
|
target: {
|
|
@@ -1,5 +1,5 @@
|
|
|
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-
|
|
2
|
+
import { c as signalNumberTextInput, i as createSignalCliPathTextInput, o as signalCompletionNote, s as signalDmPolicy } from "./channel-sL5Cf1nT.js";
|
|
3
3
|
import { i as installSignalCli } from "./install-signal-cli-7tEL37_j.js";
|
|
4
4
|
import { detectBinary } from "openclaw/plugin-sdk/setup-tools";
|
|
5
5
|
import { createDetectedBinaryStatus, createSetupTranslator, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
|
|
@@ -100,7 +100,7 @@ async function readSignalRestText(res, bodyIdleTimeoutMs, bodyTimeoutMs) {
|
|
|
100
100
|
onTimeout: signalRestRequestTimeoutError,
|
|
101
101
|
onOverflow: ({ maxBytes }) => /* @__PURE__ */ new Error(`Signal REST: text response exceeds ${maxBytes} bytes`)
|
|
102
102
|
});
|
|
103
|
-
return new TextDecoder().decode(bytes);
|
|
103
|
+
return new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
104
104
|
}
|
|
105
105
|
async function readSignalRestErrorText(res, bodyIdleTimeoutMs, bodyTimeoutMs) {
|
|
106
106
|
return (await readResponseTextPrefix(res, SIGNAL_REST_ERROR_RESPONSE_MAX_BYTES, {
|
|
@@ -632,6 +632,13 @@ async function containerRpcRequest(method, params, opts) {
|
|
|
632
632
|
}
|
|
633
633
|
//#endregion
|
|
634
634
|
//#region extensions/signal/src/client.ts
|
|
635
|
+
/** Thrown when the native SSE endpoint rejects the request with a non-2xx HTTP status. */
|
|
636
|
+
var SignalSseRejectionError = class extends Error {
|
|
637
|
+
constructor(status, statusText) {
|
|
638
|
+
super(`Signal SSE failed (${status} ${statusText})`);
|
|
639
|
+
this.status = status;
|
|
640
|
+
}
|
|
641
|
+
};
|
|
635
642
|
const DEFAULT_TIMEOUT_MS = 1e4;
|
|
636
643
|
const DEFAULT_SIGNAL_HTTP_RESPONSE_MAX_BYTES = 1048576;
|
|
637
644
|
const MAX_SIGNAL_SSE_BUFFER_BYTES = 1048576;
|
|
@@ -683,7 +690,7 @@ function normalizeSignalSseTimeoutMs(timeoutMs) {
|
|
|
683
690
|
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) return null;
|
|
684
691
|
return resolveTimerTimeoutMs(timeoutMs, DEFAULT_TIMEOUT_MS);
|
|
685
692
|
}
|
|
686
|
-
function
|
|
693
|
+
function requestSignalHttp(url, options) {
|
|
687
694
|
assertSignalHttpProtocol(url, "HTTP");
|
|
688
695
|
const timeoutMs = resolveTimerTimeoutMs(options.timeoutMs, DEFAULT_TIMEOUT_MS);
|
|
689
696
|
const client = url.protocol === "https:" ? https : http;
|
|
@@ -732,8 +739,7 @@ function requestSignalHttpText(url, options) {
|
|
|
732
739
|
res.on("end", () => {
|
|
733
740
|
resolveOnce({
|
|
734
741
|
status: res.statusCode ?? 0,
|
|
735
|
-
|
|
736
|
-
text: Buffer$1.concat(chunks).toString("utf8")
|
|
742
|
+
body: Buffer$1.concat(chunks)
|
|
737
743
|
});
|
|
738
744
|
});
|
|
739
745
|
});
|
|
@@ -753,7 +759,7 @@ async function signalRpcRequest(method, params, opts) {
|
|
|
753
759
|
params,
|
|
754
760
|
id
|
|
755
761
|
});
|
|
756
|
-
const res = await
|
|
762
|
+
const res = await requestSignalHttp(resolveSignalEndpointUrl(opts.baseUrl, "/api/v1/rpc"), {
|
|
757
763
|
method: "POST",
|
|
758
764
|
headers: {
|
|
759
765
|
"Content-Type": "application/json",
|
|
@@ -764,8 +770,9 @@ async function signalRpcRequest(method, params, opts) {
|
|
|
764
770
|
maxResponseBytes: opts.maxResponseBytes
|
|
765
771
|
});
|
|
766
772
|
if (res.status === 201) return;
|
|
767
|
-
|
|
768
|
-
|
|
773
|
+
const text = new TextDecoder("utf-8", { fatal: true }).decode(res.body);
|
|
774
|
+
if (!text) throw new Error(`Signal RPC empty response (status ${res.status})`);
|
|
775
|
+
const parsed = parseSignalRpcResponse(text, res.status);
|
|
769
776
|
if (parsed.error) {
|
|
770
777
|
const code = parsed.error.code ?? "unknown";
|
|
771
778
|
const msg = parsed.error.message ?? "Signal RPC error";
|
|
@@ -775,7 +782,7 @@ async function signalRpcRequest(method, params, opts) {
|
|
|
775
782
|
}
|
|
776
783
|
async function signalCheck(baseUrl, timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
777
784
|
try {
|
|
778
|
-
const res = await
|
|
785
|
+
const res = await requestSignalHttp(resolveSignalEndpointUrl(baseUrl, "/api/v1/check"), {
|
|
779
786
|
method: "GET",
|
|
780
787
|
timeoutMs
|
|
781
788
|
});
|
|
@@ -830,7 +837,7 @@ function openSignalEventStream(url, abortSignal, timeoutMs = DEFAULT_TIMEOUT_MS)
|
|
|
830
837
|
const status = res.statusCode ?? 0;
|
|
831
838
|
if (status < 200 || status >= 300) {
|
|
832
839
|
res.resume();
|
|
833
|
-
rejectOnce(
|
|
840
|
+
rejectOnce(new SignalSseRejectionError(status, res.statusMessage || "error"));
|
|
834
841
|
return;
|
|
835
842
|
}
|
|
836
843
|
if (settled) {
|
|
@@ -927,4 +934,4 @@ async function streamSignalEvents(params) {
|
|
|
927
934
|
await flushEvent();
|
|
928
935
|
}
|
|
929
936
|
//#endregion
|
|
930
|
-
export {
|
|
937
|
+
export { containerCheck as a, streamSignalEvents as i, signalCheck as n, containerRpcRequest as o, signalRpcRequest as r, streamContainerEvents as s, SignalSseRejectionError as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as
|
|
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-BmpTN7R3.js";
|
|
2
2
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
3
3
|
//#region extensions/signal/src/client-adapter.ts
|
|
4
4
|
/**
|
|
@@ -3,12 +3,13 @@ import { l as normalizeSignalTransportHost } from "./transport-policy-DxvSMHp9.j
|
|
|
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 {
|
|
8
|
-
import { n as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
6
|
+
import { c as resolveSignalReactionLevel, f as isSignalNativeApprovalHandlerConfigured, i as getOptionalSignalRuntime, l as formatSignalMediaText, n as registerSignalReplyContext, o as materializeSignalPresentationFallback } from "./transport-detection-CbPFIo0i.js";
|
|
7
|
+
import { t as SignalSseRejectionError } from "./client-BmpTN7R3.js";
|
|
8
|
+
import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-adapter-CDyW9LrQ.js";
|
|
9
|
+
import { n as sendReactionSignal } from "./reaction-runtime-api-7FQFT_qb.js";
|
|
10
|
+
import { i as maybeResolveSignalApprovalReaction, o as registerSignalApprovalReactionTargetForDeliveredPayload, s as resolveSignalApprovalConversationKey, t as addSignalApprovalReactionHintToStructuredPayload } from "./approval-reactions-Cno-4mmH.js";
|
|
11
|
+
import { r as registerSignalQuestionReactionTargetForDeliveredPayload, t as maybeResolveSignalQuestionReaction } from "./question-reactions-DJfSmeYo.js";
|
|
12
|
+
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-DF4T9tXZ.js";
|
|
12
13
|
import { bindIngressLifecycleToReplyOptions, createChannelIngressError, createChannelIngressMonitor, createChannelMessageReplyPipeline, resolveChannelStreamingBlockEnabled } from "openclaw/plugin-sdk/channel-outbound";
|
|
13
14
|
import { createChannelPairingChallengeIssuer } from "openclaw/plugin-sdk/channel-pairing";
|
|
14
15
|
import { resolveAgentRoute, resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
|
|
@@ -45,7 +46,7 @@ import { upsertChannelPairingRequest } from "openclaw/plugin-sdk/conversation-ru
|
|
|
45
46
|
import { listChatCommands, maybeResolveTextAlias, normalizeCommandBody } from "openclaw/plugin-sdk/command-auth-native";
|
|
46
47
|
import { isAbortRequestText } from "openclaw/plugin-sdk/command-primitives-runtime";
|
|
47
48
|
import { resolveChannelContextVisibilityMode } from "openclaw/plugin-sdk/context-visibility-runtime";
|
|
48
|
-
import { channelReadyPatch } from "openclaw/plugin-sdk/gateway-runtime";
|
|
49
|
+
import { channelBlockedPatch, channelReadyPatch } from "openclaw/plugin-sdk/gateway-runtime";
|
|
49
50
|
//#region extensions/signal/src/daemon.ts
|
|
50
51
|
const SIGNAL_DAEMON_STOP_KILL_TIMEOUT_MS = 1500;
|
|
51
52
|
function formatSignalDaemonExit(exit) {
|
|
@@ -1684,6 +1685,14 @@ const DEFAULT_RECONNECT_POLICY = {
|
|
|
1684
1685
|
factor: 2,
|
|
1685
1686
|
jitter: .2
|
|
1686
1687
|
};
|
|
1688
|
+
function isPermanentSignalSseRejection(error) {
|
|
1689
|
+
if (!(error instanceof SignalSseRejectionError)) return false;
|
|
1690
|
+
return error.status >= 400 && error.status < 500 && ![
|
|
1691
|
+
408,
|
|
1692
|
+
425,
|
|
1693
|
+
429
|
|
1694
|
+
].includes(error.status);
|
|
1695
|
+
}
|
|
1687
1696
|
function publishSignalRecovering(statusSink, lastError) {
|
|
1688
1697
|
statusSink?.({
|
|
1689
1698
|
connected: false,
|
|
@@ -1731,6 +1740,12 @@ async function runSignalSseLoop({ baseUrl, account, abortSignal, runtime, onEven
|
|
|
1731
1740
|
} catch (err) {
|
|
1732
1741
|
if (abortSignal?.aborted) return;
|
|
1733
1742
|
runtime.error?.(`Signal stream error: ${String(err)}`);
|
|
1743
|
+
if (isPermanentSignalSseRejection(err)) {
|
|
1744
|
+
const lastError = `Signal daemon rejected the event stream: ${err.message}. Check the configured account and daemon URL, fix the daemon or proxy response, then restart the channel.`;
|
|
1745
|
+
runtime.log?.(`Signal reconnect stopped: ${lastError}`);
|
|
1746
|
+
statusSink?.(channelBlockedPatch(lastError, { connected: false }));
|
|
1747
|
+
return;
|
|
1748
|
+
}
|
|
1734
1749
|
publishSignalRecovering(statusSink, String(err));
|
|
1735
1750
|
reconnectAttempts += 1;
|
|
1736
1751
|
const delayMs = computeBackoff(reconnectPolicy, reconnectAttempts);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { t as detectSignalTransport } from "./transport-detection-
|
|
3
|
-
import { n as signalRpcRequest, t as signalCheck } from "./client-adapter-
|
|
2
|
+
import { t as detectSignalTransport } from "./transport-detection-CbPFIo0i.js";
|
|
3
|
+
import { n as signalRpcRequest, t as signalCheck } from "./client-adapter-CDyW9LrQ.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
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
2
|
import { i as resolveSignalTarget } from "./approval-auth-CkljhI65.js";
|
|
3
|
-
import { c as resolveSignalApprovalTargetAuthorKeys, s as resolveSignalApprovalConversationKey } from "./approval-reactions-
|
|
3
|
+
import { c as resolveSignalApprovalTargetAuthorKeys, s as resolveSignalApprovalConversationKey } from "./approval-reactions-Cno-4mmH.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-CDyW9LrQ.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-7FQFT_qb.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-
|
|
3
|
+
import { a as setSignalRuntime, c as resolveSignalReactionLevel, s as signalMessageActions } from "./transport-detection-CbPFIo0i.js";
|
|
4
|
+
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-7FQFT_qb.js";
|
|
5
5
|
import { n as SignalConfigSchema } from "./config-schema-CHihQTOp.js";
|
|
6
6
|
import { i as installSignalCli } from "./install-signal-cli-7tEL37_j.js";
|
|
7
|
-
import { t as monitorSignalProvider } from "./monitor-
|
|
8
|
-
import { t as sendMessageSignal } from "./send-
|
|
9
|
-
import { t as probeSignal } from "./probe-
|
|
7
|
+
import { t as monitorSignalProvider } from "./monitor-BPOcRufA.js";
|
|
8
|
+
import { t as sendMessageSignal } from "./send-DF4T9tXZ.js";
|
|
9
|
+
import { t as probeSignal } from "./probe-Bjs1Yd79.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-CbPFIo0i.js";
|
|
4
|
+
import { n as signalRpcRequest } from "./client-adapter-CDyW9LrQ.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-DF4T9tXZ.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-CkljhI65.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-7FQFT_qb.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";
|
|
@@ -58,7 +58,11 @@ const signalApproval = createApproverRestrictedNativeApprovalCapabilityFromForwa
|
|
|
58
58
|
}).manualFallbackPayload }
|
|
59
59
|
},
|
|
60
60
|
createNativeRuntime: (routing) => createLazyChannelApprovalNativeRuntimeAdapter({
|
|
61
|
-
eventKinds: [
|
|
61
|
+
eventKinds: [
|
|
62
|
+
"exec",
|
|
63
|
+
"plugin",
|
|
64
|
+
"system-agent"
|
|
65
|
+
],
|
|
62
66
|
isConfigured: ({ cfg, accountId, context }) => Boolean(context) && routing.isNativeApprovalHandlerConfigured({
|
|
63
67
|
cfg,
|
|
64
68
|
accountId
|
|
@@ -69,7 +73,7 @@ const signalApproval = createApproverRestrictedNativeApprovalCapabilityFromForwa
|
|
|
69
73
|
approvalKind,
|
|
70
74
|
request
|
|
71
75
|
}),
|
|
72
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
76
|
+
load: async () => (await import("./approval-handler.runtime-DvZd_IWj.js")).signalApprovalNativeRuntime
|
|
73
77
|
})
|
|
74
78
|
});
|
|
75
79
|
const signalApprovalRouting = signalApproval.routing;
|
|
@@ -518,7 +522,7 @@ const DEFAULT_PROBE_TIMEOUT_MS = 1e4;
|
|
|
518
522
|
async function detectSignalTransport(params) {
|
|
519
523
|
const url = normalizeSignalTransportUrl(params.url);
|
|
520
524
|
const timeoutMs = params.timeoutMs ?? DEFAULT_PROBE_TIMEOUT_MS;
|
|
521
|
-
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-B7kr_6Zu.js");
|
|
522
526
|
const probeNative = params.probeNative ?? probes?.nativeCheck;
|
|
523
527
|
const probeContainer = params.probeContainer ?? probes?.containerCheck;
|
|
524
528
|
if (!probeNative || !probeContainer) throw new Error("Signal transport probes are unavailable");
|
package/dist/{transport-detection.runtime-BD5NyqbG.js → transport-detection.runtime-B81flHI8.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as detectSignalTransport } from "./transport-detection-
|
|
1
|
+
import { t as detectSignalTransport } from "./transport-detection-CbPFIo0i.js";
|
|
2
2
|
export { detectSignalTransport };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/signal",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.9.1",
|
|
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.
|
|
96
|
+
"pluginApi": ">=2026.9.1"
|
|
97
97
|
},
|
|
98
98
|
"build": {
|
|
99
|
-
"openclawVersion": "2026.
|
|
99
|
+
"openclawVersion": "2026.9.1",
|
|
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.
|
|
121
|
+
"openclaw": ">=2026.9.1"
|
|
122
122
|
},
|
|
123
123
|
"peerDependenciesMeta": {
|
|
124
124
|
"openclaw": {
|