@nikolasp98/minion 2026.6.13-dev.20260616005057 → 2026.6.14-dev

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 (357) hide show
  1. package/dist/{acp-cli-DP4J_Ona.js → acp-cli-CprFYllO.js} +4 -4
  2. package/dist/{acp-cli-BJz7VXUf.js → acp-cli-DJXj7cZX.js} +4 -4
  3. package/dist/{agent-PEnTO2ts.js → agent-J4Hr7pxJ.js} +11 -11
  4. package/dist/{agent-step-6p_-m7Pp.js → agent-step-CUlu2Ce1.js} +2 -2
  5. package/dist/{agent-step-Cb-RMAAr.js → agent-step-WEpy2gjj.js} +2 -2
  6. package/dist/{agents-DeL1aXe_.js → agents-DRnHlywG.js} +7 -7
  7. package/dist/{agents-list-tool-Bv0BCh8z.js → agents-list-tool-Bsz2ydSo.js} +3 -3
  8. package/dist/{agents-list-tool-BkxmyIzo.js → agents-list-tool-C41TUO8C.js} +3 -3
  9. package/dist/{agents.config-BvBUxFAh.js → agents.config-D-8oLvTL.js} +10 -10
  10. package/dist/{audit-OrjXI0x7.js → audit-CK0BMUWm.js} +9 -9
  11. package/dist/{audit-Cx0j9Y4O.js → audit-bAFC5ey-.js} +9 -9
  12. package/dist/{auth-DA9L4qbt.js → auth-2GwvV8-B.js} +1 -1
  13. package/dist/{auth-B37vkorh.js → auth-CFiHbm6v.js} +1 -1
  14. package/dist/{auth-choice-DVysKhxz.js → auth-choice-BwNqfULD.js} +4 -4
  15. package/dist/{auth-choice-DIukgwm3.js → auth-choice-xdIz-tqo.js} +4 -4
  16. package/dist/{banner-Bgpdftxs.js → banner-D8U02GWE.js} +1 -1
  17. package/dist/{browser-cli-Cr2Mwp3A.js → browser-cli-B4S7q1vd.js} +3 -3
  18. package/dist/{browser-cli-C8OyqA1w.js → browser-cli-DWWl_3f8.js} +3 -3
  19. package/dist/{browser-tool-DVemyynL.js → browser-tool-C095OFad.js} +7 -7
  20. package/dist/{browser-tool-BspbeG8E.js → browser-tool-C7x8YFTn.js} +7 -7
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/boot-md/handler.js +135 -4
  23. package/dist/bundled/kg-message-sync/handler.js +3 -2
  24. package/dist/{call-D6dWC0ix.js → call-BH1OgnGt.js} +2 -2
  25. package/dist/{call-CYh-D_wt.js → call-DaiN21tT.js} +2 -2
  26. package/dist/{call-CxVJ6r_M.js → call-lVSGXvNm.js} +1 -1
  27. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  28. package/dist/{canvas-tool-D7KYTzsF.js → canvas-tool-BCySjCkU.js} +2 -2
  29. package/dist/{canvas-tool-BBPLEYfd.js → canvas-tool-b9umP1PL.js} +2 -2
  30. package/dist/{channel-options-ULpXvAFC.js → channel-options-BhSTHUdE.js} +1 -1
  31. package/dist/{channel-options-Bx9eGkuS.js → channel-options-ZnqM-XwR.js} +1 -1
  32. package/dist/{channel-web-B_kMFvFL.js → channel-web-mnjuaCAM.js} +132 -8
  33. package/dist/{channels-cli-9_3iWykD.js → channels-cli-1YxtVy6F.js} +9 -9
  34. package/dist/{channels-cli-BUo7AzlY.js → channels-cli-DRBRx9Nm.js} +9 -9
  35. package/dist/{chrome-DfAapwDD.js → chrome-CZH2epNE.js} +1 -1
  36. package/dist/{chrome-4OyRismj.js → chrome-CayJQXHk.js} +2 -2
  37. package/dist/{chrome-CdpueVZf.js → chrome-Kb-zN-1U.js} +2 -2
  38. package/dist/{clawbot-cli-DukEajNp.js → clawbot-cli-C5wgbNjN.js} +1 -1
  39. package/dist/{clawbot-cli-dZHqH_uv.js → clawbot-cli-ryT4wRfh.js} +1 -1
  40. package/dist/cli/daemon-cli.js +1 -1
  41. package/dist/{cli-DtlENMyC.js → cli-BNAKtXkb.js} +3 -3
  42. package/dist/{cli-BP96wWSl.js → cli-CdMtUWnf.js} +3 -3
  43. package/dist/{client-ifPZd1Mo.js → client-4GINRkn3.js} +4 -4
  44. package/dist/{client-DqvSQpVJ.js → client-A1Af97gJ.js} +4 -4
  45. package/dist/{client-BTQ9yMJG.js → client-DhI_slxY.js} +4 -4
  46. package/dist/{command-registry-ib4Mwp-Q.js → command-registry-CWDswhuz.js} +14 -14
  47. package/dist/{commands-registry-DcI9Gaue.js → commands-registry-BTS92V47.js} +2 -2
  48. package/dist/{commands-registry-COk1krDI.js → commands-registry-DX4D41A4.js} +2 -2
  49. package/dist/{completion-cli-CJ5FU6qE.js → completion-cli-DNXaHtYm.js} +2 -2
  50. package/dist/{completion-cli-ceLZWoe-.js → completion-cli-DlHakkCA.js} +1 -1
  51. package/dist/{config-CC7cX9PE.js → config-Bad23vig.js} +3 -2
  52. package/dist/{config-BuakXn6K.js → config-CJnHZ6tT.js} +2 -2
  53. package/dist/{config-LTmlN5Qb.js → config-ULIrsUrF.js} +2 -2
  54. package/dist/{config-cli-B1-BphBE.js → config-cli-COzM5Son.js} +4 -4
  55. package/dist/{config-cli-Bmz1qD0n.js → config-cli-CzpyxdLG.js} +4 -4
  56. package/dist/{config-guard-CnsNWuUc.js → config-guard-BBG7CM4Z.js} +3 -3
  57. package/dist/config-guard-C1FAfS4d.js +2 -0
  58. package/dist/{config-validation-TmO1WOdo.js → config-validation-BKuA0mkd.js} +2 -2
  59. package/dist/{config-validation-DRKfuI2k.js → config-validation-UxIy2sWe.js} +2 -2
  60. package/dist/{configure-CI08Vc3N.js → configure-52UcMwXn.js} +16 -16
  61. package/dist/{configure-CJ7wsb04.js → configure-CguZbLMl.js} +16 -16
  62. package/dist/{cron-cli-D9aOB9iS.js → cron-cli-36Cz_NrS.js} +1 -1
  63. package/dist/{cron-cli-Tb-CltmW.js → cron-cli-DEw9bDao.js} +2 -2
  64. package/dist/{cron-tool-DVsZcX7C.js → cron-tool-CnuvVvgq.js} +5 -5
  65. package/dist/{cron-tool-B6AITXTV.js → cron-tool-X8kbYPMV.js} +5 -5
  66. package/dist/{daemon-cli-Dr53PPUT.js → daemon-cli-Ca2eoh9D.js} +10 -10
  67. package/dist/{daemon-cli-DIPftZaz.js → daemon-cli-hj5oZeAU.js} +10 -10
  68. package/dist/daemon-cli.js +3 -2
  69. package/dist/daemon-install-helpers-D8fSRI0T.js +2 -0
  70. package/dist/daemon-install-helpers-DE1SJAht.js +2 -0
  71. package/dist/{daemon-runtime-BwbyjwgT.js → daemon-runtime-C0UWsej_.js} +1 -1
  72. package/dist/{daemon-runtime-CVb97tWV.js → daemon-runtime-Dy-OUc18.js} +1 -1
  73. package/dist/{deliver-DxTN-A1N.js → deliver-BY_ZOJRJ.js} +5 -5
  74. package/dist/{deliver-DMRFfoDA.js → deliver-C1bBl42n.js} +3 -3
  75. package/dist/{deliver-CmpPap4Z.js → deliver-DWPdKF44.js} +4 -4
  76. package/dist/{deps-D83C1s-r.js → deps-DKuRLHBG.js} +6 -6
  77. package/dist/{devices-cli-DBSEFmaE.js → devices-cli-BO2sNHNT.js} +1 -1
  78. package/dist/{devices-cli-CQhmBwEj.js → devices-cli-R0IkbrZu.js} +1 -1
  79. package/dist/{diagnostic-CnZFcQR3.js → diagnostic-Cl3uEh1I.js} +2 -2
  80. package/dist/{diagnostic-session-state-BxU1ZI5l.js → diagnostic-session-state-Dq0GGJN-.js} +1 -1
  81. package/dist/{directory-cli-DibmZ5ey.js → directory-cli-CnUwk0iU.js} +2 -2
  82. package/dist/{directory-cli-BeXuldql.js → directory-cli-DIbzMmUN.js} +2 -2
  83. package/dist/{dispatcher-DQ2m6mgs.js → dispatcher-MqSl1Kll.js} +7 -7
  84. package/dist/{dispatcher-DynUKUVb.js → dispatcher-c-KZCtGa.js} +7 -7
  85. package/dist/{dm-policy-shared-ubSvwCKC.js → dm-policy-shared-CLiep-rz.js} +1 -1
  86. package/dist/{dm-policy-shared-CVU8uMia.js → dm-policy-shared-yrgSr7PQ.js} +1 -1
  87. package/dist/{dns-cli-CpPLICgc.js → dns-cli-CdL5VTsQ.js} +2 -2
  88. package/dist/{dns-cli-DQmDQGJD.js → dns-cli-uEzvZGuy.js} +2 -2
  89. package/dist/{doctor-completion-CSkyLD7V.js → doctor-completion-BIO1ml-4.js} +1 -1
  90. package/dist/doctor-completion-C-6V4bOL.js +2 -0
  91. package/dist/doctor-completion-Da18q6uh.js +2 -0
  92. package/dist/{doctor-completion-BUuOVbEe.js → doctor-completion-FE-HOhGA.js} +1 -1
  93. package/dist/{doctor-config-flow-e-GUrrcd.js → doctor-config-flow-CmGTYs67.js} +4 -4
  94. package/dist/{doctor-config-flow-DkkI_6eU.js → doctor-config-flow-I-c9EB6e.js} +4 -4
  95. package/dist/entry.js +1 -1
  96. package/dist/{exec-approvals-cli-DKMCbTi0.js → exec-approvals-cli-BB6UI3mC.js} +2 -2
  97. package/dist/{exec-approvals-cli-DQqE3Z3x.js → exec-approvals-cli-DMlA8VUt.js} +2 -2
  98. package/dist/extensionAPI.d.ts +8 -0
  99. package/dist/extensionAPI.js +19 -19
  100. package/dist/{gateway-XwkRpioa.js → gateway-C2etf3RM.js} +2 -2
  101. package/dist/{gateway-D8CGtxOO.js → gateway-CHsNxUxJ.js} +3 -3
  102. package/dist/{gateway-DAjyboqT.js → gateway-CzCJQJHj.js} +3 -3
  103. package/dist/{gateway-cli-C99eDbLJ.js → gateway-cli-B1dfOPMr.js} +159 -46
  104. package/dist/{gateway-cli-CufbZkvE.js → gateway-cli-CDqZzGEK.js} +155 -42
  105. package/dist/{gateway-rpc-CBgUGaIT.js → gateway-rpc-BorRW-tW.js} +1 -1
  106. package/dist/{gateway-rpc-B2bEXQvS.js → gateway-rpc-DoWGDu53.js} +1 -1
  107. package/dist/{gateway-tool-DHwe5oPU.js → gateway-tool-CuLoIl7U.js} +3 -3
  108. package/dist/{gateway-tool-DXGLz00F.js → gateway-tool-uPKHvWcL.js} +3 -3
  109. package/dist/{github-copilot-auth-CdnH1hdK.js → github-copilot-auth-D2cXK0_7.js} +2 -2
  110. package/dist/{github-copilot-auth-Crooi5Y_.js → github-copilot-auth-Ddd7lvDL.js} +2 -2
  111. package/dist/{gmail-D6-XKnAr.js → gmail-D7l5YfAj.js} +1 -1
  112. package/dist/{gmail-8pT1acHq.js → gmail-DQ48jQY-.js} +1 -1
  113. package/dist/{health-D13lARNk.js → health-CH0w5W34.js} +8 -8
  114. package/dist/{health-JsKFSsn1.js → health-D6n9mIOb.js} +8 -8
  115. package/dist/{hooks-cli-BAURYzK4.js → hooks-cli-CGWUEOpl.js} +2 -2
  116. package/dist/{hooks-cli-BZihwv4D.js → hooks-cli-Qo6rhZ-q.js} +2 -2
  117. package/dist/{image-tool-Bx9-EXs8.js → image-tool-B4fKiKu2.js} +2 -2
  118. package/dist/{image-tool-Cd5IskFp.js → image-tool-cib2VJkE.js} +2 -2
  119. package/dist/index.d.ts +8 -0
  120. package/dist/index.js +11 -11
  121. package/dist/{io-CVtEEw15.js → io-D2T0KwYe.js} +2 -2
  122. package/dist/{io-D-A50eEY.js → io-DWhsHb_h.js} +2 -2
  123. package/dist/{ir-CjnkTlXx.js → ir-_p6R0VXT.js} +2 -2
  124. package/dist/{knowledge-graph-BQ0IkQrx.js → knowledge-graph-BKiuRnet.js} +1 -1
  125. package/dist/{lifecycle-core-DRyfeoHz.js → lifecycle-core-DNqSLiR9.js} +3 -3
  126. package/dist/{lifecycle-core-OBQT0mbb.js → lifecycle-core-Dv6Y2s-1.js} +3 -3
  127. package/dist/{logs-cli-L-JVGZOR.js → logs-cli-CXmi40WH.js} +2 -2
  128. package/dist/{logs-cli-2Fo02fIm.js → logs-cli-F-RAYI31.js} +2 -2
  129. package/dist/{manager-Clj2P5oZ.js → manager-F7rDzi-_.js} +1 -1
  130. package/dist/{memory-cli-G0hv_Gmf.js → memory-cli-BVkodFu6.js} +3 -3
  131. package/dist/{memory-cli-D8Er7V0H.js → memory-cli-BYpHkFGw.js} +3 -3
  132. package/dist/{message-action-runner-Co0sFeZl.js → message-action-runner-CHrxSkge.js} +8 -8
  133. package/dist/{message-action-runner-CDcb9ZSl.js → message-action-runner-Dvk8IFpi.js} +8 -8
  134. package/dist/{message-tool-Cpv85ACB.js → message-tool-Be2kTIap.js} +6 -6
  135. package/dist/{message-tool-Wwu1VXSD.js → message-tool-CiPoXKtK.js} +6 -6
  136. package/dist/{model-catalog-UxIUJQdE.js → model-catalog-DXonO3lD.js} +3 -3
  137. package/dist/{model-catalog-BQ0P8gLB.js → model-catalog-DdYPZDj0.js} +3 -3
  138. package/dist/{model-fallback-GK-J1AGd.js → model-fallback-DGrCGjis.js} +2 -2
  139. package/dist/{model-fallback-CYVINNRG.js → model-fallback-DLcFpp9D.js} +3 -3
  140. package/dist/{model-fallback-D00NNF__.js → model-fallback-p7Wjn4Kg.js} +2 -2
  141. package/dist/{model-picker-C0e89Um1.js → model-picker-CyF7R1Tk.js} +2 -2
  142. package/dist/{model-picker-B5DrJESl.js → model-picker-DCN-zikS.js} +2 -2
  143. package/dist/{models-B_PYxEnN.js → models-C5NIvGQG.js} +12 -12
  144. package/dist/{models-cli-Djo-8fEb.js → models-cli-B-je-Fu6.js} +12 -12
  145. package/dist/{models-cli-DPAVCRyr.js → models-cli-C8GHr5Hc.js} +2 -2
  146. package/dist/{models-config-5NqQ_XUd.js → models-config-DFTdHeZz.js} +2 -2
  147. package/dist/{models-config-BGAVUHBm.js → models-config-Dof8o9K-.js} +2 -2
  148. package/dist/{node-cli-BbMM6Mbr.js → node-cli-D0BhKuQM.js} +7 -7
  149. package/dist/{node-cli-Cavz9Hch.js → node-cli-DhI2IgpK.js} +7 -7
  150. package/dist/{nodes-cli-aUzL2t9c.js → nodes-cli-Do4SOfRe.js} +5 -5
  151. package/dist/{nodes-cli-BfwMMJih.js → nodes-cli-NTSdtNbM.js} +5 -5
  152. package/dist/{nodes-tool-C59Q87xJ.js → nodes-tool-B542JltK.js} +3 -3
  153. package/dist/{nodes-tool-7O7-dw4w.js → nodes-tool-gc0MeY8U.js} +3 -3
  154. package/dist/{nodes-utils-BsSVixZ9.js → nodes-utils-BQ7_niGR.js} +1 -1
  155. package/dist/{nodes-utils-BJoSjLjl.js → nodes-utils-DnVqS0gT.js} +1 -1
  156. package/dist/{nodes-utils-DSvzVR8T.js → nodes-utils-ESP44qeB.js} +1 -1
  157. package/dist/{onboard-BRU-SKOw.js → onboard-BrlNrDZR.js} +9 -9
  158. package/dist/{onboard-BwO9Ie1d.js → onboard-DMdVqbJu.js} +9 -9
  159. package/dist/{onboard-channels-DCwvYauq.js → onboard-channels-B1odq8Pa.js} +1 -1
  160. package/dist/{onboard-channels-CVnYH8gu.js → onboard-channels-Bc0EWbkF.js} +1 -1
  161. package/dist/{onboard-channels-6p1gbH80.js → onboard-channels-CUT7TFAB.js} +1 -1
  162. package/dist/{onboard-channels-rJhMZ8AM.js → onboard-channels-DOws7yCU.js} +1 -1
  163. package/dist/{onboard-custom-dJHWNrRJ.js → onboard-custom-BTix-4gH.js} +2 -2
  164. package/dist/{onboard-custom-DWUigRrH.js → onboard-custom-BlENe6tw.js} +1 -1
  165. package/dist/{onboard-custom-DIrTI6rX.js → onboard-custom-D9bbjX37.js} +2 -2
  166. package/dist/{onboard-custom-Yhse6209.js → onboard-custom-vNW9mjEy.js} +1 -1
  167. package/dist/{onboard-helpers-BEsjxRw8.js → onboard-helpers-CdkG3FJh.js} +5 -5
  168. package/dist/{onboard-helpers-Dq-6RZCh.js → onboard-helpers-DOL7XT5w.js} +5 -5
  169. package/dist/{onboard-helpers-BQrKyhUL.js → onboard-helpers-DdV4FalP.js} +1 -1
  170. package/dist/{onboard-helpers-CKdb3YXD.js → onboard-helpers-DvYmk4Z3.js} +1 -1
  171. package/dist/{onboard-remote-CCw6QlFF.js → onboard-remote-BE9WGIMB.js} +1 -1
  172. package/dist/{onboard-remote-D1-d5AdH.js → onboard-remote-CuhFGRCe.js} +1 -1
  173. package/dist/{onboard-skills-C7XbKulA.js → onboard-skills-B_t8vkkr.js} +1 -1
  174. package/dist/{onboard-skills-DRJmz0c9.js → onboard-skills-C208Z9aR.js} +1 -1
  175. package/dist/{onboarding-CGCKb6u2.js → onboarding-CBci11Hg.js} +11 -11
  176. package/dist/{onboarding-BbAiaEHF.js → onboarding-wvCvkHuu.js} +11 -11
  177. package/dist/{onboarding.finalize-ChBMamUq.js → onboarding.finalize-BpeG_LfA.js} +9 -9
  178. package/dist/{onboarding.finalize-CAvSZ2H1.js → onboarding.finalize-IotPPzAe.js} +9 -9
  179. package/dist/{onboarding.gateway-config-DFxGJ2jp.js → onboarding.gateway-config-CwSyOHdM.js} +3 -3
  180. package/dist/{onboarding.gateway-config-DqgGBey1.js → onboarding.gateway-config-D7bpPGDg.js} +3 -3
  181. package/dist/{outbound-send-deps-B7qBgQiK.js → outbound-send-deps-BiCPa0bu.js} +6 -6
  182. package/dist/{outbound-session-CcpryL9F.js → outbound-session-bdqdT6c0.js} +3 -3
  183. package/dist/{outbound-session-CdO9UzgN.js → outbound-session-gwItY5Kf.js} +3 -3
  184. package/dist/{pairing-cli-TeWnhIPQ.js → pairing-cli-CHcYti9d.js} +2 -2
  185. package/dist/{pairing-cli-DDc0_C_E.js → pairing-cli-GMcpfddm.js} +2 -2
  186. package/dist/{pi-embedded-helpers-BH25YoLD.js → pi-embedded-helpers-BFVQgHYJ.js} +1 -1
  187. package/dist/{pi-embedded-helpers-B8mze-Lv.js → pi-embedded-helpers-D6pGhqgI.js} +1 -1
  188. package/dist/{pi-embedded-helpers-B1OYYCW7.js → pi-embedded-helpers-RpDIkqxG.js} +5 -5
  189. package/dist/{pi-embedded-utils-BpMCwgcp.js → pi-embedded-utils-BEjLqKiL.js} +1 -1
  190. package/dist/{pi-embedded-utils-R1tMMBzl.js → pi-embedded-utils-Dl07kvbm.js} +1 -1
  191. package/dist/{pi-embedded-utils-ZCtCNM0x.js → pi-embedded-utils-g5GthbqM.js} +1 -1
  192. package/dist/{pi-model-discovery-oU6F2UHI.js → pi-model-discovery-CQ80N8DY.js} +1 -1
  193. package/dist/{pi-tools.policy-CwWtmzys.js → pi-tools.policy-CixzOy4m.js} +3 -3
  194. package/dist/{plugin-registry-5E05Vw-j.js → plugin-registry-C7Y1ktn8.js} +3 -3
  195. package/dist/{plugin-registry-AV888_M1.js → plugin-registry-DG11DxET.js} +3 -3
  196. package/dist/plugin-sdk/channels/discord.js +5 -3
  197. package/dist/plugin-sdk/channels/imessage.js +5 -3
  198. package/dist/plugin-sdk/channels/line.js +5 -3
  199. package/dist/plugin-sdk/channels/signal.js +5 -3
  200. package/dist/plugin-sdk/channels/slack.js +5 -3
  201. package/dist/plugin-sdk/channels/telegram.js +5 -3
  202. package/dist/plugin-sdk/channels/whatsapp.js +133 -4
  203. package/dist/plugin-sdk/config/types.gateway.d.ts +8 -0
  204. package/dist/plugin-sdk/config/zod-schema.d.ts +2 -0
  205. package/dist/plugin-sdk/core.js +5 -3
  206. package/dist/plugin-sdk/index.js +133 -4
  207. package/dist/plugin-sdk/infra/message-ledger-types.d.ts +6 -0
  208. package/dist/plugin-sdk/web/inbound/history-import.d.ts +58 -0
  209. package/dist/{plugins-cli-DKuHtd6k.js → plugins-cli-B33-EmSv.js} +4 -4
  210. package/dist/{plugins-cli-CSHWNA4i.js → plugins-cli-BqzvGR-a.js} +4 -4
  211. package/dist/{program-CJE49XZ_.js → program-DFexBhzE.js} +7 -7
  212. package/dist/{program-context-Cm9d1Ibw.js → program-context-BIlin27i.js} +42 -42
  213. package/dist/{prompt-select-styled-D6sL58iN.js → prompt-select-styled-D9INOuHo.js} +17 -17
  214. package/dist/{prompt-select-styled-BQDNutib.js → prompt-select-styled-DZxjZuQr.js} +17 -17
  215. package/dist/{push-apns-DedcmFqx.js → push-apns-BjSGKBDn.js} +1 -1
  216. package/dist/{push-apns-DkBRxVLm.js → push-apns-Ce38yX-Q.js} +1 -1
  217. package/dist/{pw-ai-Ch7V2uBP.js → pw-ai-B_yVsa7Y.js} +2 -2
  218. package/dist/{pw-ai-CJI-S6iU.js → pw-ai-C3UXWAMi.js} +2 -2
  219. package/dist/{pw-ai-Byq2KZPR.js → pw-ai-DvZZMf9c.js} +2 -2
  220. package/dist/{pw-session-CBTjloGV.js → pw-session-B-QP5UUg.js} +1 -1
  221. package/dist/{pw-session-OK6cjN2H.js → pw-session-Bn2nA7mW.js} +1 -1
  222. package/dist/{pw-session-BiBk3qUP.js → pw-session-ChISCyZS.js} +1 -1
  223. package/dist/{qr-cli-D9TLooTU.js → qr-cli-Bp8ZDWRE.js} +2 -2
  224. package/dist/{qr-cli-BxEFrAPn.js → qr-cli-CNBJBiSg.js} +2 -2
  225. package/dist/{register.agent-CBKnlS1O.js → register.agent-1ElLtqxB.js} +11 -11
  226. package/dist/{register.agent-DIkMroL_.js → register.agent-BCCRMjBM.js} +8 -8
  227. package/dist/{register.channel-DIjhdC6b.js → register.channel-CDRcmrW4.js} +2 -2
  228. package/dist/{register.channel-C3F74UPj.js → register.channel-G0ZEQLvo.js} +2 -2
  229. package/dist/{register.configure-CwNyuB-d.js → register.configure-Br7l1eFA.js} +1 -1
  230. package/dist/{register.configure-C5bHtyDm.js → register.configure-uiB0IsSQ.js} +1 -1
  231. package/dist/{register.drone-Dq_9YsHD.js → register.drone-0RImKhAz.js} +1 -1
  232. package/dist/{register.drone-C61YOsmm.js → register.drone-BVF23SAt.js} +1 -1
  233. package/dist/{register.maintenance-9IDvSnrm.js → register.maintenance-D9g-yUsg.js} +5 -5
  234. package/dist/{register.maintenance-DwwwbhPq.js → register.maintenance-eWyQPi33.js} +5 -5
  235. package/dist/{register.message-CEMhgerC.js → register.message-BrCxdS2X.js} +7 -7
  236. package/dist/{register.message-eQmyz2Rn.js → register.message-DUSrwutp.js} +8 -8
  237. package/dist/{register.onboard-DuR9UX8a.js → register.onboard-CrTJnVfV.js} +1 -1
  238. package/dist/{register.onboard-5F0oL3Xh.js → register.onboard-DIo41tyc.js} +1 -1
  239. package/dist/{register.setup-BAbuGtGh.js → register.setup-B_rBQxV8.js} +4 -4
  240. package/dist/{register.setup-BQxLg4sP.js → register.setup-CYWQ8_Yg.js} +4 -4
  241. package/dist/{register.status-health-sessions-QeKgYgH7.js → register.status-health-sessions-CJla4eSY.js} +4 -4
  242. package/dist/{register.status-health-sessions-CVhnOmxp.js → register.status-health-sessions-DEa6PmDF.js} +6 -6
  243. package/dist/{register.subclis-CVkH9x0b.js → register.subclis-Dnq_ylof.js} +29 -29
  244. package/dist/{reply-Dqrd2V9O.js → reply-D0CQyMj1.js} +40 -39
  245. package/dist/{reply-payloads-COhF33IG.js → reply-payloads-CSe-fnoQ.js} +2 -2
  246. package/dist/{reply-payloads-CeNOVKjP.js → reply-payloads-Doc7XJEA.js} +2 -2
  247. package/dist/{reply-prefix-CSK_TuNz.js → reply-prefix-Bf6xFewe.js} +1 -1
  248. package/dist/{reply-prefix-CNleAyhT.js → reply-prefix-Dc5AW5Xm.js} +1 -1
  249. package/dist/{resolve-route-kT_uaP-U.js → resolve-route-Bxvuje16.js} +1 -1
  250. package/dist/{resolve-route-B0Rm8xXc.js → resolve-route-x8nX2Bvi.js} +2 -2
  251. package/dist/{routes-DHKHynlX.js → routes-CoNeVaLo.js} +4 -4
  252. package/dist/{routes-CD-iKvqS.js → routes-DkOoca7t.js} +4 -4
  253. package/dist/{rpc-B0kFFPVT.js → rpc-BHHw6gvp.js} +1 -1
  254. package/dist/{rpc-_7Pr2eDr.js → rpc-DTW7KUND.js} +1 -1
  255. package/dist/{run-main-SipggFKv.js → run-main-E2vGCKLR.js} +20 -20
  256. package/dist/{sandbox-CEIhnto9.js → sandbox-CGRbJpDU.js} +7 -7
  257. package/dist/{sandbox-BdOu4KVm.js → sandbox-CHH3MkNd.js} +7 -7
  258. package/dist/{sandbox-cli-C4ooKOWU.js → sandbox-cli-DjkEUwwk.js} +4 -4
  259. package/dist/{sandbox-cli-Difs5F4e.js → sandbox-cli-OEmHLhQL.js} +4 -4
  260. package/dist/{security-cli-Bci4EeeP.js → security-cli-DL6wp1MI.js} +3 -3
  261. package/dist/{security-cli-C62ul_eD.js → security-cli-qLsZmwtX.js} +3 -3
  262. package/dist/{send-CuYyga8I.js → send-B8eQkbyo.js} +2 -2
  263. package/dist/{send-avVy6uK7.js → send-Bz-RkmpO.js} +2 -2
  264. package/dist/{send-z4xPCsJY.js → send-CCuZYSz3.js} +2 -2
  265. package/dist/{send-Cn2WqmTd.js → send-CKeIogyK.js} +3 -3
  266. package/dist/{send-DVcxTY_H.js → send-CN13UpNn.js} +2 -2
  267. package/dist/{send-BepCzJYd.js → send-CngzhczN.js} +2 -2
  268. package/dist/{send-W-hHD5eL.js → send-DmxWOwB1.js} +2 -2
  269. package/dist/{send-BQPSwhBT.js → send-Dy5OuEh7.js} +2 -2
  270. package/dist/{send-D8-tldj_.js → send-Li3zMEsA.js} +3 -3
  271. package/dist/{server-context-BICvBbGc.js → server-context-BLCsEJmC.js} +7 -7
  272. package/dist/{server-context-DpZErGLi.js → server-context-CyRjTQlV.js} +7 -7
  273. package/dist/{server-context-BTWDFMTA.js → server-context-DKIIU2b6.js} +5 -5
  274. package/dist/{server-node-events-B072FzD_.js → server-node-events-DRsJK9ry.js} +10 -10
  275. package/dist/{server-node-events-BWAwg_0g.js → server-node-events-K-ULgWe3.js} +8 -8
  276. package/dist/{session-status-tool-CnAckB3x.js → session-status-tool-_pn0YBwS.js} +7 -7
  277. package/dist/{session-status-tool-DOpFvjYk.js → session-status-tool-fZyi-JB4.js} +6 -6
  278. package/dist/{session-utils-CP3GET7t.js → session-utils-JpLf3m4T.js} +4 -4
  279. package/dist/{sessions-BRyY_YWZ.js → sessions-CT7bhDNg.js} +4 -4
  280. package/dist/{sessions-DbpbwujI.js → sessions-CeClbleZ.js} +1 -1
  281. package/dist/{sessions-C1gkxVIX.js → sessions-DYp3Y72l.js} +3 -3
  282. package/dist/{sessions-BHARk7ho.js → sessions-DlMPB0jU.js} +3 -3
  283. package/dist/{sessions-helpers-CnGqfjYQ.js → sessions-helpers-B4-7MIpM.js} +3 -3
  284. package/dist/{sessions-helpers-DcUcDQgd.js → sessions-helpers-CtUSER6R.js} +3 -3
  285. package/dist/{sessions-helpers-B7uhdH7O.js → sessions-helpers-DpSgUfas.js} +3 -3
  286. package/dist/{sessions-history-tool-D14AQQHe.js → sessions-history-tool-Bh9spkpj.js} +5 -5
  287. package/dist/{sessions-history-tool-2u4r6XlF.js → sessions-history-tool-dLSlgm-R.js} +5 -5
  288. package/dist/{sessions-list-tool-BwnuWjlC.js → sessions-list-tool-CvZ_yxT5.js} +5 -5
  289. package/dist/{sessions-list-tool-C_zF6Avu.js → sessions-list-tool-Dr0jWvaF.js} +5 -5
  290. package/dist/{sessions-send-tool-CaqBqfcl.js → sessions-send-tool-CEJy5Ycp.js} +5 -5
  291. package/dist/{sessions-send-tool-2JuQ1lTE.js → sessions-send-tool-v4fWraD9.js} +5 -5
  292. package/dist/{sessions-spawn-tool-CXW56YQa.js → sessions-spawn-tool-CfHjjhO1.js} +1 -1
  293. package/dist/{sessions-spawn-tool-DChzHTSk.js → sessions-spawn-tool-DLFvrCQh.js} +1 -1
  294. package/dist/{shared-DTwLX0f7.js → shared-CEynHIUO.js} +2 -2
  295. package/dist/{shared-Cn7A-p1-.js → shared-CvY-toLn.js} +2 -2
  296. package/dist/{skills-cli-B9PyU1Wj.js → skills-cli-BDxwDf45.js} +2 -2
  297. package/dist/{skills-cli-3r390VC0.js → skills-cli-DRInfkS0.js} +2 -2
  298. package/dist/{status-BjZfOC7E.js → status-C2Gnsrky.js} +3 -3
  299. package/dist/{status-B3BYM8ku.js → status-CaWXyjbk.js} +12 -12
  300. package/dist/{status-C_wyWEqk.js → status-Cbd-T-8e.js} +3 -3
  301. package/dist/{status-C4WGkLwt.js → status-CtTyPHvB.js} +13 -13
  302. package/dist/{status.update-g2Odam5o.js → status.update-CYQXDEMu.js} +1 -1
  303. package/dist/{status.update-DzNqG36d.js → status.update-DNHW4Mlx.js} +1 -1
  304. package/dist/{subagent-registry-CI2lz1B1.js → subagent-registry-C4Xeveht.js} +41 -40
  305. package/dist/{subagents-tool-B4hpq0aJ.js → subagents-tool-BHb3ywK_.js} +6 -6
  306. package/dist/{subagents-tool-CmPV8Tki.js → subagents-tool-CGAEUIiu.js} +6 -6
  307. package/dist/{system-cli-Dho3HEWw.js → system-cli-B04yqmhf.js} +1 -1
  308. package/dist/{system-cli-DvyNMzv9.js → system-cli-D_OwQRD2.js} +1 -1
  309. package/dist/{systemd-hints-D5941U_j.js → systemd-hints-Dtvkhe6-.js} +1 -1
  310. package/dist/{systemd-hints-CxrVmCGx.js → systemd-hints-bD1RRy6m.js} +1 -1
  311. package/dist/{tailscale-B-h5FPXf.js → tailscale-CTwxLN7C.js} +3 -3
  312. package/dist/{tailscale-EgZafNge.js → tailscale-DztQ748s.js} +3 -3
  313. package/dist/{targets-CHPM-77r.js → targets-ClLWbDD3.js} +1 -1
  314. package/dist/{tools-CRU_xLGx.js → tools-DHQl5ndU.js} +31 -30
  315. package/dist/{tools-cli-BJ3L6KhB.js → tools-cli-BW8kXqVK.js} +3 -3
  316. package/dist/{tools-cli-qVJL8N26.js → tools-cli-Bllm2jJj.js} +3 -3
  317. package/dist/{tts-Bby-oHlS.js → tts-BIIXe002.js} +1 -1
  318. package/dist/{tts-tool-F5gDCIwK.js → tts-tool-BIGYsbDN.js} +2 -2
  319. package/dist/{tts-tool-DPv4TtWf.js → tts-tool-BSrhnCjz.js} +2 -2
  320. package/dist/{tui-DNGgK25U.js → tui-CZgCvWW1.js} +5 -5
  321. package/dist/{tui-CRfWTkML.js → tui-D-Vx6Gw3.js} +5 -5
  322. package/dist/{tui-cli-BSlR6g8a.js → tui-cli-BfrtMM0o.js} +1 -1
  323. package/dist/{tui-cli-DhGDFHkQ.js → tui-cli-Cc9b7CCN.js} +1 -1
  324. package/dist/{update-cli-nkB2ineZ.js → update-cli-Bo37T55x.js} +8 -8
  325. package/dist/{update-cli-BnH875yR.js → update-cli-tkEb6Xq8.js} +8 -8
  326. package/dist/{validation-BNYj_b3N.js → validation-CG8Ui8_v.js} +2 -1
  327. package/dist/{validation-B0-Z-cLg.js → validation-T0CNq_JP.js} +2 -1
  328. package/dist/web-CAiLxEl2.js +2 -0
  329. package/dist/{web-yj-4kmem.js → web-DADihYVj.js} +8 -8
  330. package/dist/{web-search-7l6_9MNj.js → web-search-CGUGt246.js} +4 -4
  331. package/dist/{web-search-o-C8hagw.js → web-search-D6Qi_dj3.js} +4 -4
  332. package/dist/{webhooks-cli-DQFylBGz.js → webhooks-cli-BBWQzvqb.js} +4 -4
  333. package/dist/{webhooks-cli-W8oASs2L.js → webhooks-cli-BZJlzHtN.js} +4 -4
  334. package/dist/{workspace-BLo9DwhL.js → workspace-5GvwPOFe.js} +1 -1
  335. package/dist/{workspace-dirs-pY9BxmOb.js → workspace-dirs-BchHf5Yd.js} +3 -3
  336. package/extensions/bluebubbles/index.js +2 -1
  337. package/extensions/feishu/index.js +2 -1
  338. package/extensions/flows/index.js +2 -1
  339. package/extensions/googlechat/index.js +2 -1
  340. package/extensions/irc/index.js +2 -1
  341. package/extensions/matrix/{credentials-MdwNeLfw.mjs → credentials-B1q3x-N0.mjs} +2 -1
  342. package/extensions/matrix/index.js +3 -3
  343. package/extensions/matrix/{matrix-BXJXoQAx.mjs → matrix-B9amoffh.mjs} +2 -2
  344. package/extensions/matrix/{resolve-targets-BJoLSX6e.mjs → resolve-targets-Dw7tv-7K.mjs} +2 -2
  345. package/extensions/mattermost/index.js +2 -1
  346. package/extensions/nextcloud-talk/index.js +2 -1
  347. package/extensions/wati/index.js +2 -1
  348. package/extensions/weixin/index.js +2 -1
  349. package/extensions/zalo/index.js +2 -1
  350. package/extensions/zalouser/index.js +2 -1
  351. package/package.json +3 -2
  352. package/dist/config-guard-BHEgllOj.js +0 -2
  353. package/dist/daemon-install-helpers-BcIZVHh2.js +0 -2
  354. package/dist/daemon-install-helpers-C21A9HoL.js +0 -2
  355. package/dist/doctor-completion-CMyqvrH4.js +0 -2
  356. package/dist/doctor-completion-CPaqJC6v.js +0 -2
  357. package/dist/web-DcsAoBN0.js +0 -2
