@pixelzx/genesis 2026.5.10-2 → 2026.5.10-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 (1017) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/.buildstamp +1 -1
  3. package/dist/abort-o_hg2xtq.js +201 -0
  4. package/dist/abort.runtime-C8y_LD66.js +2 -0
  5. package/dist/abort.runtime.js +1 -1
  6. package/dist/accounts-BaxyfsNG.js +107 -0
  7. package/dist/accounts-CBI-56kp.js +104 -0
  8. package/dist/accounts-m2xbhdqn.js +2 -0
  9. package/dist/acp-cli-BOlwnmxd.js +2193 -0
  10. package/dist/acp-spawn-BrI6X9SH.js +2 -0
  11. package/dist/acp-spawn-xahA0x4e.js +1093 -0
  12. package/dist/acp-stateful-target-driver-B0_0BB8d.js +89 -0
  13. package/dist/action-agents-BLXVAHpm.js +67 -0
  14. package/dist/action-focus-Bl80EFqG.js +132 -0
  15. package/dist/action-help-CBbcn9Xo.js +7 -0
  16. package/dist/action-info-DrggqbpC.js +101 -0
  17. package/dist/action-kill-p6a-p_Wl.js +33 -0
  18. package/dist/action-list-4o0eiRPy.js +21 -0
  19. package/dist/action-log-C2VTzCV-.js +30 -0
  20. package/dist/action-send-DQE2YhZv.js +39 -0
  21. package/dist/action-spawn-DeTOlrlr.js +47 -0
  22. package/dist/action-unfocus-CUJ_-To0.js +29 -0
  23. package/dist/actions.runtime-BME76tM1.js +18 -0
  24. package/dist/actions.runtime-DgFQtpdt.js +5 -0
  25. package/dist/actions.runtime.js +1 -1
  26. package/dist/agent-DvPQGyLY.js +2 -0
  27. package/dist/agent-command-Dv8Kifbw.js +874 -0
  28. package/dist/agent-harness-runtime-rPtHDzbH.js +144 -0
  29. package/dist/agent-runner-utils-Cwcsq2Vg.js +239 -0
  30. package/dist/agent-runner.runtime-EDmsi-tw.js +3455 -0
  31. package/dist/agent-runner.runtime.js +1 -1
  32. package/dist/agent-runtime-BZ7qw7Go.js +18 -0
  33. package/dist/agents-BmdK7DYn.js +954 -0
  34. package/dist/agents-ojp3yzuP.js +5 -0
  35. package/dist/aliases-B-xkGRWv.js +2 -0
  36. package/dist/aliases-CeyLk8gs.js +96 -0
  37. package/dist/api-7RMNrU--.js +139 -0
  38. package/dist/api-DuTxAbzX.js +5 -0
  39. package/dist/api-S68mLw4i.js +3 -0
  40. package/dist/approval-gateway-resolver-D6GUSzWU.js +29 -0
  41. package/dist/approval-gateway-runtime-CLSx2pjl.js +2 -0
  42. package/dist/approval-handler-runtime-D_pDErDf.js +439 -0
  43. package/dist/approval-native-runtime-DMmho8f_.js +729 -0
  44. package/dist/attempt-execution.runtime-BiBQNA9X.js +509 -0
  45. package/dist/attempt-execution.runtime.js +1 -1
  46. package/dist/attempt.prompt-helpers-NLkGfNY6.js +221 -0
  47. package/dist/attempt.tool-run-context-DWlgJ-_O.js +933 -0
  48. package/dist/audit-UgEtgbwZ.js +939 -0
  49. package/dist/audit.runtime--guvdA_A.js +7 -0
  50. package/dist/audit.runtime.js +1 -1
  51. package/dist/auth-C50R0MRq.js +2 -0
  52. package/dist/auth-D0-jQ58t.js +383 -0
  53. package/dist/auth-order-BFJrCRu5.js +96 -0
  54. package/dist/auth-order-DSgYrJ_p.js +2 -0
  55. package/dist/bash-tools-DHuwAZ58.js +2824 -0
  56. package/dist/bash-tools-D_feNjoF.js +3 -0
  57. package/dist/binding-routing-CY1eMDau.js +85 -0
  58. package/dist/binding-targets-WwNSyphm.js +121 -0
  59. package/dist/bridge-server-D6UfpfpG.js +113 -0
  60. package/dist/browser-control-auth-D68lDX1S.js +2 -0
  61. package/dist/browser-node-runtime-CY1lVQqq.js +12 -0
  62. package/dist/browser-profiles-B49YcSoc.js +2 -0
  63. package/dist/browser-runtime-BDL147Ka.js +387 -0
  64. package/dist/browser-setup-tools-C03RsiTe.js +13 -0
  65. package/dist/build-DLN8Lh14.js +550 -0
  66. package/dist/build-info.json +3 -3
  67. package/dist/bundled/boot-md/handler.js +2 -2
  68. package/dist/bundled/session-memory/handler.js +1 -1
  69. package/dist/call-BNALogg6.js +331 -0
  70. package/dist/call-PW7UP-CK.js +3 -0
  71. package/dist/call.runtime-CYfH8MdC.js +2 -0
  72. package/dist/call.runtime.js +1 -1
  73. package/dist/capability-cli-B4UpH1T0.js +1401 -0
  74. package/dist/catchup-CXQzIWv3.js +300 -0
  75. package/dist/channel-BiZSvVcj.js +297 -0
  76. package/dist/channel-BkI_5MRp.js +453 -0
  77. package/dist/channel-BnG-E5UX.js +595 -0
  78. package/dist/channel-CNZdJ8HY.js +1174 -0
  79. package/dist/channel-COcBdBbn.js +1100 -0
  80. package/dist/channel-CQI0hLJk.js +350 -0
  81. package/dist/channel-CkoM-a7d.js +226 -0
  82. package/dist/channel-CrHTdcH4.js +840 -0
  83. package/dist/channel-DvgX6dVj.js +1320 -0
  84. package/dist/channel-HtE-iRkv.js +491 -0
  85. package/dist/channel-OequV7Gf.js +1802 -0
  86. package/dist/channel-core-ChdqmAmk.js +5 -0
  87. package/dist/channel-inbound-Q2rVZZUs.js +31 -0
  88. package/dist/channel-plugin-runtime-DaijXHro.js +771 -0
  89. package/dist/channel-runtime-y4XUEoQY.js +425 -0
  90. package/dist/channel.runtime-BrEbVLLQ.js +576 -0
  91. package/dist/channel.runtime-C9UaDpbO.js +2364 -0
  92. package/dist/channel.runtime-Ccnjrmpx.js +109 -0
  93. package/dist/channel.runtime-CerUOlEZ.js +430 -0
  94. package/dist/channel.runtime-Du87a5jR.js +89 -0
  95. package/dist/channel.runtime-FklQos16.js +4 -0
  96. package/dist/channel.runtime-pynPO2Q-.js +34702 -0
  97. package/dist/channel.runtime.js +1 -1
  98. package/dist/channel.setup-D2BshGlh.js +10 -0
  99. package/dist/channels-DXbWBAhP.js +733 -0
  100. package/dist/channels-cli-DowVHylc.js +268 -0
  101. package/dist/chat-BMLW9p0d.js +2830 -0
  102. package/dist/clawbot-cli-DYF742Fr.js +9 -0
  103. package/dist/cli/daemon-cli.js +3 -3
  104. package/dist/cli-BebcHCJY.js +219 -0
  105. package/dist/cli-BnQ5RUbX.js +2 -0
  106. package/dist/cli-CsJTitwJ.js +72 -0
  107. package/dist/cli-D1z_Lra2.js +2 -0
  108. package/dist/cli-runner-DCfEJ3Dl.js +286 -0
  109. package/dist/cli-runner.runtime-1YoJduVc.js +3 -0
  110. package/dist/cli-runner.runtime-DaIWshs8.js +4 -0
  111. package/dist/cli-runner.runtime.js +1 -1
  112. package/dist/cli-startup-metadata.json +2 -2
  113. package/dist/cli.runtime-0QJWPe0Y.js +1261 -0
  114. package/dist/cli.runtime.js +1 -1
  115. package/dist/client-BR4n6hNI.js +713 -0
  116. package/dist/client-hrT_8w_f.js +138 -0
  117. package/dist/command-auth-BI6iswCp.js +76 -0
  118. package/dist/command-config-resolution-BvDykKQ0.js +23 -0
  119. package/dist/command-config-resolution-CJz3dmjF.js +2 -0
  120. package/dist/command-config-resolution.runtime-C1xIzrMA.js +2 -0
  121. package/dist/command-config-resolution.runtime.js +1 -1
  122. package/dist/command-registry-BQh49BOI.js +9 -0
  123. package/dist/command-registry-COW3Dwow.js +4 -0
  124. package/dist/command-registry-core-Bq5tHbQ5.js +106 -0
  125. package/dist/command-secret-gateway-CWH-56qF.js +528 -0
  126. package/dist/command-status.runtime-BUceIW-k.js +87 -0
  127. package/dist/command-status.runtime.js +1 -1
  128. package/dist/commands-acp-CDM0_szW.js +77 -0
  129. package/dist/commands-compact.runtime-BpuJhNyp.js +10 -0
  130. package/dist/commands-compact.runtime.js +1 -1
  131. package/dist/commands-handlers.runtime-DikW0yB0.js +4597 -0
  132. package/dist/commands-handlers.runtime.js +1 -1
  133. package/dist/commands-status-DgbzuFLf.js +16 -0
  134. package/dist/commands-status.runtime-BtoVY07x.js +3 -0
  135. package/dist/commands-status.runtime.js +1 -1
  136. package/dist/commands-subagents-control.runtime-B1MwVPHf.js +2 -0
  137. package/dist/commands-subagents-control.runtime-CPSMKJqB.js +3 -0
  138. package/dist/commands-subagents-control.runtime.js +1 -1
  139. package/dist/commands-system-prompt-DNA0qsTv.js +2 -0
  140. package/dist/commands-system-prompt-DdoBQ8ad.js +158 -0
  141. package/dist/commands.runtime-B8F59wvr.js +166 -0
  142. package/dist/commands.runtime.js +1 -1
  143. package/dist/compact-DevuFvwc.js +1118 -0
  144. package/dist/compact.runtime-DFxdJbZX.js +12 -0
  145. package/dist/compact.runtime.js +1 -1
  146. package/dist/completion-cli-94LY3Cno.js +328 -0
  147. package/dist/config-cli-3wKyVoWG.js +1078 -0
  148. package/dist/config-x0GQmd_p.js +252 -0
  149. package/dist/configure-DXBHXi9E.js +1252 -0
  150. package/dist/configure-iqDkqwpX.js +2 -0
  151. package/dist/connect-options-pZ4TVfhD.js +699 -0
  152. package/dist/control-auth-C0_VWbFV.js +125 -0
  153. package/dist/control-service-DKz9pgNJ.js +156 -0
  154. package/dist/conversation-id-C1ZMSaUv.js +235 -0
  155. package/dist/conversation-id-Cn8LoNiS.js +38 -0
  156. package/dist/conversation-runtime-PeJkl-ts.js +31 -0
  157. package/dist/core-BXR05azh.js +275 -0
  158. package/dist/cron-cli-C9SgQQXV.js +713 -0
  159. package/dist/daemon-cli-CJ8VUS9L.js +12 -0
  160. package/dist/dashboard-B7cbYfiK.js +81 -0
  161. package/dist/dashboard-SJJ1gpY7.js +2 -0
  162. package/dist/delegate-Bb6bHoIc.js +64 -0
  163. package/dist/detached-task-runtime-DUb2_Az9.js +73 -0
  164. package/dist/devices-cli-CZLTVAzc.js +498 -0
  165. package/dist/diagnostics-CElgAkJx.js +154 -0
  166. package/dist/direct-dm-B-q3BnYs.js +64 -0
  167. package/dist/dispatch-D6RvPlwP.js +1131 -0
  168. package/dist/dispatch-acp-Bit9gfDS.js +981 -0
  169. package/dist/dispatch-acp-manager.runtime-BDYoaEzk.js +3 -0
  170. package/dist/dispatch-acp-manager.runtime.js +1 -1
  171. package/dist/dispatch-acp.runtime-9yBydATu.js +19 -0
  172. package/dist/dispatch-acp.runtime.js +1 -1
  173. package/dist/doctor-device-pairing-CALw5gAh.js +307 -0
  174. package/dist/doctor-gateway-daemon-flow-DH90Xuwv.js +250 -0
  175. package/dist/doctor-gateway-health-DLTQr7oR.js +63 -0
  176. package/dist/doctor-health-UickjAEG.js +59 -0
  177. package/dist/doctor-health-contributions-CT2_osp-.js +493 -0
  178. package/dist/doctor-prompter-CmsL_aNs.js +56 -0
  179. package/dist/doctor-workspace-status-DrfJ_CMh.js +75 -0
  180. package/dist/dreaming-BjlelMwS.js +1574 -0
  181. package/dist/dreaming-narrative-Cioh4-iE.js +595 -0
  182. package/dist/embedded-gateway-stub.runtime-D3axE_Gz.js +9 -0
  183. package/dist/embedded-gateway-stub.runtime.js +1 -1
  184. package/dist/entry.js +2 -2
  185. package/dist/exec-approvals-cli-C61OIas5.js +498 -0
  186. package/dist/execute.runtime-Dh2PQVjB.js +1363 -0
  187. package/dist/execute.runtime.js +1 -1
  188. package/dist/extensionAPI.js +1 -1
  189. package/dist/extensions/active-memory/index.js +1 -1
  190. package/dist/extensions/bluebubbles/api.js +3 -3
  191. package/dist/extensions/bluebubbles/channel-plugin-api.js +1 -1
  192. package/dist/extensions/browser/browser-bridge.js +1 -1
  193. package/dist/extensions/browser/browser-config.js +4 -4
  194. package/dist/extensions/browser/browser-control-auth.js +2 -2
  195. package/dist/extensions/browser/browser-doctor.js +2 -2
  196. package/dist/extensions/browser/browser-maintenance.js +2 -2
  197. package/dist/extensions/browser/browser-profiles.js +2 -2
  198. package/dist/extensions/browser/browser-runtime-api.js +10 -10
  199. package/dist/extensions/browser/index.js +1 -1
  200. package/dist/extensions/browser/plugin-registration.js +1 -1
  201. package/dist/extensions/browser/register.runtime.js +3 -3
  202. package/dist/extensions/browser/runtime-api.js +11 -11
  203. package/dist/extensions/browser/test-support.js +1 -1
  204. package/dist/extensions/device-pair/api.js +1 -1
  205. package/dist/extensions/device-pair/index.js +3 -3
  206. package/dist/extensions/device-pair/notify.js +1 -1
  207. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  208. package/dist/extensions/google-meet/index.js +2 -2
  209. package/dist/extensions/imessage/api.js +3 -3
  210. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  211. package/dist/extensions/imessage/runtime-api.js +3 -3
  212. package/dist/extensions/irc/api.js +2 -2
  213. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  214. package/dist/extensions/line/api.js +2 -2
  215. package/dist/extensions/line/channel-plugin-api.js +1 -1
  216. package/dist/extensions/line/contract-api.js +1 -1
  217. package/dist/extensions/line/runtime-api.js +4 -4
  218. package/dist/extensions/line/setup-api.js +1 -1
  219. package/dist/extensions/llm-task/index.js +2 -2
  220. package/dist/extensions/lobster/index.js +3 -3
  221. package/dist/extensions/lobster/runtime-api.js +1 -1
  222. package/dist/extensions/mattermost/api.js +1 -1
  223. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  224. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  225. package/dist/extensions/mattermost/policy-api.js +1 -1
  226. package/dist/extensions/mattermost/runtime-api.js +4 -4
  227. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  228. package/dist/extensions/memory-core/api.js +1 -1
  229. package/dist/extensions/memory-core/cli-metadata.js +2 -2
  230. package/dist/extensions/memory-core/index.js +3 -3
  231. package/dist/extensions/memory-lancedb/cli-metadata.js +1 -1
  232. package/dist/extensions/msteams/api.js +1 -1
  233. package/dist/extensions/msteams/channel-plugin-api.js +1 -1
  234. package/dist/extensions/msteams/runtime-api.js +3 -3
  235. package/dist/extensions/msteams/test-api.js +1 -1
  236. package/dist/extensions/nextcloud-talk/api.js +1 -1
  237. package/dist/extensions/nextcloud-talk/channel-plugin-api.js +1 -1
  238. package/dist/extensions/nextcloud-talk/runtime-api.js +2 -2
  239. package/dist/extensions/openshell/index.js +2 -2
  240. package/dist/extensions/signal/api.js +6 -6
  241. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  242. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  243. package/dist/extensions/signal/runtime-api.js +7 -7
  244. package/dist/extensions/skill-workshop/api.js +1 -1
  245. package/dist/extensions/skill-workshop/index.js +1 -1
  246. package/dist/extensions/synology-chat/api.js +1 -1
  247. package/dist/extensions/synology-chat/channel-plugin-api.js +1 -1
  248. package/dist/extensions/tlon/api.js +2 -2
  249. package/dist/extensions/tlon/channel-plugin-api.js +1 -1
  250. package/dist/extensions/tlon/runtime-api.js +1 -1
  251. package/dist/extensions/tlon/test-api.js +1 -1
  252. package/dist/extensions/twitch/api.js +1 -1
  253. package/dist/extensions/twitch/channel-plugin-api.js +1 -1
  254. package/dist/extensions/twitch/setup-plugin-api.js +1 -1
  255. package/dist/extensions/zalo/api.js +3 -3
  256. package/dist/extensions/zalo/channel-plugin-api.js +1 -1
  257. package/dist/extensions/zalo/runtime-api.js +2 -2
  258. package/dist/extensions/zalo/setup-api.js +2 -2
  259. package/dist/extensions/zalouser/api.js +3 -3
  260. package/dist/extensions/zalouser/channel-plugin-api.js +1 -1
  261. package/dist/extensions/zalouser/runtime-api.js +6 -6
  262. package/dist/extensions/zalouser/setup-plugin-api.js +1 -1
  263. package/dist/extensions/zalouser/test-api.js +1 -1
  264. package/dist/fallbacks-7WaQrL4w.js +2 -0
  265. package/dist/fallbacks-D030WgeJ.js +31 -0
  266. package/dist/fallbacks-shared-D0Irg6Dc.js +111 -0
  267. package/dist/gateway-Drmf7aeu.js +115 -0
  268. package/dist/gateway-cli-DzsJzCar.js +1283 -0
  269. package/dist/gateway-rpc-ByhpcN5x.js +14 -0
  270. package/dist/gateway-rpc.runtime-4zXMZEZA.js +23 -0
  271. package/dist/gateway-rpc.runtime.js +1 -1
  272. package/dist/gateway-runtime-BGIrLVc5.js +15 -0
  273. package/dist/gateway-status-Dcpg0Z1K.js +584 -0
  274. package/dist/genesis-tools-ZNGlG9Ij.js +9144 -0
  275. package/dist/genesis-tools.runtime-CSl_w_fx.js +2 -0
  276. package/dist/genesis-tools.runtime.js +1 -1
  277. package/dist/get-reply-BG-YgQgk.js +3879 -0
  278. package/dist/get-reply-from-config.runtime-CTTbEqgi.js +2 -0
  279. package/dist/get-reply-from-config.runtime.js +1 -1
  280. package/dist/graph-users-DBkBwndc.js +1337 -0
  281. package/dist/health-DP9-SUDF.js +3 -0
  282. package/dist/health-Dn4lrkX0.js +469 -0
  283. package/dist/health-route-BOUp8_1m.js +2 -0
  284. package/dist/health-route-BhuLVeKt.js +41 -0
  285. package/dist/heartbeat-runner-B5ZUS0Zj.js +1292 -0
  286. package/dist/heartbeat-runner-BIlNfweM.js +5 -0
  287. package/dist/heartbeat-runner.runtime-YmoU6ZZ3.js +4 -0
  288. package/dist/heartbeat-runner.runtime.js +1 -1
  289. package/dist/hooks-cli-hN5FtPX4.js +433 -0
  290. package/dist/image-fallbacks-Cq3R8m7Y.js +2 -0
  291. package/dist/image-fallbacks-Dd4BCf1D.js +31 -0
  292. package/dist/inbound-reply-dispatch-Be4j__jx.js +73 -0
  293. package/dist/index.js +2 -2
  294. package/dist/infra-runtime-dEG-SNc-.js +39 -0
  295. package/dist/init-C1wrook_.js +59 -0
  296. package/dist/library-B6SYgaHj.js +45 -0
  297. package/dist/lifecycle-BJuODKPo.js +229 -0
  298. package/dist/lifecycle-Dhj0KywB.js +571 -0
  299. package/dist/lifecycle.runtime-CwSjoTkX.js +2 -0
  300. package/dist/lifecycle.runtime.js +1 -1
  301. package/dist/list-Bj2cpmBs.js +1212 -0
  302. package/dist/list-CBe1cOSo.js +2 -0
  303. package/dist/list-CktR5l_P.js +2 -0
  304. package/dist/list-ydeAMfpS.js +131 -0
  305. package/dist/list.probe-0SQPzjrW.js +419 -0
  306. package/dist/llm-slug-generator-CyQx7U_Q.js +79 -0
  307. package/dist/llm-slug-generator.js +1 -1
  308. package/dist/load-config-BHd00lHp.js +35 -0
  309. package/dist/local-dispatch.runtime-CqTNOXfw.js +8 -0
  310. package/dist/local-dispatch.runtime.js +1 -1
  311. package/dist/logs-cli-BWOEA5qi.js +265 -0
  312. package/dist/logs-cli.runtime-DSIEK1BE.js +2 -0
  313. package/dist/logs-cli.runtime.js +1 -1
  314. package/dist/main-session-restart-recovery-Cfc3B2Uj.js +206 -0
  315. package/dist/managed-image-attachments-BZbPdPC8.js +2 -0
  316. package/dist/managed-image-attachments-CxLohd8A.js +635 -0
  317. package/dist/manager-Cg7vl9NG.js +2057 -0
  318. package/dist/manager-CiI4zE-D.js +2 -0
  319. package/dist/markdown-to-line-B8FYeJdD.js +790 -0
  320. package/dist/mcp/plugin-tools-serve.js +1 -1
  321. package/dist/mcp-cli-BS4_9Zoo.js +725 -0
  322. package/dist/mcp-http-wF9LvDEz.js +529 -0
  323. package/dist/memory-core-host-runtime-cli-06ivr1qR.js +9 -0
  324. package/dist/message-BzaLYgSG.js +232 -0
  325. package/dist/message-action-runner-BazMarN6.js +1407 -0
  326. package/dist/message-action-runner-Bq7rUhnL.js +2 -0
  327. package/dist/message-actions-DcnuU8Sm.js +143 -0
  328. package/dist/message.gateway.runtime-BCFg5opz.js +2 -0
  329. package/dist/message.gateway.runtime.js +1 -1
  330. package/dist/models-auth-status-6d3I6qIv.js +201 -0
  331. package/dist/models-cli-DZPcli0C.js +219 -0
  332. package/dist/monitor-BYFZsGcy.js +2 -0
  333. package/dist/monitor-C2nxTIum.js +1459 -0
  334. package/dist/monitor-CD5DZfT0.js +1237 -0
  335. package/dist/monitor-C_5rnpcO.js +1661 -0
  336. package/dist/monitor-CxPzN2U-.js +671 -0
  337. package/dist/monitor-G_A80TYD.js +788 -0
  338. package/dist/monitor-auth-Bjr6pzE-.js +207 -0
  339. package/dist/monitor-processing-Du6MiEEU.js +1974 -0
  340. package/dist/monitor.runtime-BHjQO73F.js +2 -0
  341. package/dist/monitor.runtime.js +1 -1
  342. package/dist/monitor.webhook-BU61VqG-.js +180 -0
  343. package/dist/msteams-HKEY9u2h.js +35 -0
  344. package/dist/native-hook-relay-DcIfpN38.js +519 -0
  345. package/dist/nextcloud-talk-BAwtzO7T.js +17 -0
  346. package/dist/node-cli-BM5NVTG7.js +2506 -0
  347. package/dist/nodes-cli-BAuBgmem.js +1046 -0
  348. package/dist/nodes-utils-Bs6GofNl.js +84 -0
  349. package/dist/nodes.helpers-9SdaPWam.js +34 -0
  350. package/dist/notify-bMIvLU57.js +315 -0
  351. package/dist/onboard-DZRCsQKI.js +70 -0
  352. package/dist/onboard-WrvK1ncB.js +2 -0
  353. package/dist/onboard-helpers-iMWEmZ9M.js +204 -0
  354. package/dist/onboard-helpers-nf1FCDx1.js +6 -0
  355. package/dist/onboard-interactive-BqvHTpjq.js +24 -0
  356. package/dist/onboard-non-interactive-QqRYgGmh.js +548 -0
  357. package/dist/onboard-remote-Btb7Elo9.js +2 -0
  358. package/dist/onboard-remote-YLLAXD5a.js +193 -0
  359. package/dist/onboard-skills-CbVEWgXS.js +134 -0
  360. package/dist/onboard-skills-Dlrodw-j.js +2 -0
  361. package/dist/openai-http-D9C2CUw5.js +500 -0
  362. package/dist/openresponses-http-Cm1pNnoN.js +1128 -0
  363. package/dist/operator-approvals-client-Crk-kZWE.js +68 -0
  364. package/dist/outbound.runtime-EJrjRipL.js +2 -0
  365. package/dist/outbound.runtime.js +1 -1
  366. package/dist/pair-command-approve-BEGwU4IB.js +44 -0
  367. package/dist/persistent-bindings.lifecycle-DQF-e-Qa.js +85 -0
  368. package/dist/persistent-bindings.lifecycle-lkGrqLnW.js +2 -0
  369. package/dist/pi-embedded-BDlMkZq9.js +2905 -0
  370. package/dist/pi-embedded-Duzz1mtI.js +4 -0
  371. package/dist/pi-embedded.runtime-Ct_Aa3c5.js +4 -0
  372. package/dist/pi-embedded.runtime.js +1 -1
  373. package/dist/pi-tool-definition-adapter-CZw0LtV5.js +229 -0
  374. package/dist/pi-tools-C6B-SOzB.js +1057 -0
  375. package/dist/pi-tools.before-tool-call-9joq1aHl.js +2 -0
  376. package/dist/pi-tools.before-tool-call-DNnie5TY.js +433 -0
  377. package/dist/plugin-BCPNJxM9.js +12195 -0
  378. package/dist/plugin-enabled-BjLKAsAC.js +140 -0
  379. package/dist/plugin-registration-BId8vb01.js +23 -0
  380. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  381. package/dist/plugin-sdk/acp-binding-runtime.js +1 -1
  382. package/dist/plugin-sdk/acp-runtime.js +2 -2
  383. package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
  384. package/dist/plugin-sdk/agent-harness.js +6 -6
  385. package/dist/plugin-sdk/agent-runtime.js +2 -2
  386. package/dist/plugin-sdk/approval-gateway-runtime.js +2 -2
  387. package/dist/plugin-sdk/approval-handler-runtime.js +3 -3
  388. package/dist/plugin-sdk/approval-runtime.js +1 -1
  389. package/dist/plugin-sdk/browser-node-runtime.js +4 -4
  390. package/dist/plugin-sdk/browser-setup-tools.js +3 -3
  391. package/dist/plugin-sdk/browser-support.js +7 -7
  392. package/dist/plugin-sdk/channel-core.js +2 -2
  393. package/dist/plugin-sdk/channel-inbound.js +2 -2
  394. package/dist/plugin-sdk/command-auth.js +1 -1
  395. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  396. package/dist/plugin-sdk/compat.js +1 -1
  397. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  398. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  399. package/dist/plugin-sdk/core.js +2 -2
  400. package/dist/plugin-sdk/direct-dm.js +1 -1
  401. package/dist/plugin-sdk/gateway-runtime.js +3 -3
  402. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  403. package/dist/plugin-sdk/index.js +1 -1
  404. package/dist/plugin-sdk/infra-runtime.js +2 -2
  405. package/dist/plugin-sdk/irc.js +2 -2
  406. package/dist/plugin-sdk/matrix.js +1 -1
  407. package/dist/plugin-sdk/memory-core-host-runtime-cli.js +2 -2
  408. package/dist/plugin-sdk/memory-core.js +2 -2
  409. package/dist/plugin-sdk/msteams.js +2 -2
  410. package/dist/plugin-sdk/nextcloud-talk.js +2 -2
  411. package/dist/plugin-sdk/nostr.js +1 -1
  412. package/dist/plugin-sdk/reply-dispatch-runtime.js +1 -1
  413. package/dist/plugin-sdk/reply-runtime.js +4 -4
  414. package/dist/plugin-sdk/runtime-secret-resolution.js +1 -1
  415. package/dist/plugin-sdk/runtime.js +2 -2
  416. package/dist/plugin-sdk/session-visibility.js +1 -1
  417. package/dist/plugin-sdk/testing.js +4 -4
  418. package/dist/plugin-sdk/tlon.js +1 -1
  419. package/dist/plugin-sdk/zalo.js +1 -1
  420. package/dist/plugin-sdk/zalouser.js +1 -1
  421. package/dist/plugin-service-q43trexG.js +2892 -0
  422. package/dist/plugins/runtime/index.js +1 -1
  423. package/dist/policy-B4NUBI6t.js +328 -0
  424. package/dist/postinstall-inventory.json +417 -417
  425. package/dist/prepare.runtime-_zemfjv3.js +815 -0
  426. package/dist/prepare.runtime.js +1 -1
  427. package/dist/probe-BY3B9tTH.js +2205 -0
  428. package/dist/probe-BvnxVXPF.js +2 -0
  429. package/dist/probe-BxfJkCo7.js +1443 -0
  430. package/dist/probe-CVdSkKEj.js +241 -0
  431. package/dist/probe-HJKXZScl.js +74 -0
  432. package/dist/probe-cSkWLlnk.js +45 -0
  433. package/dist/probe-mvSMIO0q.js +2 -0
  434. package/dist/program-B59QlcJQ.js +111 -0
  435. package/dist/prompt-select-styled-4Jq2F-H9.js +20 -0
  436. package/dist/protocol-AGt54mci.js +2335 -0
  437. package/dist/provider-dispatcher-CP48ghhH.js +2 -0
  438. package/dist/provider-dispatcher-DEGzYrP8.js +22 -0
  439. package/dist/qr-cli-l0w87b13.js +349 -0
  440. package/dist/qr-cli-rJZ8om76.js +2 -0
  441. package/dist/reaction-runtime-api-Bkt3VyFC.js +116 -0
  442. package/dist/reactions-m2szYDeb.js +998 -0
  443. package/dist/register-service-commands-BW-5D4CL.js +71 -0
  444. package/dist/register.agent-0oONdLoj.js +248 -0
  445. package/dist/register.configure-DJgbhQEd.js +15 -0
  446. package/dist/register.maintenance-qDzsg7Rx.js +363 -0
  447. package/dist/register.message-D3IcSeh2.js +329 -0
  448. package/dist/register.onboard-712D2YIY.js +88 -0
  449. package/dist/register.runtime-9LgalpKP.js +81 -0
  450. package/dist/register.runtime.js +1 -1
  451. package/dist/register.setup-olmzCf4M.js +150 -0
  452. package/dist/register.status-health-sessions-BcSscPyw.js +1215 -0
  453. package/dist/register.subclis-Cb_7jF2M.js +29 -0
  454. package/dist/register.subclis-DohysWLE.js +3 -0
  455. package/dist/register.subclis-core-Db1skJ4w.js +249 -0
  456. package/dist/register.wallet-WGlu7P0C.js +271 -0
  457. package/dist/reply-dispatch-runtime-C6kPvDIT.js +13 -0
  458. package/dist/reply-runtime-m8R8imuO.js +11 -0
  459. package/dist/reply.runtime-yz20DuV3.js +2 -0
  460. package/dist/reply.runtime.js +1 -1
  461. package/dist/restart-health-B3BG9cWC.js +2 -0
  462. package/dist/restart-health-Blxs74k_.js +202 -0
  463. package/dist/root-help-CtdC-lhj.js +44 -0
  464. package/dist/routes-DlHk_d4H.js +2 -0
  465. package/dist/routes-vuPJqxDc.js +3341 -0
  466. package/dist/rpc-CvdOvi6M.js +61 -0
  467. package/dist/rpc.runtime-BTkO-5N6.js +21 -0
  468. package/dist/rpc.runtime.js +1 -1
  469. package/dist/run-delivery.runtime-Bu0IyFs-.js +530 -0
  470. package/dist/run-delivery.runtime.js +1 -1
  471. package/dist/run-embedded.runtime-Bptomyr6.js +4 -0
  472. package/dist/run-embedded.runtime.js +1 -1
  473. package/dist/run-execution-cli.runtime-DVoDazG0.js +4 -0
  474. package/dist/run-execution-cli.runtime.js +1 -1
  475. package/dist/run-executor.runtime-LRWKlZ-B.js +277 -0
  476. package/dist/run-executor.runtime.js +1 -1
  477. package/dist/run-main-C-5waIfA.js +567 -0
  478. package/dist/run-subagent-registry.runtime-eNmO4Ulf.js +2 -0
  479. package/dist/run-subagent-registry.runtime.js +1 -1
  480. package/dist/run-wait-CYFrtm-o.js +135 -0
  481. package/dist/runtime-BRPRR2hE.js +973 -0
  482. package/dist/runtime-CokulBmy.js +9 -0
  483. package/dist/runtime-api-BJ2r-OR5.js +14 -0
  484. package/dist/runtime-api-BfGhe369.js +9 -0
  485. package/dist/runtime-api-Bfjma1I2.js +9 -0
  486. package/dist/runtime-api-CxY0DKnr.js +4 -0
  487. package/dist/runtime-embedded-pi.runtime-BvnxDutF.js +2 -0
  488. package/dist/runtime-embedded-pi.runtime.js +1 -1
  489. package/dist/runtime-internal-BIVfP__L.js +2 -0
  490. package/dist/runtime-options-BljbnMxi.js +275 -0
  491. package/dist/runtime-schema-Dyv3hS1d.js +27938 -0
  492. package/dist/scan-D9X5Lj0l.js +523 -0
  493. package/dist/scan-M3OixEI7.js +2 -0
  494. package/dist/secrets-cli-fpxI67tT.js +2101 -0
  495. package/dist/security-cli-B9FOJsn-.js +486 -0
  496. package/dist/selection-CFlY2XMr.js +2 -0
  497. package/dist/selection-CdRMYsTR.js +7736 -0
  498. package/dist/send-BHKn9mJM.js +156 -0
  499. package/dist/send-CSAuufSI.js +102 -0
  500. package/dist/send.runtime-Csjbw0LF.js +2 -0
  501. package/dist/send.runtime.js +1 -1
  502. package/dist/server-CtGKkNXK.js +77 -0
  503. package/dist/server-QZSxYkIl.js +13 -0
  504. package/dist/server-context-CCzwJPYE.js +847 -0
  505. package/dist/server-context-SQimgHbw.js +2 -0
  506. package/dist/server-node-events-Bw07_egU.js +481 -0
  507. package/dist/server-plugin-bootstrap-BxVzrft3.js +2 -0
  508. package/dist/server-plugin-bootstrap-Ma9J_GSY.js +11652 -0
  509. package/dist/server-restart-sentinel-n_4jiXSF.js +697 -0
  510. package/dist/server.impl-CY_ZY-Mq.js +12822 -0
  511. package/dist/service-CPRBqblN.js +1446 -0
  512. package/dist/session-kill-http-bilLl8tM.js +110 -0
  513. package/dist/session-reset-service-DHbmMELT.js +471 -0
  514. package/dist/session-route-CHPZxwZH.js +93 -0
  515. package/dist/session-status.runtime-Cco6tPQ0.js +2 -0
  516. package/dist/session-status.runtime.js +1 -1
  517. package/dist/session-subagent-reactivation.runtime-D8SYYjgF.js +2 -0
  518. package/dist/session-subagent-reactivation.runtime.js +1 -1
  519. package/dist/session-tab-registry-9W3qSiwY.js +581 -0
  520. package/dist/session-visibility-Csvz8y2g.js +147 -0
  521. package/dist/sessions-helpers-DJtsPRok.js +304 -0
  522. package/dist/sessions-history-http-BwN8qdVu.js +383 -0
  523. package/dist/sessions-patch-Cn6ICCbl.js +309 -0
  524. package/dist/sessions-resolve-DkokaXLV.js +174 -0
  525. package/dist/sessions.runtime-CUhGDDdQ.js +2 -0
  526. package/dist/sessions.runtime.js +1 -1
  527. package/dist/setup-CXrByuF0.js +505 -0
  528. package/dist/setup-api-CAUnAQYK.js +29 -0
  529. package/dist/setup-core-0kUhQgXj.js +171 -0
  530. package/dist/setup-core-CgIvNnqV.js +176 -0
  531. package/dist/setup-surface-BICUCTSY.js +219 -0
  532. package/dist/setup-surface-CWN6fRnj.js +286 -0
  533. package/dist/setup-surface-DAO84q-l.js +403 -0
  534. package/dist/setup.finalize-Cz-xAyXq.js +547 -0
  535. package/dist/setup.gateway-config-B_6xO6qg.js +250 -0
  536. package/dist/shared-54WHS6Zf.js +198 -0
  537. package/dist/shared-BM7A3tRo.js +121 -0
  538. package/dist/shared-ZX79gVvR.js +76 -0
  539. package/dist/slash-state-D9XJzIhC.js +1911 -0
  540. package/dist/src-CeLenBVS.js +3974 -0
  541. package/dist/startup-context-ExpfHx39.js +312 -0
  542. package/dist/status-B3pfZ-ob.js +2 -0
  543. package/dist/status-BxtYUkFv.js +209 -0
  544. package/dist/status-CBKaYlp2.js +397 -0
  545. package/dist/status-DXMGfco1.js +3 -0
  546. package/dist/status-Dveq2FJA.js +190 -0
  547. package/dist/status-all-C0Rv7_MK.js +498 -0
  548. package/dist/status-json-command-FP5kOrjW.js +84 -0
  549. package/dist/status-json-jAko1YQ3.js +14 -0
  550. package/dist/status-ooCzELGj.js +2 -0
  551. package/dist/status-runtime-shared-t7ZNH_at.js +257 -0
  552. package/dist/status-subagents.runtime-B0-FFd7k.js +18 -0
  553. package/dist/status-subagents.runtime.js +1 -1
  554. package/dist/status-text-D5Wb2Eyv.js +237 -0
  555. package/dist/status.gateway-connection.runtime-DX3GFQOy.js +2 -0
  556. package/dist/status.gateway-connection.runtime.js +1 -1
  557. package/dist/status.gather-BLaJs7JK.js +292 -0
  558. package/dist/status.gather-DXcgE-uZ.js +2 -0
  559. package/dist/status.runtime-BW8lvcAk.js +2 -0
  560. package/dist/status.runtime.js +1 -1
  561. package/dist/status.scan-CqSxwChE.js +65 -0
  562. package/dist/status.scan-overview-C50E8dW7.js +379 -0
  563. package/dist/status.scan.fast-json-DZD93o5C.js +132 -0
  564. package/dist/status.scan.fast-json-aLbUp_Zj.js +2 -0
  565. package/dist/status.summary-CSXp0VuE.js +2 -0
  566. package/dist/status.summary-CZhlDozR.js +214 -0
  567. package/dist/subagent-announce-DQNhTREe.js +351 -0
  568. package/dist/subagent-announce-delivery-DzexQBXL.js +726 -0
  569. package/dist/subagent-announce-output-DHdUIOLb.js +364 -0
  570. package/dist/subagent-control-BIHPVfEC.js +506 -0
  571. package/dist/subagent-followup.runtime-B2vIi_N7.js +68 -0
  572. package/dist/subagent-followup.runtime.js +1 -1
  573. package/dist/subagent-orphan-recovery-acE2Akzk.js +305 -0
  574. package/dist/subagent-registry-DscgS64s.js +1753 -0
  575. package/dist/subagent-registry-VBEsKIg8.js +3 -0
  576. package/dist/subagent-registry.runtime.js +1 -1
  577. package/dist/subagent-spawn-ClpDxVim.js +1005 -0
  578. package/dist/system-cli-Cwoirti-.js +59 -0
  579. package/dist/targets-Du7kf5pU.js +67 -0
  580. package/dist/task-executor-Cex7gyKp.js +360 -0
  581. package/dist/task-owner-access-CfZCzFm8.js +74 -0
  582. package/dist/task-registry-delivery-runtime-7UMu_ADx.js +3 -0
  583. package/dist/task-registry-delivery-runtime-anQhKoeF.js +2 -0
  584. package/dist/task-registry-dsUR7cO8.js +2366 -0
  585. package/dist/task-registry.maintenance-8t06izZG.js +416 -0
  586. package/dist/task-registry.maintenance-BKCkUElL.js +2 -0
  587. package/dist/telegram/token.js +1 -1
  588. package/dist/testing-XS9mU0gy.js +575 -0
  589. package/dist/text-report-CW3trTAs.js +587 -0
  590. package/dist/tool-resolution-CbhdQ1Hc.js +90 -0
  591. package/dist/tools-effective-inventory-C-fhTbL3.js +152 -0
  592. package/dist/tools-invoke-http-DwLDiTC-.js +206 -0
  593. package/dist/trash-BPfwuXw1.js +24 -0
  594. package/dist/tui-cli-CwcpeUI3.js +4575 -0
  595. package/dist/update-cli-C7wZCVxw.js +1759 -0
  596. package/dist/upgrade-I1DlWIOT.js +1226 -0
  597. package/dist/video-generation-task-status-BTNgjS3Y.js +163 -0
  598. package/dist/wait-for-idle-before-flush-jA-mGgw_.js +5986 -0
  599. package/dist/wizard-models-CJ9pSHsX.js +334 -0
  600. package/package.json +1 -1
  601. package/dist/abort-CFK2Nhip.js +0 -201
  602. package/dist/abort.runtime-BuAaxnKL.js +0 -2
  603. package/dist/accounts-CHbim_qS.js +0 -107
  604. package/dist/accounts-DtkNyn-Q.js +0 -2
  605. package/dist/accounts-J3zyVXXx.js +0 -104
  606. package/dist/acp-cli-C3I6FHf2.js +0 -2193
  607. package/dist/acp-spawn-D3xu_-rE.js +0 -1093
  608. package/dist/acp-spawn-vcfww9lP.js +0 -2
  609. package/dist/acp-stateful-target-driver-CiSxPJNY.js +0 -89
  610. package/dist/action-agents-CIlhSgnP.js +0 -67
  611. package/dist/action-focus-Cf5CQqOj.js +0 -132
  612. package/dist/action-help-B0yl4Pe2.js +0 -7
  613. package/dist/action-info-CFUHIn0u.js +0 -101
  614. package/dist/action-kill-C95CsdAp.js +0 -33
  615. package/dist/action-list-BX3RIjsZ.js +0 -21
  616. package/dist/action-log-BOalIOnb.js +0 -30
  617. package/dist/action-send-Bw-K12vK.js +0 -39
  618. package/dist/action-spawn-DSTqN3n1.js +0 -47
  619. package/dist/action-unfocus-BRGuE47t.js +0 -29
  620. package/dist/actions.runtime-5qLo-JvI.js +0 -5
  621. package/dist/actions.runtime-CB7fr1mE.js +0 -18
  622. package/dist/agent-4OUfop4W.js +0 -2
  623. package/dist/agent-command-9KZKjUCs.js +0 -874
  624. package/dist/agent-harness-runtime-Dn6m6FbT.js +0 -144
  625. package/dist/agent-runner-utils-I_WM4CKu.js +0 -239
  626. package/dist/agent-runner.runtime-CXepXPjv.js +0 -3455
  627. package/dist/agent-runtime-DPkZZoYt.js +0 -18
  628. package/dist/agents-3DAP4x-2.js +0 -954
  629. package/dist/agents-DkjDVIbt.js +0 -5
  630. package/dist/aliases-83bfbKwd.js +0 -96
  631. package/dist/aliases-CNWj4VYC.js +0 -2
  632. package/dist/api-BEjdCEtU.js +0 -5
  633. package/dist/api-CkjarVLC.js +0 -139
  634. package/dist/api-Dn4kHUcI.js +0 -3
  635. package/dist/approval-gateway-resolver-CC1SlTbX.js +0 -29
  636. package/dist/approval-gateway-runtime-d2TZtKpe.js +0 -2
  637. package/dist/approval-handler-runtime-COVHjwvD.js +0 -439
  638. package/dist/approval-native-runtime-BVIV224X.js +0 -729
  639. package/dist/attempt-execution.runtime-CszeM4rO.js +0 -509
  640. package/dist/attempt.prompt-helpers-CJwtdWVk.js +0 -221
  641. package/dist/attempt.tool-run-context-D3pOtNpQ.js +0 -933
  642. package/dist/audit-CI0PTe8o.js +0 -939
  643. package/dist/audit.runtime-CVT0pKNw.js +0 -7
  644. package/dist/auth-B6BvjceY.js +0 -383
  645. package/dist/auth-C24A8Bdb.js +0 -2
  646. package/dist/auth-order--2Z2RfgO.js +0 -2
  647. package/dist/auth-order-Cab5pbli.js +0 -96
  648. package/dist/bash-tools-D4Ow1Dnu.js +0 -3
  649. package/dist/bash-tools-N8ycn0zw.js +0 -2824
  650. package/dist/binding-routing-IdC_J5YZ.js +0 -85
  651. package/dist/binding-targets-BD3JnlsK.js +0 -121
  652. package/dist/bridge-server-DReQkRlc.js +0 -113
  653. package/dist/browser-control-auth-BDpXA4Fa.js +0 -2
  654. package/dist/browser-node-runtime-CUEWaMPj.js +0 -12
  655. package/dist/browser-profiles-CKoK0REq.js +0 -2
  656. package/dist/browser-runtime-DctmCqop.js +0 -387
  657. package/dist/browser-setup-tools-D_hWDm_d.js +0 -13
  658. package/dist/build-00dHETnB.js +0 -550
  659. package/dist/call-BEBMfrmf.js +0 -331
  660. package/dist/call-J1xym_da.js +0 -3
  661. package/dist/call.runtime-DpiL_m7V.js +0 -2
  662. package/dist/capability-cli-Dcgy6e0s.js +0 -1401
  663. package/dist/catchup-BIWAuu8n.js +0 -300
  664. package/dist/channel-1CgTIJaH.js +0 -595
  665. package/dist/channel-471U1pny.js +0 -1100
  666. package/dist/channel-B-pPhXQ4.js +0 -453
  667. package/dist/channel-BYutJYNS.js +0 -297
  668. package/dist/channel-C2g916cY.js +0 -491
  669. package/dist/channel-C5JVIEYG.js +0 -226
  670. package/dist/channel-C6PLBfBu.js +0 -1320
  671. package/dist/channel-DFhzKEOr.js +0 -1802
  672. package/dist/channel-DaaKYb-X.js +0 -350
  673. package/dist/channel-LS_UWVN6.js +0 -840
  674. package/dist/channel-UwrUqsgJ.js +0 -1174
  675. package/dist/channel-core-u67ncUuJ.js +0 -5
  676. package/dist/channel-inbound-CZj1nuJ5.js +0 -31
  677. package/dist/channel-plugin-runtime-DbjaJmEm.js +0 -771
  678. package/dist/channel-runtime-o1M6R948.js +0 -425
  679. package/dist/channel.runtime-BBqx6vVj.js +0 -430
  680. package/dist/channel.runtime-ChXnhf2V.js +0 -2364
  681. package/dist/channel.runtime-CiZ5wg5-.js +0 -89
  682. package/dist/channel.runtime-DOIkahiZ.js +0 -109
  683. package/dist/channel.runtime-DUe0Bv9U.js +0 -4
  684. package/dist/channel.runtime-DwICmfFu.js +0 -576
  685. package/dist/channel.runtime-EBX0cQWh.js +0 -34702
  686. package/dist/channel.setup-DtHhxlgN.js +0 -10
  687. package/dist/channels-ChLA3Mda.js +0 -733
  688. package/dist/channels-cli-BqXA071P.js +0 -268
  689. package/dist/chat-B0vA8pOW.js +0 -2830
  690. package/dist/clawbot-cli-BkpkeI6b.js +0 -9
  691. package/dist/cli-DLD4HPRd.js +0 -72
  692. package/dist/cli-ME5Ufp83.js +0 -219
  693. package/dist/cli-ZcCIz0qL.js +0 -2
  694. package/dist/cli-eAgnabrD.js +0 -2
  695. package/dist/cli-runner-BBu8Rh95.js +0 -286
  696. package/dist/cli-runner.runtime-VDLuf97Y.js +0 -4
  697. package/dist/cli-runner.runtime-jK2bwGDS.js +0 -3
  698. package/dist/cli.runtime-BquKQJFI.js +0 -1261
  699. package/dist/client-CDLetywx.js +0 -713
  700. package/dist/client-CvwHGzRM.js +0 -138
  701. package/dist/command-auth-BavEEGzq.js +0 -76
  702. package/dist/command-config-resolution-CgnDlwiW.js +0 -2
  703. package/dist/command-config-resolution-M1sLQtCC.js +0 -23
  704. package/dist/command-config-resolution.runtime-BjVMJcFa.js +0 -2
  705. package/dist/command-registry-BuZbFhmG.js +0 -4
  706. package/dist/command-registry-DugzbSDU.js +0 -9
  707. package/dist/command-registry-core-BF-C6kEk.js +0 -106
  708. package/dist/command-secret-gateway-DJUQmmqr.js +0 -528
  709. package/dist/command-status.runtime-Ws0MIfwY.js +0 -87
  710. package/dist/commands-acp-COM5kx3I.js +0 -77
  711. package/dist/commands-compact.runtime-ZKLATU16.js +0 -10
  712. package/dist/commands-handlers.runtime-BonxJuOb.js +0 -4597
  713. package/dist/commands-status-fYAnTzxd.js +0 -16
  714. package/dist/commands-status.runtime-NM9_L71Y.js +0 -3
  715. package/dist/commands-subagents-control.runtime-C7DNjqgK.js +0 -2
  716. package/dist/commands-subagents-control.runtime-DrvwTszJ.js +0 -3
  717. package/dist/commands-system-prompt-CF7mFq3s.js +0 -158
  718. package/dist/commands-system-prompt-DAynyctS.js +0 -2
  719. package/dist/commands.runtime-CdVSeunO.js +0 -166
  720. package/dist/compact-CQZ7fcfj.js +0 -1118
  721. package/dist/compact.runtime-QhgOP3dH.js +0 -12
  722. package/dist/completion-cli-CkA79Zyd.js +0 -328
  723. package/dist/config-B0nwYGOq.js +0 -252
  724. package/dist/config-cli-DQy3aiyu.js +0 -1078
  725. package/dist/configure-D9182v2z.js +0 -1252
  726. package/dist/configure-DFK_gG4o.js +0 -2
  727. package/dist/connect-options-ClIicH76.js +0 -699
  728. package/dist/control-auth-C9KfGTux.js +0 -125
  729. package/dist/control-service-BNB3JMwD.js +0 -156
  730. package/dist/conversation-id-BfPCu1Wm.js +0 -235
  731. package/dist/conversation-id-Btjce0dU.js +0 -38
  732. package/dist/conversation-runtime-nC5e5AUD.js +0 -31
  733. package/dist/core-cKYNneLh.js +0 -275
  734. package/dist/cron-cli-B61Ct4d1.js +0 -713
  735. package/dist/daemon-cli-BDUJ0J9c.js +0 -12
  736. package/dist/dashboard-BY0SQ1Xk.js +0 -81
  737. package/dist/dashboard-BfFLhcnp.js +0 -2
  738. package/dist/delegate-C5l7xFfl.js +0 -64
  739. package/dist/detached-task-runtime-jUnU2hI1.js +0 -73
  740. package/dist/devices-cli-C2Yk5InD.js +0 -498
  741. package/dist/diagnostics-vLNGss4R.js +0 -154
  742. package/dist/direct-dm-CY7NvWjO.js +0 -64
  743. package/dist/dispatch-acp-D7us-JIr.js +0 -981
  744. package/dist/dispatch-acp-manager.runtime-CvUvPlIu.js +0 -3
  745. package/dist/dispatch-acp.runtime-BD04s8Zg.js +0 -19
  746. package/dist/dispatch-dxndBjvg.js +0 -1131
  747. package/dist/doctor-device-pairing-BWOuDvCO.js +0 -307
  748. package/dist/doctor-gateway-daemon-flow-CfcG9HqL.js +0 -250
  749. package/dist/doctor-gateway-health-CgtIAXiV.js +0 -63
  750. package/dist/doctor-health-Dl8qTbf0.js +0 -59
  751. package/dist/doctor-health-contributions-7VvQGU8Z.js +0 -493
  752. package/dist/doctor-prompter-C1E_9epq.js +0 -56
  753. package/dist/doctor-workspace-status-D_hKwgSB.js +0 -75
  754. package/dist/dreaming-narrative-CGIhjB7J.js +0 -595
  755. package/dist/dreaming-zER_6Edx.js +0 -1574
  756. package/dist/embedded-gateway-stub.runtime-DW85g-TS.js +0 -9
  757. package/dist/exec-approvals-cli-Cw---PEd.js +0 -498
  758. package/dist/execute.runtime-g2ckBHQo.js +0 -1366
  759. package/dist/fallbacks-pV2ELjMN.js +0 -31
  760. package/dist/fallbacks-shared-w3hzF-a3.js +0 -111
  761. package/dist/fallbacks-w-04P5Ca.js +0 -2
  762. package/dist/gateway-D6iHe5yM.js +0 -115
  763. package/dist/gateway-cli-DA66EGkc.js +0 -1283
  764. package/dist/gateway-rpc-C-wnj8-r.js +0 -14
  765. package/dist/gateway-rpc.runtime-UIPl38ru.js +0 -23
  766. package/dist/gateway-runtime-4_MNp5Fb.js +0 -15
  767. package/dist/gateway-status-qhNQ0-uT.js +0 -584
  768. package/dist/genesis-tools-Zt9xVisn.js +0 -9144
  769. package/dist/genesis-tools.runtime-DOqh6dkQ.js +0 -2
  770. package/dist/get-reply-DQ0O9TtJ.js +0 -3879
  771. package/dist/get-reply-from-config.runtime-BuatHlOY.js +0 -2
  772. package/dist/graph-users-wwfIkVlV.js +0 -1337
  773. package/dist/health-Be7drwbn.js +0 -3
  774. package/dist/health-DJnGvMzg.js +0 -469
  775. package/dist/health-route-Du-tYbyy.js +0 -41
  776. package/dist/health-route-yas5DRN8.js +0 -2
  777. package/dist/heartbeat-runner-CgkBGYmZ.js +0 -1292
  778. package/dist/heartbeat-runner-DGh3rGv3.js +0 -5
  779. package/dist/heartbeat-runner.runtime-Cx_T3Yrs.js +0 -4
  780. package/dist/hooks-cli-BMwaAVjB.js +0 -433
  781. package/dist/image-fallbacks-NW-B8h53.js +0 -31
  782. package/dist/image-fallbacks-twUg-Ew1.js +0 -2
  783. package/dist/inbound-reply-dispatch-B3xJheBv.js +0 -73
  784. package/dist/infra-runtime-D0KgiuPR.js +0 -39
  785. package/dist/init-Bw8qk4Lv.js +0 -59
  786. package/dist/library-BNl9tYJG.js +0 -45
  787. package/dist/lifecycle-8ptHb58U.js +0 -571
  788. package/dist/lifecycle-CRrSobXZ.js +0 -229
  789. package/dist/lifecycle.runtime-BDtzaxrU.js +0 -2
  790. package/dist/list-C-ACwyIs.js +0 -131
  791. package/dist/list-CJ6S9iAc.js +0 -1212
  792. package/dist/list-DYwQ_Gfw.js +0 -2
  793. package/dist/list-kHLQDpvt.js +0 -2
  794. package/dist/list.probe-CBJUHqju.js +0 -419
  795. package/dist/llm-slug-generator-DLZt8Bt6.js +0 -79
  796. package/dist/load-config-D_5019M3.js +0 -35
  797. package/dist/local-dispatch.runtime-Dau5kHVW.js +0 -8
  798. package/dist/logs-cli-B1tDn7oN.js +0 -265
  799. package/dist/logs-cli.runtime-Cx4fMzWz.js +0 -2
  800. package/dist/main-session-restart-recovery-CK0sXd7f.js +0 -206
  801. package/dist/managed-image-attachments-97PVDeFD.js +0 -635
  802. package/dist/managed-image-attachments-CC4KLL8v.js +0 -2
  803. package/dist/manager-BQ31y7iX.js +0 -2057
  804. package/dist/manager-CFkV693Y.js +0 -2
  805. package/dist/markdown-to-line-zHVHdZSu.js +0 -790
  806. package/dist/mcp-cli-DJlict1A.js +0 -725
  807. package/dist/mcp-http-BARh68Sy.js +0 -529
  808. package/dist/memory-core-host-runtime-cli-BoZwOAnU.js +0 -9
  809. package/dist/message-BlYpA3Rj.js +0 -232
  810. package/dist/message-action-runner-l7HQgRsA.js +0 -2
  811. package/dist/message-action-runner-xpyTSTjc.js +0 -1407
  812. package/dist/message-actions-BYCdd6QG.js +0 -143
  813. package/dist/message.gateway.runtime-Cb8XMFan.js +0 -2
  814. package/dist/models-auth-status-D3gt082v.js +0 -201
  815. package/dist/models-cli-9FhzxcFw.js +0 -219
  816. package/dist/monitor-B0WA83w1.js +0 -788
  817. package/dist/monitor-B6-pdSFR.js +0 -671
  818. package/dist/monitor-BX1yfW2U.js +0 -2
  819. package/dist/monitor-DKv9iSX7.js +0 -1459
  820. package/dist/monitor-DNDx4gOO.js +0 -1237
  821. package/dist/monitor-DpAuHTne.js +0 -1661
  822. package/dist/monitor-auth-B42F9dgo.js +0 -207
  823. package/dist/monitor-processing-DyP1l7Er.js +0 -1974
  824. package/dist/monitor.runtime-DbcwE5XS.js +0 -2
  825. package/dist/monitor.webhook-Dthw-aQB.js +0 -180
  826. package/dist/msteams-D2mb7FnE.js +0 -35
  827. package/dist/native-hook-relay-CdaoEdNX.js +0 -519
  828. package/dist/nextcloud-talk-B18eVVV7.js +0 -17
  829. package/dist/node-cli-Ck0VwYwV.js +0 -2506
  830. package/dist/nodes-cli-DC-DcHIP.js +0 -1046
  831. package/dist/nodes-utils-BWIRDyv_.js +0 -84
  832. package/dist/nodes.helpers-BEHH7X2_.js +0 -34
  833. package/dist/notify-JkL7xdrB.js +0 -315
  834. package/dist/onboard-C5BIoHo2.js +0 -70
  835. package/dist/onboard-helpers-C2zyBKT7.js +0 -204
  836. package/dist/onboard-helpers-CaQKQFzC.js +0 -6
  837. package/dist/onboard-interactive-Bq6kHQx1.js +0 -24
  838. package/dist/onboard-non-interactive-DQFp1nqn.js +0 -548
  839. package/dist/onboard-qYbyvbbw.js +0 -2
  840. package/dist/onboard-remote-BrlKFoRp.js +0 -193
  841. package/dist/onboard-remote-CGK4Eovr.js +0 -2
  842. package/dist/onboard-skills-BOatQ3qu.js +0 -2
  843. package/dist/onboard-skills-MIp5L4Bg.js +0 -134
  844. package/dist/openai-http-BzR_snW0.js +0 -500
  845. package/dist/openresponses-http-D_qmLKbV.js +0 -1128
  846. package/dist/operator-approvals-client-BMXsikiI.js +0 -68
  847. package/dist/outbound.runtime-sBaP-y4C.js +0 -2
  848. package/dist/pair-command-approve-DJLjxT6x.js +0 -44
  849. package/dist/persistent-bindings.lifecycle-DzeMqt76.js +0 -85
  850. package/dist/persistent-bindings.lifecycle-zRaTKjMh.js +0 -2
  851. package/dist/pi-embedded-CeDhWvgx.js +0 -4
  852. package/dist/pi-embedded-DUpRXfJO.js +0 -2905
  853. package/dist/pi-embedded.runtime-DtYM7NdD.js +0 -4
  854. package/dist/pi-tool-definition-adapter-CB0HS-nc.js +0 -229
  855. package/dist/pi-tools-Bj9D94l1.js +0 -1057
  856. package/dist/pi-tools.before-tool-call-BbQkYemc.js +0 -2
  857. package/dist/pi-tools.before-tool-call-DgbBDh3b.js +0 -433
  858. package/dist/plugin-PC7i4gKf.js +0 -12195
  859. package/dist/plugin-enabled-CfTRDw44.js +0 -140
  860. package/dist/plugin-registration-B-k3D6sT.js +0 -23
  861. package/dist/plugin-service-BK8-VUTt.js +0 -2892
  862. package/dist/policy-BW0acqi4.js +0 -328
  863. package/dist/prepare.runtime-_AbiM89x.js +0 -815
  864. package/dist/probe-BMLDcZ32.js +0 -241
  865. package/dist/probe-Ba3TRP2B.js +0 -45
  866. package/dist/probe-CUiwktQB.js +0 -74
  867. package/dist/probe-DebEe8F0.js +0 -2
  868. package/dist/probe-DezLtnJj.js +0 -2
  869. package/dist/probe-V8OIWFIZ.js +0 -1443
  870. package/dist/probe-dGp0-neY.js +0 -2205
  871. package/dist/program-DW7m0H8i.js +0 -111
  872. package/dist/prompt-select-styled-jplnVzKe.js +0 -20
  873. package/dist/protocol-C83jsm03.js +0 -2335
  874. package/dist/provider-dispatcher-CE-8HFJ3.js +0 -22
  875. package/dist/provider-dispatcher-CvSHrBCK.js +0 -2
  876. package/dist/qr-cli-N0rKzCLa.js +0 -349
  877. package/dist/qr-cli-anaRAjRO.js +0 -2
  878. package/dist/reaction-runtime-api-D0RKf7dw.js +0 -116
  879. package/dist/reactions-D5tTqX43.js +0 -998
  880. package/dist/register-service-commands-DR8PFCDH.js +0 -71
  881. package/dist/register.agent-C0S6Qd9d.js +0 -248
  882. package/dist/register.configure-Syn4zjBT.js +0 -15
  883. package/dist/register.maintenance-DlWVxmgp.js +0 -363
  884. package/dist/register.message-Ca0UvwH3.js +0 -329
  885. package/dist/register.onboard-BrPnofu3.js +0 -88
  886. package/dist/register.runtime-DrxUrGzO.js +0 -81
  887. package/dist/register.setup-DgnkDiBO.js +0 -150
  888. package/dist/register.status-health-sessions-BvccPkCF.js +0 -1215
  889. package/dist/register.subclis-BybdnCZ1.js +0 -29
  890. package/dist/register.subclis-CmiGzm_7.js +0 -3
  891. package/dist/register.subclis-core-CdzVfdg9.js +0 -249
  892. package/dist/register.wallet-CY_R6-2U.js +0 -271
  893. package/dist/reply-dispatch-runtime-C1FpfnAM.js +0 -13
  894. package/dist/reply-runtime-s43-M8Jj.js +0 -11
  895. package/dist/reply.runtime-7wnQxEUw.js +0 -2
  896. package/dist/restart-health-COnZzsKp.js +0 -202
  897. package/dist/restart-health-eI6OqLsK.js +0 -2
  898. package/dist/root-help-DeQ9PX0j.js +0 -44
  899. package/dist/routes-BWEN5YAF.js +0 -2
  900. package/dist/routes-C672_WKa.js +0 -3341
  901. package/dist/rpc-B426srGJ.js +0 -61
  902. package/dist/rpc.runtime-DUM1XyRX.js +0 -21
  903. package/dist/run-delivery.runtime-CXw2jVkt.js +0 -530
  904. package/dist/run-embedded.runtime-xS-1mmyO.js +0 -4
  905. package/dist/run-execution-cli.runtime-aDPMKzJX.js +0 -4
  906. package/dist/run-executor.runtime-C4ZFsj8q.js +0 -277
  907. package/dist/run-main-4Rq8UxLR.js +0 -567
  908. package/dist/run-subagent-registry.runtime-DzAf7j8r.js +0 -2
  909. package/dist/run-wait-T_9raRki.js +0 -135
  910. package/dist/runtime-Bi-FG7ze.js +0 -973
  911. package/dist/runtime-DTEEU-FQ.js +0 -9
  912. package/dist/runtime-api-CD1uwpvJ.js +0 -4
  913. package/dist/runtime-api-CuUMmc6o.js +0 -9
  914. package/dist/runtime-api-D1I8x3ZK.js +0 -9
  915. package/dist/runtime-api-N4ICzHSN.js +0 -14
  916. package/dist/runtime-embedded-pi.runtime-TzUSObio.js +0 -2
  917. package/dist/runtime-internal-BpmmUWVj.js +0 -2
  918. package/dist/runtime-options-lwiANMrp.js +0 -275
  919. package/dist/runtime-schema-DyZs3Hqj.js +0 -27938
  920. package/dist/scan-KAzO-hG8.js +0 -523
  921. package/dist/scan-WYNB2yvG.js +0 -2
  922. package/dist/secrets-cli-V8e9noRa.js +0 -2101
  923. package/dist/security-cli-DQAHIStH.js +0 -486
  924. package/dist/selection-B1sx7E0M.js +0 -2
  925. package/dist/selection-CdYrfYRk.js +0 -7736
  926. package/dist/send-CS2Grx1T.js +0 -102
  927. package/dist/send-DD9fqnsS.js +0 -156
  928. package/dist/send.runtime-UBa9b0KL.js +0 -2
  929. package/dist/server-DTBpPcSJ.js +0 -77
  930. package/dist/server-LnjMkCwG.js +0 -13
  931. package/dist/server-context-CgUkot1S.js +0 -2
  932. package/dist/server-context-e5qiFYb9.js +0 -847
  933. package/dist/server-node-events-DGbm1S0O.js +0 -481
  934. package/dist/server-plugin-bootstrap-BAb2yBlZ.js +0 -11652
  935. package/dist/server-plugin-bootstrap-QC6Ie4eo.js +0 -2
  936. package/dist/server-restart-sentinel-CHIEkMav.js +0 -697
  937. package/dist/server.impl-smIsMGyM.js +0 -12822
  938. package/dist/service-CzJ-5DK_.js +0 -1415
  939. package/dist/session-kill-http-J_6Qu28L.js +0 -110
  940. package/dist/session-reset-service-BpBipveT.js +0 -471
  941. package/dist/session-route-CpYl3T8Y.js +0 -93
  942. package/dist/session-status.runtime-UUa0VU0y.js +0 -2
  943. package/dist/session-subagent-reactivation.runtime-L2O0yOy4.js +0 -2
  944. package/dist/session-tab-registry-DxPANUw6.js +0 -581
  945. package/dist/session-visibility-CPIadgvQ.js +0 -147
  946. package/dist/sessions-helpers-DdEWQ3o2.js +0 -304
  947. package/dist/sessions-history-http-B9AS9VFQ.js +0 -383
  948. package/dist/sessions-patch-DRBy0uu3.js +0 -309
  949. package/dist/sessions-resolve-DM6s9pot.js +0 -174
  950. package/dist/sessions.runtime-ixcVUViJ.js +0 -2
  951. package/dist/setup-BKyIGRRk.js +0 -505
  952. package/dist/setup-api-D3Djxtka.js +0 -29
  953. package/dist/setup-core-C5ITyKzA.js +0 -171
  954. package/dist/setup-core-Nm6km7jp.js +0 -176
  955. package/dist/setup-surface-BEpfVHSH.js +0 -403
  956. package/dist/setup-surface-D4gEPCHR.js +0 -219
  957. package/dist/setup-surface-DdkjjhYB.js +0 -286
  958. package/dist/setup.finalize-BOnrhqzV.js +0 -547
  959. package/dist/setup.gateway-config-CmRGTkaE.js +0 -250
  960. package/dist/shared-Bb4YCXx6.js +0 -198
  961. package/dist/shared-CZCh0WCN.js +0 -121
  962. package/dist/shared-Df0CbtUw.js +0 -76
  963. package/dist/slash-state-BQJu5tOn.js +0 -1911
  964. package/dist/src-C4ImkbSW.js +0 -3974
  965. package/dist/startup-context-nffy5sQU.js +0 -312
  966. package/dist/status-0QDxMlFq.js +0 -2
  967. package/dist/status-5OjwhqkA.js +0 -209
  968. package/dist/status-C306d1iE.js +0 -2
  969. package/dist/status-Crg2u6MB.js +0 -397
  970. package/dist/status-DMLvl7RU.js +0 -190
  971. package/dist/status-N59cRl1N.js +0 -3
  972. package/dist/status-all-WKQtyBf9.js +0 -498
  973. package/dist/status-json-C2DgeCRG.js +0 -14
  974. package/dist/status-json-command-B2k_1ZuR.js +0 -84
  975. package/dist/status-runtime-shared-ZCbKKj-y.js +0 -257
  976. package/dist/status-subagents.runtime-CmaY9hZm.js +0 -18
  977. package/dist/status-text-NR1x0nMa.js +0 -237
  978. package/dist/status.gateway-connection.runtime-DBlvpSWB.js +0 -2
  979. package/dist/status.gather-BkL7J_y1.js +0 -292
  980. package/dist/status.gather-CWbs5-z2.js +0 -2
  981. package/dist/status.runtime-BOc5e8DI.js +0 -2
  982. package/dist/status.scan-DY4x5vdB.js +0 -65
  983. package/dist/status.scan-overview-CF96KtOa.js +0 -379
  984. package/dist/status.scan.fast-json-CUQQXpr8.js +0 -2
  985. package/dist/status.scan.fast-json-Dd2Q4LW7.js +0 -132
  986. package/dist/status.summary-CfGo54T4.js +0 -214
  987. package/dist/status.summary-CyG5QMo9.js +0 -2
  988. package/dist/subagent-announce-DW816JCC.js +0 -351
  989. package/dist/subagent-announce-delivery-DgKXtDWV.js +0 -726
  990. package/dist/subagent-announce-output-BrJdNBlx.js +0 -364
  991. package/dist/subagent-control-xz3ZcUrb.js +0 -506
  992. package/dist/subagent-followup.runtime-DQS6ipTt.js +0 -68
  993. package/dist/subagent-orphan-recovery-CzwjvW_o.js +0 -305
  994. package/dist/subagent-registry-88vWnDP5.js +0 -1753
  995. package/dist/subagent-registry-B_JB7WyN.js +0 -3
  996. package/dist/subagent-spawn-ChRpfSX6.js +0 -1005
  997. package/dist/system-cli-BiYfWkTS.js +0 -59
  998. package/dist/targets-TpH8-6iR.js +0 -67
  999. package/dist/task-executor-Chx2YFYp.js +0 -360
  1000. package/dist/task-owner-access-CPMM8lVh.js +0 -74
  1001. package/dist/task-registry-Cb_XGvuS.js +0 -2366
  1002. package/dist/task-registry-delivery-runtime-6z8W4up9.js +0 -2
  1003. package/dist/task-registry-delivery-runtime-OqkDQtLj.js +0 -3
  1004. package/dist/task-registry.maintenance-Ci6oLcFg.js +0 -2
  1005. package/dist/task-registry.maintenance-i69b0iH7.js +0 -416
  1006. package/dist/testing-BmGGzr14.js +0 -575
  1007. package/dist/text-report-WpPbFau5.js +0 -587
  1008. package/dist/tool-resolution-DCK5whNz.js +0 -90
  1009. package/dist/tools-effective-inventory-CkymEUkf.js +0 -152
  1010. package/dist/tools-invoke-http-BECDcy94.js +0 -206
  1011. package/dist/trash-Cz555AtH.js +0 -24
  1012. package/dist/tui-cli-BTNsU35D.js +0 -4575
  1013. package/dist/update-cli-CEi34S-K.js +0 -1759
  1014. package/dist/upgrade-CeMGojsg.js +0 -1226
  1015. package/dist/video-generation-task-status-BGbHX8xJ.js +0 -163
  1016. package/dist/wait-for-idle-before-flush-CUNJdPz7.js +0 -5986
  1017. package/dist/wizard-models-DGVbHDnh.js +0 -334
