@noxsoft/anima 2.0.0

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 (1570) hide show
  1. package/CHANGELOG.md +2065 -0
  2. package/LICENSE +23 -0
  3. package/README.md +47 -0
  4. package/anima.mjs +56 -0
  5. package/dist/accounts-Cc5E4IDO.js +260 -0
  6. package/dist/accounts-CcVrwKqv.js +259 -0
  7. package/dist/acp-cli-BbvR4dNz.js +1081 -0
  8. package/dist/acp-cli-CePIi7gD.js +1084 -0
  9. package/dist/agent-CSrGrAg1.js +725 -0
  10. package/dist/agent-NgeWEcBM.js +725 -0
  11. package/dist/agent-events-UF0DxwKS.js +182 -0
  12. package/dist/agent-scope-BVf4aSwY.js +112 -0
  13. package/dist/agent-scope-OZi7lb8S.js +452 -0
  14. package/dist/agent-scope-V1bi9OYL.js +452 -0
  15. package/dist/agents-Bw06WthM.js +809 -0
  16. package/dist/agents.config-Dvo2ULxs.js +182 -0
  17. package/dist/agents.config-d6H0_3oj.js +182 -0
  18. package/dist/argv-DqUHKf0o.js +73 -0
  19. package/dist/audit-Buja3mbS.js +2401 -0
  20. package/dist/audit-CWIz6mM7.js +2401 -0
  21. package/dist/auth-91o2YM96.js +648 -0
  22. package/dist/auth-choice-7dFCqblU.js +2681 -0
  23. package/dist/auth-choice-S_0K9gpl.js +2681 -0
  24. package/dist/auth-health-CctpRTdC.js +149 -0
  25. package/dist/auth-health-DoHai4eD.js +149 -0
  26. package/dist/auth-lZ26wsbN.js +639 -0
  27. package/dist/auth-profiles-Cz2rxrav.js +2690 -0
  28. package/dist/auth-profiles-_5BsNObq.js +1565 -0
  29. package/dist/banner-ieAUufx9.js +294 -0
  30. package/dist/boolean-Ce2-qkSB.js +30 -0
  31. package/dist/boolean-Wzu0-e0P.js +30 -0
  32. package/dist/brew-CVZkr0GU.js +46 -0
  33. package/dist/brew-DAdyX1_1.js +46 -0
  34. package/dist/browser-cli-D_qgYDik.js +1679 -0
  35. package/dist/browser-cli-DldrdaCW.js +1676 -0
  36. package/dist/budget-ChKARYPY.js +132 -0
  37. package/dist/budget-Dspr6N_e.js +132 -0
  38. package/dist/build-info.json +5 -0
  39. package/dist/bundled/boot-md/HOOK.md +19 -0
  40. package/dist/bundled/boot-md/handler.js +861 -0
  41. package/dist/bundled/bootstrap-extra-files/HOOK.md +53 -0
  42. package/dist/bundled/bootstrap-extra-files/handler.js +39 -0
  43. package/dist/bundled/command-logger/HOOK.md +122 -0
  44. package/dist/bundled/command-logger/handler.js +55 -0
  45. package/dist/bundled/session-memory/HOOK.md +109 -0
  46. package/dist/bundled/session-memory/handler.js +128 -0
  47. package/dist/call-DPzNR_Qi.js +282 -0
  48. package/dist/call-ktoEhkOQ.js +282 -0
  49. package/dist/canvas-host/a2ui/.bundle.hash +1 -0
  50. package/dist/canvas-host/a2ui/a2ui.bundle.js +19040 -0
  51. package/dist/canvas-host/a2ui/index.html +307 -0
  52. package/dist/catalog-BAayBt1L.js +185 -0
  53. package/dist/catalog-BNsf97BM.js +185 -0
  54. package/dist/channel-options-C3GV4Fgg.js +33 -0
  55. package/dist/channel-options-DJ4GNfwk.js +32 -0
  56. package/dist/channel-selection-CujyiWGM.js +51 -0
  57. package/dist/channel-selection-DfGpCyh2.js +51 -0
  58. package/dist/channel-web-D42mzlCJ.js +2162 -0
  59. package/dist/channels-cli-BAtARz4A.js +1306 -0
  60. package/dist/channels-cli-Ddo_tIRR.js +1304 -0
  61. package/dist/channels-status-issues-DBc1pU_R.js +18 -0
  62. package/dist/channels-status-issues-DjO9MHIG.js +18 -0
  63. package/dist/chrome-Bi6iZ5sG.js +1601 -0
  64. package/dist/chrome-DNSv7Cpy.js +1629 -0
  65. package/dist/chrome-DScZx4Lk.js +1601 -0
  66. package/dist/chunk-mxPVo000.js +348 -0
  67. package/dist/clack-prompter-B0kl7shw.js +92 -0
  68. package/dist/clack-prompter-B1YxZdRy.js +92 -0
  69. package/dist/cli/daemon-cli.js +9 -0
  70. package/dist/cli-D3hUnL_G.js +101 -0
  71. package/dist/cli-DDwD6VgH.js +99 -0
  72. package/dist/cli-session-CP7ZH2-6.js +5463 -0
  73. package/dist/cli-session-oXJQpenl.js +5408 -0
  74. package/dist/cli-utils-BTBABPX9.js +40 -0
  75. package/dist/cli-utils-DtAxdCte.js +40 -0
  76. package/dist/client-C1avc0vD.js +1692 -0
  77. package/dist/client-CC94YZrT.js +1692 -0
  78. package/dist/clipboard-B2fBy8tG.js +31 -0
  79. package/dist/clipboard-BbGnZskJ.js +31 -0
  80. package/dist/command-format-Clp46jkj.js +38 -0
  81. package/dist/command-format-DELazozB.js +52 -0
  82. package/dist/command-format-SkzzRqR1.js +52 -0
  83. package/dist/command-options-CSbuuqHr.js +8 -0
  84. package/dist/command-options-Cp1tf96a.js +8 -0
  85. package/dist/command-registry-DDGudZEQ.js +248 -0
  86. package/dist/commands-CRcFD5MO.js +509 -0
  87. package/dist/commands-Dh40OpQL.js +509 -0
  88. package/dist/commands-registry-Bd0xbvwG.js +766 -0
  89. package/dist/commands-registry-DYfRSVF3.js +766 -0
  90. package/dist/common-D6bu0zHC.js +287 -0
  91. package/dist/common-zW9Y2P1B.js +287 -0
  92. package/dist/completion-cli-B9Cn374l.js +431 -0
  93. package/dist/completion-cli-BEHghUFx.js +432 -0
  94. package/dist/config-Bmm8tmZF.js +6523 -0
  95. package/dist/config-CHc5qzaI.js +5704 -0
  96. package/dist/config-Co6UXXF5.js +11 -0
  97. package/dist/config-Xm0j9LUa.js +5705 -0
  98. package/dist/config-cli-9ZbCHoV8.js +247 -0
  99. package/dist/config-cli-sxuGl29N.js +244 -0
  100. package/dist/config-guard-BwRD-b9Z.js +93 -0
  101. package/dist/config-guard-Dy7wyhAX.js +76 -0
  102. package/dist/config-sync-Bllc1TJ4.js +89 -0
  103. package/dist/config-sync-mfuOoGHl.js +89 -0
  104. package/dist/configure-CCyVzQZ7.js +1006 -0
  105. package/dist/configure-Nntbxt4t.js +1008 -0
  106. package/dist/constants-BwBn5CGe.js +65 -0
  107. package/dist/constants-O8yBqCBv.js +65 -0
  108. package/dist/context-DKaQYnCH.js +60 -0
  109. package/dist/control-service-BeOtZCCS.js +72 -0
  110. package/dist/control-service-vyKJ-XUp.js +72 -0
  111. package/dist/cron-cli-BasqtsJ0.js +451 -0
  112. package/dist/cron-cli-C8XzIpyX.js +448 -0
  113. package/dist/daemon-cli-cwL2GI5i.js +565 -0
  114. package/dist/daemon-cli-sjDh2xbf.js +566 -0
  115. package/dist/daemon-cli.js +13117 -0
  116. package/dist/daemon-runtime-BuMT6nck.js +460 -0
  117. package/dist/daemon-runtime-CTvi3m4D.js +460 -0
  118. package/dist/dangerous-tools-5ObDWy1N.js +32 -0
  119. package/dist/dangerous-tools-Jwr7jqNw.js +32 -0
  120. package/dist/deliver-D6cdhg5m.js +1097 -0
  121. package/dist/deliver-DlNDKlA4.js +1162 -0
  122. package/dist/deliver-bC6iI_rv.js +1097 -0
  123. package/dist/delivery-queue-B6IHz4Ry.js +220 -0
  124. package/dist/delivery-queue-TnQykYsg.js +220 -0
  125. package/dist/deps-C9kDG-Ru.js +42 -0
  126. package/dist/devices-cli-BE-Nib4Y.js +198 -0
  127. package/dist/devices-cli-GyPlNRyd.js +195 -0
  128. package/dist/diagnostics-Dj75aEHN.js +35 -0
  129. package/dist/diagnostics-DlIw6fqD.js +35 -0
  130. package/dist/directory-cli-BEaIvWkc.js +246 -0
  131. package/dist/directory-cli-CZ_-DP5Z.js +243 -0
  132. package/dist/dispatcher-Bkcui7jz.js +100 -0
  133. package/dist/dispatcher-C1B6cT_7.js +100 -0
  134. package/dist/display-A8k-mxv8.js +171 -0
  135. package/dist/display-BDOsXu8F.js +171 -0
  136. package/dist/dns-cli-BUzpVoMv.js +200 -0
  137. package/dist/dns-cli-DstQOMQt.js +197 -0
  138. package/dist/dock-DbxBBv30.js +753 -0
  139. package/dist/dock-cPBY4qGl.js +753 -0
  140. package/dist/docs-cli-BWp6p-Tq.js +161 -0
  141. package/dist/docs-cli-x22FnZfL.js +159 -0
  142. package/dist/doctor-B5HFw-nC.js +1813 -0
  143. package/dist/doctor-DnEyqGcQ.js +1815 -0
  144. package/dist/doctor-completion-BMEPXgVg.js +92 -0
  145. package/dist/doctor-completion-usPeH2ol.js +92 -0
  146. package/dist/doctor-config-flow-CS0WFnjL.js +1232 -0
  147. package/dist/doctor-config-flow-Cs4O_Kmq.js +1232 -0
  148. package/dist/engine-DgK9s3lk.js +561 -0
  149. package/dist/engine-ZSd5I5JN.js +561 -0
  150. package/dist/entry.js +1560 -0
  151. package/dist/env-0lJfCPsw.js +32 -0
  152. package/dist/errors-A_GqUU6B.js +26 -0
  153. package/dist/errors-CHow2wtt.js +37 -0
  154. package/dist/errors-Cojm0Kl7.js +37 -0
  155. package/dist/exec-BenD3A5l.js +1167 -0
  156. package/dist/exec-BizYYQgP.js +255 -0
  157. package/dist/exec-Bv3pyjeM.js +255 -0
  158. package/dist/exec-approvals-BP9AhCSw.js +1221 -0
  159. package/dist/exec-approvals-CdLmKX2R.js +1221 -0
  160. package/dist/exec-approvals-cli-25CGlFNw.js +368 -0
  161. package/dist/exec-approvals-cli-BXZ-hOlT.js +371 -0
  162. package/dist/extensionAPI.js +8542 -0
  163. package/dist/format-CjKG6raZ.js +20 -0
  164. package/dist/format-Mq6iU0_5.js +20 -0
  165. package/dist/format-duration-Cm3xh8xz.js +58 -0
  166. package/dist/format-duration-DhWzz_5b.js +58 -0
  167. package/dist/format-relative-C6kUHuOj.js +55 -0
  168. package/dist/format-relative-sy9iviQN.js +55 -0
  169. package/dist/frontmatter-YijVi0FQ.js +204 -0
  170. package/dist/gateway-cli-B9uc0RCI.js +19971 -0
  171. package/dist/gateway-cli-D8Qz7kCf.js +19972 -0
  172. package/dist/gateway-rpc-Ch9mCYEB.js +28 -0
  173. package/dist/gateway-rpc-DBhcdLFs.js +28 -0
  174. package/dist/github-copilot-auth-D6ZErYqa.js +1418 -0
  175. package/dist/github-copilot-auth-DGmyWJms.js +1418 -0
  176. package/dist/gmail-setup-utils-BPo_LkKI.js +428 -0
  177. package/dist/gmail-setup-utils-D3Yqgor7.js +428 -0
  178. package/dist/health-DsTZaAzV.js +1258 -0
  179. package/dist/health-V6dGthLA.js +1253 -0
  180. package/dist/health-format-CdP99j3Y.js +208 -0
  181. package/dist/health-format-JEChH08S.js +208 -0
  182. package/dist/heartbeat-visibility-CkL00WRR.js +98 -0
  183. package/dist/heartbeat-visibility-Cmni9671.js +98 -0
  184. package/dist/help-format-DUBI91Ti.js +17 -0
  185. package/dist/help-format-Dl4bsrLI.js +17 -0
  186. package/dist/helpers-9N2Q5aZj.js +25 -0
  187. package/dist/helpers-DLgbkcEn.js +25 -0
  188. package/dist/helpers-ZKNRexvX.js +10 -0
  189. package/dist/helpers-eJFa4K6r.js +10 -0
  190. package/dist/hooks-cli-Cu0D0fPS.js +993 -0
  191. package/dist/hooks-cli-E63uffR6.js +991 -0
  192. package/dist/hooks-status-B-e96dZj.js +356 -0
  193. package/dist/hooks-status-C_9sE0ox.js +356 -0
  194. package/dist/image-ops-Dlt3T7th.js +541 -0
  195. package/dist/image-ops-omlvdfah.js +541 -0
  196. package/dist/index.js +499 -0
  197. package/dist/init-Bm04RagW.js +122 -0
  198. package/dist/init-CaJBf4p1.js +122 -0
  199. package/dist/input-provenance-BgwBljRz.js +35 -0
  200. package/dist/input-provenance-DJBdpeKk.js +35 -0
  201. package/dist/input-provenance-iu26y0GH.js +35 -0
  202. package/dist/installs-C2iMRBVz.js +383 -0
  203. package/dist/installs-D-cPGdCw.js +383 -0
  204. package/dist/internal-hooks-DFTIurVM.js +77 -0
  205. package/dist/ipv4-C5QxzriV.js +1964 -0
  206. package/dist/ipv4-TxR9wQCQ.js +1964 -0
  207. package/dist/is-main-Dt9DTcH1.js +25 -0
  208. package/dist/is-main-cB3p7uob.js +25 -0
  209. package/dist/lanes-CNxj3tit.js +232 -0
  210. package/dist/legacy-names-CKU7tKQR.js +8 -0
  211. package/dist/lifecycle-core-B_7XRcvF.js +388 -0
  212. package/dist/lifecycle-core-By83PVAK.js +387 -0
  213. package/dist/links-BfjHVTB_.js +15 -0
  214. package/dist/links-DPGe0OHw.js +15 -0
  215. package/dist/llm-slug-generator.js +62 -0
  216. package/dist/loader-6Qkyybg1.js +87 -0
  217. package/dist/loader-Dmc0KyQK.js +87 -0
  218. package/dist/logging-54nXj81z.js +1 -0
  219. package/dist/logging-BdnOSVPD.js +1 -0
  220. package/dist/logging-DB6BQmhi.js +15 -0
  221. package/dist/logging-mcb66J0p.js +15 -0
  222. package/dist/login--8D8kyRy.js +61 -0
  223. package/dist/login-C-ugYHKt.js +61 -0
  224. package/dist/login-CX5Q2fYl.js +59 -0
  225. package/dist/login-qr-BLmGvITg.js +321 -0
  226. package/dist/login-qr-BNtuXLKL.js +323 -0
  227. package/dist/login-qr-PcyTC7Ra.js +326 -0
  228. package/dist/logs-cli-BEQVkiXp.js +245 -0
  229. package/dist/logs-cli-CIqiVMkY.js +242 -0
  230. package/dist/manager-Bsy9ifug.js +3244 -0
  231. package/dist/manager-CDgcZ51c.js +3246 -0
  232. package/dist/manager-D7QQ5XrE.js +3244 -0
  233. package/dist/manifest-registry-CW1zCyRF.js +748 -0
  234. package/dist/manifest-registry-D4lM2RdV.js +748 -0
  235. package/dist/markdown-tables-BT1X6jqH.js +347 -0
  236. package/dist/markdown-tables-DHgOK2vI.js +348 -0
  237. package/dist/media-THyainiE.js +1342 -0
  238. package/dist/memory-cli-BmIyAOZm.js +869 -0
  239. package/dist/memory-cli-BoXdfCLT.js +868 -0
  240. package/dist/message-channel-dSTVVCyX.js +110 -0
  241. package/dist/message-channel-w4F2b2F6.js +110 -0
  242. package/dist/migrate-BR6iAIjO.js +157 -0
  243. package/dist/migrate-D0EcMs0f.js +157 -0
  244. package/dist/mime-B1ZoR53M.js +145 -0
  245. package/dist/mime-Bm1xTtpY.js +145 -0
  246. package/dist/mime-C1RlpUSs.js +145 -0
  247. package/dist/model-param-b-C4BL7w0Z.js +16 -0
  248. package/dist/model-param-b-DPwyNGn8.js +16 -0
  249. package/dist/model-selection-BnEobs_z.js +2692 -0
  250. package/dist/models-KLd8Evmq.js +2545 -0
  251. package/dist/models-cli-D4UFQLid.js +258 -0
  252. package/dist/models-cli-DJHs5rJF.js +2739 -0
  253. package/dist/net-B5lXhYLV.js +218 -0
  254. package/dist/net-CDi_lJMH.js +88 -0
  255. package/dist/node-cli-BNCJUkgA.js +1319 -0
  256. package/dist/node-cli-C7S0vk0_.js +1322 -0
  257. package/dist/node-match-8XZnaid6.js +34 -0
  258. package/dist/node-match-B3Osv-5C.js +34 -0
  259. package/dist/node-service-BFxHJsno.js +67 -0
  260. package/dist/node-service-DUnan4uK.js +67 -0
  261. package/dist/nodes-cli-DOXhYgc8.js +1200 -0
  262. package/dist/nodes-cli-wvPZ3HwH.js +1197 -0
  263. package/dist/nodes-screen-1YiLkqr5.js +234 -0
  264. package/dist/nodes-screen-DZeD8hE5.js +234 -0
  265. package/dist/normalize-Dlcj9D3K.js +52 -0
  266. package/dist/normalize-GDK8JTNW.js +52 -0
  267. package/dist/note-Bi8Wb8DV.js +73 -0
  268. package/dist/note-uiuPxhyX.js +73 -0
  269. package/dist/npm-registry-spec-B-XIShkB.js +351 -0
  270. package/dist/npm-registry-spec-za3itb5Y.js +351 -0
  271. package/dist/onboard-DiTRW6CH.js +1165 -0
  272. package/dist/onboard-channels-BgruIpyg.js +672 -0
  273. package/dist/onboard-channels-gyq0VHHp.js +672 -0
  274. package/dist/onboard-helpers-BEaUind0.js +365 -0
  275. package/dist/onboard-helpers-f5Zprayl.js +365 -0
  276. package/dist/onboard-lH3XPWAK.js +1166 -0
  277. package/dist/onboarding-D0FOkXGt.js +910 -0
  278. package/dist/onboarding-kQVgbiIR.js +911 -0
  279. package/dist/openclaw-root-0yHXtO35.js +88 -0
  280. package/dist/openclaw-root-C85WMnVV.js +88 -0
  281. package/dist/orchestrator-CYTk7mq6.js +355 -0
  282. package/dist/orchestrator-J6ELnJXl.js +355 -0
  283. package/dist/outbound-BEq0qbPR.js +214 -0
  284. package/dist/outbound-BSVD-rjk.js +2062 -0
  285. package/dist/outbound-DXijk0db.js +214 -0
  286. package/dist/outbound-send-deps-ANnAhImn.js +14 -0
  287. package/dist/outbound-send-deps-BNGPU7jV.js +55 -0
  288. package/dist/pairing-cli-DKUyb6eK.js +118 -0
  289. package/dist/pairing-cli-ET2p_mXH.js +121 -0
  290. package/dist/pairing-store-CGYSwICJ.js +388 -0
  291. package/dist/pairing-store-DqQPqRMe.js +388 -0
  292. package/dist/parse-6-2MDhdT.js +23 -0
  293. package/dist/parse-CpunmTOS.js +23 -0
  294. package/dist/parse-log-line-Bqh1SSzC.js +44 -0
  295. package/dist/parse-log-line-DUZCjXbl.js +44 -0
  296. package/dist/parse-port-BKB9Exlg.js +12 -0
  297. package/dist/parse-port-DrfvwwiL.js +12 -0
  298. package/dist/parse-timeout-Di_tcEmi.js +16 -0
  299. package/dist/parse-timeout-vVlESvju.js +16 -0
  300. package/dist/path-env-Bu6k0jDQ.js +89 -0
  301. package/dist/path-env-C0zQSjw8.js +89 -0
  302. package/dist/paths-BTc4nk-6.js +126 -0
  303. package/dist/paths-BgUi2Z2G.js +54 -0
  304. package/dist/paths-C6VCWKo3.js +238 -0
  305. package/dist/paths-CCxa0o9c.js +222 -0
  306. package/dist/paths-CxRf2rBG.js +129 -0
  307. package/dist/paths-DcVEkYX5.js +54 -0
  308. package/dist/paths-hcX1Gqg5.js +129 -0
  309. package/dist/pi-auth-json-BzX-qyRo.js +82 -0
  310. package/dist/pi-auth-json-eesA38iW.js +78 -0
  311. package/dist/pi-auth-json-uEDdgg8K.js +80 -0
  312. package/dist/pi-embedded-C1Nl7L89.js +22 -0
  313. package/dist/pi-model-discovery-BkqhoPls.js +20 -0
  314. package/dist/pi-model-discovery-CQOWUAmK.js +3 -0
  315. package/dist/pi-model-discovery-DsRqYJLy.js +20 -0
  316. package/dist/pi-tools.policy-D9AUlreI.js +200 -0
  317. package/dist/pi-tools.policy-DRDm3v-2.js +200 -0
  318. package/dist/plugin-auto-enable-C-JwYMlZ.js +282 -0
  319. package/dist/plugin-auto-enable-DLIDBBfi.js +282 -0
  320. package/dist/plugin-registry-Bp8mivr-.js +32 -0
  321. package/dist/plugin-registry-CP7KgCvC.js +32 -0
  322. package/dist/plugin-sdk/account-id.d.ts +1 -0
  323. package/dist/plugin-sdk/account-id.js +15 -0
  324. package/dist/plugin-sdk/agents/agent-paths.d.ts +6 -0
  325. package/dist/plugin-sdk/agents/agent-scope.d.ts +37 -0
  326. package/dist/plugin-sdk/agents/anima-tools.d.ts +1 -0
  327. package/dist/plugin-sdk/agents/apply-patch-update.d.ts +10 -0
  328. package/dist/plugin-sdk/agents/apply-patch.d.ts +35 -0
  329. package/dist/plugin-sdk/agents/auth-profiles/constants.d.ts +20 -0
  330. package/dist/plugin-sdk/agents/auth-profiles/display.d.ts +7 -0
  331. package/dist/plugin-sdk/agents/auth-profiles/doctor.d.ts +8 -0
  332. package/dist/plugin-sdk/agents/auth-profiles/external-cli-sync.d.ts +7 -0
  333. package/dist/plugin-sdk/agents/auth-profiles/oauth.d.ts +12 -0
  334. package/dist/plugin-sdk/agents/auth-profiles/order.d.ts +8 -0
  335. package/dist/plugin-sdk/agents/auth-profiles/paths.d.ts +4 -0
  336. package/dist/plugin-sdk/agents/auth-profiles/profiles.d.ts +23 -0
  337. package/dist/plugin-sdk/agents/auth-profiles/repair.d.ts +14 -0
  338. package/dist/plugin-sdk/agents/auth-profiles/session-override.d.ts +18 -0
  339. package/dist/plugin-sdk/agents/auth-profiles/store.d.ts +10 -0
  340. package/dist/plugin-sdk/agents/auth-profiles/types.d.ts +60 -0
  341. package/dist/plugin-sdk/agents/auth-profiles/usage.d.ts +47 -0
  342. package/dist/plugin-sdk/agents/auth-profiles.d.ts +11 -0
  343. package/dist/plugin-sdk/agents/bash-process-registry.d.ts +70 -0
  344. package/dist/plugin-sdk/agents/bash-tools.d.ts +4 -0
  345. package/dist/plugin-sdk/agents/bash-tools.exec-runtime.d.ts +73 -0
  346. package/dist/plugin-sdk/agents/bash-tools.exec.d.ts +55 -0
  347. package/dist/plugin-sdk/agents/bash-tools.process.d.ts +7 -0
  348. package/dist/plugin-sdk/agents/bash-tools.shared.d.ts +48 -0
  349. package/dist/plugin-sdk/agents/bedrock-discovery.d.ts +9 -0
  350. package/dist/plugin-sdk/agents/bootstrap-files.d.ts +25 -0
  351. package/dist/plugin-sdk/agents/bootstrap-hooks.d.ts +10 -0
  352. package/dist/plugin-sdk/agents/channel-tools.d.ts +27 -0
  353. package/dist/plugin-sdk/agents/chutes-oauth.d.ts +46 -0
  354. package/dist/plugin-sdk/agents/cli-backends.d.ts +8 -0
  355. package/dist/plugin-sdk/agents/cli-credentials.d.ts +83 -0
  356. package/dist/plugin-sdk/agents/cli-runner/helpers.d.ts +76 -0
  357. package/dist/plugin-sdk/agents/cli-runner.d.ts +41 -0
  358. package/dist/plugin-sdk/agents/cli-session.d.ts +3 -0
  359. package/dist/plugin-sdk/agents/cloudflare-ai-gateway.d.ts +22 -0
  360. package/dist/plugin-sdk/agents/context.d.ts +1 -0
  361. package/dist/plugin-sdk/agents/current-time.d.ts +17 -0
  362. package/dist/plugin-sdk/agents/date-time.d.ts +13 -0
  363. package/dist/plugin-sdk/agents/defaults.d.ts +3 -0
  364. package/dist/plugin-sdk/agents/docs-path.d.ts +6 -0
  365. package/dist/plugin-sdk/agents/failover-error.d.ts +33 -0
  366. package/dist/plugin-sdk/agents/glob-pattern.d.ts +18 -0
  367. package/dist/plugin-sdk/agents/huggingface-models.d.ts +17 -0
  368. package/dist/plugin-sdk/agents/identity-avatar.d.ts +15 -0
  369. package/dist/plugin-sdk/agents/identity-file.d.ts +12 -0
  370. package/dist/plugin-sdk/agents/identity.d.ts +25 -0
  371. package/dist/plugin-sdk/agents/lanes.d.ts +3 -0
  372. package/dist/plugin-sdk/agents/memory-search.d.ts +66 -0
  373. package/dist/plugin-sdk/agents/minimax-vlm.d.ts +7 -0
  374. package/dist/plugin-sdk/agents/model-alias-lines.d.ts +2 -0
  375. package/dist/plugin-sdk/agents/model-auth.d.ts +36 -0
  376. package/dist/plugin-sdk/agents/model-catalog.d.ts +25 -0
  377. package/dist/plugin-sdk/agents/model-fallback.d.ts +40 -0
  378. package/dist/plugin-sdk/agents/model-selection.d.ts +94 -0
  379. package/dist/plugin-sdk/agents/models-config.d.ts +13 -0
  380. package/dist/plugin-sdk/agents/models-config.providers.d.ts +37 -0
  381. package/dist/plugin-sdk/agents/ollama-stream.d.ts +45 -0
  382. package/dist/plugin-sdk/agents/openclaw-tools.d.ts +46 -0
  383. package/dist/plugin-sdk/agents/pi-auth-json.d.ts +14 -0
  384. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +7 -0
  385. package/dist/plugin-sdk/agents/pi-embedded-runner/model.d.ts +1 -0
  386. package/dist/plugin-sdk/agents/pi-embedded-runner/run/params.d.ts +5 -0
  387. package/dist/plugin-sdk/agents/pi-embedded-runner.d.ts +25 -0
  388. package/dist/plugin-sdk/agents/pi-embedded-utils.d.ts +7 -0
  389. package/dist/plugin-sdk/agents/pi-embedded.d.ts +25 -0
  390. package/dist/plugin-sdk/agents/pi-model-discovery.d.ts +4 -0
  391. package/dist/plugin-sdk/agents/pi-settings.d.ts +19 -0
  392. package/dist/plugin-sdk/agents/pi-tools.abort.d.ts +2 -0
  393. package/dist/plugin-sdk/agents/pi-tools.before-tool-call.d.ts +29 -0
  394. package/dist/plugin-sdk/agents/pi-tools.d.ts +69 -0
  395. package/dist/plugin-sdk/agents/pi-tools.policy.d.ts +37 -0
  396. package/dist/plugin-sdk/agents/pi-tools.read.d.ts +44 -0
  397. package/dist/plugin-sdk/agents/pi-tools.schema.d.ts +3 -0
  398. package/dist/plugin-sdk/agents/pi-tools.types.d.ts +2 -0
  399. package/dist/plugin-sdk/agents/pty-dsr.d.ts +5 -0
  400. package/dist/plugin-sdk/agents/pty-keys.d.ts +13 -0
  401. package/dist/plugin-sdk/agents/sandbox/browser-bridges.d.ts +7 -0
  402. package/dist/plugin-sdk/agents/sandbox/browser.d.ts +12 -0
  403. package/dist/plugin-sdk/agents/sandbox/config-hash.d.ts +17 -0
  404. package/dist/plugin-sdk/agents/sandbox/config.d.ts +26 -0
  405. package/dist/plugin-sdk/agents/sandbox/constants.d.ts +19 -0
  406. package/dist/plugin-sdk/agents/sandbox/context.d.ts +12 -0
  407. package/dist/plugin-sdk/agents/sandbox/docker.d.ts +40 -0
  408. package/dist/plugin-sdk/agents/sandbox/fs-bridge.d.ts +56 -0
  409. package/dist/plugin-sdk/agents/sandbox/fs-paths.d.ts +28 -0
  410. package/dist/plugin-sdk/agents/sandbox/manage.d.ts +13 -0
  411. package/dist/plugin-sdk/agents/sandbox/prune.d.ts +3 -0
  412. package/dist/plugin-sdk/agents/sandbox/registry.d.ts +31 -0
  413. package/dist/plugin-sdk/agents/sandbox/runtime-status.d.ts +18 -0
  414. package/dist/plugin-sdk/agents/sandbox/shared.d.ts +4 -0
  415. package/dist/plugin-sdk/agents/sandbox/tool-policy.d.ts +4 -0
  416. package/dist/plugin-sdk/agents/sandbox/types.d.ts +76 -0
  417. package/dist/plugin-sdk/agents/sandbox/types.docker.d.ts +25 -0
  418. package/dist/plugin-sdk/agents/sandbox/workspace.d.ts +1 -0
  419. package/dist/plugin-sdk/agents/sandbox-paths.d.ts +23 -0
  420. package/dist/plugin-sdk/agents/sandbox.d.ts +8 -0
  421. package/dist/plugin-sdk/agents/schema/clean-for-gemini.d.ts +2 -0
  422. package/dist/plugin-sdk/agents/schema/typebox.d.ts +14 -0
  423. package/dist/plugin-sdk/agents/session-slug.d.ts +1 -0
  424. package/dist/plugin-sdk/agents/session-write-lock.d.ts +21 -0
  425. package/dist/plugin-sdk/agents/shell-utils.d.ts +7 -0
  426. package/dist/plugin-sdk/agents/skills/bundled-dir.d.ts +7 -0
  427. package/dist/plugin-sdk/agents/skills/config.d.ts +13 -0
  428. package/dist/plugin-sdk/agents/skills/env-overrides.d.ts +10 -0
  429. package/dist/plugin-sdk/agents/skills/frontmatter.d.ts +6 -0
  430. package/dist/plugin-sdk/agents/skills/plugin-skills.d.ts +5 -0
  431. package/dist/plugin-sdk/agents/skills/refresh.d.ts +19 -0
  432. package/dist/plugin-sdk/agents/skills/serialize.d.ts +1 -0
  433. package/dist/plugin-sdk/agents/skills/types.d.ts +80 -0
  434. package/dist/plugin-sdk/agents/skills/workspace.d.ts +49 -0
  435. package/dist/plugin-sdk/agents/skills.d.ts +7 -0
  436. package/dist/plugin-sdk/agents/subagent-announce-queue.d.ts +23 -0
  437. package/dist/plugin-sdk/agents/subagent-announce.d.ts +34 -0
  438. package/dist/plugin-sdk/agents/subagent-depth.d.ts +11 -0
  439. package/dist/plugin-sdk/agents/subagent-registry.d.ts +62 -0
  440. package/dist/plugin-sdk/agents/subagent-registry.store.d.ts +5 -0
  441. package/dist/plugin-sdk/agents/synthetic-models.d.ts +160 -0
  442. package/dist/plugin-sdk/agents/system-prompt-params.d.ts +30 -0
  443. package/dist/plugin-sdk/agents/system-prompt-report.d.ts +20 -0
  444. package/dist/plugin-sdk/agents/system-prompt.d.ts +78 -0
  445. package/dist/plugin-sdk/agents/timeout.d.ts +8 -0
  446. package/dist/plugin-sdk/agents/together-models.d.ts +4 -0
  447. package/dist/plugin-sdk/agents/tool-images.d.ts +19 -0
  448. package/dist/plugin-sdk/agents/tool-policy-pipeline.d.ts +27 -0
  449. package/dist/plugin-sdk/agents/tool-policy.d.ts +39 -0
  450. package/dist/plugin-sdk/agents/tool-summaries.d.ts +2 -0
  451. package/dist/plugin-sdk/agents/tools/agent-step.d.ts +15 -0
  452. package/dist/plugin-sdk/agents/tools/agents-list-tool.d.ts +6 -0
  453. package/dist/plugin-sdk/agents/tools/browser-tool.d.ts +5 -0
  454. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +50 -0
  455. package/dist/plugin-sdk/agents/tools/canvas-tool.d.ts +2 -0
  456. package/dist/plugin-sdk/agents/tools/common.d.ts +56 -0
  457. package/dist/plugin-sdk/agents/tools/cron-tool.d.ts +6 -0
  458. package/dist/plugin-sdk/agents/tools/discord-actions-guild.d.ts +4 -0
  459. package/dist/plugin-sdk/agents/tools/discord-actions-messaging.d.ts +4 -0
  460. package/dist/plugin-sdk/agents/tools/discord-actions-moderation.d.ts +4 -0
  461. package/dist/plugin-sdk/agents/tools/discord-actions-presence.d.ts +4 -0
  462. package/dist/plugin-sdk/agents/tools/discord-actions.d.ts +3 -0
  463. package/dist/plugin-sdk/agents/tools/gateway-tool.d.ts +6 -0
  464. package/dist/plugin-sdk/agents/tools/gateway.d.ts +14 -0
  465. package/dist/plugin-sdk/agents/tools/image-tool.d.ts +35 -0
  466. package/dist/plugin-sdk/agents/tools/image-tool.helpers.d.ts +21 -0
  467. package/dist/plugin-sdk/agents/tools/memory-tool.d.ts +10 -0
  468. package/dist/plugin-sdk/agents/tools/message-tool.d.ts +18 -0
  469. package/dist/plugin-sdk/agents/tools/nodes-tool.d.ts +6 -0
  470. package/dist/plugin-sdk/agents/tools/nodes-utils.d.ts +20 -0
  471. package/dist/plugin-sdk/agents/tools/session-status-tool.d.ts +6 -0
  472. package/dist/plugin-sdk/agents/tools/sessions-announce-target.d.ts +5 -0
  473. package/dist/plugin-sdk/agents/tools/sessions-helpers.d.ts +90 -0
  474. package/dist/plugin-sdk/agents/tools/sessions-history-tool.d.ts +5 -0
  475. package/dist/plugin-sdk/agents/tools/sessions-list-tool.d.ts +5 -0
  476. package/dist/plugin-sdk/agents/tools/sessions-send-helpers.d.ts +34 -0
  477. package/dist/plugin-sdk/agents/tools/sessions-send-tool.a2a.d.ts +12 -0
  478. package/dist/plugin-sdk/agents/tools/sessions-send-tool.d.ts +7 -0
  479. package/dist/plugin-sdk/agents/tools/sessions-spawn-tool.d.ts +15 -0
  480. package/dist/plugin-sdk/agents/tools/slack-actions.d.ts +15 -0
  481. package/dist/plugin-sdk/agents/tools/subagents-tool.d.ts +4 -0
  482. package/dist/plugin-sdk/agents/tools/telegram-actions.d.ts +9 -0
  483. package/dist/plugin-sdk/agents/tools/tts-tool.d.ts +7 -0
  484. package/dist/plugin-sdk/agents/tools/web-fetch-utils.d.ts +18 -0
  485. package/dist/plugin-sdk/agents/tools/web-fetch.d.ts +25 -0
  486. package/dist/plugin-sdk/agents/tools/web-search.d.ts +71 -0
  487. package/dist/plugin-sdk/agents/tools/web-shared.d.ts +17 -0
  488. package/dist/plugin-sdk/agents/tools/web-tools.d.ts +2 -0
  489. package/dist/plugin-sdk/agents/tools/whatsapp-actions.d.ts +3 -0
  490. package/dist/plugin-sdk/agents/usage.d.ts +45 -0
  491. package/dist/plugin-sdk/agents/venice-models.d.ts +238 -0
  492. package/dist/plugin-sdk/agents/workspace-dir.d.ts +2 -0
  493. package/dist/plugin-sdk/agents/workspace-run.d.ts +18 -0
  494. package/dist/plugin-sdk/agents/workspace-templates.d.ts +6 -0
  495. package/dist/plugin-sdk/agents/workspace.d.ts +34 -0
  496. package/dist/plugin-sdk/auto-reply/chunk.d.ts +45 -0
  497. package/dist/plugin-sdk/auto-reply/command-auth.d.ts +17 -0
  498. package/dist/plugin-sdk/auto-reply/command-detection.d.ts +13 -0
  499. package/dist/plugin-sdk/auto-reply/commands-args.d.ts +3 -0
  500. package/dist/plugin-sdk/auto-reply/commands-registry.d.ts +54 -0
  501. package/dist/plugin-sdk/auto-reply/commands-registry.data.d.ts +3 -0
  502. package/dist/plugin-sdk/auto-reply/commands-registry.types.d.ts +66 -0
  503. package/dist/plugin-sdk/auto-reply/dispatch.d.ts +32 -0
  504. package/dist/plugin-sdk/auto-reply/envelope.d.ts +58 -0
  505. package/dist/plugin-sdk/auto-reply/group-activation.d.ts +6 -0
  506. package/dist/plugin-sdk/auto-reply/heartbeat-reply-payload.d.ts +2 -0
  507. package/dist/plugin-sdk/auto-reply/heartbeat.d.ts +26 -0
  508. package/dist/plugin-sdk/auto-reply/inbound-debounce.d.ts +16 -0
  509. package/dist/plugin-sdk/auto-reply/media-note.d.ts +2 -0
  510. package/dist/plugin-sdk/auto-reply/model.d.ts +8 -0
  511. package/dist/plugin-sdk/auto-reply/reply/abort.d.ts +22 -0
  512. package/dist/plugin-sdk/auto-reply/reply/agent-runner-execution.d.ts +49 -0
  513. package/dist/plugin-sdk/auto-reply/reply/agent-runner-helpers.d.ts +17 -0
  514. package/dist/plugin-sdk/auto-reply/reply/agent-runner-memory.d.ts +20 -0
  515. package/dist/plugin-sdk/auto-reply/reply/agent-runner-payloads.d.ts +25 -0
  516. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +30 -0
  517. package/dist/plugin-sdk/auto-reply/reply/agent-runner.d.ts +38 -0
  518. package/dist/plugin-sdk/auto-reply/reply/bash-command.d.ts +19 -0
  519. package/dist/plugin-sdk/auto-reply/reply/block-reply-coalescer.d.ts +15 -0
  520. package/dist/plugin-sdk/auto-reply/reply/block-reply-pipeline.d.ts +31 -0
  521. package/dist/plugin-sdk/auto-reply/reply/block-streaming.d.ts +22 -0
  522. package/dist/plugin-sdk/auto-reply/reply/body.d.ts +10 -0
  523. package/dist/plugin-sdk/auto-reply/reply/commands-allowlist.d.ts +2 -0
  524. package/dist/plugin-sdk/auto-reply/reply/commands-approve.d.ts +2 -0
  525. package/dist/plugin-sdk/auto-reply/reply/commands-bash.d.ts +2 -0
  526. package/dist/plugin-sdk/auto-reply/reply/commands-compact.d.ts +2 -0
  527. package/dist/plugin-sdk/auto-reply/reply/commands-config.d.ts +3 -0
  528. package/dist/plugin-sdk/auto-reply/reply/commands-context-report.d.ts +3 -0
  529. package/dist/plugin-sdk/auto-reply/reply/commands-context.d.ts +12 -0
  530. package/dist/plugin-sdk/auto-reply/reply/commands-core.d.ts +2 -0
  531. package/dist/plugin-sdk/auto-reply/reply/commands-info.d.ts +10 -0
  532. package/dist/plugin-sdk/auto-reply/reply/commands-models.d.ts +23 -0
  533. package/dist/plugin-sdk/auto-reply/reply/commands-plugin.d.ts +13 -0
  534. package/dist/plugin-sdk/auto-reply/reply/commands-session.d.ts +7 -0
  535. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +25 -0
  536. package/dist/plugin-sdk/auto-reply/reply/commands-subagents.d.ts +13 -0
  537. package/dist/plugin-sdk/auto-reply/reply/commands-tts.d.ts +2 -0
  538. package/dist/plugin-sdk/auto-reply/reply/commands-types.d.ts +60 -0
  539. package/dist/plugin-sdk/auto-reply/reply/commands.d.ts +4 -0
  540. package/dist/plugin-sdk/auto-reply/reply/config-commands.d.ts +15 -0
  541. package/dist/plugin-sdk/auto-reply/reply/config-value.d.ts +4 -0
  542. package/dist/plugin-sdk/auto-reply/reply/debug-commands.d.ts +16 -0
  543. package/dist/plugin-sdk/auto-reply/reply/directive-handling.auth.d.ts +19 -0
  544. package/dist/plugin-sdk/auto-reply/reply/directive-handling.d.ts +6 -0
  545. package/dist/plugin-sdk/auto-reply/reply/directive-handling.fast-lane.d.ts +7 -0
  546. package/dist/plugin-sdk/auto-reply/reply/directive-handling.impl.d.ts +3 -0
  547. package/dist/plugin-sdk/auto-reply/reply/directive-handling.model-picker.d.ts +13 -0
  548. package/dist/plugin-sdk/auto-reply/reply/directive-handling.model.d.ts +42 -0
  549. package/dist/plugin-sdk/auto-reply/reply/directive-handling.params.d.ts +51 -0
  550. package/dist/plugin-sdk/auto-reply/reply/directive-handling.parse.d.ts +62 -0
  551. package/dist/plugin-sdk/auto-reply/reply/directive-handling.persist.d.ts +37 -0
  552. package/dist/plugin-sdk/auto-reply/reply/directive-handling.queue-validation.d.ts +10 -0
  553. package/dist/plugin-sdk/auto-reply/reply/directive-handling.shared.d.ts +16 -0
  554. package/dist/plugin-sdk/auto-reply/reply/directive-parsing.d.ts +5 -0
  555. package/dist/plugin-sdk/auto-reply/reply/directives.d.ts +38 -0
  556. package/dist/plugin-sdk/auto-reply/reply/dispatch-from-config.d.ts +16 -0
  557. package/dist/plugin-sdk/auto-reply/reply/dispatcher-registry.d.ts +24 -0
  558. package/dist/plugin-sdk/auto-reply/reply/elevated-unavailable.d.ts +8 -0
  559. package/dist/plugin-sdk/auto-reply/reply/exec/directive.d.ts +20 -0
  560. package/dist/plugin-sdk/auto-reply/reply/exec.d.ts +1 -0
  561. package/dist/plugin-sdk/auto-reply/reply/followup-runner.d.ts +16 -0
  562. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-apply.d.ts +64 -0
  563. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-utils.d.ts +2 -0
  564. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +92 -0
  565. package/dist/plugin-sdk/auto-reply/reply/get-reply-inline-actions.d.ts +59 -0
  566. package/dist/plugin-sdk/auto-reply/reply/get-reply-run.d.ts +69 -0
  567. package/dist/plugin-sdk/auto-reply/reply/get-reply.d.ts +4 -0
  568. package/dist/plugin-sdk/auto-reply/reply/groups.d.ts +26 -0
  569. package/dist/plugin-sdk/auto-reply/reply/history.d.ts +72 -0
  570. package/dist/plugin-sdk/auto-reply/reply/inbound-context.d.ts +8 -0
  571. package/dist/plugin-sdk/auto-reply/reply/inbound-dedupe.d.ts +8 -0
  572. package/dist/plugin-sdk/auto-reply/reply/inbound-meta.d.ts +3 -0
  573. package/dist/plugin-sdk/auto-reply/reply/inbound-text.d.ts +1 -0
  574. package/dist/plugin-sdk/auto-reply/reply/line-directives.d.ts +22 -0
  575. package/dist/plugin-sdk/auto-reply/reply/memory-flush.d.ts +23 -0
  576. package/dist/plugin-sdk/auto-reply/reply/mentions.d.ts +19 -0
  577. package/dist/plugin-sdk/auto-reply/reply/model-selection.d.ts +64 -0
  578. package/dist/plugin-sdk/auto-reply/reply/normalize-reply.d.ts +13 -0
  579. package/dist/plugin-sdk/auto-reply/reply/provider-dispatcher.d.ts +19 -0
  580. package/dist/plugin-sdk/auto-reply/reply/queue/cleanup.d.ts +6 -0
  581. package/dist/plugin-sdk/auto-reply/reply/queue/directive.d.ts +15 -0
  582. package/dist/plugin-sdk/auto-reply/reply/queue/drain.d.ts +2 -0
  583. package/dist/plugin-sdk/auto-reply/reply/queue/enqueue.d.ts +3 -0
  584. package/dist/plugin-sdk/auto-reply/reply/queue/normalize.d.ts +3 -0
  585. package/dist/plugin-sdk/auto-reply/reply/queue/settings.d.ts +2 -0
  586. package/dist/plugin-sdk/auto-reply/reply/queue/state.d.ts +19 -0
  587. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +84 -0
  588. package/dist/plugin-sdk/auto-reply/reply/queue.d.ts +8 -0
  589. package/dist/plugin-sdk/auto-reply/reply/reply-delivery.d.ts +27 -0
  590. package/dist/plugin-sdk/auto-reply/reply/reply-directives.d.ts +14 -0
  591. package/dist/plugin-sdk/auto-reply/reply/reply-dispatcher.d.ts +52 -0
  592. package/dist/plugin-sdk/auto-reply/reply/reply-elevated.d.ts +16 -0
  593. package/dist/plugin-sdk/auto-reply/reply/reply-inline.d.ts +8 -0
  594. package/dist/plugin-sdk/auto-reply/reply/reply-payloads.d.ts +22 -0
  595. package/dist/plugin-sdk/auto-reply/reply/reply-tags.d.ts +6 -0
  596. package/dist/plugin-sdk/auto-reply/reply/reply-threading.d.ts +9 -0
  597. package/dist/plugin-sdk/auto-reply/reply/response-prefix-template.d.ts +51 -0
  598. package/dist/plugin-sdk/auto-reply/reply/route-reply.d.ts +56 -0
  599. package/dist/plugin-sdk/auto-reply/reply/session-reset-model.d.ts +24 -0
  600. package/dist/plugin-sdk/auto-reply/reply/session-reset-prompt.d.ts +1 -0
  601. package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +11 -0
  602. package/dist/plugin-sdk/auto-reply/reply/session-updates.d.ts +34 -0
  603. package/dist/plugin-sdk/auto-reply/reply/session-usage.d.ts +21 -0
  604. package/dist/plugin-sdk/auto-reply/reply/session.d.ts +26 -0
  605. package/dist/plugin-sdk/auto-reply/reply/stage-sandbox-media.d.ts +9 -0
  606. package/dist/plugin-sdk/auto-reply/reply/subagents-utils.d.ts +7 -0
  607. package/dist/plugin-sdk/auto-reply/reply/typing-mode.d.ts +27 -0
  608. package/dist/plugin-sdk/auto-reply/reply/typing.d.ts +18 -0
  609. package/dist/plugin-sdk/auto-reply/reply/untrusted-context.d.ts +1 -0
  610. package/dist/plugin-sdk/auto-reply/reply.d.ts +6 -0
  611. package/dist/plugin-sdk/auto-reply/send-policy.d.ts +6 -0
  612. package/dist/plugin-sdk/auto-reply/skill-commands.d.ts +18 -0
  613. package/dist/plugin-sdk/auto-reply/status.d.ts +55 -0
  614. package/dist/plugin-sdk/auto-reply/templating.d.ts +152 -0
  615. package/dist/plugin-sdk/auto-reply/thinking.d.ts +22 -0
  616. package/dist/plugin-sdk/auto-reply/tokens.d.ts +3 -0
  617. package/dist/plugin-sdk/auto-reply/types.d.ts +61 -0
  618. package/dist/plugin-sdk/browser/bridge-auth-registry.d.ts +8 -0
  619. package/dist/plugin-sdk/browser/bridge-server.d.ts +18 -0
  620. package/dist/plugin-sdk/browser/cdp.d.ts +123 -0
  621. package/dist/plugin-sdk/browser/cdp.helpers.d.ts +13 -0
  622. package/dist/plugin-sdk/browser/chrome.d.ts +20 -0
  623. package/dist/plugin-sdk/browser/chrome.executables.d.ts +9 -0
  624. package/dist/plugin-sdk/browser/chrome.profile-decoration.d.ts +10 -0
  625. package/dist/plugin-sdk/browser/client-actions-core.d.ts +144 -0
  626. package/dist/plugin-sdk/browser/client-actions-observe.d.ts +68 -0
  627. package/dist/plugin-sdk/browser/client-actions-state.d.ts +90 -0
  628. package/dist/plugin-sdk/browser/client-actions-types.d.ts +18 -0
  629. package/dist/plugin-sdk/browser/client-actions.d.ts +4 -0
  630. package/dist/plugin-sdk/browser/client-fetch.d.ts +20 -0
  631. package/dist/plugin-sdk/browser/client.d.ts +147 -0
  632. package/dist/plugin-sdk/browser/config.d.ts +39 -0
  633. package/dist/plugin-sdk/browser/constants.d.ts +8 -0
  634. package/dist/plugin-sdk/browser/control-auth.d.ts +13 -0
  635. package/dist/plugin-sdk/browser/control-service.d.ts +5 -0
  636. package/dist/plugin-sdk/browser/csrf.d.ts +8 -0
  637. package/dist/plugin-sdk/browser/extension-relay.d.ts +15 -0
  638. package/dist/plugin-sdk/browser/http-auth.d.ts +5 -0
  639. package/dist/plugin-sdk/browser/paths.d.ts +27 -0
  640. package/dist/plugin-sdk/browser/profiles-service.d.ts +25 -0
  641. package/dist/plugin-sdk/browser/profiles.d.ts +30 -0
  642. package/dist/plugin-sdk/browser/proxy-files.d.ts +7 -0
  643. package/dist/plugin-sdk/browser/pw-ai-module.d.ts +6 -0
  644. package/dist/plugin-sdk/browser/pw-ai-state.d.ts +2 -0
  645. package/dist/plugin-sdk/browser/pw-ai.d.ts +2 -0
  646. package/dist/plugin-sdk/browser/pw-role-snapshot.d.ts +35 -0
  647. package/dist/plugin-sdk/browser/pw-session.d.ts +160 -0
  648. package/dist/plugin-sdk/browser/pw-tools-core.activity.d.ts +21 -0
  649. package/dist/plugin-sdk/browser/pw-tools-core.d.ts +8 -0
  650. package/dist/plugin-sdk/browser/pw-tools-core.downloads.d.ts +34 -0
  651. package/dist/plugin-sdk/browser/pw-tools-core.interactions.d.ts +114 -0
  652. package/dist/plugin-sdk/browser/pw-tools-core.responses.d.ts +13 -0
  653. package/dist/plugin-sdk/browser/pw-tools-core.shared.d.ts +6 -0
  654. package/dist/plugin-sdk/browser/pw-tools-core.snapshot.d.ts +64 -0
  655. package/dist/plugin-sdk/browser/pw-tools-core.state.d.ts +46 -0
  656. package/dist/plugin-sdk/browser/pw-tools-core.storage.d.ts +47 -0
  657. package/dist/plugin-sdk/browser/pw-tools-core.trace.d.ts +12 -0
  658. package/dist/plugin-sdk/browser/resolved-config-refresh.d.ts +12 -0
  659. package/dist/plugin-sdk/browser/routes/agent.act.d.ts +3 -0
  660. package/dist/plugin-sdk/browser/routes/agent.act.shared.d.ts +10 -0
  661. package/dist/plugin-sdk/browser/routes/agent.d.ts +3 -0
  662. package/dist/plugin-sdk/browser/routes/agent.debug.d.ts +3 -0
  663. package/dist/plugin-sdk/browser/routes/agent.shared.d.ts +9 -0
  664. package/dist/plugin-sdk/browser/routes/agent.snapshot.d.ts +3 -0
  665. package/dist/plugin-sdk/browser/routes/agent.storage.d.ts +3 -0
  666. package/dist/plugin-sdk/browser/routes/basic.d.ts +3 -0
  667. package/dist/plugin-sdk/browser/routes/dispatcher.d.ts +16 -0
  668. package/dist/plugin-sdk/browser/routes/index.d.ts +3 -0
  669. package/dist/plugin-sdk/browser/routes/path-output.d.ts +1 -0
  670. package/dist/plugin-sdk/browser/routes/tabs.d.ts +3 -0
  671. package/dist/plugin-sdk/browser/routes/types.d.ts +20 -0
  672. package/dist/plugin-sdk/browser/routes/utils.d.ts +15 -0
  673. package/dist/plugin-sdk/browser/screenshot.d.ts +9 -0
  674. package/dist/plugin-sdk/browser/server-context.d.ts +4 -0
  675. package/dist/plugin-sdk/browser/server-context.types.d.ts +79 -0
  676. package/dist/plugin-sdk/browser/server-middleware.d.ts +6 -0
  677. package/dist/plugin-sdk/browser/target-id.d.ts +11 -0
  678. package/dist/plugin-sdk/browser/trash.d.ts +1 -0
  679. package/dist/plugin-sdk/channel-web.d.ts +6 -0
  680. package/dist/plugin-sdk/channels/account-summary.d.ts +17 -0
  681. package/dist/plugin-sdk/channels/ack-reactions.d.ts +29 -0
  682. package/dist/plugin-sdk/channels/allowlist-match.d.ts +15 -0
  683. package/dist/plugin-sdk/channels/allowlists/resolve-utils.d.ts +20 -0
  684. package/dist/plugin-sdk/channels/channel-config.d.ts +39 -0
  685. package/dist/plugin-sdk/channels/chat-type.d.ts +2 -0
  686. package/dist/plugin-sdk/channels/command-gating.d.ts +20 -0
  687. package/dist/plugin-sdk/channels/conversation-label.d.ts +2 -0
  688. package/dist/plugin-sdk/channels/dock.d.ts +36 -0
  689. package/dist/plugin-sdk/channels/location.d.ts +21 -0
  690. package/dist/plugin-sdk/channels/logging.d.ts +20 -0
  691. package/dist/plugin-sdk/channels/mention-gating.d.ts +27 -0
  692. package/dist/plugin-sdk/channels/plugins/actions/discord/handle-action.d.ts +3 -0
  693. package/dist/plugin-sdk/channels/plugins/actions/discord/handle-action.guild-admin.d.ts +9 -0
  694. package/dist/plugin-sdk/channels/plugins/actions/discord.d.ts +2 -0
  695. package/dist/plugin-sdk/channels/plugins/actions/signal.d.ts +2 -0
  696. package/dist/plugin-sdk/channels/plugins/actions/telegram.d.ts +2 -0
  697. package/dist/plugin-sdk/channels/plugins/agent-tools/whatsapp-login.d.ts +2 -0
  698. package/dist/plugin-sdk/channels/plugins/allowlist-match.d.ts +2 -0
  699. package/dist/plugin-sdk/channels/plugins/bluebubbles-actions.d.ts +48 -0
  700. package/dist/plugin-sdk/channels/plugins/channel-config.d.ts +2 -0
  701. package/dist/plugin-sdk/channels/plugins/config-helpers.d.ts +14 -0
  702. package/dist/plugin-sdk/channels/plugins/config-schema.d.ts +3 -0
  703. package/dist/plugin-sdk/channels/plugins/config-writes.d.ts +7 -0
  704. package/dist/plugin-sdk/channels/plugins/directory-config.d.ts +16 -0
  705. package/dist/plugin-sdk/channels/plugins/group-mentions.d.ts +28 -0
  706. package/dist/plugin-sdk/channels/plugins/helpers.d.ts +8 -0
  707. package/dist/plugin-sdk/channels/plugins/index.d.ts +8 -0
  708. package/dist/plugin-sdk/channels/plugins/media-limits.d.ts +9 -0
  709. package/dist/plugin-sdk/channels/plugins/message-action-names.d.ts +2 -0
  710. package/dist/plugin-sdk/channels/plugins/message-actions.d.ts +7 -0
  711. package/dist/plugin-sdk/channels/plugins/normalize/discord.d.ts +2 -0
  712. package/dist/plugin-sdk/channels/plugins/normalize/imessage.d.ts +2 -0
  713. package/dist/plugin-sdk/channels/plugins/normalize/signal.d.ts +2 -0
  714. package/dist/plugin-sdk/channels/plugins/normalize/slack.d.ts +2 -0
  715. package/dist/plugin-sdk/channels/plugins/normalize/telegram.d.ts +2 -0
  716. package/dist/plugin-sdk/channels/plugins/normalize/whatsapp.d.ts +2 -0
  717. package/dist/plugin-sdk/channels/plugins/onboarding/channel-access.d.ts +31 -0
  718. package/dist/plugin-sdk/channels/plugins/onboarding/discord.d.ts +2 -0
  719. package/dist/plugin-sdk/channels/plugins/onboarding/helpers.d.ts +3 -0
  720. package/dist/plugin-sdk/channels/plugins/onboarding/imessage.d.ts +2 -0
  721. package/dist/plugin-sdk/channels/plugins/onboarding/signal.d.ts +3 -0
  722. package/dist/plugin-sdk/channels/plugins/onboarding/slack.d.ts +2 -0
  723. package/dist/plugin-sdk/channels/plugins/onboarding/telegram.d.ts +2 -0
  724. package/dist/plugin-sdk/channels/plugins/onboarding/whatsapp.d.ts +2 -0
  725. package/dist/plugin-sdk/channels/plugins/onboarding-types.d.ts +77 -0
  726. package/dist/plugin-sdk/channels/plugins/outbound/load.d.ts +2 -0
  727. package/dist/plugin-sdk/channels/plugins/pairing-message.d.ts +1 -0
  728. package/dist/plugin-sdk/channels/plugins/pairing.d.ts +16 -0
  729. package/dist/plugin-sdk/channels/plugins/setup-helpers.d.ts +13 -0
  730. package/dist/plugin-sdk/channels/plugins/status-issues/bluebubbles.d.ts +2 -0
  731. package/dist/plugin-sdk/channels/plugins/status-issues/discord.d.ts +2 -0
  732. package/dist/plugin-sdk/channels/plugins/status-issues/shared.d.ts +11 -0
  733. package/dist/plugin-sdk/channels/plugins/status-issues/telegram.d.ts +2 -0
  734. package/dist/plugin-sdk/channels/plugins/status-issues/whatsapp.d.ts +2 -0
  735. package/dist/plugin-sdk/channels/plugins/types.adapters.d.ts +297 -0
  736. package/dist/plugin-sdk/channels/plugins/types.core.d.ts +329 -0
  737. package/dist/plugin-sdk/channels/plugins/types.d.ts +6 -0
  738. package/dist/plugin-sdk/channels/plugins/types.plugin.d.ts +53 -0
  739. package/dist/plugin-sdk/channels/plugins/whatsapp-heartbeat.d.ts +11 -0
  740. package/dist/plugin-sdk/channels/registry.d.ts +16 -0
  741. package/dist/plugin-sdk/channels/reply-prefix.d.ts +24 -0
  742. package/dist/plugin-sdk/channels/sender-label.d.ts +9 -0
  743. package/dist/plugin-sdk/channels/session.d.ts +18 -0
  744. package/dist/plugin-sdk/channels/typing.d.ts +12 -0
  745. package/dist/plugin-sdk/channels/web/index.d.ts +1 -0
  746. package/dist/plugin-sdk/cli/cli-name.d.ts +3 -0
  747. package/dist/plugin-sdk/cli/cli-utils.d.ts +19 -0
  748. package/dist/plugin-sdk/cli/command-format.d.ts +1 -0
  749. package/dist/plugin-sdk/cli/deps.d.ts +18 -0
  750. package/dist/plugin-sdk/cli/memory-cli.d.ts +12 -0
  751. package/dist/plugin-sdk/cli/nodes-camera.d.ts +32 -0
  752. package/dist/plugin-sdk/cli/nodes-canvas.d.ts +10 -0
  753. package/dist/plugin-sdk/cli/nodes-run.d.ts +3 -0
  754. package/dist/plugin-sdk/cli/nodes-screen.d.ts +18 -0
  755. package/dist/plugin-sdk/cli/parse-bytes.d.ts +4 -0
  756. package/dist/plugin-sdk/cli/parse-duration.d.ts +4 -0
  757. package/dist/plugin-sdk/cli/parse-timeout.d.ts +1 -0
  758. package/dist/plugin-sdk/cli/profile-utils.d.ts +2 -0
  759. package/dist/plugin-sdk/cli/progress.d.ts +24 -0
  760. package/dist/plugin-sdk/cli/prompt.d.ts +1 -0
  761. package/dist/plugin-sdk/cli/wait.d.ts +1 -0
  762. package/dist/plugin-sdk/commands/agent/types.d.ts +77 -0
  763. package/dist/plugin-sdk/commands/daemon-runtime.d.ts +8 -0
  764. package/dist/plugin-sdk/commands/health.d.ts +63 -0
  765. package/dist/plugin-sdk/commands/oauth-flow.d.ts +21 -0
  766. package/dist/plugin-sdk/commands/onboard-helpers.d.ts +82 -0
  767. package/dist/plugin-sdk/commands/onboard-types.d.ts +76 -0
  768. package/dist/plugin-sdk/commands/signal-install.d.ts +30 -0
  769. package/dist/plugin-sdk/compat/legacy-names.d.ts +8 -0
  770. package/dist/plugin-sdk/config/agent-dirs.d.ts +14 -0
  771. package/dist/plugin-sdk/config/agent-limits.d.ts +5 -0
  772. package/dist/plugin-sdk/config/backup-rotation.d.ts +5 -0
  773. package/dist/plugin-sdk/config/cache-utils.d.ts +6 -0
  774. package/dist/plugin-sdk/config/config-paths.d.ts +10 -0
  775. package/dist/plugin-sdk/config/config.d.ts +7 -0
  776. package/dist/plugin-sdk/config/defaults.d.ts +18 -0
  777. package/dist/plugin-sdk/config/env-preserve.d.ts +25 -0
  778. package/dist/plugin-sdk/config/env-substitution.d.ts +36 -0
  779. package/dist/plugin-sdk/config/env-vars.d.ts +3 -0
  780. package/dist/plugin-sdk/config/group-policy.d.ts +47 -0
  781. package/dist/plugin-sdk/config/includes.d.ts +32 -0
  782. package/dist/plugin-sdk/config/io.d.ts +55 -0
  783. package/dist/plugin-sdk/config/legacy-migrate.d.ts +5 -0
  784. package/dist/plugin-sdk/config/legacy.d.ts +6 -0
  785. package/dist/plugin-sdk/config/legacy.migrations.d.ts +1 -0
  786. package/dist/plugin-sdk/config/legacy.migrations.part-1.d.ts +2 -0
  787. package/dist/plugin-sdk/config/legacy.migrations.part-2.d.ts +2 -0
  788. package/dist/plugin-sdk/config/legacy.migrations.part-3.d.ts +2 -0
  789. package/dist/plugin-sdk/config/legacy.rules.d.ts +2 -0
  790. package/dist/plugin-sdk/config/legacy.shared.d.ts +19 -0
  791. package/dist/plugin-sdk/config/markdown-tables.d.ts +7 -0
  792. package/dist/plugin-sdk/config/merge-config.d.ts +7 -0
  793. package/dist/plugin-sdk/config/merge-patch.d.ts +5 -0
  794. package/dist/plugin-sdk/config/normalize-paths.d.ts +8 -0
  795. package/dist/plugin-sdk/config/paths.d.ts +57 -0
  796. package/dist/plugin-sdk/config/port-defaults.d.ts +13 -0
  797. package/dist/plugin-sdk/config/runtime-overrides.d.ts +15 -0
  798. package/dist/plugin-sdk/config/sessions/delivery-info.d.ts +12 -0
  799. package/dist/plugin-sdk/config/sessions/group.d.ts +11 -0
  800. package/dist/plugin-sdk/config/sessions/main-session.d.ts +43 -0
  801. package/dist/plugin-sdk/config/sessions/metadata.d.ts +16 -0
  802. package/dist/plugin-sdk/config/sessions/paths.d.ts +21 -0
  803. package/dist/plugin-sdk/config/sessions/reset.d.ts +43 -0
  804. package/dist/plugin-sdk/config/sessions/session-key.d.ts +8 -0
  805. package/dist/plugin-sdk/config/sessions/store.d.ts +99 -0
  806. package/dist/plugin-sdk/config/sessions/transcript.d.ts +18 -0
  807. package/dist/plugin-sdk/config/sessions/types.d.ts +156 -0
  808. package/dist/plugin-sdk/config/sessions.d.ts +10 -0
  809. package/dist/plugin-sdk/config/talk.d.ts +11 -0
  810. package/dist/plugin-sdk/config/telegram-custom-commands.d.ts +24 -0
  811. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +260 -0
  812. package/dist/plugin-sdk/config/types.agents.d.ts +80 -0
  813. package/dist/plugin-sdk/config/types.anima.d.ts +1 -0
  814. package/dist/plugin-sdk/config/types.approvals.d.ts +26 -0
  815. package/dist/plugin-sdk/config/types.auth.d.ts +28 -0
  816. package/dist/plugin-sdk/config/types.base.d.ts +172 -0
  817. package/dist/plugin-sdk/config/types.browser.d.ts +41 -0
  818. package/dist/plugin-sdk/config/types.channels.d.ts +48 -0
  819. package/dist/plugin-sdk/config/types.cron.d.ts +11 -0
  820. package/dist/plugin-sdk/config/types.d.ts +30 -0
  821. package/dist/plugin-sdk/config/types.discord.d.ts +188 -0
  822. package/dist/plugin-sdk/config/types.gateway.d.ts +288 -0
  823. package/dist/plugin-sdk/config/types.googlechat.d.ts +100 -0
  824. package/dist/plugin-sdk/config/types.hooks.d.ts +128 -0
  825. package/dist/plugin-sdk/config/types.imessage.d.ts +71 -0
  826. package/dist/plugin-sdk/config/types.irc.d.ts +96 -0
  827. package/dist/plugin-sdk/config/types.memory.d.ts +45 -0
  828. package/dist/plugin-sdk/config/types.messages.d.ts +121 -0
  829. package/dist/plugin-sdk/config/types.models.d.ts +54 -0
  830. package/dist/plugin-sdk/config/types.msteams.d.ts +101 -0
  831. package/dist/plugin-sdk/config/types.node-host.d.ts +10 -0
  832. package/dist/plugin-sdk/config/types.openclaw.d.ts +114 -0
  833. package/dist/plugin-sdk/config/types.plugins.d.ts +32 -0
  834. package/dist/plugin-sdk/config/types.queue.d.ts +14 -0
  835. package/dist/plugin-sdk/config/types.sandbox.d.ts +78 -0
  836. package/dist/plugin-sdk/config/types.signal.d.ts +86 -0
  837. package/dist/plugin-sdk/config/types.skills.d.ts +28 -0
  838. package/dist/plugin-sdk/config/types.slack.d.ts +150 -0
  839. package/dist/plugin-sdk/config/types.telegram.d.ts +163 -0
  840. package/dist/plugin-sdk/config/types.tools.d.ts +467 -0
  841. package/dist/plugin-sdk/config/types.tts.d.ts +78 -0
  842. package/dist/plugin-sdk/config/types.whatsapp.d.ts +142 -0
  843. package/dist/plugin-sdk/config/validation.d.ts +37 -0
  844. package/dist/plugin-sdk/config/version.d.ts +8 -0
  845. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +249 -0
  846. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +856 -0
  847. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +504 -0
  848. package/dist/plugin-sdk/config/zod-schema.allowdeny.d.ts +13 -0
  849. package/dist/plugin-sdk/config/zod-schema.approvals.d.ts +15 -0
  850. package/dist/plugin-sdk/config/zod-schema.channels.d.ts +6 -0
  851. package/dist/plugin-sdk/config/zod-schema.core.d.ts +683 -0
  852. package/dist/plugin-sdk/config/zod-schema.d.ts +3401 -0
  853. package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +79 -0
  854. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +3233 -0
  855. package/dist/plugin-sdk/config/zod-schema.providers-whatsapp.d.ts +231 -0
  856. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +1900 -0
  857. package/dist/plugin-sdk/config/zod-schema.sensitive.d.ts +2 -0
  858. package/dist/plugin-sdk/config/zod-schema.session.d.ts +203 -0
  859. package/dist/plugin-sdk/cron/delivery.d.ts +9 -0
  860. package/dist/plugin-sdk/cron/normalize.d.ts +9 -0
  861. package/dist/plugin-sdk/cron/parse.d.ts +1 -0
  862. package/dist/plugin-sdk/cron/payload-migration.d.ts +3 -0
  863. package/dist/plugin-sdk/cron/schedule.d.ts +2 -0
  864. package/dist/plugin-sdk/cron/service/jobs.d.ts +21 -0
  865. package/dist/plugin-sdk/cron/service/locked.d.ts +2 -0
  866. package/dist/plugin-sdk/cron/service/normalize.d.ts +17 -0
  867. package/dist/plugin-sdk/cron/service/ops.d.ts +43 -0
  868. package/dist/plugin-sdk/cron/service/state.d.ts +121 -0
  869. package/dist/plugin-sdk/cron/service/store.d.ts +9 -0
  870. package/dist/plugin-sdk/cron/service/timer.d.ts +25 -0
  871. package/dist/plugin-sdk/cron/service.d.ts +48 -0
  872. package/dist/plugin-sdk/cron/session-reaper.d.ts +35 -0
  873. package/dist/plugin-sdk/cron/store.d.ts +6 -0
  874. package/dist/plugin-sdk/cron/types.d.ts +95 -0
  875. package/dist/plugin-sdk/daemon/constants.d.ts +30 -0
  876. package/dist/plugin-sdk/discord/accounts.d.ts +9 -0
  877. package/dist/plugin-sdk/discord/audit.d.ts +2 -0
  878. package/dist/plugin-sdk/discord/directory-live.d.ts +4 -0
  879. package/dist/plugin-sdk/discord/monitor/allow-list.d.ts +1 -0
  880. package/dist/plugin-sdk/discord/monitor/gateway-registry.d.ts +3 -0
  881. package/dist/plugin-sdk/discord/monitor/presence-cache.d.ts +1 -0
  882. package/dist/plugin-sdk/discord/monitor.d.ts +3 -0
  883. package/dist/plugin-sdk/discord/pluralkit.d.ts +1 -0
  884. package/dist/plugin-sdk/discord/probe.d.ts +3 -0
  885. package/dist/plugin-sdk/discord/resolve-channels.d.ts +1 -0
  886. package/dist/plugin-sdk/discord/resolve-users.d.ts +1 -0
  887. package/dist/plugin-sdk/discord/send.d.ts +6 -0
  888. package/dist/plugin-sdk/discord/targets.d.ts +2 -0
  889. package/dist/plugin-sdk/gateway/auth-rate-limit.d.ts +59 -0
  890. package/dist/plugin-sdk/gateway/auth.d.ts +48 -0
  891. package/dist/plugin-sdk/gateway/call.d.ts +51 -0
  892. package/dist/plugin-sdk/gateway/chat-abort.d.ts +44 -0
  893. package/dist/plugin-sdk/gateway/chat-sanitize.d.ts +4 -0
  894. package/dist/plugin-sdk/gateway/client.d.ts +63 -0
  895. package/dist/plugin-sdk/gateway/control-ui-shared.d.ts +9 -0
  896. package/dist/plugin-sdk/gateway/device-auth.d.ts +12 -0
  897. package/dist/plugin-sdk/gateway/exec-approval-manager.d.ts +44 -0
  898. package/dist/plugin-sdk/gateway/net.d.ts +57 -0
  899. package/dist/plugin-sdk/gateway/node-registry.d.ts +60 -0
  900. package/dist/plugin-sdk/gateway/protocol/client-info.d.ts +58 -0
  901. package/dist/plugin-sdk/gateway/protocol/index.d.ts +661 -0
  902. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +86 -0
  903. package/dist/plugin-sdk/gateway/protocol/schema/agents-models-skills.d.ts +152 -0
  904. package/dist/plugin-sdk/gateway/protocol/schema/channels.d.ts +126 -0
  905. package/dist/plugin-sdk/gateway/protocol/schema/config.d.ts +51 -0
  906. package/dist/plugin-sdk/gateway/protocol/schema/cron.d.ts +353 -0
  907. package/dist/plugin-sdk/gateway/protocol/schema/devices.d.ts +38 -0
  908. package/dist/plugin-sdk/gateway/protocol/schema/error-codes.d.ts +14 -0
  909. package/dist/plugin-sdk/gateway/protocol/schema/exec-approvals.d.ts +163 -0
  910. package/dist/plugin-sdk/gateway/protocol/schema/frames.d.ts +164 -0
  911. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +45 -0
  912. package/dist/plugin-sdk/gateway/protocol/schema/nodes.d.ts +64 -0
  913. package/dist/plugin-sdk/gateway/protocol/schema/primitives.d.ts +4 -0
  914. package/dist/plugin-sdk/gateway/protocol/schema/protocol-schemas.d.ts +3 -0
  915. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +76 -0
  916. package/dist/plugin-sdk/gateway/protocol/schema/snapshot.d.ts +64 -0
  917. package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +124 -0
  918. package/dist/plugin-sdk/gateway/protocol/schema/wizard.d.ts +86 -0
  919. package/dist/plugin-sdk/gateway/protocol/schema.d.ts +16 -0
  920. package/dist/plugin-sdk/gateway/server/ws-types.d.ts +9 -0
  921. package/dist/plugin-sdk/gateway/server-channels.d.ts +24 -0
  922. package/dist/plugin-sdk/gateway/server-methods/types.d.ts +98 -0
  923. package/dist/plugin-sdk/gateway/server-shared.d.ts +7 -0
  924. package/dist/plugin-sdk/gateway/session-utils.d.ts +71 -0
  925. package/dist/plugin-sdk/gateway/session-utils.fs.d.ts +33 -0
  926. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +84 -0
  927. package/dist/plugin-sdk/globals.d.ts +11 -0
  928. package/dist/plugin-sdk/hooks/internal-hooks.d.ts +95 -0
  929. package/dist/plugin-sdk/hooks/types.d.ts +62 -0
  930. package/dist/plugin-sdk/imessage/accounts.d.ts +8 -0
  931. package/dist/plugin-sdk/imessage/monitor.d.ts +3 -0
  932. package/dist/plugin-sdk/imessage/probe.d.ts +3 -0
  933. package/dist/plugin-sdk/imessage/send.d.ts +1 -0
  934. package/dist/plugin-sdk/imessage/target-parsing-helpers.d.ts +4 -0
  935. package/dist/plugin-sdk/imessage/targets.d.ts +2 -0
  936. package/dist/plugin-sdk/index.d.ts +1 -0
  937. package/dist/plugin-sdk/index.js +27570 -0
  938. package/dist/plugin-sdk/infra/agent-events.d.ts +21 -0
  939. package/dist/plugin-sdk/infra/anima-root.d.ts +1 -0
  940. package/dist/plugin-sdk/infra/archive.d.ts +41 -0
  941. package/dist/plugin-sdk/infra/backoff.d.ts +8 -0
  942. package/dist/plugin-sdk/infra/binaries.d.ts +3 -0
  943. package/dist/plugin-sdk/infra/brew.d.ts +8 -0
  944. package/dist/plugin-sdk/infra/channel-activity.d.ts +18 -0
  945. package/dist/plugin-sdk/infra/channel-summary.d.ts +6 -0
  946. package/dist/plugin-sdk/infra/dedupe.d.ts +11 -0
  947. package/dist/plugin-sdk/infra/device-auth-store.d.ts +18 -0
  948. package/dist/plugin-sdk/infra/device-identity.d.ts +11 -0
  949. package/dist/plugin-sdk/infra/device-pairing.d.ts +96 -0
  950. package/dist/plugin-sdk/infra/diagnostic-events.d.ts +121 -0
  951. package/dist/plugin-sdk/infra/dotenv.d.ts +3 -0
  952. package/dist/plugin-sdk/infra/env.d.ts +11 -0
  953. package/dist/plugin-sdk/infra/errors.d.ts +11 -0
  954. package/dist/plugin-sdk/infra/exec-approvals-allowlist.d.ts +45 -0
  955. package/dist/plugin-sdk/infra/exec-approvals-analysis.d.ts +78 -0
  956. package/dist/plugin-sdk/infra/exec-approvals.d.ts +107 -0
  957. package/dist/plugin-sdk/infra/exec-safety.d.ts +1 -0
  958. package/dist/plugin-sdk/infra/fetch.d.ts +2 -0
  959. package/dist/plugin-sdk/infra/file-lock.d.ts +2 -0
  960. package/dist/plugin-sdk/infra/format-time/format-datetime.d.ts +35 -0
  961. package/dist/plugin-sdk/infra/format-time/format-duration.d.ts +23 -0
  962. package/dist/plugin-sdk/infra/format-time/format-relative.d.ts +39 -0
  963. package/dist/plugin-sdk/infra/git-commit.d.ts +4 -0
  964. package/dist/plugin-sdk/infra/heartbeat-active-hours.d.ts +5 -0
  965. package/dist/plugin-sdk/infra/heartbeat-events-filter.d.ts +3 -0
  966. package/dist/plugin-sdk/infra/heartbeat-events.d.ts +21 -0
  967. package/dist/plugin-sdk/infra/heartbeat-runner.d.ts +45 -0
  968. package/dist/plugin-sdk/infra/heartbeat-visibility.d.ts +17 -0
  969. package/dist/plugin-sdk/infra/heartbeat-wake.d.ts +27 -0
  970. package/dist/plugin-sdk/infra/home-dir.d.ts +7 -0
  971. package/dist/plugin-sdk/infra/http-body.d.ts +46 -0
  972. package/dist/plugin-sdk/infra/json-file.d.ts +2 -0
  973. package/dist/plugin-sdk/infra/net/fetch-guard.d.ts +21 -0
  974. package/dist/plugin-sdk/infra/net/ssrf.d.ts +32 -0
  975. package/dist/plugin-sdk/infra/node-pairing.d.ts +62 -0
  976. package/dist/plugin-sdk/infra/node-shell.d.ts +1 -0
  977. package/dist/plugin-sdk/infra/openclaw-root.d.ts +10 -0
  978. package/dist/plugin-sdk/infra/outbound/abort.d.ts +8 -0
  979. package/dist/plugin-sdk/infra/outbound/channel-adapters.d.ts +6 -0
  980. package/dist/plugin-sdk/infra/outbound/channel-selection.d.ts +11 -0
  981. package/dist/plugin-sdk/infra/outbound/channel-target.d.ts +6 -0
  982. package/dist/plugin-sdk/infra/outbound/deliver.d.ts +77 -0
  983. package/dist/plugin-sdk/infra/outbound/delivery-queue.d.ts +103 -0
  984. package/dist/plugin-sdk/infra/outbound/directory-cache.d.ts +24 -0
  985. package/dist/plugin-sdk/infra/outbound/identity.d.ts +8 -0
  986. package/dist/plugin-sdk/infra/outbound/message-action-params.d.ts +47 -0
  987. package/dist/plugin-sdk/infra/outbound/message-action-runner.d.ts +74 -0
  988. package/dist/plugin-sdk/infra/outbound/message-action-spec.d.ts +5 -0
  989. package/dist/plugin-sdk/infra/outbound/message.d.ts +85 -0
  990. package/dist/plugin-sdk/infra/outbound/outbound-policy.d.ts +31 -0
  991. package/dist/plugin-sdk/infra/outbound/outbound-send-service.d.ts +64 -0
  992. package/dist/plugin-sdk/infra/outbound/outbound-session.d.ts +31 -0
  993. package/dist/plugin-sdk/infra/outbound/payloads.d.ts +16 -0
  994. package/dist/plugin-sdk/infra/outbound/target-errors.d.ts +6 -0
  995. package/dist/plugin-sdk/infra/outbound/target-normalization.d.ts +4 -0
  996. package/dist/plugin-sdk/infra/outbound/target-resolver.d.ts +53 -0
  997. package/dist/plugin-sdk/infra/outbound/targets.d.ts +65 -0
  998. package/dist/plugin-sdk/infra/outbound/tool-payload.d.ts +2 -0
  999. package/dist/plugin-sdk/infra/pairing-files.d.ts +11 -0
  1000. package/dist/plugin-sdk/infra/pairing-token.d.ts +3 -0
  1001. package/dist/plugin-sdk/infra/path-prepend.d.ts +5 -0
  1002. package/dist/plugin-sdk/infra/ports-format.d.ts +5 -0
  1003. package/dist/plugin-sdk/infra/ports-inspect.d.ts +2 -0
  1004. package/dist/plugin-sdk/infra/ports-lsof.d.ts +2 -0
  1005. package/dist/plugin-sdk/infra/ports-types.d.ts +17 -0
  1006. package/dist/plugin-sdk/infra/ports.d.ts +14 -0
  1007. package/dist/plugin-sdk/infra/provider-usage.auth.d.ts +11 -0
  1008. package/dist/plugin-sdk/infra/provider-usage.d.ts +4 -0
  1009. package/dist/plugin-sdk/infra/provider-usage.fetch.antigravity.d.ts +2 -0
  1010. package/dist/plugin-sdk/infra/provider-usage.fetch.claude.d.ts +2 -0
  1011. package/dist/plugin-sdk/infra/provider-usage.fetch.codex.d.ts +2 -0
  1012. package/dist/plugin-sdk/infra/provider-usage.fetch.copilot.d.ts +2 -0
  1013. package/dist/plugin-sdk/infra/provider-usage.fetch.d.ts +7 -0
  1014. package/dist/plugin-sdk/infra/provider-usage.fetch.gemini.d.ts +2 -0
  1015. package/dist/plugin-sdk/infra/provider-usage.fetch.minimax.d.ts +2 -0
  1016. package/dist/plugin-sdk/infra/provider-usage.fetch.shared.d.ts +1 -0
  1017. package/dist/plugin-sdk/infra/provider-usage.fetch.zai.d.ts +2 -0
  1018. package/dist/plugin-sdk/infra/provider-usage.format.d.ts +13 -0
  1019. package/dist/plugin-sdk/infra/provider-usage.load.d.ts +12 -0
  1020. package/dist/plugin-sdk/infra/provider-usage.shared.d.ts +8 -0
  1021. package/dist/plugin-sdk/infra/provider-usage.types.d.ts +17 -0
  1022. package/dist/plugin-sdk/infra/restart-sentinel.d.ts +50 -0
  1023. package/dist/plugin-sdk/infra/restart.d.ts +61 -0
  1024. package/dist/plugin-sdk/infra/retry.d.ts +21 -0
  1025. package/dist/plugin-sdk/infra/session-cost-usage.d.ts +45 -0
  1026. package/dist/plugin-sdk/infra/session-cost-usage.types.d.ts +153 -0
  1027. package/dist/plugin-sdk/infra/session-maintenance-warning.d.ts +10 -0
  1028. package/dist/plugin-sdk/infra/shell-env.d.ts +33 -0
  1029. package/dist/plugin-sdk/infra/skills-remote.d.ts +25 -0
  1030. package/dist/plugin-sdk/infra/system-events.d.ts +18 -0
  1031. package/dist/plugin-sdk/infra/tailnet.d.ts +7 -0
  1032. package/dist/plugin-sdk/infra/tailscale.d.ts +34 -0
  1033. package/dist/plugin-sdk/infra/tls/fingerprint.d.ts +1 -0
  1034. package/dist/plugin-sdk/infra/tls/gateway.d.ts +16 -0
  1035. package/dist/plugin-sdk/infra/tmp-anima-dir.d.ts +1 -0
  1036. package/dist/plugin-sdk/infra/tmp-openclaw-dir.d.ts +18 -0
  1037. package/dist/plugin-sdk/infra/unhandled-rejections.d.ts +15 -0
  1038. package/dist/plugin-sdk/infra/warning-filter.d.ts +7 -0
  1039. package/dist/plugin-sdk/infra/ws.d.ts +2 -0
  1040. package/dist/plugin-sdk/infra/wsl.d.ts +11 -0
  1041. package/dist/plugin-sdk/line/accounts.d.ts +9 -0
  1042. package/dist/plugin-sdk/line/config-schema.d.ts +1 -0
  1043. package/dist/plugin-sdk/line/flex-templates.d.ts +14 -0
  1044. package/dist/plugin-sdk/line/markdown-to-line.d.ts +6 -0
  1045. package/dist/plugin-sdk/line/monitor.d.ts +3 -0
  1046. package/dist/plugin-sdk/line/probe.d.ts +3 -0
  1047. package/dist/plugin-sdk/line/send.d.ts +14 -0
  1048. package/dist/plugin-sdk/line/template-messages.d.ts +1 -0
  1049. package/dist/plugin-sdk/line/types.d.ts +6 -0
  1050. package/dist/plugin-sdk/link-understanding/apply.d.ts +10 -0
  1051. package/dist/plugin-sdk/link-understanding/defaults.d.ts +2 -0
  1052. package/dist/plugin-sdk/link-understanding/detect.d.ts +3 -0
  1053. package/dist/plugin-sdk/link-understanding/format.d.ts +4 -0
  1054. package/dist/plugin-sdk/link-understanding/runner.d.ts +11 -0
  1055. package/dist/plugin-sdk/logger.d.ts +6 -0
  1056. package/dist/plugin-sdk/logging/config.d.ts +4 -0
  1057. package/dist/plugin-sdk/logging/console.d.ts +23 -0
  1058. package/dist/plugin-sdk/logging/diagnostic-session-state.d.ts +17 -0
  1059. package/dist/plugin-sdk/logging/diagnostic.d.ts +56 -0
  1060. package/dist/plugin-sdk/logging/levels.d.ts +4 -0
  1061. package/dist/plugin-sdk/logging/logger.d.ts +42 -0
  1062. package/dist/plugin-sdk/logging/redact-identifier.d.ts +4 -0
  1063. package/dist/plugin-sdk/logging/redact.d.ts +9 -0
  1064. package/dist/plugin-sdk/logging/state.d.ts +18 -0
  1065. package/dist/plugin-sdk/logging/subsystem.d.ts +18 -0
  1066. package/dist/plugin-sdk/logging.d.ts +10 -0
  1067. package/dist/plugin-sdk/markdown/fences.d.ts +10 -0
  1068. package/dist/plugin-sdk/markdown/frontmatter.d.ts +2 -0
  1069. package/dist/plugin-sdk/markdown/ir.d.ts +32 -0
  1070. package/dist/plugin-sdk/markdown/render.d.ts +18 -0
  1071. package/dist/plugin-sdk/markdown/tables.d.ts +2 -0
  1072. package/dist/plugin-sdk/markdown/whatsapp.d.ts +14 -0
  1073. package/dist/plugin-sdk/media/audio-tags.d.ts +10 -0
  1074. package/dist/plugin-sdk/media/audio.d.ts +19 -0
  1075. package/dist/plugin-sdk/media/base64.d.ts +1 -0
  1076. package/dist/plugin-sdk/media/constants.d.ts +7 -0
  1077. package/dist/plugin-sdk/media/fetch.d.ts +23 -0
  1078. package/dist/plugin-sdk/media/image-ops.d.ts +39 -0
  1079. package/dist/plugin-sdk/media/input-files.d.ts +81 -0
  1080. package/dist/plugin-sdk/media/mime.d.ts +16 -0
  1081. package/dist/plugin-sdk/media/parse.d.ts +8 -0
  1082. package/dist/plugin-sdk/media/png-encode.d.ts +8 -0
  1083. package/dist/plugin-sdk/media/read-response-with-limit.d.ts +7 -0
  1084. package/dist/plugin-sdk/media/sniff-mime-from-base64.d.ts +1 -0
  1085. package/dist/plugin-sdk/media/store.d.ts +28 -0
  1086. package/dist/plugin-sdk/media-understanding/apply.d.ts +19 -0
  1087. package/dist/plugin-sdk/media-understanding/attachments.d.ts +43 -0
  1088. package/dist/plugin-sdk/media-understanding/concurrency.d.ts +1 -0
  1089. package/dist/plugin-sdk/media-understanding/defaults.d.ts +14 -0
  1090. package/dist/plugin-sdk/media-understanding/errors.d.ts +6 -0
  1091. package/dist/plugin-sdk/media-understanding/format.d.ts +7 -0
  1092. package/dist/plugin-sdk/media-understanding/output-extract.d.ts +2 -0
  1093. package/dist/plugin-sdk/media-understanding/providers/image.d.ts +1 -0
  1094. package/dist/plugin-sdk/media-understanding/providers/index.d.ts +8 -0
  1095. package/dist/plugin-sdk/media-understanding/providers/shared.d.ts +4 -0
  1096. package/dist/plugin-sdk/media-understanding/resolve.d.ts +44 -0
  1097. package/dist/plugin-sdk/media-understanding/runner.d.ts +35 -0
  1098. package/dist/plugin-sdk/media-understanding/runner.entries.d.ts +33 -0
  1099. package/dist/plugin-sdk/media-understanding/scope.d.ts +9 -0
  1100. package/dist/plugin-sdk/media-understanding/types.d.ts +93 -0
  1101. package/dist/plugin-sdk/media-understanding/video.d.ts +2 -0
  1102. package/dist/plugin-sdk/memory/backend-config.d.ts +49 -0
  1103. package/dist/plugin-sdk/memory/batch-gemini.d.ts +55 -0
  1104. package/dist/plugin-sdk/memory/batch-http.d.ts +6 -0
  1105. package/dist/plugin-sdk/memory/batch-openai.d.ts +45 -0
  1106. package/dist/plugin-sdk/memory/batch-output.d.ts +23 -0
  1107. package/dist/plugin-sdk/memory/batch-voyage.d.ts +46 -0
  1108. package/dist/plugin-sdk/memory/embedding-chunk-limits.d.ts +3 -0
  1109. package/dist/plugin-sdk/memory/embedding-input-limits.d.ts +2 -0
  1110. package/dist/plugin-sdk/memory/embedding-model-limits.d.ts +2 -0
  1111. package/dist/plugin-sdk/memory/embeddings-gemini.d.ts +13 -0
  1112. package/dist/plugin-sdk/memory/embeddings-openai.d.ts +13 -0
  1113. package/dist/plugin-sdk/memory/embeddings-voyage.d.ts +13 -0
  1114. package/dist/plugin-sdk/memory/embeddings.d.ts +44 -0
  1115. package/dist/plugin-sdk/memory/hybrid.d.ts +34 -0
  1116. package/dist/plugin-sdk/memory/index.d.ts +3 -0
  1117. package/dist/plugin-sdk/memory/internal.d.ts +38 -0
  1118. package/dist/plugin-sdk/memory/manager-embedding-ops.d.ts +32 -0
  1119. package/dist/plugin-sdk/memory/manager-search.d.ts +60 -0
  1120. package/dist/plugin-sdk/memory/manager-sync-ops.d.ts +40 -0
  1121. package/dist/plugin-sdk/memory/manager.d.ts +75 -0
  1122. package/dist/plugin-sdk/memory/memory-schema.d.ts +10 -0
  1123. package/dist/plugin-sdk/memory/node-llama.d.ts +8 -0
  1124. package/dist/plugin-sdk/memory/qmd-manager.d.ts +109 -0
  1125. package/dist/plugin-sdk/memory/qmd-query-parser.d.ts +8 -0
  1126. package/dist/plugin-sdk/memory/qmd-scope.d.ts +4 -0
  1127. package/dist/plugin-sdk/memory/search-manager.d.ts +11 -0
  1128. package/dist/plugin-sdk/memory/session-files.d.ts +14 -0
  1129. package/dist/plugin-sdk/memory/sqlite-vec.d.ts +9 -0
  1130. package/dist/plugin-sdk/memory/sqlite.d.ts +1 -0
  1131. package/dist/plugin-sdk/memory/types.d.ts +94 -0
  1132. package/dist/plugin-sdk/pairing/pairing-messages.d.ts +6 -0
  1133. package/dist/plugin-sdk/pairing/pairing-store.d.ts +46 -0
  1134. package/dist/plugin-sdk/pi-model-discovery-Dw3A6oXH.js +37 -0
  1135. package/dist/plugin-sdk/plugin-sdk/account-id.d.ts +1 -0
  1136. package/dist/plugin-sdk/plugin-sdk/allow-from.d.ts +4 -0
  1137. package/dist/plugin-sdk/plugin-sdk/config-paths.d.ts +6 -0
  1138. package/dist/plugin-sdk/plugin-sdk/file-lock.d.ts +16 -0
  1139. package/dist/plugin-sdk/plugin-sdk/index.d.ts +123 -0
  1140. package/dist/plugin-sdk/plugin-sdk/onboarding.d.ts +11 -0
  1141. package/dist/plugin-sdk/plugin-sdk/text-chunking.d.ts +1 -0
  1142. package/dist/plugin-sdk/plugins/bundled-dir.d.ts +1 -0
  1143. package/dist/plugin-sdk/plugins/commands.d.ts +83 -0
  1144. package/dist/plugin-sdk/plugins/config-schema.d.ts +2 -0
  1145. package/dist/plugin-sdk/plugins/config-state.d.ts +33 -0
  1146. package/dist/plugin-sdk/plugins/discovery.d.ts +22 -0
  1147. package/dist/plugin-sdk/plugins/hook-runner-global.d.ts +37 -0
  1148. package/dist/plugin-sdk/plugins/hooks.d.ts +42 -0
  1149. package/dist/plugin-sdk/plugins/http-path.d.ts +1 -0
  1150. package/dist/plugin-sdk/plugins/http-registry.d.ts +13 -0
  1151. package/dist/plugin-sdk/plugins/loader.d.ts +14 -0
  1152. package/dist/plugin-sdk/plugins/manifest-registry.d.ts +33 -0
  1153. package/dist/plugin-sdk/plugins/manifest.d.ts +64 -0
  1154. package/dist/plugin-sdk/plugins/registry.d.ts +130 -0
  1155. package/dist/plugin-sdk/plugins/runtime/index.d.ts +3 -0
  1156. package/dist/plugin-sdk/plugins/runtime/native-deps.d.ts +8 -0
  1157. package/dist/plugin-sdk/plugins/runtime/types.d.ts +317 -0
  1158. package/dist/plugin-sdk/plugins/runtime.d.ts +5 -0
  1159. package/dist/plugin-sdk/plugins/schema-validator.d.ts +10 -0
  1160. package/dist/plugin-sdk/plugins/slots.d.ts +24 -0
  1161. package/dist/plugin-sdk/plugins/tools.d.ts +13 -0
  1162. package/dist/plugin-sdk/plugins/types.d.ts +411 -0
  1163. package/dist/plugin-sdk/polls.d.ts +31 -0
  1164. package/dist/plugin-sdk/process/command-queue.d.ts +51 -0
  1165. package/dist/plugin-sdk/process/exec.d.ts +26 -0
  1166. package/dist/plugin-sdk/process/lanes.d.ts +6 -0
  1167. package/dist/plugin-sdk/process/spawn-utils.d.ts +26 -0
  1168. package/dist/plugin-sdk/providers/github-copilot-token.d.ts +8 -0
  1169. package/dist/plugin-sdk/providers/qwen-portal-oauth.d.ts +8 -0
  1170. package/dist/plugin-sdk/routing/bindings.d.ts +11 -0
  1171. package/dist/plugin-sdk/routing/resolve-route.d.ts +42 -0
  1172. package/dist/plugin-sdk/routing/session-key.d.ts +48 -0
  1173. package/dist/plugin-sdk/runtime.d.ts +7 -0
  1174. package/dist/plugin-sdk/security/external-content.d.ts +67 -0
  1175. package/dist/plugin-sdk/security/secret-equal.d.ts +1 -0
  1176. package/dist/plugin-sdk/sessions/input-provenance.d.ts +16 -0
  1177. package/dist/plugin-sdk/sessions/level-overrides.d.ts +10 -0
  1178. package/dist/plugin-sdk/sessions/model-overrides.d.ts +14 -0
  1179. package/dist/plugin-sdk/sessions/send-policy.d.ts +11 -0
  1180. package/dist/plugin-sdk/sessions/session-key-utils.d.ts +11 -0
  1181. package/dist/plugin-sdk/sessions/session-label.d.ts +9 -0
  1182. package/dist/plugin-sdk/sessions/transcript-events.d.ts +7 -0
  1183. package/dist/plugin-sdk/shared/chat-envelope.d.ts +2 -0
  1184. package/dist/plugin-sdk/shared/config-eval.d.ts +5 -0
  1185. package/dist/plugin-sdk/shared/device-auth.d.ts +13 -0
  1186. package/dist/plugin-sdk/shared/frontmatter.d.ts +7 -0
  1187. package/dist/plugin-sdk/shared/node-match.d.ts +8 -0
  1188. package/dist/plugin-sdk/shared/subagents-format.d.ts +15 -0
  1189. package/dist/plugin-sdk/shared/text/reasoning-tags.d.ts +6 -0
  1190. package/dist/plugin-sdk/signal/accounts.d.ts +9 -0
  1191. package/dist/plugin-sdk/signal/format.d.ts +9 -0
  1192. package/dist/plugin-sdk/signal/identity.d.ts +3 -0
  1193. package/dist/plugin-sdk/signal/index.d.ts +3 -0
  1194. package/dist/plugin-sdk/signal/probe.d.ts +3 -0
  1195. package/dist/plugin-sdk/signal/reaction-level.d.ts +1 -0
  1196. package/dist/plugin-sdk/signal/send-reactions.d.ts +2 -0
  1197. package/dist/plugin-sdk/signal/send.d.ts +1 -0
  1198. package/dist/plugin-sdk/slack/accounts.d.ts +11 -0
  1199. package/dist/plugin-sdk/slack/actions.d.ts +17 -0
  1200. package/dist/plugin-sdk/slack/client.d.ts +1 -0
  1201. package/dist/plugin-sdk/slack/directory-live.d.ts +4 -0
  1202. package/dist/plugin-sdk/slack/index.d.ts +3 -0
  1203. package/dist/plugin-sdk/slack/message-actions.d.ts +2 -0
  1204. package/dist/plugin-sdk/slack/monitor/allow-list.d.ts +1 -0
  1205. package/dist/plugin-sdk/slack/probe.d.ts +3 -0
  1206. package/dist/plugin-sdk/slack/resolve-channels.d.ts +1 -0
  1207. package/dist/plugin-sdk/slack/resolve-users.d.ts +1 -0
  1208. package/dist/plugin-sdk/slack/send.d.ts +5 -0
  1209. package/dist/plugin-sdk/slack/targets.d.ts +2 -0
  1210. package/dist/plugin-sdk/slack/threading-tool-context.d.ts +1 -0
  1211. package/dist/plugin-sdk/telegram/accounts.d.ts +9 -0
  1212. package/dist/plugin-sdk/telegram/audit.d.ts +4 -0
  1213. package/dist/plugin-sdk/telegram/bot/helpers.d.ts +1 -0
  1214. package/dist/plugin-sdk/telegram/bot/types.d.ts +5 -0
  1215. package/dist/plugin-sdk/telegram/inline-buttons.d.ts +2 -0
  1216. package/dist/plugin-sdk/telegram/model-buttons.d.ts +5 -0
  1217. package/dist/plugin-sdk/telegram/monitor.d.ts +3 -0
  1218. package/dist/plugin-sdk/telegram/outbound-params.d.ts +2 -0
  1219. package/dist/plugin-sdk/telegram/probe.d.ts +6 -0
  1220. package/dist/plugin-sdk/telegram/reaction-level.d.ts +1 -0
  1221. package/dist/plugin-sdk/telegram/send.d.ts +10 -0
  1222. package/dist/plugin-sdk/telegram/sticker-cache.d.ts +2 -0
  1223. package/dist/plugin-sdk/telegram/targets.d.ts +1 -0
  1224. package/dist/plugin-sdk/telegram/token.d.ts +1 -0
  1225. package/dist/plugin-sdk/terminal/ansi.d.ts +2 -0
  1226. package/dist/plugin-sdk/terminal/health-style.d.ts +1 -0
  1227. package/dist/plugin-sdk/terminal/links.d.ts +6 -0
  1228. package/dist/plugin-sdk/terminal/palette.d.ts +10 -0
  1229. package/dist/plugin-sdk/terminal/progress-line.d.ts +3 -0
  1230. package/dist/plugin-sdk/terminal/prompt-style.d.ts +3 -0
  1231. package/dist/plugin-sdk/terminal/restore.d.ts +17 -0
  1232. package/dist/plugin-sdk/terminal/theme.d.ts +15 -0
  1233. package/dist/plugin-sdk/tts/tts-core.d.ts +52 -0
  1234. package/dist/plugin-sdk/tts/tts.d.ts +179 -0
  1235. package/dist/plugin-sdk/utils/account-id.d.ts +1 -0
  1236. package/dist/plugin-sdk/utils/boolean.d.ts +5 -0
  1237. package/dist/plugin-sdk/utils/delivery-context.d.ts +29 -0
  1238. package/dist/plugin-sdk/utils/directive-tags.d.ts +16 -0
  1239. package/dist/plugin-sdk/utils/fetch-timeout.d.ts +13 -0
  1240. package/dist/plugin-sdk/utils/message-channel.d.ts +27 -0
  1241. package/dist/plugin-sdk/utils/normalize-secret-input.d.ts +11 -0
  1242. package/dist/plugin-sdk/utils/provider-utils.d.ts +9 -0
  1243. package/dist/plugin-sdk/utils/queue-helpers.d.ts +41 -0
  1244. package/dist/plugin-sdk/utils/shell-argv.d.ts +1 -0
  1245. package/dist/plugin-sdk/utils/transcript-tools.d.ts +8 -0
  1246. package/dist/plugin-sdk/utils/usage-format.d.ts +26 -0
  1247. package/dist/plugin-sdk/utils.d.ts +67 -0
  1248. package/dist/plugin-sdk/version.d.ts +4 -0
  1249. package/dist/plugin-sdk/web/accounts.d.ts +39 -0
  1250. package/dist/plugin-sdk/web/active-listener.d.ts +25 -0
  1251. package/dist/plugin-sdk/web/auth-store.d.ts +25 -0
  1252. package/dist/plugin-sdk/web/auto-reply/constants.d.ts +1 -0
  1253. package/dist/plugin-sdk/web/auto-reply/deliver-reply.d.ts +18 -0
  1254. package/dist/plugin-sdk/web/auto-reply/heartbeat-runner.d.ts +20 -0
  1255. package/dist/plugin-sdk/web/auto-reply/loggers.d.ts +4 -0
  1256. package/dist/plugin-sdk/web/auto-reply/mentions.d.ts +19 -0
  1257. package/dist/plugin-sdk/web/auto-reply/monitor/ack-reaction.d.ts +13 -0
  1258. package/dist/plugin-sdk/web/auto-reply/monitor/broadcast.d.ts +16 -0
  1259. package/dist/plugin-sdk/web/auto-reply/monitor/commands.d.ts +2 -0
  1260. package/dist/plugin-sdk/web/auto-reply/monitor/echo.d.ts +17 -0
  1261. package/dist/plugin-sdk/web/auto-reply/monitor/group-activation.d.ts +9 -0
  1262. package/dist/plugin-sdk/web/auto-reply/monitor/group-gating.d.ts +29 -0
  1263. package/dist/plugin-sdk/web/auto-reply/monitor/group-members.d.ts +6 -0
  1264. package/dist/plugin-sdk/web/auto-reply/monitor/last-route.d.ts +15 -0
  1265. package/dist/plugin-sdk/web/auto-reply/monitor/message-line.d.ts +11 -0
  1266. package/dist/plugin-sdk/web/auto-reply/monitor/on-message.d.ts +24 -0
  1267. package/dist/plugin-sdk/web/auto-reply/monitor/peer.d.ts +2 -0
  1268. package/dist/plugin-sdk/web/auto-reply/monitor/process-message.d.ts +40 -0
  1269. package/dist/plugin-sdk/web/auto-reply/monitor.d.ts +5 -0
  1270. package/dist/plugin-sdk/web/auto-reply/session-snapshot.d.ts +17 -0
  1271. package/dist/plugin-sdk/web/auto-reply/types.d.ts +28 -0
  1272. package/dist/plugin-sdk/web/auto-reply/util.d.ts +2 -0
  1273. package/dist/plugin-sdk/web/auto-reply.d.ts +1 -0
  1274. package/dist/plugin-sdk/web/auto-reply.impl.d.ts +6 -0
  1275. package/dist/plugin-sdk/web/inbound/access-control.d.ts +24 -0
  1276. package/dist/plugin-sdk/web/inbound/dedupe.d.ts +2 -0
  1277. package/dist/plugin-sdk/web/inbound/extract.d.ts +13 -0
  1278. package/dist/plugin-sdk/web/inbound/media.d.ts +7 -0
  1279. package/dist/plugin-sdk/web/inbound/monitor.d.ts +30 -0
  1280. package/dist/plugin-sdk/web/inbound/send-api.d.ts +22 -0
  1281. package/dist/plugin-sdk/web/inbound/types.d.ts +41 -0
  1282. package/dist/plugin-sdk/web/inbound.d.ts +4 -0
  1283. package/dist/plugin-sdk/web/login-qr.d.ts +19 -0
  1284. package/dist/plugin-sdk/web/login.d.ts +3 -0
  1285. package/dist/plugin-sdk/web/media.d.ts +38 -0
  1286. package/dist/plugin-sdk/web/outbound.d.ts +23 -0
  1287. package/dist/plugin-sdk/web/qr-image.d.ts +4 -0
  1288. package/dist/plugin-sdk/web/reconnect.d.ts +12 -0
  1289. package/dist/plugin-sdk/web/session.d.ts +14 -0
  1290. package/dist/plugin-sdk/web/vcard.d.ts +6 -0
  1291. package/dist/plugin-sdk/whatsapp/normalize.d.ts +2 -0
  1292. package/dist/plugin-sdk/whatsapp/resolve-outbound-target.d.ts +1 -0
  1293. package/dist/plugin-sdk/wizard/prompts.d.ts +42 -0
  1294. package/dist/plugin-sdk/wizard/session.d.ts +42 -0
  1295. package/dist/plugins-B362e77G.js +168 -0
  1296. package/dist/plugins-CDJw924T.js +38 -0
  1297. package/dist/plugins-CmSUIUNi.js +38 -0
  1298. package/dist/plugins-cli-CtFRTC2I.js +734 -0
  1299. package/dist/plugins-cli-D1lvqLG9.js +736 -0
  1300. package/dist/polls-CItfB1H8.js +1343 -0
  1301. package/dist/ports-BVLMN1Sr.js +96 -0
  1302. package/dist/ports-CqLSlU6Z.js +317 -0
  1303. package/dist/ports-D94CwCrv.js +344 -0
  1304. package/dist/ports-D_NHthOz.js +96 -0
  1305. package/dist/program-Bve7k4jO.js +176 -0
  1306. package/dist/program-context-8lqacY-M.js +496 -0
  1307. package/dist/program-context-Bvn8046-.js +17 -0
  1308. package/dist/progress-Bek_GyWS.js +133 -0
  1309. package/dist/progress-CbZ2D53A.js +133 -0
  1310. package/dist/prompt-style-DKy6qQxR.js +9 -0
  1311. package/dist/prompt-style-lu0clOOE.js +9 -0
  1312. package/dist/prompts-BI__va99.js +10 -0
  1313. package/dist/prompts-_dDWkCAz.js +10 -0
  1314. package/dist/pw-ai-BLVMuSLv.js +1867 -0
  1315. package/dist/pw-ai-DZJWEF_f.js +1865 -0
  1316. package/dist/pw-ai-dzf-ptcn.js +1868 -0
  1317. package/dist/qmd-manager-B0FWDi1x.js +938 -0
  1318. package/dist/qmd-manager-CrDrpgh3.js +937 -0
  1319. package/dist/qmd-manager-DepEoASu.js +935 -0
  1320. package/dist/queue-2CW7pnm1.js +209 -0
  1321. package/dist/queue-DhjMEG_Q.js +209 -0
  1322. package/dist/redact-BHmk44DI.js +97 -0
  1323. package/dist/redact-ClVwO7Nn.js +97 -0
  1324. package/dist/register.agent-CE_8JbTE.js +265 -0
  1325. package/dist/register.agent-CGRdcftb.js +1003 -0
  1326. package/dist/register.anima-B4NPeesF.js +167 -0
  1327. package/dist/register.anima-hNCtQ_jl.js +167 -0
  1328. package/dist/register.configure-3prVPXwx.js +101 -0
  1329. package/dist/register.configure-Dqm2IveL.js +103 -0
  1330. package/dist/register.maintenance-BSIx4eNS.js +543 -0
  1331. package/dist/register.maintenance-DDeG6CHa.js +543 -0
  1332. package/dist/register.message-DcYPDzYr.js +657 -0
  1333. package/dist/register.message-RbFrjbch.js +660 -0
  1334. package/dist/register.onboard-BBJK_0_C.js +170 -0
  1335. package/dist/register.onboard-BrcWHC9j.js +170 -0
  1336. package/dist/register.setup-ByvEHxYQ.js +175 -0
  1337. package/dist/register.setup-CNwO5Yq3.js +175 -0
  1338. package/dist/register.status-health-sessions-CGT7bn4C.js +142 -0
  1339. package/dist/register.status-health-sessions-QK6iQSJc.js +313 -0
  1340. package/dist/register.subclis-Bd8eE94r.js +255 -0
  1341. package/dist/registry-BiekeB9q.js +116 -0
  1342. package/dist/registry-qI6V4gqU.js +116 -0
  1343. package/dist/reply-Clj5jcM5.js +32212 -0
  1344. package/dist/reply-DnH1Ueoz.js +32212 -0
  1345. package/dist/reply-prefix-D2NxVzGZ.js +100 -0
  1346. package/dist/reply-prefix-DPpz_mEi.js +100 -0
  1347. package/dist/requirements-BzZxj2Wu.js +107 -0
  1348. package/dist/requirements-DIW1svgA.js +107 -0
  1349. package/dist/rolldown-runtime-Cbj13DAv.js +20 -0
  1350. package/dist/routes-CXpne1-p.js +1820 -0
  1351. package/dist/routes-DtRwwTy6.js +1820 -0
  1352. package/dist/rpc-BBB_Fbes.js +70 -0
  1353. package/dist/rpc-CMEWfcci.js +70 -0
  1354. package/dist/run-main-DOXNrnL2.js +371 -0
  1355. package/dist/runtime-guard-BSUFiAQV.js +60 -0
  1356. package/dist/runtime-guard-DeOXA_86.js +60 -0
  1357. package/dist/sandbox-Bk0ZXcag.js +859 -0
  1358. package/dist/sandbox-D3CFkNeF.js +858 -0
  1359. package/dist/sandbox-cli-BCnnmQ03.js +458 -0
  1360. package/dist/sandbox-cli-Ctpa2Isy.js +461 -0
  1361. package/dist/secret-equal-B268kALC.js +13 -0
  1362. package/dist/secret-equal-Dghy3xsA.js +13 -0
  1363. package/dist/security-cli-BiiLLcQV.js +462 -0
  1364. package/dist/security-cli-DOZmLENS.js +465 -0
  1365. package/dist/send-BTA6qupx.js +10 -0
  1366. package/dist/send-BhAfdGII.js +10 -0
  1367. package/dist/send-C2t9xpXI.js +10 -0
  1368. package/dist/send-C6ccOW_U.js +10 -0
  1369. package/dist/send-CP74DxzJ.js +28 -0
  1370. package/dist/send-CS3G_YWr.js +10 -0
  1371. package/dist/send-D5JnqErc.js +10 -0
  1372. package/dist/send-DEMhcauI.js +32 -0
  1373. package/dist/send-DF8KJImx.js +28 -0
  1374. package/dist/send-DVW0CcHX.js +32 -0
  1375. package/dist/send-DigO-i9j.js +28 -0
  1376. package/dist/send-DqMLjD9Z.js +10 -0
  1377. package/dist/send-Dz2BDHll.js +32 -0
  1378. package/dist/send-ga9udK1_.js +10 -0
  1379. package/dist/send-oDz9NATu.js +10 -0
  1380. package/dist/server-context-BznDS2td.js +824 -0
  1381. package/dist/server-context-CXnE2F7d.js +824 -0
  1382. package/dist/server-node-events-Cu6Qkjor.js +231 -0
  1383. package/dist/server-node-events-Cv8MuF1g.js +233 -0
  1384. package/dist/service-BNVpYcQe.js +642 -0
  1385. package/dist/service-D56aMXUB.js +642 -0
  1386. package/dist/service-audit-DBsygs7y.js +488 -0
  1387. package/dist/service-audit-DKWJcTu4.js +488 -0
  1388. package/dist/session-CXcl3Xrp.js +181 -0
  1389. package/dist/session-DUFuU29j.js +179 -0
  1390. package/dist/session-M_uCxF0U.js +181 -0
  1391. package/dist/session-cost-usage-BwiTZuKl.js +600 -0
  1392. package/dist/session-cost-usage-DT9YNXTJ.js +600 -0
  1393. package/dist/session-key-BGiG_JcT.js +198 -0
  1394. package/dist/session-key-DxcgHezu.js +198 -0
  1395. package/dist/sessions-B8GUAiF6.js +1296 -0
  1396. package/dist/sessions-D0Zd1CND.js +1296 -0
  1397. package/dist/sessions-D0spLCm7.js +187 -0
  1398. package/dist/sessions-XvkHLXt4.js +2038 -0
  1399. package/dist/shared-CEHU0exQ.js +77 -0
  1400. package/dist/shared-Cgly1vPb.js +66 -0
  1401. package/dist/shared-DAHxpviD.js +77 -0
  1402. package/dist/shared-JOo05hST.js +66 -0
  1403. package/dist/shell-argv-CAq1mLa2.js +72 -0
  1404. package/dist/shell-argv-Ce41guJv.js +72 -0
  1405. package/dist/skill-scanner-CkaVLABv.js +263 -0
  1406. package/dist/skill-scanner-Coo4QoCd.js +263 -0
  1407. package/dist/skills-B-G7UHOa.js +808 -0
  1408. package/dist/skills-B5LQx4lT.js +807 -0
  1409. package/dist/skills-cli-DF9XJ2_0.js +286 -0
  1410. package/dist/skills-cli-eLBluVoD.js +289 -0
  1411. package/dist/skills-status-Clq9ZnYu.js +166 -0
  1412. package/dist/skills-status-JQluhU-P.js +166 -0
  1413. package/dist/sqlite-BukcjdJa.js +321 -0
  1414. package/dist/sqlite-CGcOZZ0C.js +368 -0
  1415. package/dist/sqlite-Ck6f9KWc.js +453 -0
  1416. package/dist/start-BvsoGNHJ.js +354 -0
  1417. package/dist/start-CF_Cp6YC.js +353 -0
  1418. package/dist/status-BKGJ7VPQ.js +27 -0
  1419. package/dist/status-BZip7mx9.js +27 -0
  1420. package/dist/status-BqYq_J5J.js +2132 -0
  1421. package/dist/status-CMnlcBVc.js +21 -0
  1422. package/dist/status-CXQrTLri.js +2137 -0
  1423. package/dist/status-tDZPwewW.js +21 -0
  1424. package/dist/status.update-CWiod7o_.js +79 -0
  1425. package/dist/status.update-D1PyrhoB.js +79 -0
  1426. package/dist/subagent-registry-CpSZ2RSO.js +2760 -0
  1427. package/dist/subagent-registry-DkCXRdwf.js +2759 -0
  1428. package/dist/subagent-registry-MPrTYaEB.js +14 -0
  1429. package/dist/subsystem-Dowf8fSU.js +860 -0
  1430. package/dist/system-cli-4Urk9KV1.js +79 -0
  1431. package/dist/system-cli-CgMzkg8R.js +82 -0
  1432. package/dist/system-run-command-DGk7dwQP.js +93 -0
  1433. package/dist/system-run-command-X9lDJIy0.js +93 -0
  1434. package/dist/systemd-BSrHDyeU.js +452 -0
  1435. package/dist/systemd-By5xdSB4.js +452 -0
  1436. package/dist/systemd-hints-BtjL_5Rh.js +36 -0
  1437. package/dist/systemd-hints-sJmr6cjb.js +36 -0
  1438. package/dist/systemd-linger-BNz8PXPF.js +75 -0
  1439. package/dist/systemd-linger-D5vLilKH.js +75 -0
  1440. package/dist/table-BL0lJzsm.js +279 -0
  1441. package/dist/table-DoiRPsn0.js +279 -0
  1442. package/dist/tailnet-CuiNECdL.js +42 -0
  1443. package/dist/tailnet-__ODlBOT.js +42 -0
  1444. package/dist/templates-DJ0ii6X2.js +47 -0
  1445. package/dist/templates-DPTs18po.js +47 -0
  1446. package/dist/thinking-BLU0jXR8.js +204 -0
  1447. package/dist/thinking-BXEswx1X.js +204 -0
  1448. package/dist/timeout-CswI_K-U.js +232 -0
  1449. package/dist/tokens-C-X7wDKj.js +14 -0
  1450. package/dist/tokens-DkvqA72p.js +14 -0
  1451. package/dist/transcript-events-C1hdue6u.js +17 -0
  1452. package/dist/transcript-events-C8Tqw4td.js +17 -0
  1453. package/dist/transcript-events-DW_H__a1.js +17 -0
  1454. package/dist/transcript-tools-DtE5di1q.js +108 -0
  1455. package/dist/transcript-tools-DuyYOkUq.js +108 -0
  1456. package/dist/trash-BJLK1vMn.js +23 -0
  1457. package/dist/trash-_x5UZ94k.js +23 -0
  1458. package/dist/tui-Cj25a9wc.js +3894 -0
  1459. package/dist/tui-Iv4T-9gg.js +3894 -0
  1460. package/dist/tui-cli-BkJxFa_n.js +50 -0
  1461. package/dist/tui-cli-DeFmBtZ7.js +47 -0
  1462. package/dist/update-DZRKbMjq.js +317 -0
  1463. package/dist/update-LFgxHHPd.js +317 -0
  1464. package/dist/update-check-CWc7YXmc.js +400 -0
  1465. package/dist/update-check-IhlWaui6.js +400 -0
  1466. package/dist/update-cli-qGGlL5Lg.js +1105 -0
  1467. package/dist/update-cli-rMqhSUMc.js +1105 -0
  1468. package/dist/update-runner-BT77y3bz.js +894 -0
  1469. package/dist/update-runner-DvzFqFJf.js +894 -0
  1470. package/dist/usage-BeZuVAY4.js +4516 -0
  1471. package/dist/usage-format-BAirWUSO.js +36 -0
  1472. package/dist/usage-format-CpORtVCG.js +36 -0
  1473. package/dist/utils-Bsw__U-F.js +243 -0
  1474. package/dist/utils-C9sj30YY.js +239 -0
  1475. package/dist/warning-filter.js +48 -0
  1476. package/dist/web-DEx7MMYq.js +2203 -0
  1477. package/dist/web-DHSoj6bL.js +46842 -0
  1478. package/dist/web-DI0g5K4c.js +63 -0
  1479. package/dist/webhooks-cli-sfLRE89X.js +319 -0
  1480. package/dist/webhooks-cli-xtZBlaD1.js +316 -0
  1481. package/dist/whatsapp-actions-DIREhxrq.js +49 -0
  1482. package/dist/whatsapp-actions-TGHl9p4i.js +45 -0
  1483. package/dist/whatsapp-actions-dBHozeuk.js +53 -0
  1484. package/dist/widearea-dns-B6ocX23x.js +127 -0
  1485. package/dist/widearea-dns-NsEUNYwz.js +127 -0
  1486. package/dist/workspace-Dcfoy5JJ.js +649 -0
  1487. package/dist/ws-COSqlEPx.js +218 -0
  1488. package/dist/ws-log-N8R5MvGE.js +267 -0
  1489. package/dist/ws-log-gwFxPxj5.js +267 -0
  1490. package/dist/wsl-CqyuRvtM.js +26 -0
  1491. package/dist/wsl-ymJYvc9Q.js +26 -0
  1492. package/package.json +209 -0
  1493. package/skills/1password/SKILL.md +70 -0
  1494. package/skills/1password/references/cli-examples.md +29 -0
  1495. package/skills/1password/references/get-started.md +17 -0
  1496. package/skills/animahub/SKILL.md +77 -0
  1497. package/skills/apple-notes/SKILL.md +77 -0
  1498. package/skills/apple-reminders/SKILL.md +96 -0
  1499. package/skills/audit/SKILL.md +68 -0
  1500. package/skills/bear-notes/SKILL.md +107 -0
  1501. package/skills/blogwatcher/SKILL.md +69 -0
  1502. package/skills/blucli/SKILL.md +47 -0
  1503. package/skills/bluebubbles/SKILL.md +131 -0
  1504. package/skills/camsnap/SKILL.md +45 -0
  1505. package/skills/canvas/SKILL.md +198 -0
  1506. package/skills/coding-agent/SKILL.md +284 -0
  1507. package/skills/deploy/SKILL.md +45 -0
  1508. package/skills/discord/SKILL.md +160 -0
  1509. package/skills/eightctl/SKILL.md +50 -0
  1510. package/skills/food-order/SKILL.md +48 -0
  1511. package/skills/gemini/SKILL.md +43 -0
  1512. package/skills/gifgrep/SKILL.md +79 -0
  1513. package/skills/github/SKILL.md +77 -0
  1514. package/skills/gog/SKILL.md +116 -0
  1515. package/skills/goplaces/SKILL.md +52 -0
  1516. package/skills/healthcheck/SKILL.md +245 -0
  1517. package/skills/himalaya/SKILL.md +257 -0
  1518. package/skills/himalaya/references/configuration.md +184 -0
  1519. package/skills/himalaya/references/message-composition.md +199 -0
  1520. package/skills/imsg/SKILL.md +74 -0
  1521. package/skills/mcporter/SKILL.md +61 -0
  1522. package/skills/model-usage/SKILL.md +69 -0
  1523. package/skills/model-usage/references/codexbar-cli.md +33 -0
  1524. package/skills/model-usage/scripts/model_usage.py +310 -0
  1525. package/skills/nano-banana-pro/SKILL.md +58 -0
  1526. package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
  1527. package/skills/nano-pdf/SKILL.md +38 -0
  1528. package/skills/notion/SKILL.md +172 -0
  1529. package/skills/obsidian/SKILL.md +81 -0
  1530. package/skills/openai-image-gen/SKILL.md +89 -0
  1531. package/skills/openai-image-gen/scripts/gen.py +240 -0
  1532. package/skills/openai-whisper/SKILL.md +38 -0
  1533. package/skills/openai-whisper-api/SKILL.md +52 -0
  1534. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  1535. package/skills/openhue/SKILL.md +51 -0
  1536. package/skills/oracle/SKILL.md +125 -0
  1537. package/skills/ordercli/SKILL.md +78 -0
  1538. package/skills/peekaboo/SKILL.md +190 -0
  1539. package/skills/review/SKILL.md +58 -0
  1540. package/skills/sag/SKILL.md +87 -0
  1541. package/skills/session-logs/SKILL.md +115 -0
  1542. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  1543. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  1544. package/skills/skill-creator/SKILL.md +370 -0
  1545. package/skills/skill-creator/license.txt +202 -0
  1546. package/skills/skill-creator/scripts/init_skill.py +378 -0
  1547. package/skills/skill-creator/scripts/package_skill.py +111 -0
  1548. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  1549. package/skills/slack/SKILL.md +144 -0
  1550. package/skills/songsee/SKILL.md +49 -0
  1551. package/skills/sonoscli/SKILL.md +46 -0
  1552. package/skills/spotify-player/SKILL.md +64 -0
  1553. package/skills/summarize/SKILL.md +87 -0
  1554. package/skills/things-mac/SKILL.md +86 -0
  1555. package/skills/tmux/SKILL.md +135 -0
  1556. package/skills/tmux/scripts/find-sessions.sh +112 -0
  1557. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  1558. package/skills/trello/SKILL.md +95 -0
  1559. package/skills/video-frames/SKILL.md +46 -0
  1560. package/skills/video-frames/scripts/frame.sh +81 -0
  1561. package/skills/voice-call/SKILL.md +45 -0
  1562. package/skills/wacli/SKILL.md +72 -0
  1563. package/skills/weather/SKILL.md +54 -0
  1564. package/templates/BRAIN.md +65 -0
  1565. package/templates/GUT.md +44 -0
  1566. package/templates/HEART.md +51 -0
  1567. package/templates/MEMORY.md +66 -0
  1568. package/templates/SHADOW.md +68 -0
  1569. package/templates/SOUL.md +38 -0
  1570. package/templates/SPIRIT.md +43 -0