@@ -10623,7 +10623,7 @@ var init_dotenv = __esmMin((() => {
10623
10623
  //#region src/version.ts
10624
10624
  var VERSION;
10625
10625
  var init_version$1 = __esmMin((() => {
10626
- VERSION = "2026.6.13-dev.20260616005057";
10626
+ VERSION = "2026.6.14-dev";
10627
10627
  }));
10628
10628
  //#endregion
10629
10629
  //#region src/config/agent-dirs.ts
@@ -15731,7 +15731,8 @@ var init_zod_schema = __esmMin((() => {
15731
15731
  channelHealthCheckMinutes: z.number().int().min(0).optional(),
15732
15732
  messageLedger: z.object({
15733
15733
  enabled: z.boolean().optional(),
15734
- dbPath: z.string().optional()
15734
+ dbPath: z.string().optional(),
15735
+ importContacts: z.boolean().optional()
15735
15736
  }).strict().optional(),
15736
15737
  memorySync: z.object({ enabled: z.boolean().optional() }).strict().optional(),
15737
15738
  personalAgentObservations: z.object({
@@ -62286,7 +62287,7 @@ function normalizeLedgerRecord(input) {
62286
62287
  const metadata = { ...input.metadata && typeof input.metadata === "object" ? input.metadata : {} };
62287
62288
  for (const [key, value] of Object.entries(input)) if (!KNOWN_KEYS.has(key) && value !== void 0) metadata[key] = value;
62288
62289
  return {
62289
- clientId: randomUUID(),
62290
+ clientId: str(input.clientId) ?? randomUUID(),
62290
62291
  direction: input.direction === "outbound" ? "outbound" : "inbound",
62291
62292
  channel: input.channel,
62292
62293
  accountId: str(input.accountId),
@@ -62309,6 +62310,7 @@ function normalizeLedgerRecord(input) {
62309
62310
  var KNOWN_KEYS, str, bool;
62310
62311
  var init_message_ledger_types = __esmMin((() => {
62311
62312
  KNOWN_KEYS = new Set([
62313
+ "clientId",
62312
62314
  "direction",
62313
62315
  "channel",
62314
62316
  "accountId",
@@ -115147,6 +115149,10 @@ async function createWaSocket(printQr, verbose, opts = {}) {
115147
115149
  maybeRestoreCredsFromBackup(authDir);
115148
115150
  const { state, saveCreds } = await useMultiFileAuthState(authDir);
115149
115151
  const { version } = await fetchLatestBaileysVersion();
115152
+ let syncFullHistory = false;
115153
+ try {
115154
+ syncFullHistory = loadConfig().gateway?.messageLedger?.importContacts === true;
115155
+ } catch {}
115150
115156
  const sock = makeWASocket({
115151
115157
  auth: {
115152
115158
  creds: state.creds,
@@ -115160,7 +115166,7 @@ async function createWaSocket(printQr, verbose, opts = {}) {
115160
115166
  "cli",
115161
115167
  VERSION
115162
115168
  ],
115163
- syncFullHistory: false,
115169
+ syncFullHistory,
115164
115170
  markOnlineOnConnect: false
115165
115171
  });
115166
115172
  sock.ev.on("creds.update", () => enqueueSaveCreds(authDir, saveCreds, sessionLogger));
@@ -115286,6 +115292,7 @@ function formatError(err) {
115286
115292
  var log$6, credsSaveQueue;
115287
115293
  var init_session = __esmMin((() => {
115288
115294
  init_command_format();
115295
+ init_config$4();
115289
115296
  init_logging$1();
115290
115297
  init_chat_trace();
115291
115298
  init_subsystem();
@@ -115748,6 +115755,76 @@ var init_fire_message_inbound = __esmMin((() => {
115748
115755
  init_hook_runner_global();
115749
115756
  }));
115750
115757
  //#endregion
115758
+ //#region src/web/inbound/history-import.ts
115759
+ /** Coerce a Baileys conversationTimestamp (number | Long-like) to ms, or null. */
115760
+ function tsToMs(value) {
115761
+ if (typeof value === "number" && Number.isFinite(value)) return value * 1e3;
115762
+ if (value && typeof value === "object" && typeof value.toNumber === "function") {
115763
+ const n = value.toNumber();
115764
+ return Number.isFinite(n) ? n * 1e3 : null;
115765
+ }
115766
+ return null;
115767
+ }
115768
+ function contactName(c) {
115769
+ return (c.name || c.notify || c.verifiedName || c.username || "").trim() || void 0;
115770
+ }
115771
+ /**
115772
+ * Record one idempotent inbound shell row per importable 1:1 person, drawn from
115773
+ * the union of `contacts` and `chats`. Returns the number of distinct people
115774
+ * recorded this call.
115775
+ */
115776
+ function importWhatsAppPeopleToLedger(args) {
115777
+ const e164Of = (jid) => jid ? args.jidToE164(jid) : null;
115778
+ const names = /* @__PURE__ */ new Map();
115779
+ for (const c of args.contacts ?? []) {
115780
+ const e164 = e164Of(c.phoneNumber) ?? e164Of(c.id);
115781
+ if (!e164) continue;
115782
+ const nm = contactName(c);
115783
+ if (nm) names.set(e164, nm);
115784
+ }
115785
+ const people = /* @__PURE__ */ new Map();
115786
+ const consider = (jid, explicitName, ts) => {
115787
+ if (jid && args.isGroupJid(jid)) return;
115788
+ const e164 = e164Of(jid);
115789
+ if (!e164) return;
115790
+ if (args.selfE164 && e164 === args.selfE164) return;
115791
+ const name = explicitName || names.get(e164);
115792
+ const cur = people.get(e164);
115793
+ if (cur) {
115794
+ if (!cur.name && name) cur.name = name;
115795
+ if (cur.ts == null && ts != null) cur.ts = ts;
115796
+ } else people.set(e164, {
115797
+ name,
115798
+ ts
115799
+ });
115800
+ };
115801
+ for (const c of args.contacts ?? []) consider(c.phoneNumber || c.id, contactName(c), null);
115802
+ for (const chat of args.chats ?? []) consider(chat.id, typeof chat.name === "string" ? chat.name.trim() : void 0, tsToMs(chat.conversationTimestamp));
115803
+ let imported = 0;
115804
+ for (const [e164, p] of people) {
115805
+ args.record({
115806
+ clientId: `wa-import:${args.accountId}:${e164}`,
115807
+ direction: "inbound",
115808
+ channel: "whatsapp",
115809
+ accountId: args.accountId,
115810
+ chatId: e164,
115811
+ senderId: e164,
115812
+ senderName: p.name,
115813
+ isGroup: false,
115814
+ isBot: false,
115815
+ occurredAt: p.ts ?? args.now ?? Date.now(),
115816
+ messageId: `wa-import:${e164}`,
115817
+ metadata: {
115818
+ imported: true,
115819
+ source: "whatsapp-history"
115820
+ }
115821
+ });
115822
+ imported++;
115823
+ }
115824
+ return { imported };
115825
+ }
115826
+ var init_history_import = __esmMin((() => {}));
115827
+ //#endregion
115751
115828
  //#region src/web/inbound/access-control.ts
115752
115829
  async function checkInboundAccessControl(params) {
115753
115830
  const cfg = loadConfig();
@@ -116323,18 +116400,69 @@ async function monitorWebInbox(options) {
116323
116400
  }
116324
116401
  };
116325
116402
  sock.ev.on("connection.update", handleConnectionUpdate);
116403
+ const importContactsEnabled = (() => {
116404
+ try {
116405
+ const cfg = loadConfig();
116406
+ return cfg.gateway?.messageLedger?.enabled === true && cfg.gateway?.messageLedger?.importContacts === true;
116407
+ } catch {
116408
+ return false;
116409
+ }
116410
+ })();
116411
+ const runImport = (label, payload) => {
116412
+ try {
116413
+ const { imported } = importWhatsAppPeopleToLedger({
116414
+ chats: payload.chats ?? [],
116415
+ contacts: payload.contacts ?? [],
116416
+ accountId: options.accountId,
116417
+ selfE164,
116418
+ record,
116419
+ jidToE164: (jid) => jidToE164(jid),
116420
+ isGroupJid: (jid) => isJidGroup(jid) === true
116421
+ });
116422
+ if (imported > 0) inboundConsoleLog.info(`Imported ${imported} WhatsApp ${label} as CRM contact rows (account ${options.accountId})`);
116423
+ } catch (err) {
116424
+ inboundLogger.error({ error: String(err) }, "whatsapp contact import failed");
116425
+ }
116426
+ };
116427
+ const handleHistorySet = (h) => runImport("history", {
116428
+ chats: h.chats,
116429
+ contacts: h.contacts
116430
+ });
116431
+ const handleContactsUpsert = (contacts) => runImport("contacts", { contacts });
116432
+ const handleChatsUpsert = (chats) => runImport("chats", { chats });
116433
+ if (importContactsEnabled) {
116434
+ sock.ev.on("messaging-history.set", handleHistorySet);
116435
+ sock.ev.on("contacts.upsert", handleContactsUpsert);
116436
+ sock.ev.on("chats.upsert", handleChatsUpsert);
116437
+ Promise.resolve().then(() => sock.resyncAppState([
116438
+ "critical_unblock_low",
116439
+ "regular_high",
116440
+ "regular_low",
116441
+ "regular"
116442
+ ], true)).catch((err) => inboundLogger.warn({ error: String(err) }, "whatsapp resyncAppState for contact import failed"));
116443
+ }
116326
116444
  return {
116327
116445
  close: async () => {
116328
116446
  try {
116329
116447
  const ev = sock.ev;
116330
116448
  const messagesUpsertHandler = handleMessagesUpsert;
116331
116449
  const connectionUpdateHandler = handleConnectionUpdate;
116450
+ const historyHandler = handleHistorySet;
116451
+ const contactsHandler = handleContactsUpsert;
116452
+ const chatsHandler = handleChatsUpsert;
116453
+ const offImport = (fn) => {
116454
+ fn("messaging-history.set", historyHandler);
116455
+ fn("contacts.upsert", contactsHandler);
116456
+ fn("chats.upsert", chatsHandler);
116457
+ };
116332
116458
  if (typeof ev.off === "function") {
116333
116459
  ev.off("messages.upsert", messagesUpsertHandler);
116334
116460
  ev.off("connection.update", connectionUpdateHandler);
116461
+ if (importContactsEnabled) offImport(ev.off);
116335
116462
  } else if (typeof ev.removeListener === "function") {
116336
116463
  ev.removeListener("messages.upsert", messagesUpsertHandler);
116337
116464
  ev.removeListener("connection.update", connectionUpdateHandler);
116465
+ if (importContactsEnabled) offImport(ev.removeListener);
116338
116466
  }
116339
116467
  sock.ws?.close();
116340
116468
  } catch (err) {
@@ -116369,6 +116497,9 @@ var init_monitor$1 = __esmMin((() => {
116369
116497
  init_store$2();
116370
116498
  init_hook_runner_global();
116371
116499
  init_utils$2();
116500
+ init_config$4();
116501
+ init_message_ledger();
116502
+ init_history_import();
116372
116503
  init_session();
116373
116504
  init_access_control();
116374
116505
  init_dedupe();
@@ -2533,7 +2533,7 @@ var init_shell_env = __esmMin((() => {
2533
2533
  //#region src/version.ts
2534
2534
  var VERSION;
2535
2535
  var init_version$1 = __esmMin((() => {
2536
- VERSION = "2026.6.13-dev.20260616005057";
2536
+ VERSION = "2026.6.14-dev";
2537
2537
  }));
2538
2538
  //#endregion
2539
2539
  //#region src/routing/session-key.ts
@@ -7959,7 +7959,8 @@ var init_zod_schema = __esmMin((() => {
7959
7959
  channelHealthCheckMinutes: z.number().int().min(0).optional(),
7960
7960
  messageLedger: z.object({
7961
7961
  enabled: z.boolean().optional(),
7962
- dbPath: z.string().optional()
7962
+ dbPath: z.string().optional(),
7963
+ importContacts: z.boolean().optional()
7963
7964
  }).strict().optional(),
7964
7965
  memorySync: z.object({ enabled: z.boolean().optional() }).strict().optional(),
7965
7966
  personalAgentObservations: z.object({
@@ -1,7 +1,7 @@
1
1
  import { c as resolveConfigPath, f as resolveGatewayPort, v as resolveStateDir } from "./paths-Ce170Tex.js";
2
2
  import { S as shortenHomeInString, b as resolveUserPath, c as ensureDir, t as CONFIG_DIR } from "./utils-DsgtGH3c.js";
3
- import { i as loadConfig } from "./io-D-A50eEY.js";
4
- import "./config-BuakXn6K.js";
3
+ import { i as loadConfig } from "./io-DWhsHb_h.js";
4
+ import "./config-CJnHZ6tT.js";
5
5
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-C0DLwT7t.js";
6
6
  import { l as pickPrimaryLanIPv4 } from "./ws-D1BO6u3O.js";
7
7
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-_gH8UHtd.js";
@@ -1,7 +1,7 @@
1
1
  import { c as resolveConfigPath, f as resolveGatewayPort, v as resolveStateDir } from "./paths-aEg9UgoF.js";
2
2
  import { H as CONFIG_DIR, J as ensureDir, at as shortenHomeInString, rt as resolveUserPath } from "./entry.js";
3
- import { i as loadConfig } from "./io-CVtEEw15.js";
4
- import "./config-LTmlN5Qb.js";
3
+ import { i as loadConfig } from "./io-D2T0KwYe.js";
4
+ import "./config-ULIrsUrF.js";
5
5
  import { Kt as loadOrCreateDeviceIdentity, Wt as normalizeFingerprint, t as GatewayClient } from "./client-DaLwaG9G.js";
6
6
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-C0DLwT7t.js";
7
7
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C02KGm4w.js";
@@ -1,6 +1,6 @@
1
1
  import { F as shortenHomeInString, N as resolveUserPath, S as CONFIG_DIR, T as ensureDir$1, at as resolveConfigPath, st as resolveGatewayPort, ut as resolveStateDir } from "./subsystem-Bz8lTz2g.js";
2
2
  import { a as logError, i as logDebug } from "./exec-DWwKe_AW.js";
3
- import { n as loadConfig } from "./config-CC7cX9PE.js";
3
+ import { n as loadConfig } from "./config-Bad23vig.js";
4
4
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES, p as GATEWAY_CLIENT_IDS, t as INPUT_PROVENANCE_KIND_VALUES } from "./input-provenance-BUf7opno.js";
5
5
  import { a as pickPrimaryLanIPv4, o as pickPrimaryTailnetIPv4, t as rawDataToString } from "./ws-ue1BYjxz.js";
6
6
  import path from "node:path";
@@ -1 +1 @@
1
- d7449df5742427d0b200000bb764ada7b871593f211d28faa2c3c7e0a65cae0b
1
+ 350aea2d8d97396fae07adf96f8f98b2a19c6ef8ee41c654d914d7d488267c69
@@ -1,8 +1,8 @@
1
1
  import { d as imageMimeFromFormat } from "./image-ops-QvmG4zb9.js";
2
2
  import { i as resolveImageSanitizationLimits } from "./tool-images-BeP6oYp4.js";
3
3
  import { i as jsonResult, n as imageResult, s as readStringParam } from "./common-BHzo6lXS.js";
4
- import { n as readGatewayCallOptions, t as callGatewayTool } from "./gateway-DAjyboqT.js";
5
- import { n as resolveNodeId } from "./nodes-utils-DSvzVR8T.js";
4
+ import { n as readGatewayCallOptions, t as callGatewayTool } from "./gateway-CzCJQJHj.js";
5
+ import { n as resolveNodeId } from "./nodes-utils-ESP44qeB.js";
6
6
  import { i as stringEnum, r as optionalStringEnum } from "./typebox-BbVstVJp.js";
7
7
  import { i as writeBase64ToFile } from "./nodes-camera-D9xN7NhX.js";
8
8
  import { n as parseCanvasSnapshotPayload, t as canvasSnapshotTempPath } from "./nodes-canvas-3iYablGd.js";
@@ -1,8 +1,8 @@
1
1
  import { d as imageMimeFromFormat } from "./image-ops-BGSWtWRb.js";
2
2
  import { i as resolveImageSanitizationLimits } from "./tool-images-QJzlaPLn.js";
3
3
  import { i as jsonResult, n as imageResult, s as readStringParam } from "./common-CRD8HhuP.js";
4
- import { n as readGatewayCallOptions, t as callGatewayTool } from "./gateway-D8CGtxOO.js";
5
- import { n as resolveNodeId } from "./nodes-utils-BJoSjLjl.js";
4
+ import { n as readGatewayCallOptions, t as callGatewayTool } from "./gateway-CHsNxUxJ.js";
5
+ import { n as resolveNodeId } from "./nodes-utils-DnVqS0gT.js";
6
6
  import { i as stringEnum, r as optionalStringEnum } from "./typebox-BbVstVJp.js";
7
7
  import { i as writeBase64ToFile } from "./nodes-camera-BwnQZUse.js";
8
8
  import { n as parseCanvasSnapshotPayload, t as canvasSnapshotTempPath } from "./nodes-canvas-BzP5Wb0Z.js";
@@ -1,7 +1,7 @@
1
1
  import { S as CHAT_CHANNEL_ORDER, n as isTruthyEnvValue } from "./entry.js";
2
2
  import { n as listChannelPlugins } from "./plugins-irMKpl65.js";
3
3
  import { r as listChannelPluginCatalogEntries } from "./catalog-DKtdSX5i.js";
4
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-5E05Vw-j.js";
4
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-C7Y1ktn8.js";
5
5
  //#region src/cli/channel-options.ts
6
6
  function dedupe(values) {
7
7
  const seen = /* @__PURE__ */ new Set();
@@ -2,7 +2,7 @@ import { f as CHAT_CHANNEL_ORDER } from "./subsystem-Cnn1-kOi.js";
2
2
  import { t as isTruthyEnvValue } from "./env-Ceu1fF46.js";
3
3
  import { n as listChannelPlugins } from "./plugins-DQY2DPZw.js";
4
4
  import { r as listChannelPluginCatalogEntries } from "./catalog-gQ7yZnqz.js";
5
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-AV888_M1.js";
5
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DG11DxET.js";
6
6
  //#region src/cli/channel-options.ts
7
7
  function dedupe(values) {
8
8
  const seen = /* @__PURE__ */ new Set();
@@ -1,16 +1,16 @@
1
1
  import { v as resolveStateDir } from "./paths-Ce170Tex.js";
2
2
  import { E as toWhatsappJid, F as shouldLogVerbose, L as getChildLogger, M as logVerbose, V as toPinoLikeLogger, b as resolveUserPath, c as ensureDir, h as normalizeE164, l as escapeRegExp, m as jidToE164, p as isSelfChatMode, r as clamp, w as sleep, y as resolveJidToE164 } from "./utils-DsgtGH3c.js";
3
- import { A as parseActivationCommand, Ar as normalizeMediaAttachments, Bn as normalizeMentionText, Cn as sanitizeOutboundText, Dn as resolveInboundDebounceMs, En as createInboundDebouncer, Fn as shouldComputeCommandAuthorized, Fr as registerUnhandledRejectionHandler, Kr as finalizeInboundContext, Mr as isAudioAttachment, Nr as isImageAttachment, On as formatInboundEnvelope, Or as buildProviderRegistry, Pn as hasControlCommand, Tn as createDedupeCache, _n as record, jr as runCapability, k as normalizeGroupActivation, kn as resolveEnvelopeFormatOptions, kr as createMediaAttachmentCache, nr as resolveAckReaction, or as resolveIdentityNamePrefix, sr as resolveMessagePrefix, t as getReplyFromConfig, un as buildPairingReply, vn as shouldAckReactionForWhatsApp, wr as enqueueSystemEvent, yn as dispatchReplyWithBufferedBlockDispatcher, zn as buildMentionRegexes } from "./reply-Dqrd2V9O.js";
3
+ import { A as parseActivationCommand, Ar as normalizeMediaAttachments, Bn as normalizeMentionText, Cn as sanitizeOutboundText, Dn as resolveInboundDebounceMs, En as createInboundDebouncer, Fn as shouldComputeCommandAuthorized, Fr as registerUnhandledRejectionHandler, Kr as finalizeInboundContext, Mr as isAudioAttachment, Nr as isImageAttachment, On as formatInboundEnvelope, Or as buildProviderRegistry, Pn as hasControlCommand, Tn as createDedupeCache, _n as record, jr as runCapability, k as normalizeGroupActivation, kn as resolveEnvelopeFormatOptions, kr as createMediaAttachmentCache, nr as resolveAckReaction, or as resolveIdentityNamePrefix, sr as resolveMessagePrefix, t as getReplyFromConfig, un as buildPairingReply, vn as shouldAckReactionForWhatsApp, wr as enqueueSystemEvent, yn as dispatchReplyWithBufferedBlockDispatcher, zn as buildMentionRegexes } from "./reply-D0CQyMj1.js";
4
4
  import { F as triggerInternalHook, G as isInstantCommand, N as createInternalHookEvent, t as createSubsystemLogger } from "./subsystem-Cnn1-kOi.js";
5
5
  import { t as defaultRuntime } from "./runtime-Da615Z-K.js";
6
6
  import { i as buildAgentMainSessionKey, l as normalizeAgentId, o as buildGroupHistoryKey, r as DEFAULT_MAIN_KEY, t as DEFAULT_ACCOUNT_ID } from "./session-key-BcXqsG0l.js";
7
7
  import "./exec-ByW9LeFK.js";
8
8
  import { i as resolveAgentDir, l as resolveAgentWorkspaceDir, u as resolveDefaultAgentId } from "./agent-scope-D_1ZJVsc.js";
9
9
  import { t as formatCliCommand } from "./command-format-slIqNG4J.js";
10
- import { S as VERSION, i as loadConfig } from "./io-D-A50eEY.js";
11
- import "./config-BuakXn6K.js";
10
+ import { S as VERSION, i as loadConfig } from "./io-DWhsHb_h.js";
11
+ import "./config-CJnHZ6tT.js";
12
12
  import { c as resolveWhatsAppAccount, d as readCredsJsonRaw, f as readWebSelfId, h as resolveWebCredsPath, l as getWebAuthAgeMs, m as resolveWebCredsBackupPath, p as resolveDefaultWebAuthDir, u as maybeRestoreCredsFromBackup } from "./plugins-DQY2DPZw.js";
13
- import { K as resolveChannelGroupPolicy, X as resolveGroupSessionKey, a as loadSessionStore, l as updateLastRoute, o as readSessionUpdatedAt, q as resolveChannelGroupRequireMention, s as recordSessionMetaFromInbound } from "./sessions-C1gkxVIX.js";
13
+ import { K as resolveChannelGroupPolicy, X as resolveGroupSessionKey, a as loadSessionStore, l as updateLastRoute, o as readSessionUpdatedAt, q as resolveChannelGroupRequireMention, s as recordSessionMetaFromInbound } from "./sessions-DYp3Y72l.js";
14
14
  import { r as require_tool_display } from "./tool-display-ByuoRPis.js";
15
15
  import { r as saveMediaBuffer } from "./store-BNyzv0EM.js";
16
16
  import "./logging-BlQyBIpf.js";
@@ -18,8 +18,8 @@ import { c as resolveStorePath } from "./paths-Ds2czhyU.js";
18
18
  import { n as loadWebMedia, r as getAgentScopedMediaLocalRoots } from "./load-COfKYLII.js";
19
19
  import "./tokens-DRSqc0S5.js";
20
20
  import "./lanes-D8quZPN3.js";
21
- import { c as resolveAgentRoute, s as buildAgentSessionKey } from "./targets-CHPM-77r.js";
22
- import { g as getGlobalHookRunner } from "./reply-payloads-COhF33IG.js";
21
+ import { c as resolveAgentRoute, s as buildAgentSessionKey } from "./targets-ClLWbDD3.js";
22
+ import { g as getGlobalHookRunner } from "./reply-payloads-CSe-fnoQ.js";
23
23
  import { a as traceGatewayEvent, i as traceChatEvent, r as traceChannelEvent, t as deriveTraceId } from "./chat-trace-B7hAMbQe.js";
24
24
  import { c as chunkMarkdownTextWithMode, d as resolveChunkMode, f as resolveTextChunkLimit, i as resolveMarkdownTableMode } from "./ir-BymCrWXa.js";
25
25
  import { n as recordChannelActivity } from "./channel-activity-mLVM0GeJ.js";
@@ -28,7 +28,7 @@ import { i as readChannelAllowFromStore, o as upsertChannelPairingRequest } from
28
28
  import { r as formatDurationPrecise } from "./format-duration-DxxnRZtB.js";
29
29
  import "./heartbeat-visibility-CCq47bb-.js";
30
30
  import { n as resolveDisclosureConfig, t as maybeInjectDisclosure } from "./ai-disclosure-CZzBEeaK.js";
31
- import { a as computeBackoff, i as recordPendingHistoryEntryIfEnabled, n as resolveChannelSenderIdentity, o as sleepWithAbort, r as buildHistoryContextFromEntries, t as createReplyPrefixOptions } from "./reply-prefix-CNleAyhT.js";
31
+ import { a as computeBackoff, i as recordPendingHistoryEntryIfEnabled, n as resolveChannelSenderIdentity, o as sleepWithAbort, r as buildHistoryContextFromEntries, t as createReplyPrefixOptions } from "./reply-prefix-Dc5AW5Xm.js";
32
32
  import { n as toLocationContext, t as formatLocationText } from "./location-CeGoW_QS.js";
33
33
  import fs from "node:fs";
34
34
  import os from "node:os";
@@ -320,6 +320,10 @@ async function createWaSocket(printQr, verbose, opts = {}) {
320
320
  maybeRestoreCredsFromBackup(authDir);
321
321
  const { state, saveCreds } = await useMultiFileAuthState(authDir);
322
322
  const { version } = await fetchLatestBaileysVersion();
323
+ let syncFullHistory = false;
324
+ try {
325
+ syncFullHistory = loadConfig().gateway?.messageLedger?.importContacts === true;
326
+ } catch {}
323
327
  const sock = makeWASocket({
324
328
  auth: {
325
329
  creds: state.creds,
@@ -333,7 +337,7 @@ async function createWaSocket(printQr, verbose, opts = {}) {
333
337
  "cli",
334
338
  VERSION
335
339
  ],
336
- syncFullHistory: false,
340
+ syncFullHistory,
337
341
  markOnlineOnConnect: false
338
342
  });
339
343
  sock.ev.on("creds.update", () => enqueueSaveCreds(authDir, saveCreds, sessionLogger));
@@ -797,6 +801,75 @@ function fireInboundTriggerHook(event) {
797
801
  })).catch(() => {});
798
802
  }
799
803
  //#endregion
804
+ //#region src/web/inbound/history-import.ts
805
+ /** Coerce a Baileys conversationTimestamp (number | Long-like) to ms, or null. */
806
+ function tsToMs(value) {
807
+ if (typeof value === "number" && Number.isFinite(value)) return value * 1e3;
808
+ if (value && typeof value === "object" && typeof value.toNumber === "function") {
809
+ const n = value.toNumber();
810
+ return Number.isFinite(n) ? n * 1e3 : null;
811
+ }
812
+ return null;
813
+ }
814
+ function contactName(c) {
815
+ return (c.name || c.notify || c.verifiedName || c.username || "").trim() || void 0;
816
+ }
817
+ /**
818
+ * Record one idempotent inbound shell row per importable 1:1 person, drawn from
819
+ * the union of `contacts` and `chats`. Returns the number of distinct people
820
+ * recorded this call.
821
+ */
822
+ function importWhatsAppPeopleToLedger(args) {
823
+ const e164Of = (jid) => jid ? args.jidToE164(jid) : null;
824
+ const names = /* @__PURE__ */ new Map();
825
+ for (const c of args.contacts ?? []) {
826
+ const e164 = e164Of(c.phoneNumber) ?? e164Of(c.id);
827
+ if (!e164) continue;
828
+ const nm = contactName(c);
829
+ if (nm) names.set(e164, nm);
830
+ }
831
+ const people = /* @__PURE__ */ new Map();
832
+ const consider = (jid, explicitName, ts) => {
833
+ if (jid && args.isGroupJid(jid)) return;
834
+ const e164 = e164Of(jid);
835
+ if (!e164) return;
836
+ if (args.selfE164 && e164 === args.selfE164) return;
837
+ const name = explicitName || names.get(e164);
838
+ const cur = people.get(e164);
839
+ if (cur) {
840
+ if (!cur.name && name) cur.name = name;
841
+ if (cur.ts == null && ts != null) cur.ts = ts;
842
+ } else people.set(e164, {
843
+ name,
844
+ ts
845
+ });
846
+ };
847
+ for (const c of args.contacts ?? []) consider(c.phoneNumber || c.id, contactName(c), null);
848
+ for (const chat of args.chats ?? []) consider(chat.id, typeof chat.name === "string" ? chat.name.trim() : void 0, tsToMs(chat.conversationTimestamp));
849
+ let imported = 0;
850
+ for (const [e164, p] of people) {
851
+ args.record({
852
+ clientId: `wa-import:${args.accountId}:${e164}`,
853
+ direction: "inbound",
854
+ channel: "whatsapp",
855
+ accountId: args.accountId,
856
+ chatId: e164,
857
+ senderId: e164,
858
+ senderName: p.name,
859
+ isGroup: false,
860
+ isBot: false,
861
+ occurredAt: p.ts ?? args.now ?? Date.now(),
862
+ messageId: `wa-import:${e164}`,
863
+ metadata: {
864
+ imported: true,
865
+ source: "whatsapp-history"
866
+ }
867
+ });
868
+ imported++;
869
+ }
870
+ return { imported };
871
+ }
872
+ //#endregion
800
873
  //#region src/web/inbound/access-control.ts
801
874
  const PAIRING_REPLY_HISTORY_GRACE_MS = 3e4;
802
875
  async function checkInboundAccessControl(params) {
@@ -1356,18 +1429,69 @@ async function monitorWebInbox(options) {
1356
1429
  }
1357
1430
  };
1358
1431
  sock.ev.on("connection.update", handleConnectionUpdate);
1432
+ const importContactsEnabled = (() => {
1433
+ try {
1434
+ const cfg = loadConfig();
1435
+ return cfg.gateway?.messageLedger?.enabled === true && cfg.gateway?.messageLedger?.importContacts === true;
1436
+ } catch {
1437
+ return false;
1438
+ }
1439
+ })();
1440
+ const runImport = (label, payload) => {
1441
+ try {
1442
+ const { imported } = importWhatsAppPeopleToLedger({
1443
+ chats: payload.chats ?? [],
1444
+ contacts: payload.contacts ?? [],
1445
+ accountId: options.accountId,
1446
+ selfE164,
1447
+ record,
1448
+ jidToE164: (jid) => jidToE164(jid),
1449
+ isGroupJid: (jid) => isJidGroup(jid) === true
1450
+ });
1451
+ if (imported > 0) inboundConsoleLog.info(`Imported ${imported} WhatsApp ${label} as CRM contact rows (account ${options.accountId})`);
1452
+ } catch (err) {
1453
+ inboundLogger.error({ error: String(err) }, "whatsapp contact import failed");
1454
+ }
1455
+ };
1456
+ const handleHistorySet = (h) => runImport("history", {
1457
+ chats: h.chats,
1458
+ contacts: h.contacts
1459
+ });
1460
+ const handleContactsUpsert = (contacts) => runImport("contacts", { contacts });
1461
+ const handleChatsUpsert = (chats) => runImport("chats", { chats });
1462
+ if (importContactsEnabled) {
1463
+ sock.ev.on("messaging-history.set", handleHistorySet);
1464
+ sock.ev.on("contacts.upsert", handleContactsUpsert);
1465
+ sock.ev.on("chats.upsert", handleChatsUpsert);
1466
+ Promise.resolve().then(() => sock.resyncAppState([
1467
+ "critical_unblock_low",
1468
+ "regular_high",
1469
+ "regular_low",
1470
+ "regular"
1471
+ ], true)).catch((err) => inboundLogger.warn({ error: String(err) }, "whatsapp resyncAppState for contact import failed"));
1472
+ }
1359
1473
  return {
1360
1474
  close: async () => {
1361
1475
  try {
1362
1476
  const ev = sock.ev;
1363
1477
  const messagesUpsertHandler = handleMessagesUpsert;
1364
1478
  const connectionUpdateHandler = handleConnectionUpdate;
1479
+ const historyHandler = handleHistorySet;
1480
+ const contactsHandler = handleContactsUpsert;
1481
+ const chatsHandler = handleChatsUpsert;
1482
+ const offImport = (fn) => {
1483
+ fn("messaging-history.set", historyHandler);
1484
+ fn("contacts.upsert", contactsHandler);
1485
+ fn("chats.upsert", chatsHandler);
1486
+ };
1365
1487
  if (typeof ev.off === "function") {
1366
1488
  ev.off("messages.upsert", messagesUpsertHandler);
1367
1489
  ev.off("connection.update", connectionUpdateHandler);
1490
+ if (importContactsEnabled) offImport(ev.off);
1368
1491
  } else if (typeof ev.removeListener === "function") {
1369
1492
  ev.removeListener("messages.upsert", messagesUpsertHandler);
1370
1493
  ev.removeListener("connection.update", connectionUpdateHandler);
1494
+ if (importContactsEnabled) offImport(ev.removeListener);
1371
1495
  }
1372
1496
  sock.ws?.close();
1373
1497
  } catch (err) {
@@ -4,10 +4,10 @@ import { C as loadAuthProfileStore } from "./auth-profiles-CmddgW77.js";
4
4
  import { t as formatCliCommand } from "./command-format-D86vQ65E.js";
5
5
  import { s as normalizeAccountId$1 } from "./session-key-DK3D9dkE.js";
6
6
  import { l as resolveAgentWorkspaceDir, u as resolveDefaultAgentId } from "./agent-scope-BP7xXcTE.js";
7
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./io-CVtEEw15.js";
8
- import "./config-LTmlN5Qb.js";
9
- import { n as callGateway } from "./call-CYh-D_wt.js";
10
- import { Ct as formatUsageReportLines, St as loadProviderUsageSummary } from "./subagent-registry-CI2lz1B1.js";
7
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./io-D2T0KwYe.js";
8
+ import "./config-ULIrsUrF.js";
9
+ import { n as callGateway } from "./call-DaiN21tT.js";
10
+ import { Ct as formatUsageReportLines, St as loadProviderUsageSummary } from "./subagent-registry-C4Xeveht.js";
11
11
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, u as resolveTelegramAccount } from "./plugins-irMKpl65.js";
12
12
  import "./logging-D43UWj1X.js";
13
13
  import { n as formatTimeAgo } from "./format-relative-Bjc3l98W.js";
@@ -18,18 +18,18 @@ import { t as formatHelpExamples } from "./help-format-ojnmvhbK.js";
18
18
  import { n as withProgress } from "./progress-aPiVORh8.js";
19
19
  import { n as resolveMessageChannelSelection } from "./channel-selection-Bzg2Xpo4.js";
20
20
  import { t as parseDiscordTarget } from "./targets-CWUrImUS.js";
21
- import { n as fetchChannelPermissionsDiscord } from "./send-BQPSwhBT.js";
21
+ import { n as fetchChannelPermissionsDiscord } from "./send-Dy5OuEh7.js";
22
22
  import { t as hasExplicitOptions } from "./command-options-Dhjl7AMa.js";
23
23
  import { r as listChannelPluginCatalogEntries } from "./catalog-DKtdSX5i.js";
24
24
  import { t as createClackPrompter } from "./clack-prompter-Bv8LAi9a.js";
25
25
  import { t as resolveChannelDefaultAccountId } from "./helpers-HNAIOJ_3.js";
26
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-6p1gbH80.js";
27
- import "./onboard-channels-rJhMZ8AM.js";
28
- import { t as requireValidConfigSnapshot } from "./config-validation-TmO1WOdo.js";
26
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CUT7TFAB.js";
27
+ import "./onboard-channels-B1odq8Pa.js";
28
+ import { t as requireValidConfigSnapshot } from "./config-validation-BKuA0mkd.js";
29
29
  import { t as buildChannelAccountSnapshot } from "./status-Dg720jp3.js";
30
30
  import { t as parseLogLine } from "./parse-log-line-CYJzHJac.js";
31
31
  import { t as collectChannelStatusIssues } from "./channels-status-issues-dgNXBa3W.js";
32
- import { t as formatCliChannelOptions } from "./channel-options-ULpXvAFC.js";
32
+ import { t as formatCliChannelOptions } from "./channel-options-BhSTHUdE.js";
33
33
  import os from "node:os";
34
34
  import path from "node:path";
35
35
  import fs from "node:fs/promises";
@@ -1,18 +1,18 @@
1
1
  import { v as resolveStateDir } from "./paths-Ce170Tex.js";
2
2
  import { O as danger, P as setVerbose, f as isRecord, z as getResolvedLoggerSettings } from "./utils-DsgtGH3c.js";
3
3
  import { r as theme } from "./theme-CDbj88LB.js";
4
- import { M as formatUsageReportLines, j as loadProviderUsageSummary } from "./reply-Dqrd2V9O.js";
4
+ import { M as formatUsageReportLines, j as loadProviderUsageSummary } from "./reply-D0CQyMj1.js";
5
5
  import "./subsystem-Cnn1-kOi.js";
6
6
  import { t as defaultRuntime } from "./runtime-Da615Z-K.js";
7
7
  import { c as normalizeAccountId$1 } from "./session-key-BcXqsG0l.js";
8
8
  import { l as resolveAgentWorkspaceDir, u as resolveDefaultAgentId } from "./agent-scope-D_1ZJVsc.js";
9
9
  import { Mt as loadAuthProfileStore } from "./model-selection-DXz1sR0t.js";
10
10
  import { t as formatCliCommand } from "./command-format-slIqNG4J.js";
11
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./io-D-A50eEY.js";
12
- import "./config-BuakXn6K.js";
11
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./io-DWhsHb_h.js";
12
+ import "./config-CJnHZ6tT.js";
13
13
  import { _ as resolveTelegramAccount, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DQY2DPZw.js";
14
14
  import "./logging-BlQyBIpf.js";
15
- import { n as callGateway } from "./call-D6dWC0ix.js";
15
+ import { n as callGateway } from "./call-BH1OgnGt.js";
16
16
  import { n as formatTimeAgo } from "./format-relative-Bjc3l98W.js";
17
17
  import { t as formatDocsLink } from "./links-C1xb6h4b.js";
18
18
  import { n as runCommandWithRuntime } from "./cli-utils-Cg2c3XDf.js";
@@ -20,16 +20,16 @@ import { t as formatHelpExamples } from "./help-format-D20I7z1G.js";
20
20
  import { n as withProgress } from "./progress-8_pqhNaq.js";
21
21
  import { t as createSlackWebClient } from "./client-B0alQSqy.js";
22
22
  import { r as listChannelPluginCatalogEntries } from "./catalog-gQ7yZnqz.js";
23
- import { t as formatCliChannelOptions } from "./channel-options-Bx9eGkuS.js";
23
+ import { t as formatCliChannelOptions } from "./channel-options-ZnqM-XwR.js";
24
24
  import { n as resolveMessageChannelSelection } from "./channel-selection-ERVd9FwM.js";
25
25
  import { t as parseDiscordTarget } from "./targets-xl8bNEbc.js";
26
- import { n as fetchChannelPermissionsDiscord } from "./send-z4xPCsJY.js";
26
+ import { n as fetchChannelPermissionsDiscord } from "./send-CCuZYSz3.js";
27
27
  import { t as hasExplicitOptions } from "./command-options-Dhjl7AMa.js";
28
28
  import { t as createClackPrompter } from "./clack-prompter-BhwvSSDO.js";
29
29
  import { t as resolveChannelDefaultAccountId } from "./helpers-BcEbnHmz.js";
30
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-CVnYH8gu.js";
31
- import "./onboard-channels-DCwvYauq.js";
32
- import { t as requireValidConfigSnapshot } from "./config-validation-DRKfuI2k.js";
30
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-Bc0EWbkF.js";
31
+ import "./onboard-channels-DOws7yCU.js";
32
+ import { t as requireValidConfigSnapshot } from "./config-validation-UxIy2sWe.js";
33
33
  import { t as buildChannelAccountSnapshot } from "./status-Dg720jp3.js";
34
34
  import { t as parseLogLine } from "./parse-log-line-CYJzHJac.js";
35
35
  import { t as collectChannelStatusIssues } from "./channels-status-issues-YebWHOdm.js";
@@ -1,6 +1,6 @@
1
1
  import { S as CONFIG_DIR, t as createSubsystemLogger } from "./subsystem-Bz8lTz2g.js";
2
2
  import "./exec-DWwKe_AW.js";
3
- import { n as loadConfig } from "./config-CC7cX9PE.js";
3
+ import { n as loadConfig } from "./config-Bad23vig.js";
4
4
  import { r as isErrno } from "./errors-DInjg6Ku.js";
5
5
  import { i as isPrivateOrLoopbackAddress, n as isLoopbackAddress, r as isLoopbackHost, t as rawDataToString } from "./ws-ue1BYjxz.js";
6
6
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { t as CONFIG_DIR } from "./utils-DsgtGH3c.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-Cnn1-kOi.js";
3
- import { i as loadConfig } from "./io-D-A50eEY.js";
4
- import "./config-BuakXn6K.js";
3
+ import { i as loadConfig } from "./io-DWhsHb_h.js";
4
+ import "./config-CJnHZ6tT.js";
5
5
  import { i as isPrivateOrLoopbackAddress, n as isLoopbackAddress, r as isLoopbackHost, t as rawDataToString } from "./ws-D1BO6u3O.js";
6
6
  import { r as ensurePortAvailable } from "./ports-Cwx06Uji.js";
7
7
  import fs from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { H as CONFIG_DIR, o as createSubsystemLogger } from "./entry.js";
2
- import { i as loadConfig } from "./io-CVtEEw15.js";
3
- import "./config-LTmlN5Qb.js";
2
+ import { i as loadConfig } from "./io-D2T0KwYe.js";
3
+ import "./config-ULIrsUrF.js";
4
4
  import { n as isLoopbackHost, p as rawDataToString, r as isPrivateOrLoopbackAddress, t as isLoopbackAddress } from "./net-C0W-QK7p.js";
5
5
  import { t as ensurePortAvailable } from "./ports-CWP9QmS6.js";
6
6
  import { execFileSync, spawn } from "node:child_process";
@@ -1,4 +1,4 @@
1
- import { registerQrCli } from "./qr-cli-D9TLooTU.js";
1
+ import { registerQrCli } from "./qr-cli-CNBJBiSg.js";
2
2
  //#region src/cli/clawbot-cli.ts
3
3
  function registerClawbotCli(program) {
4
4
  registerQrCli(program.command("clawbot").description("Legacy clawbot command aliases"));