@pixelzx/genesis 2026.5.5-2 → 2026.5.5-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 +1 -0
  2. package/dist/.buildstamp +1 -1
  3. package/dist/abort-Yw60gQ-C.js +201 -0
  4. package/dist/abort.runtime-DYQuut_O.js +2 -0
  5. package/dist/abort.runtime.js +1 -1
  6. package/dist/accounts-BSCHGPHp.js +107 -0
  7. package/dist/accounts-Bb0FqxV2.js +104 -0
  8. package/dist/accounts-BjGgx8lz.js +2 -0
  9. package/dist/acp-cli-emMnOaiO.js +2193 -0
  10. package/dist/acp-spawn-BmyUZuJX.js +1093 -0
  11. package/dist/acp-spawn-DPF5zmnN.js +2 -0
  12. package/dist/acp-stateful-target-driver-CJ4JyIHf.js +89 -0
  13. package/dist/action-agents-D1tXt8Kj.js +67 -0
  14. package/dist/action-focus-Bk6AJsNH.js +132 -0
  15. package/dist/action-help-4nFSAuVo.js +7 -0
  16. package/dist/action-info-D-byoefn.js +101 -0
  17. package/dist/action-kill-Bo-NwBVR.js +33 -0
  18. package/dist/action-list-lAa4rlzN.js +21 -0
  19. package/dist/action-log-BasoUC3L.js +30 -0
  20. package/dist/action-send-DwLkiz4x.js +39 -0
  21. package/dist/action-spawn-C70_iR8d.js +47 -0
  22. package/dist/action-unfocus-dUVMx5Fh.js +29 -0
  23. package/dist/actions.runtime-BdSo6rN8.js +18 -0
  24. package/dist/actions.runtime-BvY67XKu.js +5 -0
  25. package/dist/actions.runtime.js +1 -1
  26. package/dist/agent-DDBv3Vgl.js +2 -0
  27. package/dist/agent-command-DC7I_88W.js +874 -0
  28. package/dist/agent-harness-runtime-TA6YH7Ud.js +144 -0
  29. package/dist/agent-runner-utils-CMe-JIDq.js +239 -0
  30. package/dist/agent-runner.runtime-le6AmJRw.js +3455 -0
  31. package/dist/agent-runner.runtime.js +1 -1
  32. package/dist/agent-runtime-CONy4fDD.js +18 -0
  33. package/dist/agents-BlbOM4XW.js +953 -0
  34. package/dist/agents-Byj8CDAP.js +5 -0
  35. package/dist/aliases-C3Ks5x38.js +2 -0
  36. package/dist/aliases-CxBcx9gF.js +96 -0
  37. package/dist/api-CLoj7nYH.js +3 -0
  38. package/dist/api-DZiRkVPk.js +5 -0
  39. package/dist/api-_Y4nIHNo.js +139 -0
  40. package/dist/approval-gateway-resolver-Ba_2kb3B.js +29 -0
  41. package/dist/approval-gateway-runtime-7VMivk0A.js +2 -0
  42. package/dist/approval-handler-runtime-Bh0onoHD.js +439 -0
  43. package/dist/approval-native-runtime-IYFyT8Hf.js +729 -0
  44. package/dist/attempt-execution.runtime-CpL2tsYd.js +509 -0
  45. package/dist/attempt-execution.runtime.js +1 -1
  46. package/dist/attempt.prompt-helpers-Gx9nGKbW.js +221 -0
  47. package/dist/attempt.tool-run-context-BmuljBMs.js +933 -0
  48. package/dist/audit-CsjqOEVE.js +939 -0
  49. package/dist/audit.runtime-BybEaYH4.js +7 -0
  50. package/dist/audit.runtime.js +1 -1
  51. package/dist/auth-BFbLz2gx.js +383 -0
  52. package/dist/auth-DdoNShRm.js +2 -0
  53. package/dist/auth-order-CtO2WQTH.js +2 -0
  54. package/dist/auth-order-zXIiW-Cn.js +96 -0
  55. package/dist/bash-tools-CnDYSbnX.js +2824 -0
  56. package/dist/bash-tools-DiOcKaak.js +3 -0
  57. package/dist/binding-routing-E9Gh_NqO.js +85 -0
  58. package/dist/binding-targets-C5PbBaZ6.js +121 -0
  59. package/dist/bridge-server-DragdaQD.js +113 -0
  60. package/dist/browser-control-auth-D_M31xJ1.js +2 -0
  61. package/dist/browser-node-runtime-Bgu82luB.js +12 -0
  62. package/dist/browser-profiles-C3ffkgOt.js +2 -0
  63. package/dist/browser-runtime-D84IBo4A.js +387 -0
  64. package/dist/browser-setup-tools-VC7rGCyn.js +13 -0
  65. package/dist/build-DeGDX_pJ.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-CbvF41H8.js +3 -0
  70. package/dist/call-DuDGOVT1.js +331 -0
  71. package/dist/call.runtime-DztWXjMr.js +2 -0
  72. package/dist/call.runtime.js +1 -1
  73. package/dist/capability-cli-DoJLi3eS.js +1401 -0
  74. package/dist/catchup-Dk-5hIwm.js +300 -0
  75. package/dist/channel-BJ9iEC4Y.js +595 -0
  76. package/dist/channel-BdvsbgZE.js +453 -0
  77. package/dist/channel-Bu-7KaIx.js +1802 -0
  78. package/dist/channel-C9vQNMK1.js +350 -0
  79. package/dist/channel-CZoVAZyW.js +491 -0
  80. package/dist/channel-Cr2KTwyo.js +840 -0
  81. package/dist/channel-DCeC6AEQ.js +297 -0
  82. package/dist/channel-DOGp2TfT.js +1320 -0
  83. package/dist/channel-Dfq1lxxI.js +226 -0
  84. package/dist/channel-core-DiltAzdr.js +5 -0
  85. package/dist/channel-hZDaTBpm.js +1100 -0
  86. package/dist/channel-inbound-DvOS-Z1s.js +31 -0
  87. package/dist/channel-plugin-runtime-PFRHQ61T.js +771 -0
  88. package/dist/channel-runtime-BAjxIEfQ.js +425 -0
  89. package/dist/channel-szBwbQZB.js +1174 -0
  90. package/dist/channel.runtime-B1Ry35gt.js +89 -0
  91. package/dist/channel.runtime-BNp6GxaQ.js +34702 -0
  92. package/dist/channel.runtime-BfjvNvbj.js +2364 -0
  93. package/dist/channel.runtime-BlGn4QYV.js +4 -0
  94. package/dist/channel.runtime-D7bv5rJl.js +576 -0
  95. package/dist/channel.runtime-DQ5gSgeW.js +109 -0
  96. package/dist/channel.runtime-IxClQMdT.js +430 -0
  97. package/dist/channel.setup-BsfyGPgV.js +10 -0
  98. package/dist/channels-Dn2VHRmZ.js +733 -0
  99. package/dist/channels-cli-l4xjPvDv.js +268 -0
  100. package/dist/chat-zUeX8mQw.js +2758 -0
  101. package/dist/clawbot-cli-C3BFdHJB.js +9 -0
  102. package/dist/cli/daemon-cli.js +4 -4
  103. package/dist/cli-BTnpFsj1.js +2 -0
  104. package/dist/cli-CAFQ6Cwy.js +72 -0
  105. package/dist/cli-CiqIbwtg.js +219 -0
  106. package/dist/cli-DL1ppK38.js +2 -0
  107. package/dist/cli-runner-DO6lEPJr.js +286 -0
  108. package/dist/cli-runner.runtime-B-Ic4DyC.js +3 -0
  109. package/dist/cli-runner.runtime-C4cAORcg.js +4 -0
  110. package/dist/cli-runner.runtime.js +1 -1
  111. package/dist/cli-startup-metadata.json +2 -2
  112. package/dist/cli.runtime-CYHctHVS.js +1261 -0
  113. package/dist/cli.runtime.js +1 -1
  114. package/dist/client-Bb_miREU.js +138 -0
  115. package/dist/client-CrPccv7a.js +713 -0
  116. package/dist/command-auth-B7P-1IeA.js +76 -0
  117. package/dist/command-config-resolution-BB-SsCob.js +23 -0
  118. package/dist/command-config-resolution-DMKYb0Kh.js +2 -0
  119. package/dist/command-config-resolution.runtime-Coeaa9lz.js +2 -0
  120. package/dist/command-config-resolution.runtime.js +1 -1
  121. package/dist/command-registry-B2JzWHqy.js +9 -0
  122. package/dist/command-registry-CNUpJUp8.js +4 -0
  123. package/dist/command-registry-core-BLap9aka.js +101 -0
  124. package/dist/command-secret-gateway-ChRXthnT.js +528 -0
  125. package/dist/command-status.runtime-D8VWyC3v.js +87 -0
  126. package/dist/command-status.runtime.js +1 -1
  127. package/dist/commands-acp-QLk1cU5f.js +77 -0
  128. package/dist/commands-compact.runtime-BIHG2RSY.js +10 -0
  129. package/dist/commands-compact.runtime.js +1 -1
  130. package/dist/commands-handlers.runtime-DjimbxSJ.js +4597 -0
  131. package/dist/commands-handlers.runtime.js +1 -1
  132. package/dist/commands-status-DiIQSYSt.js +16 -0
  133. package/dist/commands-status.runtime-DBRxICN6.js +3 -0
  134. package/dist/commands-status.runtime.js +1 -1
  135. package/dist/commands-subagents-control.runtime-BmqXiKHu.js +3 -0
  136. package/dist/commands-subagents-control.runtime-CVQSOd8H.js +2 -0
  137. package/dist/commands-subagents-control.runtime.js +1 -1
  138. package/dist/commands-system-prompt-2qwZc3xL.js +158 -0
  139. package/dist/commands-system-prompt-Clnn_Gct.js +2 -0
  140. package/dist/commands.runtime-DAqpiDPr.js +166 -0
  141. package/dist/commands.runtime.js +1 -1
  142. package/dist/compact-DqOkQZYr.js +1118 -0
  143. package/dist/compact.runtime-CC_l29j4.js +12 -0
  144. package/dist/compact.runtime.js +1 -1
  145. package/dist/completion-cli-DZFJPSiF.js +328 -0
  146. package/dist/config-D9XEe0Cd.js +251 -0
  147. package/dist/config-cli-DVDwIjKr.js +1078 -0
  148. package/dist/configure-39oQUHuK.js +1245 -0
  149. package/dist/configure-BGD8tViZ.js +2 -0
  150. package/dist/connect-options-Fpky6zuL.js +699 -0
  151. package/dist/control-auth-BlqH4IVx.js +125 -0
  152. package/dist/control-service-CaqDohiY.js +156 -0
  153. package/dist/conversation-id-BH9GFVB2.js +235 -0
  154. package/dist/conversation-id-UdIegcf4.js +38 -0
  155. package/dist/conversation-runtime-Bao0kIPf.js +31 -0
  156. package/dist/core-DXUh5Xbm.js +275 -0
  157. package/dist/cron-cli-B1mxHnGP.js +713 -0
  158. package/dist/daemon-cli-CaHBNwMy.js +12 -0
  159. package/dist/daemon-install-BBwOxf1q.js +64 -0
  160. package/dist/delegate-7G7R4C-C.js +64 -0
  161. package/dist/detached-task-runtime-BMdSrcuz.js +73 -0
  162. package/dist/devices-cli-DnEQH3R2.js +496 -0
  163. package/dist/diagnostics-C8VwSDtU.js +154 -0
  164. package/dist/direct-dm-BSEkIiOe.js +64 -0
  165. package/dist/dispatch-1gv6It-6.js +1131 -0
  166. package/dist/dispatch-acp-hbhR9aHr.js +981 -0
  167. package/dist/dispatch-acp-manager.runtime-BXQbK1cO.js +3 -0
  168. package/dist/dispatch-acp-manager.runtime.js +1 -1
  169. package/dist/dispatch-acp.runtime-Dhx090J2.js +19 -0
  170. package/dist/dispatch-acp.runtime.js +1 -1
  171. package/dist/doctor-device-pairing-1gf3tk3g.js +307 -0
  172. package/dist/doctor-gateway-daemon-flow-LEnN6pL-.js +250 -0
  173. package/dist/doctor-gateway-health-DwxLkTV4.js +60 -0
  174. package/dist/doctor-gateway-services-BhqUOY_e.js +316 -0
  175. package/dist/doctor-health-CdJkaUYf.js +59 -0
  176. package/dist/doctor-health-contributions-BaTnIzCT.js +486 -0
  177. package/dist/doctor-prompter-BZTb5rOn.js +56 -0
  178. package/dist/doctor-workspace-status-DnBARoPa.js +75 -0
  179. package/dist/dreaming-BAGFdUxh.js +1574 -0
  180. package/dist/dreaming-narrative-XoOfVb0x.js +595 -0
  181. package/dist/embedded-gateway-stub.runtime-xwZ-M7Ei.js +9 -0
  182. package/dist/embedded-gateway-stub.runtime.js +1 -1
  183. package/dist/entry.js +2 -2
  184. package/dist/exec-approvals-cli-CWVWSMk-.js +498 -0
  185. package/dist/extensionAPI.js +1 -1
  186. package/dist/extensions/active-memory/index.js +1 -1
  187. package/dist/extensions/bluebubbles/api.js +3 -3
  188. package/dist/extensions/bluebubbles/channel-plugin-api.js +1 -1
  189. package/dist/extensions/browser/browser-bridge.js +1 -1
  190. package/dist/extensions/browser/browser-config.js +4 -4
  191. package/dist/extensions/browser/browser-control-auth.js +2 -2
  192. package/dist/extensions/browser/browser-doctor.js +2 -2
  193. package/dist/extensions/browser/browser-maintenance.js +2 -2
  194. package/dist/extensions/browser/browser-profiles.js +2 -2
  195. package/dist/extensions/browser/browser-runtime-api.js +10 -10
  196. package/dist/extensions/browser/index.js +1 -1
  197. package/dist/extensions/browser/plugin-registration.js +1 -1
  198. package/dist/extensions/browser/register.runtime.js +3 -3
  199. package/dist/extensions/browser/runtime-api.js +11 -11
  200. package/dist/extensions/browser/test-support.js +1 -1
  201. package/dist/extensions/device-pair/api.js +1 -1
  202. package/dist/extensions/device-pair/index.js +3 -3
  203. package/dist/extensions/device-pair/notify.js +1 -1
  204. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  205. package/dist/extensions/google-meet/index.js +2 -2
  206. package/dist/extensions/imessage/api.js +3 -3
  207. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  208. package/dist/extensions/imessage/runtime-api.js +3 -3
  209. package/dist/extensions/irc/api.js +2 -2
  210. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  211. package/dist/extensions/line/api.js +2 -2
  212. package/dist/extensions/line/channel-plugin-api.js +1 -1
  213. package/dist/extensions/line/contract-api.js +1 -1
  214. package/dist/extensions/line/runtime-api.js +4 -4
  215. package/dist/extensions/line/setup-api.js +1 -1
  216. package/dist/extensions/llm-task/index.js +2 -2
  217. package/dist/extensions/lobster/index.js +3 -3
  218. package/dist/extensions/lobster/runtime-api.js +1 -1
  219. package/dist/extensions/mattermost/api.js +1 -1
  220. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  221. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  222. package/dist/extensions/mattermost/policy-api.js +1 -1
  223. package/dist/extensions/mattermost/runtime-api.js +4 -4
  224. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  225. package/dist/extensions/memory-core/api.js +1 -1
  226. package/dist/extensions/memory-core/cli-metadata.js +2 -2
  227. package/dist/extensions/memory-core/index.js +3 -3
  228. package/dist/extensions/memory-lancedb/cli-metadata.js +1 -1
  229. package/dist/extensions/msteams/api.js +1 -1
  230. package/dist/extensions/msteams/channel-plugin-api.js +1 -1
  231. package/dist/extensions/msteams/runtime-api.js +3 -3
  232. package/dist/extensions/msteams/test-api.js +1 -1
  233. package/dist/extensions/nextcloud-talk/api.js +1 -1
  234. package/dist/extensions/nextcloud-talk/channel-plugin-api.js +1 -1
  235. package/dist/extensions/nextcloud-talk/runtime-api.js +2 -2
  236. package/dist/extensions/openshell/index.js +2 -2
  237. package/dist/extensions/signal/api.js +6 -6
  238. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  239. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  240. package/dist/extensions/signal/runtime-api.js +7 -7
  241. package/dist/extensions/skill-workshop/api.js +1 -1
  242. package/dist/extensions/skill-workshop/index.js +1 -1
  243. package/dist/extensions/synology-chat/api.js +1 -1
  244. package/dist/extensions/synology-chat/channel-plugin-api.js +1 -1
  245. package/dist/extensions/tlon/api.js +2 -2
  246. package/dist/extensions/tlon/channel-plugin-api.js +1 -1
  247. package/dist/extensions/tlon/runtime-api.js +1 -1
  248. package/dist/extensions/tlon/test-api.js +1 -1
  249. package/dist/extensions/twitch/api.js +1 -1
  250. package/dist/extensions/twitch/channel-plugin-api.js +1 -1
  251. package/dist/extensions/twitch/setup-plugin-api.js +1 -1
  252. package/dist/extensions/zalo/api.js +3 -3
  253. package/dist/extensions/zalo/channel-plugin-api.js +1 -1
  254. package/dist/extensions/zalo/runtime-api.js +2 -2
  255. package/dist/extensions/zalo/setup-api.js +2 -2
  256. package/dist/extensions/zalouser/api.js +3 -3
  257. package/dist/extensions/zalouser/channel-plugin-api.js +1 -1
  258. package/dist/extensions/zalouser/runtime-api.js +6 -6
  259. package/dist/extensions/zalouser/setup-plugin-api.js +1 -1
  260. package/dist/extensions/zalouser/test-api.js +1 -1
  261. package/dist/fallbacks-BKA5XrxA.js +31 -0
  262. package/dist/fallbacks-QvezaDAr.js +2 -0
  263. package/dist/fallbacks-shared-DS-qTOLR.js +111 -0
  264. package/dist/gateway-C0YHaLXO.js +115 -0
  265. package/dist/gateway-cli-DJBCD8J5.js +1325 -0
  266. package/dist/gateway-rpc-CmJXd4SU.js +14 -0
  267. package/dist/gateway-rpc.runtime-C9Fs2mSx.js +23 -0
  268. package/dist/gateway-rpc.runtime.js +1 -1
  269. package/dist/gateway-runtime-Bm2_MhFn.js +15 -0
  270. package/dist/gateway-status-DXKMKFtB.js +584 -0
  271. package/dist/genesis-tools-AolFZ-0I.js +8999 -0
  272. package/dist/genesis-tools.runtime-CBWXJqzw.js +2 -0
  273. package/dist/genesis-tools.runtime.js +1 -1
  274. package/dist/get-reply-BpxjHQBp.js +3879 -0
  275. package/dist/get-reply-from-config.runtime-DJKEqLSi.js +2 -0
  276. package/dist/get-reply-from-config.runtime.js +1 -1
  277. package/dist/graph-users-D2Q5UTGQ.js +1337 -0
  278. package/dist/health-BNKpuAPB.js +469 -0
  279. package/dist/health-BkxZfKx8.js +3 -0
  280. package/dist/heartbeat-runner-Bdu2q6k3.js +5 -0
  281. package/dist/heartbeat-runner-C0B-c-fv.js +1292 -0
  282. package/dist/heartbeat-runner.runtime-Cic23eNy.js +4 -0
  283. package/dist/heartbeat-runner.runtime.js +1 -1
  284. package/dist/hooks-cli-BfCr2In5.js +433 -0
  285. package/dist/image-fallbacks-Dgy-LmDo.js +2 -0
  286. package/dist/image-fallbacks-RlfTqOne.js +31 -0
  287. package/dist/inbound-reply-dispatch-D4KJHWLG.js +73 -0
  288. package/dist/index.js +2 -2
  289. package/dist/infra-runtime-BTJv3KK8.js +39 -0
  290. package/dist/init-q4INH9uv.js +59 -0
  291. package/dist/install-BT4BNeMX.js +190 -0
  292. package/dist/install.runtime-BnqPyIyn.js +2 -0
  293. package/dist/launchd-BM_37PLv.js +698 -0
  294. package/dist/library-DGd4UZKC.js +45 -0
  295. package/dist/lifecycle-B_RLw4uY.js +229 -0
  296. package/dist/lifecycle-Bw01evSl.js +571 -0
  297. package/dist/lifecycle-core-CTjCo-k0.js +422 -0
  298. package/dist/lifecycle.runtime-BxpD2Ol7.js +2 -0
  299. package/dist/lifecycle.runtime.js +1 -1
  300. package/dist/list-BXa4zUF-.js +2 -0
  301. package/dist/list-BugTSXmQ.js +131 -0
  302. package/dist/list-CgC_rsta.js +1201 -0
  303. package/dist/list-D2sk1YPs.js +2 -0
  304. package/dist/list.probe-C6zfgLdG.js +419 -0
  305. package/dist/llm-slug-generator-DsWJvqNx.js +79 -0
  306. package/dist/llm-slug-generator.js +1 -1
  307. package/dist/load-config-D6ZKPY7I.js +35 -0
  308. package/dist/local-dispatch.runtime-MWMxyZKj.js +8 -0
  309. package/dist/local-dispatch.runtime.js +1 -1
  310. package/dist/logs-cli-Dn-8jl3z.js +265 -0
  311. package/dist/logs-cli.runtime-DwsccWUJ.js +2 -0
  312. package/dist/logs-cli.runtime.js +1 -1
  313. package/dist/main-session-restart-recovery-6Uh4W8ZJ.js +206 -0
  314. package/dist/managed-image-attachments-DHawPS1-.js +2 -0
  315. package/dist/managed-image-attachments-DjtxwZ9o.js +635 -0
  316. package/dist/manager-D0tkR46e.js +2057 -0
  317. package/dist/manager-g_P1RDky.js +2 -0
  318. package/dist/markdown-to-line-7AxR7QFo.js +790 -0
  319. package/dist/mcp/plugin-tools-serve.js +1 -1
  320. package/dist/mcp-cli-Cw2XQMOA.js +725 -0
  321. package/dist/mcp-http-DFKqya8U.js +529 -0
  322. package/dist/memory-core-host-runtime-cli-DaAsOXiU.js +9 -0
  323. package/dist/message-BDCG7eWj.js +232 -0
  324. package/dist/message-action-runner-6C7kXcC9.js +2 -0
  325. package/dist/message-action-runner-C2P3efhU.js +1407 -0
  326. package/dist/message-actions-BWQWt5gT.js +143 -0
  327. package/dist/message.gateway.runtime-BXChuYAf.js +2 -0
  328. package/dist/message.gateway.runtime.js +1 -1
  329. package/dist/models-auth-status-B8lnM1PS.js +201 -0
  330. package/dist/models-cli-DbUA18AN.js +219 -0
  331. package/dist/monitor-BEJe2ceJ.js +1237 -0
  332. package/dist/monitor-BO9i6U5R.js +1459 -0
  333. package/dist/monitor-BZLrxL_x.js +1661 -0
  334. package/dist/monitor-CDDxHGlD.js +788 -0
  335. package/dist/monitor-D779kLc0.js +671 -0
  336. package/dist/monitor-V5ZNCrQL.js +2 -0
  337. package/dist/monitor-auth-D2rCHNgr.js +207 -0
  338. package/dist/monitor-processing-BLbsNFVv.js +1974 -0
  339. package/dist/monitor.runtime-RrusGXVO.js +2 -0
  340. package/dist/monitor.runtime.js +1 -1
  341. package/dist/monitor.webhook-B0DuBNWa.js +180 -0
  342. package/dist/msteams-hh9nwLlZ.js +35 -0
  343. package/dist/native-hook-relay-BygYZoeR.js +519 -0
  344. package/dist/nextcloud-talk-AadRCqXn.js +17 -0
  345. package/dist/node-cli-FF1zz0JU.js +2506 -0
  346. package/dist/node-service-f8mmgM5L.js +68 -0
  347. package/dist/nodes-cli-tQ5dpecZ.js +1046 -0
  348. package/dist/nodes-utils-BfpGcUca.js +84 -0
  349. package/dist/nodes.helpers-CMXxavTs.js +34 -0
  350. package/dist/notify-DaNP5Zyh.js +315 -0
  351. package/dist/onboard-B9hx80Dm.js +632 -0
  352. package/dist/onboard-helpers-BlPrFJHK.js +204 -0
  353. package/dist/onboard-helpers-kL8mgUkl.js +6 -0
  354. package/dist/onboard-remote-ByHuQd1m.js +193 -0
  355. package/dist/onboard-remote-CRPXcrWy.js +2 -0
  356. package/dist/onboard-skills-ChtyNRCd.js +2 -0
  357. package/dist/onboard-skills-DROlYXya.js +134 -0
  358. package/dist/openai-http-2An5HAJU.js +500 -0
  359. package/dist/openresponses-http-DpbJXZP4.js +1128 -0
  360. package/dist/operator-approvals-client-BoN_VmkB.js +68 -0
  361. package/dist/outbound.runtime-D_aebUn6.js +2 -0
  362. package/dist/outbound.runtime.js +1 -1
  363. package/dist/pair-command-approve-i-1VECJx.js +44 -0
  364. package/dist/persistent-bindings.lifecycle-eZyKQ1D8.js +85 -0
  365. package/dist/persistent-bindings.lifecycle-mxY73TJR.js +2 -0
  366. package/dist/pi-embedded-0fErjTQ7.js +2905 -0
  367. package/dist/pi-embedded-Bc1jC2x0.js +4 -0
  368. package/dist/pi-embedded.runtime-Bn_RZ5z8.js +4 -0
  369. package/dist/pi-embedded.runtime.js +1 -1
  370. package/dist/pi-tool-definition-adapter-thh7LO1t.js +217 -0
  371. package/dist/pi-tools-BtlLDovQ.js +1057 -0
  372. package/dist/pi-tools.before-tool-call-BJ_X8Dq3.js +2 -0
  373. package/dist/pi-tools.before-tool-call-DdPCGWCs.js +433 -0
  374. package/dist/plugin-CdHHk4Xn.js +12195 -0
  375. package/dist/plugin-enabled-DybhbjKQ.js +140 -0
  376. package/dist/plugin-registration-Bgwpsokw.js +23 -0
  377. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  378. package/dist/plugin-sdk/acp-binding-runtime.js +1 -1
  379. package/dist/plugin-sdk/acp-runtime.js +2 -2
  380. package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
  381. package/dist/plugin-sdk/agent-harness.js +6 -6
  382. package/dist/plugin-sdk/agent-runtime.js +2 -2
  383. package/dist/plugin-sdk/approval-gateway-runtime.js +2 -2
  384. package/dist/plugin-sdk/approval-handler-runtime.js +3 -3
  385. package/dist/plugin-sdk/approval-runtime.js +1 -1
  386. package/dist/plugin-sdk/browser-node-runtime.js +4 -4
  387. package/dist/plugin-sdk/browser-setup-tools.js +3 -3
  388. package/dist/plugin-sdk/browser-support.js +7 -7
  389. package/dist/plugin-sdk/channel-core.js +2 -2
  390. package/dist/plugin-sdk/channel-inbound.js +2 -2
  391. package/dist/plugin-sdk/command-auth.js +1 -1
  392. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  393. package/dist/plugin-sdk/compat.js +1 -1
  394. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  395. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  396. package/dist/plugin-sdk/core.js +2 -2
  397. package/dist/plugin-sdk/direct-dm.js +1 -1
  398. package/dist/plugin-sdk/gateway-runtime.js +3 -3
  399. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  400. package/dist/plugin-sdk/index.js +1 -1
  401. package/dist/plugin-sdk/infra-runtime.js +2 -2
  402. package/dist/plugin-sdk/irc.js +2 -2
  403. package/dist/plugin-sdk/matrix.js +1 -1
  404. package/dist/plugin-sdk/memory-core-host-runtime-cli.js +2 -2
  405. package/dist/plugin-sdk/memory-core.js +2 -2
  406. package/dist/plugin-sdk/msteams.js +2 -2
  407. package/dist/plugin-sdk/nextcloud-talk.js +2 -2
  408. package/dist/plugin-sdk/nostr.js +1 -1
  409. package/dist/plugin-sdk/reply-dispatch-runtime.js +1 -1
  410. package/dist/plugin-sdk/reply-runtime.js +4 -4
  411. package/dist/plugin-sdk/runtime-secret-resolution.js +1 -1
  412. package/dist/plugin-sdk/runtime.js +2 -2
  413. package/dist/plugin-sdk/session-visibility.js +1 -1
  414. package/dist/plugin-sdk/testing.js +4 -4
  415. package/dist/plugin-sdk/tlon.js +1 -1
  416. package/dist/plugin-sdk/zalo.js +1 -1
  417. package/dist/plugin-sdk/zalouser.js +1 -1
  418. package/dist/plugin-service-ClhrJfT3.js +2890 -0
  419. package/dist/plugins/runtime/index.js +1 -1
  420. package/dist/policy-CoqHgREn.js +328 -0
  421. package/dist/postinstall-inventory.json +418 -418
  422. package/dist/prepare.runtime-CawO_32K.js +815 -0
  423. package/dist/prepare.runtime.js +1 -1
  424. package/dist/probe-BP3QS65i.js +74 -0
  425. package/dist/probe-BdCXAH_u.js +2 -0
  426. package/dist/probe-Cv5tXOMP.js +2205 -0
  427. package/dist/probe-D-D_1oc4.js +241 -0
  428. package/dist/probe-DO-gll0g.js +2 -0
  429. package/dist/probe-T6c0F73q.js +45 -0
  430. package/dist/probe-dxji7IxZ.js +1443 -0
  431. package/dist/program-GMPfHt5E.js +111 -0
  432. package/dist/prompt-select-styled-BvuJNEJG.js +20 -0
  433. package/dist/protocol-Batc2DmY.js +2234 -0
  434. package/dist/provider-dispatcher-CGYoOdKf.js +2 -0
  435. package/dist/provider-dispatcher-iTEDM88F.js +22 -0
  436. package/dist/qr-cli-6IxenO1C.js +349 -0
  437. package/dist/qr-cli-D63piSog.js +2 -0
  438. package/dist/reaction-runtime-api-DgwRXTz2.js +116 -0
  439. package/dist/reactions-Dnh7t4Zl.js +998 -0
  440. package/dist/register-service-commands-D7w01SKL.js +71 -0
  441. package/dist/register.agent-j1Eno4xr.js +248 -0
  442. package/dist/register.configure-ubwxTkGt.js +15 -0
  443. package/dist/register.maintenance-B7FuM_ZW.js +438 -0
  444. package/dist/register.message-QR3u9rBl.js +329 -0
  445. package/dist/register.onboard-Bdcf_lH0.js +81 -0
  446. package/dist/register.runtime-QDduc4yj.js +81 -0
  447. package/dist/register.runtime.js +1 -1
  448. package/dist/register.setup-DzVV6tdQ.js +150 -0
  449. package/dist/register.status-health-sessions-Brw3VcxG.js +1215 -0
  450. package/dist/register.subclis-B8qDbqPl.js +29 -0
  451. package/dist/register.subclis-DdoN3nZi.js +3 -0
  452. package/dist/register.subclis-core-CWHmnIoe.js +249 -0
  453. package/dist/reply-dispatch-runtime-BVLvCeJ0.js +13 -0
  454. package/dist/reply-runtime-BXkvfLv_.js +11 -0
  455. package/dist/reply.runtime-BTkpxI5R.js +2 -0
  456. package/dist/reply.runtime.js +1 -1
  457. package/dist/restart-health-6cjrRBpF.js +202 -0
  458. package/dist/restart-health-b6Qw43Tj.js +2 -0
  459. package/dist/root-help-DDa1oEtT.js +44 -0
  460. package/dist/routes-CoCMty69.js +2 -0
  461. package/dist/routes-D9uC_Zdy.js +3341 -0
  462. package/dist/rpc-DpLGM3FH.js +61 -0
  463. package/dist/rpc.runtime-B27EA5A0.js +21 -0
  464. package/dist/rpc.runtime.js +1 -1
  465. package/dist/run-delivery.runtime-OmILefLX.js +530 -0
  466. package/dist/run-delivery.runtime.js +1 -1
  467. package/dist/run-embedded.runtime-Dc43u_Z7.js +4 -0
  468. package/dist/run-embedded.runtime.js +1 -1
  469. package/dist/run-execution-cli.runtime-DL5w7Ac8.js +4 -0
  470. package/dist/run-execution-cli.runtime.js +1 -1
  471. package/dist/run-executor.runtime-Bzwt0zP-.js +277 -0
  472. package/dist/run-executor.runtime.js +1 -1
  473. package/dist/run-main-BLD1wTLU.js +516 -0
  474. package/dist/run-subagent-registry.runtime-CddCeg6W.js +2 -0
  475. package/dist/run-subagent-registry.runtime.js +1 -1
  476. package/dist/run-wait-D4Gxuyru.js +135 -0
  477. package/dist/runtime-8BuIPrSY.js +973 -0
  478. package/dist/runtime-Co8r21pw.js +9 -0
  479. package/dist/runtime-api-BG0XWkir.js +4 -0
  480. package/dist/runtime-api-BjBzlgns.js +9 -0
  481. package/dist/runtime-api-DlYbbA-n.js +14 -0
  482. package/dist/runtime-api-faT33SE2.js +9 -0
  483. package/dist/runtime-embedded-pi.runtime-QdJ7K4t0.js +2 -0
  484. package/dist/runtime-embedded-pi.runtime.js +1 -1
  485. package/dist/runtime-internal-C0xc_Zhf.js +2 -0
  486. package/dist/runtime-options-DLv7ygkO.js +275 -0
  487. package/dist/runtime-schema-CQK5R5Pl.js +27780 -0
  488. package/dist/scan-Yz6DoQn5.js +523 -0
  489. package/dist/scan-k38hL_6o.js +2 -0
  490. package/dist/secrets-cli-Bjvr0bOw.js +2101 -0
  491. package/dist/security-cli-C2gkMFcB.js +486 -0
  492. package/dist/selection-DC8EXnRg.js +7736 -0
  493. package/dist/selection-DmSFI5k4.js +2 -0
  494. package/dist/send-CT6EfHrc.js +102 -0
  495. package/dist/send-_ANvjE_C.js +156 -0
  496. package/dist/send.runtime-COIjG4BV.js +2 -0
  497. package/dist/send.runtime.js +1 -1
  498. package/dist/server-COkv9Si4.js +13 -0
  499. package/dist/server-DHLQZJL8.js +77 -0
  500. package/dist/server-context-6jnr-aAw.js +2 -0
  501. package/dist/server-context-DK1QsdLh.js +847 -0
  502. package/dist/server-node-events-q8H0odkq.js +481 -0
  503. package/dist/server-plugin-bootstrap-Bw4a88yA.js +2 -0
  504. package/dist/server-plugin-bootstrap-By_w9ngt.js +11333 -0
  505. package/dist/server-restart-sentinel-CGLYF3mk.js +697 -0
  506. package/dist/server.impl-8j4SImks.js +12735 -0
  507. package/dist/service-CNjb_qXC.js +2 -0
  508. package/dist/service-CyR3mZIU.js +120 -0
  509. package/dist/service-audit-DIL0OiMa.js +260 -0
  510. package/dist/service-audit-pwloDggS.js +2 -0
  511. package/dist/session-kill-http-Dek5w0Ee.js +110 -0
  512. package/dist/session-reset-service-B_9Ps0kr.js +471 -0
  513. package/dist/session-route-Cr6vOd9_.js +93 -0
  514. package/dist/session-status.runtime-C_x1MHH5.js +2 -0
  515. package/dist/session-status.runtime.js +1 -1
  516. package/dist/session-subagent-reactivation.runtime-BKWuNild.js +2 -0
  517. package/dist/session-subagent-reactivation.runtime.js +1 -1
  518. package/dist/session-tab-registry-C08V5jx6.js +491 -0
  519. package/dist/session-visibility-D4j8hN_B.js +147 -0
  520. package/dist/sessions-helpers-DmUVRk16.js +304 -0
  521. package/dist/sessions-history-http-DN3KzEnX.js +383 -0
  522. package/dist/sessions-patch-BPtlF0Lu.js +309 -0
  523. package/dist/sessions-resolve-D6KPfG_4.js +174 -0
  524. package/dist/sessions.runtime-DGL1-G20.js +2 -0
  525. package/dist/sessions.runtime.js +1 -1
  526. package/dist/setup-CkYiQoP0.js +495 -0
  527. package/dist/setup-api-CUGYqGNT.js +29 -0
  528. package/dist/setup-core-BmplfubJ.js +171 -0
  529. package/dist/setup-core-C5ddWpfy.js +176 -0
  530. package/dist/setup-surface-2JmEfowI.js +219 -0
  531. package/dist/setup-surface-BzHQx_GD.js +403 -0
  532. package/dist/setup-surface-DOH6kc6w.js +286 -0
  533. package/dist/setup.finalize-Ci2HBkDq.js +539 -0
  534. package/dist/setup.gateway-config-CyG_Fzaa.js +250 -0
  535. package/dist/shared-BItUH43s.js +121 -0
  536. package/dist/shared-D7diJkX6.js +198 -0
  537. package/dist/shared-DJU_HCJ1.js +76 -0
  538. package/dist/slash-state-C4YD-tLz.js +1911 -0
  539. package/dist/src-8HdytGc7.js +3974 -0
  540. package/dist/startup-context-CfcCyUU0.js +312 -0
  541. package/dist/status-B94yciC9.js +397 -0
  542. package/dist/status-BUkUYtFm.js +190 -0
  543. package/dist/status-BsHC-0MV.js +2 -0
  544. package/dist/status-D4jNATg0.js +209 -0
  545. package/dist/status-U8ut-X2Q.js +2 -0
  546. package/dist/status-all-CIzsXQnV.js +498 -0
  547. package/dist/status-json-alPkfWTd.js +14 -0
  548. package/dist/status-json-command-CAkzWzw7.js +84 -0
  549. package/dist/status-jxNdVQVZ.js +3 -0
  550. package/dist/status-runtime-shared-BSsA48i9.js +257 -0
  551. package/dist/status-subagents.runtime-hIKg6PXV.js +18 -0
  552. package/dist/status-subagents.runtime.js +1 -1
  553. package/dist/status-text-BmLJrLth.js +237 -0
  554. package/dist/status.gateway-connection.runtime-Dr7HJ1wZ.js +2 -0
  555. package/dist/status.gateway-connection.runtime.js +1 -1
  556. package/dist/status.gather-DFY0T97g.js +2 -0
  557. package/dist/status.gather-e6sfNh8I.js +292 -0
  558. package/dist/status.runtime-DBvapXQS.js +2 -0
  559. package/dist/status.runtime.js +1 -1
  560. package/dist/status.scan-DSpkE-Q-.js +65 -0
  561. package/dist/status.scan-overview-Dr72bkbi.js +379 -0
  562. package/dist/status.scan.fast-json-C7k_m46S.js +2 -0
  563. package/dist/status.scan.fast-json-KHh7R3wX.js +132 -0
  564. package/dist/status.summary-C4r9lkCH.js +214 -0
  565. package/dist/status.summary-D0EJwkmX.js +2 -0
  566. package/dist/subagent-announce-Bu5-8O3P.js +351 -0
  567. package/dist/subagent-announce-delivery-4hk9P48s.js +726 -0
  568. package/dist/subagent-announce-output-Csyi1-Kz.js +364 -0
  569. package/dist/subagent-control-DAeNsV_G.js +506 -0
  570. package/dist/subagent-followup.runtime-Bch92LIq.js +68 -0
  571. package/dist/subagent-followup.runtime.js +1 -1
  572. package/dist/subagent-orphan-recovery-mNzyr1b-.js +305 -0
  573. package/dist/subagent-registry-BMjQxBxi.js +3 -0
  574. package/dist/subagent-registry-D4DFKQCL.js +1753 -0
  575. package/dist/subagent-registry.runtime.js +1 -1
  576. package/dist/subagent-spawn-C13uUm47.js +1005 -0
  577. package/dist/system-cli-BU6GhJxG.js +59 -0
  578. package/dist/targets-eYkepVzz.js +67 -0
  579. package/dist/task-executor-DzJLcm4D.js +360 -0
  580. package/dist/task-owner-access-DW9EbhjP.js +74 -0
  581. package/dist/task-registry-DBJkAtFF.js +2366 -0
  582. package/dist/task-registry-delivery-runtime-BdkPeGC1.js +2 -0
  583. package/dist/task-registry-delivery-runtime-Ov88LGnv.js +3 -0
  584. package/dist/task-registry.maintenance-BU6Z4V_9.js +416 -0
  585. package/dist/task-registry.maintenance-sEo6eYdx.js +2 -0
  586. package/dist/telegram/token.js +1 -1
  587. package/dist/testing-B2jHeQft.js +575 -0
  588. package/dist/text-report-HYrgZP8-.js +587 -0
  589. package/dist/tool-resolution-BZxaDOKg.js +90 -0
  590. package/dist/tools-effective-inventory-BCvCprpD.js +152 -0
  591. package/dist/tools-invoke-http-Dt1rsx4a.js +206 -0
  592. package/dist/trash-F4tvjrKS.js +24 -0
  593. package/dist/tui-cli-DlQ1oejy.js +4575 -0
  594. package/dist/update-cli-DHMdwQWA.js +1759 -0
  595. package/dist/upgrade-UR-EI5pO.js +1226 -0
  596. package/dist/video-generation-task-status-qtHrIZLt.js +163 -0
  597. package/dist/wait-for-idle-before-flush-CYB_61O0.js +5986 -0
  598. package/dist/wizard-models-BKqMCaCm.js +161 -0
  599. package/package.json +1 -1
  600. package/dist/abort-BHSttDhY.js +0 -201
  601. package/dist/abort.runtime-VJ9lFsZS.js +0 -2
  602. package/dist/accounts-BNvagEOQ.js +0 -104
  603. package/dist/accounts-CPIuzenz.js +0 -107
  604. package/dist/accounts-r08DQWhZ.js +0 -2
  605. package/dist/acp-cli-i0L-eRs9.js +0 -2193
  606. package/dist/acp-spawn-CHzVLe9q.js +0 -1093
  607. package/dist/acp-spawn-CqvxDuBq.js +0 -2
  608. package/dist/acp-stateful-target-driver-CWRLc_NP.js +0 -89
  609. package/dist/action-agents-SNCscX_-.js +0 -67
  610. package/dist/action-focus-B2s0PF2E.js +0 -132
  611. package/dist/action-help-CXKbyaZ7.js +0 -7
  612. package/dist/action-info-B3IDKxWu.js +0 -101
  613. package/dist/action-kill-idGvCNhT.js +0 -33
  614. package/dist/action-list-Di7gO3qL.js +0 -21
  615. package/dist/action-log-BCsz-gFi.js +0 -30
  616. package/dist/action-send-DLsdZnVc.js +0 -39
  617. package/dist/action-spawn-DhKEOdL0.js +0 -47
  618. package/dist/action-unfocus-Dh7ti5UP.js +0 -29
  619. package/dist/actions.runtime-BPf03SN3.js +0 -18
  620. package/dist/actions.runtime-CJg_lweh.js +0 -5
  621. package/dist/agent-C3PLvvws.js +0 -2
  622. package/dist/agent-command-UroeNrV4.js +0 -874
  623. package/dist/agent-harness-runtime-MXvI9FlJ.js +0 -144
  624. package/dist/agent-runner-utils-CaVgLZrf.js +0 -239
  625. package/dist/agent-runner.runtime-Csqm3m09.js +0 -3455
  626. package/dist/agent-runtime-B9nUYDUz.js +0 -18
  627. package/dist/agents-BP4p-1q2.js +0 -5
  628. package/dist/agents-CDiXfrfc.js +0 -953
  629. package/dist/aliases-BBCtCq2A.js +0 -96
  630. package/dist/aliases-DrFtFq1p.js +0 -2
  631. package/dist/api-BH0oEwR1.js +0 -5
  632. package/dist/api-D-4gHdrl.js +0 -139
  633. package/dist/api-DE6RYTxv.js +0 -3
  634. package/dist/approval-gateway-resolver-URpDQMld.js +0 -29
  635. package/dist/approval-gateway-runtime-B087BMms.js +0 -2
  636. package/dist/approval-handler-runtime-BEl3ua8-.js +0 -439
  637. package/dist/approval-native-runtime-ghjYGufu.js +0 -729
  638. package/dist/attempt-execution.runtime-PCTFYqLh.js +0 -509
  639. package/dist/attempt.prompt-helpers-CkWEozQ2.js +0 -221
  640. package/dist/attempt.tool-run-context-DbqVgXFk.js +0 -933
  641. package/dist/audit-Lb1yNEwg.js +0 -939
  642. package/dist/audit.runtime-DOnixKE_.js +0 -7
  643. package/dist/auth-BrlJ7NM9.js +0 -2
  644. package/dist/auth-CJoP7Yst.js +0 -383
  645. package/dist/auth-order-D0KFgBib.js +0 -96
  646. package/dist/auth-order-_xlUHzCg.js +0 -2
  647. package/dist/bash-tools-BEVEHCl9.js +0 -2824
  648. package/dist/bash-tools-DJ0D8Wr5.js +0 -3
  649. package/dist/binding-routing-IfKqPcfO.js +0 -85
  650. package/dist/binding-targets-2huR0hTX.js +0 -121
  651. package/dist/bridge-server-D8Y8Fzdz.js +0 -113
  652. package/dist/browser-control-auth-Q6UpVLEj.js +0 -2
  653. package/dist/browser-node-runtime-C9KvsOyx.js +0 -12
  654. package/dist/browser-profiles-DFcwiMEf.js +0 -2
  655. package/dist/browser-runtime-sbZ3hKg6.js +0 -387
  656. package/dist/browser-setup-tools-CP4BkZ9z.js +0 -13
  657. package/dist/build-DzHX2LrH.js +0 -550
  658. package/dist/call-ORivR4Db.js +0 -331
  659. package/dist/call-qzfm6lro.js +0 -3
  660. package/dist/call.runtime-BkzJe07B.js +0 -2
  661. package/dist/capability-cli-BDCvm93o.js +0 -1401
  662. package/dist/catchup-CjZa2PrP.js +0 -300
  663. package/dist/channel-B3UAL9Pk.js +0 -840
  664. package/dist/channel-B5L9LJBF.js +0 -453
  665. package/dist/channel-BGXl6A-E.js +0 -297
  666. package/dist/channel-BNUblayu.js +0 -1320
  667. package/dist/channel-Bej-TN7f.js +0 -491
  668. package/dist/channel-BzOKSC4e.js +0 -350
  669. package/dist/channel-CY2xEOzR.js +0 -1802
  670. package/dist/channel-D2kKLWUA.js +0 -226
  671. package/dist/channel-DcjCe46M.js +0 -1100
  672. package/dist/channel-GqA96nmt.js +0 -595
  673. package/dist/channel-YI2aIJFQ.js +0 -1174
  674. package/dist/channel-core-DqPUhmTt.js +0 -5
  675. package/dist/channel-inbound-CzgMd2Xi.js +0 -31
  676. package/dist/channel-plugin-runtime-DI5uUbxx.js +0 -771
  677. package/dist/channel-runtime-BJqKQitD.js +0 -425
  678. package/dist/channel.runtime-BBn9mgbB.js +0 -89
  679. package/dist/channel.runtime-Bhj1b9gQ.js +0 -34702
  680. package/dist/channel.runtime-BzOVx90Z.js +0 -576
  681. package/dist/channel.runtime-CQkLKWlq.js +0 -109
  682. package/dist/channel.runtime-D8qT4A1x.js +0 -4
  683. package/dist/channel.runtime-DjK9Re1w.js +0 -2364
  684. package/dist/channel.runtime-tWwM8hFw.js +0 -430
  685. package/dist/channel.setup-gaiRZ-r8.js +0 -10
  686. package/dist/channels-BXIl3hBo.js +0 -733
  687. package/dist/channels-cli-CrmBqaul.js +0 -268
  688. package/dist/chat-C42usv-F.js +0 -2758
  689. package/dist/clawbot-cli-BGYO_ymZ.js +0 -9
  690. package/dist/cli-BbD25CFK.js +0 -2
  691. package/dist/cli-CYD4Wfcq.js +0 -219
  692. package/dist/cli-D-6ycHAw.js +0 -72
  693. package/dist/cli-DX4CK-bw.js +0 -2
  694. package/dist/cli-runner-C5_PBTxm.js +0 -286
  695. package/dist/cli-runner.runtime-DE7RpQ27.js +0 -3
  696. package/dist/cli-runner.runtime-ueVMICzY.js +0 -4
  697. package/dist/cli.runtime-DSO8Vfrh.js +0 -1261
  698. package/dist/client-BKro32pr.js +0 -138
  699. package/dist/client-Vx7pseEY.js +0 -713
  700. package/dist/command-auth-CvFUTCCJ.js +0 -76
  701. package/dist/command-config-resolution-BnW1XGnW.js +0 -23
  702. package/dist/command-config-resolution-BrlfYyiN.js +0 -2
  703. package/dist/command-config-resolution.runtime-DYMr8J0t.js +0 -2
  704. package/dist/command-registry-Bi9thw1b.js +0 -9
  705. package/dist/command-registry-D__zH4Fg.js +0 -4
  706. package/dist/command-registry-core-DQoNFQZT.js +0 -101
  707. package/dist/command-secret-gateway-B27Zpgo9.js +0 -528
  708. package/dist/command-status.runtime-fERQMzeI.js +0 -87
  709. package/dist/commands-acp-BmORmf3-.js +0 -77
  710. package/dist/commands-compact.runtime-BUaXIw-I.js +0 -10
  711. package/dist/commands-handlers.runtime-BxbkeuTc.js +0 -4597
  712. package/dist/commands-status-4OW5sqmg.js +0 -16
  713. package/dist/commands-status.runtime-Cl7nJp_7.js +0 -3
  714. package/dist/commands-subagents-control.runtime-BR4qBGkk.js +0 -2
  715. package/dist/commands-subagents-control.runtime-C8ufgKPI.js +0 -3
  716. package/dist/commands-system-prompt-BsimvjJt.js +0 -158
  717. package/dist/commands-system-prompt-CKrY0h7P.js +0 -2
  718. package/dist/commands.runtime-BHsDdaEU.js +0 -166
  719. package/dist/compact-BHYLQst3.js +0 -1118
  720. package/dist/compact.runtime-7-tZRdgw.js +0 -12
  721. package/dist/completion-cli-1sAiSIYc.js +0 -328
  722. package/dist/config-BZ3FuFjH.js +0 -251
  723. package/dist/config-cli-B_dNq5hD.js +0 -1078
  724. package/dist/configure-BOvmX2NJ.js +0 -2
  725. package/dist/configure-DR9NYN9e.js +0 -1245
  726. package/dist/connect-options-DlmPTyhG.js +0 -699
  727. package/dist/control-auth-C_zNiV10.js +0 -125
  728. package/dist/control-service-B1TL51jf.js +0 -156
  729. package/dist/conversation-id-B3lLiTfF.js +0 -235
  730. package/dist/conversation-id-DORmTZm_.js +0 -38
  731. package/dist/conversation-runtime-DDxZZZXE.js +0 -31
  732. package/dist/core-DbPzffGG.js +0 -275
  733. package/dist/cron-cli-AoH4jhFt.js +0 -713
  734. package/dist/daemon-cli-BOJdM3wT.js +0 -12
  735. package/dist/daemon-install-D8HPES4u.js +0 -64
  736. package/dist/delegate-Dmdda3kT.js +0 -64
  737. package/dist/detached-task-runtime-BB5az34R.js +0 -73
  738. package/dist/devices-cli-Cy9DF-DP.js +0 -496
  739. package/dist/diagnostics-CTE0TWR1.js +0 -154
  740. package/dist/direct-dm-9jzadx9u.js +0 -64
  741. package/dist/dispatch-DU7cqfv6.js +0 -1131
  742. package/dist/dispatch-acp-Cu_nUtKg.js +0 -981
  743. package/dist/dispatch-acp-manager.runtime-8MOQ5BRn.js +0 -3
  744. package/dist/dispatch-acp.runtime-DatcHNJq.js +0 -19
  745. package/dist/doctor-device-pairing-Qm-r7mwu.js +0 -307
  746. package/dist/doctor-gateway-daemon-flow-BN2uGhFJ.js +0 -250
  747. package/dist/doctor-gateway-health-CD7Vzth9.js +0 -60
  748. package/dist/doctor-gateway-services-CIypZgv_.js +0 -316
  749. package/dist/doctor-health-ByjG3620.js +0 -59
  750. package/dist/doctor-health-contributions-CxNByg_i.js +0 -486
  751. package/dist/doctor-prompter-BYIoKiZ8.js +0 -56
  752. package/dist/doctor-workspace-status-DL2fRPoT.js +0 -75
  753. package/dist/dreaming-CCctNgkQ.js +0 -1574
  754. package/dist/dreaming-narrative-BPtXKc2-.js +0 -595
  755. package/dist/embedded-gateway-stub.runtime-Hi36BeCq.js +0 -9
  756. package/dist/exec-approvals-cli-DyslUWtQ.js +0 -498
  757. package/dist/fallbacks-B3xZC-ms.js +0 -2
  758. package/dist/fallbacks-CWDz-tSa.js +0 -31
  759. package/dist/fallbacks-shared-BlZBjxHL.js +0 -111
  760. package/dist/gateway-NYBkUx5r.js +0 -115
  761. package/dist/gateway-cli-E5gYA0U1.js +0 -1325
  762. package/dist/gateway-rpc-BrG5Lkfm.js +0 -14
  763. package/dist/gateway-rpc.runtime-BrTGchr9.js +0 -23
  764. package/dist/gateway-runtime-DctMRv_p.js +0 -15
  765. package/dist/gateway-status-B6ol1agz.js +0 -584
  766. package/dist/genesis-tools-D_ah3Zek.js +0 -8999
  767. package/dist/genesis-tools.runtime-Cy7aTWEN.js +0 -2
  768. package/dist/get-reply-BvVkxYum.js +0 -3879
  769. package/dist/get-reply-from-config.runtime-DR3yiK1R.js +0 -2
  770. package/dist/graph-users-yBNugoFz.js +0 -1337
  771. package/dist/health-D_wk2s7j.js +0 -3
  772. package/dist/health-MRnjOx-_.js +0 -469
  773. package/dist/heartbeat-runner-NuhhYnxs.js +0 -5
  774. package/dist/heartbeat-runner-Y4NeUV3L.js +0 -1292
  775. package/dist/heartbeat-runner.runtime-eGfKtcpP.js +0 -4
  776. package/dist/hooks-cli-CtfN2vc-.js +0 -433
  777. package/dist/image-fallbacks-CgeDMYZo.js +0 -2
  778. package/dist/image-fallbacks-CzQ85Eo8.js +0 -31
  779. package/dist/inbound-reply-dispatch-jVlLaSqn.js +0 -73
  780. package/dist/infra-runtime-D2Pqjk-r.js +0 -39
  781. package/dist/init-D_MTYqrw.js +0 -59
  782. package/dist/install-X7wgrwQ1.js +0 -190
  783. package/dist/install.runtime-C4wO4Nr9.js +0 -2
  784. package/dist/launchd-lFgfiDrN.js +0 -688
  785. package/dist/library-DIykYIWD.js +0 -45
  786. package/dist/lifecycle-BNuFzffC.js +0 -571
  787. package/dist/lifecycle-IWN9qlwo.js +0 -229
  788. package/dist/lifecycle-core-CFv5qkS8.js +0 -422
  789. package/dist/lifecycle.runtime-9oo2JCI2.js +0 -2
  790. package/dist/list-BZ3mMSpA.js +0 -2
  791. package/dist/list-CzQs_k0U.js +0 -131
  792. package/dist/list-CzTJTFOH.js +0 -1201
  793. package/dist/list-qDXsgKhB.js +0 -2
  794. package/dist/list.probe-EOZR6ueo.js +0 -419
  795. package/dist/llm-slug-generator-DzWIx0nh.js +0 -79
  796. package/dist/load-config-C_8uUnXU.js +0 -35
  797. package/dist/local-dispatch.runtime-DLd10Xb1.js +0 -8
  798. package/dist/logs-cli-mnOTmC9R.js +0 -265
  799. package/dist/logs-cli.runtime-BvP3aise.js +0 -2
  800. package/dist/main-session-restart-recovery-D7Vxmu7e.js +0 -206
  801. package/dist/managed-image-attachments-BB5u0Zq8.js +0 -2
  802. package/dist/managed-image-attachments-BeRGNdL9.js +0 -635
  803. package/dist/manager-BhNWV4EC.js +0 -2
  804. package/dist/manager-CbZ9ncZs.js +0 -2057
  805. package/dist/markdown-to-line-DyB8w7ef.js +0 -790
  806. package/dist/mcp-cli-CWzLBrDF.js +0 -725
  807. package/dist/mcp-http-1jD7LE0a.js +0 -529
  808. package/dist/memory-core-host-runtime-cli-P80xoEfr.js +0 -9
  809. package/dist/message-BAhd_1ud.js +0 -232
  810. package/dist/message-action-runner-CH2jjT21.js +0 -1407
  811. package/dist/message-action-runner-DW7z_bMx.js +0 -2
  812. package/dist/message-actions-BjBGSsJB.js +0 -143
  813. package/dist/message.gateway.runtime-sUc85g7X.js +0 -2
  814. package/dist/models-auth-status-D6lrM56M.js +0 -201
  815. package/dist/models-cli-CmnbAk2M.js +0 -219
  816. package/dist/monitor-AyGe8vyk.js +0 -1237
  817. package/dist/monitor-DQuy2kx-.js +0 -671
  818. package/dist/monitor-DmtJiX5o.js +0 -788
  819. package/dist/monitor-GB8lcnal.js +0 -1459
  820. package/dist/monitor-IuVjATac.js +0 -1661
  821. package/dist/monitor-auth-rF7mr3Cm.js +0 -207
  822. package/dist/monitor-bnOvJyLN.js +0 -2
  823. package/dist/monitor-processing-B1ewr2qF.js +0 -1974
  824. package/dist/monitor.runtime-BrUD5_VN.js +0 -2
  825. package/dist/monitor.webhook-BvJG6Xbh.js +0 -180
  826. package/dist/msteams-DUDRy3xt.js +0 -35
  827. package/dist/native-hook-relay-CTpTLgCA.js +0 -519
  828. package/dist/nextcloud-talk-BH2uWRZ2.js +0 -17
  829. package/dist/node-cli-AWE1ZFfV.js +0 -2506
  830. package/dist/node-service-DCI-s3Mm.js +0 -68
  831. package/dist/nodes-cli-B7IWCrYq.js +0 -1046
  832. package/dist/nodes-utils-Dg2hrC3z.js +0 -84
  833. package/dist/nodes.helpers-CkJO5i0d.js +0 -34
  834. package/dist/notify-bsxfkOWp.js +0 -315
  835. package/dist/onboard-BQaZtwIU.js +0 -632
  836. package/dist/onboard-helpers-Cc2AnoIU.js +0 -6
  837. package/dist/onboard-helpers-DIxfEXNM.js +0 -204
  838. package/dist/onboard-remote-CYhQbOXH.js +0 -2
  839. package/dist/onboard-remote-DrH3yVxE.js +0 -193
  840. package/dist/onboard-skills-DCI3hVXa.js +0 -134
  841. package/dist/onboard-skills-i4KuFzS4.js +0 -2
  842. package/dist/openai-http-D_7Nk3iN.js +0 -500
  843. package/dist/openresponses-http-BITxvD4V.js +0 -1128
  844. package/dist/operator-approvals-client-C0t_-2xC.js +0 -68
  845. package/dist/outbound.runtime-C8_lBQcx.js +0 -2
  846. package/dist/pair-command-approve-D3s1W5go.js +0 -44
  847. package/dist/persistent-bindings.lifecycle-CCR6khHJ.js +0 -85
  848. package/dist/persistent-bindings.lifecycle-Dgoo5bpE.js +0 -2
  849. package/dist/pi-embedded-C2l80M7j.js +0 -4
  850. package/dist/pi-embedded-DMHGJgoQ.js +0 -2905
  851. package/dist/pi-embedded.runtime-fA0EsIue.js +0 -4
  852. package/dist/pi-tool-definition-adapter-B4hSYdYX.js +0 -217
  853. package/dist/pi-tools-YCHBvJG0.js +0 -1057
  854. package/dist/pi-tools.before-tool-call-BsyruRs4.js +0 -433
  855. package/dist/pi-tools.before-tool-call-D1maRTbl.js +0 -2
  856. package/dist/plugin-DmBZwzWQ.js +0 -12195
  857. package/dist/plugin-enabled-rr_Y1Kwh.js +0 -140
  858. package/dist/plugin-registration-J1JWqMZg.js +0 -23
  859. package/dist/plugin-service-CPY8FSW2.js +0 -2890
  860. package/dist/policy-DDUw681i.js +0 -328
  861. package/dist/prepare.runtime-BfnpyhHB.js +0 -815
  862. package/dist/probe-CCdD6_vN.js +0 -1443
  863. package/dist/probe-CakOsrSu.js +0 -241
  864. package/dist/probe-Ctrcd_Q7.js +0 -2205
  865. package/dist/probe-D9IFIte1.js +0 -2
  866. package/dist/probe-DXMI0QlZ.js +0 -74
  867. package/dist/probe-KtX2HjXM.js +0 -45
  868. package/dist/probe-OcOYm1bj.js +0 -2
  869. package/dist/program-DxZA1yAX.js +0 -111
  870. package/dist/prompt-select-styled-CATG4Xp5.js +0 -20
  871. package/dist/protocol-C40iRm9c.js +0 -2234
  872. package/dist/provider-dispatcher-BZp3Stzr.js +0 -2
  873. package/dist/provider-dispatcher-JJxN7BDL.js +0 -22
  874. package/dist/qr-cli-IMKzycXh.js +0 -349
  875. package/dist/qr-cli-W8X3Ha5T.js +0 -2
  876. package/dist/reaction-runtime-api-D7i4oMn9.js +0 -116
  877. package/dist/reactions-D9eRHeXM.js +0 -998
  878. package/dist/register-service-commands-D37K4_BJ.js +0 -71
  879. package/dist/register.agent-p1q6ZWSs.js +0 -248
  880. package/dist/register.configure-tgXCoIHv.js +0 -15
  881. package/dist/register.maintenance-BtBgu8zC.js +0 -438
  882. package/dist/register.message-B5msOUKt.js +0 -329
  883. package/dist/register.onboard-BO11PDUs.js +0 -81
  884. package/dist/register.runtime-D8XvwfoZ.js +0 -81
  885. package/dist/register.setup-Ba19XSJi.js +0 -150
  886. package/dist/register.status-health-sessions-Bne0mmgw.js +0 -1215
  887. package/dist/register.subclis--mdYCZZM.js +0 -3
  888. package/dist/register.subclis-_kuyreQm.js +0 -29
  889. package/dist/register.subclis-core-UkVTqwB1.js +0 -249
  890. package/dist/reply-dispatch-runtime-DcxOLr7n.js +0 -13
  891. package/dist/reply-runtime-B4VQJnqi.js +0 -11
  892. package/dist/reply.runtime-B990ty9C.js +0 -2
  893. package/dist/restart-health-BWUPc4R-.js +0 -202
  894. package/dist/restart-health-CWvsjHVN.js +0 -2
  895. package/dist/root-help-D9aeVXNr.js +0 -44
  896. package/dist/routes-BSmEgP46.js +0 -2
  897. package/dist/routes-Z67chkN5.js +0 -3341
  898. package/dist/rpc-CBQZvJME.js +0 -61
  899. package/dist/rpc.runtime-ClhNVRer.js +0 -21
  900. package/dist/run-delivery.runtime-Bj566BTH.js +0 -530
  901. package/dist/run-embedded.runtime-DuB-mQh2.js +0 -4
  902. package/dist/run-execution-cli.runtime-Oy4FGfj5.js +0 -4
  903. package/dist/run-executor.runtime-B7-lfFh3.js +0 -277
  904. package/dist/run-main-1Fvwazhp.js +0 -516
  905. package/dist/run-subagent-registry.runtime-Bx9Wga3d.js +0 -2
  906. package/dist/run-wait-C-VgbefQ.js +0 -135
  907. package/dist/runtime-BV7JmOaE.js +0 -9
  908. package/dist/runtime-D7npxl4G.js +0 -973
  909. package/dist/runtime-api-BkVIoPU9.js +0 -4
  910. package/dist/runtime-api-CdhgyHMB.js +0 -9
  911. package/dist/runtime-api-CmlBBCCY.js +0 -9
  912. package/dist/runtime-api-DnhXPE_z.js +0 -14
  913. package/dist/runtime-embedded-pi.runtime-DpKqDUrl.js +0 -2
  914. package/dist/runtime-internal-Bu1n9i4P.js +0 -2
  915. package/dist/runtime-options-CN4g8VJE.js +0 -275
  916. package/dist/runtime-schema-Jjsquqvq.js +0 -27780
  917. package/dist/scan-C8jthyct.js +0 -523
  918. package/dist/scan-DEd4q4aN.js +0 -2
  919. package/dist/secrets-cli-iBL8NBAq.js +0 -2101
  920. package/dist/security-cli-CzYBRa4n.js +0 -486
  921. package/dist/selection-BOalx5uy.js +0 -2
  922. package/dist/selection-BZFVKdFz.js +0 -7736
  923. package/dist/send-C4mKkkWW.js +0 -156
  924. package/dist/send-C_36w3lb.js +0 -102
  925. package/dist/send.runtime-vJT5TzDj.js +0 -2
  926. package/dist/server-BTmWWR_9.js +0 -13
  927. package/dist/server-CBQVrNY0.js +0 -77
  928. package/dist/server-context-Dq2VA7I4.js +0 -2
  929. package/dist/server-context-O_WUP8OV.js +0 -847
  930. package/dist/server-node-events-B8PLg0eQ.js +0 -481
  931. package/dist/server-plugin-bootstrap-ChIvqLMw.js +0 -2
  932. package/dist/server-plugin-bootstrap-Rbxd2g6a.js +0 -11333
  933. package/dist/server-restart-sentinel-BCd6AqrQ.js +0 -697
  934. package/dist/server.impl-CEOWGKN5.js +0 -12735
  935. package/dist/service-ChLFBF7Q.js +0 -120
  936. package/dist/service-XI052xiT.js +0 -2
  937. package/dist/service-audit-BFxGImYM.js +0 -254
  938. package/dist/service-audit-cqHyD5gB.js +0 -2
  939. package/dist/session-kill-http-ChCr5CQ3.js +0 -110
  940. package/dist/session-reset-service-DsYIDYdh.js +0 -471
  941. package/dist/session-route-rem428sJ.js +0 -93
  942. package/dist/session-status.runtime-CFmGwoCm.js +0 -2
  943. package/dist/session-subagent-reactivation.runtime-DLkpnURC.js +0 -2
  944. package/dist/session-tab-registry-DWyzIez5.js +0 -491
  945. package/dist/session-visibility-CJocpWP0.js +0 -147
  946. package/dist/sessions-helpers-CMf9gVTZ.js +0 -304
  947. package/dist/sessions-history-http-C5iZkW8x.js +0 -383
  948. package/dist/sessions-patch-2sBcHc9a.js +0 -309
  949. package/dist/sessions-resolve-D1hmolC-.js +0 -174
  950. package/dist/sessions.runtime-DMPmzLE0.js +0 -2
  951. package/dist/setup-D1ekkhVk.js +0 -495
  952. package/dist/setup-api-DilgjV01.js +0 -29
  953. package/dist/setup-core-CFAiauCt.js +0 -171
  954. package/dist/setup-core-RgJfQc-C.js +0 -176
  955. package/dist/setup-surface-C0l9bHY3.js +0 -286
  956. package/dist/setup-surface-CfcFHZln.js +0 -403
  957. package/dist/setup-surface-CyDRXq_1.js +0 -219
  958. package/dist/setup.finalize-JPqhcPh5.js +0 -539
  959. package/dist/setup.gateway-config-Df6Jm4vX.js +0 -250
  960. package/dist/shared-3gP_6DZV.js +0 -76
  961. package/dist/shared-C9fN-WCy.js +0 -198
  962. package/dist/shared-Cz9c46Aj.js +0 -121
  963. package/dist/slash-state-C7nXXf23.js +0 -1911
  964. package/dist/src-LnF0REtW.js +0 -3974
  965. package/dist/startup-context-CxTy7OzN.js +0 -312
  966. package/dist/status-4n9xL7HY.js +0 -2
  967. package/dist/status-B4kD5cCF.js +0 -2
  968. package/dist/status-CARBoVql.js +0 -209
  969. package/dist/status-COK71LP_.js +0 -3
  970. package/dist/status-DxcqzXtf.js +0 -397
  971. package/dist/status-all-r7zyk41X.js +0 -498
  972. package/dist/status-f2DLmjOF.js +0 -190
  973. package/dist/status-json-C_wESP21.js +0 -14
  974. package/dist/status-json-command-C6w9ZAHp.js +0 -84
  975. package/dist/status-runtime-shared-Bq_SUJpC.js +0 -257
  976. package/dist/status-subagents.runtime-03fp3eBE.js +0 -18
  977. package/dist/status-text-CNvz374U.js +0 -237
  978. package/dist/status.gateway-connection.runtime-zjQmormq.js +0 -2
  979. package/dist/status.gather-BhjoJVEs.js +0 -2
  980. package/dist/status.gather-zdywRvBb.js +0 -292
  981. package/dist/status.runtime-DB31ZRnK.js +0 -2
  982. package/dist/status.scan-DjhdTOWP.js +0 -65
  983. package/dist/status.scan-overview-BYxTBsOw.js +0 -379
  984. package/dist/status.scan.fast-json-Dz0JcORG.js +0 -2
  985. package/dist/status.scan.fast-json-FroEIZ9d.js +0 -132
  986. package/dist/status.summary-3UVa_X5B.js +0 -214
  987. package/dist/status.summary-BGzGsyZB.js +0 -2
  988. package/dist/subagent-announce-BvRFZ87M.js +0 -351
  989. package/dist/subagent-announce-delivery-QvuOM46S.js +0 -726
  990. package/dist/subagent-announce-output-fOtzkOiP.js +0 -364
  991. package/dist/subagent-control-DwnzmG6T.js +0 -506
  992. package/dist/subagent-followup.runtime-DxR1eP_x.js +0 -68
  993. package/dist/subagent-orphan-recovery-CiBbDxX3.js +0 -305
  994. package/dist/subagent-registry-D5FrT_tn.js +0 -3
  995. package/dist/subagent-registry-DbPekx8d.js +0 -1753
  996. package/dist/subagent-spawn-W-bTaU9l.js +0 -1005
  997. package/dist/system-cli-B443uVHG.js +0 -59
  998. package/dist/targets-3Lcm8HoL.js +0 -67
  999. package/dist/task-executor-B5e9_Hmt.js +0 -360
  1000. package/dist/task-owner-access-CIEssJ78.js +0 -74
  1001. package/dist/task-registry-M1bHrFvP.js +0 -2366
  1002. package/dist/task-registry-delivery-runtime-CiHBC7sJ.js +0 -3
  1003. package/dist/task-registry-delivery-runtime-M4O7ffju.js +0 -2
  1004. package/dist/task-registry.maintenance-BURvMU0r.js +0 -2
  1005. package/dist/task-registry.maintenance-CgrLoBqi.js +0 -416
  1006. package/dist/testing-CRy_6-wt.js +0 -575
  1007. package/dist/text-report-B3-4Dvfb.js +0 -587
  1008. package/dist/tool-resolution-C52y5Qtc.js +0 -90
  1009. package/dist/tools-effective-inventory-WlIlqM7G.js +0 -152
  1010. package/dist/tools-invoke-http-B04Rc8tG.js +0 -206
  1011. package/dist/trash-BV5Gcx3a.js +0 -24
  1012. package/dist/tui-cli-DMZ07qRK.js +0 -4575
  1013. package/dist/update-cli-DeBm7b4g.js +0 -1759
  1014. package/dist/upgrade-C9ke1SCc.js +0 -1226
  1015. package/dist/video-generation-task-status-I3jvAjUL.js +0 -163
  1016. package/dist/wait-for-idle-before-flush-BZhF2ejZ.js +0 -5986
  1017. package/dist/wizard-models-CMKeAr_M.js +0 -161