@@ -0,0 +1,1237 @@
1
+ import { c as normalizeOptionalString } from "./string-coerce-C1IzJjqi.js";
2
+ import { u as normalizeE164 } from "./utils-DaGfogP-.js";
3
+ import { t as createNonExitingRuntime } from "./runtime-CQ7eH0le.js";
4
+ import { a as shouldLogVerbose, r as logVerbose, t as danger } from "./globals-C5IxqXPj.js";
5
+ import { s as normalizeStringEntries } from "./string-normalization-Bvcn03I9.js";
6
+ import { a as loadConfig } from "./io-BEkyPF5u.js";
7
+ import { n as fireAndForgetHook } from "./fire-and-forget-BxC2VE71.js";
8
+ import { m as triggerInternalHook, n as createInternalHookEvent } from "./internal-hooks-aB3cCCPc.js";
9
+ import { i as resolveHumanDelayConfig } from "./identity-CDV_WvtM.js";
10
+ import { u as resolveStorePath } from "./paths-DD6L4IvS.js";
11
+ import { n as readSessionUpdatedAt } from "./store-BgVJf117.js";
12
+ import { n as sleepWithAbort, t as computeBackoff } from "./backoff-evZNQ2Sv.js";
13
+ import { s as kindFromMime, t as detectMime } from "./mime-DucH9KF3.js";
14
+ import { n as estimateBase64DecodedBytes } from "./base64-CzwAAcLy.js";
15
+ import { i as deliverTextOrMediaReply, m as resolveSendableOutboundReplyParts } from "./reply-payload-ChFsXpe2.js";
16
+ import { l as saveMediaBuffer } from "./store-BLvGOOM1.js";
17
+ import { n as resolveChannelGroupRequireMention, t as resolveChannelGroupPolicy } from "./group-policy-CIZC_F7R.js";
18
+ import { c as resolveTextChunkLimit, o as chunkTextWithMode, s as resolveChunkMode } from "./chunk-D6Ep3gqf.js";
19
+ import { i as toInternalMessageReceivedContext } from "./message-hook-mappers-BOgE-4fE.js";
20
+ import { i as resolveAgentRoute } from "./resolve-route-CKpyD4Rx.js";
21
+ import { i as enqueueSystemEvent } from "./system-events-C6NkuE_K.js";
22
+ import "./text-runtime-CO-nDXJ1.js";
23
+ import "./routing-CXjMOYdN.js";
24
+ import { t as hasControlCommand } from "./command-detection-C-aiYidm.js";
25
+ import { a as createReplyDispatcherWithTyping, t as dispatchInboundMessage } from "./dispatch-D6RvPlwP.js";
26
+ import { t as finalizeInboundContext } from "./inbound-context-DBtSuMrH.js";
27
+ import { a as resolveEnvelopeFormatOptions, i as formatInboundFromLabel, r as formatInboundEnvelope } from "./envelope-BydPo0aZ.js";
28
+ import { n as buildMentionRegexes, r as matchesMentionPatterns } from "./mentions-Pho50WAe.js";
29
+ import { n as resolveControlCommandGate } from "./command-gating-B3MhDYtf.js";
30
+ import { n as resolveInboundMentionDecision } from "./mention-gating-jEMR7rkt.js";
31
+ import { t as recordInboundSession } from "./session-BsG89GIq.js";
32
+ import { d as upsertChannelPairingRequest } from "./pairing-store-AKS6-Yc5.js";
33
+ import { a as warnMissingProviderGroupPolicyFallbackOnce, n as resolveAllowlistProviderRuntimeGroupPolicy, r as resolveDefaultGroupPolicy } from "./runtime-group-policy-B-SxbX8X.js";
34
+ import { c as resolvePinnedMainDmOwnerFromAllowlist, n as readStoreAllowFromForDmPolicy, o as resolveDmGroupAccessWithLists, t as DM_GROUP_ACCESS_REASON } from "./dm-policy-shared-BwRPldF2.js";
35
+ import { a as buildPendingHistoryContextFromMap, s as clearHistoryEntriesIfEnabled, u as recordPendingHistoryEntryIfEnabled } from "./history-CZNv5G9B.js";
36
+ import "./reply-history-DrGSc0qt.js";
37
+ import { n as logInboundDrop, r as logTypingFailure } from "./logging-Dl7h7RG3.js";
38
+ import { t as createChannelReplyPipeline } from "./channel-reply-pipeline-BWizVKPH.js";
39
+ import { t as createChannelPairingChallengeIssuer } from "./channel-pairing-JIQP6-23.js";
40
+ import "./runtime-env-DCK8PwkM.js";
41
+ import { t as evaluateSupplementalContextVisibility } from "./context-visibility-UiRhF3gJ.js";
42
+ import { t as resolveChannelContextVisibilityMode } from "./context-visibility-BifXzpdy.js";
43
+ import "./config-runtime-C4O0dCA8.js";
44
+ import "./reply-runtime-m8R8imuO.js";
45
+ import { t as waitForTransportReady } from "./transport-ready-CzbtzAgh.js";
46
+ import "./infra-runtime-dEG-SNc-.js";
47
+ import "./media-runtime-H_F5jmsU.js";
48
+ import "./conversation-runtime-PeJkl-ts.js";
49
+ import "./agent-runtime-BZ7qw7Go.js";
50
+ import "./security-runtime-B9MyGFgV.js";
51
+ import "./hook-runtime-BRjhdC29.js";
52
+ import "./command-auth-BI6iswCp.js";
53
+ import "./channel-feedback-DQ5lENK_.js";
54
+ import { n as shouldDebounceTextInbound, t as createChannelInboundDebouncer } from "./channel-inbound-Q2rVZZUs.js";
55
+ import { i as resolveSignalAccount } from "./accounts-yv4wXXbR.js";
56
+ import { a as isSignalSenderAllowed, c as resolveSignalRecipient, f as normalizeSignalMessagingTarget, l as resolveSignalSender, n as formatSignalSenderDisplay, o as normalizeSignalAllowRecipient, r as formatSignalSenderId, s as resolveSignalPeerId, t as formatSignalPairingIdLine } from "./identity-Datjc1Tn.js";
57
+ import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-hrT_8w_f.js";
58
+ import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-BHKn9mJM.js";
59
+ import { spawn } from "node:child_process";
60
+ //#region extensions/signal/src/daemon.ts
61
+ function formatSignalDaemonExit(exit) {
62
+ return `signal daemon exited (source=${exit.source} code=${exit.code ?? "null"} signal=${exit.signal ?? "null"})`;
63
+ }
64
+ function classifySignalCliLogLine(line) {
65
+ const trimmed = line.trim();
66
+ if (!trimmed) return null;
67
+ if (/\b(ERROR|WARN|WARNING)\b/.test(trimmed)) return "error";
68
+ if (/\b(FAILED|SEVERE|EXCEPTION)\b/i.test(trimmed)) return "error";
69
+ return "log";
70
+ }
71
+ function bindSignalCliOutput(params) {
72
+ params.stream?.on("data", (data) => {
73
+ for (const line of data.toString().split(/\r?\n/)) {
74
+ const kind = classifySignalCliLogLine(line);
75
+ if (kind === "log") params.log(`signal-cli: ${line.trim()}`);
76
+ else if (kind === "error") params.error(`signal-cli: ${line.trim()}`);
77
+ }
78
+ });
79
+ }
80
+ function buildDaemonArgs(opts) {
81
+ const args = [];
82
+ if (opts.account) args.push("-a", opts.account);
83
+ args.push("daemon");
84
+ args.push("--http", `${opts.httpHost}:${opts.httpPort}`);
85
+ args.push("--no-receive-stdout");
86
+ if (opts.receiveMode) args.push("--receive-mode", opts.receiveMode);
87
+ if (opts.ignoreAttachments) args.push("--ignore-attachments");
88
+ if (opts.ignoreStories) args.push("--ignore-stories");
89
+ if (opts.sendReadReceipts) args.push("--send-read-receipts");
90
+ return args;
91
+ }
92
+ function spawnSignalDaemon(opts) {
93
+ const args = buildDaemonArgs(opts);
94
+ const child = spawn(opts.cliPath, args, { stdio: [
95
+ "ignore",
96
+ "pipe",
97
+ "pipe"
98
+ ] });
99
+ const log = opts.runtime?.log ?? (() => {});
100
+ const error = opts.runtime?.error ?? (() => {});
101
+ let exited = false;
102
+ let settledExit = false;
103
+ let resolveExit;
104
+ const exitedPromise = new Promise((resolve) => {
105
+ resolveExit = resolve;
106
+ });
107
+ const settleExit = (value) => {
108
+ if (settledExit) return;
109
+ settledExit = true;
110
+ exited = true;
111
+ resolveExit(value);
112
+ };
113
+ bindSignalCliOutput({
114
+ stream: child.stdout,
115
+ log,
116
+ error
117
+ });
118
+ bindSignalCliOutput({
119
+ stream: child.stderr,
120
+ log,
121
+ error
122
+ });
123
+ child.once("exit", (code, signal) => {
124
+ settleExit({
125
+ source: "process",
126
+ code: typeof code === "number" ? code : null,
127
+ signal: signal ?? null
128
+ });
129
+ error(formatSignalDaemonExit({
130
+ source: "process",
131
+ code: code ?? null,
132
+ signal: signal ?? null
133
+ }));
134
+ });
135
+ child.once("close", (code, signal) => {
136
+ settleExit({
137
+ source: "process",
138
+ code: typeof code === "number" ? code : null,
139
+ signal: signal ?? null
140
+ });
141
+ });
142
+ child.on("error", (err) => {
143
+ error(`signal-cli spawn error: ${String(err)}`);
144
+ settleExit({
145
+ source: "spawn-error",
146
+ code: null,
147
+ signal: null
148
+ });
149
+ });
150
+ return {
151
+ pid: child.pid ?? void 0,
152
+ exited: exitedPromise,
153
+ isExited: () => exited,
154
+ stop: () => {
155
+ if (!child.killed && !exited) child.kill("SIGTERM");
156
+ }
157
+ };
158
+ }
159
+ //#endregion
160
+ //#region extensions/signal/src/monitor/access-policy.ts
161
+ async function resolveSignalAccessState(params) {
162
+ const storeAllowFrom = await readStoreAllowFromForDmPolicy({
163
+ provider: "signal",
164
+ accountId: params.accountId,
165
+ dmPolicy: params.dmPolicy
166
+ });
167
+ const resolveAccessDecision = (isGroup) => resolveDmGroupAccessWithLists({
168
+ isGroup,
169
+ dmPolicy: params.dmPolicy,
170
+ groupPolicy: params.groupPolicy,
171
+ allowFrom: params.allowFrom,
172
+ groupAllowFrom: params.groupAllowFrom,
173
+ storeAllowFrom,
174
+ isSenderAllowed: (allowEntries) => isSignalSenderAllowed(params.sender, allowEntries)
175
+ });
176
+ const dmAccess = resolveAccessDecision(false);
177
+ return {
178
+ resolveAccessDecision,
179
+ dmAccess,
180
+ effectiveDmAllow: dmAccess.effectiveAllowFrom,
181
+ effectiveGroupAllow: dmAccess.effectiveGroupAllowFrom
182
+ };
183
+ }
184
+ async function handleSignalDirectMessageAccess(params) {
185
+ if (params.dmAccessDecision === "allow") return true;
186
+ if (params.dmAccessDecision === "block") {
187
+ if (params.dmPolicy !== "disabled") params.log(`Blocked signal sender ${params.senderDisplay} (dmPolicy=${params.dmPolicy})`);
188
+ return false;
189
+ }
190
+ if (params.dmPolicy === "pairing") await createChannelPairingChallengeIssuer({
191
+ channel: "signal",
192
+ upsertPairingRequest: async ({ id, meta }) => await upsertChannelPairingRequest({
193
+ channel: "signal",
194
+ id,
195
+ accountId: params.accountId,
196
+ meta
197
+ })
198
+ })({
199
+ senderId: params.senderId,
200
+ senderIdLine: params.senderIdLine,
201
+ meta: { name: params.senderName },
202
+ sendPairingReply: params.sendPairingReply,
203
+ onCreated: () => {
204
+ params.log(`signal pairing request sender=${params.senderId}`);
205
+ },
206
+ onReplyError: (err) => {
207
+ params.log(`signal pairing reply failed for ${params.senderId}: ${String(err)}`);
208
+ }
209
+ });
210
+ return false;
211
+ }
212
+ //#endregion
213
+ //#region extensions/signal/src/monitor/inbound-context.ts
214
+ function resolveSignalQuoteContext(params) {
215
+ const contextVisibilityMode = resolveChannelContextVisibilityMode({
216
+ cfg: params.cfg,
217
+ channel: "signal",
218
+ accountId: params.accountId
219
+ });
220
+ const quoteText = normalizeOptionalString(params.dataMessage?.quote?.text) ?? "";
221
+ const quoteSender = resolveSignalSender({
222
+ sourceNumber: params.dataMessage?.quote?.author ?? null,
223
+ sourceUuid: params.dataMessage?.quote?.authorUuid ?? null
224
+ });
225
+ const quoteSenderAllowed = !params.isGroup || params.effectiveGroupAllow.length === 0 ? true : quoteSender ? isSignalSenderAllowed(quoteSender, params.effectiveGroupAllow) : false;
226
+ const decision = evaluateSupplementalContextVisibility({
227
+ mode: contextVisibilityMode,
228
+ kind: "quote",
229
+ senderAllowed: quoteSenderAllowed
230
+ });
231
+ return {
232
+ contextVisibilityMode,
233
+ decision,
234
+ quoteSenderAllowed,
235
+ visibleQuoteText: decision.include ? quoteText : "",
236
+ visibleQuoteSender: decision.include && quoteSender ? formatSignalSenderDisplay(quoteSender) : void 0
237
+ };
238
+ }
239
+ //#endregion
240
+ //#region extensions/signal/src/monitor/mentions.ts
241
+ const OBJECT_REPLACEMENT = "";
242
+ function isValidMention(mention) {
243
+ if (!mention) return false;
244
+ if (!(mention.uuid || mention.number)) return false;
245
+ if (typeof mention.start !== "number" || Number.isNaN(mention.start)) return false;
246
+ if (typeof mention.length !== "number" || Number.isNaN(mention.length)) return false;
247
+ return mention.length > 0;
248
+ }
249
+ function clampBounds(start, length, textLength) {
250
+ const safeStart = Math.max(0, Math.trunc(start));
251
+ return {
252
+ start: safeStart,
253
+ end: Math.min(textLength, safeStart + Math.max(0, Math.trunc(length)))
254
+ };
255
+ }
256
+ function renderSignalMentions(message, mentions) {
257
+ if (!message || !mentions?.length) return message;
258
+ let normalized = message;
259
+ const candidates = mentions.filter(isValidMention).toSorted((a, b) => b.start - a.start);
260
+ for (const mention of candidates) {
261
+ const identifier = mention.uuid ?? mention.number;
262
+ if (!identifier) continue;
263
+ const { start, end } = clampBounds(mention.start, mention.length, normalized.length);
264
+ if (start >= end) continue;
265
+ if (!normalized.slice(start, end).includes(OBJECT_REPLACEMENT)) continue;
266
+ normalized = normalized.slice(0, start) + `@${identifier}` + normalized.slice(end);
267
+ }
268
+ return normalized;
269
+ }
270
+ //#endregion
271
+ //#region extensions/signal/src/monitor/event-handler.ts
272
+ function formatAttachmentKindCount(kind, count) {
273
+ if (kind === "attachment") return `${count} file${count > 1 ? "s" : ""}`;
274
+ return `${count} ${kind}${count > 1 ? "s" : ""}`;
275
+ }
276
+ function formatAttachmentSummaryPlaceholder(contentTypes) {
277
+ const kindCounts = /* @__PURE__ */ new Map();
278
+ for (const contentType of contentTypes) {
279
+ const kind = kindFromMime(contentType) ?? "attachment";
280
+ kindCounts.set(kind, (kindCounts.get(kind) ?? 0) + 1);
281
+ }
282
+ return `[${[...kindCounts.entries()].map(([kind, count]) => formatAttachmentKindCount(kind, count)).join(" + ")} attached]`;
283
+ }
284
+ function resolveSignalInboundRoute(params) {
285
+ return resolveAgentRoute({
286
+ cfg: params.cfg,
287
+ channel: "signal",
288
+ accountId: params.accountId,
289
+ peer: {
290
+ kind: params.isGroup ? "group" : "direct",
291
+ id: params.isGroup ? params.groupId ?? "unknown" : params.senderPeerId
292
+ }
293
+ });
294
+ }
295
+ function createSignalEventHandler(deps) {
296
+ async function handleSignalInboundMessage(entry) {
297
+ const fromLabel = formatInboundFromLabel({
298
+ isGroup: entry.isGroup,
299
+ groupLabel: entry.groupName ?? void 0,
300
+ groupId: entry.groupId ?? "unknown",
301
+ groupFallback: "Group",
302
+ directLabel: entry.senderName,
303
+ directId: entry.senderDisplay
304
+ });
305
+ const route = resolveSignalInboundRoute({
306
+ cfg: deps.cfg,
307
+ accountId: deps.accountId,
308
+ isGroup: entry.isGroup,
309
+ groupId: entry.groupId,
310
+ senderPeerId: entry.senderPeerId
311
+ });
312
+ const storePath = resolveStorePath(deps.cfg.session?.store, { agentId: route.agentId });
313
+ const envelopeOptions = resolveEnvelopeFormatOptions(deps.cfg);
314
+ const previousTimestamp = readSessionUpdatedAt({
315
+ storePath,
316
+ sessionKey: route.sessionKey
317
+ });
318
+ const body = formatInboundEnvelope({
319
+ channel: "Signal",
320
+ from: fromLabel,
321
+ timestamp: entry.timestamp ?? void 0,
322
+ body: entry.bodyText,
323
+ chatType: entry.isGroup ? "group" : "direct",
324
+ sender: {
325
+ name: entry.senderName,
326
+ id: entry.senderDisplay
327
+ },
328
+ previousTimestamp,
329
+ envelope: envelopeOptions
330
+ });
331
+ let combinedBody = body;
332
+ const historyKey = entry.isGroup ? entry.groupId ?? "unknown" : void 0;
333
+ if (entry.isGroup && historyKey) combinedBody = buildPendingHistoryContextFromMap({
334
+ historyMap: deps.groupHistories,
335
+ historyKey,
336
+ limit: deps.historyLimit,
337
+ currentMessage: combinedBody,
338
+ formatEntry: (historyEntry) => formatInboundEnvelope({
339
+ channel: "Signal",
340
+ from: fromLabel,
341
+ timestamp: historyEntry.timestamp,
342
+ body: `${historyEntry.body}${historyEntry.messageId ? ` [id:${historyEntry.messageId}]` : ""}`,
343
+ chatType: "group",
344
+ senderLabel: historyEntry.sender,
345
+ envelope: envelopeOptions
346
+ })
347
+ });
348
+ const signalToRaw = entry.isGroup ? `group:${entry.groupId}` : `signal:${entry.senderRecipient}`;
349
+ const signalTo = normalizeSignalMessagingTarget(signalToRaw) ?? signalToRaw;
350
+ const inboundHistory = entry.isGroup && historyKey && deps.historyLimit > 0 ? (deps.groupHistories.get(historyKey) ?? []).map((historyEntry) => ({
351
+ sender: historyEntry.sender,
352
+ body: historyEntry.body,
353
+ timestamp: historyEntry.timestamp
354
+ })) : void 0;
355
+ const ctxPayload = finalizeInboundContext({
356
+ Body: combinedBody,
357
+ BodyForAgent: entry.bodyText,
358
+ InboundHistory: inboundHistory,
359
+ RawBody: entry.bodyText,
360
+ CommandBody: entry.commandBody,
361
+ BodyForCommands: entry.commandBody,
362
+ From: entry.isGroup ? `group:${entry.groupId ?? "unknown"}` : `signal:${entry.senderRecipient}`,
363
+ To: signalTo,
364
+ SessionKey: route.sessionKey,
365
+ AccountId: route.accountId,
366
+ ChatType: entry.isGroup ? "group" : "direct",
367
+ ConversationLabel: fromLabel,
368
+ GroupSubject: entry.isGroup ? entry.groupName ?? void 0 : void 0,
369
+ SenderName: entry.senderName,
370
+ SenderId: entry.senderDisplay,
371
+ Provider: "signal",
372
+ Surface: "signal",
373
+ MessageSid: entry.messageId,
374
+ ReplyToBody: entry.replyToBody,
375
+ ReplyToSender: entry.replyToSender,
376
+ ReplyToIsQuote: entry.replyToIsQuote,
377
+ Timestamp: entry.timestamp ?? void 0,
378
+ MediaPath: entry.mediaPath,
379
+ MediaType: entry.mediaType,
380
+ MediaUrl: entry.mediaPath,
381
+ MediaPaths: entry.mediaPaths,
382
+ MediaUrls: entry.mediaPaths,
383
+ MediaTypes: entry.mediaTypes,
384
+ WasMentioned: entry.isGroup ? entry.wasMentioned === true : void 0,
385
+ CommandAuthorized: entry.commandAuthorized,
386
+ OriginatingChannel: "signal",
387
+ OriginatingTo: signalTo
388
+ });
389
+ await recordInboundSession({
390
+ storePath,
391
+ sessionKey: ctxPayload.SessionKey ?? route.sessionKey,
392
+ ctx: ctxPayload,
393
+ updateLastRoute: !entry.isGroup ? {
394
+ sessionKey: route.mainSessionKey,
395
+ channel: "signal",
396
+ to: entry.senderRecipient,
397
+ accountId: route.accountId,
398
+ mainDmOwnerPin: (() => {
399
+ const pinnedOwner = resolvePinnedMainDmOwnerFromAllowlist({
400
+ dmScope: deps.cfg.session?.dmScope,
401
+ allowFrom: deps.allowFrom,
402
+ normalizeEntry: normalizeSignalAllowRecipient
403
+ });
404
+ if (!pinnedOwner) return;
405
+ return {
406
+ ownerRecipient: pinnedOwner,
407
+ senderRecipient: entry.senderRecipient,
408
+ onSkip: ({ ownerRecipient, senderRecipient }) => {
409
+ logVerbose(`signal: skip main-session last route for ${senderRecipient} (pinned owner ${ownerRecipient})`);
410
+ }
411
+ };
412
+ })()
413
+ } : void 0,
414
+ onRecordError: (err) => {
415
+ logVerbose(`signal: failed updating session meta: ${String(err)}`);
416
+ }
417
+ });
418
+ if (shouldLogVerbose()) {
419
+ const preview = body.slice(0, 200).replace(/\\n/g, "\\\\n");
420
+ logVerbose(`signal inbound: from=${ctxPayload.From} len=${body.length} preview="${preview}"`);
421
+ }
422
+ const { onModelSelected, typingCallbacks, ...replyPipeline } = createChannelReplyPipeline({
423
+ cfg: deps.cfg,
424
+ agentId: route.agentId,
425
+ channel: "signal",
426
+ accountId: route.accountId,
427
+ typing: {
428
+ start: async () => {
429
+ if (!ctxPayload.To) return;
430
+ await sendTypingSignal(ctxPayload.To, {
431
+ cfg: deps.cfg,
432
+ baseUrl: deps.baseUrl,
433
+ account: deps.account,
434
+ accountId: deps.accountId
435
+ });
436
+ },
437
+ onStartError: (err) => {
438
+ logTypingFailure({
439
+ log: logVerbose,
440
+ channel: "signal",
441
+ target: ctxPayload.To ?? void 0,
442
+ error: err
443
+ });
444
+ }
445
+ }
446
+ });
447
+ const { dispatcher, replyOptions, markDispatchIdle } = createReplyDispatcherWithTyping({
448
+ ...replyPipeline,
449
+ humanDelay: resolveHumanDelayConfig(deps.cfg, route.agentId),
450
+ typingCallbacks,
451
+ deliver: async (payload) => {
452
+ await deps.deliverReplies({
453
+ cfg: deps.cfg,
454
+ replies: [payload],
455
+ target: ctxPayload.To,
456
+ baseUrl: deps.baseUrl,
457
+ account: deps.account,
458
+ accountId: deps.accountId,
459
+ runtime: deps.runtime,
460
+ maxBytes: deps.mediaMaxBytes,
461
+ textLimit: deps.textLimit
462
+ });
463
+ },
464
+ onError: (err, info) => {
465
+ deps.runtime.error?.(danger(`signal ${info.kind} reply failed: ${String(err)}`));
466
+ }
467
+ });
468
+ const { queuedFinal } = await dispatchInboundMessage({
469
+ ctx: ctxPayload,
470
+ cfg: deps.cfg,
471
+ dispatcher,
472
+ replyOptions: {
473
+ ...replyOptions,
474
+ disableBlockStreaming: typeof deps.blockStreaming === "boolean" ? !deps.blockStreaming : void 0,
475
+ onModelSelected
476
+ }
477
+ });
478
+ markDispatchIdle();
479
+ if (!queuedFinal) {
480
+ if (entry.isGroup && historyKey) clearHistoryEntriesIfEnabled({
481
+ historyMap: deps.groupHistories,
482
+ historyKey,
483
+ limit: deps.historyLimit
484
+ });
485
+ return;
486
+ }
487
+ if (entry.isGroup && historyKey) clearHistoryEntriesIfEnabled({
488
+ historyMap: deps.groupHistories,
489
+ historyKey,
490
+ limit: deps.historyLimit
491
+ });
492
+ }
493
+ const { debouncer: inboundDebouncer } = createChannelInboundDebouncer({
494
+ cfg: deps.cfg,
495
+ channel: "signal",
496
+ buildKey: (entry) => {
497
+ const conversationId = entry.isGroup ? entry.groupId ?? "unknown" : entry.senderPeerId;
498
+ if (!conversationId || !entry.senderPeerId) return null;
499
+ return `signal:${deps.accountId}:${conversationId}:${entry.senderPeerId}`;
500
+ },
501
+ shouldDebounce: (entry) => {
502
+ return shouldDebounceTextInbound({
503
+ text: entry.bodyText,
504
+ cfg: deps.cfg,
505
+ hasMedia: Boolean(entry.mediaPath || entry.mediaType || entry.mediaPaths?.length)
506
+ });
507
+ },
508
+ onFlush: async (entries) => {
509
+ const last = entries.at(-1);
510
+ if (!last) return;
511
+ if (entries.length === 1) {
512
+ await handleSignalInboundMessage(last);
513
+ return;
514
+ }
515
+ const combinedText = entries.map((entry) => entry.bodyText).filter(Boolean).join("\\n");
516
+ if (!combinedText.trim()) return;
517
+ await handleSignalInboundMessage({
518
+ ...last,
519
+ bodyText: combinedText,
520
+ mediaPath: void 0,
521
+ mediaType: void 0,
522
+ mediaPaths: void 0,
523
+ mediaTypes: void 0
524
+ });
525
+ },
526
+ onError: (err) => {
527
+ deps.runtime.error?.(`signal debounce flush failed: ${String(err)}`);
528
+ }
529
+ });
530
+ function handleReactionOnlyInbound(params) {
531
+ if (params.hasBodyContent) return false;
532
+ if (params.reaction.isRemove) return true;
533
+ const emojiLabel = normalizeOptionalString(params.reaction.emoji) ?? "emoji";
534
+ const senderName = params.envelope.sourceName ?? params.senderDisplay;
535
+ logVerbose(`signal reaction: ${emojiLabel} from ${senderName}`);
536
+ const groupId = params.reaction.groupInfo?.groupId ?? void 0;
537
+ const groupName = params.reaction.groupInfo?.groupName ?? void 0;
538
+ const isGroup = Boolean(groupId);
539
+ const reactionAccess = params.resolveAccessDecision(isGroup);
540
+ if (reactionAccess.decision !== "allow") {
541
+ logVerbose(`Blocked signal reaction sender ${params.senderDisplay} (${reactionAccess.reason})`);
542
+ return true;
543
+ }
544
+ const targets = deps.resolveSignalReactionTargets(params.reaction);
545
+ if (!deps.shouldEmitSignalReactionNotification({
546
+ mode: deps.reactionMode,
547
+ account: deps.account,
548
+ targets,
549
+ sender: params.sender,
550
+ allowlist: deps.reactionAllowlist
551
+ })) return true;
552
+ const senderPeerId = resolveSignalPeerId(params.sender);
553
+ const route = resolveSignalInboundRoute({
554
+ cfg: deps.cfg,
555
+ accountId: deps.accountId,
556
+ isGroup,
557
+ groupId,
558
+ senderPeerId
559
+ });
560
+ const groupLabel = isGroup ? `${groupName ?? "Signal Group"} id:${groupId}` : void 0;
561
+ const messageId = params.reaction.targetSentTimestamp ? String(params.reaction.targetSentTimestamp) : "unknown";
562
+ const text = deps.buildSignalReactionSystemEventText({
563
+ emojiLabel,
564
+ actorLabel: senderName,
565
+ messageId,
566
+ targetLabel: targets[0]?.display,
567
+ groupLabel
568
+ });
569
+ const contextKey = [
570
+ "signal",
571
+ "reaction",
572
+ "added",
573
+ messageId,
574
+ formatSignalSenderId(params.sender),
575
+ emojiLabel,
576
+ groupId ?? ""
577
+ ].filter(Boolean).join(":");
578
+ enqueueSystemEvent(text, {
579
+ sessionKey: route.sessionKey,
580
+ contextKey
581
+ });
582
+ return true;
583
+ }
584
+ return async (event) => {
585
+ if (event.event !== "receive" || !event.data) return;
586
+ let payload = null;
587
+ try {
588
+ payload = JSON.parse(event.data);
589
+ } catch (err) {
590
+ deps.runtime.error?.(`failed to parse event: ${String(err)}`);
591
+ return;
592
+ }
593
+ if (payload?.exception?.message) deps.runtime.error?.(`receive exception: ${payload.exception.message}`);
594
+ const envelope = payload?.envelope;
595
+ if (!envelope) return;
596
+ const sender = resolveSignalSender(envelope);
597
+ if (!sender) return;
598
+ const normalizedAccount = deps.account ? normalizeE164(deps.account) : void 0;
599
+ if (sender.kind === "phone" && normalizedAccount != null && sender.e164 === normalizedAccount || sender.kind === "uuid" && deps.accountUuid != null && sender.raw === deps.accountUuid) return;
600
+ if ("syncMessage" in envelope) return;
601
+ const dataMessage = envelope.dataMessage ?? envelope.editMessage?.dataMessage;
602
+ const reaction = deps.isSignalReactionMessage(envelope.reactionMessage) ? envelope.reactionMessage : deps.isSignalReactionMessage(dataMessage?.reaction) ? dataMessage?.reaction : null;
603
+ const messageText = renderSignalMentions(dataMessage?.message ?? "", dataMessage?.mentions).trim();
604
+ const groupId = dataMessage?.groupInfo?.groupId ?? void 0;
605
+ const isGroup = Boolean(groupId);
606
+ const senderDisplay = formatSignalSenderDisplay(sender);
607
+ const { resolveAccessDecision, dmAccess, effectiveDmAllow, effectiveGroupAllow } = await resolveSignalAccessState({
608
+ accountId: deps.accountId,
609
+ dmPolicy: deps.dmPolicy,
610
+ groupPolicy: deps.groupPolicy,
611
+ allowFrom: deps.allowFrom,
612
+ groupAllowFrom: deps.groupAllowFrom,
613
+ sender
614
+ });
615
+ const quoteText = normalizeOptionalString(dataMessage?.quote?.text) ?? "";
616
+ const { contextVisibilityMode, quoteSenderAllowed, visibleQuoteText, visibleQuoteSender } = resolveSignalQuoteContext({
617
+ cfg: deps.cfg,
618
+ accountId: deps.accountId,
619
+ isGroup,
620
+ dataMessage,
621
+ effectiveGroupAllow
622
+ });
623
+ if (quoteText && !visibleQuoteText && isGroup) logVerbose(`signal: drop quote context (mode=${contextVisibilityMode}, sender_allowed=${quoteSenderAllowed ? "yes" : "no"})`);
624
+ const hasBodyContent = Boolean(messageText || visibleQuoteText) || Boolean(!reaction && dataMessage?.attachments?.length);
625
+ if (reaction && handleReactionOnlyInbound({
626
+ envelope,
627
+ sender,
628
+ senderDisplay,
629
+ reaction,
630
+ hasBodyContent,
631
+ resolveAccessDecision
632
+ })) return;
633
+ if (!dataMessage) return;
634
+ const senderRecipient = resolveSignalRecipient(sender);
635
+ const senderPeerId = resolveSignalPeerId(sender);
636
+ const senderAllowId = formatSignalSenderId(sender);
637
+ if (!senderRecipient) return;
638
+ const senderIdLine = formatSignalPairingIdLine(sender);
639
+ const groupName = dataMessage.groupInfo?.groupName ?? void 0;
640
+ if (!isGroup) {
641
+ if (!await handleSignalDirectMessageAccess({
642
+ dmPolicy: deps.dmPolicy,
643
+ dmAccessDecision: dmAccess.decision,
644
+ senderId: senderAllowId,
645
+ senderIdLine,
646
+ senderDisplay,
647
+ senderName: envelope.sourceName ?? void 0,
648
+ accountId: deps.accountId,
649
+ sendPairingReply: async (text) => {
650
+ await sendMessageSignal(`signal:${senderRecipient}`, text, {
651
+ cfg: deps.cfg,
652
+ baseUrl: deps.baseUrl,
653
+ account: deps.account,
654
+ maxBytes: deps.mediaMaxBytes,
655
+ accountId: deps.accountId
656
+ });
657
+ },
658
+ log: logVerbose
659
+ })) return;
660
+ }
661
+ if (isGroup) {
662
+ const groupAccess = resolveAccessDecision(true);
663
+ if (groupAccess.decision !== "allow") {
664
+ if (groupAccess.reasonCode === DM_GROUP_ACCESS_REASON.GROUP_POLICY_DISABLED) logVerbose("Blocked signal group message (groupPolicy: disabled)");
665
+ else if (groupAccess.reasonCode === DM_GROUP_ACCESS_REASON.GROUP_POLICY_EMPTY_ALLOWLIST) logVerbose("Blocked signal group message (groupPolicy: allowlist, no groupAllowFrom)");
666
+ else logVerbose(`Blocked signal group sender ${senderDisplay} (not in groupAllowFrom)`);
667
+ return;
668
+ }
669
+ }
670
+ const useAccessGroups = deps.cfg.commands?.useAccessGroups !== false;
671
+ const commandDmAllow = isGroup ? deps.allowFrom : effectiveDmAllow;
672
+ const ownerAllowedForCommands = isSignalSenderAllowed(sender, commandDmAllow);
673
+ const groupAllowedForCommands = isSignalSenderAllowed(sender, effectiveGroupAllow);
674
+ const hasControlCommandInMessage = hasControlCommand(messageText, deps.cfg);
675
+ const commandGate = resolveControlCommandGate({
676
+ useAccessGroups,
677
+ authorizers: [{
678
+ configured: commandDmAllow.length > 0,
679
+ allowed: ownerAllowedForCommands
680
+ }, {
681
+ configured: effectiveGroupAllow.length > 0,
682
+ allowed: groupAllowedForCommands
683
+ }],
684
+ allowTextCommands: true,
685
+ hasControlCommand: hasControlCommandInMessage
686
+ });
687
+ const commandAuthorized = commandGate.commandAuthorized;
688
+ if (isGroup && commandGate.shouldBlock) {
689
+ logInboundDrop({
690
+ log: logVerbose,
691
+ channel: "signal",
692
+ reason: "control command (unauthorized)",
693
+ target: senderDisplay
694
+ });
695
+ return;
696
+ }
697
+ const route = resolveSignalInboundRoute({
698
+ cfg: deps.cfg,
699
+ accountId: deps.accountId,
700
+ isGroup,
701
+ groupId,
702
+ senderPeerId
703
+ });
704
+ const mentionRegexes = buildMentionRegexes(deps.cfg, route.agentId);
705
+ const wasMentioned = isGroup && matchesMentionPatterns(messageText, mentionRegexes);
706
+ const requireMention = isGroup && resolveChannelGroupRequireMention({
707
+ cfg: deps.cfg,
708
+ channel: "signal",
709
+ groupId,
710
+ accountId: deps.accountId
711
+ });
712
+ const canDetectMention = mentionRegexes.length > 0;
713
+ const mentionDecision = resolveInboundMentionDecision({
714
+ facts: {
715
+ canDetectMention,
716
+ wasMentioned,
717
+ hasAnyMention: false,
718
+ implicitMentionKinds: []
719
+ },
720
+ policy: {
721
+ isGroup,
722
+ requireMention,
723
+ allowTextCommands: true,
724
+ hasControlCommand: hasControlCommandInMessage,
725
+ commandAuthorized
726
+ }
727
+ });
728
+ const effectiveWasMentioned = mentionDecision.effectiveWasMentioned;
729
+ if (isGroup && requireMention && canDetectMention && mentionDecision.shouldSkip) {
730
+ logInboundDrop({
731
+ log: logVerbose,
732
+ channel: "signal",
733
+ reason: "no mention",
734
+ target: senderDisplay
735
+ });
736
+ const pendingPlaceholder = (() => {
737
+ if (!dataMessage.attachments?.length) return "";
738
+ if (deps.ignoreAttachments) return "<media:attachment>";
739
+ const attachmentTypes = (dataMessage.attachments ?? []).map((attachment) => typeof attachment?.contentType === "string" ? attachment.contentType : void 0);
740
+ if (attachmentTypes.length > 1) return formatAttachmentSummaryPlaceholder(attachmentTypes);
741
+ const firstContentType = dataMessage.attachments?.[0]?.contentType;
742
+ const pendingKind = kindFromMime(firstContentType ?? void 0);
743
+ return pendingKind ? `<media:${pendingKind}>` : "<media:attachment>";
744
+ })();
745
+ const pendingBodyText = messageText || pendingPlaceholder || visibleQuoteText;
746
+ const historyKey = groupId ?? "unknown";
747
+ recordPendingHistoryEntryIfEnabled({
748
+ historyMap: deps.groupHistories,
749
+ historyKey,
750
+ limit: deps.historyLimit,
751
+ entry: {
752
+ sender: envelope.sourceName ?? senderDisplay,
753
+ body: pendingBodyText,
754
+ timestamp: envelope.timestamp ?? void 0,
755
+ messageId: typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0
756
+ }
757
+ });
758
+ const signalGroupPolicy = resolveChannelGroupPolicy({
759
+ cfg: deps.cfg,
760
+ channel: "signal",
761
+ groupId,
762
+ accountId: deps.accountId
763
+ });
764
+ if ((signalGroupPolicy.groupConfig?.ingest ?? signalGroupPolicy.defaultConfig?.ingest) === true) {
765
+ const canonicalGroupTarget = normalizeSignalMessagingTarget(`group:${groupId}`) ?? `group:${groupId}`;
766
+ fireAndForgetHook(triggerInternalHook(createInternalHookEvent("message", "received", route.sessionKey, toInternalMessageReceivedContext({
767
+ from: `group:${groupId}`,
768
+ to: canonicalGroupTarget,
769
+ content: pendingBodyText,
770
+ timestamp: envelope.timestamp ?? void 0,
771
+ channelId: "signal",
772
+ accountId: deps.accountId,
773
+ conversationId: canonicalGroupTarget,
774
+ messageId: typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0,
775
+ senderId: senderDisplay,
776
+ senderName: envelope.sourceName ?? void 0,
777
+ provider: "signal",
778
+ surface: "signal",
779
+ originatingChannel: "signal",
780
+ originatingTo: canonicalGroupTarget,
781
+ isGroup: true,
782
+ groupId: canonicalGroupTarget
783
+ }))), "signal: mention-skip message hook failed");
784
+ }
785
+ return;
786
+ }
787
+ let mediaPath;
788
+ let mediaType;
789
+ const mediaPaths = [];
790
+ const mediaTypes = [];
791
+ let placeholder = "";
792
+ const attachments = dataMessage.attachments ?? [];
793
+ if (!deps.ignoreAttachments) for (const attachment of attachments) {
794
+ if (!attachment?.id) continue;
795
+ try {
796
+ const fetched = await deps.fetchAttachment({
797
+ baseUrl: deps.baseUrl,
798
+ account: deps.account,
799
+ attachment,
800
+ sender: senderRecipient,
801
+ groupId,
802
+ maxBytes: deps.mediaMaxBytes
803
+ });
804
+ if (fetched) {
805
+ mediaPaths.push(fetched.path);
806
+ mediaTypes.push(fetched.contentType ?? attachment.contentType ?? "application/octet-stream");
807
+ if (!mediaPath) {
808
+ mediaPath = fetched.path;
809
+ mediaType = fetched.contentType ?? attachment.contentType ?? void 0;
810
+ }
811
+ }
812
+ } catch (err) {
813
+ deps.runtime.error?.(danger(`attachment fetch failed: ${String(err)}`));
814
+ }
815
+ }
816
+ if (mediaPaths.length > 1) placeholder = formatAttachmentSummaryPlaceholder(mediaTypes);
817
+ else {
818
+ const kind = kindFromMime(mediaType ?? void 0);
819
+ if (kind) placeholder = `<media:${kind}>`;
820
+ else if (attachments.length) placeholder = "<media:attachment>";
821
+ }
822
+ const bodyText = messageText || placeholder || visibleQuoteText || "";
823
+ if (!bodyText) return;
824
+ const receiptTimestamp = typeof envelope.timestamp === "number" ? envelope.timestamp : typeof dataMessage.timestamp === "number" ? dataMessage.timestamp : void 0;
825
+ if (deps.sendReadReceipts && !deps.readReceiptsViaDaemon && !isGroup && receiptTimestamp) try {
826
+ await sendReadReceiptSignal(`signal:${senderRecipient}`, receiptTimestamp, {
827
+ cfg: deps.cfg,
828
+ baseUrl: deps.baseUrl,
829
+ account: deps.account,
830
+ accountId: deps.accountId
831
+ });
832
+ } catch (err) {
833
+ logVerbose(`signal read receipt failed for ${senderDisplay}: ${String(err)}`);
834
+ }
835
+ else if (deps.sendReadReceipts && !deps.readReceiptsViaDaemon && !isGroup && !receiptTimestamp) logVerbose(`signal read receipt skipped (missing timestamp) for ${senderDisplay}`);
836
+ const senderName = envelope.sourceName ?? senderDisplay;
837
+ const messageId = typeof envelope.timestamp === "number" ? String(envelope.timestamp) : void 0;
838
+ await inboundDebouncer.enqueue({
839
+ senderName,
840
+ senderDisplay,
841
+ senderRecipient,
842
+ senderPeerId,
843
+ groupId,
844
+ groupName,
845
+ isGroup,
846
+ bodyText,
847
+ commandBody: messageText,
848
+ timestamp: envelope.timestamp ?? void 0,
849
+ messageId,
850
+ mediaPath,
851
+ mediaType,
852
+ mediaPaths: mediaPaths.length > 0 ? mediaPaths : void 0,
853
+ mediaTypes: mediaTypes.length > 0 ? mediaTypes : void 0,
854
+ commandAuthorized,
855
+ wasMentioned: effectiveWasMentioned,
856
+ replyToBody: visibleQuoteText || void 0,
857
+ replyToSender: visibleQuoteSender,
858
+ replyToIsQuote: visibleQuoteText ? true : void 0
859
+ });
860
+ };
861
+ }
862
+ //#endregion
863
+ //#region extensions/signal/src/sse-reconnect.ts
864
+ const DEFAULT_RECONNECT_POLICY = {
865
+ initialMs: 1e3,
866
+ maxMs: 1e4,
867
+ factor: 2,
868
+ jitter: .2
869
+ };
870
+ async function runSignalSseLoop({ baseUrl, account, abortSignal, runtime, onEvent, policy }) {
871
+ const reconnectPolicy = {
872
+ ...DEFAULT_RECONNECT_POLICY,
873
+ ...policy
874
+ };
875
+ let reconnectAttempts = 0;
876
+ const logReconnectVerbose = (message) => {
877
+ if (!shouldLogVerbose()) return;
878
+ logVerbose(message);
879
+ };
880
+ for (;;) {
881
+ if (abortSignal?.aborted) break;
882
+ try {
883
+ await streamSignalEvents({
884
+ baseUrl,
885
+ account,
886
+ abortSignal,
887
+ onEvent: (event) => {
888
+ reconnectAttempts = 0;
889
+ onEvent(event);
890
+ }
891
+ });
892
+ if (abortSignal?.aborted) return;
893
+ reconnectAttempts += 1;
894
+ const delayMs = computeBackoff(reconnectPolicy, reconnectAttempts);
895
+ logReconnectVerbose(`Signal SSE stream ended, reconnecting in ${delayMs / 1e3}s...`);
896
+ await sleepWithAbort(delayMs, abortSignal);
897
+ } catch (err) {
898
+ if (abortSignal?.aborted) return;
899
+ runtime.error?.(`Signal SSE stream error: ${String(err)}`);
900
+ reconnectAttempts += 1;
901
+ const delayMs = computeBackoff(reconnectPolicy, reconnectAttempts);
902
+ runtime.log?.(`Signal SSE connection lost, reconnecting in ${delayMs / 1e3}s...`);
903
+ try {
904
+ await sleepWithAbort(delayMs, abortSignal);
905
+ } catch (sleepErr) {
906
+ if (abortSignal?.aborted) return;
907
+ throw sleepErr;
908
+ }
909
+ }
910
+ }
911
+ }
912
+ //#endregion
913
+ //#region extensions/signal/src/monitor.ts
914
+ function resolveRuntime(opts) {
915
+ return opts.runtime ?? createNonExitingRuntime();
916
+ }
917
+ function mergeAbortSignals(a, b) {
918
+ if (!a && !b) return {
919
+ signal: void 0,
920
+ dispose: () => {}
921
+ };
922
+ if (!a) return {
923
+ signal: b,
924
+ dispose: () => {}
925
+ };
926
+ if (!b) return {
927
+ signal: a,
928
+ dispose: () => {}
929
+ };
930
+ const controller = new AbortController();
931
+ const abortFrom = (source) => {
932
+ if (!controller.signal.aborted) controller.abort(source.reason);
933
+ };
934
+ if (a.aborted) {
935
+ abortFrom(a);
936
+ return {
937
+ signal: controller.signal,
938
+ dispose: () => {}
939
+ };
940
+ }
941
+ if (b.aborted) {
942
+ abortFrom(b);
943
+ return {
944
+ signal: controller.signal,
945
+ dispose: () => {}
946
+ };
947
+ }
948
+ const onAbortA = () => abortFrom(a);
949
+ const onAbortB = () => abortFrom(b);
950
+ a.addEventListener("abort", onAbortA, { once: true });
951
+ b.addEventListener("abort", onAbortB, { once: true });
952
+ return {
953
+ signal: controller.signal,
954
+ dispose: () => {
955
+ a.removeEventListener("abort", onAbortA);
956
+ b.removeEventListener("abort", onAbortB);
957
+ }
958
+ };
959
+ }
960
+ function createSignalDaemonLifecycle(params) {
961
+ let daemonHandle = null;
962
+ let daemonStopRequested = false;
963
+ let daemonExitError;
964
+ const daemonAbortController = new AbortController();
965
+ const mergedAbort = mergeAbortSignals(params.abortSignal, daemonAbortController.signal);
966
+ const stop = () => {
967
+ daemonStopRequested = true;
968
+ daemonHandle?.stop();
969
+ };
970
+ const attach = (handle) => {
971
+ daemonHandle = handle;
972
+ handle.exited.then((exit) => {
973
+ if (daemonStopRequested || params.abortSignal?.aborted) return;
974
+ daemonExitError = new Error(formatSignalDaemonExit(exit));
975
+ if (!daemonAbortController.signal.aborted) daemonAbortController.abort(daemonExitError);
976
+ });
977
+ };
978
+ const getExitError = () => daemonExitError;
979
+ return {
980
+ attach,
981
+ stop,
982
+ getExitError,
983
+ abortSignal: mergedAbort.signal,
984
+ dispose: mergedAbort.dispose
985
+ };
986
+ }
987
+ function normalizeAllowList(raw) {
988
+ return normalizeStringEntries(raw);
989
+ }
990
+ function resolveSignalReactionTargets(reaction) {
991
+ const targets = [];
992
+ const uuid = reaction.targetAuthorUuid?.trim();
993
+ if (uuid) targets.push({
994
+ kind: "uuid",
995
+ id: uuid,
996
+ display: `uuid:${uuid}`
997
+ });
998
+ const author = reaction.targetAuthor?.trim();
999
+ if (author) {
1000
+ const normalized = normalizeE164(author);
1001
+ targets.push({
1002
+ kind: "phone",
1003
+ id: normalized,
1004
+ display: normalized
1005
+ });
1006
+ }
1007
+ return targets;
1008
+ }
1009
+ function isSignalReactionMessage(reaction) {
1010
+ if (!reaction) return false;
1011
+ const emoji = reaction.emoji?.trim();
1012
+ const timestamp = reaction.targetSentTimestamp;
1013
+ const hasTarget = Boolean(normalizeOptionalString(reaction.targetAuthor) || normalizeOptionalString(reaction.targetAuthorUuid));
1014
+ return Boolean(emoji && typeof timestamp === "number" && timestamp > 0 && hasTarget);
1015
+ }
1016
+ function shouldEmitSignalReactionNotification(params) {
1017
+ const { mode, account, targets, sender, allowlist } = params;
1018
+ const effectiveMode = mode ?? "own";
1019
+ if (effectiveMode === "off") return false;
1020
+ if (effectiveMode === "own") {
1021
+ const accountId = account?.trim();
1022
+ if (!accountId || !targets || targets.length === 0) return false;
1023
+ const normalizedAccount = normalizeE164(accountId);
1024
+ return targets.some((target) => {
1025
+ if (target.kind === "uuid") return accountId === target.id || accountId === `uuid:${target.id}`;
1026
+ return normalizedAccount === target.id;
1027
+ });
1028
+ }
1029
+ if (effectiveMode === "allowlist") {
1030
+ if (!sender || !allowlist || allowlist.length === 0) return false;
1031
+ return isSignalSenderAllowed(sender, allowlist);
1032
+ }
1033
+ return true;
1034
+ }
1035
+ function buildSignalReactionSystemEventText(params) {
1036
+ const base = `Signal reaction added: ${params.emojiLabel} by ${params.actorLabel} msg ${params.messageId}`;
1037
+ const withTarget = params.targetLabel ? `${base} from ${params.targetLabel}` : base;
1038
+ return params.groupLabel ? `${withTarget} in ${params.groupLabel}` : withTarget;
1039
+ }
1040
+ async function waitForSignalDaemonReady(params) {
1041
+ await (params.waitForTransportReadyFn ?? waitForTransportReady)({
1042
+ label: "signal daemon",
1043
+ timeoutMs: params.timeoutMs,
1044
+ logAfterMs: params.logAfterMs,
1045
+ logIntervalMs: params.logIntervalMs,
1046
+ pollIntervalMs: 150,
1047
+ abortSignal: params.abortSignal,
1048
+ runtime: params.runtime,
1049
+ check: async () => {
1050
+ const res = await signalCheck(params.baseUrl, 1e3);
1051
+ if (res.ok) return { ok: true };
1052
+ return {
1053
+ ok: false,
1054
+ error: res.error ?? (res.status ? `HTTP ${res.status}` : "unreachable")
1055
+ };
1056
+ }
1057
+ });
1058
+ }
1059
+ async function fetchAttachment(params) {
1060
+ const { attachment } = params;
1061
+ if (!attachment?.id) return null;
1062
+ if (typeof attachment.size === "number" && attachment.size > params.maxBytes) throw new Error(`Signal attachment ${attachment.id} exceeds ${(params.maxBytes / (1024 * 1024)).toFixed(0)}MB limit`);
1063
+ const rpcParams = { id: attachment.id };
1064
+ if (params.account) rpcParams.account = params.account;
1065
+ if (params.groupId) rpcParams.groupId = params.groupId;
1066
+ else if (params.sender) rpcParams.recipient = params.sender;
1067
+ else return null;
1068
+ const result = await signalRpcRequest("getAttachment", rpcParams, { baseUrl: params.baseUrl });
1069
+ if (!result?.data) return null;
1070
+ if (estimateBase64DecodedBytes(result.data) > params.maxBytes) throw new Error(`Signal attachment ${attachment.id} exceeds ${(params.maxBytes / (1024 * 1024)).toFixed(0)}MB limit`);
1071
+ const buffer = Buffer.from(result.data, "base64");
1072
+ const originalFilename = normalizeOptionalString(attachment.filename ?? void 0);
1073
+ const saved = await saveMediaBuffer(buffer, normalizeOptionalString(attachment.contentType ?? void 0) ?? await detectMime({
1074
+ buffer,
1075
+ filePath: originalFilename
1076
+ }), "inbound", params.maxBytes, originalFilename);
1077
+ return {
1078
+ path: saved.path,
1079
+ contentType: saved.contentType
1080
+ };
1081
+ }
1082
+ async function deliverReplies(params) {
1083
+ const { replies, target, baseUrl, account, accountId, runtime, maxBytes, textLimit, chunkMode } = params;
1084
+ for (const payload of replies) if (await deliverTextOrMediaReply({
1085
+ payload,
1086
+ text: resolveSendableOutboundReplyParts(payload).text,
1087
+ chunkText: (value) => chunkTextWithMode(value, textLimit, chunkMode),
1088
+ sendText: async (chunk) => {
1089
+ await sendMessageSignal(target, chunk, {
1090
+ cfg: params.cfg,
1091
+ baseUrl,
1092
+ account,
1093
+ maxBytes,
1094
+ accountId
1095
+ });
1096
+ },
1097
+ sendMedia: async ({ mediaUrl, caption }) => {
1098
+ await sendMessageSignal(target, caption ?? "", {
1099
+ cfg: params.cfg,
1100
+ baseUrl,
1101
+ account,
1102
+ mediaUrl,
1103
+ maxBytes,
1104
+ accountId
1105
+ });
1106
+ }
1107
+ }) !== "empty") runtime.log?.(`delivered reply to ${target}`);
1108
+ }
1109
+ async function monitorSignalProvider(opts = {}) {
1110
+ const runtime = resolveRuntime(opts);
1111
+ const cfg = opts.config ?? loadConfig();
1112
+ const accountInfo = resolveSignalAccount({
1113
+ cfg,
1114
+ accountId: opts.accountId
1115
+ });
1116
+ const historyLimit = Math.max(0, accountInfo.config.historyLimit ?? cfg.messages?.groupChat?.historyLimit ?? 50);
1117
+ const groupHistories = /* @__PURE__ */ new Map();
1118
+ const textLimit = resolveTextChunkLimit(cfg, "signal", accountInfo.accountId);
1119
+ const chunkMode = resolveChunkMode(cfg, "signal", accountInfo.accountId);
1120
+ const baseUrl = normalizeOptionalString(opts.baseUrl) ?? accountInfo.baseUrl;
1121
+ const account = normalizeOptionalString(opts.account) ?? normalizeOptionalString(accountInfo.config.account);
1122
+ const dmPolicy = accountInfo.config.dmPolicy ?? "pairing";
1123
+ const allowFrom = normalizeAllowList(opts.allowFrom ?? accountInfo.config.allowFrom);
1124
+ const groupAllowFrom = normalizeAllowList(opts.groupAllowFrom ?? accountInfo.config.groupAllowFrom ?? (accountInfo.config.allowFrom && accountInfo.config.allowFrom.length > 0 ? accountInfo.config.allowFrom : []));
1125
+ const defaultGroupPolicy = resolveDefaultGroupPolicy(cfg);
1126
+ const { groupPolicy, providerMissingFallbackApplied } = resolveAllowlistProviderRuntimeGroupPolicy({
1127
+ providerConfigPresent: cfg.channels?.signal !== void 0,
1128
+ groupPolicy: accountInfo.config.groupPolicy,
1129
+ defaultGroupPolicy
1130
+ });
1131
+ warnMissingProviderGroupPolicyFallbackOnce({
1132
+ providerMissingFallbackApplied,
1133
+ providerKey: "signal",
1134
+ accountId: accountInfo.accountId,
1135
+ log: (message) => runtime.log?.(message)
1136
+ });
1137
+ const reactionMode = accountInfo.config.reactionNotifications ?? "own";
1138
+ const reactionAllowlist = normalizeAllowList(accountInfo.config.reactionAllowlist);
1139
+ const mediaMaxBytes = (opts.mediaMaxMb ?? accountInfo.config.mediaMaxMb ?? 8) * 1024 * 1024;
1140
+ const ignoreAttachments = opts.ignoreAttachments ?? accountInfo.config.ignoreAttachments ?? false;
1141
+ const sendReadReceipts = Boolean(opts.sendReadReceipts ?? accountInfo.config.sendReadReceipts);
1142
+ const waitForTransportReadyFn = opts.waitForTransportReady ?? waitForTransportReady;
1143
+ const autoStart = opts.autoStart ?? accountInfo.config.autoStart ?? !accountInfo.config.httpUrl;
1144
+ const startupTimeoutMs = Math.min(12e4, Math.max(1e3, opts.startupTimeoutMs ?? accountInfo.config.startupTimeoutMs ?? 3e4));
1145
+ const readReceiptsViaDaemon = autoStart && sendReadReceipts;
1146
+ const daemonLifecycle = createSignalDaemonLifecycle({ abortSignal: opts.abortSignal });
1147
+ let daemonHandle = null;
1148
+ if (autoStart) {
1149
+ daemonHandle = spawnSignalDaemon({
1150
+ cliPath: opts.cliPath ?? accountInfo.config.cliPath ?? "signal-cli",
1151
+ account,
1152
+ httpHost: opts.httpHost ?? accountInfo.config.httpHost ?? "127.0.0.1",
1153
+ httpPort: opts.httpPort ?? accountInfo.config.httpPort ?? 8080,
1154
+ receiveMode: opts.receiveMode ?? accountInfo.config.receiveMode,
1155
+ ignoreAttachments: opts.ignoreAttachments ?? accountInfo.config.ignoreAttachments,
1156
+ ignoreStories: opts.ignoreStories ?? accountInfo.config.ignoreStories,
1157
+ sendReadReceipts,
1158
+ runtime
1159
+ });
1160
+ daemonLifecycle.attach(daemonHandle);
1161
+ }
1162
+ const onAbort = () => {
1163
+ daemonLifecycle.stop();
1164
+ };
1165
+ opts.abortSignal?.addEventListener("abort", onAbort, { once: true });
1166
+ try {
1167
+ if (daemonHandle) {
1168
+ await waitForSignalDaemonReady({
1169
+ baseUrl,
1170
+ abortSignal: daemonLifecycle.abortSignal,
1171
+ timeoutMs: startupTimeoutMs,
1172
+ logAfterMs: 1e4,
1173
+ logIntervalMs: 1e4,
1174
+ runtime,
1175
+ waitForTransportReadyFn
1176
+ });
1177
+ const daemonExitError = daemonLifecycle.getExitError();
1178
+ if (daemonExitError) throw daemonExitError;
1179
+ }
1180
+ const handleEvent = createSignalEventHandler({
1181
+ runtime,
1182
+ cfg,
1183
+ baseUrl,
1184
+ account,
1185
+ accountUuid: accountInfo.config.accountUuid,
1186
+ accountId: accountInfo.accountId,
1187
+ blockStreaming: accountInfo.config.blockStreaming,
1188
+ historyLimit,
1189
+ groupHistories,
1190
+ textLimit,
1191
+ dmPolicy,
1192
+ allowFrom,
1193
+ groupAllowFrom,
1194
+ groupPolicy,
1195
+ reactionMode,
1196
+ reactionAllowlist,
1197
+ mediaMaxBytes,
1198
+ ignoreAttachments,
1199
+ sendReadReceipts,
1200
+ readReceiptsViaDaemon,
1201
+ fetchAttachment,
1202
+ deliverReplies: (params) => deliverReplies({
1203
+ ...params,
1204
+ cfg,
1205
+ chunkMode
1206
+ }),
1207
+ resolveSignalReactionTargets,
1208
+ isSignalReactionMessage,
1209
+ shouldEmitSignalReactionNotification,
1210
+ buildSignalReactionSystemEventText
1211
+ });
1212
+ await runSignalSseLoop({
1213
+ baseUrl,
1214
+ account,
1215
+ abortSignal: daemonLifecycle.abortSignal,
1216
+ runtime,
1217
+ policy: opts.reconnectPolicy,
1218
+ onEvent: (event) => {
1219
+ handleEvent(event).catch((err) => {
1220
+ runtime.error?.(`event handler failed: ${String(err)}`);
1221
+ });
1222
+ }
1223
+ });
1224
+ const daemonExitError = daemonLifecycle.getExitError();
1225
+ if (daemonExitError) throw daemonExitError;
1226
+ } catch (err) {
1227
+ const daemonExitError = daemonLifecycle.getExitError();
1228
+ if (opts.abortSignal?.aborted && !daemonExitError) return;
1229
+ throw err;
1230
+ } finally {
1231
+ daemonLifecycle.dispose();
1232
+ opts.abortSignal?.removeEventListener("abort", onAbort);
1233
+ daemonLifecycle.stop();
1234
+ }
1235
+ }
1236
+ //#endregion
1237
+ export { monitorSignalProvider as t };