@pixelzx/genesis 2026.6.4-1 → 2026.6.5

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 (1010) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/.buildstamp +1 -1
  3. package/dist/abort-CcNxEsSq.js +201 -0
  4. package/dist/abort.runtime-DZJDSf0d.js +2 -0
  5. package/dist/abort.runtime.js +1 -1
  6. package/dist/accounts-B7M6y8l8.js +107 -0
  7. package/dist/accounts-DddcYo7u.js +2 -0
  8. package/dist/accounts-v0Cqfnse.js +104 -0
  9. package/dist/acp-cli-D_2_Nim8.js +2193 -0
  10. package/dist/acp-spawn-BZPupfsZ.js +2 -0
  11. package/dist/acp-spawn-CWfIrbK7.js +1093 -0
  12. package/dist/acp-stateful-target-driver-DpCTjH5T.js +89 -0
  13. package/dist/action-agents-fjIM4rpc.js +67 -0
  14. package/dist/action-focus-cx1pm1ym.js +132 -0
  15. package/dist/action-help-DtyAnULB.js +7 -0
  16. package/dist/action-info-DF30-xZl.js +101 -0
  17. package/dist/action-kill-rsSdXzvX.js +33 -0
  18. package/dist/action-list-4VN835m2.js +21 -0
  19. package/dist/action-log-L032mq5B.js +30 -0
  20. package/dist/action-send-Dm62UP-n.js +39 -0
  21. package/dist/action-spawn-BuZHKlpL.js +47 -0
  22. package/dist/action-unfocus-CTIWf8WX.js +29 -0
  23. package/dist/actions.runtime-0ezEcm7K.js +18 -0
  24. package/dist/actions.runtime-DKsCTTnH.js +5 -0
  25. package/dist/actions.runtime.js +1 -1
  26. package/dist/agent-BTOBOCIw.js +2 -0
  27. package/dist/agent-command-C-_EFUUu.js +874 -0
  28. package/dist/agent-harness-runtime-Bye6j3EL.js +144 -0
  29. package/dist/agent-runner-utils-CX2vCMkx.js +239 -0
  30. package/dist/agent-runner.runtime-BBqrjZv4.js +3455 -0
  31. package/dist/agent-runner.runtime.js +1 -1
  32. package/dist/agent-runtime-D1LIGcNj.js +18 -0
  33. package/dist/agents-CME2O1l9.js +5 -0
  34. package/dist/agents-DsDQvAPy.js +954 -0
  35. package/dist/aliases-C807OidC.js +2 -0
  36. package/dist/aliases-jq1ap6Dz.js +96 -0
  37. package/dist/api-BbxKoRkD.js +3 -0
  38. package/dist/api-CwJPCW9U.js +139 -0
  39. package/dist/api-N5Kaaq64.js +5 -0
  40. package/dist/approval-gateway-resolver-DIPFgTnx.js +29 -0
  41. package/dist/approval-gateway-runtime-i0yziXk2.js +2 -0
  42. package/dist/approval-handler-runtime-Cdm-10f9.js +439 -0
  43. package/dist/approval-native-runtime-BRjeBoqL.js +729 -0
  44. package/dist/attempt-execution.runtime-NFTF7Cbt.js +509 -0
  45. package/dist/attempt-execution.runtime.js +1 -1
  46. package/dist/attempt.prompt-helpers-DuBXv46v.js +221 -0
  47. package/dist/attempt.tool-run-context-Qf-tbC-C.js +933 -0
  48. package/dist/audit-DsDfRhB8.js +939 -0
  49. package/dist/audit.runtime-ComjcUGJ.js +7 -0
  50. package/dist/audit.runtime.js +1 -1
  51. package/dist/auth-BT_gqC-D.js +2 -0
  52. package/dist/auth-DeUz_8w8.js +383 -0
  53. package/dist/auth-order-DM7UkPDa.js +96 -0
  54. package/dist/auth-order-yS8hXrXh.js +2 -0
  55. package/dist/bash-tools-D0M9gBDu.js +3 -0
  56. package/dist/bash-tools-tnj1gSbO.js +2824 -0
  57. package/dist/binding-routing-C7atXiTD.js +85 -0
  58. package/dist/binding-targets-CCv7agx9.js +121 -0
  59. package/dist/bridge-server-C5O9rTJg.js +113 -0
  60. package/dist/browser-control-auth-GGN_kbqE.js +2 -0
  61. package/dist/browser-node-runtime-B-uTSVqP.js +12 -0
  62. package/dist/browser-profiles-Dex2eaLH.js +2 -0
  63. package/dist/browser-runtime-BPocB6yO.js +387 -0
  64. package/dist/browser-setup-tools-gHfYeDWA.js +13 -0
  65. package/dist/build-BqG7RkBz.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-BI4JvjcR.js +3 -0
  70. package/dist/call-wY43fzOF.js +331 -0
  71. package/dist/call.runtime-Dh61oVeL.js +2 -0
  72. package/dist/call.runtime.js +1 -1
  73. package/dist/capability-cli-BHz-2Stx.js +1401 -0
  74. package/dist/catchup-Be7tHJwK.js +300 -0
  75. package/dist/channel-B-6VmF4-.js +840 -0
  76. package/dist/channel-BCJccV-O.js +226 -0
  77. package/dist/channel-BDZqLbod.js +1100 -0
  78. package/dist/channel-BQDNgTea.js +1174 -0
  79. package/dist/channel-BwjThGwK.js +453 -0
  80. package/dist/channel-CPoThmda.js +595 -0
  81. package/dist/channel-CUT8NJ-B.js +350 -0
  82. package/dist/channel-C_Y7lv8v.js +491 -0
  83. package/dist/channel-Ck7-C-lB.js +297 -0
  84. package/dist/channel-DOpVjq4i.js +1802 -0
  85. package/dist/channel-core-QV9-eAtb.js +5 -0
  86. package/dist/channel-inbound-D_tebgdx.js +31 -0
  87. package/dist/channel-plugin-runtime-DXcBwNNM.js +771 -0
  88. package/dist/channel-runtime-D4ci0o4V.js +425 -0
  89. package/dist/channel-sAdF_zH-.js +1320 -0
  90. package/dist/channel.runtime-1swLIpNV.js +89 -0
  91. package/dist/channel.runtime-B9hljdNF.js +4 -0
  92. package/dist/channel.runtime-CSbR2pni.js +430 -0
  93. package/dist/channel.runtime-CdpqhnLO.js +2364 -0
  94. package/dist/channel.runtime-DOx6WROg.js +40130 -0
  95. package/dist/channel.runtime-H5Kb2LbC.js +109 -0
  96. package/dist/channel.runtime-V7boBc_e.js +576 -0
  97. package/dist/channel.runtime.js +1 -1
  98. package/dist/channel.setup-BXyeNJ2_.js +10 -0
  99. package/dist/channels-KU7bwUUs.js +733 -0
  100. package/dist/channels-cli-CTX6_5z3.js +268 -0
  101. package/dist/chat-C_i6Wp50.js +2830 -0
  102. package/dist/clawbot-cli-CLGPtbt-.js +9 -0
  103. package/dist/cli/daemon-cli.js +3 -3
  104. package/dist/cli-BhwHu1dK.js +72 -0
  105. package/dist/cli-CFsq8f2H.js +2 -0
  106. package/dist/cli-CNVlwurq.js +219 -0
  107. package/dist/cli-DLP8hKbi.js +2 -0
  108. package/dist/cli-runner-BbNBHV6v.js +286 -0
  109. package/dist/cli-runner.runtime-CfPaauuM.js +4 -0
  110. package/dist/cli-runner.runtime-MxBlCOO2.js +3 -0
  111. package/dist/cli-runner.runtime.js +1 -1
  112. package/dist/cli-startup-metadata.json +2 -2
  113. package/dist/cli.runtime-3cD-pSyn.js +1261 -0
  114. package/dist/cli.runtime.js +1 -1
  115. package/dist/client-Bl0d_7ak.js +138 -0
  116. package/dist/client-ClJyHgmq.js +713 -0
  117. package/dist/command-auth-DO32coey.js +76 -0
  118. package/dist/command-config-resolution-CAsa4fGg.js +2 -0
  119. package/dist/command-config-resolution-D6YcwuRh.js +23 -0
  120. package/dist/command-config-resolution.runtime-CSHDu35A.js +2 -0
  121. package/dist/command-config-resolution.runtime.js +1 -1
  122. package/dist/command-registry-BJEQrMqR.js +4 -0
  123. package/dist/command-registry-DI9i95nj.js +9 -0
  124. package/dist/command-registry-core-BpF1mggD.js +106 -0
  125. package/dist/command-secret-gateway-DDNHxysD.js +528 -0
  126. package/dist/command-status.runtime-DqYUCcEA.js +87 -0
  127. package/dist/command-status.runtime.js +1 -1
  128. package/dist/commands-acp-C_zCJPvL.js +77 -0
  129. package/dist/commands-compact.runtime-B6e3kwMS.js +10 -0
  130. package/dist/commands-compact.runtime.js +1 -1
  131. package/dist/commands-handlers.runtime-B0gTkAC0.js +4599 -0
  132. package/dist/commands-handlers.runtime.js +1 -1
  133. package/dist/commands-status-BgZ64sA8.js +16 -0
  134. package/dist/commands-status.runtime-JI89gIEU.js +3 -0
  135. package/dist/commands-status.runtime.js +1 -1
  136. package/dist/commands-subagents-control.runtime-B0hdcBxr.js +2 -0
  137. package/dist/commands-subagents-control.runtime-DUeSQ5j4.js +3 -0
  138. package/dist/commands-subagents-control.runtime.js +1 -1
  139. package/dist/commands-system-prompt-B7moUaCI.js +158 -0
  140. package/dist/commands-system-prompt-DTUkp9TH.js +2 -0
  141. package/dist/commands.runtime-BjCVVqol.js +167 -0
  142. package/dist/commands.runtime.js +1 -1
  143. package/dist/compact-BNJH56SX.js +1118 -0
  144. package/dist/compact.runtime-CYI8Yi9d.js +12 -0
  145. package/dist/compact.runtime.js +1 -1
  146. package/dist/completion-cli-Bb1Tk-vM.js +328 -0
  147. package/dist/config-DxkleHmo.js +252 -0
  148. package/dist/config-cli-CtaRB_f8.js +1078 -0
  149. package/dist/configure-Bp8WFryM.js +1252 -0
  150. package/dist/configure-DQ_X5zyT.js +2 -0
  151. package/dist/connect-options-BkWD0Wvv.js +699 -0
  152. package/dist/control-auth-Iqyldslx.js +125 -0
  153. package/dist/control-service-xIhkqyZE.js +156 -0
  154. package/dist/conversation-id-BZtOqHIz.js +38 -0
  155. package/dist/conversation-id-D1Q9qPFH.js +235 -0
  156. package/dist/conversation-runtime-B1QZ-DEM.js +31 -0
  157. package/dist/core-BdVAy0Wv.js +275 -0
  158. package/dist/cron-cli-BWM2kRKU.js +713 -0
  159. package/dist/daemon-cli-MRl5nyuF.js +12 -0
  160. package/dist/dashboard-BkdlJrnf.js +2 -0
  161. package/dist/dashboard-C9m86rHv.js +81 -0
  162. package/dist/delegate-BjUvKQlo.js +64 -0
  163. package/dist/detached-task-runtime-BAEzkNB8.js +73 -0
  164. package/dist/devices-cli-B1n6tl9f.js +498 -0
  165. package/dist/diagnostics-DZxWkW3i.js +154 -0
  166. package/dist/direct-dm-qw-uk31C.js +64 -0
  167. package/dist/dispatch-D0xiJ6Up.js +1131 -0
  168. package/dist/dispatch-acp-DVN58m9G.js +981 -0
  169. package/dist/dispatch-acp-manager.runtime-C8t1i5Wt.js +3 -0
  170. package/dist/dispatch-acp-manager.runtime.js +1 -1
  171. package/dist/dispatch-acp.runtime-FR0DUPpn.js +19 -0
  172. package/dist/dispatch-acp.runtime.js +1 -1
  173. package/dist/doctor-device-pairing-DIbiBPlL.js +307 -0
  174. package/dist/doctor-gateway-daemon-flow-BFjRlXvA.js +250 -0
  175. package/dist/doctor-gateway-health-uZrukX3c.js +63 -0
  176. package/dist/doctor-health-DKpg1bxM.js +59 -0
  177. package/dist/doctor-health-contributions-BoXX8ubw.js +493 -0
  178. package/dist/doctor-prompter-CLf5Uf10.js +56 -0
  179. package/dist/doctor-workspace-status-Cw61BbGy.js +75 -0
  180. package/dist/dreaming-Bk8dVfGi.js +1574 -0
  181. package/dist/dreaming-narrative-DGSQa-0N.js +595 -0
  182. package/dist/embedded-gateway-stub.runtime-sokWrs6B.js +9 -0
  183. package/dist/embedded-gateway-stub.runtime.js +1 -1
  184. package/dist/entry.js +2 -2
  185. package/dist/exec-approvals-cli-CnNETs_u.js +498 -0
  186. package/dist/extensionAPI.js +1 -1
  187. package/dist/extensions/active-memory/index.js +1 -1
  188. package/dist/extensions/bluebubbles/api.js +3 -3
  189. package/dist/extensions/bluebubbles/channel-plugin-api.js +1 -1
  190. package/dist/extensions/browser/browser-bridge.js +1 -1
  191. package/dist/extensions/browser/browser-config.js +4 -4
  192. package/dist/extensions/browser/browser-control-auth.js +2 -2
  193. package/dist/extensions/browser/browser-doctor.js +2 -2
  194. package/dist/extensions/browser/browser-maintenance.js +2 -2
  195. package/dist/extensions/browser/browser-profiles.js +2 -2
  196. package/dist/extensions/browser/browser-runtime-api.js +10 -10
  197. package/dist/extensions/browser/index.js +1 -1
  198. package/dist/extensions/browser/plugin-registration.js +1 -1
  199. package/dist/extensions/browser/register.runtime.js +3 -3
  200. package/dist/extensions/browser/runtime-api.js +11 -11
  201. package/dist/extensions/browser/test-support.js +1 -1
  202. package/dist/extensions/device-pair/api.js +1 -1
  203. package/dist/extensions/device-pair/index.js +3 -3
  204. package/dist/extensions/device-pair/notify.js +1 -1
  205. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  206. package/dist/extensions/google-meet/index.js +2 -2
  207. package/dist/extensions/imessage/api.js +3 -3
  208. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  209. package/dist/extensions/imessage/runtime-api.js +3 -3
  210. package/dist/extensions/irc/api.js +2 -2
  211. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  212. package/dist/extensions/line/api.js +2 -2
  213. package/dist/extensions/line/channel-plugin-api.js +1 -1
  214. package/dist/extensions/line/contract-api.js +1 -1
  215. package/dist/extensions/line/runtime-api.js +4 -4
  216. package/dist/extensions/line/setup-api.js +1 -1
  217. package/dist/extensions/llm-task/index.js +2 -2
  218. package/dist/extensions/lobster/index.js +3 -3
  219. package/dist/extensions/lobster/runtime-api.js +1 -1
  220. package/dist/extensions/mattermost/api.js +1 -1
  221. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  222. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  223. package/dist/extensions/mattermost/policy-api.js +1 -1
  224. package/dist/extensions/mattermost/runtime-api.js +4 -4
  225. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  226. package/dist/extensions/memory-core/api.js +1 -1
  227. package/dist/extensions/memory-core/cli-metadata.js +2 -2
  228. package/dist/extensions/memory-core/index.js +3 -3
  229. package/dist/extensions/memory-lancedb/cli-metadata.js +1 -1
  230. package/dist/extensions/msteams/api.js +1 -1
  231. package/dist/extensions/msteams/channel-plugin-api.js +1 -1
  232. package/dist/extensions/msteams/runtime-api.js +3 -3
  233. package/dist/extensions/msteams/test-api.js +1 -1
  234. package/dist/extensions/nextcloud-talk/api.js +1 -1
  235. package/dist/extensions/nextcloud-talk/channel-plugin-api.js +1 -1
  236. package/dist/extensions/nextcloud-talk/runtime-api.js +2 -2
  237. package/dist/extensions/openshell/index.js +2 -2
  238. package/dist/extensions/signal/api.js +6 -6
  239. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  240. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  241. package/dist/extensions/signal/runtime-api.js +7 -7
  242. package/dist/extensions/skill-workshop/api.js +1 -1
  243. package/dist/extensions/skill-workshop/index.js +1 -1
  244. package/dist/extensions/synology-chat/api.js +1 -1
  245. package/dist/extensions/synology-chat/channel-plugin-api.js +1 -1
  246. package/dist/extensions/tlon/api.js +2 -2
  247. package/dist/extensions/tlon/channel-plugin-api.js +1 -1
  248. package/dist/extensions/tlon/runtime-api.js +1 -1
  249. package/dist/extensions/tlon/test-api.js +1 -1
  250. package/dist/extensions/twitch/api.js +1 -1
  251. package/dist/extensions/twitch/channel-plugin-api.js +1 -1
  252. package/dist/extensions/twitch/setup-plugin-api.js +1 -1
  253. package/dist/extensions/zalo/api.js +3 -3
  254. package/dist/extensions/zalo/channel-plugin-api.js +1 -1
  255. package/dist/extensions/zalo/runtime-api.js +2 -2
  256. package/dist/extensions/zalo/setup-api.js +2 -2
  257. package/dist/extensions/zalouser/api.js +3 -3
  258. package/dist/extensions/zalouser/channel-plugin-api.js +1 -1
  259. package/dist/extensions/zalouser/runtime-api.js +6 -6
  260. package/dist/extensions/zalouser/setup-plugin-api.js +1 -1
  261. package/dist/extensions/zalouser/test-api.js +1 -1
  262. package/dist/fallbacks-BwNexEVP.js +31 -0
  263. package/dist/fallbacks-GwVAaFt5.js +2 -0
  264. package/dist/fallbacks-shared-DmepG9Mq.js +111 -0
  265. package/dist/gateway-BB4hdlYm.js +115 -0
  266. package/dist/gateway-cli-Bzz62NC8.js +1283 -0
  267. package/dist/gateway-rpc-dyJV2osv.js +14 -0
  268. package/dist/gateway-rpc.runtime-DYVOEv4W.js +23 -0
  269. package/dist/gateway-rpc.runtime.js +1 -1
  270. package/dist/gateway-runtime-CqSQCYo0.js +15 -0
  271. package/dist/gateway-status-DdCiwrPt.js +584 -0
  272. package/dist/genesis-tools-Bh6dAUhK.js +9166 -0
  273. package/dist/genesis-tools.runtime-CiIUponP.js +2 -0
  274. package/dist/genesis-tools.runtime.js +1 -1
  275. package/dist/get-reply-from-config.runtime-Cu2DcwOW.js +2 -0
  276. package/dist/get-reply-from-config.runtime.js +1 -1
  277. package/dist/get-reply-qVmTjhwr.js +3897 -0
  278. package/dist/graph-users-kkSJYBNX.js +1337 -0
  279. package/dist/health-CFyVDYng.js +469 -0
  280. package/dist/health-Cl371mu8.js +3 -0
  281. package/dist/health-route-D0IspgUK.js +41 -0
  282. package/dist/health-route-D2tFKCLv.js +2 -0
  283. package/dist/heartbeat-runner-Bmi8YsXz.js +5 -0
  284. package/dist/heartbeat-runner-FSCWra2R.js +1292 -0
  285. package/dist/heartbeat-runner.runtime-QF8dg4j-.js +4 -0
  286. package/dist/heartbeat-runner.runtime.js +1 -1
  287. package/dist/hooks-cli-DYoG7Dz1.js +433 -0
  288. package/dist/image-fallbacks-5ckuJ46I.js +31 -0
  289. package/dist/image-fallbacks-DYnqzK01.js +2 -0
  290. package/dist/inbound-reply-dispatch-D5pqDZRa.js +73 -0
  291. package/dist/index.js +2 -2
  292. package/dist/infra-runtime-D08WIqN2.js +39 -0
  293. package/dist/init-BCgwiSZj.js +59 -0
  294. package/dist/library-CP9n_7AP.js +45 -0
  295. package/dist/lifecycle-BYam90xH.js +229 -0
  296. package/dist/lifecycle-DS58sNmu.js +571 -0
  297. package/dist/lifecycle.runtime-DMwss7xM.js +2 -0
  298. package/dist/lifecycle.runtime.js +1 -1
  299. package/dist/list-CASc4IWz.js +131 -0
  300. package/dist/list-CBPrBS2u.js +1212 -0
  301. package/dist/list-Cf7fcqQd.js +2 -0
  302. package/dist/list-Dqd2QyTH.js +2 -0
  303. package/dist/list.probe-BWcMSWDF.js +419 -0
  304. package/dist/llm-slug-generator-4LADFhXT.js +79 -0
  305. package/dist/llm-slug-generator.js +1 -1
  306. package/dist/load-config-DI-LDL6p.js +35 -0
  307. package/dist/local-dispatch.runtime-WDgraH3j.js +8 -0
  308. package/dist/local-dispatch.runtime.js +1 -1
  309. package/dist/logs-cli-zoBIelUH.js +265 -0
  310. package/dist/logs-cli.runtime-DxKNxXAz.js +2 -0
  311. package/dist/logs-cli.runtime.js +1 -1
  312. package/dist/main-session-restart-recovery-DWZfkOzH.js +206 -0
  313. package/dist/managed-image-attachments-DLDa1aE2.js +2 -0
  314. package/dist/managed-image-attachments-a4v60Bk3.js +635 -0
  315. package/dist/manager-CfUcsSI9.js +2057 -0
  316. package/dist/manager-DmBBLCOg.js +2 -0
  317. package/dist/markdown-to-line-B0mPruD_.js +790 -0
  318. package/dist/mcp/plugin-tools-serve.js +1 -1
  319. package/dist/mcp-cli-CLL9nfvE.js +725 -0
  320. package/dist/mcp-http-p7GbtbMx.js +529 -0
  321. package/dist/memory-core-host-runtime-cli-CZNYkDoE.js +9 -0
  322. package/dist/message-CRyNLXch.js +232 -0
  323. package/dist/message-action-runner-5Y4EFpWh.js +1407 -0
  324. package/dist/message-action-runner-Dxv-GXkn.js +2 -0
  325. package/dist/message-actions-DtoR6Mr2.js +143 -0
  326. package/dist/message.gateway.runtime-RI4cvk_E.js +2 -0
  327. package/dist/message.gateway.runtime.js +1 -1
  328. package/dist/models-auth-status-DsheCXaS.js +201 -0
  329. package/dist/models-cli-CQQG1U-p.js +219 -0
  330. package/dist/monitor-BRRSjPQY.js +1459 -0
  331. package/dist/monitor-Ch-cG7Si.js +1661 -0
  332. package/dist/monitor-ChBhfnC-.js +788 -0
  333. package/dist/monitor-CsvCTpjq.js +671 -0
  334. package/dist/monitor-DjemBuVh.js +1237 -0
  335. package/dist/monitor-LyGEO-KI.js +2 -0
  336. package/dist/monitor-auth-DVCdDwlp.js +207 -0
  337. package/dist/monitor-processing-Cib3ZjUe.js +1974 -0
  338. package/dist/monitor.runtime-DLBFALbV.js +2 -0
  339. package/dist/monitor.runtime.js +1 -1
  340. package/dist/monitor.webhook-Dktr8JA-.js +180 -0
  341. package/dist/msteams-G5I2CO13.js +35 -0
  342. package/dist/native-hook-relay-B1ArNeG5.js +519 -0
  343. package/dist/nextcloud-talk-DimOAfaR.js +17 -0
  344. package/dist/node-cli-RIjV0id4.js +2276 -0
  345. package/dist/nodes-cli-Cke-B80I.js +1046 -0
  346. package/dist/nodes-utils-CsTqKwN9.js +84 -0
  347. package/dist/nodes.helpers-DYpGCFer.js +34 -0
  348. package/dist/notify-zBChwf0-.js +315 -0
  349. package/dist/onboard-D6UawRld.js +2 -0
  350. package/dist/onboard-DfoCtk3_.js +70 -0
  351. package/dist/onboard-helpers-BKQMe3RX.js +6 -0
  352. package/dist/onboard-helpers-BLBJlQ50.js +204 -0
  353. package/dist/onboard-interactive-GAbQD437.js +24 -0
  354. package/dist/onboard-non-interactive-Bqi-JXh3.js +635 -0
  355. package/dist/onboard-remote-CNpTyVws.js +193 -0
  356. package/dist/onboard-remote-GFp2lT6Y.js +2 -0
  357. package/dist/onboard-skills-BQneolfo.js +2 -0
  358. package/dist/onboard-skills-BipqJ48b.js +134 -0
  359. package/dist/openai-http-CLDWjSKC.js +500 -0
  360. package/dist/openresponses-http-DNvXNiw_.js +1128 -0
  361. package/dist/operator-approvals-client-gaflvETF.js +68 -0
  362. package/dist/outbound.runtime-ByVsvEri.js +2 -0
  363. package/dist/outbound.runtime.js +1 -1
  364. package/dist/pair-command-approve-Dzkubc-8.js +44 -0
  365. package/dist/persistent-bindings.lifecycle-BhdRK7Lp.js +2 -0
  366. package/dist/persistent-bindings.lifecycle-DQ0AiHuy.js +85 -0
  367. package/dist/pi-embedded-C789hs31.js +4 -0
  368. package/dist/pi-embedded-CXLkrOwv.js +2905 -0
  369. package/dist/pi-embedded.runtime-BaHYLgKa.js +4 -0
  370. package/dist/pi-embedded.runtime.js +1 -1
  371. package/dist/pi-tool-definition-adapter-DFutc0D4.js +229 -0
  372. package/dist/pi-tools-k60jrAVq.js +1057 -0
  373. package/dist/pi-tools.before-tool-call-CFy20GCz.js +2 -0
  374. package/dist/pi-tools.before-tool-call-DJmPOVfQ.js +433 -0
  375. package/dist/plugin-BfFuIgXQ.js +12195 -0
  376. package/dist/plugin-enabled-dXOUnZwX.js +140 -0
  377. package/dist/plugin-registration-CEAozQhV.js +23 -0
  378. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  379. package/dist/plugin-sdk/acp-binding-runtime.js +1 -1
  380. package/dist/plugin-sdk/acp-runtime.js +2 -2
  381. package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
  382. package/dist/plugin-sdk/agent-harness.js +6 -6
  383. package/dist/plugin-sdk/agent-runtime.js +2 -2
  384. package/dist/plugin-sdk/approval-gateway-runtime.js +2 -2
  385. package/dist/plugin-sdk/approval-handler-runtime.js +3 -3
  386. package/dist/plugin-sdk/approval-runtime.js +1 -1
  387. package/dist/plugin-sdk/browser-node-runtime.js +4 -4
  388. package/dist/plugin-sdk/browser-setup-tools.js +3 -3
  389. package/dist/plugin-sdk/browser-support.js +7 -7
  390. package/dist/plugin-sdk/channel-core.js +2 -2
  391. package/dist/plugin-sdk/channel-inbound.js +2 -2
  392. package/dist/plugin-sdk/command-auth.js +1 -1
  393. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  394. package/dist/plugin-sdk/compat.js +1 -1
  395. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  396. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  397. package/dist/plugin-sdk/core.js +2 -2
  398. package/dist/plugin-sdk/direct-dm.js +1 -1
  399. package/dist/plugin-sdk/gateway-runtime.js +3 -3
  400. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  401. package/dist/plugin-sdk/index.js +1 -1
  402. package/dist/plugin-sdk/infra-runtime.js +2 -2
  403. package/dist/plugin-sdk/irc.js +2 -2
  404. package/dist/plugin-sdk/matrix.js +1 -1
  405. package/dist/plugin-sdk/memory-core-host-runtime-cli.js +2 -2
  406. package/dist/plugin-sdk/memory-core.js +2 -2
  407. package/dist/plugin-sdk/msteams.js +2 -2
  408. package/dist/plugin-sdk/nextcloud-talk.js +2 -2
  409. package/dist/plugin-sdk/nostr.js +1 -1
  410. package/dist/plugin-sdk/reply-dispatch-runtime.js +1 -1
  411. package/dist/plugin-sdk/reply-runtime.js +4 -4
  412. package/dist/plugin-sdk/runtime-secret-resolution.js +1 -1
  413. package/dist/plugin-sdk/runtime.js +2 -2
  414. package/dist/plugin-sdk/session-visibility.js +1 -1
  415. package/dist/plugin-sdk/testing.js +4 -4
  416. package/dist/plugin-sdk/tlon.js +1 -1
  417. package/dist/plugin-sdk/zalo.js +1 -1
  418. package/dist/plugin-sdk/zalouser.js +1 -1
  419. package/dist/plugin-service-BOpLQ8BU.js +2892 -0
  420. package/dist/plugins/runtime/index.js +1 -1
  421. package/dist/policy-DiIlt2yW.js +328 -0
  422. package/dist/postinstall-inventory.json +414 -414
  423. package/dist/prepare.runtime-Bd8adOy3.js +815 -0
  424. package/dist/prepare.runtime.js +1 -1
  425. package/dist/probe-BOlTfbzG.js +2 -0
  426. package/dist/probe-BSRvsN95.js +2205 -0
  427. package/dist/probe-CDfjQSnz.js +74 -0
  428. package/dist/probe-D7gHyiZV.js +241 -0
  429. package/dist/probe-DTNKTWSs.js +2 -0
  430. package/dist/probe-DcryDdZh.js +45 -0
  431. package/dist/probe-nyesoHxj.js +1443 -0
  432. package/dist/program-BFGavenz.js +111 -0
  433. package/dist/prompt-select-styled-BhY1zahx.js +20 -0
  434. package/dist/protocol-DxLbSF2J.js +2477 -0
  435. package/dist/provider-dispatcher-C-yy1D7r.js +22 -0
  436. package/dist/provider-dispatcher-ErSjESTP.js +2 -0
  437. package/dist/qr-cli-C1-oy_ho.js +349 -0
  438. package/dist/qr-cli-DmEs63Sb.js +2 -0
  439. package/dist/reaction-runtime-api-gua650a7.js +116 -0
  440. package/dist/reactions-R-rA7cXz.js +998 -0
  441. package/dist/register-service-commands-DkbqNKVB.js +71 -0
  442. package/dist/register.agent-C3nW9wDn.js +248 -0
  443. package/dist/register.configure-BzLHCu95.js +15 -0
  444. package/dist/register.maintenance-BHFQo4gr.js +363 -0
  445. package/dist/register.message-CsYRdfKi.js +329 -0
  446. package/dist/register.onboard-DltySQ6C.js +88 -0
  447. package/dist/register.runtime-6Sk1Njnp.js +81 -0
  448. package/dist/register.runtime.js +1 -1
  449. package/dist/register.setup-CDvVQJuj.js +150 -0
  450. package/dist/register.status-health-sessions-B8lorJ2x.js +1215 -0
  451. package/dist/register.subclis-BD4fuAci.js +3 -0
  452. package/dist/register.subclis-CbRd3F_m.js +29 -0
  453. package/dist/register.subclis-core-Dtq9dAjI.js +249 -0
  454. package/dist/reply-dispatch-runtime-DldslKSK.js +13 -0
  455. package/dist/reply-runtime-2EGTfk-1.js +11 -0
  456. package/dist/reply.runtime-OaHntzIS.js +2 -0
  457. package/dist/reply.runtime.js +1 -1
  458. package/dist/restart-health-BjmfJCUM.js +202 -0
  459. package/dist/restart-health-hw909zlD.js +2 -0
  460. package/dist/root-help-_hHiERsR.js +44 -0
  461. package/dist/routes-BxCk7Pue.js +3341 -0
  462. package/dist/routes-C1_6oFmZ.js +2 -0
  463. package/dist/rpc-zRbkEo6W.js +61 -0
  464. package/dist/rpc.runtime-BZSYNDPa.js +21 -0
  465. package/dist/rpc.runtime.js +1 -1
  466. package/dist/run-delivery.runtime-D6YDo67d.js +530 -0
  467. package/dist/run-delivery.runtime.js +1 -1
  468. package/dist/run-embedded.runtime-BsgPrPDa.js +4 -0
  469. package/dist/run-embedded.runtime.js +1 -1
  470. package/dist/run-execution-cli.runtime-CggaHhrJ.js +4 -0
  471. package/dist/run-execution-cli.runtime.js +1 -1
  472. package/dist/run-executor.runtime-CKkLEr_T.js +277 -0
  473. package/dist/run-executor.runtime.js +1 -1
  474. package/dist/run-main-CJYYkV6H.js +567 -0
  475. package/dist/run-subagent-registry.runtime-B0sgf_oy.js +2 -0
  476. package/dist/run-subagent-registry.runtime.js +1 -1
  477. package/dist/run-wait-DHizeptL.js +135 -0
  478. package/dist/runtime-EtV_ChXX.js +9 -0
  479. package/dist/runtime-api-6H864Pmt.js +9 -0
  480. package/dist/runtime-api-CbZqRBZQ.js +14 -0
  481. package/dist/runtime-api-ZxEgu8cW.js +4 -0
  482. package/dist/runtime-api-j9A6jYUr.js +9 -0
  483. package/dist/runtime-embedded-pi.runtime-BHjCPnxo.js +2 -0
  484. package/dist/runtime-embedded-pi.runtime.js +1 -1
  485. package/dist/runtime-hvRzTSAZ.js +973 -0
  486. package/dist/runtime-internal-C_KZYzFK.js +2 -0
  487. package/dist/runtime-options-BZEOCnMg.js +275 -0
  488. package/dist/runtime-schema-R7LWe58K.js +28576 -0
  489. package/dist/scan-BNDE3dSE.js +523 -0
  490. package/dist/scan-TG6lVEQ2.js +2 -0
  491. package/dist/secrets-cli-twD2FWoZ.js +2101 -0
  492. package/dist/security-cli-Cd1A5yhL.js +486 -0
  493. package/dist/selection-CqqmU0Hi.js +7764 -0
  494. package/dist/selection-CsM62vcz.js +2 -0
  495. package/dist/send-D-EgB64m.js +156 -0
  496. package/dist/send-DPk5hW1W.js +102 -0
  497. package/dist/send.runtime-3QDkKN71.js +2 -0
  498. package/dist/send.runtime.js +1 -1
  499. package/dist/server-C94r_Qff.js +77 -0
  500. package/dist/server-Ceiopn_v.js +13 -0
  501. package/dist/server-context-BFJlu5HY.js +2 -0
  502. package/dist/server-context-PNEqhnTM.js +847 -0
  503. package/dist/server-node-events-QOAWLsDC.js +481 -0
  504. package/dist/server-plugin-bootstrap-CgsjzB17.js +2 -0
  505. package/dist/server-plugin-bootstrap-Dfuf75EN.js +12728 -0
  506. package/dist/server-restart-sentinel-BMPqZ7Jw.js +697 -0
  507. package/dist/server.impl-CCoQpvB7.js +12864 -0
  508. package/dist/session-kill-http-oPi3ajEp.js +110 -0
  509. package/dist/session-reset-service-CzDd6PBK.js +497 -0
  510. package/dist/session-route-DUOQE8-f.js +93 -0
  511. package/dist/session-status.runtime-W5tlGbXw.js +2 -0
  512. package/dist/session-status.runtime.js +1 -1
  513. package/dist/session-subagent-reactivation.runtime-yoYn1awK.js +2 -0
  514. package/dist/session-subagent-reactivation.runtime.js +1 -1
  515. package/dist/session-tab-registry-DkeCaT-2.js +581 -0
  516. package/dist/session-visibility-B4CFjv43.js +147 -0
  517. package/dist/sessions-helpers-CDfOVWe3.js +305 -0
  518. package/dist/sessions-history-http-QXeTdxXM.js +383 -0
  519. package/dist/sessions-patch-xb4bXPwh.js +309 -0
  520. package/dist/sessions-resolve-BPlrW8C3.js +174 -0
  521. package/dist/sessions.runtime-yYJXudA9.js +2 -0
  522. package/dist/sessions.runtime.js +1 -1
  523. package/dist/setup-0Im0LL1d.js +636 -0
  524. package/dist/setup-api-BxwfqXN-.js +29 -0
  525. package/dist/setup-core-BWwXgEuM.js +171 -0
  526. package/dist/setup-core-DzHNbQLG.js +176 -0
  527. package/dist/setup-surface-BVnqDsfU.js +286 -0
  528. package/dist/setup-surface-BajZWmKz2.js +403 -0
  529. package/dist/setup-surface-rDO3YjSb.js +219 -0
  530. package/dist/setup.finalize-BsnPbdwc.js +547 -0
  531. package/dist/setup.gateway-config-BFawSWHL.js +250 -0
  532. package/dist/shared-52tFSlVk.js +121 -0
  533. package/dist/shared-C8ENgtxM.js +198 -0
  534. package/dist/shared-DbXvU7JV.js +76 -0
  535. package/dist/slash-state-CMuPwgKt.js +1911 -0
  536. package/dist/src-IzaHgU6a.js +3974 -0
  537. package/dist/startup-context-xJS8ckSG.js +312 -0
  538. package/dist/status-BO4LMTER.js +2 -0
  539. package/dist/status-BwY1tASe.js +3 -0
  540. package/dist/status-BxG6n-ko.js +397 -0
  541. package/dist/status-Co_cq2vy.js +2 -0
  542. package/dist/status-DKNeRGzW.js +190 -0
  543. package/dist/status-DzlIHiTS.js +209 -0
  544. package/dist/status-all-DF7qaWjo.js +498 -0
  545. package/dist/status-json-CgCilobT.js +14 -0
  546. package/dist/status-json-command-DAa78z3e.js +84 -0
  547. package/dist/status-runtime-shared-CRCuxXn_.js +257 -0
  548. package/dist/status-subagents.runtime-hUsBd4C5.js +18 -0
  549. package/dist/status-subagents.runtime.js +1 -1
  550. package/dist/status-text-BdbRrl1G.js +237 -0
  551. package/dist/status.gateway-connection.runtime-BmSTYFFO.js +2 -0
  552. package/dist/status.gateway-connection.runtime.js +1 -1
  553. package/dist/status.gather-CItmFIHS.js +292 -0
  554. package/dist/status.gather-qB6WOoH7.js +2 -0
  555. package/dist/status.runtime-ClZCgYx1.js +2 -0
  556. package/dist/status.runtime.js +1 -1
  557. package/dist/status.scan-overview-B0b0Mvng.js +379 -0
  558. package/dist/status.scan-xY7nUi9N.js +65 -0
  559. package/dist/status.scan.fast-json-BANGHOys.js +132 -0
  560. package/dist/status.scan.fast-json-M-DmMy2l.js +2 -0
  561. package/dist/status.summary-B3PlFnWw.js +2 -0
  562. package/dist/status.summary-adB75FOM.js +214 -0
  563. package/dist/subagent-announce-B4w7Mcpr.js +351 -0
  564. package/dist/subagent-announce-delivery-Dma0A4gL.js +726 -0
  565. package/dist/subagent-announce-output-sUPLcge-.js +364 -0
  566. package/dist/subagent-control-CxR0WRrx.js +506 -0
  567. package/dist/subagent-followup.runtime-XeFe_LA0.js +68 -0
  568. package/dist/subagent-followup.runtime.js +1 -1
  569. package/dist/subagent-orphan-recovery-CJPHy8JV.js +305 -0
  570. package/dist/subagent-registry-CjMWjRCE.js +1753 -0
  571. package/dist/subagent-registry-H20VxEu0.js +3 -0
  572. package/dist/subagent-registry.runtime.js +1 -1
  573. package/dist/subagent-spawn-CRM5x6cV.js +1005 -0
  574. package/dist/system-cli-BJ5mMirj.js +59 -0
  575. package/dist/targets-CUnlEj96.js +67 -0
  576. package/dist/task-executor-DKnEwQ6v.js +360 -0
  577. package/dist/task-owner-access-CfypP1Yc.js +74 -0
  578. package/dist/task-registry-delivery-runtime-BB6ZzpqH.js +2 -0
  579. package/dist/task-registry-delivery-runtime-CvHa0gv-.js +3 -0
  580. package/dist/task-registry-pQuAfAL9.js +2366 -0
  581. package/dist/task-registry.maintenance-Bfd87wEV.js +416 -0
  582. package/dist/task-registry.maintenance-VgfbW0yt.js +2 -0
  583. package/dist/telegram/token.js +1 -1
  584. package/dist/testing-C_mngO0u.js +575 -0
  585. package/dist/text-report-Ct6t3he6.js +587 -0
  586. package/dist/tool-resolution-C4KGgPH-.js +90 -0
  587. package/dist/tools-effective-inventory-Bo2QC-m8.js +152 -0
  588. package/dist/tools-invoke-http-CBZPFh5L.js +206 -0
  589. package/dist/trash-DhZow3jd.js +24 -0
  590. package/dist/tui-cli-BPdQPozP.js +4575 -0
  591. package/dist/update-cli-BRi3mVAU.js +1759 -0
  592. package/dist/upgrade-D9zejtCk.js +1226 -0
  593. package/dist/video-generation-task-status-BSBQ0_FO.js +163 -0
  594. package/dist/wait-for-idle-before-flush-D1dTT9th.js +5986 -0
  595. package/dist/wizard-models-ysyV_WWR.js +334 -0
  596. package/package.json +1 -1
  597. package/dist/abort-DaihtnYj.js +0 -201
  598. package/dist/abort.runtime-BUT9L_5l.js +0 -2
  599. package/dist/accounts-BY5wsBnV.js +0 -104
  600. package/dist/accounts-DGth1vsM.js +0 -107
  601. package/dist/accounts-Do6Ir-q3.js +0 -2
  602. package/dist/acp-cli-BHgjn8rh.js +0 -2193
  603. package/dist/acp-spawn-BAM_Jrft.js +0 -2
  604. package/dist/acp-spawn-DyBD_Y_t.js +0 -1093
  605. package/dist/acp-stateful-target-driver-DKGnfjWu.js +0 -89
  606. package/dist/action-agents-CzMSNQdc.js +0 -67
  607. package/dist/action-focus-CpjIrZFe.js +0 -132
  608. package/dist/action-help-BhE9UosK.js +0 -7
  609. package/dist/action-info-CH2j6dKT.js +0 -101
  610. package/dist/action-kill-CB4AnLIf.js +0 -33
  611. package/dist/action-list-CQ8LbzvR.js +0 -21
  612. package/dist/action-log-DZblh247.js +0 -30
  613. package/dist/action-send-DMe0B4FG.js +0 -39
  614. package/dist/action-spawn-CkKMESb5.js +0 -47
  615. package/dist/action-unfocus-DjQzPZwU.js +0 -29
  616. package/dist/actions.runtime-CUdRdpLB.js +0 -5
  617. package/dist/actions.runtime-CxRstWdN.js +0 -18
  618. package/dist/agent-command-Nh_kPL3z.js +0 -874
  619. package/dist/agent-harness-runtime-BEb7Wk1m.js +0 -144
  620. package/dist/agent-q6U-cKJn.js +0 -2
  621. package/dist/agent-runner-utils-x_qJ6xYC.js +0 -239
  622. package/dist/agent-runner.runtime-DRvTfUPd.js +0 -3455
  623. package/dist/agent-runtime-jSYYQd6f.js +0 -18
  624. package/dist/agents-BKOpsZXw.js +0 -5
  625. package/dist/agents-BY34ViPX.js +0 -954
  626. package/dist/aliases-CD5YlX7d.js +0 -2
  627. package/dist/aliases-Dq31zANx.js +0 -96
  628. package/dist/api-BhxN9fxJ.js +0 -139
  629. package/dist/api-DjL_3olO.js +0 -5
  630. package/dist/api-jIYND-S5.js +0 -3
  631. package/dist/approval-gateway-resolver-BfvdJW5s.js +0 -29
  632. package/dist/approval-gateway-runtime-BBf976nt.js +0 -2
  633. package/dist/approval-handler-runtime-Bq4p5wvg.js +0 -439
  634. package/dist/approval-native-runtime-IrisOZrU.js +0 -729
  635. package/dist/attempt-execution.runtime-BXGalt-_.js +0 -509
  636. package/dist/attempt.prompt-helpers-A-pc2LfL.js +0 -221
  637. package/dist/attempt.tool-run-context-Ukna4ck-.js +0 -933
  638. package/dist/audit-CVUpfDvE.js +0 -939
  639. package/dist/audit.runtime-CsuGXvud.js +0 -7
  640. package/dist/auth-CjcZyRUW.js +0 -383
  641. package/dist/auth-order-DIkyTpW4.js +0 -2
  642. package/dist/auth-order-Dpt1K1rT.js +0 -96
  643. package/dist/auth-sVuL2xeZ.js +0 -2
  644. package/dist/bash-tools-DDv0zQh9.js +0 -2824
  645. package/dist/bash-tools-s-QSvRmt.js +0 -3
  646. package/dist/binding-routing-Cz5R2kFK.js +0 -85
  647. package/dist/binding-targets-D4j2hdQh.js +0 -121
  648. package/dist/bridge-server-X8SdeAI3.js +0 -113
  649. package/dist/browser-control-auth-BrF3DZxC.js +0 -2
  650. package/dist/browser-node-runtime-BecPmKOx.js +0 -12
  651. package/dist/browser-profiles-BxAKEG3x.js +0 -2
  652. package/dist/browser-runtime-D9fTDscJ.js +0 -387
  653. package/dist/browser-setup-tools--AQGWGvl.js +0 -13
  654. package/dist/build-B0nbyXrw.js +0 -550
  655. package/dist/call-BvqN9kay.js +0 -3
  656. package/dist/call-Dk5rTl-p.js +0 -331
  657. package/dist/call.runtime-Bx1hKDwO.js +0 -2
  658. package/dist/capability-cli-286Z3Bq3.js +0 -1401
  659. package/dist/catchup-DyeQ6GNj.js +0 -300
  660. package/dist/channel-B5m01jSZ.js +0 -1802
  661. package/dist/channel-BE26v3WU.js +0 -840
  662. package/dist/channel-BS7r_Zt1.js +0 -226
  663. package/dist/channel-BUWCqkGh.js +0 -1320
  664. package/dist/channel-BhgKqvZn.js +0 -453
  665. package/dist/channel-Bx703sxQ.js +0 -297
  666. package/dist/channel-CDjlEQAM.js +0 -491
  667. package/dist/channel-ChrqAgRS.js +0 -595
  668. package/dist/channel-Crmp3BHh.js +0 -1100
  669. package/dist/channel-D7GdDfBl.js +0 -1174
  670. package/dist/channel-DqSzRIul.js +0 -350
  671. package/dist/channel-core-DIwclC34.js +0 -5
  672. package/dist/channel-inbound-DPW1gRUU.js +0 -31
  673. package/dist/channel-plugin-runtime-BJhRSlBI.js +0 -771
  674. package/dist/channel-runtime-sV_Sg0EO.js +0 -425
  675. package/dist/channel.runtime-4BaNapRW.js +0 -89
  676. package/dist/channel.runtime-Bk2w0Yzd.js +0 -2364
  677. package/dist/channel.runtime-Bo5_2imz.js +0 -109
  678. package/dist/channel.runtime-CdYWlMyL.js +0 -40130
  679. package/dist/channel.runtime-CrYmCmSw.js +0 -4
  680. package/dist/channel.runtime-D3APPhVs.js +0 -430
  681. package/dist/channel.runtime-DjF1Gg6N.js +0 -576
  682. package/dist/channel.setup-BxXrmAYb.js +0 -10
  683. package/dist/channels-DHcJgMnw.js +0 -733
  684. package/dist/channels-cli-Dnq08u4r.js +0 -268
  685. package/dist/chat-BGU3UVKD.js +0 -2830
  686. package/dist/clawbot-cli-C-rqJUW-.js +0 -9
  687. package/dist/cli-BlnGJbLJ.js +0 -219
  688. package/dist/cli-D0RU1q0-.js +0 -2
  689. package/dist/cli-DBw79G2t.js +0 -72
  690. package/dist/cli-Dul37_xp.js +0 -2
  691. package/dist/cli-runner-DY8BKEmu.js +0 -286
  692. package/dist/cli-runner.runtime-5JMuegF9.js +0 -3
  693. package/dist/cli-runner.runtime-DQROn9Ve.js +0 -4
  694. package/dist/cli.runtime-CGOUREQg.js +0 -1261
  695. package/dist/client-CCBN1ydB.js +0 -138
  696. package/dist/client-PHLyQ8il.js +0 -713
  697. package/dist/command-auth-79QKQZZ3.js +0 -76
  698. package/dist/command-config-resolution-BKAgMItc.js +0 -2
  699. package/dist/command-config-resolution-BUCAmCZ_.js +0 -23
  700. package/dist/command-config-resolution.runtime-BVtfeARM.js +0 -2
  701. package/dist/command-registry-CBBqTuqk.js +0 -4
  702. package/dist/command-registry-core-D4BBKYaw.js +0 -106
  703. package/dist/command-registry-nztgeSim.js +0 -9
  704. package/dist/command-secret-gateway-g0alGmKz.js +0 -528
  705. package/dist/command-status.runtime-Dw6Zj5hL.js +0 -87
  706. package/dist/commands-acp-De-XFc40.js +0 -77
  707. package/dist/commands-compact.runtime-6gixR2a8.js +0 -10
  708. package/dist/commands-handlers.runtime-DCmZAlRN.js +0 -4599
  709. package/dist/commands-status-CION7GYY.js +0 -16
  710. package/dist/commands-status.runtime-FBwoHftv.js +0 -3
  711. package/dist/commands-subagents-control.runtime-C2xgOYKM.js +0 -2
  712. package/dist/commands-subagents-control.runtime-CgIEblx3.js +0 -3
  713. package/dist/commands-system-prompt-B-jC-KV-.js +0 -158
  714. package/dist/commands-system-prompt-DeK5Jhy_.js +0 -2
  715. package/dist/commands.runtime-CHSb1kYa.js +0 -167
  716. package/dist/compact-Dwchggv2.js +0 -1118
  717. package/dist/compact.runtime-jDUYMSjR.js +0 -12
  718. package/dist/completion-cli-DLHh5B2t.js +0 -328
  719. package/dist/config-Bnb9qa1S.js +0 -252
  720. package/dist/config-cli-DReWqAE2.js +0 -1078
  721. package/dist/configure-BLNGlWh0.js +0 -1252
  722. package/dist/configure-nPzsEeOb.js +0 -2
  723. package/dist/connect-options-C9cvS-bh.js +0 -699
  724. package/dist/control-auth-D2-P54fW.js +0 -125
  725. package/dist/control-service-CqUPgxlx.js +0 -156
  726. package/dist/conversation-id-BAzJOKBB.js +0 -235
  727. package/dist/conversation-id-WJLKuyy9.js +0 -38
  728. package/dist/conversation-runtime-D8fK5aI0.js +0 -31
  729. package/dist/core-DywmHt1k.js +0 -275
  730. package/dist/cron-cli-CeEJRkfR.js +0 -713
  731. package/dist/daemon-cli-BZZOjJHx.js +0 -12
  732. package/dist/dashboard-C0NRxmP3.js +0 -81
  733. package/dist/dashboard-DqhPgQv-.js +0 -2
  734. package/dist/delegate-DwVbOeR5.js +0 -64
  735. package/dist/detached-task-runtime-DiDRj-v-.js +0 -73
  736. package/dist/devices-cli-BKVbpwVc.js +0 -498
  737. package/dist/diagnostics-gh3UN_iV.js +0 -154
  738. package/dist/direct-dm-CwHHUkHV.js +0 -64
  739. package/dist/dispatch-B5af8_1v.js +0 -1131
  740. package/dist/dispatch-acp-DgOnUWBl.js +0 -981
  741. package/dist/dispatch-acp-manager.runtime-XWNjVh_M.js +0 -3
  742. package/dist/dispatch-acp.runtime-BdYL_ZqM.js +0 -19
  743. package/dist/doctor-device-pairing-CtGzWmXB.js +0 -307
  744. package/dist/doctor-gateway-daemon-flow-CCBI0jL4.js +0 -250
  745. package/dist/doctor-gateway-health-CkjqPFDl.js +0 -63
  746. package/dist/doctor-health-BOhuy1vP.js +0 -59
  747. package/dist/doctor-health-contributions-ChEuyLAY.js +0 -493
  748. package/dist/doctor-prompter-9nOTFD0Q.js +0 -56
  749. package/dist/doctor-workspace-status-CO5Ocwlt.js +0 -75
  750. package/dist/dreaming-GOPEFPio.js +0 -1574
  751. package/dist/dreaming-narrative-DfxHaxOU.js +0 -595
  752. package/dist/embedded-gateway-stub.runtime-B2OWcbsK.js +0 -9
  753. package/dist/exec-approvals-cli-CGeFtFbB.js +0 -498
  754. package/dist/fallbacks-CdfWAgNP.js +0 -2
  755. package/dist/fallbacks-eXbQ8TBp.js +0 -31
  756. package/dist/fallbacks-shared-akcCu5CD.js +0 -111
  757. package/dist/gateway-D-dDKqwi.js +0 -115
  758. package/dist/gateway-cli-NlsKGnqx.js +0 -1283
  759. package/dist/gateway-rpc-Cxa8dVW5.js +0 -14
  760. package/dist/gateway-rpc.runtime-D76s-oxs.js +0 -23
  761. package/dist/gateway-runtime-Dhm_gLh1.js +0 -15
  762. package/dist/gateway-status-C_L_CdOg.js +0 -584
  763. package/dist/genesis-tools-rRJB3JXY.js +0 -9166
  764. package/dist/genesis-tools.runtime-6oKokqaA.js +0 -2
  765. package/dist/get-reply-BkiDsDVY.js +0 -3897
  766. package/dist/get-reply-from-config.runtime-CHKCcj9D.js +0 -2
  767. package/dist/graph-users-BnXIYyC5.js +0 -1337
  768. package/dist/health-ZsJNENSY.js +0 -3
  769. package/dist/health-osa9LOJf.js +0 -469
  770. package/dist/health-route-8TdKOYLp.js +0 -2
  771. package/dist/health-route-BdLtX2Bg.js +0 -41
  772. package/dist/heartbeat-runner-BCbkAprr.js +0 -1292
  773. package/dist/heartbeat-runner-Dc1K8S94.js +0 -5
  774. package/dist/heartbeat-runner.runtime-pJaAsgLY.js +0 -4
  775. package/dist/hooks-cli-C3ggAz0i.js +0 -433
  776. package/dist/image-fallbacks-CiSae-lb.js +0 -2
  777. package/dist/image-fallbacks-vI8KUh6N.js +0 -31
  778. package/dist/inbound-reply-dispatch-DLM60UDh.js +0 -73
  779. package/dist/infra-runtime-CrHVeejV.js +0 -39
  780. package/dist/init-BKeEiV2q.js +0 -59
  781. package/dist/library-CHB7yTo5.js +0 -45
  782. package/dist/lifecycle-CUULToPr.js +0 -229
  783. package/dist/lifecycle-DCMpTRD2.js +0 -571
  784. package/dist/lifecycle.runtime-CP4gRxWv.js +0 -2
  785. package/dist/list-0zDFAWTF.js +0 -2
  786. package/dist/list-BaxVHTAN.js +0 -131
  787. package/dist/list-CMRMgrPs.js +0 -1212
  788. package/dist/list-DSrBtnKI.js +0 -2
  789. package/dist/list.probe-BJYSCsJY.js +0 -419
  790. package/dist/llm-slug-generator-Bn_wrWYw.js +0 -79
  791. package/dist/load-config-qC2BWt8E.js +0 -35
  792. package/dist/local-dispatch.runtime-DyU7urGc.js +0 -8
  793. package/dist/logs-cli-zK71r_PE.js +0 -265
  794. package/dist/logs-cli.runtime-k0UtiaRP.js +0 -2
  795. package/dist/main-session-restart-recovery-DMT0Oj9a.js +0 -206
  796. package/dist/managed-image-attachments-B6XXE4--.js +0 -635
  797. package/dist/managed-image-attachments-BTzWoDWE.js +0 -2
  798. package/dist/manager-BCKuWA67.js +0 -2057
  799. package/dist/manager-rGwNUzMp.js +0 -2
  800. package/dist/markdown-to-line-DmPbXQA1.js +0 -790
  801. package/dist/mcp-cli-CYpPNMcE.js +0 -725
  802. package/dist/mcp-http-wiE81iKg.js +0 -529
  803. package/dist/memory-core-host-runtime-cli-BOSQRX1T.js +0 -9
  804. package/dist/message-CUDzVGD8.js +0 -232
  805. package/dist/message-action-runner-Dy0IpKa4.js +0 -1407
  806. package/dist/message-action-runner-KkBFzZdg.js +0 -2
  807. package/dist/message-actions-Dcdb5aSR.js +0 -143
  808. package/dist/message.gateway.runtime-D86fFO99.js +0 -2
  809. package/dist/models-auth-status-DkiX4s0b.js +0 -201
  810. package/dist/models-cli-CSUot1R3.js +0 -219
  811. package/dist/monitor-BA8ByMKR.js +0 -2
  812. package/dist/monitor-Bv1GIHW5.js +0 -1661
  813. package/dist/monitor-DTFY0ruF.js +0 -788
  814. package/dist/monitor-DXH-vNGn.js +0 -1459
  815. package/dist/monitor-Df5k8NGk.js +0 -671
  816. package/dist/monitor-Dk2YRF26.js +0 -1237
  817. package/dist/monitor-auth-CZOW753A.js +0 -207
  818. package/dist/monitor-processing-Clta8N4C.js +0 -1974
  819. package/dist/monitor.runtime-3ORbPT0X.js +0 -2
  820. package/dist/monitor.webhook-CRyTxENk.js +0 -180
  821. package/dist/msteams-BE0VieXF.js +0 -35
  822. package/dist/native-hook-relay-DAwGGuEx.js +0 -519
  823. package/dist/nextcloud-talk-DfYlTFsm.js +0 -17
  824. package/dist/node-cli-Bzyci_X_.js +0 -2276
  825. package/dist/nodes-cli-Er3OZkuk.js +0 -1046
  826. package/dist/nodes-utils-Cp8QZO8-.js +0 -84
  827. package/dist/nodes.helpers-CwKAAnRA.js +0 -34
  828. package/dist/notify-D_5n_vEJ.js +0 -315
  829. package/dist/onboard-BE82RudQ.js +0 -2
  830. package/dist/onboard-Bk4xL8X7.js +0 -70
  831. package/dist/onboard-helpers-D4WYa-6g.js +0 -204
  832. package/dist/onboard-helpers-MuFxPZg5.js +0 -6
  833. package/dist/onboard-interactive-0zmI-9ia.js +0 -24
  834. package/dist/onboard-non-interactive-DIRB95mT.js +0 -635
  835. package/dist/onboard-remote-7qR1knbU.js +0 -2
  836. package/dist/onboard-remote-CLmoySkk.js +0 -193
  837. package/dist/onboard-skills-C_873OK_.js +0 -134
  838. package/dist/onboard-skills-DrlBYc0t.js +0 -2
  839. package/dist/openai-http-DzCBqW6b.js +0 -500
  840. package/dist/openresponses-http-B2zgO5hQ.js +0 -1128
  841. package/dist/operator-approvals-client-mGBl4ptH.js +0 -68
  842. package/dist/outbound.runtime--HS-MxM_.js +0 -2
  843. package/dist/pair-command-approve-CCTSQKJH.js +0 -44
  844. package/dist/persistent-bindings.lifecycle-CnmqGsQf.js +0 -85
  845. package/dist/persistent-bindings.lifecycle-Dav1TX9E.js +0 -2
  846. package/dist/pi-embedded-BSKL8IgF.js +0 -4
  847. package/dist/pi-embedded-DMM8Pfp7.js +0 -2905
  848. package/dist/pi-embedded.runtime-Bv_roBVx.js +0 -4
  849. package/dist/pi-tool-definition-adapter-OrxjlSIM.js +0 -229
  850. package/dist/pi-tools-DD1YegeL.js +0 -1057
  851. package/dist/pi-tools.before-tool-call-J9ujp9Wp.js +0 -433
  852. package/dist/pi-tools.before-tool-call-hGEgKGZQ.js +0 -2
  853. package/dist/plugin-Cg3pHepG.js +0 -12195
  854. package/dist/plugin-enabled-wEQ8BQNw.js +0 -140
  855. package/dist/plugin-registration-DLcLJgqz.js +0 -23
  856. package/dist/plugin-service-BogBl5qk.js +0 -2892
  857. package/dist/policy-Bkh8Xtnb.js +0 -328
  858. package/dist/prepare.runtime-Cd31ie7u.js +0 -815
  859. package/dist/probe-9IM22Rkf.js +0 -2
  860. package/dist/probe-ButCyV3d.js +0 -1443
  861. package/dist/probe-D7QBUio1.js +0 -45
  862. package/dist/probe-DV6CWm0r.js +0 -74
  863. package/dist/probe-DkfetvwA.js +0 -2
  864. package/dist/probe-Dxo-LQjn.js +0 -2205
  865. package/dist/probe-nil3qQAV.js +0 -241
  866. package/dist/program-DHxyOl81.js +0 -111
  867. package/dist/prompt-select-styled-BSf77q2T.js +0 -20
  868. package/dist/protocol-C4I0nfuT.js +0 -2477
  869. package/dist/provider-dispatcher-CkiPxKIr.js +0 -22
  870. package/dist/provider-dispatcher-PmsHJlUO.js +0 -2
  871. package/dist/qr-cli-BHY0TO2W.js +0 -2
  872. package/dist/qr-cli-BbjDJSKp.js +0 -349
  873. package/dist/reaction-runtime-api-DOigJrbq.js +0 -116
  874. package/dist/reactions-CogkrjNr.js +0 -998
  875. package/dist/register-service-commands-IA3Nfza5.js +0 -71
  876. package/dist/register.agent-DD0aSYye.js +0 -248
  877. package/dist/register.configure-BOy4i7Ah.js +0 -15
  878. package/dist/register.maintenance-CUp6FEOF.js +0 -363
  879. package/dist/register.message-DezTIpNI.js +0 -329
  880. package/dist/register.onboard-Brpxl9p3.js +0 -88
  881. package/dist/register.runtime-BfH5rSb_.js +0 -81
  882. package/dist/register.setup-CIt4FVv0.js +0 -150
  883. package/dist/register.status-health-sessions-IbGZwSaG.js +0 -1215
  884. package/dist/register.subclis-BFQii-42.js +0 -29
  885. package/dist/register.subclis-DlYCyoMp.js +0 -3
  886. package/dist/register.subclis-core-DcfC_0CS.js +0 -249
  887. package/dist/reply-dispatch-runtime-Lu4Metex.js +0 -13
  888. package/dist/reply-runtime-CgPzru94.js +0 -11
  889. package/dist/reply.runtime-sw14BA5F.js +0 -2
  890. package/dist/restart-health-1MNBua3p.js +0 -202
  891. package/dist/restart-health-BWGpwgPv.js +0 -2
  892. package/dist/root-help-B3zoC2OP.js +0 -44
  893. package/dist/routes-BM6fbday.js +0 -3341
  894. package/dist/routes-pVc_QLiP.js +0 -2
  895. package/dist/rpc-BGOWS7nj.js +0 -61
  896. package/dist/rpc.runtime-Ca9K3sx8.js +0 -21
  897. package/dist/run-delivery.runtime-CabntI64.js +0 -530
  898. package/dist/run-embedded.runtime-Q7wrP6Qn.js +0 -4
  899. package/dist/run-execution-cli.runtime-CtRUFc-M.js +0 -4
  900. package/dist/run-executor.runtime-Nm38xsKA.js +0 -277
  901. package/dist/run-main-UT0zTwCg.js +0 -567
  902. package/dist/run-subagent-registry.runtime-D9_scMUr.js +0 -2
  903. package/dist/run-wait-B2K_6JNL.js +0 -135
  904. package/dist/runtime-BZ296jTK.js +0 -9
  905. package/dist/runtime-DnZsw7MB.js +0 -973
  906. package/dist/runtime-api-BL9vpbvb.js +0 -14
  907. package/dist/runtime-api-BbsLJB4C.js +0 -9
  908. package/dist/runtime-api-ChwFrQRw.js +0 -9
  909. package/dist/runtime-api-_fH7M3Qh.js +0 -4
  910. package/dist/runtime-embedded-pi.runtime-TOdW-E-2.js +0 -2
  911. package/dist/runtime-internal-DGwOFi_E.js +0 -2
  912. package/dist/runtime-options-CSPfxkb1.js +0 -275
  913. package/dist/runtime-schema-DtNq1-Zd.js +0 -28576
  914. package/dist/scan-D6gkNpKl.js +0 -523
  915. package/dist/scan-_9J5-5L6.js +0 -2
  916. package/dist/secrets-cli-DlVSRQPM.js +0 -2101
  917. package/dist/security-cli-DtzNOYL2.js +0 -486
  918. package/dist/selection-CBJZE_FL.js +0 -7764
  919. package/dist/selection-XsoEF2p2.js +0 -2
  920. package/dist/send-BAaDBRfi.js +0 -156
  921. package/dist/send-BB-M1afy.js +0 -102
  922. package/dist/send.runtime-CI_75KUP.js +0 -2
  923. package/dist/server-D58E1Cua.js +0 -77
  924. package/dist/server-D6rXK0fF.js +0 -13
  925. package/dist/server-context-D5AnCc1E.js +0 -2
  926. package/dist/server-context-bt09wrJu.js +0 -847
  927. package/dist/server-node-events-CUx4-7FL.js +0 -481
  928. package/dist/server-plugin-bootstrap-CBcQpYIR.js +0 -12708
  929. package/dist/server-plugin-bootstrap-CfkBsGUg.js +0 -2
  930. package/dist/server-restart-sentinel-ByFI_0MB.js +0 -697
  931. package/dist/server.impl-DzntNeH-.js +0 -12864
  932. package/dist/session-kill-http-9MoO6FXC.js +0 -110
  933. package/dist/session-reset-service-redPsOs-.js +0 -497
  934. package/dist/session-route-C8oB2UYs.js +0 -93
  935. package/dist/session-status.runtime-D3bYBPJe.js +0 -2
  936. package/dist/session-subagent-reactivation.runtime-aat7tUag.js +0 -2
  937. package/dist/session-tab-registry-CAJ_oDsb.js +0 -581
  938. package/dist/session-visibility-Dq88jJYB.js +0 -147
  939. package/dist/sessions-helpers-C8-IkqhO.js +0 -305
  940. package/dist/sessions-history-http-4Ftuwnes.js +0 -383
  941. package/dist/sessions-patch-BsyNHOaz.js +0 -309
  942. package/dist/sessions-resolve-gKLz2Bup.js +0 -174
  943. package/dist/sessions.runtime-C1W59rQY.js +0 -2
  944. package/dist/setup-DhvXyU_5.js +0 -636
  945. package/dist/setup-api-B9Y4qPgq.js +0 -29
  946. package/dist/setup-core-CdFQ6ZXC.js +0 -176
  947. package/dist/setup-core-kXUD3Kat.js +0 -171
  948. package/dist/setup-surface-BFL9WfBs.js +0 -219
  949. package/dist/setup-surface-Cxg_nSWc.js +0 -286
  950. package/dist/setup-surface-DbooMj782.js +0 -403
  951. package/dist/setup.finalize-CKxukDYi.js +0 -547
  952. package/dist/setup.gateway-config-BhEtXwaB.js +0 -250
  953. package/dist/shared-BNVKrp5y.js +0 -76
  954. package/dist/shared-CM3mnx7z.js +0 -198
  955. package/dist/shared-CfrsSVhL.js +0 -121
  956. package/dist/slash-state-2Z-om57Q.js +0 -1911
  957. package/dist/src-DAoKvK_N.js +0 -3974
  958. package/dist/startup-context-CtYAdYwd.js +0 -312
  959. package/dist/status-B2M0Imij.js +0 -3
  960. package/dist/status-Bd-BNmiE.js +0 -2
  961. package/dist/status-D6nbpHFi.js +0 -397
  962. package/dist/status-MByUxUGu.js +0 -209
  963. package/dist/status-QUjO1tkz.js +0 -2
  964. package/dist/status-all-DPa-BiHk.js +0 -498
  965. package/dist/status-erNo8YmW.js +0 -190
  966. package/dist/status-json-command-C9rbAyj-.js +0 -84
  967. package/dist/status-json-tO3CQXIQ.js +0 -14
  968. package/dist/status-runtime-shared-DmBB_gmT.js +0 -257
  969. package/dist/status-subagents.runtime-BXAZr5y0.js +0 -18
  970. package/dist/status-text-BCeYk0-q.js +0 -237
  971. package/dist/status.gateway-connection.runtime-bt35dapy.js +0 -2
  972. package/dist/status.gather-B9a-CEev.js +0 -292
  973. package/dist/status.gather-ahBLFzk6.js +0 -2
  974. package/dist/status.runtime-BrErwtfc.js +0 -2
  975. package/dist/status.scan-D2mvM4II.js +0 -65
  976. package/dist/status.scan-overview-uOOaqp1t.js +0 -379
  977. package/dist/status.scan.fast-json-C9dkN28s.js +0 -2
  978. package/dist/status.scan.fast-json-DY3Or8S4.js +0 -132
  979. package/dist/status.summary-Cf4p2BPK.js +0 -2
  980. package/dist/status.summary-DxfZCcNa.js +0 -214
  981. package/dist/subagent-announce-CyQZsAIm.js +0 -351
  982. package/dist/subagent-announce-delivery-CgdPNjMA.js +0 -726
  983. package/dist/subagent-announce-output-D1xi4Tk1.js +0 -364
  984. package/dist/subagent-control-D-O6I8Mt.js +0 -506
  985. package/dist/subagent-followup.runtime-BbA7NPAq.js +0 -68
  986. package/dist/subagent-orphan-recovery-C6_cmAyE.js +0 -305
  987. package/dist/subagent-registry-Dn_XpDh0.js +0 -1753
  988. package/dist/subagent-registry-DodFw3pu.js +0 -3
  989. package/dist/subagent-spawn-Dw5lttXp.js +0 -1005
  990. package/dist/system-cli-CSqO2Z4K.js +0 -59
  991. package/dist/targets-CMdwh9lR.js +0 -67
  992. package/dist/task-executor-DgZSfcBk.js +0 -360
  993. package/dist/task-owner-access-9c38idlo.js +0 -74
  994. package/dist/task-registry-Z-lBPkNj.js +0 -2366
  995. package/dist/task-registry-delivery-runtime-DOV4qoj4.js +0 -2
  996. package/dist/task-registry-delivery-runtime-EATr0C3C.js +0 -3
  997. package/dist/task-registry.maintenance-C1YMEwhk.js +0 -416
  998. package/dist/task-registry.maintenance-CBfaUWcp.js +0 -2
  999. package/dist/testing-CFk04o9M.js +0 -575
  1000. package/dist/text-report-QhVG354o.js +0 -587
  1001. package/dist/tool-resolution-D6V4tg-G.js +0 -90
  1002. package/dist/tools-effective-inventory-DFU7yYvD.js +0 -152
  1003. package/dist/tools-invoke-http-y6WIa3Ku.js +0 -206
  1004. package/dist/trash-rhbwNhfQ.js +0 -24
  1005. package/dist/tui-cli-BfxeO4YM.js +0 -4575
  1006. package/dist/update-cli-DaN9bvPV.js +0 -1759
  1007. package/dist/upgrade-f5dlIxir.js +0 -1226
  1008. package/dist/video-generation-task-status-yX54iO8n.js +0 -163
  1009. package/dist/wait-for-idle-before-flush-mZrBNr5z.js +0 -5986
  1010. package/dist/wizard-models-D_avLyHR.js +0 -334
