@openclaw/signal 2026.7.2-beta.7 → 2026.8.1-beta.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.
Files changed (33) hide show
  1. package/dist/{accounts-DrStJjiK.js → accounts-DO4HMqaK.js} +2 -2
  2. package/dist/api.js +9 -9
  3. package/dist/{runtime-JPrGlV7h.js → approval-auth-BY6uuApE.js} +2 -9
  4. package/dist/{approval-handler.runtime-C-XYgcxE.js → approval-handler.runtime-Co6EVTqY.js} +4 -4
  5. package/dist/{approval-reactions-DtL47gSK.js → approval-reactions-cs3Ox9Ow.js} +67 -189
  6. package/dist/channel-config-api.js +1 -1
  7. package/dist/channel-plugin-api.js +1 -1
  8. package/dist/{channel-CmbWaYlm.js → channel-zIopSllO.js} +64 -99
  9. package/dist/{channel.runtime-BRDaqr5-.js → channel.runtime-CpDBElG8.js} +3 -3
  10. package/dist/{client-BazXTH7O.js → client-CvnR8_XA.js} +31 -34
  11. package/dist/{client-adapter-mXGeEHQJ.js → client-adapter-D9SNPaNx.js} +13 -6
  12. package/dist/{config-schema-Y3dFGwdL.js → config-schema-CkMIK7zp.js} +4 -5
  13. package/dist/contract-api.js +1 -1
  14. package/dist/{doctor-contract-api-Dcte-QYB.js → doctor-contract-api-Dnp5eQQJ.js} +19 -22
  15. package/dist/doctor-contract-api.js +1 -1
  16. package/dist/{install-signal-cli-qJF7iC4h.js → install-signal-cli-Cpiyk0k1.js} +8 -5
  17. package/dist/{monitor-BvIzkrYW.js → monitor-BLFIkpH0.js} +305 -142
  18. package/dist/{probe-Br9abaGp.js → probe-B0E_cXQw.js} +23 -7
  19. package/dist/question-reactions-BaatFqJ7.js +80 -0
  20. package/dist/{reaction-runtime-api-BjeDyKcz.js → reaction-runtime-api-YGD6hhDh.js} +10 -21
  21. package/dist/reaction-runtime-api.js +1 -1
  22. package/dist/rpc-context-dXSy4NtF.js +15 -0
  23. package/dist/runtime-api.js +8 -9
  24. package/dist/{send-B_Ks4MZr.js → send-BNl5folj.js} +14 -23
  25. package/dist/{send.runtime-CbuXycZT.js → send.runtime-DnMoKk27.js} +1 -1
  26. package/dist/{transport-detection-Da06-LOL.js → transport-detection-D_M79R5f.js} +60 -148
  27. package/dist/{transport-detection.runtime-D_190UUL.js → transport-detection.runtime-DKuuIHvf.js} +1 -1
  28. package/dist/{transport-probes.runtime-CV6Qs0Og.js → transport-probes.runtime-BsJdp0oI.js} +1 -1
  29. package/openclaw.plugin.json +4 -1
  30. package/package.json +5 -5
  31. package/dist/approval-resolver-B3m0D2R0.js +0 -16
  32. package/dist/question-reactions-Ds48FtEu.js +0 -109
  33. package/dist/rpc-context-CZUoE0-A.js +0 -17
