@openclaw/signal 2026.9.8 → 2026.10.1-beta.2

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 (226) hide show
  1. package/dist/.setup/{api-DEB0Obj8.mjs → api-BYvpXSbI.mjs} +6 -6
  2. package/dist/.setup/{api-DmCb6e7E.mjs → api-BzvUhsz9.mjs} +8 -8
  3. package/dist/.setup/{approval-auth-CszS7gwf.mjs → approval-auth-BITw96pZ.mjs} +1 -1
  4. package/dist/.setup/{approval-handler.runtime-D9ofZcZW.mjs → approval-handler.runtime-DftlFeEB.mjs} +4 -4
  5. package/dist/.setup/{approval-reactions-BKkjIAoi.mjs → approval-reactions-BHIX1jwY.mjs} +3 -3
  6. package/dist/.setup/{channel-DrUxv5cf.mjs → channel-E_23H6I6.mjs} +32 -42
  7. package/dist/.setup/{doctor-contract-api-Db9V9gsY.mjs → doctor-contract-api-CGS80vmV.mjs} +6 -0
  8. package/dist/.setup/{monitor-BfwQr78f.mjs → monitor-CG20ucVU.mjs} +21 -38
  9. package/dist/.setup/{normalize-l_b99hap.mjs → normalize-D7kSomXt.mjs} +10 -22
  10. package/dist/.setup/{probe-BYLzra6D.mjs → probe-2LTiStRi.mjs} +2 -2
  11. package/dist/.setup/{reaction-runtime-api-DDi5x2wC.mjs → reaction-runtime-api-xqwxFZ2S.mjs} +2 -2
  12. package/dist/.setup/{reaction-targets-CEdyjtrC.mjs → reaction-targets-TGHqhdoa.mjs} +3 -3
  13. package/dist/.setup/{rpc-context-D26RxFIm.mjs → rpc-context-BAXcX7dI.mjs} +2 -4
  14. package/dist/.setup/{send-DEjrbpIC.mjs → send-CAlJlhsT.mjs} +4 -4
  15. package/dist/.setup/{setup-surface-Drt-4t3R.mjs → setup-surface-BpW9dJZY.mjs} +1 -1
  16. package/dist/.setup/{transport-detection-BVUDE42e.mjs → transport-detection-CQSEftdN.mjs} +1 -1
  17. package/dist/api.js +8 -8
  18. package/dist/channel-plugin-api.js +1 -1
  19. package/dist/contract-api.js +1 -1
  20. package/dist/doctor-contract-api.js +1 -1
  21. package/dist/reaction-runtime-api.js +1 -1
  22. package/dist/setup-entry.js +1 -1
  23. package/node_modules/@openclaw/fs-safe/CHANGELOG.md +95 -0
  24. package/node_modules/@openclaw/fs-safe/README.md +70 -379
  25. package/node_modules/@openclaw/fs-safe/dist/absolute-path.js +35 -51
  26. package/node_modules/@openclaw/fs-safe/dist/advanced.d.ts +2 -0
  27. package/node_modules/@openclaw/fs-safe/dist/advanced.js +1 -0
  28. package/node_modules/@openclaw/fs-safe/dist/archive-input.js +2 -0
  29. package/node_modules/@openclaw/fs-safe/dist/archive-parser.wasm +0 -0
  30. package/node_modules/@openclaw/fs-safe/dist/archive-staging.d.ts +1 -1
  31. package/node_modules/@openclaw/fs-safe/dist/archive-staging.js +9 -10
  32. package/node_modules/@openclaw/fs-safe/dist/archive.js +2 -5
  33. package/node_modules/@openclaw/fs-safe/dist/atomic-io.d.ts +51 -0
  34. package/node_modules/@openclaw/fs-safe/dist/atomic-io.js +242 -0
  35. package/node_modules/@openclaw/fs-safe/dist/config.d.ts +1 -1
  36. package/node_modules/@openclaw/fs-safe/dist/config.js +1 -1
  37. package/node_modules/@openclaw/fs-safe/dist/copy-file-input.d.ts +1 -1
  38. package/node_modules/@openclaw/fs-safe/dist/copy-file-input.js +2 -2
  39. package/node_modules/@openclaw/fs-safe/dist/copy-tree-portable.js +2 -0
  40. package/node_modules/@openclaw/fs-safe/dist/create.js +12 -5
  41. package/node_modules/@openclaw/fs-safe/dist/directory-guard.d.ts +11 -0
  42. package/node_modules/@openclaw/fs-safe/dist/directory-guard.js +4 -7
  43. package/node_modules/@openclaw/fs-safe/dist/entry-publication-types.d.ts +55 -0
  44. package/node_modules/@openclaw/fs-safe/dist/entry-publication-types.js +1 -0
  45. package/node_modules/@openclaw/fs-safe/dist/entry-publication.d.ts +8 -0
  46. package/node_modules/@openclaw/fs-safe/dist/entry-publication.js +262 -0
  47. package/node_modules/@openclaw/fs-safe/dist/exclusive-create.d.ts +3 -0
  48. package/node_modules/@openclaw/fs-safe/dist/exclusive-create.js +22 -0
  49. package/node_modules/@openclaw/fs-safe/dist/file-cleanup.d.ts +1 -6
  50. package/node_modules/@openclaw/fs-safe/dist/file-cleanup.js +3 -6
  51. package/node_modules/@openclaw/fs-safe/dist/file-identity.js +3 -6
  52. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-io.js +2 -2
  53. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-mutation.js +9 -0
  54. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root.js +4 -6
  55. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-stale-admission.js +1 -1
  56. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync.js +8 -0
  57. package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.js +2 -0
  58. package/node_modules/@openclaw/fs-safe/dist/file-store-sync-write.js +20 -18
  59. package/node_modules/@openclaw/fs-safe/dist/file-store.js +4 -10
  60. package/node_modules/@openclaw/fs-safe/dist/fs.d.ts +2 -10
  61. package/node_modules/@openclaw/fs-safe/dist/fs.js +2 -10
  62. package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.d.ts +3 -4
  63. package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.js +6 -18
  64. package/node_modules/@openclaw/fs-safe/dist/guest-dispatch-python.js +1 -1
  65. package/node_modules/@openclaw/fs-safe/dist/guest-native-python.js +0 -2
  66. package/node_modules/@openclaw/fs-safe/dist/guest.js +3 -9
  67. package/node_modules/@openclaw/fs-safe/dist/index.d.ts +1 -1
  68. package/node_modules/@openclaw/fs-safe/dist/index.js +1 -1
  69. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-directory.js +1 -5
  70. package/node_modules/@openclaw/fs-safe/dist/json.js +19 -37
  71. package/node_modules/@openclaw/fs-safe/dist/move-path.js +2 -0
  72. package/node_modules/@openclaw/fs-safe/dist/mutation-authority.d.ts +1 -0
  73. package/node_modules/@openclaw/fs-safe/dist/mutation-authority.js +9 -1
  74. package/node_modules/@openclaw/fs-safe/dist/native-binding.d.ts +47 -2
  75. package/node_modules/@openclaw/fs-safe/dist/native-config.d.ts +1 -9
  76. package/node_modules/@openclaw/fs-safe/dist/native-config.js +6 -40
  77. package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.d.ts +2 -0
  78. package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.js +5 -2
  79. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.js +11 -316
  80. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent-windows.d.ts +7 -7
  81. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent-windows.js +28 -175
  82. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent.d.ts +15 -0
  83. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent.js +418 -0
  84. package/node_modules/@openclaw/fs-safe/dist/native-rename-outcome.js +9 -4
  85. package/node_modules/@openclaw/fs-safe/dist/native-staged-file.js +17 -13
  86. package/node_modules/@openclaw/fs-safe/dist/native-staged-symlink.js +6 -24
  87. package/node_modules/@openclaw/fs-safe/dist/native.js +5 -1
  88. package/node_modules/@openclaw/fs-safe/dist/path-case.js +10 -9
  89. package/node_modules/@openclaw/fs-safe/dist/path-scope-lexical.js +4 -1
  90. package/node_modules/@openclaw/fs-safe/dist/path-segment-route.d.ts +1 -0
  91. package/node_modules/@openclaw/fs-safe/dist/path-segment-route.js +3 -0
  92. package/node_modules/@openclaw/fs-safe/dist/path.js +4 -1
  93. package/node_modules/@openclaw/fs-safe/dist/permissions-windows.d.ts +0 -1
  94. package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.js +1 -3
  95. package/node_modules/@openclaw/fs-safe/dist/pinned-write-staged.js +2 -0
  96. package/node_modules/@openclaw/fs-safe/dist/pinned-write.js +9 -10
  97. package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff.js +3 -6
  98. package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.js +2 -2
  99. package/node_modules/@openclaw/fs-safe/dist/publish-file.js +4 -3
  100. package/node_modules/@openclaw/fs-safe/dist/replace-file-buffer.d.ts +3 -4
  101. package/node_modules/@openclaw/fs-safe/dist/replace-file-buffer.js +18 -32
  102. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.d.ts +5 -17
  103. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.js +92 -230
  104. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-source.d.ts +4 -15
  105. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-source.js +22 -63
  106. package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.d.ts +9 -34
  107. package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.js +78 -83
  108. package/node_modules/@openclaw/fs-safe/dist/replace-file-destination.d.ts +18 -20
  109. package/node_modules/@openclaw/fs-safe/dist/replace-file-destination.js +64 -98
  110. package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.d.ts +16 -33
  111. package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.js +61 -200
  112. package/node_modules/@openclaw/fs-safe/dist/replace-file-types.d.ts +1 -6
  113. package/node_modules/@openclaw/fs-safe/dist/replace-file.js +76 -216
  114. package/node_modules/@openclaw/fs-safe/dist/root-boundary.js +14 -24
  115. package/node_modules/@openclaw/fs-safe/dist/root-context.d.ts +1 -4
  116. package/node_modules/@openclaw/fs-safe/dist/root-context.js +4 -19
  117. package/node_modules/@openclaw/fs-safe/dist/root-create-native.d.ts +52 -0
  118. package/node_modules/@openclaw/fs-safe/dist/root-create-native.js +350 -0
  119. package/node_modules/@openclaw/fs-safe/dist/root-directory-list-types.d.ts +35 -0
  120. package/node_modules/@openclaw/fs-safe/dist/root-directory-list-types.js +1 -0
  121. package/node_modules/@openclaw/fs-safe/dist/root-directory-list.d.ts +2 -27
  122. package/node_modules/@openclaw/fs-safe/dist/root-directory-list.js +31 -28
  123. package/node_modules/@openclaw/fs-safe/dist/root-directory.js +1 -4
  124. package/node_modules/@openclaw/fs-safe/dist/root-errors.js +34 -0
  125. package/node_modules/@openclaw/fs-safe/dist/root-file.js +9 -21
  126. package/node_modules/@openclaw/fs-safe/dist/root-impl.js +105 -37
  127. package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.d.ts +7 -2
  128. package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.js +67 -38
  129. package/node_modules/@openclaw/fs-safe/dist/root-observed-path.d.ts +1 -1
  130. package/node_modules/@openclaw/fs-safe/dist/root-observed-path.js +0 -2
  131. package/node_modules/@openclaw/fs-safe/dist/root-options.d.ts +2 -3
  132. package/node_modules/@openclaw/fs-safe/dist/root-path-existing.js +3 -1
  133. package/node_modules/@openclaw/fs-safe/dist/root-path-stat.js +68 -85
  134. package/node_modules/@openclaw/fs-safe/dist/root-path.js +6 -1
  135. package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.d.ts +4 -0
  136. package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.js +1 -1
  137. package/node_modules/@openclaw/fs-safe/dist/root-paths.js +4 -9
  138. package/node_modules/@openclaw/fs-safe/dist/root-remove-native.d.ts +4 -0
  139. package/node_modules/@openclaw/fs-safe/dist/root-remove-native.js +311 -0
  140. package/node_modules/@openclaw/fs-safe/dist/root-remove.d.ts +11 -0
  141. package/node_modules/@openclaw/fs-safe/dist/root-remove.js +3 -1
  142. package/node_modules/@openclaw/fs-safe/dist/root-walk.d.ts +2 -2
  143. package/node_modules/@openclaw/fs-safe/dist/root-walk.js +1 -3
  144. package/node_modules/@openclaw/fs-safe/dist/root-write-admission.d.ts +3 -3
  145. package/node_modules/@openclaw/fs-safe/dist/root-write-admission.js +8 -10
  146. package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.d.ts +0 -1
  147. package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.js +0 -4
  148. package/node_modules/@openclaw/fs-safe/dist/secret-file.js +12 -9
  149. package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.d.ts +0 -2
  150. package/node_modules/@openclaw/fs-safe/dist/sibling-staged-file.js +2 -0
  151. package/node_modules/@openclaw/fs-safe/dist/sibling-temp.js +7 -4
  152. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.js +13 -6
  153. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.d.ts +0 -3
  154. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.js +5 -23
  155. package/node_modules/@openclaw/fs-safe/dist/staged-file-settlement.d.ts +2 -1
  156. package/node_modules/@openclaw/fs-safe/dist/staged-file-settlement.js +11 -6
  157. package/node_modules/@openclaw/fs-safe/dist/temp-cleanup.js +1 -8
  158. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.d.ts +1 -1
  159. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.js +2 -9
  160. package/node_modules/@openclaw/fs-safe/dist/text-atomic.d.ts +1 -6
  161. package/node_modules/@openclaw/fs-safe/dist/trash.js +6 -2
  162. package/node_modules/@openclaw/fs-safe/dist/walk.js +100 -46
  163. package/node_modules/@openclaw/fs-safe/dist/watch-hints.d.ts +7 -0
  164. package/node_modules/@openclaw/fs-safe/dist/watch-hints.js +235 -19
  165. package/node_modules/@openclaw/fs-safe/dist/watch-native.d.ts +21 -2
  166. package/node_modules/@openclaw/fs-safe/dist/watch-native.js +21 -3
  167. package/node_modules/@openclaw/fs-safe/dist/watch-rescan.d.ts +6 -0
  168. package/node_modules/@openclaw/fs-safe/dist/watch-rescan.js +111 -0
  169. package/node_modules/@openclaw/fs-safe/dist/watch-scan.d.ts +13 -0
  170. package/node_modules/@openclaw/fs-safe/dist/watch-scan.js +27 -4
  171. package/node_modules/@openclaw/fs-safe/dist/watch-stream.js +2 -0
  172. package/node_modules/@openclaw/fs-safe/dist/watch.js +131 -40
  173. package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.d.ts +8 -0
  174. package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.js +24 -6
  175. package/node_modules/@openclaw/fs-safe/dist/windows-path-syntax.d.ts +13 -0
  176. package/node_modules/@openclaw/fs-safe/dist/windows-path-syntax.js +51 -0
  177. package/node_modules/@openclaw/fs-safe/docs/advanced.md +4 -0
  178. package/node_modules/@openclaw/fs-safe/docs/atomic.md +4 -1
  179. package/node_modules/@openclaw/fs-safe/docs/config.md +6 -14
  180. package/node_modules/@openclaw/fs-safe/docs/contributing.md +4 -14
  181. package/node_modules/@openclaw/fs-safe/docs/durability.md +6 -29
  182. package/node_modules/@openclaw/fs-safe/docs/entry-publication.md +146 -0
  183. package/node_modules/@openclaw/fs-safe/docs/errors.md +16 -0
  184. package/node_modules/@openclaw/fs-safe/docs/file-store.md +28 -5
  185. package/node_modules/@openclaw/fs-safe/docs/index.md +2 -31
  186. package/node_modules/@openclaw/fs-safe/docs/install.md +10 -31
  187. package/node_modules/@openclaw/fs-safe/docs/json.md +1 -1
  188. package/node_modules/@openclaw/fs-safe/docs/local-roots.md +0 -1
  189. package/node_modules/@openclaw/fs-safe/docs/migrating-to-0.5.md +12 -12
  190. package/node_modules/@openclaw/fs-safe/docs/native-helper.md +35 -96
  191. package/node_modules/@openclaw/fs-safe/docs/native.md +22 -20
  192. package/node_modules/@openclaw/fs-safe/docs/path.md +1 -1
  193. package/node_modules/@openclaw/fs-safe/docs/permissions.md +1 -2
  194. package/node_modules/@openclaw/fs-safe/docs/public-api.md +1 -2
  195. package/node_modules/@openclaw/fs-safe/docs/reading.md +1 -2
  196. package/node_modules/@openclaw/fs-safe/docs/root.md +26 -184
  197. package/node_modules/@openclaw/fs-safe/docs/secret-file.md +1 -1
  198. package/node_modules/@openclaw/fs-safe/docs/security-model.md +115 -3
  199. package/node_modules/@openclaw/fs-safe/docs/store.md +2 -2
  200. package/node_modules/@openclaw/fs-safe/docs/temp.md +29 -65
  201. package/node_modules/@openclaw/fs-safe/docs/testing.md +90 -58
  202. package/node_modules/@openclaw/fs-safe/docs/types.md +3 -16
  203. package/node_modules/@openclaw/fs-safe/docs/walk.md +33 -5
  204. package/node_modules/@openclaw/fs-safe/docs/watch.md +96 -14
  205. package/node_modules/@openclaw/fs-safe/docs/writing.md +172 -16
  206. package/node_modules/@openclaw/fs-safe/package.json +10 -10
  207. package/node_modules/@openclaw/fs-safe-darwin-arm64/fs-safe-native.node +0 -0
  208. package/node_modules/@openclaw/fs-safe-darwin-arm64/package.json +1 -1
  209. package/node_modules/@openclaw/fs-safe-darwin-x64/fs-safe-native.node +0 -0
  210. package/node_modules/@openclaw/fs-safe-darwin-x64/package.json +1 -1
  211. package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/fs-safe-native.node +0 -0
  212. package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/package.json +1 -1
  213. package/node_modules/@openclaw/fs-safe-linux-arm64-musl/fs-safe-native.node +0 -0
  214. package/node_modules/@openclaw/fs-safe-linux-arm64-musl/package.json +1 -1
  215. package/node_modules/@openclaw/fs-safe-linux-x64-gnu/fs-safe-native.node +0 -0
  216. package/node_modules/@openclaw/fs-safe-linux-x64-gnu/package.json +1 -1
  217. package/node_modules/@openclaw/fs-safe-linux-x64-musl/fs-safe-native.node +0 -0
  218. package/node_modules/@openclaw/fs-safe-linux-x64-musl/package.json +1 -1
  219. package/node_modules/@openclaw/fs-safe-win32-x64-msvc/fs-safe-native.node +0 -0
  220. package/node_modules/@openclaw/fs-safe-win32-x64-msvc/package.json +1 -1
  221. package/package.json +5 -5
  222. package/node_modules/@openclaw/fs-safe/dist/watch-alias.d.ts +0 -6
  223. package/node_modules/@openclaw/fs-safe/dist/watch-alias.js +0 -88
  224. package/node_modules/@openclaw/fs-safe/docs/mutation-policy-proof.md +0 -69
  225. package/node_modules/@openclaw/fs-safe/docs/private-file-store.md +0 -68
  226. package/node_modules/@openclaw/fs-safe/docs/test-hooks.md +0 -110