@@ -0,0 +1,1237 @@
1
+ import { c as normalizeOptionalString } from "./string-coerce-DPP_aYVc.js";
2
+ import { u as normalizeE164 } from "./utils-CWrkFsp0.js";
3
+ import { t as createNonExitingRuntime } from "./runtime-DDkDH9fa.js";
4
+ import { a as shouldLogVerbose, r as logVerbose, t as danger } from "./globals-wYf9_gv5.js";
5
+ import { s as normalizeStringEntries } from "./string-normalization-Bsx26hdl.js";
6
+ import { a as loadConfig } from "./io-B1sv_bx7.js";
7
+ import { n as fireAndForgetHook } from "./fire-and-forget-C2arOOrM.js";
8
+ import { m as triggerInternalHook, n as createInternalHookEvent } from "./internal-hooks-NxTc8JXb.js";
9
+ import { i as resolveHumanDelayConfig } from "./identity-Bu-3Ph1h.js";
10
+ import { u as resolveStorePath } from "./paths-CV1IubzZ.js";
11
+ import { n as readSessionUpdatedAt } from "./store-4uu5L7Eg.js";
12
+ import { n as sleepWithAbort, t as computeBackoff } from "./backoff-BvquQSEM.js";
13
+ import { s as kindFromMime, t as detectMime } from "./mime-CcQ10POh.js";
14
+ import { n as estimateBase64DecodedBytes } from "./base64-Csgq08n5.js";
15
+ import { i as deliverTextOrMediaReply, m as resolveSendableOutboundReplyParts } from "./reply-payload-BXIttfWn.js";
16
+ import { l as saveMediaBuffer } from "./store-Cx3H9G95.js";
17
+ import { n as resolveChannelGroupRequireMention, t as resolveChannelGroupPolicy } from "./group-policy-DGKeOrio.js";
18
+ import { c as resolveTextChunkLimit, o as chunkTextWithMode, s as resolveChunkMode } from "./chunk-CW9jTwFk.js";
19
+ import { i as toInternalMessageReceivedContext } from "./message-hook-mappers-DCUyaj_4.js";
20
+ import { i as resolveAgentRoute } from "./resolve-route-B93lOfb3.js";
21
+ import { i as enqueueSystemEvent } from "./system-events-_jEHE6Qp.js";
22
+ import "./text-runtime-DuYzmNnc.js";
23
+ import "./routing-DB6Hmk1m.js";
24
+ import { t as hasControlCommand } from "./command-detection-BkVdiL8h.js";
25
+ import { a as createReplyDispatcherWithTyping, t as dispatchInboundMessage } from "./dispatch-D0xiJ6Up.js";
26
+ import { t as finalizeInboundContext } from "./inbound-context-Bxj_x0Hk.js";
27
+ import { a as resolveEnvelopeFormatOptions, i as formatInboundFromLabel, r as formatInboundEnvelope } from "./envelope-DpEKPYSr.js";
28
+ import { n as buildMentionRegexes, r as matchesMentionPatterns } from "./mentions-C-JNJVfc.js";
29
+ import { n as resolveControlCommandGate } from "./command-gating-D0zXk0d9.js";
30
+ import { n as resolveInboundMentionDecision } from "./mention-gating-Bgiswwan.js";
31
+ import { t as recordInboundSession } from "./session-mvNOpI90.js";
32
+ import { d as upsertChannelPairingRequest } from "./pairing-store-CpOJU8_T.js";
33
+ import { a as warnMissingProviderGroupPolicyFallbackOnce, n as resolveAllowlistProviderRuntimeGroupPolicy, r as resolveDefaultGroupPolicy } from "./runtime-group-policy-DNgAogyB.js";
34
+ import { c as resolvePinnedMainDmOwnerFromAllowlist, n as readStoreAllowFromForDmPolicy, o as resolveDmGroupAccessWithLists, t as DM_GROUP_ACCESS_REASON } from "./dm-policy-shared-LTP5i_RB.js";
35
+ import { a as buildPendingHistoryContextFromMap, s as clearHistoryEntriesIfEnabled, u as recordPendingHistoryEntryIfEnabled } from "./history-B7vVBAzi.js";
36
+ import "./reply-history-DQUk43L2.js";
37
+ import { n as logInboundDrop, r as logTypingFailure } from "./logging-B9oda4JP.js";
38
+ import { t as createChannelReplyPipeline } from "./channel-reply-pipeline-BhXptCqT.js";
39
+ import { t as createChannelPairingChallengeIssuer } from "./channel-pairing-BASPO7Ej.js";
40
+ import "./runtime-env-8CtXx1D-.js";
41
+ import { t as evaluateSupplementalContextVisibility } from "./context-visibility-GLSC6eV8.js";
42
+ import { t as resolveChannelContextVisibilityMode } from "./context-visibility-BxbDYXYz.js";
43
+ import "./config-runtime-B6QGVc3G.js";
44
+ import "./reply-runtime-2EGTfk-1.js";
45
+ import { t as waitForTransportReady } from "./transport-ready-BMP3Wuuo.js";
46
+ import "./infra-runtime-D08WIqN2.js";
47
+ import "./media-runtime-C6Hv9GjU.js";
48
+ import "./conversation-runtime-B1QZ-DEM.js";
49
+ import "./agent-runtime-D1LIGcNj.js";
50
+ import "./security-runtime-D9DeFbgo.js";
51
+ import "./hook-runtime-N0EPjGPR.js";
52
+ import "./command-auth-DO32coey.js";
53
+ import "./channel-feedback-DQyHfoZU.js";
54
+ import { n as shouldDebounceTextInbound, t as createChannelInboundDebouncer } from "./channel-inbound-D_tebgdx.js";
55
+ import { i as resolveSignalAccount } from "./accounts-BjIbbo5F.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-pbrJGlpK.js";
57
+ import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-Bl0d_7ak.js";
58
+ import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-D-EgB64m.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 };