@@ -1,16 +0,0 @@
1
- import { isApprovalNotFoundError } from "openclaw/plugin-sdk/error-runtime";
2
- import { resolveApprovalOverGateway } from "openclaw/plugin-sdk/approval-gateway-runtime";
3
- //#region extensions/signal/src/approval-resolver.ts
4
- async function resolveSignalApproval(params) {
5
- return await resolveApprovalOverGateway({
6
- cfg: params.cfg,
7
- approvalId: params.approvalId,
8
- approvalKind: params.approvalKind,
9
- decision: params.decision,
10
- senderId: params.senderId,
11
- gatewayUrl: params.gatewayUrl,
12
- clientDisplayName: `Signal approval (${params.senderId?.trim() || "unknown"})`
13
- });
14
- }
15
- //#endregion
16
- export { isApprovalNotFoundError, resolveSignalApproval };
@@ -1,109 +0,0 @@
1
- import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
- import { o as resolveSignalTarget } from "./runtime-JPrGlV7h.js";
3
- import { l as resolveSignalApprovalConversationKey, u as resolveSignalApprovalTargetAuthorKeys } from "./approval-reactions-DtL47gSK.js";
4
- import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
5
- import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
6
- //#region extensions/signal/src/question-reactions.ts
7
- var question_reactions_exports = /* @__PURE__ */ __exportAll({
8
- maybeResolveSignalQuestionReaction: () => maybeResolveSignalQuestionReaction,
9
- registerSignalQuestionReactionTargetForDeliveredPayload: () => registerSignalQuestionReactionTargetForDeliveredPayload
10
- });
11
- const TARGET_TTL_MS = 1440 * 60 * 1e3;
12
- const targets = /* @__PURE__ */ new Map();
13
- function storeTarget(key, binding, targetAuthorKeys) {
14
- const existing = targets.get(key);
15
- if (existing) clearTimeout(existing.cleanupTimer);
16
- const target = {
17
- ...binding,
18
- targetAuthorKeys,
19
- terminal: false,
20
- expiresAtMs: Date.now() + TARGET_TTL_MS,
21
- cleanupTimer: setTimeout(() => {
22
- if (targets.get(key) === target) targets.delete(key);
23
- }, TARGET_TTL_MS)
24
- };
25
- target.cleanupTimer.unref?.();
26
- targets.set(key, target);
27
- questionGatewayRuntime.registerChannelDelivery({
28
- questionId: binding.questionId,
29
- deliveryId: `signal-reaction:${key}`,
30
- finalize: () => {
31
- target.terminal = true;
32
- }
33
- });
34
- }
35
- function buildKey(accountId, conversationKey, messageId) {
36
- const values = [
37
- accountId,
38
- conversationKey,
39
- messageId
40
- ].map((value) => value.trim());
41
- return values.every(Boolean) ? values.join(":") : null;
42
- }
43
- function resolveConversationKey(params) {
44
- try {
45
- return resolveSignalTarget({
46
- cfg: params.cfg,
47
- accountId: params.accountId,
48
- input: params.to
49
- })?.to ?? resolveSignalApprovalConversationKey(params.to);
50
- } catch {
51
- return resolveSignalApprovalConversationKey(params.to);
52
- }
53
- }
54
- function registerSignalQuestionReactionTargetForDeliveredPayload(params) {
55
- const binding = questionGatewayRuntime.readReactionBinding(params.payload);
56
- if (params.target.channel !== "signal" || !binding) return false;
57
- const conversationKey = resolveConversationKey({
58
- cfg: params.cfg,
59
- ...params.target
60
- });
61
- const targetAuthorKeys = resolveSignalApprovalTargetAuthorKeys(params);
62
- if (!conversationKey || targetAuthorKeys.length === 0) return false;
63
- const accountId = normalizeAccountId(params.target.accountId ?? void 0);
64
- let registered = false;
65
- for (const result of params.results) {
66
- const messageId = result.channel === "signal" ? result.messageId.trim() : "";
67
- const key = messageId && messageId !== "unknown" ? buildKey(accountId, conversationKey, messageId) : null;
68
- if (!key) continue;
69
- storeTarget(key, binding, targetAuthorKeys);
70
- registered = true;
71
- }
72
- return registered;
73
- }
74
- async function maybeResolveSignalQuestionReaction(params) {
75
- if (params.isRemove) return false;
76
- const optionIndex = questionGatewayRuntime.resolveReactionIndex(params.reactionKey);
77
- const key = buildKey(params.accountId, params.conversationKey, params.messageId);
78
- if (optionIndex === void 0 || !key) return false;
79
- const target = targets.get(key);
80
- if (!target) return false;
81
- if (!resolveSignalApprovalTargetAuthorKeys(params).some((authorKey) => target.targetAuthorKeys.includes(authorKey))) return false;
82
- if (target.expiresAtMs <= Date.now() || target.terminal) {
83
- target.terminal = true;
84
- params.logDebug?.(`signal: stale question reaction ignored id=${target.questionId}`);
85
- return true;
86
- }
87
- const optionValue = target.optionValues[optionIndex];
88
- if (!optionValue) {
89
- params.logDebug?.(`signal: out-of-range question reaction ignored id=${target.questionId}`);
90
- return true;
91
- }
92
- try {
93
- const result = await questionGatewayRuntime.resolveReaction({
94
- cfg: params.cfg,
95
- questionId: target.questionId,
96
- optionValue,
97
- senderId: params.actorId,
98
- gatewayUrl: params.gatewayUrl,
99
- clientDisplayName: `Signal question (${params.actorId})`
100
- });
101
- target.terminal = result?.status === "answered" || result?.status === "already-terminal";
102
- if (result?.status === "already-terminal") params.logDebug?.(`signal: stale question reaction ignored id=${target.questionId}`);
103
- } catch (error) {
104
- params.logDebug?.(`signal: question reaction failed id=${target.questionId}: ${String(error)}`);
105
- }
106
- return true;
107
- }
108
- //#endregion
109
- export { question_reactions_exports as n, registerSignalQuestionReactionTargetForDeliveredPayload as r, maybeResolveSignalQuestionReaction as t };
@@ -1,17 +0,0 @@
1
- import "./accounts-DrStJjiK.js";
2
- import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
3
- //#region extensions/signal/src/rpc-context.ts
4
- function resolveSignalRpcContext(opts, accountInfo) {
5
- const hasBaseUrl = Boolean(normalizeOptionalString(opts.baseUrl));
6
- const hasAccount = Boolean(normalizeOptionalString(opts.account));
7
- if ((!hasBaseUrl || !hasAccount) && !accountInfo) throw new Error("Signal account config is required when baseUrl or account is missing");
8
- const resolvedAccount = accountInfo;
9
- const baseUrl = normalizeOptionalString(opts.baseUrl) ?? resolvedAccount?.baseUrl;
10
- if (!baseUrl) throw new Error("Signal base URL is required");
11
- return {
12
- baseUrl,
13
- account: normalizeOptionalString(opts.account) ?? normalizeOptionalString(resolvedAccount?.config.account)
14
- };
15
- }
16
- //#endregion
17
- export { resolveSignalRpcContext as t };