@@ -1,1237 +0,0 @@
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-DNd8mbjy.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-CUSu4-Qr.js";
12
- import { n as sleepWithAbort, t as computeBackoff } from "./backoff-evZNQ2Sv.js";
13
- import { s as kindFromMime, t as detectMime } from "./mime-dYER0fWW.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-Fge4lGwN.js";
17
- import { n as resolveChannelGroupRequireMention, t as resolveChannelGroupPolicy } from "./group-policy-BMwhQr9i.js";
18
- import { c as resolveTextChunkLimit, o as chunkTextWithMode, s as resolveChunkMode } from "./chunk-CMvONy3a.js";
19
- import { i as toInternalMessageReceivedContext } from "./message-hook-mappers-Q-EudlF-.js";
20
- import { i as resolveAgentRoute } from "./resolve-route-BA6bCR3F.js";
21
- import { i as enqueueSystemEvent } from "./system-events-CXxVc5Du.js";
22
- import "./text-runtime-B4pK_Jpd.js";
23
- import "./routing-lEBa2-AE.js";
24
- import { t as hasControlCommand } from "./command-detection--wYDcLgI.js";
25
- import { a as createReplyDispatcherWithTyping, t as dispatchInboundMessage } from "./dispatch-DU7cqfv6.js";
26
- import { t as finalizeInboundContext } from "./inbound-context-DcpIc6mh.js";
27
- import { a as resolveEnvelopeFormatOptions, i as formatInboundFromLabel, r as formatInboundEnvelope } from "./envelope-C1lEhRFw.js";
28
- import { n as buildMentionRegexes, r as matchesMentionPatterns } from "./mentions-Dm5IQz51.js";
29
- import { n as resolveControlCommandGate } from "./command-gating-BnQtRLCi.js";
30
- import { n as resolveInboundMentionDecision } from "./mention-gating-C2K3rSdY.js";
31
- import { t as recordInboundSession } from "./session-DF38Qk5T.js";
32
- import { d as upsertChannelPairingRequest } from "./pairing-store-DI7znxyK.js";
33
- import { a as warnMissingProviderGroupPolicyFallbackOnce, n as resolveAllowlistProviderRuntimeGroupPolicy, r as resolveDefaultGroupPolicy } from "./runtime-group-policy-CX-BIMex.js";
34
- import { c as resolvePinnedMainDmOwnerFromAllowlist, n as readStoreAllowFromForDmPolicy, o as resolveDmGroupAccessWithLists, t as DM_GROUP_ACCESS_REASON } from "./dm-policy-shared-CWi7ZZgc.js";
35
- import { a as buildPendingHistoryContextFromMap, s as clearHistoryEntriesIfEnabled, u as recordPendingHistoryEntryIfEnabled } from "./history-XG_CXCAa.js";
36
- import "./reply-history-BBCEOSzW.js";
37
- import { n as logInboundDrop, r as logTypingFailure } from "./logging-DgcyiFp-.js";
38
- import { t as createChannelReplyPipeline } from "./channel-reply-pipeline-BgPhKdUO.js";
39
- import { t as createChannelPairingChallengeIssuer } from "./channel-pairing-B3r45ANt.js";
40
- import "./runtime-env-6Wx5-zP8.js";
41
- import { t as evaluateSupplementalContextVisibility } from "./context-visibility-Coe5PM9K.js";
42
- import { t as resolveChannelContextVisibilityMode } from "./context-visibility-DU6hvbA_.js";
43
- import "./config-runtime-CiIsBMuo.js";
44
- import "./reply-runtime-B4VQJnqi.js";
45
- import { t as waitForTransportReady } from "./transport-ready-cakWXLl3.js";
46
- import "./infra-runtime-D2Pqjk-r.js";
47
- import "./media-runtime-D2xH8y9Y.js";
48
- import "./conversation-runtime-DDxZZZXE.js";
49
- import "./agent-runtime-B9nUYDUz.js";
50
- import "./security-runtime-CkbTuKdB.js";
51
- import "./hook-runtime-CiQMxHus.js";
52
- import "./command-auth-CvFUTCCJ.js";
53
- import "./channel-feedback-IjQ-pAck.js";
54
- import { n as shouldDebounceTextInbound, t as createChannelInboundDebouncer } from "./channel-inbound-CzgMd2Xi.js";
55
- import { i as resolveSignalAccount } from "./accounts-CJJT0vS7.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-PVMitPyT.js";
57
- import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-BKro32pr.js";
58
- import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-C4mKkkWW.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 };