@@ -0,0 +1,2038 @@
1
+ import { C as normalizeAccountId$1, T as normalizeMainKey, _ as DEFAULT_AGENT_ID, w as normalizeAgentId, y as buildAgentMainSessionKey } from "./workspace-Dcfoy5JJ.js";
2
+ import { F as normalizeE164, S as requireActivePluginRegistry, _ as getChatChannelMeta, h as CHAT_CHANNEL_ORDER, k as escapeRegExp, l as createSubsystemLogger } from "./exec-BenD3A5l.js";
3
+ import { T as resolveWhatsAppAccount, c as parseDurationMs, n as loadConfig, s as parseByteSize } from "./config-Bmm8tmZF.js";
4
+ import { _ as listDeliverableMessageChannels, a as normalizeWhatsAppTarget, c as resolveSlackAccount, d as resolveDiscordAccount, l as resolveSlackReplyToMode, r as normalizeChannelId, s as resolveTelegramAccount, v as normalizeMessageChannel } from "./plugins-B362e77G.js";
5
+ import { n as resolveSessionFilePath, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BTc4nk-6.js";
6
+ import { t as emitSessionTranscriptUpdate } from "./transcript-events-DW_H__a1.js";
7
+ import fs from "node:fs/promises";
8
+ import path from "node:path";
9
+ import fs$1 from "node:fs";
10
+ import crypto from "node:crypto";
11
+ import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
12
+
13
+ //#region src/auto-reply/tokens.ts
14
+ const HEARTBEAT_TOKEN = "HEARTBEAT_OK";
15
+ const SILENT_REPLY_TOKEN = "NO_REPLY";
16
+ function isSilentReplyText(text, token = SILENT_REPLY_TOKEN) {
17
+ if (!text) return false;
18
+ const escaped = escapeRegExp(token);
19
+ if (new RegExp(`^\\s*${escaped}(?=$|\\W)`).test(text)) return true;
20
+ return new RegExp(`\\b${escaped}\\b\\W*$`).test(text);
21
+ }
22
+
23
+ //#endregion
24
+ //#region src/config/sessions/group.ts
25
+ const getGroupSurfaces = () => new Set([...listDeliverableMessageChannels(), "webchat"]);
26
+ function normalizeGroupLabel(raw) {
27
+ const trimmed = raw?.trim().toLowerCase() ?? "";
28
+ if (!trimmed) return "";
29
+ return trimmed.replace(/\s+/g, "-").replace(/[^a-z0-9#@._+-]+/g, "-").replace(/-{2,}/g, "-").replace(/^[-.]+|[-.]+$/g, "");
30
+ }
31
+ function shortenGroupId(value) {
32
+ const trimmed = value?.trim() ?? "";
33
+ if (!trimmed) return "";
34
+ if (trimmed.length <= 14) return trimmed;
35
+ return `${trimmed.slice(0, 6)}...${trimmed.slice(-4)}`;
36
+ }
37
+ function buildGroupDisplayName(params) {
38
+ const providerKey = (params.provider?.trim().toLowerCase() || "group").trim();
39
+ const groupChannel = params.groupChannel?.trim();
40
+ const space = params.space?.trim();
41
+ const subject = params.subject?.trim();
42
+ const detail = (groupChannel && space ? `${space}${groupChannel.startsWith("#") ? "" : "#"}${groupChannel}` : groupChannel || subject || space || "") || "";
43
+ const fallbackId = params.id?.trim() || params.key;
44
+ const rawLabel = detail || fallbackId;
45
+ let token = normalizeGroupLabel(rawLabel);
46
+ if (!token) token = normalizeGroupLabel(shortenGroupId(rawLabel));
47
+ if (!params.groupChannel && token.startsWith("#")) token = token.replace(/^#+/, "");
48
+ if (token && !/^[@#]/.test(token) && !token.startsWith("g-") && !token.includes("#")) token = `g-${token}`;
49
+ return token ? `${providerKey}:${token}` : providerKey;
50
+ }
51
+ function resolveGroupSessionKey(ctx) {
52
+ const from = typeof ctx.From === "string" ? ctx.From.trim() : "";
53
+ const chatType = ctx.ChatType?.trim().toLowerCase();
54
+ const normalizedChatType = chatType === "channel" ? "channel" : chatType === "group" ? "group" : void 0;
55
+ const isWhatsAppGroupId = from.toLowerCase().endsWith("@g.us");
56
+ if (!(normalizedChatType === "group" || normalizedChatType === "channel" || from.includes(":group:") || from.includes(":channel:") || isWhatsAppGroupId)) return null;
57
+ const providerHint = ctx.Provider?.trim().toLowerCase();
58
+ const parts = from.split(":").filter(Boolean);
59
+ const head = parts[0]?.trim().toLowerCase() ?? "";
60
+ const headIsSurface = head ? getGroupSurfaces().has(head) : false;
61
+ const provider = headIsSurface ? head : providerHint ?? (isWhatsAppGroupId ? "whatsapp" : void 0);
62
+ if (!provider) return null;
63
+ const second = parts[1]?.trim().toLowerCase();
64
+ const secondIsKind = second === "group" || second === "channel";
65
+ const kind = secondIsKind ? second : from.includes(":channel:") || normalizedChatType === "channel" ? "channel" : "group";
66
+ const finalId = (headIsSurface ? secondIsKind ? parts.slice(2).join(":") : parts.slice(1).join(":") : from).trim().toLowerCase();
67
+ if (!finalId) return null;
68
+ return {
69
+ key: `${provider}:${kind}:${finalId}`,
70
+ channel: provider,
71
+ id: finalId,
72
+ chatType: kind === "channel" ? "channel" : "group"
73
+ };
74
+ }
75
+
76
+ //#endregion
77
+ //#region src/channels/chat-type.ts
78
+ function normalizeChatType(raw) {
79
+ const value = raw?.trim().toLowerCase();
80
+ if (!value) return;
81
+ if (value === "direct" || value === "dm") return "direct";
82
+ if (value === "group") return "group";
83
+ if (value === "channel") return "channel";
84
+ }
85
+
86
+ //#endregion
87
+ //#region src/channels/conversation-label.ts
88
+ function extractConversationId(from) {
89
+ const trimmed = from?.trim();
90
+ if (!trimmed) return;
91
+ const parts = trimmed.split(":").filter(Boolean);
92
+ return parts.length > 0 ? parts[parts.length - 1] : trimmed;
93
+ }
94
+ function shouldAppendId(id) {
95
+ if (/^[0-9]+$/.test(id)) return true;
96
+ if (id.includes("@g.us")) return true;
97
+ return false;
98
+ }
99
+ function resolveConversationLabel(ctx) {
100
+ const explicit = ctx.ConversationLabel?.trim();
101
+ if (explicit) return explicit;
102
+ const threadLabel = ctx.ThreadLabel?.trim();
103
+ if (threadLabel) return threadLabel;
104
+ if (normalizeChatType(ctx.ChatType) === "direct") return ctx.SenderName?.trim() || ctx.From?.trim() || void 0;
105
+ const base = ctx.GroupChannel?.trim() || ctx.GroupSubject?.trim() || ctx.GroupSpace?.trim() || ctx.From?.trim() || "";
106
+ if (!base) return;
107
+ const id = extractConversationId(ctx.From);
108
+ if (!id) return base;
109
+ if (!shouldAppendId(id)) return base;
110
+ if (base === id) return base;
111
+ if (base.includes(id)) return base;
112
+ if (base.toLowerCase().includes(" id:")) return base;
113
+ if (base.startsWith("#") || base.startsWith("@")) return base;
114
+ return `${base} id:${id}`;
115
+ }
116
+
117
+ //#endregion
118
+ //#region src/config/group-policy.ts
119
+ function resolveChannelGroupConfig(groups, groupId, caseInsensitive = false) {
120
+ if (!groups) return;
121
+ const direct = groups[groupId];
122
+ if (direct) return direct;
123
+ if (!caseInsensitive) return;
124
+ const target = groupId.toLowerCase();
125
+ const matchedKey = Object.keys(groups).find((key) => key !== "*" && key.toLowerCase() === target);
126
+ if (!matchedKey) return;
127
+ return groups[matchedKey];
128
+ }
129
+ function normalizeSenderKey(value) {
130
+ const trimmed = value.trim();
131
+ if (!trimmed) return "";
132
+ return (trimmed.startsWith("@") ? trimmed.slice(1) : trimmed).toLowerCase();
133
+ }
134
+ function resolveToolsBySender(params) {
135
+ const toolsBySender = params.toolsBySender;
136
+ if (!toolsBySender) return;
137
+ const entries = Object.entries(toolsBySender);
138
+ if (entries.length === 0) return;
139
+ const normalized = /* @__PURE__ */ new Map();
140
+ let wildcard;
141
+ for (const [rawKey, policy] of entries) {
142
+ if (!policy) continue;
143
+ const key = normalizeSenderKey(rawKey);
144
+ if (!key) continue;
145
+ if (key === "*") {
146
+ wildcard = policy;
147
+ continue;
148
+ }
149
+ if (!normalized.has(key)) normalized.set(key, policy);
150
+ }
151
+ const candidates = [];
152
+ const pushCandidate = (value) => {
153
+ const trimmed = value?.trim();
154
+ if (!trimmed) return;
155
+ candidates.push(trimmed);
156
+ };
157
+ pushCandidate(params.senderId);
158
+ pushCandidate(params.senderE164);
159
+ pushCandidate(params.senderUsername);
160
+ pushCandidate(params.senderName);
161
+ for (const candidate of candidates) {
162
+ const key = normalizeSenderKey(candidate);
163
+ if (!key) continue;
164
+ const match = normalized.get(key);
165
+ if (match) return match;
166
+ }
167
+ return wildcard;
168
+ }
169
+ function resolveChannelGroups(cfg, channel, accountId) {
170
+ const normalizedAccountId = normalizeAccountId$1(accountId);
171
+ const channelConfig = cfg.channels?.[channel];
172
+ if (!channelConfig) return;
173
+ return channelConfig.accounts?.[normalizedAccountId]?.groups ?? channelConfig.accounts?.[Object.keys(channelConfig.accounts ?? {}).find((key) => key.toLowerCase() === normalizedAccountId.toLowerCase()) ?? ""]?.groups ?? channelConfig.groups;
174
+ }
175
+ function resolveChannelGroupPolicy(params) {
176
+ const { cfg, channel } = params;
177
+ const groups = resolveChannelGroups(cfg, channel, params.accountId);
178
+ const allowlistEnabled = Boolean(groups && Object.keys(groups).length > 0);
179
+ const normalizedId = params.groupId?.trim();
180
+ const groupConfig = normalizedId ? resolveChannelGroupConfig(groups, normalizedId, params.groupIdCaseInsensitive) : void 0;
181
+ const defaultConfig = groups?.["*"];
182
+ return {
183
+ allowlistEnabled,
184
+ allowed: !allowlistEnabled || allowlistEnabled && Boolean(groups && Object.hasOwn(groups, "*")) || Boolean(groupConfig),
185
+ groupConfig,
186
+ defaultConfig
187
+ };
188
+ }
189
+ function resolveChannelGroupRequireMention(params) {
190
+ const { requireMentionOverride, overrideOrder = "after-config" } = params;
191
+ const { groupConfig, defaultConfig } = resolveChannelGroupPolicy(params);
192
+ const configMention = typeof groupConfig?.requireMention === "boolean" ? groupConfig.requireMention : typeof defaultConfig?.requireMention === "boolean" ? defaultConfig.requireMention : void 0;
193
+ if (overrideOrder === "before-config" && typeof requireMentionOverride === "boolean") return requireMentionOverride;
194
+ if (typeof configMention === "boolean") return configMention;
195
+ if (overrideOrder !== "before-config" && typeof requireMentionOverride === "boolean") return requireMentionOverride;
196
+ return true;
197
+ }
198
+ function resolveChannelGroupToolsPolicy(params) {
199
+ const { groupConfig, defaultConfig } = resolveChannelGroupPolicy(params);
200
+ const groupSenderPolicy = resolveToolsBySender({
201
+ toolsBySender: groupConfig?.toolsBySender,
202
+ senderId: params.senderId,
203
+ senderName: params.senderName,
204
+ senderUsername: params.senderUsername,
205
+ senderE164: params.senderE164
206
+ });
207
+ if (groupSenderPolicy) return groupSenderPolicy;
208
+ if (groupConfig?.tools) return groupConfig.tools;
209
+ const defaultSenderPolicy = resolveToolsBySender({
210
+ toolsBySender: defaultConfig?.toolsBySender,
211
+ senderId: params.senderId,
212
+ senderName: params.senderName,
213
+ senderUsername: params.senderUsername,
214
+ senderE164: params.senderE164
215
+ });
216
+ if (defaultSenderPolicy) return defaultSenderPolicy;
217
+ if (defaultConfig?.tools) return defaultConfig.tools;
218
+ }
219
+
220
+ //#endregion
221
+ //#region src/imessage/accounts.ts
222
+ function resolveIMessageAccount(_p) {
223
+ return {
224
+ accountId: "default",
225
+ config: {}
226
+ };
227
+ }
228
+
229
+ //#endregion
230
+ //#region src/signal/accounts.ts
231
+ function resolveSignalAccount(_p) {
232
+ return {
233
+ accountId: "default",
234
+ config: {}
235
+ };
236
+ }
237
+ function listEnabledSignalAccounts(_cfg) {
238
+ return [];
239
+ }
240
+
241
+ //#endregion
242
+ //#region src/slack/threading-tool-context.ts
243
+ function buildSlackThreadingToolContext(params) {
244
+ return {
245
+ currentChannelId: params?.context?.To?.trim() || void 0,
246
+ currentThreadTs: params?.context?.ReplyToId,
247
+ hasRepliedRef: params?.hasRepliedRef
248
+ };
249
+ }
250
+
251
+ //#endregion
252
+ //#region src/channels/plugins/group-mentions.ts
253
+ function normalizeDiscordSlug(value) {
254
+ if (!value) return "";
255
+ let text = value.trim().toLowerCase();
256
+ if (!text) return "";
257
+ text = text.replace(/^[@#]+/, "");
258
+ text = text.replace(/[\s_]+/g, "-");
259
+ text = text.replace(/[^a-z0-9-]+/g, "-");
260
+ text = text.replace(/-{2,}/g, "-").replace(/^-+|-+$/g, "");
261
+ return text;
262
+ }
263
+ function normalizeSlackSlug(raw) {
264
+ const trimmed = raw?.trim().toLowerCase() ?? "";
265
+ if (!trimmed) return "";
266
+ return trimmed.replace(/\s+/g, "-").replace(/[^a-z0-9#@._+-]+/g, "-").replace(/-{2,}/g, "-").replace(/^[-.]+|[-.]+$/g, "");
267
+ }
268
+ function parseTelegramGroupId(value) {
269
+ const raw = value?.trim() ?? "";
270
+ if (!raw) return {
271
+ chatId: void 0,
272
+ topicId: void 0
273
+ };
274
+ const parts = raw.split(":").filter(Boolean);
275
+ if (parts.length >= 3 && parts[1] === "topic" && /^-?\d+$/.test(parts[0]) && /^\d+$/.test(parts[2])) return {
276
+ chatId: parts[0],
277
+ topicId: parts[2]
278
+ };
279
+ if (parts.length >= 2 && /^-?\d+$/.test(parts[0]) && /^\d+$/.test(parts[1])) return {
280
+ chatId: parts[0],
281
+ topicId: parts[1]
282
+ };
283
+ return {
284
+ chatId: raw,
285
+ topicId: void 0
286
+ };
287
+ }
288
+ function resolveTelegramRequireMention(params) {
289
+ const { cfg, chatId, topicId } = params;
290
+ if (!chatId) return;
291
+ const groupConfig = cfg.channels?.telegram?.groups?.[chatId];
292
+ const groupDefault = cfg.channels?.telegram?.groups?.["*"];
293
+ const topicConfig = topicId && groupConfig?.topics ? groupConfig.topics[topicId] : void 0;
294
+ const defaultTopicConfig = topicId && groupDefault?.topics ? groupDefault.topics[topicId] : void 0;
295
+ if (typeof topicConfig?.requireMention === "boolean") return topicConfig.requireMention;
296
+ if (typeof defaultTopicConfig?.requireMention === "boolean") return defaultTopicConfig.requireMention;
297
+ if (typeof groupConfig?.requireMention === "boolean") return groupConfig.requireMention;
298
+ if (typeof groupDefault?.requireMention === "boolean") return groupDefault.requireMention;
299
+ }
300
+ function resolveDiscordGuildEntry(guilds, groupSpace) {
301
+ if (!guilds || Object.keys(guilds).length === 0) return null;
302
+ const space = groupSpace?.trim() ?? "";
303
+ if (space && guilds[space]) return guilds[space];
304
+ const normalized = normalizeDiscordSlug(space);
305
+ if (normalized && guilds[normalized]) return guilds[normalized];
306
+ if (normalized) {
307
+ const match = Object.values(guilds).find((entry) => normalizeDiscordSlug(entry?.slug ?? void 0) === normalized);
308
+ if (match) return match;
309
+ }
310
+ return guilds["*"] ?? null;
311
+ }
312
+ function resolveTelegramGroupRequireMention(params) {
313
+ const { chatId, topicId } = parseTelegramGroupId(params.groupId);
314
+ const requireMention = resolveTelegramRequireMention({
315
+ cfg: params.cfg,
316
+ chatId,
317
+ topicId
318
+ });
319
+ if (typeof requireMention === "boolean") return requireMention;
320
+ return resolveChannelGroupRequireMention({
321
+ cfg: params.cfg,
322
+ channel: "telegram",
323
+ groupId: chatId ?? params.groupId,
324
+ accountId: params.accountId
325
+ });
326
+ }
327
+ function resolveWhatsAppGroupRequireMention(params) {
328
+ return resolveChannelGroupRequireMention({
329
+ cfg: params.cfg,
330
+ channel: "whatsapp",
331
+ groupId: params.groupId,
332
+ accountId: params.accountId
333
+ });
334
+ }
335
+ function resolveIMessageGroupRequireMention(params) {
336
+ return resolveChannelGroupRequireMention({
337
+ cfg: params.cfg,
338
+ channel: "imessage",
339
+ groupId: params.groupId,
340
+ accountId: params.accountId
341
+ });
342
+ }
343
+ function resolveDiscordGroupRequireMention(params) {
344
+ const guildEntry = resolveDiscordGuildEntry(params.cfg.channels?.discord?.guilds, params.groupSpace);
345
+ const channelEntries = guildEntry?.channels;
346
+ if (channelEntries && Object.keys(channelEntries).length > 0) {
347
+ const groupChannel = params.groupChannel;
348
+ const channelSlug = normalizeDiscordSlug(groupChannel);
349
+ const entry = (params.groupId ? channelEntries[params.groupId] : void 0) ?? (channelSlug ? channelEntries[channelSlug] ?? channelEntries[`#${channelSlug}`] : void 0) ?? (groupChannel ? channelEntries[normalizeDiscordSlug(groupChannel)] : void 0);
350
+ if (entry && typeof entry.requireMention === "boolean") return entry.requireMention;
351
+ }
352
+ if (typeof guildEntry?.requireMention === "boolean") return guildEntry.requireMention;
353
+ return true;
354
+ }
355
+ function resolveGoogleChatGroupRequireMention(params) {
356
+ return resolveChannelGroupRequireMention({
357
+ cfg: params.cfg,
358
+ channel: "googlechat",
359
+ groupId: params.groupId,
360
+ accountId: params.accountId
361
+ });
362
+ }
363
+ function resolveGoogleChatGroupToolPolicy(params) {
364
+ return resolveChannelGroupToolsPolicy({
365
+ cfg: params.cfg,
366
+ channel: "googlechat",
367
+ groupId: params.groupId,
368
+ accountId: params.accountId,
369
+ senderId: params.senderId,
370
+ senderName: params.senderName,
371
+ senderUsername: params.senderUsername,
372
+ senderE164: params.senderE164
373
+ });
374
+ }
375
+ function resolveSlackGroupRequireMention(params) {
376
+ const channels = resolveSlackAccount({
377
+ cfg: params.cfg,
378
+ accountId: params.accountId
379
+ }).channels ?? {};
380
+ if (Object.keys(channels).length === 0) return true;
381
+ const channelId = params.groupId?.trim();
382
+ const channelName = params.groupChannel?.replace(/^#/, "");
383
+ const normalizedName = normalizeSlackSlug(channelName);
384
+ const candidates = [
385
+ channelId ?? "",
386
+ channelName ? `#${channelName}` : "",
387
+ channelName ?? "",
388
+ normalizedName
389
+ ].filter(Boolean);
390
+ let matched;
391
+ for (const candidate of candidates) if (candidate && channels[candidate]) {
392
+ matched = channels[candidate];
393
+ break;
394
+ }
395
+ const fallback = channels["*"];
396
+ const resolved = matched ?? fallback;
397
+ if (typeof resolved?.requireMention === "boolean") return resolved.requireMention;
398
+ return true;
399
+ }
400
+ function resolveTelegramGroupToolPolicy(params) {
401
+ const { chatId } = parseTelegramGroupId(params.groupId);
402
+ return resolveChannelGroupToolsPolicy({
403
+ cfg: params.cfg,
404
+ channel: "telegram",
405
+ groupId: chatId ?? params.groupId,
406
+ accountId: params.accountId,
407
+ senderId: params.senderId,
408
+ senderName: params.senderName,
409
+ senderUsername: params.senderUsername,
410
+ senderE164: params.senderE164
411
+ });
412
+ }
413
+ function resolveWhatsAppGroupToolPolicy(params) {
414
+ return resolveChannelGroupToolsPolicy({
415
+ cfg: params.cfg,
416
+ channel: "whatsapp",
417
+ groupId: params.groupId,
418
+ accountId: params.accountId,
419
+ senderId: params.senderId,
420
+ senderName: params.senderName,
421
+ senderUsername: params.senderUsername,
422
+ senderE164: params.senderE164
423
+ });
424
+ }
425
+ function resolveIMessageGroupToolPolicy(params) {
426
+ return resolveChannelGroupToolsPolicy({
427
+ cfg: params.cfg,
428
+ channel: "imessage",
429
+ groupId: params.groupId,
430
+ accountId: params.accountId,
431
+ senderId: params.senderId,
432
+ senderName: params.senderName,
433
+ senderUsername: params.senderUsername,
434
+ senderE164: params.senderE164
435
+ });
436
+ }
437
+ function resolveDiscordGroupToolPolicy(params) {
438
+ const guildEntry = resolveDiscordGuildEntry(params.cfg.channels?.discord?.guilds, params.groupSpace);
439
+ const channelEntries = guildEntry?.channels;
440
+ if (channelEntries && Object.keys(channelEntries).length > 0) {
441
+ const groupChannel = params.groupChannel;
442
+ const channelSlug = normalizeDiscordSlug(groupChannel);
443
+ const entry = (params.groupId ? channelEntries[params.groupId] : void 0) ?? (channelSlug ? channelEntries[channelSlug] ?? channelEntries[`#${channelSlug}`] : void 0) ?? (groupChannel ? channelEntries[normalizeDiscordSlug(groupChannel)] : void 0);
444
+ const senderPolicy = resolveToolsBySender({
445
+ toolsBySender: entry?.toolsBySender,
446
+ senderId: params.senderId,
447
+ senderName: params.senderName,
448
+ senderUsername: params.senderUsername,
449
+ senderE164: params.senderE164
450
+ });
451
+ if (senderPolicy) return senderPolicy;
452
+ if (entry?.tools) return entry.tools;
453
+ }
454
+ const guildSenderPolicy = resolveToolsBySender({
455
+ toolsBySender: guildEntry?.toolsBySender,
456
+ senderId: params.senderId,
457
+ senderName: params.senderName,
458
+ senderUsername: params.senderUsername,
459
+ senderE164: params.senderE164
460
+ });
461
+ if (guildSenderPolicy) return guildSenderPolicy;
462
+ if (guildEntry?.tools) return guildEntry.tools;
463
+ }
464
+ function resolveSlackGroupToolPolicy(params) {
465
+ const channels = resolveSlackAccount({
466
+ cfg: params.cfg,
467
+ accountId: params.accountId
468
+ }).channels ?? {};
469
+ if (Object.keys(channels).length === 0) return;
470
+ const channelId = params.groupId?.trim();
471
+ const channelName = params.groupChannel?.replace(/^#/, "");
472
+ const normalizedName = normalizeSlackSlug(channelName);
473
+ const candidates = [
474
+ channelId ?? "",
475
+ channelName ? `#${channelName}` : "",
476
+ channelName ?? "",
477
+ normalizedName
478
+ ].filter(Boolean);
479
+ let matched;
480
+ for (const candidate of candidates) if (candidate && channels[candidate]) {
481
+ matched = channels[candidate];
482
+ break;
483
+ }
484
+ const resolved = matched ?? channels["*"];
485
+ const senderPolicy = resolveToolsBySender({
486
+ toolsBySender: resolved?.toolsBySender,
487
+ senderId: params.senderId,
488
+ senderName: params.senderName,
489
+ senderUsername: params.senderUsername,
490
+ senderE164: params.senderE164
491
+ });
492
+ if (senderPolicy) return senderPolicy;
493
+ if (resolved?.tools) return resolved.tools;
494
+ }
495
+
496
+ //#endregion
497
+ //#region src/channels/dock.ts
498
+ const formatLower = (allowFrom) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => entry.toLowerCase());
499
+ const DOCKS = {
500
+ telegram: {
501
+ id: "telegram",
502
+ capabilities: {
503
+ chatTypes: [
504
+ "direct",
505
+ "group",
506
+ "channel",
507
+ "thread"
508
+ ],
509
+ nativeCommands: true,
510
+ blockStreaming: true
511
+ },
512
+ outbound: { textChunkLimit: 4e3 },
513
+ config: {
514
+ resolveAllowFrom: ({ cfg, accountId }) => (resolveTelegramAccount({
515
+ cfg,
516
+ accountId
517
+ }).config.allowFrom ?? []).map((entry) => String(entry)),
518
+ formatAllowFrom: ({ allowFrom }) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => entry.replace(/^(telegram|tg):/i, "")).map((entry) => entry.toLowerCase())
519
+ },
520
+ groups: {
521
+ resolveRequireMention: resolveTelegramGroupRequireMention,
522
+ resolveToolPolicy: resolveTelegramGroupToolPolicy
523
+ },
524
+ threading: {
525
+ resolveReplyToMode: ({ cfg }) => cfg.channels?.telegram?.replyToMode ?? "off",
526
+ buildToolContext: ({ context, hasRepliedRef }) => {
527
+ const threadId = context.MessageThreadId ?? context.ReplyToId;
528
+ return {
529
+ currentChannelId: context.To?.trim() || void 0,
530
+ currentThreadTs: threadId != null ? String(threadId) : void 0,
531
+ hasRepliedRef
532
+ };
533
+ }
534
+ }
535
+ },
536
+ whatsapp: {
537
+ id: "whatsapp",
538
+ capabilities: {
539
+ chatTypes: ["direct", "group"],
540
+ polls: true,
541
+ reactions: true,
542
+ media: true
543
+ },
544
+ commands: {
545
+ enforceOwnerForCommands: true,
546
+ skipWhenConfigEmpty: true
547
+ },
548
+ outbound: { textChunkLimit: 4e3 },
549
+ config: {
550
+ resolveAllowFrom: ({ cfg, accountId }) => resolveWhatsAppAccount({
551
+ cfg,
552
+ accountId
553
+ }).allowFrom ?? [],
554
+ formatAllowFrom: ({ allowFrom }) => allowFrom.map((entry) => String(entry).trim()).filter((entry) => Boolean(entry)).map((entry) => entry === "*" ? entry : normalizeWhatsAppTarget(entry)).filter((entry) => Boolean(entry))
555
+ },
556
+ groups: {
557
+ resolveRequireMention: resolveWhatsAppGroupRequireMention,
558
+ resolveToolPolicy: resolveWhatsAppGroupToolPolicy,
559
+ resolveGroupIntroHint: () => "WhatsApp IDs: SenderId is the participant JID (group participant id)."
560
+ },
561
+ mentions: { stripPatterns: ({ ctx }) => {
562
+ const selfE164 = (ctx.To ?? "").replace(/^whatsapp:/, "");
563
+ if (!selfE164) return [];
564
+ const escaped = escapeRegExp(selfE164);
565
+ return [escaped, `@${escaped}`];
566
+ } },
567
+ threading: { buildToolContext: ({ context, hasRepliedRef }) => {
568
+ return {
569
+ currentChannelId: context.From?.trim() || context.To?.trim() || void 0,
570
+ currentThreadTs: context.ReplyToId,
571
+ hasRepliedRef
572
+ };
573
+ } }
574
+ },
575
+ discord: {
576
+ id: "discord",
577
+ capabilities: {
578
+ chatTypes: [
579
+ "direct",
580
+ "channel",
581
+ "thread"
582
+ ],
583
+ polls: true,
584
+ reactions: true,
585
+ media: true,
586
+ nativeCommands: true,
587
+ threads: true
588
+ },
589
+ outbound: { textChunkLimit: 2e3 },
590
+ streaming: { blockStreamingCoalesceDefaults: {
591
+ minChars: 1500,
592
+ idleMs: 1e3
593
+ } },
594
+ elevated: { allowFromFallback: ({ cfg }) => cfg.channels?.discord?.allowFrom ?? cfg.channels?.discord?.dm?.allowFrom },
595
+ config: {
596
+ resolveAllowFrom: ({ cfg, accountId }) => {
597
+ const account = resolveDiscordAccount({
598
+ cfg,
599
+ accountId
600
+ });
601
+ return (account.config.allowFrom ?? account.config.dm?.allowFrom ?? []).map((entry) => String(entry));
602
+ },
603
+ formatAllowFrom: ({ allowFrom }) => formatLower(allowFrom)
604
+ },
605
+ groups: {
606
+ resolveRequireMention: resolveDiscordGroupRequireMention,
607
+ resolveToolPolicy: resolveDiscordGroupToolPolicy
608
+ },
609
+ mentions: { stripPatterns: () => ["<@!?\\d+>"] },
610
+ threading: {
611
+ resolveReplyToMode: ({ cfg }) => cfg.channels?.discord?.replyToMode ?? "off",
612
+ buildToolContext: ({ context, hasRepliedRef }) => ({
613
+ currentChannelId: context.To?.trim() || void 0,
614
+ currentThreadTs: context.ReplyToId,
615
+ hasRepliedRef
616
+ })
617
+ }
618
+ },
619
+ irc: {
620
+ id: "irc",
621
+ capabilities: {
622
+ chatTypes: ["direct", "group"],
623
+ media: true,
624
+ blockStreaming: true
625
+ },
626
+ outbound: { textChunkLimit: 350 },
627
+ streaming: { blockStreamingCoalesceDefaults: {
628
+ minChars: 300,
629
+ idleMs: 1e3
630
+ } },
631
+ config: {
632
+ resolveAllowFrom: ({ cfg, accountId }) => {
633
+ const channel = cfg.channels?.irc;
634
+ const normalized = normalizeAccountId$1(accountId);
635
+ return ((channel?.accounts?.[normalized] ?? channel?.accounts?.[Object.keys(channel?.accounts ?? {}).find((key) => key.toLowerCase() === normalized.toLowerCase()) ?? ""])?.allowFrom ?? channel?.allowFrom ?? []).map((entry) => String(entry));
636
+ },
637
+ formatAllowFrom: ({ allowFrom }) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => entry.replace(/^irc:/i, "").replace(/^user:/i, "").toLowerCase())
638
+ },
639
+ groups: {
640
+ resolveRequireMention: ({ cfg, accountId, groupId }) => {
641
+ if (!groupId) return true;
642
+ return resolveChannelGroupRequireMention({
643
+ cfg,
644
+ channel: "irc",
645
+ groupId,
646
+ accountId,
647
+ groupIdCaseInsensitive: true
648
+ });
649
+ },
650
+ resolveToolPolicy: ({ cfg, accountId, groupId, senderId, senderName, senderUsername }) => {
651
+ if (!groupId) return;
652
+ return resolveChannelGroupToolsPolicy({
653
+ cfg,
654
+ channel: "irc",
655
+ groupId,
656
+ accountId,
657
+ groupIdCaseInsensitive: true,
658
+ senderId,
659
+ senderName,
660
+ senderUsername
661
+ });
662
+ }
663
+ }
664
+ },
665
+ googlechat: {
666
+ id: "googlechat",
667
+ capabilities: {
668
+ chatTypes: [
669
+ "direct",
670
+ "group",
671
+ "thread"
672
+ ],
673
+ reactions: true,
674
+ media: true,
675
+ threads: true,
676
+ blockStreaming: true
677
+ },
678
+ outbound: { textChunkLimit: 4e3 },
679
+ config: {
680
+ resolveAllowFrom: ({ cfg, accountId }) => {
681
+ const channel = cfg.channels?.googlechat;
682
+ const normalized = normalizeAccountId$1(accountId);
683
+ return ((channel?.accounts?.[normalized] ?? channel?.accounts?.[Object.keys(channel?.accounts ?? {}).find((key) => key.toLowerCase() === normalized.toLowerCase()) ?? ""])?.dm?.allowFrom ?? channel?.dm?.allowFrom ?? []).map((entry) => String(entry));
684
+ },
685
+ formatAllowFrom: ({ allowFrom }) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => entry.replace(/^(googlechat|google-chat|gchat):/i, "").replace(/^user:/i, "").replace(/^users\//i, "").toLowerCase())
686
+ },
687
+ groups: {
688
+ resolveRequireMention: resolveGoogleChatGroupRequireMention,
689
+ resolveToolPolicy: resolveGoogleChatGroupToolPolicy
690
+ },
691
+ threading: {
692
+ resolveReplyToMode: ({ cfg }) => cfg.channels?.googlechat?.replyToMode ?? "off",
693
+ buildToolContext: ({ context, hasRepliedRef }) => {
694
+ const threadId = context.MessageThreadId ?? context.ReplyToId;
695
+ return {
696
+ currentChannelId: context.To?.trim() || void 0,
697
+ currentThreadTs: threadId != null ? String(threadId) : void 0,
698
+ hasRepliedRef
699
+ };
700
+ }
701
+ }
702
+ },
703
+ slack: {
704
+ id: "slack",
705
+ capabilities: {
706
+ chatTypes: [
707
+ "direct",
708
+ "channel",
709
+ "thread"
710
+ ],
711
+ reactions: true,
712
+ media: true,
713
+ nativeCommands: true,
714
+ threads: true
715
+ },
716
+ outbound: { textChunkLimit: 4e3 },
717
+ streaming: { blockStreamingCoalesceDefaults: {
718
+ minChars: 1500,
719
+ idleMs: 1e3
720
+ } },
721
+ config: {
722
+ resolveAllowFrom: ({ cfg, accountId }) => {
723
+ const account = resolveSlackAccount({
724
+ cfg,
725
+ accountId
726
+ });
727
+ return (account.config.allowFrom ?? account.dm?.allowFrom ?? []).map((entry) => String(entry));
728
+ },
729
+ formatAllowFrom: ({ allowFrom }) => formatLower(allowFrom)
730
+ },
731
+ groups: {
732
+ resolveRequireMention: resolveSlackGroupRequireMention,
733
+ resolveToolPolicy: resolveSlackGroupToolPolicy
734
+ },
735
+ mentions: { stripPatterns: () => ["<@[^>]+>"] },
736
+ threading: {
737
+ resolveReplyToMode: ({ cfg, accountId, chatType }) => resolveSlackReplyToMode(resolveSlackAccount({
738
+ cfg,
739
+ accountId
740
+ }), chatType),
741
+ allowExplicitReplyTagsWhenOff: true,
742
+ buildToolContext: (params) => buildSlackThreadingToolContext(params)
743
+ }
744
+ },
745
+ signal: {
746
+ id: "signal",
747
+ capabilities: {
748
+ chatTypes: ["direct", "group"],
749
+ reactions: true,
750
+ media: true
751
+ },
752
+ outbound: { textChunkLimit: 4e3 },
753
+ streaming: { blockStreamingCoalesceDefaults: {
754
+ minChars: 1500,
755
+ idleMs: 1e3
756
+ } },
757
+ config: {
758
+ resolveAllowFrom: ({ cfg, accountId }) => (resolveSignalAccount({
759
+ cfg,
760
+ accountId
761
+ }).config.allowFrom ?? []).map((entry) => String(entry)),
762
+ formatAllowFrom: ({ allowFrom }) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => entry === "*" ? "*" : normalizeE164(entry.replace(/^signal:/i, ""))).filter(Boolean)
763
+ },
764
+ threading: { buildToolContext: ({ context, hasRepliedRef }) => {
765
+ return {
766
+ currentChannelId: (context.ChatType?.toLowerCase() === "direct" ? context.From ?? context.To : context.To)?.trim() || void 0,
767
+ currentThreadTs: context.ReplyToId,
768
+ hasRepliedRef
769
+ };
770
+ } }
771
+ },
772
+ imessage: {
773
+ id: "imessage",
774
+ capabilities: {
775
+ chatTypes: ["direct", "group"],
776
+ reactions: true,
777
+ media: true
778
+ },
779
+ outbound: { textChunkLimit: 4e3 },
780
+ config: {
781
+ resolveAllowFrom: ({ cfg, accountId }) => (resolveIMessageAccount({
782
+ cfg,
783
+ accountId
784
+ }).config.allowFrom ?? []).map((entry) => String(entry)),
785
+ formatAllowFrom: ({ allowFrom }) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean)
786
+ },
787
+ groups: {
788
+ resolveRequireMention: resolveIMessageGroupRequireMention,
789
+ resolveToolPolicy: resolveIMessageGroupToolPolicy
790
+ },
791
+ threading: { buildToolContext: ({ context, hasRepliedRef }) => {
792
+ return {
793
+ currentChannelId: (context.ChatType?.toLowerCase() === "direct" ? context.From ?? context.To : context.To)?.trim() || void 0,
794
+ currentThreadTs: context.ReplyToId,
795
+ hasRepliedRef
796
+ };
797
+ } }
798
+ }
799
+ };
800
+ function buildDockFromPlugin(plugin) {
801
+ return {
802
+ id: plugin.id,
803
+ capabilities: plugin.capabilities,
804
+ commands: plugin.commands,
805
+ outbound: plugin.outbound?.textChunkLimit ? { textChunkLimit: plugin.outbound.textChunkLimit } : void 0,
806
+ streaming: plugin.streaming ? { blockStreamingCoalesceDefaults: plugin.streaming.blockStreamingCoalesceDefaults } : void 0,
807
+ elevated: plugin.elevated,
808
+ config: plugin.config ? {
809
+ resolveAllowFrom: plugin.config.resolveAllowFrom,
810
+ formatAllowFrom: plugin.config.formatAllowFrom
811
+ } : void 0,
812
+ groups: plugin.groups,
813
+ mentions: plugin.mentions,
814
+ threading: plugin.threading,
815
+ agentPrompt: plugin.agentPrompt
816
+ };
817
+ }
818
+ function listPluginDockEntries() {
819
+ const registry = requireActivePluginRegistry();
820
+ const entries = [];
821
+ const seen = /* @__PURE__ */ new Set();
822
+ for (const entry of registry.channels) {
823
+ const plugin = entry.plugin;
824
+ const id = String(plugin.id).trim();
825
+ if (!id || seen.has(id)) continue;
826
+ seen.add(id);
827
+ if (CHAT_CHANNEL_ORDER.includes(plugin.id)) continue;
828
+ const dock = entry.dock ?? buildDockFromPlugin(plugin);
829
+ entries.push({
830
+ id: plugin.id,
831
+ dock,
832
+ order: plugin.meta.order
833
+ });
834
+ }
835
+ return entries;
836
+ }
837
+ function listChannelDocks() {
838
+ const baseEntries = CHAT_CHANNEL_ORDER.map((id) => ({
839
+ id,
840
+ dock: DOCKS[id],
841
+ order: getChatChannelMeta(id).order
842
+ }));
843
+ const pluginEntries = listPluginDockEntries();
844
+ const combined = [...baseEntries, ...pluginEntries];
845
+ combined.sort((a, b) => {
846
+ const indexA = CHAT_CHANNEL_ORDER.indexOf(a.id);
847
+ const indexB = CHAT_CHANNEL_ORDER.indexOf(b.id);
848
+ const orderA = a.order ?? (indexA === -1 ? 999 : indexA);
849
+ const orderB = b.order ?? (indexB === -1 ? 999 : indexB);
850
+ if (orderA !== orderB) return orderA - orderB;
851
+ return String(a.id).localeCompare(String(b.id));
852
+ });
853
+ return combined.map((entry) => entry.dock);
854
+ }
855
+ function getChannelDock(id) {
856
+ const core = DOCKS[id];
857
+ if (core) return core;
858
+ const pluginEntry = requireActivePluginRegistry().channels.find((entry) => entry.plugin.id === id);
859
+ if (!pluginEntry) return;
860
+ return pluginEntry.dock ?? buildDockFromPlugin(pluginEntry.plugin);
861
+ }
862
+
863
+ //#endregion
864
+ //#region src/config/sessions/metadata.ts
865
+ const mergeOrigin = (existing, next) => {
866
+ if (!existing && !next) return;
867
+ const merged = existing ? { ...existing } : {};
868
+ if (next?.label) merged.label = next.label;
869
+ if (next?.provider) merged.provider = next.provider;
870
+ if (next?.surface) merged.surface = next.surface;
871
+ if (next?.chatType) merged.chatType = next.chatType;
872
+ if (next?.from) merged.from = next.from;
873
+ if (next?.to) merged.to = next.to;
874
+ if (next?.accountId) merged.accountId = next.accountId;
875
+ if (next?.threadId != null && next.threadId !== "") merged.threadId = next.threadId;
876
+ return Object.keys(merged).length > 0 ? merged : void 0;
877
+ };
878
+ function deriveSessionOrigin(ctx) {
879
+ const label = resolveConversationLabel(ctx)?.trim();
880
+ const provider = normalizeMessageChannel(typeof ctx.OriginatingChannel === "string" && ctx.OriginatingChannel || ctx.Surface || ctx.Provider);
881
+ const surface = ctx.Surface?.trim().toLowerCase();
882
+ const chatType = normalizeChatType(ctx.ChatType) ?? void 0;
883
+ const from = ctx.From?.trim();
884
+ const to = (typeof ctx.OriginatingTo === "string" ? ctx.OriginatingTo : ctx.To)?.trim() ?? void 0;
885
+ const accountId = ctx.AccountId?.trim();
886
+ const threadId = ctx.MessageThreadId ?? void 0;
887
+ const origin = {};
888
+ if (label) origin.label = label;
889
+ if (provider) origin.provider = provider;
890
+ if (surface) origin.surface = surface;
891
+ if (chatType) origin.chatType = chatType;
892
+ if (from) origin.from = from;
893
+ if (to) origin.to = to;
894
+ if (accountId) origin.accountId = accountId;
895
+ if (threadId != null && threadId !== "") origin.threadId = threadId;
896
+ return Object.keys(origin).length > 0 ? origin : void 0;
897
+ }
898
+ function deriveGroupSessionPatch(params) {
899
+ const resolution = params.groupResolution ?? resolveGroupSessionKey(params.ctx);
900
+ if (!resolution?.channel) return null;
901
+ const channel = resolution.channel;
902
+ const subject = params.ctx.GroupSubject?.trim();
903
+ const space = params.ctx.GroupSpace?.trim();
904
+ const explicitChannel = params.ctx.GroupChannel?.trim();
905
+ const normalizedChannel = normalizeChannelId(channel);
906
+ const isChannelProvider = Boolean(normalizedChannel && getChannelDock(normalizedChannel)?.capabilities.chatTypes.includes("channel"));
907
+ const nextGroupChannel = explicitChannel ?? ((resolution.chatType === "channel" || isChannelProvider) && subject && subject.startsWith("#") ? subject : void 0);
908
+ const nextSubject = nextGroupChannel ? void 0 : subject;
909
+ const patch = {
910
+ chatType: resolution.chatType ?? "group",
911
+ channel,
912
+ groupId: resolution.id
913
+ };
914
+ if (nextSubject) patch.subject = nextSubject;
915
+ if (nextGroupChannel) patch.groupChannel = nextGroupChannel;
916
+ if (space) patch.space = space;
917
+ const displayName = buildGroupDisplayName({
918
+ provider: channel,
919
+ subject: nextSubject ?? params.existing?.subject,
920
+ groupChannel: nextGroupChannel ?? params.existing?.groupChannel,
921
+ space: space ?? params.existing?.space,
922
+ id: resolution.id,
923
+ key: params.sessionKey
924
+ });
925
+ if (displayName) patch.displayName = displayName;
926
+ return patch;
927
+ }
928
+ function deriveSessionMetaPatch(params) {
929
+ const groupPatch = deriveGroupSessionPatch(params);
930
+ const origin = deriveSessionOrigin(params.ctx);
931
+ if (!groupPatch && !origin) return null;
932
+ const patch = groupPatch ? { ...groupPatch } : {};
933
+ const mergedOrigin = mergeOrigin(params.existing?.origin, origin);
934
+ if (mergedOrigin) patch.origin = mergedOrigin;
935
+ return Object.keys(patch).length > 0 ? patch : null;
936
+ }
937
+
938
+ //#endregion
939
+ //#region src/config/sessions/main-session.ts
940
+ function resolveMainSessionKey(cfg) {
941
+ if (cfg?.session?.scope === "global") return "global";
942
+ const agents = cfg?.agents?.list ?? [];
943
+ return buildAgentMainSessionKey({
944
+ agentId: normalizeAgentId(agents.find((agent) => agent?.default)?.id ?? agents[0]?.id ?? DEFAULT_AGENT_ID),
945
+ mainKey: normalizeMainKey(cfg?.session?.mainKey)
946
+ });
947
+ }
948
+ function resolveAgentMainSessionKey(params) {
949
+ const mainKey = normalizeMainKey(params.cfg?.session?.mainKey);
950
+ return buildAgentMainSessionKey({
951
+ agentId: params.agentId,
952
+ mainKey
953
+ });
954
+ }
955
+ function resolveExplicitAgentSessionKey(params) {
956
+ const agentId = params.agentId?.trim();
957
+ if (!agentId) return;
958
+ return resolveAgentMainSessionKey({
959
+ cfg: params.cfg,
960
+ agentId
961
+ });
962
+ }
963
+ function canonicalizeMainSessionAlias(params) {
964
+ const raw = params.sessionKey.trim();
965
+ if (!raw) return raw;
966
+ const agentId = normalizeAgentId(params.agentId);
967
+ const mainKey = normalizeMainKey(params.cfg?.session?.mainKey);
968
+ const agentMainSessionKey = buildAgentMainSessionKey({
969
+ agentId,
970
+ mainKey
971
+ });
972
+ const agentMainAliasKey = buildAgentMainSessionKey({
973
+ agentId,
974
+ mainKey: "main"
975
+ });
976
+ const isMainAlias = raw === "main" || raw === mainKey || raw === agentMainSessionKey || raw === agentMainAliasKey;
977
+ if (params.cfg?.session?.scope === "global" && isMainAlias) return "global";
978
+ if (isMainAlias) return agentMainSessionKey;
979
+ return raw;
980
+ }
981
+
982
+ //#endregion
983
+ //#region src/config/sessions/types.ts
984
+ function mergeSessionEntry(existing, patch) {
985
+ const sessionId = patch.sessionId ?? existing?.sessionId ?? crypto.randomUUID();
986
+ const updatedAt = Math.max(existing?.updatedAt ?? 0, patch.updatedAt ?? 0, Date.now());
987
+ if (!existing) return {
988
+ ...patch,
989
+ sessionId,
990
+ updatedAt
991
+ };
992
+ return {
993
+ ...existing,
994
+ ...patch,
995
+ sessionId,
996
+ updatedAt
997
+ };
998
+ }
999
+ function resolveFreshSessionTotalTokens(entry) {
1000
+ const total = entry?.totalTokens;
1001
+ if (typeof total !== "number" || !Number.isFinite(total) || total < 0) return;
1002
+ if (entry?.totalTokensFresh === false) return;
1003
+ return total;
1004
+ }
1005
+ const DEFAULT_RESET_TRIGGERS = ["/new", "/reset"];
1006
+ const DEFAULT_IDLE_MINUTES = 60;
1007
+
1008
+ //#endregion
1009
+ //#region src/config/sessions/reset.ts
1010
+ const DEFAULT_RESET_MODE = "daily";
1011
+ const DEFAULT_RESET_AT_HOUR = 4;
1012
+ const THREAD_SESSION_MARKERS = [":thread:", ":topic:"];
1013
+ const GROUP_SESSION_MARKERS = [":group:", ":channel:"];
1014
+ function isThreadSessionKey(sessionKey) {
1015
+ const normalized = (sessionKey ?? "").toLowerCase();
1016
+ if (!normalized) return false;
1017
+ return THREAD_SESSION_MARKERS.some((marker) => normalized.includes(marker));
1018
+ }
1019
+ function resolveSessionResetType(params) {
1020
+ if (params.isThread || isThreadSessionKey(params.sessionKey)) return "thread";
1021
+ if (params.isGroup) return "group";
1022
+ const normalized = (params.sessionKey ?? "").toLowerCase();
1023
+ if (GROUP_SESSION_MARKERS.some((marker) => normalized.includes(marker))) return "group";
1024
+ return "direct";
1025
+ }
1026
+ function resolveThreadFlag(params) {
1027
+ if (params.messageThreadId != null) return true;
1028
+ if (params.threadLabel?.trim()) return true;
1029
+ if (params.threadStarterBody?.trim()) return true;
1030
+ if (params.parentSessionKey?.trim()) return true;
1031
+ return isThreadSessionKey(params.sessionKey);
1032
+ }
1033
+ function resolveDailyResetAtMs(now, atHour) {
1034
+ const normalizedAtHour = normalizeResetAtHour(atHour);
1035
+ const resetAt = new Date(now);
1036
+ resetAt.setHours(normalizedAtHour, 0, 0, 0);
1037
+ if (now < resetAt.getTime()) resetAt.setDate(resetAt.getDate() - 1);
1038
+ return resetAt.getTime();
1039
+ }
1040
+ function resolveSessionResetPolicy(params) {
1041
+ const sessionCfg = params.sessionCfg;
1042
+ const baseReset = params.resetOverride ?? sessionCfg?.reset;
1043
+ const typeReset = params.resetOverride ? void 0 : sessionCfg?.resetByType?.[params.resetType] ?? (params.resetType === "direct" ? (sessionCfg?.resetByType)?.dm : void 0);
1044
+ const hasExplicitReset = Boolean(baseReset || sessionCfg?.resetByType);
1045
+ const legacyIdleMinutes = params.resetOverride ? void 0 : sessionCfg?.idleMinutes;
1046
+ const mode = typeReset?.mode ?? baseReset?.mode ?? (!hasExplicitReset && legacyIdleMinutes != null ? "idle" : DEFAULT_RESET_MODE);
1047
+ const atHour = normalizeResetAtHour(typeReset?.atHour ?? baseReset?.atHour ?? DEFAULT_RESET_AT_HOUR);
1048
+ const idleMinutesRaw = typeReset?.idleMinutes ?? baseReset?.idleMinutes ?? legacyIdleMinutes;
1049
+ let idleMinutes;
1050
+ if (idleMinutesRaw != null) {
1051
+ const normalized = Math.floor(idleMinutesRaw);
1052
+ if (Number.isFinite(normalized)) idleMinutes = Math.max(normalized, 1);
1053
+ } else if (mode === "idle") idleMinutes = DEFAULT_IDLE_MINUTES;
1054
+ return {
1055
+ mode,
1056
+ atHour,
1057
+ idleMinutes
1058
+ };
1059
+ }
1060
+ function resolveChannelResetConfig(params) {
1061
+ const resetByChannel = params.sessionCfg?.resetByChannel;
1062
+ if (!resetByChannel) return;
1063
+ const normalized = normalizeMessageChannel(params.channel);
1064
+ const fallback = params.channel?.trim().toLowerCase();
1065
+ const key = normalized ?? fallback;
1066
+ if (!key) return;
1067
+ return resetByChannel[key] ?? resetByChannel[key.toLowerCase()];
1068
+ }
1069
+ function evaluateSessionFreshness(params) {
1070
+ const dailyResetAt = params.policy.mode === "daily" ? resolveDailyResetAtMs(params.now, params.policy.atHour) : void 0;
1071
+ const idleExpiresAt = params.policy.idleMinutes != null ? params.updatedAt + params.policy.idleMinutes * 6e4 : void 0;
1072
+ const staleDaily = dailyResetAt != null && params.updatedAt < dailyResetAt;
1073
+ const staleIdle = idleExpiresAt != null && params.now > idleExpiresAt;
1074
+ return {
1075
+ fresh: !(staleDaily || staleIdle),
1076
+ dailyResetAt,
1077
+ idleExpiresAt
1078
+ };
1079
+ }
1080
+ function normalizeResetAtHour(value) {
1081
+ if (typeof value !== "number" || !Number.isFinite(value)) return DEFAULT_RESET_AT_HOUR;
1082
+ const normalized = Math.floor(value);
1083
+ if (!Number.isFinite(normalized)) return DEFAULT_RESET_AT_HOUR;
1084
+ if (normalized < 0) return 0;
1085
+ if (normalized > 23) return 23;
1086
+ return normalized;
1087
+ }
1088
+
1089
+ //#endregion
1090
+ //#region src/config/sessions/session-key.ts
1091
+ function deriveSessionKey(scope, ctx) {
1092
+ if (scope === "global") return "global";
1093
+ const resolvedGroup = resolveGroupSessionKey(ctx);
1094
+ if (resolvedGroup) return resolvedGroup.key;
1095
+ return (ctx.From ? normalizeE164(ctx.From) : "") || "unknown";
1096
+ }
1097
+ /**
1098
+ * Resolve the session key with a canonical direct-chat bucket (default: "main").
1099
+ * All non-group direct chats collapse to this bucket; groups stay isolated.
1100
+ */
1101
+ function resolveSessionKey(scope, ctx, mainKey) {
1102
+ const explicit = ctx.SessionKey?.trim();
1103
+ if (explicit) return explicit.toLowerCase();
1104
+ const raw = deriveSessionKey(scope, ctx);
1105
+ if (scope === "global") return raw;
1106
+ const canonical = buildAgentMainSessionKey({
1107
+ agentId: DEFAULT_AGENT_ID,
1108
+ mainKey: normalizeMainKey(mainKey)
1109
+ });
1110
+ if (!(raw.includes(":group:") || raw.includes(":channel:"))) return canonical;
1111
+ return `agent:${DEFAULT_AGENT_ID}:${raw}`;
1112
+ }
1113
+
1114
+ //#endregion
1115
+ //#region src/agents/session-write-lock.ts
1116
+ const CLEANUP_SIGNALS = [
1117
+ "SIGINT",
1118
+ "SIGTERM",
1119
+ "SIGQUIT",
1120
+ "SIGABRT"
1121
+ ];
1122
+ const CLEANUP_STATE_KEY = Symbol.for("anima.sessionWriteLockCleanupState");
1123
+ const HELD_LOCKS_KEY = Symbol.for("anima.sessionWriteLockHeldLocks");
1124
+ function resolveHeldLocks() {
1125
+ const proc = process;
1126
+ if (!proc[HELD_LOCKS_KEY]) proc[HELD_LOCKS_KEY] = /* @__PURE__ */ new Map();
1127
+ return proc[HELD_LOCKS_KEY];
1128
+ }
1129
+ const HELD_LOCKS = resolveHeldLocks();
1130
+ function resolveCleanupState() {
1131
+ const proc = process;
1132
+ if (!proc[CLEANUP_STATE_KEY]) proc[CLEANUP_STATE_KEY] = {
1133
+ registered: false,
1134
+ cleanupHandlers: /* @__PURE__ */ new Map()
1135
+ };
1136
+ return proc[CLEANUP_STATE_KEY];
1137
+ }
1138
+ function isAlive(pid) {
1139
+ if (!Number.isFinite(pid) || pid <= 0) return false;
1140
+ try {
1141
+ process.kill(pid, 0);
1142
+ return true;
1143
+ } catch {
1144
+ return false;
1145
+ }
1146
+ }
1147
+ /**
1148
+ * Synchronously release all held locks.
1149
+ * Used during process exit when async operations aren't reliable.
1150
+ */
1151
+ function releaseAllLocksSync() {
1152
+ for (const [sessionFile, held] of HELD_LOCKS) {
1153
+ try {
1154
+ if (typeof held.handle.close === "function") held.handle.close().catch(() => {});
1155
+ } catch {}
1156
+ try {
1157
+ fs$1.rmSync(held.lockPath, { force: true });
1158
+ } catch {}
1159
+ HELD_LOCKS.delete(sessionFile);
1160
+ }
1161
+ }
1162
+ function handleTerminationSignal(signal) {
1163
+ releaseAllLocksSync();
1164
+ const cleanupState = resolveCleanupState();
1165
+ if (process.listenerCount(signal) === 1) {
1166
+ const handler = cleanupState.cleanupHandlers.get(signal);
1167
+ if (handler) {
1168
+ process.off(signal, handler);
1169
+ cleanupState.cleanupHandlers.delete(signal);
1170
+ }
1171
+ try {
1172
+ process.kill(process.pid, signal);
1173
+ } catch {}
1174
+ }
1175
+ }
1176
+ function registerCleanupHandlers() {
1177
+ const cleanupState = resolveCleanupState();
1178
+ if (!cleanupState.registered) {
1179
+ cleanupState.registered = true;
1180
+ process.on("exit", () => {
1181
+ releaseAllLocksSync();
1182
+ });
1183
+ }
1184
+ for (const signal of CLEANUP_SIGNALS) {
1185
+ if (cleanupState.cleanupHandlers.has(signal)) continue;
1186
+ try {
1187
+ const handler = () => handleTerminationSignal(signal);
1188
+ cleanupState.cleanupHandlers.set(signal, handler);
1189
+ process.on(signal, handler);
1190
+ } catch {}
1191
+ }
1192
+ }
1193
+ async function readLockPayload(lockPath) {
1194
+ try {
1195
+ const raw = await fs.readFile(lockPath, "utf8");
1196
+ const parsed = JSON.parse(raw);
1197
+ if (typeof parsed.pid !== "number") return null;
1198
+ if (typeof parsed.createdAt !== "string") return null;
1199
+ return {
1200
+ pid: parsed.pid,
1201
+ createdAt: parsed.createdAt
1202
+ };
1203
+ } catch {
1204
+ return null;
1205
+ }
1206
+ }
1207
+ async function acquireSessionWriteLock(params) {
1208
+ registerCleanupHandlers();
1209
+ const timeoutMs = params.timeoutMs ?? 1e4;
1210
+ const staleMs = params.staleMs ?? 1800 * 1e3;
1211
+ const sessionFile = path.resolve(params.sessionFile);
1212
+ const sessionDir = path.dirname(sessionFile);
1213
+ await fs.mkdir(sessionDir, { recursive: true });
1214
+ let normalizedDir = sessionDir;
1215
+ try {
1216
+ normalizedDir = await fs.realpath(sessionDir);
1217
+ } catch {}
1218
+ const normalizedSessionFile = path.join(normalizedDir, path.basename(sessionFile));
1219
+ const lockPath = `${normalizedSessionFile}.lock`;
1220
+ const held = HELD_LOCKS.get(normalizedSessionFile);
1221
+ if (held) {
1222
+ held.count += 1;
1223
+ return { release: async () => {
1224
+ const current = HELD_LOCKS.get(normalizedSessionFile);
1225
+ if (!current) return;
1226
+ current.count -= 1;
1227
+ if (current.count > 0) return;
1228
+ HELD_LOCKS.delete(normalizedSessionFile);
1229
+ await current.handle.close();
1230
+ await fs.rm(current.lockPath, { force: true });
1231
+ } };
1232
+ }
1233
+ const startedAt = Date.now();
1234
+ let attempt = 0;
1235
+ while (Date.now() - startedAt < timeoutMs) {
1236
+ attempt += 1;
1237
+ try {
1238
+ const handle = await fs.open(lockPath, "wx");
1239
+ await handle.writeFile(JSON.stringify({
1240
+ pid: process.pid,
1241
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
1242
+ }, null, 2), "utf8");
1243
+ HELD_LOCKS.set(normalizedSessionFile, {
1244
+ count: 1,
1245
+ handle,
1246
+ lockPath
1247
+ });
1248
+ return { release: async () => {
1249
+ const current = HELD_LOCKS.get(normalizedSessionFile);
1250
+ if (!current) return;
1251
+ current.count -= 1;
1252
+ if (current.count > 0) return;
1253
+ HELD_LOCKS.delete(normalizedSessionFile);
1254
+ await current.handle.close();
1255
+ await fs.rm(current.lockPath, { force: true });
1256
+ } };
1257
+ } catch (err) {
1258
+ if (err.code !== "EEXIST") throw err;
1259
+ const payload = await readLockPayload(lockPath);
1260
+ const createdAt = payload?.createdAt ? Date.parse(payload.createdAt) : NaN;
1261
+ const stale = !Number.isFinite(createdAt) || Date.now() - createdAt > staleMs;
1262
+ const alive = payload?.pid ? isAlive(payload.pid) : false;
1263
+ if (stale || !alive) {
1264
+ await fs.rm(lockPath, { force: true });
1265
+ continue;
1266
+ }
1267
+ const delay = Math.min(1e3, 50 * attempt);
1268
+ await new Promise((r) => setTimeout(r, delay));
1269
+ }
1270
+ }
1271
+ const payload = await readLockPayload(lockPath);
1272
+ const owner = payload?.pid ? `pid=${payload.pid}` : "unknown";
1273
+ throw new Error(`session file locked (timeout ${timeoutMs}ms): ${owner} ${lockPath}`);
1274
+ }
1275
+ const __testing = {
1276
+ cleanupSignals: [...CLEANUP_SIGNALS],
1277
+ handleTerminationSignal,
1278
+ releaseAllLocksSync
1279
+ };
1280
+
1281
+ //#endregion
1282
+ //#region src/utils/account-id.ts
1283
+ function normalizeAccountId(value) {
1284
+ if (typeof value !== "string") return;
1285
+ return value.trim() || void 0;
1286
+ }
1287
+
1288
+ //#endregion
1289
+ //#region src/utils/delivery-context.ts
1290
+ function normalizeDeliveryContext(context) {
1291
+ if (!context) return;
1292
+ const channel = typeof context.channel === "string" ? normalizeMessageChannel(context.channel) ?? context.channel.trim() : void 0;
1293
+ const to = typeof context.to === "string" ? context.to.trim() : void 0;
1294
+ const accountId = normalizeAccountId(context.accountId);
1295
+ const threadId = typeof context.threadId === "number" && Number.isFinite(context.threadId) ? Math.trunc(context.threadId) : typeof context.threadId === "string" ? context.threadId.trim() : void 0;
1296
+ const normalizedThreadId = typeof threadId === "string" ? threadId ? threadId : void 0 : threadId;
1297
+ if (!channel && !to && !accountId && normalizedThreadId == null) return;
1298
+ const normalized = {
1299
+ channel: channel || void 0,
1300
+ to: to || void 0,
1301
+ accountId
1302
+ };
1303
+ if (normalizedThreadId != null) normalized.threadId = normalizedThreadId;
1304
+ return normalized;
1305
+ }
1306
+ function normalizeSessionDeliveryFields(source) {
1307
+ if (!source) return {
1308
+ deliveryContext: void 0,
1309
+ lastChannel: void 0,
1310
+ lastTo: void 0,
1311
+ lastAccountId: void 0,
1312
+ lastThreadId: void 0
1313
+ };
1314
+ const merged = mergeDeliveryContext(normalizeDeliveryContext({
1315
+ channel: source.lastChannel ?? source.channel,
1316
+ to: source.lastTo,
1317
+ accountId: source.lastAccountId,
1318
+ threadId: source.lastThreadId
1319
+ }), normalizeDeliveryContext(source.deliveryContext));
1320
+ if (!merged) return {
1321
+ deliveryContext: void 0,
1322
+ lastChannel: void 0,
1323
+ lastTo: void 0,
1324
+ lastAccountId: void 0,
1325
+ lastThreadId: void 0
1326
+ };
1327
+ return {
1328
+ deliveryContext: merged,
1329
+ lastChannel: merged.channel,
1330
+ lastTo: merged.to,
1331
+ lastAccountId: merged.accountId,
1332
+ lastThreadId: merged.threadId
1333
+ };
1334
+ }
1335
+ function deliveryContextFromSession(entry) {
1336
+ if (!entry) return;
1337
+ return normalizeSessionDeliveryFields({
1338
+ channel: entry.channel,
1339
+ lastChannel: entry.lastChannel,
1340
+ lastTo: entry.lastTo,
1341
+ lastAccountId: entry.lastAccountId,
1342
+ lastThreadId: entry.lastThreadId ?? entry.deliveryContext?.threadId ?? entry.origin?.threadId,
1343
+ deliveryContext: entry.deliveryContext
1344
+ }).deliveryContext;
1345
+ }
1346
+ function mergeDeliveryContext(primary, fallback) {
1347
+ const normalizedPrimary = normalizeDeliveryContext(primary);
1348
+ const normalizedFallback = normalizeDeliveryContext(fallback);
1349
+ if (!normalizedPrimary && !normalizedFallback) return;
1350
+ return normalizeDeliveryContext({
1351
+ channel: normalizedPrimary?.channel ?? normalizedFallback?.channel,
1352
+ to: normalizedPrimary?.to ?? normalizedFallback?.to,
1353
+ accountId: normalizedPrimary?.accountId ?? normalizedFallback?.accountId,
1354
+ threadId: normalizedPrimary?.threadId ?? normalizedFallback?.threadId
1355
+ });
1356
+ }
1357
+ function deliveryContextKey(context) {
1358
+ const normalized = normalizeDeliveryContext(context);
1359
+ if (!normalized?.channel || !normalized?.to) return;
1360
+ const threadId = normalized.threadId != null && normalized.threadId !== "" ? String(normalized.threadId) : "";
1361
+ return `${normalized.channel}|${normalized.to}|${normalized.accountId ?? ""}|${threadId}`;
1362
+ }
1363
+
1364
+ //#endregion
1365
+ //#region src/config/cache-utils.ts
1366
+ function resolveCacheTtlMs(params) {
1367
+ const { envValue, defaultTtlMs } = params;
1368
+ if (envValue) {
1369
+ const parsed = Number.parseInt(envValue, 10);
1370
+ if (Number.isFinite(parsed) && parsed >= 0) return parsed;
1371
+ }
1372
+ return defaultTtlMs;
1373
+ }
1374
+ function isCacheEnabled(ttlMs) {
1375
+ return ttlMs > 0;
1376
+ }
1377
+ function getFileMtimeMs(filePath) {
1378
+ try {
1379
+ return fs$1.statSync(filePath).mtimeMs;
1380
+ } catch {
1381
+ return;
1382
+ }
1383
+ }
1384
+
1385
+ //#endregion
1386
+ //#region src/config/sessions/store.ts
1387
+ const log = createSubsystemLogger("sessions/store");
1388
+ const SESSION_STORE_CACHE = /* @__PURE__ */ new Map();
1389
+ const DEFAULT_SESSION_STORE_TTL_MS = 45e3;
1390
+ function isSessionStoreRecord(value) {
1391
+ return !!value && typeof value === "object" && !Array.isArray(value);
1392
+ }
1393
+ function getSessionStoreTtl() {
1394
+ return resolveCacheTtlMs({
1395
+ envValue: process.env.ANIMA_SESSION_CACHE_TTL_MS,
1396
+ defaultTtlMs: DEFAULT_SESSION_STORE_TTL_MS
1397
+ });
1398
+ }
1399
+ function isSessionStoreCacheEnabled() {
1400
+ return isCacheEnabled(getSessionStoreTtl());
1401
+ }
1402
+ function isSessionStoreCacheValid(entry) {
1403
+ const now = Date.now();
1404
+ const ttl = getSessionStoreTtl();
1405
+ return now - entry.loadedAt <= ttl;
1406
+ }
1407
+ function invalidateSessionStoreCache(storePath) {
1408
+ SESSION_STORE_CACHE.delete(storePath);
1409
+ }
1410
+ function normalizeSessionEntryDelivery(entry) {
1411
+ const normalized = normalizeSessionDeliveryFields({
1412
+ channel: entry.channel,
1413
+ lastChannel: entry.lastChannel,
1414
+ lastTo: entry.lastTo,
1415
+ lastAccountId: entry.lastAccountId,
1416
+ lastThreadId: entry.lastThreadId ?? entry.deliveryContext?.threadId ?? entry.origin?.threadId,
1417
+ deliveryContext: entry.deliveryContext
1418
+ });
1419
+ const nextDelivery = normalized.deliveryContext;
1420
+ const sameDelivery = (entry.deliveryContext?.channel ?? void 0) === nextDelivery?.channel && (entry.deliveryContext?.to ?? void 0) === nextDelivery?.to && (entry.deliveryContext?.accountId ?? void 0) === nextDelivery?.accountId && (entry.deliveryContext?.threadId ?? void 0) === nextDelivery?.threadId;
1421
+ const sameLast = entry.lastChannel === normalized.lastChannel && entry.lastTo === normalized.lastTo && entry.lastAccountId === normalized.lastAccountId && entry.lastThreadId === normalized.lastThreadId;
1422
+ if (sameDelivery && sameLast) return entry;
1423
+ return {
1424
+ ...entry,
1425
+ deliveryContext: nextDelivery,
1426
+ lastChannel: normalized.lastChannel,
1427
+ lastTo: normalized.lastTo,
1428
+ lastAccountId: normalized.lastAccountId,
1429
+ lastThreadId: normalized.lastThreadId
1430
+ };
1431
+ }
1432
+ function removeThreadFromDeliveryContext(context) {
1433
+ if (!context || context.threadId == null) return context;
1434
+ const next = { ...context };
1435
+ delete next.threadId;
1436
+ return next;
1437
+ }
1438
+ function normalizeSessionStore(store) {
1439
+ for (const [key, entry] of Object.entries(store)) {
1440
+ if (!entry) continue;
1441
+ const normalized = normalizeSessionEntryDelivery(entry);
1442
+ if (normalized !== entry) store[key] = normalized;
1443
+ }
1444
+ }
1445
+ function loadSessionStore(storePath, opts = {}) {
1446
+ if (!opts.skipCache && isSessionStoreCacheEnabled()) {
1447
+ const cached = SESSION_STORE_CACHE.get(storePath);
1448
+ if (cached && isSessionStoreCacheValid(cached)) {
1449
+ if (getFileMtimeMs(storePath) === cached.mtimeMs) return structuredClone(cached.store);
1450
+ invalidateSessionStoreCache(storePath);
1451
+ }
1452
+ }
1453
+ let store = {};
1454
+ let mtimeMs = getFileMtimeMs(storePath);
1455
+ try {
1456
+ const raw = fs$1.readFileSync(storePath, "utf-8");
1457
+ const parsed = JSON.parse(raw);
1458
+ if (isSessionStoreRecord(parsed)) store = parsed;
1459
+ mtimeMs = getFileMtimeMs(storePath) ?? mtimeMs;
1460
+ } catch {}
1461
+ for (const entry of Object.values(store)) {
1462
+ if (!entry || typeof entry !== "object") continue;
1463
+ const rec = entry;
1464
+ if (typeof rec.channel !== "string" && typeof rec.provider === "string") {
1465
+ rec.channel = rec.provider;
1466
+ delete rec.provider;
1467
+ }
1468
+ if (typeof rec.lastChannel !== "string" && typeof rec.lastProvider === "string") {
1469
+ rec.lastChannel = rec.lastProvider;
1470
+ delete rec.lastProvider;
1471
+ }
1472
+ if (typeof rec.groupChannel !== "string" && typeof rec.room === "string") {
1473
+ rec.groupChannel = rec.room;
1474
+ delete rec.room;
1475
+ } else if ("room" in rec) delete rec.room;
1476
+ }
1477
+ if (!opts.skipCache && isSessionStoreCacheEnabled()) SESSION_STORE_CACHE.set(storePath, {
1478
+ store: structuredClone(store),
1479
+ loadedAt: Date.now(),
1480
+ storePath,
1481
+ mtimeMs
1482
+ });
1483
+ return structuredClone(store);
1484
+ }
1485
+ function readSessionUpdatedAt(params) {
1486
+ try {
1487
+ return loadSessionStore(params.storePath)[params.sessionKey]?.updatedAt;
1488
+ } catch {
1489
+ return;
1490
+ }
1491
+ }
1492
+ const DEFAULT_SESSION_PRUNE_AFTER_MS = 720 * 60 * 60 * 1e3;
1493
+ const DEFAULT_SESSION_MAX_ENTRIES = 500;
1494
+ const DEFAULT_SESSION_ROTATE_BYTES = 10485760;
1495
+ const DEFAULT_SESSION_MAINTENANCE_MODE = "warn";
1496
+ function resolvePruneAfterMs(maintenance) {
1497
+ const raw = maintenance?.pruneAfter ?? maintenance?.pruneDays;
1498
+ if (raw === void 0 || raw === null || raw === "") return DEFAULT_SESSION_PRUNE_AFTER_MS;
1499
+ try {
1500
+ return parseDurationMs(String(raw).trim(), { defaultUnit: "d" });
1501
+ } catch {
1502
+ return DEFAULT_SESSION_PRUNE_AFTER_MS;
1503
+ }
1504
+ }
1505
+ function resolveRotateBytes(maintenance) {
1506
+ const raw = maintenance?.rotateBytes;
1507
+ if (raw === void 0 || raw === null || raw === "") return DEFAULT_SESSION_ROTATE_BYTES;
1508
+ try {
1509
+ return parseByteSize(String(raw).trim(), { defaultUnit: "b" });
1510
+ } catch {
1511
+ return DEFAULT_SESSION_ROTATE_BYTES;
1512
+ }
1513
+ }
1514
+ /**
1515
+ * Resolve maintenance settings from anima.json (`session.maintenance`).
1516
+ * Falls back to built-in defaults when config is missing or unset.
1517
+ */
1518
+ function resolveMaintenanceConfig() {
1519
+ let maintenance;
1520
+ try {
1521
+ maintenance = loadConfig().session?.maintenance;
1522
+ } catch {}
1523
+ return {
1524
+ mode: maintenance?.mode ?? DEFAULT_SESSION_MAINTENANCE_MODE,
1525
+ pruneAfterMs: resolvePruneAfterMs(maintenance),
1526
+ maxEntries: maintenance?.maxEntries ?? DEFAULT_SESSION_MAX_ENTRIES,
1527
+ rotateBytes: resolveRotateBytes(maintenance)
1528
+ };
1529
+ }
1530
+ /**
1531
+ * Remove entries whose `updatedAt` is older than the configured threshold.
1532
+ * Entries without `updatedAt` are kept (cannot determine staleness).
1533
+ * Mutates `store` in-place.
1534
+ */
1535
+ function pruneStaleEntries(store, overrideMaxAgeMs, opts = {}) {
1536
+ const maxAgeMs = overrideMaxAgeMs ?? resolveMaintenanceConfig().pruneAfterMs;
1537
+ const cutoffMs = Date.now() - maxAgeMs;
1538
+ let pruned = 0;
1539
+ for (const [key, entry] of Object.entries(store)) if (entry?.updatedAt != null && entry.updatedAt < cutoffMs) {
1540
+ delete store[key];
1541
+ pruned++;
1542
+ }
1543
+ if (pruned > 0 && opts.log !== false) log.info("pruned stale session entries", {
1544
+ pruned,
1545
+ maxAgeMs
1546
+ });
1547
+ return pruned;
1548
+ }
1549
+ /**
1550
+ * Cap the store to the N most recently updated entries.
1551
+ * Entries without `updatedAt` are sorted last (removed first when over limit).
1552
+ * Mutates `store` in-place.
1553
+ */
1554
+ function getEntryUpdatedAt(entry) {
1555
+ return entry?.updatedAt ?? Number.NEGATIVE_INFINITY;
1556
+ }
1557
+ function getActiveSessionMaintenanceWarning(params) {
1558
+ const activeSessionKey = params.activeSessionKey.trim();
1559
+ if (!activeSessionKey) return null;
1560
+ const activeEntry = params.store[activeSessionKey];
1561
+ if (!activeEntry) return null;
1562
+ const cutoffMs = (params.nowMs ?? Date.now()) - params.pruneAfterMs;
1563
+ const wouldPrune = activeEntry.updatedAt != null ? activeEntry.updatedAt < cutoffMs : false;
1564
+ const keys = Object.keys(params.store);
1565
+ const wouldCap = keys.length > params.maxEntries && keys.toSorted((a, b) => getEntryUpdatedAt(params.store[b]) - getEntryUpdatedAt(params.store[a])).slice(params.maxEntries).includes(activeSessionKey);
1566
+ if (!wouldPrune && !wouldCap) return null;
1567
+ return {
1568
+ activeSessionKey,
1569
+ activeUpdatedAt: activeEntry.updatedAt,
1570
+ totalEntries: keys.length,
1571
+ pruneAfterMs: params.pruneAfterMs,
1572
+ maxEntries: params.maxEntries,
1573
+ wouldPrune,
1574
+ wouldCap
1575
+ };
1576
+ }
1577
+ function capEntryCount(store, overrideMax, opts = {}) {
1578
+ const maxEntries = overrideMax ?? resolveMaintenanceConfig().maxEntries;
1579
+ const keys = Object.keys(store);
1580
+ if (keys.length <= maxEntries) return 0;
1581
+ const toRemove = keys.toSorted((a, b) => {
1582
+ const aTime = getEntryUpdatedAt(store[a]);
1583
+ return getEntryUpdatedAt(store[b]) - aTime;
1584
+ }).slice(maxEntries);
1585
+ for (const key of toRemove) delete store[key];
1586
+ if (opts.log !== false) log.info("capped session entry count", {
1587
+ removed: toRemove.length,
1588
+ maxEntries
1589
+ });
1590
+ return toRemove.length;
1591
+ }
1592
+ async function getSessionFileSize(storePath) {
1593
+ try {
1594
+ return (await fs$1.promises.stat(storePath)).size;
1595
+ } catch {
1596
+ return null;
1597
+ }
1598
+ }
1599
+ /**
1600
+ * Rotate the sessions file if it exceeds the configured size threshold.
1601
+ * Renames the current file to `sessions.json.bak.{timestamp}` and cleans up
1602
+ * old rotation backups, keeping only the 3 most recent `.bak.*` files.
1603
+ */
1604
+ async function rotateSessionFile(storePath, overrideBytes) {
1605
+ const maxBytes = overrideBytes ?? resolveMaintenanceConfig().rotateBytes;
1606
+ const fileSize = await getSessionFileSize(storePath);
1607
+ if (fileSize == null) return false;
1608
+ if (fileSize <= maxBytes) return false;
1609
+ const backupPath = `${storePath}.bak.${Date.now()}`;
1610
+ try {
1611
+ await fs$1.promises.rename(storePath, backupPath);
1612
+ log.info("rotated session store file", {
1613
+ backupPath: path.basename(backupPath),
1614
+ sizeBytes: fileSize
1615
+ });
1616
+ } catch {
1617
+ return false;
1618
+ }
1619
+ try {
1620
+ const dir = path.dirname(storePath);
1621
+ const baseName = path.basename(storePath);
1622
+ const backups = (await fs$1.promises.readdir(dir)).filter((f) => f.startsWith(`${baseName}.bak.`)).toSorted().toReversed();
1623
+ const maxBackups = 3;
1624
+ if (backups.length > maxBackups) {
1625
+ const toDelete = backups.slice(maxBackups);
1626
+ for (const old of toDelete) await fs$1.promises.unlink(path.join(dir, old)).catch(() => void 0);
1627
+ log.info("cleaned up old session store backups", { deleted: toDelete.length });
1628
+ }
1629
+ } catch {}
1630
+ return true;
1631
+ }
1632
+ async function saveSessionStoreUnlocked(storePath, store, opts) {
1633
+ invalidateSessionStoreCache(storePath);
1634
+ normalizeSessionStore(store);
1635
+ if (!opts?.skipMaintenance) {
1636
+ const maintenance = resolveMaintenanceConfig();
1637
+ if (maintenance.mode === "warn") {
1638
+ const activeSessionKey = opts?.activeSessionKey?.trim();
1639
+ if (activeSessionKey) {
1640
+ const warning = getActiveSessionMaintenanceWarning({
1641
+ store,
1642
+ activeSessionKey,
1643
+ pruneAfterMs: maintenance.pruneAfterMs,
1644
+ maxEntries: maintenance.maxEntries
1645
+ });
1646
+ if (warning) {
1647
+ log.warn("session maintenance would evict active session; skipping enforcement", {
1648
+ activeSessionKey: warning.activeSessionKey,
1649
+ wouldPrune: warning.wouldPrune,
1650
+ wouldCap: warning.wouldCap,
1651
+ pruneAfterMs: warning.pruneAfterMs,
1652
+ maxEntries: warning.maxEntries
1653
+ });
1654
+ await opts?.onWarn?.(warning);
1655
+ }
1656
+ }
1657
+ } else {
1658
+ pruneStaleEntries(store, maintenance.pruneAfterMs);
1659
+ capEntryCount(store, maintenance.maxEntries);
1660
+ await rotateSessionFile(storePath, maintenance.rotateBytes);
1661
+ }
1662
+ }
1663
+ await fs$1.promises.mkdir(path.dirname(storePath), { recursive: true });
1664
+ const json = JSON.stringify(store, null, 2);
1665
+ if (process.platform === "win32") {
1666
+ try {
1667
+ await fs$1.promises.writeFile(storePath, json, "utf-8");
1668
+ } catch (err) {
1669
+ if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) === "ENOENT") return;
1670
+ throw err;
1671
+ }
1672
+ return;
1673
+ }
1674
+ const tmp = `${storePath}.${process.pid}.${crypto.randomUUID()}.tmp`;
1675
+ try {
1676
+ await fs$1.promises.writeFile(tmp, json, {
1677
+ mode: 384,
1678
+ encoding: "utf-8"
1679
+ });
1680
+ await fs$1.promises.rename(tmp, storePath);
1681
+ await fs$1.promises.chmod(storePath, 384);
1682
+ } catch (err) {
1683
+ if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) === "ENOENT") {
1684
+ try {
1685
+ await fs$1.promises.mkdir(path.dirname(storePath), { recursive: true });
1686
+ await fs$1.promises.writeFile(storePath, json, {
1687
+ mode: 384,
1688
+ encoding: "utf-8"
1689
+ });
1690
+ await fs$1.promises.chmod(storePath, 384);
1691
+ } catch (err2) {
1692
+ if ((err2 && typeof err2 === "object" && "code" in err2 ? String(err2.code) : null) === "ENOENT") return;
1693
+ throw err2;
1694
+ }
1695
+ return;
1696
+ }
1697
+ throw err;
1698
+ } finally {
1699
+ await fs$1.promises.rm(tmp, { force: true });
1700
+ }
1701
+ }
1702
+ async function updateSessionStore(storePath, mutator, opts) {
1703
+ return await withSessionStoreLock(storePath, async () => {
1704
+ const store = loadSessionStore(storePath, { skipCache: true });
1705
+ const result = await mutator(store);
1706
+ await saveSessionStoreUnlocked(storePath, store, opts);
1707
+ return result;
1708
+ });
1709
+ }
1710
+ const LOCK_QUEUES = /* @__PURE__ */ new Map();
1711
+ function lockTimeoutError(storePath) {
1712
+ return /* @__PURE__ */ new Error(`timeout waiting for session store lock: ${storePath}`);
1713
+ }
1714
+ function getOrCreateLockQueue(storePath) {
1715
+ const existing = LOCK_QUEUES.get(storePath);
1716
+ if (existing) return existing;
1717
+ const created = {
1718
+ running: false,
1719
+ pending: []
1720
+ };
1721
+ LOCK_QUEUES.set(storePath, created);
1722
+ return created;
1723
+ }
1724
+ function removePendingTask(queue, task) {
1725
+ const idx = queue.pending.indexOf(task);
1726
+ if (idx >= 0) queue.pending.splice(idx, 1);
1727
+ }
1728
+ async function drainSessionStoreLockQueue(storePath) {
1729
+ const queue = LOCK_QUEUES.get(storePath);
1730
+ if (!queue || queue.running) return;
1731
+ queue.running = true;
1732
+ try {
1733
+ while (queue.pending.length > 0) {
1734
+ const task = queue.pending.shift();
1735
+ if (!task || task.timedOut) continue;
1736
+ if (task.timer) clearTimeout(task.timer);
1737
+ task.started = true;
1738
+ const remainingTimeoutMs = task.timeoutAt != null ? Math.max(0, task.timeoutAt - Date.now()) : Number.POSITIVE_INFINITY;
1739
+ if (task.timeoutAt != null && remainingTimeoutMs <= 0) {
1740
+ task.timedOut = true;
1741
+ task.reject(lockTimeoutError(storePath));
1742
+ continue;
1743
+ }
1744
+ let lock;
1745
+ let result;
1746
+ let failed;
1747
+ let hasFailure = false;
1748
+ try {
1749
+ lock = await acquireSessionWriteLock({
1750
+ sessionFile: storePath,
1751
+ timeoutMs: remainingTimeoutMs,
1752
+ staleMs: task.staleMs
1753
+ });
1754
+ result = await task.fn();
1755
+ } catch (err) {
1756
+ hasFailure = true;
1757
+ failed = err;
1758
+ } finally {
1759
+ await lock?.release().catch(() => void 0);
1760
+ }
1761
+ if (hasFailure) {
1762
+ task.reject(failed);
1763
+ continue;
1764
+ }
1765
+ task.resolve(result);
1766
+ }
1767
+ } finally {
1768
+ queue.running = false;
1769
+ if (queue.pending.length === 0) LOCK_QUEUES.delete(storePath);
1770
+ else queueMicrotask(() => {
1771
+ drainSessionStoreLockQueue(storePath);
1772
+ });
1773
+ }
1774
+ }
1775
+ async function withSessionStoreLock(storePath, fn, opts = {}) {
1776
+ const timeoutMs = opts.timeoutMs ?? 1e4;
1777
+ const staleMs = opts.staleMs ?? 3e4;
1778
+ opts.pollIntervalMs;
1779
+ const hasTimeout = timeoutMs > 0 && Number.isFinite(timeoutMs);
1780
+ const timeoutAt = hasTimeout ? Date.now() + timeoutMs : void 0;
1781
+ const queue = getOrCreateLockQueue(storePath);
1782
+ return await new Promise((resolve, reject) => {
1783
+ const task = {
1784
+ fn: async () => await fn(),
1785
+ resolve: (value) => resolve(value),
1786
+ reject,
1787
+ timeoutAt,
1788
+ staleMs,
1789
+ started: false,
1790
+ timedOut: false
1791
+ };
1792
+ if (hasTimeout) task.timer = setTimeout(() => {
1793
+ if (task.started || task.timedOut) return;
1794
+ task.timedOut = true;
1795
+ removePendingTask(queue, task);
1796
+ reject(lockTimeoutError(storePath));
1797
+ }, timeoutMs);
1798
+ queue.pending.push(task);
1799
+ drainSessionStoreLockQueue(storePath);
1800
+ });
1801
+ }
1802
+ async function updateSessionStoreEntry(params) {
1803
+ const { storePath, sessionKey, update } = params;
1804
+ return await withSessionStoreLock(storePath, async () => {
1805
+ const store = loadSessionStore(storePath);
1806
+ const existing = store[sessionKey];
1807
+ if (!existing) return null;
1808
+ const patch = await update(existing);
1809
+ if (!patch) return existing;
1810
+ const next = mergeSessionEntry(existing, patch);
1811
+ store[sessionKey] = next;
1812
+ await saveSessionStoreUnlocked(storePath, store, { activeSessionKey: sessionKey });
1813
+ return next;
1814
+ });
1815
+ }
1816
+ async function recordSessionMetaFromInbound(params) {
1817
+ const { storePath, sessionKey, ctx } = params;
1818
+ const createIfMissing = params.createIfMissing ?? true;
1819
+ return await updateSessionStore(storePath, (store) => {
1820
+ const existing = store[sessionKey];
1821
+ const patch = deriveSessionMetaPatch({
1822
+ ctx,
1823
+ sessionKey,
1824
+ existing,
1825
+ groupResolution: params.groupResolution
1826
+ });
1827
+ if (!patch) return existing ?? null;
1828
+ if (!existing && !createIfMissing) return null;
1829
+ const next = mergeSessionEntry(existing, patch);
1830
+ store[sessionKey] = next;
1831
+ return next;
1832
+ }, { activeSessionKey: sessionKey });
1833
+ }
1834
+ async function updateLastRoute(params) {
1835
+ const { storePath, sessionKey, channel, to, accountId, threadId, ctx } = params;
1836
+ return await withSessionStoreLock(storePath, async () => {
1837
+ const store = loadSessionStore(storePath);
1838
+ const existing = store[sessionKey];
1839
+ const now = Date.now();
1840
+ const explicitContext = normalizeDeliveryContext(params.deliveryContext);
1841
+ const inlineContext = normalizeDeliveryContext({
1842
+ channel,
1843
+ to,
1844
+ accountId,
1845
+ threadId
1846
+ });
1847
+ const mergedInput = mergeDeliveryContext(explicitContext, inlineContext);
1848
+ const explicitDeliveryContext = params.deliveryContext;
1849
+ const explicitThreadValue = (explicitDeliveryContext != null && Object.prototype.hasOwnProperty.call(explicitDeliveryContext, "threadId") ? explicitDeliveryContext.threadId : void 0) ?? (threadId != null && threadId !== "" ? threadId : void 0);
1850
+ const merged = mergeDeliveryContext(mergedInput, Boolean(explicitContext?.channel || explicitContext?.to || inlineContext?.channel || inlineContext?.to) && explicitThreadValue == null ? removeThreadFromDeliveryContext(deliveryContextFromSession(existing)) : deliveryContextFromSession(existing));
1851
+ const normalized = normalizeSessionDeliveryFields({ deliveryContext: {
1852
+ channel: merged?.channel,
1853
+ to: merged?.to,
1854
+ accountId: merged?.accountId,
1855
+ threadId: merged?.threadId
1856
+ } });
1857
+ const metaPatch = ctx ? deriveSessionMetaPatch({
1858
+ ctx,
1859
+ sessionKey,
1860
+ existing,
1861
+ groupResolution: params.groupResolution
1862
+ }) : null;
1863
+ const basePatch = {
1864
+ updatedAt: Math.max(existing?.updatedAt ?? 0, now),
1865
+ deliveryContext: normalized.deliveryContext,
1866
+ lastChannel: normalized.lastChannel,
1867
+ lastTo: normalized.lastTo,
1868
+ lastAccountId: normalized.lastAccountId,
1869
+ lastThreadId: normalized.lastThreadId
1870
+ };
1871
+ const next = mergeSessionEntry(existing, metaPatch ? {
1872
+ ...basePatch,
1873
+ ...metaPatch
1874
+ } : basePatch);
1875
+ store[sessionKey] = next;
1876
+ await saveSessionStoreUnlocked(storePath, store, { activeSessionKey: sessionKey });
1877
+ return next;
1878
+ });
1879
+ }
1880
+
1881
+ //#endregion
1882
+ //#region src/config/sessions/transcript.ts
1883
+ function stripQuery(value) {
1884
+ const noHash = value.split("#")[0] ?? value;
1885
+ return noHash.split("?")[0] ?? noHash;
1886
+ }
1887
+ function extractFileNameFromMediaUrl(value) {
1888
+ const trimmed = value.trim();
1889
+ if (!trimmed) return null;
1890
+ const cleaned = stripQuery(trimmed);
1891
+ try {
1892
+ const parsed = new URL(cleaned);
1893
+ const base = path.basename(parsed.pathname);
1894
+ if (!base) return null;
1895
+ try {
1896
+ return decodeURIComponent(base);
1897
+ } catch {
1898
+ return base;
1899
+ }
1900
+ } catch {
1901
+ const base = path.basename(cleaned);
1902
+ if (!base || base === "/" || base === ".") return null;
1903
+ return base;
1904
+ }
1905
+ }
1906
+ function resolveMirroredTranscriptText(params) {
1907
+ const mediaUrls = params.mediaUrls?.filter((url) => url && url.trim()) ?? [];
1908
+ if (mediaUrls.length > 0) {
1909
+ const names = mediaUrls.map((url) => extractFileNameFromMediaUrl(url)).filter((name) => Boolean(name && name.trim()));
1910
+ if (names.length > 0) return names.join(", ");
1911
+ return "media";
1912
+ }
1913
+ const trimmed = (params.text ?? "").trim();
1914
+ return trimmed ? trimmed : null;
1915
+ }
1916
+ async function ensureSessionHeader(params) {
1917
+ if (fs$1.existsSync(params.sessionFile)) return;
1918
+ await fs$1.promises.mkdir(path.dirname(params.sessionFile), { recursive: true });
1919
+ const header = {
1920
+ type: "session",
1921
+ version: CURRENT_SESSION_VERSION,
1922
+ id: params.sessionId,
1923
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
1924
+ cwd: process.cwd()
1925
+ };
1926
+ await fs$1.promises.writeFile(params.sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
1927
+ }
1928
+ async function appendAssistantMessageToSessionTranscript(params) {
1929
+ const sessionKey = params.sessionKey.trim();
1930
+ if (!sessionKey) return {
1931
+ ok: false,
1932
+ reason: "missing sessionKey"
1933
+ };
1934
+ const mirrorText = resolveMirroredTranscriptText({
1935
+ text: params.text,
1936
+ mediaUrls: params.mediaUrls
1937
+ });
1938
+ if (!mirrorText) return {
1939
+ ok: false,
1940
+ reason: "empty text"
1941
+ };
1942
+ const storePath = params.storePath ?? resolveDefaultSessionStorePath(params.agentId);
1943
+ const entry = loadSessionStore(storePath, { skipCache: true })[sessionKey];
1944
+ if (!entry?.sessionId) return {
1945
+ ok: false,
1946
+ reason: `unknown sessionKey: ${sessionKey}`
1947
+ };
1948
+ let sessionFile;
1949
+ try {
1950
+ sessionFile = resolveSessionFilePath(entry.sessionId, entry, {
1951
+ agentId: params.agentId,
1952
+ sessionsDir: path.dirname(storePath)
1953
+ });
1954
+ } catch (err) {
1955
+ return {
1956
+ ok: false,
1957
+ reason: err instanceof Error ? err.message : String(err)
1958
+ };
1959
+ }
1960
+ await ensureSessionHeader({
1961
+ sessionFile,
1962
+ sessionId: entry.sessionId
1963
+ });
1964
+ SessionManager.open(sessionFile).appendMessage({
1965
+ role: "assistant",
1966
+ content: [{
1967
+ type: "text",
1968
+ text: mirrorText
1969
+ }],
1970
+ api: "openai-responses",
1971
+ provider: "anima",
1972
+ model: "delivery-mirror",
1973
+ usage: {
1974
+ input: 0,
1975
+ output: 0,
1976
+ cacheRead: 0,
1977
+ cacheWrite: 0,
1978
+ totalTokens: 0,
1979
+ cost: {
1980
+ input: 0,
1981
+ output: 0,
1982
+ cacheRead: 0,
1983
+ cacheWrite: 0,
1984
+ total: 0
1985
+ }
1986
+ },
1987
+ stopReason: "stop",
1988
+ timestamp: Date.now()
1989
+ });
1990
+ if (!entry.sessionFile || entry.sessionFile !== sessionFile) await updateSessionStore(storePath, (current) => {
1991
+ current[sessionKey] = {
1992
+ ...entry,
1993
+ sessionFile
1994
+ };
1995
+ }, { activeSessionKey: sessionKey });
1996
+ emitSessionTranscriptUpdate(sessionFile);
1997
+ return {
1998
+ ok: true,
1999
+ sessionFile
2000
+ };
2001
+ }
2002
+
2003
+ //#endregion
2004
+ //#region src/config/sessions/delivery-info.ts
2005
+ /**
2006
+ * Extract deliveryContext and threadId from a sessionKey.
2007
+ * Supports both :thread: (most channels) and :topic: (Telegram).
2008
+ */
2009
+ function extractDeliveryInfo(sessionKey) {
2010
+ if (!sessionKey) return {
2011
+ deliveryContext: void 0,
2012
+ threadId: void 0
2013
+ };
2014
+ const topicIndex = sessionKey.lastIndexOf(":topic:");
2015
+ const threadIndex = sessionKey.lastIndexOf(":thread:");
2016
+ const markerIndex = Math.max(topicIndex, threadIndex);
2017
+ const marker = topicIndex > threadIndex ? ":topic:" : ":thread:";
2018
+ const baseSessionKey = markerIndex === -1 ? sessionKey : sessionKey.slice(0, markerIndex);
2019
+ const threadId = (markerIndex === -1 ? void 0 : sessionKey.slice(markerIndex + marker.length))?.trim() || void 0;
2020
+ let deliveryContext;
2021
+ try {
2022
+ const store = loadSessionStore(resolveStorePath(loadConfig().session?.store));
2023
+ let entry = store[sessionKey];
2024
+ if (!entry?.deliveryContext && markerIndex !== -1 && baseSessionKey) entry = store[baseSessionKey];
2025
+ if (entry?.deliveryContext) deliveryContext = {
2026
+ channel: entry.deliveryContext.channel,
2027
+ to: entry.deliveryContext.to,
2028
+ accountId: entry.deliveryContext.accountId
2029
+ };
2030
+ } catch {}
2031
+ return {
2032
+ deliveryContext,
2033
+ threadId
2034
+ };
2035
+ }
2036
+
2037
+ //#endregion
2038
+ export { listChannelDocks as A, HEARTBEAT_TOKEN as B, resolveFreshSessionTotalTokens as C, resolveMainSessionKey as D, resolveExplicitAgentSessionKey as E, resolveChannelGroupRequireMention as F, isSilentReplyText as H, resolveChannelGroupToolsPolicy as I, resolveConversationLabel as L, resolveSignalAccount as M, resolveIMessageAccount as N, deriveSessionMetaPatch as O, resolveChannelGroupPolicy as P, normalizeChatType as R, DEFAULT_RESET_TRIGGERS as S, resolveAgentMainSessionKey as T, SILENT_REPLY_TOKEN as V, evaluateSessionFreshness as _, readSessionUpdatedAt as a, resolveSessionResetType as b, updateSessionStore as c, deliveryContextKey as d, mergeDeliveryContext as f, resolveSessionKey as g, normalizeAccountId as h, loadSessionStore as i, listEnabledSignalAccounts as j, getChannelDock as k, updateSessionStoreEntry as l, normalizeSessionDeliveryFields as m, appendAssistantMessageToSessionTranscript as n, recordSessionMetaFromInbound as o, normalizeDeliveryContext as p, resolveMirroredTranscriptText as r, updateLastRoute as s, extractDeliveryInfo as t, deliveryContextFromSession as u, resolveChannelResetConfig as v, canonicalizeMainSessionAlias as w, resolveThreadFlag as x, resolveSessionResetPolicy as y, resolveGroupSessionKey as z };