@@ -1,12 +1,12 @@
1
1
  import "./accounts-DMtj2E-4.mjs";
2
- import "./normalize-l_b99hap.mjs";
2
+ import "./normalize-D7kSomXt.mjs";
3
3
  import "./identity-B3JyPqGO.mjs";
4
- import { l as signalSetupContract, n as createSignalPluginBase, r as signalSetupWizard } from "./channel-DrUxv5cf.mjs";
5
- import "./reaction-runtime-api-DDi5x2wC.mjs";
4
+ import { l as signalSetupContract, n as createSignalPluginBase, r as signalSetupWizard } from "./channel-E_23H6I6.mjs";
5
+ import "./reaction-runtime-api-xqwxFZ2S.mjs";
6
6
  import "./install-signal-cli-ChvjzM6X.mjs";
7
- import "./monitor-BfwQr78f.mjs";
8
- import "./send-DEjrbpIC.mjs";
9
- import "./probe-BYLzra6D.mjs";
7
+ import "./monitor-CG20ucVU.mjs";
8
+ import "./send-CAlJlhsT.mjs";
9
+ import "./probe-2LTiStRi.mjs";
10
10
  //#region extensions/signal/src/channel.setup.ts
11
11
  const signalSetupPlugin = { ...createSignalPluginBase({
12
12
  setupWizard: signalSetupWizard,
@@ -1,12 +1,12 @@
1
1
  import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-DMtj2E-4.mjs";
2
- import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.mjs";
2
+ import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-D7kSomXt.mjs";
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-B3JyPqGO.mjs";
4
- import { _ as resolveSignalReactionLevel, a as normalizeSignalAccountInput, b as markdownToSignalTextChunks, d as probeSignalTransport, f as writeSignalAccountTransport, g as signalMessageActions, h as resolveSignalOutboundTarget, t as signalPlugin, u as prepareSignalManagedNativeTransport, y as markdownToSignalText } from "./channel-DrUxv5cf.mjs";
5
- import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-DDi5x2wC.mjs";
6
- import { t as detectSignalTransport } from "./transport-detection-BVUDE42e.mjs";
7
- import { t as signalSetupPlugin } from "./api-DEB0Obj8.mjs";
4
+ import { _ as resolveSignalReactionLevel, a as normalizeSignalAccountInput, b as markdownToSignalTextChunks, d as probeSignalTransport, f as writeSignalAccountTransport, g as signalMessageActions, h as resolveSignalOutboundTarget, t as signalPlugin, u as prepareSignalManagedNativeTransport, y as markdownToSignalText } from "./channel-E_23H6I6.mjs";
5
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-xqwxFZ2S.mjs";
6
+ import { t as detectSignalTransport } from "./transport-detection-CQSEftdN.mjs";
7
+ import { t as signalSetupPlugin } from "./api-BYvpXSbI.mjs";
8
8
  import { r as installSignalCli } from "./install-signal-cli-ChvjzM6X.mjs";
9
- import { t as monitorSignalProvider } from "./monitor-BfwQr78f.mjs";
10
- import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-DEjrbpIC.mjs";
11
- import { t as probeSignal } from "./probe-BYLzra6D.mjs";
9
+ import { t as monitorSignalProvider } from "./monitor-CG20ucVU.mjs";
10
+ import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-CAlJlhsT.mjs";
11
+ import { t as probeSignal } from "./probe-2LTiStRi.mjs";
12
12
  export { detectSignalTransport, formatSignalPairingIdLine, formatSignalSenderDisplay, formatSignalSenderId, installSignalCli, isSignalSenderAllowed, listEnabledSignalAccounts, listSignalAccountIds, looksLikeSignalTargetId, looksLikeUuid, markdownToSignalText, markdownToSignalTextChunks, monitorSignalProvider, normalizeSignalAccountInput, normalizeSignalAllowRecipient, normalizeSignalMessagingTarget, prepareSignalManagedNativeTransport, probeSignal, probeSignalTransport, removeReactionSignal, resolveDefaultSignalAccountId, resolveSignalAccount, resolveSignalOutboundTarget, resolveSignalPeerId, resolveSignalReactionLevel, resolveSignalRecipient, resolveSignalSender, sendMessageSignal, sendReactionSignal, sendReadReceiptSignal, sendTypingSignal, signalMessageActions, signalPlugin, signalSetupPlugin, writeSignalAccountTransport };
@@ -1,5 +1,5 @@
1
1
  import { i as resolveSignalAccount } from "./accounts-DMtj2E-4.mjs";
2
- import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.mjs";
2
+ import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-D7kSomXt.mjs";
3
3
  import { l as looksLikeUuid } from "./identity-B3JyPqGO.mjs";
4
4
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { createChannelApprovalAuth } from "openclaw/plugin-sdk/approval-auth-runtime";
@@ -1,8 +1,8 @@
1
1
  import { r as resolveDefaultSignalAccountId } from "./accounts-DMtj2E-4.mjs";
2
- import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.mjs";
3
- import { a as resolveSignalTarget } from "./approval-auth-CszS7gwf.mjs";
4
- import { a as registerSignalApprovalReactionTarget, c as resolveSignalApprovalTargetAuthorKeys, l as unregisterSignalApprovalReactionTarget, r as hasSignalApprovalReactionApprovers, s as resolveSignalApprovalConversationKey } from "./approval-reactions-BKkjIAoi.mjs";
5
- import { r as sendTypingSignal, t as sendMessageSignal } from "./send-DEjrbpIC.mjs";
2
+ import { n as normalizeSignalMessagingTarget } from "./normalize-D7kSomXt.mjs";
3
+ import { a as resolveSignalTarget } from "./approval-auth-BITw96pZ.mjs";
4
+ import { a as registerSignalApprovalReactionTarget, c as resolveSignalApprovalTargetAuthorKeys, l as unregisterSignalApprovalReactionTarget, r as hasSignalApprovalReactionApprovers, s as resolveSignalApprovalConversationKey } from "./approval-reactions-BHIX1jwY.mjs";
5
+ import { r as sendTypingSignal, t as sendMessageSignal } from "./send-CAlJlhsT.mjs";
6
6
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
7
7
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
8
8
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
@@ -1,6 +1,6 @@
1
- import { o as __exportAll } from "./doctor-contract-api-Db9V9gsY.mjs";
2
- import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.mjs";
3
- import { a as resolveSignalTarget, i as resolveSignalDeliveredConversationKey, n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-CszS7gwf.mjs";
1
+ import { o as __exportAll } from "./doctor-contract-api-CGS80vmV.mjs";
2
+ import { n as normalizeSignalMessagingTarget } from "./normalize-D7kSomXt.mjs";
3
+ import { a as resolveSignalTarget, i as resolveSignalDeliveredConversationKey, n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-BITw96pZ.mjs";
4
4
  import { l as looksLikeUuid } from "./identity-B3JyPqGO.mjs";
5
5
  import { t as getOptionalSignalRuntime } from "./runtime-8sxUF217.mjs";
6
6
  import { createLazyRuntimeSurface } from "openclaw/plugin-sdk/lazy-runtime";
@@ -1,13 +1,13 @@
1
- import { a as migrateLegacySignalTransportConfig, i as clearLegacySignalTransportFieldsForAccount, n as normalizeCompatibilityConfig, r as repairSignalAccountKeys } from "./doctor-contract-api-Db9V9gsY.mjs";
1
+ import { a as migrateLegacySignalTransportConfig, i as clearLegacySignalTransportFieldsForAccount, n as normalizeCompatibilityConfig, r as repairSignalAccountKeys } from "./doctor-contract-api-CGS80vmV.mjs";
2
2
  import { a as normalizeSignalTransportUrl, i as normalizeSignalTransportHost, o as resolveSignalAccountEntry, s as resolveSignalAccountKey, t as assertSignalSocketTransport } from "./transport-url-CAC0JcuI.mjs";
3
3
  import { a as isSignalManagedNativeConnectionUrlForBind, c as resolveLocalSignalTransportPort, i as assignSignalManagedNativePort, o as isValidSignalManagedNativePort, r as allocateSignalManagedNativePort, s as reserveSignalTransportPorts } from "./transport-policy-B6C_LogW.mjs";
4
4
  import { a as resolveSignalAccountConfig, i as resolveSignalAccount, n as listSignalAccountIds, o as resolveSignalReplyToMode, r as resolveDefaultSignalAccountId, s as resolveSignalTransport, t as listEnabledSignalAccounts } from "./accounts-DMtj2E-4.mjs";
5
- import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.mjs";
6
- import { a as resolveSignalTarget, n as signalApprovalAuth, r as listSignalAliasDirectoryEntries, t as getSignalApprovalApprovers } from "./approval-auth-CszS7gwf.mjs";
5
+ import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./normalize-D7kSomXt.mjs";
6
+ import { a as resolveSignalTarget, n as signalApprovalAuth, r as listSignalAliasDirectoryEntries, t as getSignalApprovalApprovers } from "./approval-auth-BITw96pZ.mjs";
7
7
  import { c as resolveSignalSender, l as looksLikeUuid, o as resolveSignalPeerId, s as resolveSignalRecipient } from "./identity-B3JyPqGO.mjs";
8
- import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-DDi5x2wC.mjs";
8
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-xqwxFZ2S.mjs";
9
9
  import { t as getOptionalSignalRuntime } from "./runtime-8sxUF217.mjs";
10
- import { t as detectSignalTransport } from "./transport-detection-BVUDE42e.mjs";
10
+ import { t as detectSignalTransport } from "./transport-detection-CQSEftdN.mjs";
11
11
  import { t as SignalChannelConfigSchema } from "./config-schema-DvxZ18SD.mjs";
12
12
  import { describeAccountSnapshot, resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/account-helpers";
13
13
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
@@ -23,7 +23,7 @@ import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-run
23
23
  import { chunkText, resolveTextChunkLimit } from "openclaw/plugin-sdk/reply-chunking";
24
24
  import { buildOutboundBaseSessionKey, parseAgentSessionKey } from "openclaw/plugin-sdk/routing";
25
25
  import { buildBaseChannelStatusSummary, collectStatusIssuesFromLastError, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, resolveReactionLevel } from "openclaw/plugin-sdk/status-helpers";
26
- import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeStringifiedEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
26
+ import { asPositiveSafeInteger, normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeStringifiedEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
27
27
  import { FormatCapabilityProfile, markdownToIR, renderMarkdownIRChunksWithinLimit, renderMarkdownWithAttributedRanges, sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
28
28
  import { normalizeAccountId as normalizeAccountId$1 } from "openclaw/plugin-sdk/account-resolution";
29
29
  import { createApproverRestrictedNativeApprovalCapabilityFromForwardingRoutes } from "openclaw/plugin-sdk/approval-delivery-runtime";
@@ -39,6 +39,7 @@ import { createChannelPluginBase, getChatChannelMeta } from "openclaw/plugin-sdk
39
39
  import { parseAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
40
40
  import { getExecApprovalReplyMetadata } from "openclaw/plugin-sdk/approval-reply-runtime";
41
41
  import { isMessagePresentationInteractiveBlock, normalizeMessagePresentation, renderMessagePresentationFallbackText } from "openclaw/plugin-sdk/interactive-runtime";
42
+ import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
42
43
  import { createChannelDmPolicy } from "openclaw/plugin-sdk/channel-dm-policy";
43
44
  import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
44
45
  import { patchTopLevelChannelConfigSection } from "openclaw/plugin-sdk/setup";
@@ -100,7 +101,7 @@ const signalApproval = createApproverRestrictedNativeApprovalCapabilityFromForwa
100
101
  approvalKind,
101
102
  request
102
103
  }),
103
- load: async () => (await import("./approval-handler.runtime-D9ofZcZW.mjs")).signalApprovalNativeRuntime
104
+ load: async () => (await import("./approval-handler.runtime-DftlFeEB.mjs")).signalApprovalNativeRuntime
104
105
  })
105
106
  });
106
107
  const signalApprovalRouting = signalApproval.routing;
@@ -212,10 +213,6 @@ function markdownToSignalTextChunks(markdown, limit, options = {}) {
212
213
  }
213
214
  //#endregion
214
215
  //#region extensions/signal/src/media-text.ts
215
- function formatAttachmentKindCount(kind, count) {
216
- if (kind === "attachment") return `${count} file${count > 1 ? "s" : ""}`;
217
- return `${count} ${kind}${count > 1 ? "s" : ""}`;
218
- }
219
216
  /** Keeps Signal's established multi-attachment text while sharing single-item rendering. */
220
217
  function formatSignalMediaText(media) {
221
218
  if (media.length <= 1) return formatMediaPlaceholderText(media);
@@ -224,7 +221,7 @@ function formatSignalMediaText(media) {
224
221
  const kind = entry.kind && entry.kind !== "unknown" ? entry.kind : kindFromMime(entry.contentType) ?? "attachment";
225
222
  kindCounts.set(kind, (kindCounts.get(kind) ?? 0) + 1);
226
223
  }
227
- return `[${[...kindCounts.entries()].map(([kind, count]) => formatAttachmentKindCount(kind, count)).join(" + ")} attached]`;
224
+ return `[${[...kindCounts.entries()].map(([kind, count]) => `${count} ${kind === "attachment" ? "file" : kind}${count > 1 ? "s" : ""}`).join(" + ")} attached]`;
228
225
  }
229
226
  //#endregion
230
227
  //#region extensions/signal/src/reaction-level.ts
@@ -420,19 +417,21 @@ function openSignalReplyAuthorStore() {
420
417
  return;
421
418
  }
422
419
  }
423
- function buildSignalReplyAuthorStoreKey(params) {
420
+ function resolveSignalReplyIdentity(params) {
424
421
  const conversationKey = normalizeSignalMessagingTarget(params.to);
425
422
  const replyToId = normalizeOptionalString(params.replyToId);
426
423
  if (!conversationKey || !replyToId) return;
427
- return `account=${normalizeLowercaseStringOrEmpty(normalizeOptionalString(params.accountId) ?? DEFAULT_ACCOUNT_ID)}|to=${conversationKey}|id=${replyToId}`;
424
+ const accountKey = normalizeLowercaseStringOrEmpty(normalizeOptionalString(params.accountId) ?? DEFAULT_ACCOUNT_ID);
425
+ return {
426
+ key: `account=${accountKey}|to=${conversationKey}|id=${replyToId}`,
427
+ accountId: accountKey,
428
+ conversationKey,
429
+ replyToId
430
+ };
428
431
  }
429
432
  function pruneMemoryReplyContexts(now = Date.now()) {
430
433
  for (const [key, record] of memoryReplyContexts) if (record.expiresAt <= now) memoryReplyContexts.delete(key);
431
- while (memoryReplyContexts.size > PERSISTENT_MAX_ENTRIES) {
432
- const oldestKey = memoryReplyContexts.keys().next().value;
433
- if (!oldestKey) break;
434
- memoryReplyContexts.delete(oldestKey);
435
- }
434
+ pruneMapToMaxSize(memoryReplyContexts, PERSISTENT_MAX_ENTRIES);
436
435
  }
437
436
  function resolveReplyContext(record) {
438
437
  if (!record) return;
@@ -447,9 +446,6 @@ function resolveReplyContext(record) {
447
446
  ...media?.length ? { media } : {}
448
447
  };
449
448
  }
450
- function resolveSourceTimestamp(value) {
451
- return typeof value === "number" && Number.isSafeInteger(value) && value > 0 ? value : Date.now();
452
- }
453
449
  function mergeReplyContext(current, next) {
454
450
  if (!current) return next;
455
451
  if (current.kind === "ambiguous") return current;
@@ -465,27 +461,23 @@ function mergeReplyContext(current, next) {
465
461
  }
466
462
  async function registerSignalReplyContext(params) {
467
463
  const store = openSignalReplyAuthorStore();
468
- const key = buildSignalReplyAuthorStoreKey(params);
464
+ const identity = resolveSignalReplyIdentity(params);
469
465
  const author = normalizeOptionalString(params.author);
470
466
  const body = normalizeOptionalString(params.body);
471
467
  const media = params.media?.map((entry) => ({
472
468
  contentType: normalizeOptionalString(entry.contentType),
473
469
  kind: entry.kind ?? void 0
474
470
  }));
475
- const conversationKey = normalizeSignalMessagingTarget(params.to);
476
- const replyToId = normalizeOptionalString(params.replyToId);
477
- const accountKey = normalizeLowercaseStringOrEmpty(normalizeOptionalString(params.accountId) ?? DEFAULT_ACCOUNT_ID);
478
- const sourceTimestamp = resolveSourceTimestamp(params.sourceTimestamp);
479
- if (!key || !author || !conversationKey || !replyToId) return;
471
+ const sourceTimestamp = asPositiveSafeInteger(params.sourceTimestamp) ?? Date.now();
472
+ if (!identity || !author) return;
473
+ const { key, ...replyIdentity } = identity;
480
474
  const registeredAt = Date.now();
481
475
  const record = {
482
476
  kind: "resolved",
483
477
  author,
484
478
  ...body ? { body } : {},
485
479
  ...media?.length ? { media } : {},
486
- accountId: accountKey,
487
- conversationKey,
488
- replyToId,
480
+ ...replyIdentity,
489
481
  sourceTimestamp,
490
482
  registeredAt
491
483
  };
@@ -564,7 +556,7 @@ async function registerSignalReplyContext(params) {
564
556
  }
565
557
  async function resolveSignalReplyContextWithPersistence(params) {
566
558
  const store = openSignalReplyAuthorStore();
567
- const key = buildSignalReplyAuthorStoreKey(params);
559
+ const key = resolveSignalReplyIdentity(params)?.key;
568
560
  if (!key) return;
569
561
  pruneMemoryReplyContexts();
570
562
  const memoryContext = resolveReplyContext(memoryReplyContexts.get(key));
@@ -1061,7 +1053,7 @@ function createSignalSetupWizardProxy(loadWizard) {
1061
1053
  const signalDoctor = {
1062
1054
  normalizeCompatibilityConfig,
1063
1055
  cleanStaleConfig: async ({ cfg }) => {
1064
- const { detectSignalTransport } = await import("./transport-detection-BVUDE42e.mjs").then((n) => n.n);
1056
+ const { detectSignalTransport } = await import("./transport-detection-CQSEftdN.mjs").then((n) => n.n);
1065
1057
  const transport = await migrateLegacySignalTransportConfig({
1066
1058
  cfg,
1067
1059
  detect: detectSignalTransport
@@ -1075,7 +1067,7 @@ const signalDoctor = {
1075
1067
  //#endregion
1076
1068
  //#region extensions/signal/src/shared.ts
1077
1069
  const SIGNAL_CHANNEL = "signal";
1078
- const signalSetupWizard = createSignalSetupWizardProxy(async () => (await import("./setup-surface-Drt-4t3R.mjs")).signalSetupWizard);
1070
+ const signalSetupWizard = createSignalSetupWizardProxy(async () => (await import("./setup-surface-BpW9dJZY.mjs")).signalSetupWizard);
1079
1071
  const signalConfigAdapter = {
1080
1072
  ...createScopedChannelConfigAdapter({
1081
1073
  sectionKey: SIGNAL_CHANNEL,
@@ -1160,10 +1152,10 @@ function createSignalPluginBase(params) {
1160
1152
  }
1161
1153
  //#endregion
1162
1154
  //#region extensions/signal/src/channel.ts
1163
- const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-BfwQr78f.mjs").then((n) => n.n));
1164
- const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-BYLzra6D.mjs").then((n) => n.n));
1165
- const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send-DEjrbpIC.mjs").then((n) => n.i));
1166
- const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-BKkjIAoi.mjs").then((n) => n.n));
1155
+ const loadSignalMonitorModule = createLazyRuntimeModule(() => import("./monitor-CG20ucVU.mjs").then((n) => n.n));
1156
+ const loadSignalProbeModule = createLazyRuntimeModule(() => import("./probe-2LTiStRi.mjs").then((n) => n.n));
1157
+ const loadSignalSendRuntime = createLazyRuntimeModule(() => import("./send-CAlJlhsT.mjs").then((n) => n.i));
1158
+ const loadSignalApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-BHIX1jwY.mjs").then((n) => n.n));
1167
1159
  async function resolveSignalSendContext(params) {
1168
1160
  return {
1169
1161
  send: resolveOutboundSendDep(params.deps, "signal") ?? (await loadSignalSendRuntime()).sendMessageSignal,
@@ -1223,9 +1215,7 @@ async function resolveSignalReplyOptions(params) {
1223
1215
  };
1224
1216
  }
1225
1217
  function inferSignalTargetChatType(rawTo) {
1226
- let to = rawTo.trim();
1227
- if (!to) return;
1228
- if (/^signal:/i.test(to)) to = to.replace(/^signal:/i, "").trim();
1218
+ const to = rawTo.trim().replace(/^signal:/i, "").trim();
1229
1219
  if (!to) return;
1230
1220
  if (normalizeLowercaseStringOrEmpty(to).startsWith("group:")) return "group";
1231
1221
  return "direct";
@@ -1366,7 +1356,7 @@ async function registerDeliveredSignalApprovalPayloadForReactions(params) {
1366
1356
  const targetAuthor = normalizeOptionalString(account.config.account);
1367
1357
  const targetAuthorUuid = normalizeOptionalString(account.config.accountUuid);
1368
1358
  if (!targetAuthor && !targetAuthorUuid) return;
1369
- const { registerSignalReactionTargetsForDeliveredPayload } = await import("./reaction-targets-CEdyjtrC.mjs").then((n) => n.t);
1359
+ const { registerSignalReactionTargetsForDeliveredPayload } = await import("./reaction-targets-TGHqhdoa.mjs").then((n) => n.t);
1370
1360
  await registerSignalReactionTargetsForDeliveredPayload({
1371
1361
  cfg: params.cfg,
1372
1362
  target: {
@@ -485,6 +485,12 @@ function createLegacyWebhookListenerDoctorContract(params) {
485
485
  };
486
486
  const prefix = `channels.${params.channelKey}`;
487
487
  return {
488
+ historicalWebhookListener: {
489
+ channelId: params.channelKey,
490
+ port: params.defaultPort,
491
+ preserveAuthoredActivation: params.preserveAuthoredActivation,
492
+ ...params.defaultHost === void 0 ? {} : { host: params.defaultHost }
493
+ },
488
494
  legacyConfigRules: [{
489
495
  path: ["channels", params.channelKey],
490
496
  message: `${prefix} webhook listeners moved to Gateway routes. Run "openclaw doctor --fix" to preserve explicitly configured listener settings as legacyWebhook.`,
@@ -1,16 +1,16 @@
1
- import { o as __exportAll } from "./doctor-contract-api-Db9V9gsY.mjs";
1
+ import { o as __exportAll } from "./doctor-contract-api-CGS80vmV.mjs";
2
2
  import { i as normalizeSignalTransportHost } from "./transport-url-CAC0JcuI.mjs";
3
3
  import { i as resolveSignalAccount, o as resolveSignalReplyToMode } from "./accounts-DMtj2E-4.mjs";
4
- import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.mjs";
4
+ import { n as normalizeSignalMessagingTarget } from "./normalize-D7kSomXt.mjs";
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-B3JyPqGO.mjs";
6
- import { _ as resolveSignalReactionLevel, m as materializeSignalPresentationFallback, p as registerSignalReplyContext, v as formatSignalMediaText, x as isSignalNativeApprovalHandlerConfigured } from "./channel-DrUxv5cf.mjs";
6
+ import { _ as resolveSignalReactionLevel, m as materializeSignalPresentationFallback, p as registerSignalReplyContext, v as formatSignalMediaText, x as isSignalNativeApprovalHandlerConfigured } from "./channel-E_23H6I6.mjs";
7
7
  import { a as prepareSignalSocketPath, t as SignalSseRejectionError } from "./client-AXcDteBZ.mjs";
8
8
  import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-adapter-c_O1ouxZ.mjs";
9
- import { n as sendReactionSignal } from "./reaction-runtime-api-DDi5x2wC.mjs";
9
+ import { n as sendReactionSignal } from "./reaction-runtime-api-xqwxFZ2S.mjs";
10
10
  import { n as getSignalRuntime, t as getOptionalSignalRuntime } from "./runtime-8sxUF217.mjs";
11
- import { i as maybeResolveSignalApprovalReaction, s as resolveSignalApprovalConversationKey, t as addSignalApprovalReactionHintToStructuredPayload } from "./approval-reactions-BKkjIAoi.mjs";
12
- import { n as registerSignalReactionTargetsForDeliveredPayload, r as maybeResolveSignalQuestionReaction } from "./reaction-targets-CEdyjtrC.mjs";
13
- import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-DEjrbpIC.mjs";
11
+ import { i as maybeResolveSignalApprovalReaction, s as resolveSignalApprovalConversationKey, t as addSignalApprovalReactionHintToStructuredPayload } from "./approval-reactions-BHIX1jwY.mjs";
12
+ import { n as registerSignalReactionTargetsForDeliveredPayload, r as maybeResolveSignalQuestionReaction } from "./reaction-targets-TGHqhdoa.mjs";
13
+ import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-CAlJlhsT.mjs";
14
14
  import { bindIngressLifecycleToReplyOptions, createChannelIngressError, createChannelIngressMonitor, createChannelMessageReplyPipeline, resolveChannelStreamingBlockEnabled } from "openclaw/plugin-sdk/channel-outbound";
15
15
  import { createChannelPairingChallengeIssuer } from "openclaw/plugin-sdk/channel-pairing";
16
16
  import { resolveAgentRoute, resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
@@ -272,9 +272,6 @@ function resolveSignalNativeReplyId(params) {
272
272
  if (!contextReplyToId || payloadReplyToId && payloadReplyToId !== contextReplyToId) return;
273
273
  return payloadReplyToId ?? contextReplyToId;
274
274
  }
275
- function isSignalStatusNoticePayload(payload) {
276
- return Boolean(payload.isCompactionNotice || payload.isFallbackNotice || payload.isStatusNotice);
277
- }
278
275
  function createSignalNativeReplyIdPlan(params) {
279
276
  const replyToId = resolveSignalNativeReplyId(params);
280
277
  if (!replyToId) return {
@@ -282,7 +279,7 @@ function createSignalNativeReplyIdPlan(params) {
282
279
  markSent: () => void 0
283
280
  };
284
281
  const isExplicitReply = params.payload.replyToTag === true || params.payload.replyToCurrent === true;
285
- if (isSignalStatusNoticePayload(params.payload)) return {
282
+ if (params.payload.isCompactionNotice || params.payload.isFallbackNotice || params.payload.isStatusNotice) return {
286
283
  peek: params.replyToMode === "off" ? () => void 0 : () => replyToId,
287
284
  markSent: () => void 0
288
285
  };
@@ -689,9 +686,6 @@ function resolveSignalInboundRoute(params) {
689
686
  }
690
687
  });
691
688
  }
692
- function hasSignalStatusReplyDeliveryFailure(result) {
693
- return Object.values(result.settledReceipt?.counts ?? {}).some((counts) => counts.failedBeforeSend > 0 || counts.failedAfterSend > 0);
694
- }
695
689
  async function finalizeSignalStatusReaction(params) {
696
690
  if (params.outcome === "done") await params.controller.setDone();
697
691
  else await params.controller.setError();
@@ -1051,7 +1045,7 @@ function createSignalEventHandler(deps) {
1051
1045
  onFinalize: (result) => {
1052
1046
  if (!statusReactionController) return;
1053
1047
  const hasFinalResponse = result.dispatched && hasVisibleInboundReplyDispatch(result.dispatchResult);
1054
- const hasDeliveryFailure = result.dispatched && hasSignalStatusReplyDeliveryFailure(result.dispatchResult);
1048
+ const hasDeliveryFailure = result.dispatched && Object.values(result.dispatchResult.settledReceipt?.counts ?? {}).some((counts) => counts.failedBeforeSend > 0 || counts.failedAfterSend > 0);
1055
1049
  const hasAgentRunFailure = result.dispatched && readAgentRunTerminalOutcome(result.dispatchResult) === "failed";
1056
1050
  finalizeSignalStatusReaction({
1057
1051
  controller: statusReactionController,
@@ -1429,6 +1423,14 @@ function createSignalEventHandler(deps) {
1429
1423
  }
1430
1424
  });
1431
1425
  const effectiveWasMentioned = mentionDecision.effectiveWasMentioned;
1426
+ const attachments = dataMessage.attachments ?? [];
1427
+ const mediaFacts = attachments.map((attachment) => {
1428
+ const contentType = attachment?.contentType ?? void 0;
1429
+ return {
1430
+ contentType,
1431
+ kind: kindFromMime(contentType) ?? "unknown"
1432
+ };
1433
+ });
1432
1434
  if (isGroup && requireMention && canDetectMention && mentionDecision.shouldSkip) {
1433
1435
  logInboundDrop({
1434
1436
  log: deps.runtime.log,
@@ -1438,14 +1440,7 @@ function createSignalEventHandler(deps) {
1438
1440
  onceKey: JSON.stringify([deps.accountId, groupId]),
1439
1441
  hint: `Mention patterns can be derived from the agent identity name. Set ${groupsConfigPath}[${JSON.stringify(groupId)}].requireMention=false to process messages without a mention. Preserve existing groups entries; when adding the first groups map, include "*": {} to keep other chats admitted.`
1440
1442
  });
1441
- const pendingMedia = (dataMessage.attachments ?? []).map((attachment) => {
1442
- const contentType = attachment?.contentType ?? void 0;
1443
- return {
1444
- contentType,
1445
- kind: kindFromMime(contentType) ?? "unknown"
1446
- };
1447
- });
1448
- const pendingMediaText = formatSignalMediaText(pendingMedia);
1443
+ const pendingMediaText = formatSignalMediaText(mediaFacts);
1449
1444
  const pendingBodyText = messageText || pendingMediaText || visibleQuoteText;
1450
1445
  const historyKey = groupId ?? "unknown";
1451
1446
  createChannelHistoryWindow({ historyMap: deps.groupHistories }).record({
@@ -1454,7 +1449,7 @@ function createSignalEventHandler(deps) {
1454
1449
  entry: {
1455
1450
  sender: envelope.sourceName ?? senderDisplay,
1456
1451
  body: messageText || visibleQuoteText,
1457
- media: toHistoryMediaEntries(pendingMedia),
1452
+ media: toHistoryMediaEntries(mediaFacts),
1458
1453
  timestamp: inboundTimestamp,
1459
1454
  messageId
1460
1455
  }
@@ -1465,7 +1460,7 @@ function createSignalEventHandler(deps) {
1465
1460
  replyToId,
1466
1461
  author: senderRecipient,
1467
1462
  body: messageText || visibleQuoteText,
1468
- media: pendingMedia,
1463
+ media: mediaFacts,
1469
1464
  sourceTimestamp: inboundTimestamp
1470
1465
  });
1471
1466
  const signalGroupPolicy = resolveChannelGroupPolicy({
@@ -1494,14 +1489,6 @@ function createSignalEventHandler(deps) {
1494
1489
  }))), "signal: mention-skip message hook failed");
1495
1490
  return;
1496
1491
  }
1497
- const attachments = dataMessage.attachments ?? [];
1498
- const mediaFacts = attachments.map((attachment) => {
1499
- const contentType = attachment?.contentType ?? void 0;
1500
- return {
1501
- contentType,
1502
- kind: kindFromMime(contentType) ?? "unknown"
1503
- };
1504
- });
1505
1492
  let unavailableAttachmentCount = deps.ignoreAttachments ? attachments.length : 0;
1506
1493
  if (!deps.ignoreAttachments) for (const [index, attachment] of attachments.entries()) {
1507
1494
  if (!attachment?.id) {
@@ -1735,10 +1722,6 @@ async function runSignalSseLoop({ baseUrl, account, abortSignal, runtime, onEven
1735
1722
  ...policy
1736
1723
  };
1737
1724
  let reconnectAttempts = 0;
1738
- const logReconnectVerbose = (message) => {
1739
- if (!shouldLogVerbose()) return;
1740
- logVerbose(message);
1741
- };
1742
1725
  for (;;) {
1743
1726
  if (abortSignal?.aborted) break;
1744
1727
  try {
@@ -1764,7 +1747,7 @@ async function runSignalSseLoop({ baseUrl, account, abortSignal, runtime, onEven
1764
1747
  publishSignalRecovering(statusSink);
1765
1748
  reconnectAttempts += 1;
1766
1749
  const delayMs = computeBackoff(reconnectPolicy, reconnectAttempts);
1767
- logReconnectVerbose(`Signal stream ended, reconnecting in ${delayMs / 1e3}s...`);
1750
+ logVerbose(`Signal stream ended, reconnecting in ${delayMs / 1e3}s...`);
1768
1751
  await sleepWithAbort(delayMs, abortSignal);
1769
1752
  } catch (err) {
1770
1753
  if (abortSignal?.aborted) return;
@@ -5,29 +5,17 @@ function normalizeSignalReactionRecipient(raw) {
5
5
  return /^uuid:/i.test(withoutSignal) ? withoutSignal.slice(5).trim() : withoutSignal;
6
6
  }
7
7
  function normalizeSignalMessagingTarget(raw) {
8
- const trimmed = raw.trim();
9
- if (!trimmed) return;
10
- let normalized = trimmed;
11
- if (normalizeLowercaseStringOrEmpty(normalized).startsWith("signal:")) normalized = normalized.slice(7).trim();
12
- if (!normalized) return;
13
- const lower = normalizeLowercaseStringOrEmpty(normalized);
14
- if (lower.startsWith("group:")) {
15
- const id = normalized.slice(6).trim();
16
- return id ? `group:${id}` : void 0;
8
+ const normalized = raw.trim().replace(/^signal:/i, "").trim();
9
+ const prefix = /^(group|username|u|uuid):/i.exec(normalized)?.[0];
10
+ if (!prefix) return normalizeLowercaseStringOrEmpty(normalized) || void 0;
11
+ const id = normalized.slice(prefix.length).trim();
12
+ if (!id) return;
13
+ switch (prefix.toLowerCase()) {
14
+ case "group:": return `group:${id}`;
15
+ case "username:":
16
+ case "u:": return normalizeLowercaseStringOrEmpty(`username:${id}`);
17
+ default: return normalizeLowercaseStringOrEmpty(id);
17
18
  }
18
- if (lower.startsWith("username:")) {
19
- const id = normalized.slice(9).trim();
20
- return id ? normalizeLowercaseStringOrEmpty(`username:${id}`) : void 0;
21
- }
22
- if (lower.startsWith("u:")) {
23
- const id = normalized.slice(2).trim();
24
- return id ? normalizeLowercaseStringOrEmpty(`username:${id}`) : void 0;
25
- }
26
- if (lower.startsWith("uuid:")) {
27
- const id = normalized.slice(5).trim();
28
- return id ? normalizeLowercaseStringOrEmpty(id) : void 0;
29
- }
30
- return normalizeLowercaseStringOrEmpty(normalized);
31
19
  }
32
20
  const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
33
21
  const UUID_COMPACT_PATTERN = /^[0-9a-f]{32}$/i;
@@ -1,6 +1,6 @@
1
- import { o as __exportAll } from "./doctor-contract-api-Db9V9gsY.mjs";
1
+ import { o as __exportAll } from "./doctor-contract-api-CGS80vmV.mjs";
2
2
  import { n as signalRpcRequest, t as signalCheck } from "./client-adapter-c_O1ouxZ.mjs";
3
- import { t as detectSignalTransport } from "./transport-detection-BVUDE42e.mjs";
3
+ import { t as detectSignalTransport } from "./transport-detection-CQSEftdN.mjs";
4
4
  import { normalizeOptionalString, normalizeTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { runChannelProbe } from "openclaw/plugin-sdk/text-utility-runtime";
6
6
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
@@ -1,7 +1,7 @@
1
1
  import { i as resolveSignalAccount } from "./accounts-DMtj2E-4.mjs";
2
- import { r as normalizeSignalReactionRecipient } from "./normalize-l_b99hap.mjs";
2
+ import { r as normalizeSignalReactionRecipient } from "./normalize-D7kSomXt.mjs";
3
3
  import { n as signalRpcRequest } from "./client-adapter-c_O1ouxZ.mjs";
4
- import { t as resolveSignalRpcContext } from "./rpc-context-D26RxFIm.mjs";
4
+ import { t as resolveSignalRpcContext } from "./rpc-context-BAXcX7dI.mjs";
5
5
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
6
6
  //#region extensions/signal/src/send-reactions.ts
7
7
  async function sendReactionSignalCore(params) {
@@ -1,6 +1,6 @@
1
- import { o as __exportAll } from "./doctor-contract-api-Db9V9gsY.mjs";
2
- import { i as resolveSignalDeliveredConversationKey } from "./approval-auth-CszS7gwf.mjs";
3
- import { c as resolveSignalApprovalTargetAuthorKeys, o as registerSignalApprovalReactionTargetForDeliveredPayload } from "./approval-reactions-BKkjIAoi.mjs";
1
+ import { o as __exportAll } from "./doctor-contract-api-CGS80vmV.mjs";
2
+ import { i as resolveSignalDeliveredConversationKey } from "./approval-auth-BITw96pZ.mjs";
3
+ import { c as resolveSignalApprovalTargetAuthorKeys, o as registerSignalApprovalReactionTargetForDeliveredPayload } from "./approval-reactions-BHIX1jwY.mjs";
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,14 +1,12 @@
1
- import "./accounts-DMtj2E-4.mjs";
2
1
  //#region extensions/signal/src/rpc-context.ts
3
2
  function resolveSignalRpcContext(opts, accountInfo) {
4
3
  const baseUrlOverride = opts.baseUrl?.trim();
5
4
  const accountOverride = opts.account?.trim();
6
- if ((!baseUrlOverride || !accountOverride) && !accountInfo) throw new Error("Signal account config is required when baseUrl or account is missing");
7
- const baseUrl = baseUrlOverride || accountInfo?.baseUrl;
5
+ const baseUrl = baseUrlOverride || accountInfo.baseUrl;
8
6
  if (!baseUrl) throw new Error("Signal base URL is required");
9
7
  return {
10
8
  baseUrl,
11
- account: accountOverride || accountInfo?.config.account?.trim() || void 0
9
+ account: accountOverride || accountInfo.config.account?.trim() || void 0
12
10
  };
13
11
  }
14
12
  //#endregion
@@ -1,10 +1,10 @@
1
- import { o as __exportAll } from "./doctor-contract-api-Db9V9gsY.mjs";
1
+ import { o as __exportAll } from "./doctor-contract-api-CGS80vmV.mjs";
2
2
  import { i as resolveSignalAccount } from "./accounts-DMtj2E-4.mjs";
3
- import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.mjs";
4
- import { p as registerSignalReplyContext, y as markdownToSignalText } from "./channel-DrUxv5cf.mjs";
3
+ import { n as normalizeSignalMessagingTarget } from "./normalize-D7kSomXt.mjs";
4
+ import { p as registerSignalReplyContext, y as markdownToSignalText } from "./channel-E_23H6I6.mjs";
5
5
  import { o as isSignalQuoteMetadataRejection } from "./client-AXcDteBZ.mjs";
6
6
  import { n as signalRpcRequest } from "./client-adapter-c_O1ouxZ.mjs";
7
- import { t as resolveSignalRpcContext } from "./rpc-context-D26RxFIm.mjs";
7
+ import { t as resolveSignalRpcContext } from "./rpc-context-BAXcX7dI.mjs";
8
8
  import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
9
9
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
10
10
  import { asPositiveSafeInteger, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -1,5 +1,5 @@
1
1
  import { i as resolveSignalAccount, n as listSignalAccountIds } from "./accounts-DMtj2E-4.mjs";
2
- import { c as signalNumberTextInput, i as createSignalCliPathTextInput, o as signalCompletionNote, s as signalDmPolicy } from "./channel-DrUxv5cf.mjs";
2
+ import { c as signalNumberTextInput, i as createSignalCliPathTextInput, o as signalCompletionNote, s as signalDmPolicy } from "./channel-E_23H6I6.mjs";
3
3
  import { r as installSignalCli } from "./install-signal-cli-ChvjzM6X.mjs";
4
4
  import { createDetectedBinaryStatus, createSetupTranslator, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
5
5
  import { detectBinary } from "openclaw/plugin-sdk/setup-tools";
@@ -1,4 +1,4 @@
1
- import { o as __exportAll } from "./doctor-contract-api-Db9V9gsY.mjs";
1
+ import { o as __exportAll } from "./doctor-contract-api-CGS80vmV.mjs";
2
2
  import { a as normalizeSignalTransportUrl } from "./transport-url-CAC0JcuI.mjs";
3
3
  //#region extensions/signal/src/transport-detection.ts
4
4
  var transport_detection_exports = /* @__PURE__ */ __exportAll({ detectSignalTransport: () => detectSignalTransport });
package/dist/api.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./.setup/accounts-DMtj2E-4.mjs";
2
- import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./.setup/normalize-l_b99hap.mjs";
2
+ import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./.setup/normalize-D7kSomXt.mjs";
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 "./.setup/identity-B3JyPqGO.mjs";
4
- import { _ as resolveSignalReactionLevel, a as normalizeSignalAccountInput, b as markdownToSignalTextChunks, d as probeSignalTransport, f as writeSignalAccountTransport, g as signalMessageActions, h as resolveSignalOutboundTarget, t as signalPlugin, u as prepareSignalManagedNativeTransport, y as markdownToSignalText } from "./.setup/channel-DrUxv5cf.mjs";
5
- import { n as sendReactionSignal, t as removeReactionSignal } from "./.setup/reaction-runtime-api-DDi5x2wC.mjs";
6
- import { t as detectSignalTransport } from "./.setup/transport-detection-BVUDE42e.mjs";
7
- import { t as signalSetupPlugin } from "./.setup/api-DEB0Obj8.mjs";
4
+ import { _ as resolveSignalReactionLevel, a as normalizeSignalAccountInput, b as markdownToSignalTextChunks, d as probeSignalTransport, f as writeSignalAccountTransport, g as signalMessageActions, h as resolveSignalOutboundTarget, t as signalPlugin, u as prepareSignalManagedNativeTransport, y as markdownToSignalText } from "./.setup/channel-E_23H6I6.mjs";
5
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./.setup/reaction-runtime-api-xqwxFZ2S.mjs";
6
+ import { t as detectSignalTransport } from "./.setup/transport-detection-CQSEftdN.mjs";
7
+ import { t as signalSetupPlugin } from "./.setup/api-BYvpXSbI.mjs";
8
8
  import { r as installSignalCli } from "./.setup/install-signal-cli-ChvjzM6X.mjs";
9
- import { t as monitorSignalProvider } from "./.setup/monitor-BfwQr78f.mjs";
10
- import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./.setup/send-DEjrbpIC.mjs";
11
- import { t as probeSignal } from "./.setup/probe-BYLzra6D.mjs";
9
+ import { t as monitorSignalProvider } from "./.setup/monitor-CG20ucVU.mjs";
10
+ import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./.setup/send-CAlJlhsT.mjs";
11
+ import { t as probeSignal } from "./.setup/probe-2LTiStRi.mjs";
12
12
  export { detectSignalTransport, formatSignalPairingIdLine, formatSignalSenderDisplay, formatSignalSenderId, installSignalCli, isSignalSenderAllowed, listEnabledSignalAccounts, listSignalAccountIds, looksLikeSignalTargetId, looksLikeUuid, markdownToSignalText, markdownToSignalTextChunks, monitorSignalProvider, normalizeSignalAccountInput, normalizeSignalAllowRecipient, normalizeSignalMessagingTarget, prepareSignalManagedNativeTransport, probeSignal, probeSignalTransport, removeReactionSignal, resolveDefaultSignalAccountId, resolveSignalAccount, resolveSignalOutboundTarget, resolveSignalPeerId, resolveSignalReactionLevel, resolveSignalRecipient, resolveSignalSender, sendMessageSignal, sendReactionSignal, sendReadReceiptSignal, sendTypingSignal, signalMessageActions, signalPlugin, signalSetupPlugin, writeSignalAccountTransport };
@@ -1,2 +1,2 @@
1
- import { t as signalPlugin } from "./.setup/channel-DrUxv5cf.mjs";
1
+ import { t as signalPlugin } from "./.setup/channel-E_23H6I6.mjs";
2
2
  export { signalPlugin };
@@ -1,4 +1,4 @@
1
- import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./.setup/normalize-l_b99hap.mjs";
1
+ import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./.setup/normalize-D7kSomXt.mjs";
2
2
  import { i as isSignalSenderAllowed } from "./.setup/identity-B3JyPqGO.mjs";
3
3
  import { a as looksLikeArchive, i as installSignalCliFromRelease, n as extractSignalCliArchive, o as pickAsset, r as installSignalCli, t as downloadToFile } from "./.setup/install-signal-cli-ChvjzM6X.mjs";
4
4
  export { downloadToFile, extractSignalCliArchive, installSignalCli, installSignalCliFromRelease, isSignalSenderAllowed, looksLikeArchive, looksLikeSignalTargetId, normalizeSignalMessagingTarget, normalizeSignalReactionRecipient, pickAsset };
@@ -1,2 +1,2 @@
1
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./.setup/doctor-contract-api-Db9V9gsY.mjs";
1
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./.setup/doctor-contract-api-CGS80vmV.mjs";
2
2
  export { legacyConfigRules, normalizeCompatibilityConfig };
@@ -1,2 +1,2 @@
1
- import { n as sendReactionSignal, t as removeReactionSignal } from "./.setup/reaction-runtime-api-DDi5x2wC.mjs";
1
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./.setup/reaction-runtime-api-xqwxFZ2S.mjs";
2
2
  export { removeReactionSignal, sendReactionSignal };