stableclaw 2026.4.6 → 2026.4.8

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 (2751) hide show
  1. package/README.md +22 -290
  2. package/package.json +1 -73
  3. package/dist/.buildstamp +0 -1
  4. package/dist/abort-C9luPDzM.js +0 -192
  5. package/dist/abort-cutoff-B1ws4nOb.js +0 -56
  6. package/dist/abort-cutoff.runtime-DyRUNN6p.js +0 -20
  7. package/dist/abort-cutoff.runtime.js +0 -1
  8. package/dist/abort-primitives-CGyFwJ93.js +0 -92
  9. package/dist/abort-signal-CrrraMAi.js +0 -13
  10. package/dist/abort.runtime-oBiooAFx.js +0 -2
  11. package/dist/abort.runtime.js +0 -1
  12. package/dist/access-DIqrGWVo.js +0 -81
  13. package/dist/access-control-DfV6HWO9.js +0 -152
  14. package/dist/account-action-gate-eHi2MB4J.js +0 -12
  15. package/dist/account-core-DOelA7Wl.js +0 -26
  16. package/dist/account-helpers-CafpxP7V.js +0 -1
  17. package/dist/account-helpers-jJOgsae3.js +0 -102
  18. package/dist/account-id-DXal1kRJ.js +0 -1
  19. package/dist/account-inspect-CfagweUE.js +0 -158
  20. package/dist/account-inspect-DOt4IDX6.js +0 -92
  21. package/dist/account-inspect-pnXre-7b.js +0 -81
  22. package/dist/account-lookup-CLJxpfHr.js +0 -17
  23. package/dist/account-resolution-CbKUJkzG.js +0 -30
  24. package/dist/account-selection-B8a_DqXo.js +0 -222
  25. package/dist/account-snapshot-fields-mr-1u321.js +0 -130
  26. package/dist/account-summary-DA6ds0Hk.js +0 -36
  27. package/dist/accounts-CO-lK8jJ.js +0 -150
  28. package/dist/accounts-D419O6Gq.js +0 -2
  29. package/dist/accounts-DKMLcV4g.js +0 -132
  30. package/dist/accounts-DdiZwn14.js +0 -57
  31. package/dist/accounts-SWhOQhoA.js +0 -58
  32. package/dist/accounts-iR2U_Vs4.js +0 -41
  33. package/dist/accounts-jsSym1md.js +0 -102
  34. package/dist/accounts-p4Eir-wB.js +0 -107
  35. package/dist/accounts-uAWNlC7q.js +0 -94
  36. package/dist/accounts-x23pAGjm.js +0 -137
  37. package/dist/accounts.runtime-PJOhs60R.js +0 -2
  38. package/dist/accounts.runtime.js +0 -1
  39. package/dist/ack-reactions-fcKs7CQ_.js +0 -43
  40. package/dist/acp-cli-ByWTIhFx.js +0 -2207
  41. package/dist/acp-runtime-D7wrReOP.js +0 -8
  42. package/dist/acp-stateful-target-driver-DY2EfkQt.js +0 -60
  43. package/dist/action-runtime-BdRtmydq.js +0 -318
  44. package/dist/action-runtime-DvNB5A61.js +0 -72
  45. package/dist/action-runtime-api-BnVs42oX.js +0 -1028
  46. package/dist/actions-CUYHtUqe.js +0 -531
  47. package/dist/actions.runtime-BBrSlYkH.js +0 -18
  48. package/dist/actions.runtime-DB4aKmBO.js +0 -5
  49. package/dist/actions.runtime-bdKprwSE.js +0 -2
  50. package/dist/actions.runtime.js +0 -1
  51. package/dist/active-listener-SB9ihcaC.js +0 -46
  52. package/dist/agent-command-C_MGil8o.js +0 -1457
  53. package/dist/agent-list-MRXQwyo0.js +0 -52
  54. package/dist/agent-media-payload-DDTSvr-n.js +0 -17
  55. package/dist/agent-paths-D711oayD.js +0 -12
  56. package/dist/agent-runner-utils-DEYzwZHa.js +0 -182
  57. package/dist/agent-runner.runtime-v2uIsAVy.js +0 -2218
  58. package/dist/agent-runner.runtime.js +0 -1
  59. package/dist/agent-runtime-Cz19IsmJ.js +0 -142
  60. package/dist/agent-s4m0Xp6V.js +0 -2
  61. package/dist/agent-scope-rWWUivuC.js +0 -215
  62. package/dist/agent-tools-login-DU1gQC9-.js +0 -57
  63. package/dist/agents/auth-profiles.runtime.js +0 -7
  64. package/dist/agents/pi-model-discovery-runtime.js +0 -2
  65. package/dist/agents-B2W3IoEe.js +0 -888
  66. package/dist/agents-DmE3LRim.js +0 -5
  67. package/dist/agents.config-D6XoJFQ-.js +0 -3
  68. package/dist/agents.config-Ui_tQc3C.js +0 -121
  69. package/dist/allow-from-Bj0HDNYh.js +0 -20
  70. package/dist/allow-from-CJwSUt_K.js +0 -9
  71. package/dist/allow-from-xOap1t02.js +0 -62
  72. package/dist/allow-list-DeRUbyj4.js +0 -319
  73. package/dist/allowed-updates-aOgPxM0g.js +0 -31
  74. package/dist/allowlist-config-edit-Ch2EvAYo.js +0 -279
  75. package/dist/allowlist-match-Dm6AqFEs.js +0 -63
  76. package/dist/ansi-B_0KjIJj.js +0 -54
  77. package/dist/anthropic-vertex-Stff_3_3.js +0 -21
  78. package/dist/anthropic-vertex-stream-DgR8-m-G.js +0 -653
  79. package/dist/api-7Pf2fGBp.js +0 -11
  80. package/dist/api-B80kCRiV.js +0 -11
  81. package/dist/api-B8_Wwelx.js +0 -2
  82. package/dist/api-BLI24uxW.js +0 -2
  83. package/dist/api-BLSg8PM8.js +0 -2
  84. package/dist/api-BRy2h4ZA.js +0 -2
  85. package/dist/api-BU_YBaOK.js +0 -3
  86. package/dist/api-BXQjqvPC.js +0 -2
  87. package/dist/api-BY9iT-AK.js +0 -106
  88. package/dist/api-BipiQQoS.js +0 -2
  89. package/dist/api-Bk5mFOju.js +0 -10
  90. package/dist/api-BrsLZRXn.js +0 -3
  91. package/dist/api-C16j1Xno.js +0 -2
  92. package/dist/api-CGtiPyfv.js +0 -8358
  93. package/dist/api-CHIsf5Wl.js +0 -21
  94. package/dist/api-CP9q4gi6.js +0 -19
  95. package/dist/api-CWPDpJCM.js +0 -2
  96. package/dist/api-CaMdAP9T.js +0 -2
  97. package/dist/api-CftMlodx.js +0 -5
  98. package/dist/api-Cpj_QQAF.js +0 -5
  99. package/dist/api-D13mhDzE.js +0 -33
  100. package/dist/api-DGcbqpSh.js +0 -2
  101. package/dist/api-DIGFhGqm.js +0 -30
  102. package/dist/api-DNxTJAiA.js +0 -5
  103. package/dist/api-DasNTWRo.js +0 -2
  104. package/dist/api-Dn7n2sWC.js +0 -74
  105. package/dist/api-Drq06O1M2.js +0 -6
  106. package/dist/api-OOJHubHS.js +0 -77
  107. package/dist/api-XH46JouJ.js +0 -2
  108. package/dist/api-builder-uuKvRs_O.js +0 -66
  109. package/dist/api-e3cIcFaV.js +0 -1
  110. package/dist/api-fetch-CvBBI8q8.js +0 -35
  111. package/dist/api-key-rotation-BCssmYGp.js +0 -150
  112. package/dist/api-rPpH8518.js +0 -322
  113. package/dist/api-w-46PN0B.js +0 -2
  114. package/dist/apply-DfjUTAkv.js +0 -485
  115. package/dist/apply.runtime-B-srtEUl.js +0 -2
  116. package/dist/apply.runtime-DOG87kW8.js +0 -166
  117. package/dist/apply.runtime.js +0 -1
  118. package/dist/approval-native-CI9-iVJa.js +0 -79
  119. package/dist/approval-native-runtime-2AVlvrdL.js +0 -399
  120. package/dist/approval-renderers-BTKeDNRo.js +0 -87
  121. package/dist/approval-runtime-DIA8ohXa.js +0 -262
  122. package/dist/archive-BaCqqQP1.js +0 -537
  123. package/dist/arg-split-get0R_Yr.js +0 -38
  124. package/dist/artifacts-DXKlQp1z.js +0 -52
  125. package/dist/assistant-error-format-CFSPB8qt.js +0 -109
  126. package/dist/async-lock-QqhPYwhW.js +0 -19
  127. package/dist/attachment-normalize-CMMyswNa.js +0 -921
  128. package/dist/audio-BxqNDSFq.js +0 -53
  129. package/dist/audio-DZWA6M9B.js +0 -41
  130. package/dist/audit-86J-sIQq.js +0 -54
  131. package/dist/audit-D9O3O-41.js +0 -86
  132. package/dist/audit-DwAT-Kzg.js +0 -892
  133. package/dist/audit-channel.allow-from.runtime-DmuUvr2f.js +0 -5
  134. package/dist/audit-channel.allow-from.runtime.js +0 -1
  135. package/dist/audit-channel.collect.runtime-B76LAkrF.js +0 -528
  136. package/dist/audit-channel.collect.runtime.js +0 -1
  137. package/dist/audit-channel.discord.runtime-qM5u1Hnl.js +0 -5
  138. package/dist/audit-channel.discord.runtime.js +0 -1
  139. package/dist/audit-channel.telegram.runtime-DpwmRUPy.js +0 -8
  140. package/dist/audit-channel.telegram.runtime.js +0 -1
  141. package/dist/audit-channel.zalouser.runtime-CzlFZYsv.js +0 -5
  142. package/dist/audit-channel.zalouser.runtime.js +0 -1
  143. package/dist/audit-extra.async-BupKW2BB.js +0 -820
  144. package/dist/audit-fs-B3GdTjId.js +0 -375
  145. package/dist/audit-membership-runtime-n195y1jy.js +0 -55
  146. package/dist/audit.deep.runtime-2gZPpwj8.js +0 -2
  147. package/dist/audit.deep.runtime.js +0 -1
  148. package/dist/audit.nondeep.runtime-6MT8p_25.js +0 -831
  149. package/dist/audit.nondeep.runtime.js +0 -1
  150. package/dist/audit.runtime-jdG0-1Bq.js +0 -7
  151. package/dist/audit.runtime.js +0 -1
  152. package/dist/auth-CmL8nlqP.js +0 -371
  153. package/dist/auth-Zya_1BCc.js +0 -181
  154. package/dist/auth-choice-CSSk-2VN.js +0 -69
  155. package/dist/auth-choice-Uyll2O8p.js +0 -341
  156. package/dist/auth-choice-legacy-5XgU4yCZ.js +0 -44
  157. package/dist/auth-choice-options-DTRb6fq4.js +0 -98
  158. package/dist/auth-choice-prompt-BAQTSD2R.js +0 -36
  159. package/dist/auth-choice-prompt-D6qkTw8h.js +0 -2
  160. package/dist/auth-choice-x5Cm9EXp.js +0 -3
  161. package/dist/auth-choice.apply-helpers-CtKCiOT4.js +0 -2
  162. package/dist/auth-choice.plugin-providers.runtime-BVH7Kq_W.js +0 -11
  163. package/dist/auth-choice.plugin-providers.runtime.js +0 -1
  164. package/dist/auth-health-BBleirOY.js +0 -165
  165. package/dist/auth-mode-policy-BD7_M2AG.js +0 -18
  166. package/dist/auth-profiles-B0SpzBJv.js +0 -440
  167. package/dist/auth-rate-limit-OkMcM1wH.js +0 -119
  168. package/dist/auth-store-Bro-SY1-.js +0 -242
  169. package/dist/avatar-policy-pho6U35i.js +0 -67
  170. package/dist/backend-config-CNAjcjho.js +0 -311
  171. package/dist/backoff-nvVV-tHk.js +0 -18
  172. package/dist/backup-create-CkkM1HNg.js +0 -462
  173. package/dist/backup-health-BWSliymu.js +0 -59
  174. package/dist/banner-DPWatUan.js +0 -370
  175. package/dist/banner-lDKgB6uE.js +0 -2
  176. package/dist/base-session-key-CRSigEPk.js +0 -14
  177. package/dist/binaries-CWBYavgU.js +0 -2
  178. package/dist/binaries-sPf-9aLM.js +0 -11
  179. package/dist/binding-registry-BkSvI4jO.js +0 -520
  180. package/dist/binding-targets-CdIq3brX.js +0 -99
  181. package/dist/bindings-AuReyzvX.js +0 -21
  182. package/dist/bindings-CYhLRcr8.js +0 -69
  183. package/dist/block-reply-pipeline-GSCCinHx.js +0 -266
  184. package/dist/block-streaming-4outFa6R.js +0 -107
  185. package/dist/bluebubbles-CorTCHc9.js +0 -64
  186. package/dist/bluebubbles-D2WymlOg.js +0 -235
  187. package/dist/bluebubbles-policy-C3d8eqhQ.js +0 -13
  188. package/dist/bonjour-cache-cleanup-BZJ-GrdX.js +0 -126
  189. package/dist/boolean-BEhDlAk_.js +0 -29
  190. package/dist/boolean-param-B807dWHx.js +0 -13
  191. package/dist/bot-BM1bybV7.js +0 -4268
  192. package/dist/bot-message-context-CdedyAq_.js +0 -2
  193. package/dist/bot-message-context-DKGx6N8p.js +0 -1175
  194. package/dist/bot-message-context.runtime-ClW1x1V5.js +0 -7
  195. package/dist/bot-message-context.runtime.js +0 -1
  196. package/dist/bot-message-context.session.runtime-BWjdkRuf.js +0 -12
  197. package/dist/bot-message-context.session.runtime.js +0 -1
  198. package/dist/bot-native-commands.delivery.runtime-CgfbR-Nj.js +0 -3
  199. package/dist/bot-native-commands.delivery.runtime.js +0 -1
  200. package/dist/bot-native-commands.runtime-DCz7w0aK.js +0 -11
  201. package/dist/bot-native-commands.runtime.js +0 -1
  202. package/dist/boundary-file-read-DB4ibbUg.js +0 -192
  203. package/dist/brave-web-search-provider-B7m_Mprt.js +0 -441
  204. package/dist/brew-B9JEV5Jj.js +0 -44
  205. package/dist/browser-config-D_OlwMzh.js +0 -226
  206. package/dist/browser-open-C9FOO4U_.js +0 -94
  207. package/dist/browser-runtime-CnWZ_eLQ.js +0 -185
  208. package/dist/browser-support-Cdp2Gr_6.js +0 -34
  209. package/dist/btw-command-CPUGSdlD.js +0 -16
  210. package/dist/build-info.json +0 -5
  211. package/dist/bundle-lsp-CCIAK1od.js +0 -93
  212. package/dist/bundled/boot-md/HOOK.md +0 -20
  213. package/dist/bundled/boot-md/handler.js +0 -180
  214. package/dist/bundled/bootstrap-extra-files/HOOK.md +0 -53
  215. package/dist/bundled/bootstrap-extra-files/handler.js +0 -42
  216. package/dist/bundled/command-logger/HOOK.md +0 -122
  217. package/dist/bundled/command-logger/handler.js +0 -56
  218. package/dist/bundled/session-memory/HOOK.md +0 -108
  219. package/dist/bundled/session-memory/handler.js +0 -196
  220. package/dist/bundled/workflow-summary/HOOK.md +0 -123
  221. package/dist/bundled/workflow-summary/handler.js +0 -115
  222. package/dist/bundled-capability-metadata-BpPgIy_5.js +0 -40
  223. package/dist/bundled-compat-BLlVmkDi.js +0 -64
  224. package/dist/bundled-sources-BQTCt2mJ.js +0 -53
  225. package/dist/button-types-B3_mzf8P.js +0 -54
  226. package/dist/cache-controls-DBdT4I-H.js +0 -40
  227. package/dist/call-dy-GwrXS.js +0 -649
  228. package/dist/call-ti-nPnzT.js +0 -2
  229. package/dist/canvas-host/a2ui/.bundle.hash +0 -1
  230. package/dist/canvas-host/a2ui/a2ui.bundle.js +0 -14896
  231. package/dist/canvas-host/a2ui/index.html +0 -307
  232. package/dist/capability-provider-runtime-CFUC5NbJ.js +0 -40
  233. package/dist/catalog-5PPtilI5.js +0 -274
  234. package/dist/channel-2EW4xzvV.js +0 -788
  235. package/dist/channel-BiRtGLF8.js +0 -1135
  236. package/dist/channel-C3AVw0Nl.js +0 -883
  237. package/dist/channel-CPe2XmyD.js +0 -1217
  238. package/dist/channel-CVFWRvjf.js +0 -337
  239. package/dist/channel-Cs0onQ6d.js +0 -4976
  240. package/dist/channel-D18v9r53.js +0 -1661
  241. package/dist/channel-D2n2s8Le.js +0 -208
  242. package/dist/channel-DWKApPW2.js +0 -454
  243. package/dist/channel-Depm5C-f.js +0 -800
  244. package/dist/channel-DwTcZxFU.js +0 -1129
  245. package/dist/channel-LT5vI3EK.js +0 -361
  246. package/dist/channel-XgThIGmf.js +0 -698
  247. package/dist/channel-account-context-CWd3uN_m.js +0 -104
  248. package/dist/channel-actions-DSvaYD1T.js +0 -39
  249. package/dist/channel-bQKtZIt6.js +0 -599
  250. package/dist/channel-catalog.json +0 -3
  251. package/dist/channel-config-D0eO5f5m.js +0 -115
  252. package/dist/channel-config-helpers-CLFL8FLU.js +0 -482
  253. package/dist/channel-config-primitives-DwsP66Ak.js +0 -3
  254. package/dist/channel-config-schema-DsguzRfd.js +0 -6
  255. package/dist/channel-config-writes-DQZOOZZ8.js +0 -1
  256. package/dist/channel-configured-B6WgvouH.js +0 -108
  257. package/dist/channel-feedback-DiLm9hqS.js +0 -257
  258. package/dist/channel-inbound-CXD3aSAK.js +0 -30
  259. package/dist/channel-issues-C-49e607.js +0 -13
  260. package/dist/channel-lifecycle-BnjeZxB6.js +0 -286
  261. package/dist/channel-lifecycle.core-Cn3zeU0h.js +0 -69
  262. package/dist/channel-options-DXJ7b7Ye.js +0 -39
  263. package/dist/channel-pairing-Byr3MFbN.js +0 -68
  264. package/dist/channel-plugin-common-D2EFcTg8.js +0 -4
  265. package/dist/channel-plugin-ids-DiOSWlnO.js +0 -56
  266. package/dist/channel-plugin-resolution-SMHmHx5v.js +0 -144
  267. package/dist/channel-policy-B-XKjrjK.js +0 -32
  268. package/dist/channel-reply-pipeline-BtBcBCNu.js +0 -16
  269. package/dist/channel-resolution-Du3EtWh1.js +0 -60
  270. package/dist/channel-runtime-F8_51GPp.js +0 -9
  271. package/dist/channel-selection-Bz3pl14y.js +0 -125
  272. package/dist/channel-send-result-CyfDCXJG.js +0 -40
  273. package/dist/channel-setup-yWpuHwhm.js +0 -51
  274. package/dist/channel-shared-gHcJ8n-f.js +0 -58
  275. package/dist/channel-status-CyoeLEnj.js +0 -2
  276. package/dist/channel-summary-5zHt-z1E.js +0 -139
  277. package/dist/channel-summary-B_fbXZ3l.js +0 -2
  278. package/dist/channel-target-DHO43h-I.js +0 -157
  279. package/dist/channel-targets-C8ZPfJmV.js +0 -18
  280. package/dist/channel-y-bXwYi3.js +0 -783
  281. package/dist/channel.runtime-B2SEUCf0.js +0 -14
  282. package/dist/channel.runtime-BF5qdBeA.js +0 -5
  283. package/dist/channel.runtime-BPaq6EO_.js +0 -108
  284. package/dist/channel.runtime-BV8FGxyb.js +0 -373
  285. package/dist/channel.runtime-CGnamSTC.js +0 -125
  286. package/dist/channel.runtime-CRNf20Ct.js +0 -80
  287. package/dist/channel.runtime-CRSWVexY.js +0 -335
  288. package/dist/channel.runtime-Cg6DmoTp.js +0 -783
  289. package/dist/channel.runtime-CpHTHeFR.js +0 -309
  290. package/dist/channel.runtime-ZdhCn8XI.js +0 -3315
  291. package/dist/channel.runtime-cXufT2kW.js +0 -61
  292. package/dist/channel.runtime.js +0 -1
  293. package/dist/channel.setup-Bq1vgxXZ.js +0 -279
  294. package/dist/channels-BZC2kp_G.js +0 -409
  295. package/dist/channels-CMeYB3bY.js +0 -1134
  296. package/dist/channels-cli-BIzqRmuu.js +0 -246
  297. package/dist/channels-status-issues-DqTdy1lq.js +0 -17
  298. package/dist/chat-envelope-DlGbh8k2.js +0 -158
  299. package/dist/chat-meta-wVbKo1sw.js +0 -700
  300. package/dist/chat-target-prefixes-DCF8a_Lp.js +0 -156
  301. package/dist/chat-type-DXjGtE-S.js +0 -10
  302. package/dist/chunk-CW-a7Cfh.js +0 -334
  303. package/dist/chunk-CrysgU_F.js +0 -36
  304. package/dist/chutes-oauth-Bh3BTMMG.js +0 -127
  305. package/dist/cjk-chars-Dl_Ko7yI.js +0 -50
  306. package/dist/clack-prompter-C5PtKpUH.js +0 -112
  307. package/dist/clawbot-cli-CgHyabtp.js +0 -9
  308. package/dist/clawhub-CDs2LE11.js +0 -263
  309. package/dist/clawhub-CO6YnoQZ.js +0 -163
  310. package/dist/cli/daemon-cli.js +0 -9
  311. package/dist/cli-CoOwN-V4.js +0 -164
  312. package/dist/cli-CpOL_jWZ.js +0 -152
  313. package/dist/cli-DCp06hI2.js +0 -2
  314. package/dist/cli-DVSDSUQm.js +0 -695
  315. package/dist/cli-backend-B20k67rv.js +0 -44
  316. package/dist/cli-backend-CcuyEMrq.js +0 -1
  317. package/dist/cli-backend-DMTxL8mq.js +0 -40
  318. package/dist/cli-backend-M4CTb3mq.js +0 -49
  319. package/dist/cli-migration-BwqQvUer.js +0 -100
  320. package/dist/cli-name-C3PA6Rhs.js +0 -21
  321. package/dist/cli-runner-8SNo1pKS.js +0 -1014
  322. package/dist/cli-runtime-ChUqI2f-.js +0 -3
  323. package/dist/cli-shared-01J1LZRE.js +0 -72
  324. package/dist/cli-startup-metadata.json +0 -14
  325. package/dist/cli-utils-eYXt_xAg.js +0 -40
  326. package/dist/cli-watchdog-defaults-Dff-MFUz.js +0 -14
  327. package/dist/cli.runtime-WWGaX6X6.js +0 -547
  328. package/dist/cli.runtime.js +0 -1
  329. package/dist/client-BFxjGELJ.js +0 -5
  330. package/dist/client-C8_DsF-r.js +0 -7
  331. package/dist/client-bootstrap-BiVps8T6.js +0 -2
  332. package/dist/client-bootstrap-CFGCltAu.js +0 -121
  333. package/dist/client-lEilgam1.js +0 -87
  334. package/dist/cmd-argv-BbyQhzAC.js +0 -68
  335. package/dist/code-execution-CPcuE0sX.js +0 -142
  336. package/dist/codex-native-web-search-CyrsDBZ2.js +0 -155
  337. package/dist/codex-native-web-search-PFJu8fcM.js +0 -2
  338. package/dist/collection-runtime-DJjFReXJ.js +0 -1
  339. package/dist/command-auth-BAkZv3cP.js +0 -356
  340. package/dist/command-auth-native-Bsp5Doyd.js +0 -3
  341. package/dist/command-auth-tqFmaIaJ.js +0 -64
  342. package/dist/command-detection-BV7Ipg_0.js +0 -49
  343. package/dist/command-detection-DyqWl5Nq.js +0 -2
  344. package/dist/command-format-CX1xXtgB.js +0 -22
  345. package/dist/command-format-DwYoemR9.js +0 -2
  346. package/dist/command-gating-NyDk7t84.js +0 -40
  347. package/dist/command-options-BUoAEXAi.js +0 -25
  348. package/dist/command-poll-backoff-B7RiSvcV.js +0 -56
  349. package/dist/command-poll-backoff.runtime-DX9gobB0.js +0 -7
  350. package/dist/command-poll-backoff.runtime.js +0 -1
  351. package/dist/command-queue-CxEmvSGT.js +0 -253
  352. package/dist/command-registry-CaJXKNoO.js +0 -3
  353. package/dist/command-registry-Ct0qor9d.js +0 -199
  354. package/dist/command-secret-gateway-43O-1Hnf.js +0 -2
  355. package/dist/command-secret-gateway-C39SFGHd.js +0 -442
  356. package/dist/command-secret-targets-Bns-l1xV.js +0 -2
  357. package/dist/command-secret-targets-CTrFghcj.js +0 -87
  358. package/dist/command-surface-CfP1vask.js +0 -2
  359. package/dist/commands/status.summary.runtime.js +0 -146
  360. package/dist/commands-BxWe27p0.js +0 -42
  361. package/dist/commands-CiyPyNRY.js +0 -194
  362. package/dist/commands-acp-BeCm2Wnq.js +0 -990
  363. package/dist/commands-context-DbfMrVv4.js +0 -33
  364. package/dist/commands-core-CEmQydIV.js +0 -241
  365. package/dist/commands-core.runtime-BYooAQbc.js +0 -2
  366. package/dist/commands-core.runtime.js +0 -1
  367. package/dist/commands-handlers.runtime-CEAP4Yv2.js +0 -3707
  368. package/dist/commands-handlers.runtime.js +0 -1
  369. package/dist/commands-info-COwAtIWb.js +0 -651
  370. package/dist/commands-models-B4EJh5Fy.js +0 -395
  371. package/dist/commands-o21Y9Xck.js +0 -4
  372. package/dist/commands-registry-DgMc5_jk.js +0 -295
  373. package/dist/commands-registry.data-5O2FOeZl.js +0 -935
  374. package/dist/commands-registry.runtime-CT_YXpwM.js +0 -2
  375. package/dist/commands-registry.runtime.js +0 -1
  376. package/dist/commands-status.runtime-D4F4iVUh.js +0 -2
  377. package/dist/commands-status.runtime.js +0 -1
  378. package/dist/commands.runtime-_ALsMFcS.js +0 -4
  379. package/dist/commands.runtime.js +0 -1
  380. package/dist/common-Dbmo0I1E.js +0 -206
  381. package/dist/compact.runtime-CBfyBJbR.js +0 -7
  382. package/dist/compact.runtime.js +0 -1
  383. package/dist/completion-cli-COhEd9CF.js +0 -2
  384. package/dist/completion-cli-DHe4Rit5.js +0 -466
  385. package/dist/components-CamLdbbq.js +0 -797
  386. package/dist/components-DPbtLC3x.js +0 -2
  387. package/dist/config-CKJA2kAO.js +0 -53
  388. package/dist/config-D7-9dK3i.js +0 -138
  389. package/dist/config-DJ29sg5U.js +0 -475
  390. package/dist/config-DJNI2tTK.js +0 -136
  391. package/dist/config-Dr2GRT3y.js +0 -135
  392. package/dist/config-DsqKYjeo.js +0 -421
  393. package/dist/config-Q9kc32gz.js +0 -41
  394. package/dist/config-RUefx-_1.js +0 -8
  395. package/dist/config-cli-BqlYHmPA.js +0 -945
  396. package/dist/config-error-handler-BKRR0_j_.js +0 -197
  397. package/dist/config-error-handler-CT1igiX6.js +0 -2
  398. package/dist/config-eval-hTWq4IVy.js +0 -100
  399. package/dist/config-guard-Bk3_wSTH.js +0 -113
  400. package/dist/config-helpers-DLVbtn1B.js +0 -117
  401. package/dist/config-paths-BKYh__Ga.js +0 -8
  402. package/dist/config-paths-DP5yXXo2.js +0 -102
  403. package/dist/config-presence-omlqvhAQ.js +0 -79
  404. package/dist/config-regex-CvZFnWkO.js +0 -39
  405. package/dist/config-runtime-ngoccXmP.js +0 -13
  406. package/dist/config-schema-B3sQY5B_.js +0 -133
  407. package/dist/config-schema-B_2MhEQY.js +0 -71
  408. package/dist/config-schema-BpIXBNbc.js +0 -202
  409. package/dist/config-schema-BtfQOmdV.js +0 -115
  410. package/dist/config-schema-Bw-Xbo_T.js +0 -85
  411. package/dist/config-schema-Cqj-Mugi.js +0 -105
  412. package/dist/config-schema-DQSj_ZL_.js +0 -29
  413. package/dist/config-schema-Pe1Vn9kb.js +0 -17
  414. package/dist/config-schema-f7nntJMh.js +0 -25
  415. package/dist/config-schema-lBqODOnr.js +0 -25
  416. package/dist/config-schema-mfJ91WLf.js +0 -65
  417. package/dist/config-secret-input.runtime-B_HyRtgE.js +0 -3
  418. package/dist/config-secret-input.runtime.js +0 -1
  419. package/dist/config-state-DfIk9ME6.js +0 -289
  420. package/dist/config-status-Bnobp1-p.js +0 -2
  421. package/dist/config-status-Db93sFQB.js +0 -109
  422. package/dist/config-update-B_S0YQ_Y.js +0 -3
  423. package/dist/config-update-CK4EDDeD.js +0 -127
  424. package/dist/config-validation-Bh_sg7RW.js +0 -276
  425. package/dist/config-value-CMTdBw5q.js +0 -25
  426. package/dist/configure-CGDY1YR7.js +0 -1140
  427. package/dist/configure-V8jejRHr.js +0 -2
  428. package/dist/configured-provider-fallback-DWYDg0L7.js +0 -15
  429. package/dist/connection-auth-CKM60o55.js +0 -30
  430. package/dist/connection-details-DyVOoGG6.js +0 -56
  431. package/dist/constants-Bq55qi82.js +0 -71
  432. package/dist/constants-CimYBSye.js +0 -4
  433. package/dist/content-blocks-DuKJNUtm.js +0 -785
  434. package/dist/context-D-9a98Zk.js +0 -227
  435. package/dist/context-visibility-DTMZdcAH.js +0 -14
  436. package/dist/context-visibility-vOvLMUrZ.js +0 -35
  437. package/dist/context-window-guard-WE0ENAeQ.js +0 -46
  438. package/dist/control-ui-assets-DVYAF-2p.js +0 -240
  439. package/dist/control-ui-shared-BKXkFsA7.js +0 -29
  440. package/dist/conversation-binding-C2nuZ3Eg.js +0 -520
  441. package/dist/conversation-binding-input-CBwdWDC4.js +0 -250
  442. package/dist/conversation-bindings-Cq4z4vhr.js +0 -210
  443. package/dist/conversation-id-4JeHag0a.js +0 -168
  444. package/dist/conversation-id-CXuzm-Ub.js +0 -116
  445. package/dist/conversation-id-DCTwJCZF.js +0 -43
  446. package/dist/conversation-label-C2xTELop.js +0 -32
  447. package/dist/conversation-runtime-bArk0IjJ.js +0 -85
  448. package/dist/core-DaMVvavf.js +0 -195
  449. package/dist/core-api-D0U2iGRK.js +0 -670
  450. package/dist/core-command-descriptors-DxRm2H1p.js +0 -91
  451. package/dist/create-client-BOKOxyiu.js +0 -58
  452. package/dist/create-client-Bzn467Jo.js +0 -2
  453. package/dist/credentials-BGPs1gIX.js +0 -242
  454. package/dist/credentials-DUoYFiLk.js +0 -22
  455. package/dist/credentials-read-CDYtvkBt.js +0 -74
  456. package/dist/credentials-read-KB395CbD.js +0 -2
  457. package/dist/credentials-write.runtime-Bx7mKj4E.js +0 -9
  458. package/dist/credentials-write.runtime.js +0 -1
  459. package/dist/creds-files-CTtTs6zG.js +0 -19
  460. package/dist/cron-cli-Di3TakVa.js +0 -644
  461. package/dist/crypto-node.runtime-DI0fQ6wI.js +0 -5
  462. package/dist/crypto-node.runtime.js +0 -1
  463. package/dist/crypto-runtime-Bc-jKPlv.js +0 -1036
  464. package/dist/current-time--aIDbABZ.js +0 -20
  465. package/dist/daemon-cli-Cnry1ft1.js +0 -370
  466. package/dist/daemon-install-de_bWPuS.js +0 -63
  467. package/dist/daemon-install-plan.shared-u00bwv47.js +0 -222
  468. package/dist/daemon-runtime-DPejcJWG.js +0 -12
  469. package/dist/dangerous-name-matching-DnCDaXzP.js +0 -48
  470. package/dist/dangerous-name-runtime-Dinw00TZ.js +0 -1
  471. package/dist/dangerous-tools-C3RlQe7u.js +0 -38
  472. package/dist/date-time-DRQ0-oaw.js +0 -118
  473. package/dist/ddg-search-provider-B0zLjcDN.js +0 -182
  474. package/dist/dedupe-DZbQYOSD.js +0 -59
  475. package/dist/default-account-warnings-BCrmijcz.js +0 -15
  476. package/dist/default-models-Br0v8QOH.js +0 -35
  477. package/dist/defaults-DAt--D9n.js +0 -6
  478. package/dist/defaults-D_Y_lvUP.js +0 -7
  479. package/dist/defaults-MkMfnGzi.js +0 -7
  480. package/dist/delegate-CLP7zDS_.js +0 -43
  481. package/dist/deliver-CIUEKe4q.js +0 -954
  482. package/dist/deliver-LN-Yg8wS.js +0 -3
  483. package/dist/deliver-reply-DL-CSF43.js +0 -238
  484. package/dist/deliver-runtime-CoqXhxlS.js +0 -2
  485. package/dist/delivery-CL_3vFSl.js +0 -834
  486. package/dist/delivery-context-CoAL-jTI.js +0 -106
  487. package/dist/delivery-info-DTAUApso.js +0 -40
  488. package/dist/delivery-queue-DBW69jH4.js +0 -2
  489. package/dist/delivery-queue-DMubgaLa.js +0 -289
  490. package/dist/deps-34N0Nmbl.js +0 -67
  491. package/dist/deps-BVogrCia.js +0 -2
  492. package/dist/deps-DZJpA4XG.js +0 -153
  493. package/dist/detect-Zrcrs8SP.js +0 -12
  494. package/dist/detect-binary-CEX186X6.js +0 -30
  495. package/dist/device-auth-D_0GUMYY.js +0 -19
  496. package/dist/device-bootstrap-Bnn4K3fQ.js +0 -3
  497. package/dist/device-bootstrap-bwpHYQhY.js +0 -176
  498. package/dist/device-health-B3q7Cmqn.js +0 -2
  499. package/dist/device-health-DhmPD0gq.js +0 -16
  500. package/dist/device-identity-Cak311si.js +0 -2
  501. package/dist/device-identity-Doxo0HJx.js +0 -140
  502. package/dist/device-metadata-normalization-B5_zplC_.js +0 -21
  503. package/dist/device-pairing-BCpR-Vtb.js +0 -520
  504. package/dist/devices-cli-DYPkfzsG.js +0 -328
  505. package/dist/diagnostic-DfKz60Xk.js +0 -311
  506. package/dist/diagnostic-events-CUSmY-rn.js +0 -48
  507. package/dist/diagnostic-flags-DLDDycUv.js +0 -64
  508. package/dist/diagnostic-runtime-ZQC4AswI.js +0 -1
  509. package/dist/diagnostics-Cxl1bFGj.js +0 -33
  510. package/dist/diagnostics-GjF7wpY9.js +0 -2
  511. package/dist/diagnostics-otel-C2RQUlQT.js +0 -3
  512. package/dist/diffs-DsHt689X.js +0 -2
  513. package/dist/direct-dm-ByuWacLn.js +0 -139
  514. package/dist/direct-management-DEtuCcDL.js +0 -2
  515. package/dist/direct-management-DMp7MOnt.js +0 -300
  516. package/dist/direct-room-ARYWsCbX.js +0 -2
  517. package/dist/direct-room-DYlSJOU_.js +0 -67
  518. package/dist/directive-handling.defaults-BMh2DXTA.js +0 -19
  519. package/dist/directive-handling.fast-lane-CBX4jbax.js +0 -2
  520. package/dist/directive-handling.fast-lane-DRvycpgg.js +0 -64
  521. package/dist/directive-handling.impl-BKJf5Ltu.js +0 -672
  522. package/dist/directive-handling.impl-BkdGnm-T.js +0 -2
  523. package/dist/directive-handling.levels-BHOBnnn8.js +0 -2
  524. package/dist/directive-handling.levels-CecoBNlK.js +0 -12
  525. package/dist/directive-handling.parse-BuTiWmrT.js +0 -375
  526. package/dist/directive-handling.persist-D9RYevoA.js +0 -133
  527. package/dist/directive-handling.persist.runtime-Cb_unTVH.js +0 -2
  528. package/dist/directive-handling.persist.runtime.js +0 -1
  529. package/dist/directive-handling.shared-_Zvt3-ej.js +0 -158
  530. package/dist/directive-tags-Cm0H6Dn_.js +0 -109
  531. package/dist/directives-f-UxcP8D.js +0 -209
  532. package/dist/directory-cache-CM_EUchr.js +0 -62
  533. package/dist/directory-cli-D6N59tzr.js +0 -238
  534. package/dist/directory-config-helpers-BCrssKbI.js +0 -141
  535. package/dist/directory-runtime-CAabZ_XW.js +0 -20
  536. package/dist/directory.static-TKo2MeNR.js +0 -45
  537. package/dist/discord-BOpl5w4U.js +0 -5
  538. package/dist/discord-account-wyFuLDq_.js +0 -11
  539. package/dist/discord-core-BpzKxDZ7.js +0 -5
  540. package/dist/discord-lOPvIxp4.js +0 -11
  541. package/dist/discord-runtime-surface-Dm5WUtCV.js +0 -67
  542. package/dist/discord-session-key-DaPto1yr.js +0 -11
  543. package/dist/discord-surface-Cg_Mu9MI.js +0 -30
  544. package/dist/discord-thread-bindings-zIOp1Tj4.js +0 -29
  545. package/dist/discord-timeouts-Di5n5LAU.js +0 -12
  546. package/dist/discovery-DLbFJLD_.js +0 -171
  547. package/dist/dispatch-C4gGGYZt.js +0 -858
  548. package/dist/dispatch-acp.runtime-DUHj6bP-.js +0 -884
  549. package/dist/dispatch-acp.runtime.js +0 -1
  550. package/dist/dist-7JNqoGV7.js +0 -3
  551. package/dist/dist-BqJPEiV8.js +0 -14245
  552. package/dist/dist-DdE56Pmi.js +0 -503
  553. package/dist/dist-shQCTuJB.js +0 -1239
  554. package/dist/dm-policy-shared-C99GNVxp.js +0 -188
  555. package/dist/dns-cli-vQBAzTmg.js +0 -192
  556. package/dist/docker-BN7sQKCb.js +0 -789
  557. package/dist/docs-cli-Br6cfKoS.js +0 -156
  558. package/dist/doctor-completion-Cf0GcTXR.js +0 -90
  559. package/dist/doctor-config-preflight-C2cKYiKe.js +0 -2
  560. package/dist/doctor-config-preflight-DNbO-_N8.js +0 -148
  561. package/dist/doctor-state-migrations-BXkbeSFy.js +0 -2
  562. package/dist/doctor-state-migrations-G3shZ-W_.js +0 -3
  563. package/dist/dotenv-CelghjA4.js +0 -11
  564. package/dist/dotenv-Csg1Xj8n.js +0 -113
  565. package/dist/embedding-provider-Aey9VsDb.js +0 -129
  566. package/dist/enable-BgSxsKp_.js +0 -57
  567. package/dist/encryption-guidance-62xAQFP4.js +0 -33
  568. package/dist/entry-status-3ymZYX2l.js +0 -172
  569. package/dist/entry.js +0 -209
  570. package/dist/env-CK3eZNIX.js +0 -40
  571. package/dist/env-overrides-CcDOWo0Y.js +0 -346
  572. package/dist/env-overrides.runtime-CKb7-Q72.js +0 -7
  573. package/dist/env-overrides.runtime.js +0 -1
  574. package/dist/env-substitution-UhJwb0ys.js +0 -136
  575. package/dist/envelope-CrC9AdBL.js +0 -137
  576. package/dist/error-runtime-D-gKufd_.js +0 -2
  577. package/dist/error-text-BC9WfvfX.js +0 -24
  578. package/dist/errors-Bs2h5H8p.js +0 -71
  579. package/dist/errors-CjFsF-QY.js +0 -9
  580. package/dist/exa-web-search-provider-DUUlmDcV.js +0 -355
  581. package/dist/exec-BO6vYjRf.js +0 -368
  582. package/dist/exec-CD7C9g-b.js +0 -2
  583. package/dist/exec-approval-reply-CFOEcmIv.js +0 -189
  584. package/dist/exec-approval-session-target-BbsAlD1Q.js +0 -159
  585. package/dist/exec-approvals-3UDrE7Q9.js +0 -1565
  586. package/dist/exec-approvals-CW5axvaY.js +0 -121
  587. package/dist/exec-approvals-cli-BPYvtJv-.js +0 -483
  588. package/dist/exec-approvals-effective-DbLJfkpe.js +0 -140
  589. package/dist/exec-safe-bin-runtime-policy-218hHVyc.js +0 -90
  590. package/dist/exec-safety-XzKkUSvE.js +0 -24
  591. package/dist/export-html/template.css +0 -1060
  592. package/dist/export-html/template.html +0 -88
  593. package/dist/export-html/template.js +0 -1875
  594. package/dist/export-html/vendor/highlight.min.js +0 -1213
  595. package/dist/export-html/vendor/marked.min.js +0 -6
  596. package/dist/extension-shared-V_4IXpRU.js +0 -74
  597. package/dist/extensionAPI.js +0 -17
  598. package/dist/extensions/acpx/index.js +0 -1855
  599. package/dist/extensions/acpx/mcp-proxy.mjs +0 -151
  600. package/dist/extensions/acpx/openclaw.plugin.json +0 -132
  601. package/dist/extensions/acpx/package.json +0 -14
  602. package/dist/extensions/acpx/runtime-api.js +0 -5
  603. package/dist/extensions/acpx/skills/acp-router/SKILL.md +0 -245
  604. package/dist/extensions/aicq-chat/index.js +0 -284
  605. package/dist/extensions/aicq-chat/openclaw.plugin.json +0 -30
  606. package/dist/extensions/amazon-bedrock/api.js +0 -3
  607. package/dist/extensions/amazon-bedrock/discovery.js +0 -2
  608. package/dist/extensions/amazon-bedrock/index.js +0 -65
  609. package/dist/extensions/amazon-bedrock/openclaw.plugin.json +0 -44
  610. package/dist/extensions/amazon-bedrock/package.json +0 -23
  611. package/dist/extensions/anthropic/api.js +0 -3
  612. package/dist/extensions/anthropic/cli-backend.js +0 -2
  613. package/dist/extensions/anthropic/cli-migration.js +0 -2
  614. package/dist/extensions/anthropic/cli-shared.js +0 -2
  615. package/dist/extensions/anthropic/index.js +0 -357
  616. package/dist/extensions/anthropic/media-understanding-provider.js +0 -2
  617. package/dist/extensions/anthropic/openclaw.plugin.json +0 -64
  618. package/dist/extensions/anthropic/package.json +0 -12
  619. package/dist/extensions/anthropic/stream-wrappers.js +0 -2
  620. package/dist/extensions/anthropic/test-api.js +0 -2
  621. package/dist/extensions/anthropic-vertex/api.js +0 -4
  622. package/dist/extensions/anthropic-vertex/index.js +0 -36
  623. package/dist/extensions/anthropic-vertex/openclaw.plugin.json +0 -12
  624. package/dist/extensions/anthropic-vertex/package.json +0 -12
  625. package/dist/extensions/anthropic-vertex/provider-catalog.js +0 -2
  626. package/dist/extensions/anthropic-vertex/region.js +0 -2
  627. package/dist/extensions/bluebubbles/api.js +0 -5
  628. package/dist/extensions/bluebubbles/channel-config-api.js +0 -2
  629. package/dist/extensions/bluebubbles/index.js +0 -13
  630. package/dist/extensions/bluebubbles/openclaw.plugin.json +0 -11
  631. package/dist/extensions/bluebubbles/package.json +0 -48
  632. package/dist/extensions/bluebubbles/runtime-api.js +0 -2
  633. package/dist/extensions/bluebubbles/setup-entry.js +0 -26
  634. package/dist/extensions/brave/index.js +0 -13
  635. package/dist/extensions/brave/openclaw.plugin.json +0 -50
  636. package/dist/extensions/brave/package.json +0 -12
  637. package/dist/extensions/brave/test-api.js +0 -2
  638. package/dist/extensions/brave/web-search-provider.js +0 -2
  639. package/dist/extensions/browser/browser-runtime-api.js +0 -4
  640. package/dist/extensions/browser/index.js +0 -20
  641. package/dist/extensions/browser/openclaw.plugin.json +0 -9
  642. package/dist/extensions/browser/package.json +0 -12
  643. package/dist/extensions/browser/runtime-api.js +0 -6
  644. package/dist/extensions/browser/test-support.js +0 -50
  645. package/dist/extensions/byteplus/api.js +0 -3
  646. package/dist/extensions/byteplus/index.js +0 -63
  647. package/dist/extensions/byteplus/models.js +0 -2
  648. package/dist/extensions/byteplus/openclaw.plugin.json +0 -33
  649. package/dist/extensions/byteplus/package.json +0 -12
  650. package/dist/extensions/byteplus/provider-catalog.js +0 -2
  651. package/dist/extensions/chutes/api.js +0 -3
  652. package/dist/extensions/chutes/index.js +0 -143
  653. package/dist/extensions/chutes/models.js +0 -2
  654. package/dist/extensions/chutes/onboard.js +0 -3
  655. package/dist/extensions/chutes/openclaw.plugin.json +0 -44
  656. package/dist/extensions/chutes/package.json +0 -12
  657. package/dist/extensions/chutes/provider-catalog.js +0 -2
  658. package/dist/extensions/cloudflare-ai-gateway/api.js +0 -3
  659. package/dist/extensions/cloudflare-ai-gateway/index.js +0 -188
  660. package/dist/extensions/cloudflare-ai-gateway/models.js +0 -2
  661. package/dist/extensions/cloudflare-ai-gateway/onboard.js +0 -2
  662. package/dist/extensions/cloudflare-ai-gateway/openclaw.plugin.json +0 -33
  663. package/dist/extensions/cloudflare-ai-gateway/package.json +0 -12
  664. package/dist/extensions/copilot-proxy/index.js +0 -125
  665. package/dist/extensions/copilot-proxy/openclaw.plugin.json +0 -27
  666. package/dist/extensions/copilot-proxy/package.json +0 -12
  667. package/dist/extensions/copilot-proxy/runtime-api.js +0 -3
  668. package/dist/extensions/deepgram/audio.js +0 -2
  669. package/dist/extensions/deepgram/index.js +0 -13
  670. package/dist/extensions/deepgram/media-understanding-provider.js +0 -2
  671. package/dist/extensions/deepgram/openclaw.plugin.json +0 -13
  672. package/dist/extensions/deepgram/package.json +0 -12
  673. package/dist/extensions/deepseek/api.js +0 -3
  674. package/dist/extensions/deepseek/index.js +0 -33
  675. package/dist/extensions/deepseek/models.js +0 -2
  676. package/dist/extensions/deepseek/onboard.js +0 -2
  677. package/dist/extensions/deepseek/openclaw.plugin.json +0 -32
  678. package/dist/extensions/deepseek/package.json +0 -12
  679. package/dist/extensions/deepseek/provider-catalog.js +0 -2
  680. package/dist/extensions/device-pair/api.js +0 -10
  681. package/dist/extensions/device-pair/index.js +0 -483
  682. package/dist/extensions/device-pair/notify.js +0 -2
  683. package/dist/extensions/device-pair/openclaw.plugin.json +0 -21
  684. package/dist/extensions/device-pair/qr-image.js +0 -3
  685. package/dist/extensions/diagnostics-otel/api.js +0 -6
  686. package/dist/extensions/diagnostics-otel/index.js +0 -485
  687. package/dist/extensions/diagnostics-otel/openclaw.plugin.json +0 -8
  688. package/dist/extensions/diagnostics-otel/package.json +0 -27
  689. package/dist/extensions/diffs/api.js +0 -4
  690. package/dist/extensions/diffs/assets/viewer-runtime.js +0 -1888
  691. package/dist/extensions/diffs/index.js +0 -2058
  692. package/dist/extensions/diffs/openclaw.plugin.json +0 -226
  693. package/dist/extensions/diffs/package.json +0 -24
  694. package/dist/extensions/diffs/runtime-api.js +0 -3
  695. package/dist/extensions/diffs/skills/diffs/SKILL.md +0 -23
  696. package/dist/extensions/discord/action-runtime-api.js +0 -2
  697. package/dist/extensions/discord/api.js +0 -14
  698. package/dist/extensions/discord/channel-config-api.js +0 -2
  699. package/dist/extensions/discord/index.js +0 -612
  700. package/dist/extensions/discord/openclaw.plugin.json +0 -11
  701. package/dist/extensions/discord/package.json +0 -52
  702. package/dist/extensions/discord/runtime-api.js +0 -230
  703. package/dist/extensions/discord/session-key-api.js +0 -2
  704. package/dist/extensions/discord/setup-entry.js +0 -10
  705. package/dist/extensions/discord/test-api.js +0 -45
  706. package/dist/extensions/discord/timeouts.js +0 -2
  707. package/dist/extensions/duckduckgo/index.js +0 -13
  708. package/dist/extensions/duckduckgo/openclaw.plugin.json +0 -41
  709. package/dist/extensions/duckduckgo/package.json +0 -12
  710. package/dist/extensions/duckduckgo/web-search-provider.js +0 -2
  711. package/dist/extensions/elevenlabs/index.js +0 -13
  712. package/dist/extensions/elevenlabs/openclaw.plugin.json +0 -13
  713. package/dist/extensions/elevenlabs/package.json +0 -12
  714. package/dist/extensions/elevenlabs/speech-provider.js +0 -2
  715. package/dist/extensions/elevenlabs/test-api.js +0 -2
  716. package/dist/extensions/elevenlabs/tts.js +0 -2
  717. package/dist/extensions/exa/index.js +0 -13
  718. package/dist/extensions/exa/openclaw.plugin.json +0 -39
  719. package/dist/extensions/exa/package.json +0 -12
  720. package/dist/extensions/exa/web-search-provider.js +0 -2
  721. package/dist/extensions/fal/image-generation-provider.js +0 -2
  722. package/dist/extensions/fal/index.js +0 -45
  723. package/dist/extensions/fal/onboard.js +0 -2
  724. package/dist/extensions/fal/openclaw.plugin.json +0 -40
  725. package/dist/extensions/fal/package.json +0 -12
  726. package/dist/extensions/feishu/api.js +0 -7
  727. package/dist/extensions/feishu/index.js +0 -2531
  728. package/dist/extensions/feishu/openclaw.plugin.json +0 -14
  729. package/dist/extensions/feishu/package.json +0 -52
  730. package/dist/extensions/feishu/runtime-api.js +0 -34
  731. package/dist/extensions/feishu/session-key-api.js +0 -2
  732. package/dist/extensions/feishu/setup-api.js +0 -2
  733. package/dist/extensions/feishu/setup-entry.js +0 -6
  734. package/dist/extensions/feishu/skills/feishu-doc/SKILL.md +0 -211
  735. package/dist/extensions/feishu/skills/feishu-doc/references/block-types.md +0 -103
  736. package/dist/extensions/feishu/skills/feishu-drive/SKILL.md +0 -97
  737. package/dist/extensions/feishu/skills/feishu-perm/SKILL.md +0 -119
  738. package/dist/extensions/feishu/skills/feishu-wiki/SKILL.md +0 -111
  739. package/dist/extensions/firecrawl/api.js +0 -33
  740. package/dist/extensions/firecrawl/index.js +0 -184
  741. package/dist/extensions/firecrawl/openclaw.plugin.json +0 -87
  742. package/dist/extensions/firecrawl/package.json +0 -12
  743. package/dist/extensions/firecrawl/web-search-provider.js +0 -2
  744. package/dist/extensions/github-copilot/api.js +0 -2
  745. package/dist/extensions/github-copilot/index.js +0 -138
  746. package/dist/extensions/github-copilot/login.js +0 -2
  747. package/dist/extensions/github-copilot/models-defaults.js +0 -38
  748. package/dist/extensions/github-copilot/models.js +0 -2
  749. package/dist/extensions/github-copilot/openclaw.plugin.json +0 -31
  750. package/dist/extensions/github-copilot/package.json +0 -12
  751. package/dist/extensions/github-copilot/token.js +0 -3
  752. package/dist/extensions/github-copilot/usage.js +0 -2
  753. package/dist/extensions/google/api.js +0 -3
  754. package/dist/extensions/google/cli-backend.js +0 -2
  755. package/dist/extensions/google/gemini-cli-provider.js +0 -110
  756. package/dist/extensions/google/google-shared.test-helpers.js +0 -92
  757. package/dist/extensions/google/image-generation-provider.js +0 -162
  758. package/dist/extensions/google/index.js +0 -213
  759. package/dist/extensions/google/media-understanding-provider.js +0 -104
  760. package/dist/extensions/google/model-id.js +0 -2
  761. package/dist/extensions/google/oauth.credentials.js +0 -2
  762. package/dist/extensions/google/oauth.flow.js +0 -2
  763. package/dist/extensions/google/oauth.http.js +0 -2
  764. package/dist/extensions/google/oauth.js +0 -3
  765. package/dist/extensions/google/oauth.project.js +0 -2
  766. package/dist/extensions/google/oauth.runtime.js +0 -2
  767. package/dist/extensions/google/oauth.shared.js +0 -2
  768. package/dist/extensions/google/oauth.token.js +0 -2
  769. package/dist/extensions/google/openclaw.plugin.json +0 -89
  770. package/dist/extensions/google/package.json +0 -12
  771. package/dist/extensions/google/provider-models.js +0 -2
  772. package/dist/extensions/google/runtime-api.js +0 -4
  773. package/dist/extensions/google/test-api.js +0 -2
  774. package/dist/extensions/google/web-search-provider.js +0 -2
  775. package/dist/extensions/googlechat/api.js +0 -2
  776. package/dist/extensions/googlechat/channel-config-api.js +0 -7
  777. package/dist/extensions/googlechat/index.js +0 -13
  778. package/dist/extensions/googlechat/openclaw.plugin.json +0 -11
  779. package/dist/extensions/googlechat/package.json +0 -48
  780. package/dist/extensions/googlechat/runtime-api.js +0 -39
  781. package/dist/extensions/googlechat/setup-entry.js +0 -6
  782. package/dist/extensions/googlechat/test-api.js +0 -3
  783. package/dist/extensions/groq/index.js +0 -13
  784. package/dist/extensions/groq/media-understanding-provider.js +0 -2
  785. package/dist/extensions/groq/openclaw.plugin.json +0 -13
  786. package/dist/extensions/groq/package.json +0 -12
  787. package/dist/extensions/huggingface/api.js +0 -4
  788. package/dist/extensions/huggingface/index.js +0 -54
  789. package/dist/extensions/huggingface/models.js +0 -2
  790. package/dist/extensions/huggingface/onboard.js +0 -2
  791. package/dist/extensions/huggingface/openclaw.plugin.json +0 -34
  792. package/dist/extensions/huggingface/package.json +0 -12
  793. package/dist/extensions/huggingface/provider-catalog.js +0 -3
  794. package/dist/extensions/imessage/api.js +0 -4
  795. package/dist/extensions/imessage/channel-config-api.js +0 -2
  796. package/dist/extensions/imessage/index.js +0 -211
  797. package/dist/extensions/imessage/openclaw.plugin.json +0 -11
  798. package/dist/extensions/imessage/package.json +0 -26
  799. package/dist/extensions/imessage/runtime-api.js +0 -11
  800. package/dist/extensions/imessage/setup-entry.js +0 -13
  801. package/dist/extensions/irc/api.js +0 -2
  802. package/dist/extensions/irc/channel-config-api.js +0 -2
  803. package/dist/extensions/irc/index.js +0 -12
  804. package/dist/extensions/irc/openclaw.plugin.json +0 -11
  805. package/dist/extensions/irc/package.json +0 -28
  806. package/dist/extensions/irc/setup-entry.js +0 -6
  807. package/dist/extensions/kilocode/api.js +0 -3
  808. package/dist/extensions/kilocode/index.js +0 -37
  809. package/dist/extensions/kilocode/onboard.js +0 -3
  810. package/dist/extensions/kilocode/openclaw.plugin.json +0 -33
  811. package/dist/extensions/kilocode/package.json +0 -12
  812. package/dist/extensions/kilocode/provider-catalog.js +0 -2
  813. package/dist/extensions/kilocode/provider-models.js +0 -2
  814. package/dist/extensions/kilocode/shared.js +0 -2
  815. package/dist/extensions/kimi-coding/api.js +0 -3
  816. package/dist/extensions/kimi-coding/index.js +0 -81
  817. package/dist/extensions/kimi-coding/onboard.js +0 -2
  818. package/dist/extensions/kimi-coding/openclaw.plugin.json +0 -38
  819. package/dist/extensions/kimi-coding/package.json +0 -12
  820. package/dist/extensions/kimi-coding/provider-catalog.js +0 -2
  821. package/dist/extensions/kimi-coding/stream.js +0 -2
  822. package/dist/extensions/line/api.js +0 -13
  823. package/dist/extensions/line/index.js +0 -815
  824. package/dist/extensions/line/openclaw.plugin.json +0 -11
  825. package/dist/extensions/line/package.json +0 -41
  826. package/dist/extensions/line/runtime-api.js +0 -11
  827. package/dist/extensions/line/setup-api.js +0 -3
  828. package/dist/extensions/line/setup-entry.js +0 -15
  829. package/dist/extensions/litellm/api.js +0 -2
  830. package/dist/extensions/litellm/index.js +0 -36
  831. package/dist/extensions/litellm/onboard.js +0 -2
  832. package/dist/extensions/litellm/openclaw.plugin.json +0 -33
  833. package/dist/extensions/litellm/package.json +0 -12
  834. package/dist/extensions/litellm/provider-catalog.js +0 -2
  835. package/dist/extensions/llm-task/api.js +0 -6
  836. package/dist/extensions/llm-task/index.js +0 -156
  837. package/dist/extensions/llm-task/openclaw.plugin.json +0 -33
  838. package/dist/extensions/llm-task/package.json +0 -16
  839. package/dist/extensions/lobster/index.js +0 -232
  840. package/dist/extensions/lobster/openclaw.plugin.json +0 -10
  841. package/dist/extensions/lobster/package.json +0 -17
  842. package/dist/extensions/lobster/runtime-api.js +0 -4
  843. package/dist/extensions/matrix/api.js +0 -10
  844. package/dist/extensions/matrix/helper-api.js +0 -3
  845. package/dist/extensions/matrix/index.js +0 -44
  846. package/dist/extensions/matrix/legacy-crypto-inspector.js +0 -41
  847. package/dist/extensions/matrix/openclaw.plugin.json +0 -11
  848. package/dist/extensions/matrix/package.json +0 -53
  849. package/dist/extensions/matrix/plugin-entry.handlers.runtime.js +0 -48
  850. package/dist/extensions/matrix/runtime-api.js +0 -25
  851. package/dist/extensions/matrix/setup-entry.js +0 -6
  852. package/dist/extensions/matrix/test-api.js +0 -3
  853. package/dist/extensions/matrix/thread-bindings-runtime.js +0 -2
  854. package/dist/extensions/mattermost/api.js +0 -2
  855. package/dist/extensions/mattermost/index.js +0 -15
  856. package/dist/extensions/mattermost/openclaw.plugin.json +0 -11
  857. package/dist/extensions/mattermost/package.json +0 -41
  858. package/dist/extensions/mattermost/runtime-api.js +0 -41
  859. package/dist/extensions/mattermost/setup-entry.js +0 -6
  860. package/dist/extensions/memory-core/api.js +0 -1
  861. package/dist/extensions/memory-core/index.js +0 -440
  862. package/dist/extensions/memory-core/openclaw.plugin.json +0 -9
  863. package/dist/extensions/memory-core/package.json +0 -23
  864. package/dist/extensions/memory-core/runtime-api.js +0 -3
  865. package/dist/extensions/memory-lancedb/api.js +0 -4
  866. package/dist/extensions/memory-lancedb/config.js +0 -2
  867. package/dist/extensions/memory-lancedb/index.js +0 -7037
  868. package/dist/extensions/memory-lancedb/lancedb-runtime.js +0 -2
  869. package/dist/extensions/memory-lancedb/openclaw.plugin.json +0 -92
  870. package/dist/extensions/memory-lancedb/package.json +0 -24
  871. package/dist/extensions/microsoft/index.js +0 -13
  872. package/dist/extensions/microsoft/openclaw.plugin.json +0 -13
  873. package/dist/extensions/microsoft/package.json +0 -15
  874. package/dist/extensions/microsoft/speech-provider.js +0 -2
  875. package/dist/extensions/microsoft/test-api.js +0 -2
  876. package/dist/extensions/microsoft/tts.js +0 -2
  877. package/dist/extensions/microsoft-foundry/auth.js +0 -2
  878. package/dist/extensions/microsoft-foundry/cli.js +0 -2
  879. package/dist/extensions/microsoft-foundry/index.js +0 -13
  880. package/dist/extensions/microsoft-foundry/onboard.js +0 -3
  881. package/dist/extensions/microsoft-foundry/openclaw.plugin.json +0 -39
  882. package/dist/extensions/microsoft-foundry/package.json +0 -12
  883. package/dist/extensions/microsoft-foundry/provider.js +0 -2
  884. package/dist/extensions/microsoft-foundry/runtime.js +0 -2
  885. package/dist/extensions/microsoft-foundry/shared-runtime.js +0 -3
  886. package/dist/extensions/microsoft-foundry/shared.js +0 -2
  887. package/dist/extensions/minimax/api.js +0 -6
  888. package/dist/extensions/minimax/image-generation-provider.js +0 -2
  889. package/dist/extensions/minimax/index.js +0 -219
  890. package/dist/extensions/minimax/media-understanding-provider.js +0 -2
  891. package/dist/extensions/minimax/model-definitions.js +0 -2
  892. package/dist/extensions/minimax/oauth.js +0 -2
  893. package/dist/extensions/minimax/oauth.runtime.js +0 -2
  894. package/dist/extensions/minimax/onboard.js +0 -2
  895. package/dist/extensions/minimax/openclaw.plugin.json +0 -98
  896. package/dist/extensions/minimax/package.json +0 -12
  897. package/dist/extensions/minimax/provider-catalog.js +0 -2
  898. package/dist/extensions/minimax/provider-models.js +0 -2
  899. package/dist/extensions/mistral/api.js +0 -5
  900. package/dist/extensions/mistral/index.js +0 -79
  901. package/dist/extensions/mistral/media-understanding-provider.js +0 -2
  902. package/dist/extensions/mistral/model-definitions.js +0 -2
  903. package/dist/extensions/mistral/onboard.js +0 -2
  904. package/dist/extensions/mistral/openclaw.plugin.json +0 -37
  905. package/dist/extensions/mistral/package.json +0 -12
  906. package/dist/extensions/mistral/provider-catalog.js +0 -2
  907. package/dist/extensions/modelstudio/api.js +0 -4
  908. package/dist/extensions/modelstudio/index.js +0 -111
  909. package/dist/extensions/modelstudio/model-definitions.js +0 -2
  910. package/dist/extensions/modelstudio/models.js +0 -2
  911. package/dist/extensions/modelstudio/onboard.js +0 -3
  912. package/dist/extensions/modelstudio/openclaw.plugin.json +0 -75
  913. package/dist/extensions/modelstudio/package.json +0 -12
  914. package/dist/extensions/modelstudio/provider-catalog.js +0 -2
  915. package/dist/extensions/moonshot/api.js +0 -4
  916. package/dist/extensions/moonshot/index.js +0 -58
  917. package/dist/extensions/moonshot/media-understanding-provider.js +0 -2
  918. package/dist/extensions/moonshot/onboard.js +0 -2
  919. package/dist/extensions/moonshot/openclaw.plugin.json +0 -87
  920. package/dist/extensions/moonshot/package.json +0 -12
  921. package/dist/extensions/moonshot/provider-catalog.js +0 -2
  922. package/dist/extensions/moonshot/test-api.js +0 -2
  923. package/dist/extensions/moonshot/web-search-provider.js +0 -2
  924. package/dist/extensions/msteams/api.js +0 -2
  925. package/dist/extensions/msteams/channel-config-api.js +0 -2
  926. package/dist/extensions/msteams/index.js +0 -13
  927. package/dist/extensions/msteams/openclaw.plugin.json +0 -11
  928. package/dist/extensions/msteams/package.json +0 -48
  929. package/dist/extensions/msteams/runtime-api.js +0 -47
  930. package/dist/extensions/msteams/setup-entry.js +0 -6
  931. package/dist/extensions/msteams/test-api.js +0 -2
  932. package/dist/extensions/nextcloud-talk/api.js +0 -2
  933. package/dist/extensions/nextcloud-talk/index.js +0 -12
  934. package/dist/extensions/nextcloud-talk/openclaw.plugin.json +0 -11
  935. package/dist/extensions/nextcloud-talk/package.json +0 -45
  936. package/dist/extensions/nextcloud-talk/runtime-api.js +0 -35
  937. package/dist/extensions/nextcloud-talk/setup-entry.js +0 -6
  938. package/dist/extensions/nostr/api.js +0 -15
  939. package/dist/extensions/nostr/index.js +0 -559
  940. package/dist/extensions/nostr/openclaw.plugin.json +0 -11
  941. package/dist/extensions/nostr/package.json +0 -44
  942. package/dist/extensions/nostr/runtime-api.js +0 -15
  943. package/dist/extensions/nostr/setup-api.js +0 -2
  944. package/dist/extensions/nostr/setup-entry.js +0 -6
  945. package/dist/extensions/nostr/test-api.js +0 -2
  946. package/dist/extensions/nvidia/api.js +0 -2
  947. package/dist/extensions/nvidia/index.js +0 -16
  948. package/dist/extensions/nvidia/openclaw.plugin.json +0 -17
  949. package/dist/extensions/nvidia/package.json +0 -12
  950. package/dist/extensions/nvidia/provider-catalog.js +0 -2
  951. package/dist/extensions/ollama/api.js +0 -3
  952. package/dist/extensions/ollama/index.js +0 -139
  953. package/dist/extensions/ollama/openclaw.plugin.json +0 -29
  954. package/dist/extensions/ollama/package.json +0 -12
  955. package/dist/extensions/ollama/runtime-api.js +0 -3
  956. package/dist/extensions/open-prose/index.js +0 -10
  957. package/dist/extensions/open-prose/openclaw.plugin.json +0 -13
  958. package/dist/extensions/open-prose/package.json +0 -12
  959. package/dist/extensions/open-prose/runtime-api.js +0 -3
  960. package/dist/extensions/open-prose/skills/prose/LICENSE +0 -21
  961. package/dist/extensions/open-prose/skills/prose/SKILL.md +0 -323
  962. package/dist/extensions/open-prose/skills/prose/alt-borges.md +0 -141
  963. package/dist/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -229
  964. package/dist/extensions/open-prose/skills/prose/alts/borges.md +0 -360
  965. package/dist/extensions/open-prose/skills/prose/alts/folk.md +0 -322
  966. package/dist/extensions/open-prose/skills/prose/alts/homer.md +0 -217
  967. package/dist/extensions/open-prose/skills/prose/alts/kafka.md +0 -373
  968. package/dist/extensions/open-prose/skills/prose/alts/shared-appendix.md +0 -35
  969. package/dist/extensions/open-prose/skills/prose/compiler.md +0 -2971
  970. package/dist/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -4
  971. package/dist/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -6
  972. package/dist/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -17
  973. package/dist/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -14
  974. package/dist/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -20
  975. package/dist/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -17
  976. package/dist/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -20
  977. package/dist/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -20
  978. package/dist/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -25
  979. package/dist/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -32
  980. package/dist/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -27
  981. package/dist/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -43
  982. package/dist/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -51
  983. package/dist/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -48
  984. package/dist/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -23
  985. package/dist/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -19
  986. package/dist/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -19
  987. package/dist/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -36
  988. package/dist/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -71
  989. package/dist/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -20
  990. package/dist/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -35
  991. package/dist/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -51
  992. package/dist/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -63
  993. package/dist/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -86
  994. package/dist/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -114
  995. package/dist/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -100
  996. package/dist/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -105
  997. package/dist/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -37
  998. package/dist/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -1572
  999. package/dist/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -218
  1000. package/dist/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -42
  1001. package/dist/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -145
  1002. package/dist/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -168
  1003. package/dist/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -204
  1004. package/dist/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -296
  1005. package/dist/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -237
  1006. package/dist/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -1474
  1007. package/dist/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -455
  1008. package/dist/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -277
  1009. package/dist/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -32
  1010. package/dist/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -38
  1011. package/dist/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -46
  1012. package/dist/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -50
  1013. package/dist/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -261
  1014. package/dist/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -159
  1015. package/dist/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -637
  1016. package/dist/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -148
  1017. package/dist/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -225
  1018. package/dist/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -356
  1019. package/dist/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -445
  1020. package/dist/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -210
  1021. package/dist/extensions/open-prose/skills/prose/examples/README.md +0 -391
  1022. package/dist/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -22
  1023. package/dist/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -20
  1024. package/dist/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -18
  1025. package/dist/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -17
  1026. package/dist/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -223
  1027. package/dist/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -951
  1028. package/dist/extensions/open-prose/skills/prose/guidance/patterns.md +0 -700
  1029. package/dist/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -180
  1030. package/dist/extensions/open-prose/skills/prose/help.md +0 -144
  1031. package/dist/extensions/open-prose/skills/prose/lib/README.md +0 -108
  1032. package/dist/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -215
  1033. package/dist/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -174
  1034. package/dist/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -250
  1035. package/dist/extensions/open-prose/skills/prose/lib/inspector.prose +0 -196
  1036. package/dist/extensions/open-prose/skills/prose/lib/profiler.prose +0 -460
  1037. package/dist/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -275
  1038. package/dist/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -118
  1039. package/dist/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -93
  1040. package/dist/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -243
  1041. package/dist/extensions/open-prose/skills/prose/primitives/session.md +0 -593
  1042. package/dist/extensions/open-prose/skills/prose/prose.md +0 -1237
  1043. package/dist/extensions/open-prose/skills/prose/state/filesystem.md +0 -498
  1044. package/dist/extensions/open-prose/skills/prose/state/in-context.md +0 -384
  1045. package/dist/extensions/open-prose/skills/prose/state/postgres.md +0 -880
  1046. package/dist/extensions/open-prose/skills/prose/state/sqlite.md +0 -531
  1047. package/dist/extensions/openai/api.js +0 -4
  1048. package/dist/extensions/openai/cli-backend.js +0 -2
  1049. package/dist/extensions/openai/default-models.js +0 -2
  1050. package/dist/extensions/openai/image-generation-provider.js +0 -2
  1051. package/dist/extensions/openai/index.js +0 -24
  1052. package/dist/extensions/openai/media-understanding-provider.js +0 -2
  1053. package/dist/extensions/openai/openai-codex-auth-identity.js +0 -2
  1054. package/dist/extensions/openai/openai-codex-catalog.js +0 -2
  1055. package/dist/extensions/openai/openai-codex-provider.js +0 -2
  1056. package/dist/extensions/openai/openai-codex-provider.runtime.js +0 -14
  1057. package/dist/extensions/openai/openai-provider.js +0 -2
  1058. package/dist/extensions/openai/openclaw.plugin.json +0 -61
  1059. package/dist/extensions/openai/package.json +0 -12
  1060. package/dist/extensions/openai/shared.js +0 -4
  1061. package/dist/extensions/openai/speech-provider.js +0 -2
  1062. package/dist/extensions/openai/test-api.js +0 -5
  1063. package/dist/extensions/openai/tts.js +0 -2
  1064. package/dist/extensions/opencode/api.js +0 -3
  1065. package/dist/extensions/opencode/index.js +0 -63
  1066. package/dist/extensions/opencode/onboard.js +0 -2
  1067. package/dist/extensions/opencode/openclaw.plugin.json +0 -33
  1068. package/dist/extensions/opencode/package.json +0 -12
  1069. package/dist/extensions/opencode-go/api.js +0 -3
  1070. package/dist/extensions/opencode-go/index.js +0 -54
  1071. package/dist/extensions/opencode-go/onboard.js +0 -2
  1072. package/dist/extensions/opencode-go/openclaw.plugin.json +0 -33
  1073. package/dist/extensions/opencode-go/package.json +0 -12
  1074. package/dist/extensions/openrouter/api.js +0 -3
  1075. package/dist/extensions/openrouter/index.js +0 -121
  1076. package/dist/extensions/openrouter/media-understanding-provider.js +0 -2
  1077. package/dist/extensions/openrouter/onboard.js +0 -2
  1078. package/dist/extensions/openrouter/openclaw.plugin.json +0 -37
  1079. package/dist/extensions/openrouter/package.json +0 -12
  1080. package/dist/extensions/openrouter/provider-catalog.js +0 -2
  1081. package/dist/extensions/openshell/index.js +0 -919
  1082. package/dist/extensions/openshell/openclaw.plugin.json +0 -118
  1083. package/dist/extensions/openshell/package.json +0 -12
  1084. package/dist/extensions/perplexity/index.js +0 -13
  1085. package/dist/extensions/perplexity/openclaw.plugin.json +0 -54
  1086. package/dist/extensions/perplexity/package.json +0 -12
  1087. package/dist/extensions/perplexity/test-api.js +0 -2
  1088. package/dist/extensions/perplexity/web-search-provider.js +0 -2
  1089. package/dist/extensions/phone-control/index.js +0 -283
  1090. package/dist/extensions/phone-control/openclaw.plugin.json +0 -11
  1091. package/dist/extensions/phone-control/runtime-api.js +0 -3
  1092. package/dist/extensions/qianfan/api.js +0 -3
  1093. package/dist/extensions/qianfan/index.js +0 -26
  1094. package/dist/extensions/qianfan/onboard.js +0 -2
  1095. package/dist/extensions/qianfan/openclaw.plugin.json +0 -32
  1096. package/dist/extensions/qianfan/package.json +0 -12
  1097. package/dist/extensions/qianfan/provider-catalog.js +0 -2
  1098. package/dist/extensions/qqbot/api.js +0 -173
  1099. package/dist/extensions/qqbot/index.js +0 -445
  1100. package/dist/extensions/qqbot/openclaw.plugin.json +0 -257
  1101. package/dist/extensions/qqbot/package.json +0 -52
  1102. package/dist/extensions/qqbot/runtime-api.js +0 -2
  1103. package/dist/extensions/qqbot/setup-entry.js +0 -6
  1104. package/dist/extensions/qqbot/skills/qqbot-channel/SKILL.md +0 -262
  1105. package/dist/extensions/qqbot/skills/qqbot-channel/references/api_references.md +0 -521
  1106. package/dist/extensions/qqbot/skills/qqbot-media/SKILL.md +0 -36
  1107. package/dist/extensions/qqbot/skills/qqbot-remind/SKILL.md +0 -149
  1108. package/dist/extensions/searxng/index.js +0 -13
  1109. package/dist/extensions/searxng/openclaw.plugin.json +0 -46
  1110. package/dist/extensions/searxng/package.json +0 -12
  1111. package/dist/extensions/searxng/web-search-provider.js +0 -2
  1112. package/dist/extensions/sglang/api.js +0 -4
  1113. package/dist/extensions/sglang/defaults.js +0 -2
  1114. package/dist/extensions/sglang/index.js +0 -77
  1115. package/dist/extensions/sglang/models.js +0 -2
  1116. package/dist/extensions/sglang/openclaw.plugin.json +0 -29
  1117. package/dist/extensions/sglang/package.json +0 -12
  1118. package/dist/extensions/signal/api.js +0 -7
  1119. package/dist/extensions/signal/channel-config-api.js +0 -2
  1120. package/dist/extensions/signal/index.js +0 -319
  1121. package/dist/extensions/signal/openclaw.plugin.json +0 -11
  1122. package/dist/extensions/signal/package.json +0 -24
  1123. package/dist/extensions/signal/reaction-runtime-api.js +0 -2
  1124. package/dist/extensions/signal/runtime-api.js +0 -24
  1125. package/dist/extensions/signal/setup-entry.js +0 -13
  1126. package/dist/extensions/signal/test-api.js +0 -111
  1127. package/dist/extensions/slack/api.js +0 -10
  1128. package/dist/extensions/slack/channel-config-api.js +0 -2
  1129. package/dist/extensions/slack/index.js +0 -12
  1130. package/dist/extensions/slack/openclaw.plugin.json +0 -11
  1131. package/dist/extensions/slack/package.json +0 -31
  1132. package/dist/extensions/slack/runtime-api.js +0 -110
  1133. package/dist/extensions/slack/setup-entry.js +0 -12
  1134. package/dist/extensions/slack/test-api.js +0 -47
  1135. package/dist/extensions/stepfun/index.js +0 -163
  1136. package/dist/extensions/stepfun/onboard.js +0 -3
  1137. package/dist/extensions/stepfun/openclaw.plugin.json +0 -83
  1138. package/dist/extensions/stepfun/package.json +0 -12
  1139. package/dist/extensions/stepfun/provider-catalog.js +0 -2
  1140. package/dist/extensions/synology-chat/index.js +0 -12
  1141. package/dist/extensions/synology-chat/openclaw.plugin.json +0 -11
  1142. package/dist/extensions/synology-chat/package.json +0 -26
  1143. package/dist/extensions/synology-chat/setup-api.js +0 -2
  1144. package/dist/extensions/synology-chat/setup-entry.js +0 -6
  1145. package/dist/extensions/synthetic/api.js +0 -4
  1146. package/dist/extensions/synthetic/index.js +0 -27
  1147. package/dist/extensions/synthetic/models.js +0 -2
  1148. package/dist/extensions/synthetic/onboard.js +0 -3
  1149. package/dist/extensions/synthetic/openclaw.plugin.json +0 -32
  1150. package/dist/extensions/synthetic/package.json +0 -12
  1151. package/dist/extensions/synthetic/provider-catalog.js +0 -2
  1152. package/dist/extensions/talk-voice/api.js +0 -3
  1153. package/dist/extensions/talk-voice/index.js +0 -160
  1154. package/dist/extensions/talk-voice/openclaw.plugin.json +0 -11
  1155. package/dist/extensions/tavily/index.js +0 -128
  1156. package/dist/extensions/tavily/openclaw.plugin.json +0 -53
  1157. package/dist/extensions/tavily/package.json +0 -12
  1158. package/dist/extensions/tavily/skills/tavily/SKILL.md +0 -94
  1159. package/dist/extensions/tavily/web-search-provider.js +0 -2
  1160. package/dist/extensions/telegram/allow-from.js +0 -2
  1161. package/dist/extensions/telegram/api.js +0 -14
  1162. package/dist/extensions/telegram/channel-config-api.js +0 -2
  1163. package/dist/extensions/telegram/index.js +0 -12
  1164. package/dist/extensions/telegram/openclaw.plugin.json +0 -11
  1165. package/dist/extensions/telegram/package.json +0 -37
  1166. package/dist/extensions/telegram/runtime-api.js +0 -25
  1167. package/dist/extensions/telegram/session-key-api.js +0 -2
  1168. package/dist/extensions/telegram/setup-entry.js +0 -13
  1169. package/dist/extensions/telegram/test-api.js +0 -88
  1170. package/dist/extensions/telegram/test-support.js +0 -46
  1171. package/dist/extensions/telegram/update-offset-runtime-api.js +0 -2
  1172. package/dist/extensions/thread-ownership/api.js +0 -5
  1173. package/dist/extensions/thread-ownership/index.js +0 -82
  1174. package/dist/extensions/thread-ownership/openclaw.plugin.json +0 -30
  1175. package/dist/extensions/tlon/api.js +0 -14
  1176. package/dist/extensions/tlon/index.js +0 -150
  1177. package/dist/extensions/tlon/openclaw.plugin.json +0 -12
  1178. package/dist/extensions/tlon/package.json +0 -44
  1179. package/dist/extensions/tlon/runtime-api.js +0 -14
  1180. package/dist/extensions/tlon/setup-api.js +0 -3
  1181. package/dist/extensions/tlon/setup-entry.js +0 -6
  1182. package/dist/extensions/tlon/test-api.js +0 -2
  1183. package/dist/extensions/together/api.js +0 -3
  1184. package/dist/extensions/together/index.js +0 -26
  1185. package/dist/extensions/together/models.js +0 -2
  1186. package/dist/extensions/together/onboard.js +0 -2
  1187. package/dist/extensions/together/openclaw.plugin.json +0 -32
  1188. package/dist/extensions/together/package.json +0 -12
  1189. package/dist/extensions/together/provider-catalog.js +0 -2
  1190. package/dist/extensions/twitch/api.js +0 -9
  1191. package/dist/extensions/twitch/index.js +0 -1090
  1192. package/dist/extensions/twitch/openclaw.plugin.json +0 -11
  1193. package/dist/extensions/twitch/package.json +0 -29
  1194. package/dist/extensions/twitch/runtime-api.js +0 -9
  1195. package/dist/extensions/venice/api.js +0 -3
  1196. package/dist/extensions/venice/index.js +0 -55
  1197. package/dist/extensions/venice/models.js +0 -2
  1198. package/dist/extensions/venice/onboard.js +0 -3
  1199. package/dist/extensions/venice/openclaw.plugin.json +0 -32
  1200. package/dist/extensions/venice/package.json +0 -12
  1201. package/dist/extensions/venice/provider-catalog.js +0 -2
  1202. package/dist/extensions/vercel-ai-gateway/api.js +0 -4
  1203. package/dist/extensions/vercel-ai-gateway/index.js +0 -30
  1204. package/dist/extensions/vercel-ai-gateway/models.js +0 -2
  1205. package/dist/extensions/vercel-ai-gateway/onboard.js +0 -2
  1206. package/dist/extensions/vercel-ai-gateway/openclaw.plugin.json +0 -32
  1207. package/dist/extensions/vercel-ai-gateway/package.json +0 -12
  1208. package/dist/extensions/vercel-ai-gateway/provider-catalog.js +0 -2
  1209. package/dist/extensions/vllm/api.js +0 -4
  1210. package/dist/extensions/vllm/defaults.js +0 -2
  1211. package/dist/extensions/vllm/index.js +0 -78
  1212. package/dist/extensions/vllm/models.js +0 -2
  1213. package/dist/extensions/vllm/openclaw.plugin.json +0 -29
  1214. package/dist/extensions/vllm/package.json +0 -12
  1215. package/dist/extensions/voice-call/api.js +0 -7
  1216. package/dist/extensions/voice-call/index.js +0 -698
  1217. package/dist/extensions/voice-call/openclaw.plugin.json +0 -700
  1218. package/dist/extensions/voice-call/package.json +0 -33
  1219. package/dist/extensions/voice-call/runtime-api.js +0 -7
  1220. package/dist/extensions/voice-call/runtime-entry.js +0 -2
  1221. package/dist/extensions/volcengine/api.js +0 -3
  1222. package/dist/extensions/volcengine/index.js +0 -63
  1223. package/dist/extensions/volcengine/models.js +0 -2
  1224. package/dist/extensions/volcengine/openclaw.plugin.json +0 -33
  1225. package/dist/extensions/volcengine/package.json +0 -12
  1226. package/dist/extensions/volcengine/provider-catalog.js +0 -2
  1227. package/dist/extensions/whatsapp/action-runtime-api.js +0 -2
  1228. package/dist/extensions/whatsapp/action-runtime.runtime.js +0 -2
  1229. package/dist/extensions/whatsapp/api.js +0 -8
  1230. package/dist/extensions/whatsapp/auth-presence.js +0 -2
  1231. package/dist/extensions/whatsapp/channel-config-api.js +0 -2
  1232. package/dist/extensions/whatsapp/constants.js +0 -2
  1233. package/dist/extensions/whatsapp/index.js +0 -12
  1234. package/dist/extensions/whatsapp/light-runtime-api.js +0 -5
  1235. package/dist/extensions/whatsapp/login-qr-api.js +0 -2
  1236. package/dist/extensions/whatsapp/openclaw.plugin.json +0 -11
  1237. package/dist/extensions/whatsapp/package.json +0 -45
  1238. package/dist/extensions/whatsapp/runtime-api.js +0 -334
  1239. package/dist/extensions/whatsapp/setup-entry.js +0 -23
  1240. package/dist/extensions/whatsapp/test-api.js +0 -76
  1241. package/dist/extensions/xai/api.js +0 -6
  1242. package/dist/extensions/xai/code-execution.js +0 -2
  1243. package/dist/extensions/xai/index.js +0 -122
  1244. package/dist/extensions/xai/model-definitions.js +0 -2
  1245. package/dist/extensions/xai/model-id.js +0 -2
  1246. package/dist/extensions/xai/onboard.js +0 -2
  1247. package/dist/extensions/xai/openclaw.plugin.json +0 -157
  1248. package/dist/extensions/xai/package.json +0 -12
  1249. package/dist/extensions/xai/provider-catalog.js +0 -2
  1250. package/dist/extensions/xai/provider-models.js +0 -2
  1251. package/dist/extensions/xai/stream.js +0 -2
  1252. package/dist/extensions/xai/web-search.js +0 -2
  1253. package/dist/extensions/xai/x-search.js +0 -2
  1254. package/dist/extensions/xiaomi/api.js +0 -3
  1255. package/dist/extensions/xiaomi/index.js +0 -37
  1256. package/dist/extensions/xiaomi/onboard.js +0 -2
  1257. package/dist/extensions/xiaomi/openclaw.plugin.json +0 -32
  1258. package/dist/extensions/xiaomi/package.json +0 -12
  1259. package/dist/extensions/xiaomi/provider-catalog.js +0 -2
  1260. package/dist/extensions/zai/api.js +0 -3
  1261. package/dist/extensions/zai/detect.js +0 -2
  1262. package/dist/extensions/zai/index.js +0 -239
  1263. package/dist/extensions/zai/media-understanding-provider.js +0 -2
  1264. package/dist/extensions/zai/model-definitions.js +0 -2
  1265. package/dist/extensions/zai/onboard.js +0 -2
  1266. package/dist/extensions/zai/openclaw.plugin.json +0 -94
  1267. package/dist/extensions/zai/package.json +0 -12
  1268. package/dist/extensions/zai/runtime-api.js +0 -3
  1269. package/dist/extensions/zalo/api.js +0 -3
  1270. package/dist/extensions/zalo/index.js +0 -13
  1271. package/dist/extensions/zalo/openclaw.plugin.json +0 -11
  1272. package/dist/extensions/zalo/package.json +0 -47
  1273. package/dist/extensions/zalo/runtime-api.js +0 -38
  1274. package/dist/extensions/zalo/setup-entry.js +0 -6
  1275. package/dist/extensions/zalo/test-api.js +0 -2
  1276. package/dist/extensions/zalouser/api.js +0 -2
  1277. package/dist/extensions/zalouser/index.js +0 -599
  1278. package/dist/extensions/zalouser/openclaw.plugin.json +0 -11
  1279. package/dist/extensions/zalouser/package.json +0 -48
  1280. package/dist/extensions/zalouser/runtime-api.js +0 -30
  1281. package/dist/extensions/zalouser/setup-entry.js +0 -13
  1282. package/dist/extensions/zalouser/test-api.js +0 -5
  1283. package/dist/external-content-DtoRY-d1.js +0 -242
  1284. package/dist/facade-runtime-Bpi4Gy-u.js +0 -263
  1285. package/dist/failover-error-BrdBIFg2.js +0 -180
  1286. package/dist/feishu-81Iv8tqF.js +0 -18
  1287. package/dist/feishu-conversation-NmEqAxSA.js +0 -17
  1288. package/dist/feishu-setup-DXAK6GqE.js +0 -12
  1289. package/dist/fetch-7dbKQPT5.js +0 -256
  1290. package/dist/fetch-BjiGl865.js +0 -418
  1291. package/dist/fetch-Bp23aO5S.js +0 -65
  1292. package/dist/fetch-guard-BnhVFBtf.js +0 -150
  1293. package/dist/fetch-mock-WghRRNpK.js +0 -6
  1294. package/dist/fetch-runtime-DfFmkkZH.js +0 -4
  1295. package/dist/fetch-timeout-BKMGkHu9.js +0 -58
  1296. package/dist/file-identity-DPm-6kp0.js +0 -567
  1297. package/dist/file-lock-CH0V9dhL.js +0 -141
  1298. package/dist/file-lock-D292sbfa.js +0 -2
  1299. package/dist/firecrawl-client-GOGPuEeg.js +0 -338
  1300. package/dist/firecrawl-search-provider-ptp7GNAt.js +0 -47
  1301. package/dist/format-BwzSM9vY.js +0 -24
  1302. package/dist/format-D38w0aKT.js +0 -817
  1303. package/dist/format-DCFsK8oa.js +0 -19
  1304. package/dist/format-datetime-Bl6-b7G1.js +0 -73
  1305. package/dist/format-duration-DqcpDYkZ.js +0 -57
  1306. package/dist/format-relative-CYrRyrT7.js +0 -54
  1307. package/dist/frontmatter-Ba2Hn11b.js +0 -45
  1308. package/dist/frontmatter-Cjxy4vX8.js +0 -210
  1309. package/dist/fs-safe-BQ59ttjX.js +0 -999
  1310. package/dist/gateway-CWPyH-P7.js +0 -2575
  1311. package/dist/gateway-cli-BmPBPCcJ.js +0 -1572
  1312. package/dist/gateway-discovery-targets--oNzWOVw.js +0 -430
  1313. package/dist/gateway-install-token-tyQyR2ED.js +0 -230
  1314. package/dist/gateway-lock-BbUQuUet.js +0 -292
  1315. package/dist/gateway-presence-BVCIm1hy.js +0 -15
  1316. package/dist/gateway-registry-tQcIThkV.js +0 -74
  1317. package/dist/gateway-rpc-BXdoSPN7.js +0 -26
  1318. package/dist/gateway-runtime-C7EhkU_c.js +0 -12
  1319. package/dist/gaxios-fetch-compat-D4gl5582.js +0 -180
  1320. package/dist/gemini-auth-Dlpcd9MB.js +0 -29
  1321. package/dist/gemini-web-search-provider-CkNEl2du.js +0 -162
  1322. package/dist/get-reply-from-config.runtime-vBmBttxw.js +0 -2
  1323. package/dist/get-reply-from-config.runtime.js +0 -1
  1324. package/dist/git-commit-BS28SZVT.js +0 -2
  1325. package/dist/git-commit-ChiOoWyK.js +0 -177
  1326. package/dist/github-copilot-login-B8s4OVQ4.js +0 -11
  1327. package/dist/github-copilot-token-BwXtH-ZJ.js +0 -2
  1328. package/dist/github-copilot-token-D81Wvm8b.js +0 -2
  1329. package/dist/github-copilot-token-beHjQGOp.js +0 -91
  1330. package/dist/global-singleton-54zT3rCn.js +0 -13
  1331. package/dist/global-singleton-iOq2_-p8.js +0 -1
  1332. package/dist/global-state-DUuMGgts.js +0 -17
  1333. package/dist/globals-CDtV0ht8.js +0 -25
  1334. package/dist/gmail-setup-utils-CxXfU7cy.js +0 -421
  1335. package/dist/google-Cx1_z3Q3.js +0 -24
  1336. package/dist/googlechat-CoiMNDC2.js +0 -37
  1337. package/dist/graph-users-BmZWavVH.js +0 -917
  1338. package/dist/group-access-BZZ3FNmb.js +0 -32
  1339. package/dist/group-access-BjveEAjz.js +0 -113
  1340. package/dist/group-access-owHLoCWX.js +0 -119
  1341. package/dist/group-activation-ClEb7qwj.js +0 -22
  1342. package/dist/group-id-CcsUNOct.js +0 -11
  1343. package/dist/group-policy-Bb8dxOpM.js +0 -25
  1344. package/dist/group-policy-G9GcSyph.js +0 -201
  1345. package/dist/group-policy-wS9F8Y_i.js +0 -51
  1346. package/dist/group-policy-warnings-CL2gHsXM.js +0 -196
  1347. package/dist/groups.runtime-K758xQFV.js +0 -6
  1348. package/dist/groups.runtime.js +0 -1
  1349. package/dist/handle-action-CE4vpa7G.js +0 -500
  1350. package/dist/health-D_KQbqQY.js +0 -577
  1351. package/dist/health-a1VPtSyV.js +0 -2
  1352. package/dist/health-format-COR93f8W.js +0 -26
  1353. package/dist/heartbeat-C_TrErgd.js +0 -122
  1354. package/dist/heartbeat-reply-payload-C7Ac3fOZ.js +0 -13
  1355. package/dist/heartbeat-summary-v5gPj5bd.js +0 -57
  1356. package/dist/heartbeat-visibility-CHMO4pmJ.js +0 -102
  1357. package/dist/help-CyR1Oo4X.js +0 -81
  1358. package/dist/help-format-l1phKNA8.js +0 -15
  1359. package/dist/helpers-COHnQbWX.js +0 -32
  1360. package/dist/helpers-DNpD7VMo.js +0 -24
  1361. package/dist/history-B4mW8GfY.js +0 -102
  1362. package/dist/home-dir-n9onX5PG.js +0 -83
  1363. package/dist/hook-runner-global-C9GhdBtf.js +0 -632
  1364. package/dist/hook-runner-global-Cr_Pthp4.js +0 -2
  1365. package/dist/hook-runtime-DK8QF-2x.js +0 -3
  1366. package/dist/hooks-cli-XCo-7nz9.js +0 -353
  1367. package/dist/hooks-policy-BmULXBcp.js +0 -20
  1368. package/dist/hooks-status-D_ZxRD0H.js +0 -86
  1369. package/dist/host-env-security-SlXI58bc.js +0 -290
  1370. package/dist/host-runtime-BGHb06HN.js +0 -1
  1371. package/dist/hostname-BRYLr_mh.js +0 -8
  1372. package/dist/http-body-CfdQSEp0.js +0 -238
  1373. package/dist/http-client-_3i4-nw5.js +0 -294
  1374. package/dist/http-registry-ZGSBfYSe.js +0 -54
  1375. package/dist/http-route-overlap-C8lbolN5.js +0 -101
  1376. package/dist/identity-BoQQh6Y8.js +0 -26
  1377. package/dist/identity-D64Wfv_s.js +0 -29
  1378. package/dist/identity-DvwF6Yix.js +0 -84
  1379. package/dist/identity-avatar-DPBgVwpU.js +0 -86
  1380. package/dist/identity-file-BtIJI4dn.js +0 -60
  1381. package/dist/image-C4V19x9x.js +0 -152
  1382. package/dist/image-generation-BbOnazXi.js +0 -1
  1383. package/dist/image-generation-provider-CQK8HA0O.js +0 -136
  1384. package/dist/image-generation-provider-CWUvRxmv.js +0 -131
  1385. package/dist/image-generation-provider-F2sfNjcr.js +0 -281
  1386. package/dist/image-ops-BJKjhMAu.js +0 -476
  1387. package/dist/image-runtime-DodXcK2e.js +0 -7
  1388. package/dist/imessage-2ukkzufG.js +0 -19
  1389. package/dist/inbound-context-Cxvd3JHZ.js +0 -59
  1390. package/dist/inbound-context-Czd3FdNb.js +0 -52
  1391. package/dist/inbound-debounce-CI7l3R36.js +0 -159
  1392. package/dist/inbound-envelope-LyHTUTue.js +0 -61
  1393. package/dist/inbound-reply-dispatch-BdeY6N-k.js +0 -73
  1394. package/dist/inbound-text-CacimZtw.js +0 -14
  1395. package/dist/inbound.runtime-CqX3n132.js +0 -3
  1396. package/dist/inbound.runtime.js +0 -1
  1397. package/dist/includes-Ccr-Q5DB.js +0 -188
  1398. package/dist/includes-scan-DVvYLj4S.js +0 -55
  1399. package/dist/index.js +0 -56
  1400. package/dist/infra/warning-filter.js +0 -2
  1401. package/dist/infra-runtime-Cl0iZpRS.js +0 -22
  1402. package/dist/input-files-PZC6ZR4W.js +0 -251
  1403. package/dist/input-provenance-8GBFuk0Q.js +0 -44
  1404. package/dist/inspect-B8dw6NVJ.js +0 -286
  1405. package/dist/install-Bk7XyvtC.js +0 -590
  1406. package/dist/install-package-dir-C2ba2toB.js +0 -284
  1407. package/dist/install-safe-path-CkCd0rWS.js +0 -69
  1408. package/dist/install-security-scan-C02VaEU9.js +0 -22
  1409. package/dist/install-security-scan.runtime-CDUuS6Dl.js +0 -299
  1410. package/dist/install-security-scan.runtime.js +0 -1
  1411. package/dist/install-source-utils-2tdWQmwI.js +0 -167
  1412. package/dist/install-target-CBNysuiP.js +0 -175
  1413. package/dist/install.runtime-D_zKCpnB.js +0 -11
  1414. package/dist/install.runtime-DjQozvMe.js +0 -27
  1415. package/dist/install.runtime.js +0 -1
  1416. package/dist/installs-BnAbQ70v.js +0 -28
  1417. package/dist/interactive-CEnsu1RT.js +0 -8
  1418. package/dist/interactive-runtime-Bxq5ztle.js +0 -1
  1419. package/dist/internal-Lk0wFTNq.js +0 -411
  1420. package/dist/internal-hooks-C3ziA7w_.js +0 -155
  1421. package/dist/io-BUxKr33U.js +0 -2236
  1422. package/dist/io-BuMkfjp3.js +0 -4
  1423. package/dist/ip-BZP18dDl.js +0 -208
  1424. package/dist/ipv4-Xiyu1rvD.js +0 -82
  1425. package/dist/irc-DXfYh-Sd.js +0 -14
  1426. package/dist/irc-surface-Di-joPuc.js +0 -15
  1427. package/dist/is-main-Bv5ej4lF.js +0 -27
  1428. package/dist/issue-format-8Eylt-2O.js +0 -2
  1429. package/dist/issue-format-DLZczJ0U.js +0 -31
  1430. package/dist/json-file-5xJqyXrK.js +0 -23
  1431. package/dist/json-files-C4lsZ_HR.js +0 -72
  1432. package/dist/json-mode-4O1xL2fT.js +0 -34
  1433. package/dist/json-pointer-C30cknnZ.js +0 -43
  1434. package/dist/json-store-FUgu1pyj.js +0 -37
  1435. package/dist/keyed-async-queue-BTOTBE8n.js +0 -32
  1436. package/dist/kill-tree-CIfAbzdN.js +0 -2
  1437. package/dist/kill-tree-CUPpLbeq.js +0 -82
  1438. package/dist/kimi-web-search-provider-Cb3F9_Da.js +0 -224
  1439. package/dist/known-users-DjerpGCB.js +0 -167
  1440. package/dist/lancedb-runtime-DTb_mDUG.js +0 -201
  1441. package/dist/launchd-cp98MUhz.js +0 -517
  1442. package/dist/lazy-runtime-C6LCAM-L.js +0 -29
  1443. package/dist/lazy-runtime-yh_WT4on.js +0 -1
  1444. package/dist/lazy-service-module-CeifO9oo.js +0 -24
  1445. package/dist/legacy-crypto-restore-CsHmLVjY.js +0 -85
  1446. package/dist/legacy-names-CFo8Oe-2.js +0 -9
  1447. package/dist/legacy-web-search-Bn8F2jrN.js +0 -140
  1448. package/dist/legacy.shared-oZM32end.js +0 -45
  1449. package/dist/level-overrides-gqc8xfh2.js +0 -36
  1450. package/dist/library-ChjjeniJ.js +0 -44
  1451. package/dist/lifecycle-core-Ce_ZEvjl.js +0 -402
  1452. package/dist/line-Be0jY3CU.js +0 -4
  1453. package/dist/line-runtime-B0ZGTK81.js +0 -60
  1454. package/dist/line-surface-BTopinac.js +0 -27
  1455. package/dist/links-D7o22Ygt.js +0 -17
  1456. package/dist/listeners-_47QWN8-.js +0 -14
  1457. package/dist/llm-slug-generator-Dv-sLOW9.js +0 -68
  1458. package/dist/llm-slug-generator.js +0 -2
  1459. package/dist/llm-task-BDA3i86A.js +0 -3
  1460. package/dist/load-BXSzQ8YA.js +0 -28
  1461. package/dist/load-options-BqszWkkN.js +0 -36
  1462. package/dist/loader-DsZDoLQ6.js +0 -2519
  1463. package/dist/local-file-access-PajXzDdK.js +0 -49
  1464. package/dist/local-roots-DrpNBv4b.js +0 -46
  1465. package/dist/location-CtMHXE-d.js +0 -42
  1466. package/dist/logger-Bc2lC3X3.js +0 -79
  1467. package/dist/logger-CIV9WBoa.js +0 -11
  1468. package/dist/logger-DdGvppaE.js +0 -75
  1469. package/dist/logger-MWEZrHUL.js +0 -582
  1470. package/dist/logging-B1QD0DRq.js +0 -2
  1471. package/dist/logging-CAfgK7sj.js +0 -3
  1472. package/dist/logging-ColPHIDT.js +0 -16
  1473. package/dist/logging-D4xyCEzZ.js +0 -85
  1474. package/dist/logging-Dt_aiHur.js +0 -13
  1475. package/dist/logging-Dywye6yZ.js +0 -2
  1476. package/dist/logging-core-hw7Df6Hl.js +0 -3
  1477. package/dist/login-BrqdQcNh.js +0 -108
  1478. package/dist/login-DSqrZNW-.js +0 -2333
  1479. package/dist/login-qr-Dm3iC25_.js +0 -212
  1480. package/dist/login-qr-api-BxRDJKkp.js +0 -16
  1481. package/dist/logs-cli-CxjV80As.js +0 -221
  1482. package/dist/magic-string.es-CVHNyqW1.js +0 -1011
  1483. package/dist/main-session-BbO0A-No.js +0 -38
  1484. package/dist/manager-c_fEco8X.js +0 -2773
  1485. package/dist/manager-runtime-Vy_F8ORR.js +0 -2
  1486. package/dist/manager.runtime-Bm1Knq-3.js +0 -670
  1487. package/dist/manager.runtime.js +0 -1
  1488. package/dist/manifest-f_gihArl.js +0 -237
  1489. package/dist/manifest-registry-Kx5Z2lJL.js +0 -1069
  1490. package/dist/map-size-BBQq2RPq.js +0 -15
  1491. package/dist/markdown-table-runtime-Dx12DQTq.js +0 -2
  1492. package/dist/markdown-tables-CSlyhQVP.js +0 -31
  1493. package/dist/mask-api-key-BYVFDQdo.js +0 -10
  1494. package/dist/matrix-NDa-FoaE.js +0 -351
  1495. package/dist/matrix-config-helpers-D0D-oL7I.js +0 -153
  1496. package/dist/matrix-helper-DioFIiaO.js +0 -20
  1497. package/dist/matrix-migration-snapshot-DAOFFSgM.js +0 -714
  1498. package/dist/matrix-ouiFsVI1.js +0 -39
  1499. package/dist/matrix-runtime-heavy-KUEg_MfD.js +0 -4
  1500. package/dist/matrix-runtime-shared-B6aE5Uu6.js +0 -1
  1501. package/dist/matrix-runtime-surface-R78Hde6Q.js +0 -12
  1502. package/dist/matrix-surface-B-nU-e0B.js +0 -13
  1503. package/dist/matrix-thread-bindings-B77Krs8r.js +0 -12
  1504. package/dist/mattermost-Cg2PI71s.js +0 -18
  1505. package/dist/mcp/plugin-tools-serve.js +0 -105
  1506. package/dist/mcp-cli-BMNT4RIm.js +0 -768
  1507. package/dist/mcp-config-3y1z3N2x.js +0 -118
  1508. package/dist/media-CUdiVhEt.js +0 -1691
  1509. package/dist/media-limits-DmcT5KnO.js +0 -14
  1510. package/dist/media-runtime-8QR_uTs0.js +0 -295
  1511. package/dist/media-understanding-CpMkSmKj.js +0 -51
  1512. package/dist/media-understanding-provider-C0xVBaas.js +0 -11
  1513. package/dist/media-understanding-provider-C8RSrdEy.js +0 -16
  1514. package/dist/media-understanding-provider-CCB6_bwc2.js +0 -9
  1515. package/dist/media-understanding-provider-CZ83ep6L.js +0 -16
  1516. package/dist/media-understanding-provider-Cmcg82YY.js +0 -28
  1517. package/dist/media-understanding-provider-D1_z5Kwx.js +0 -11
  1518. package/dist/media-understanding-provider-DC9bhcFj.js +0 -11
  1519. package/dist/media-understanding-provider-DbMV-bHu.js +0 -17
  1520. package/dist/media-understanding-provider-Drg3Vyoe.js +0 -86
  1521. package/dist/media-understanding-runtime-JIhXSD7e.js +0 -15
  1522. package/dist/media-understanding.runtime-2Muvvak4.js +0 -7
  1523. package/dist/media-understanding.runtime.js +0 -1
  1524. package/dist/memory-DPYsR3Cn.js +0 -228
  1525. package/dist/memory-core-engine-runtime-DP_nzKMm.js +0 -14
  1526. package/dist/memory-core-host-engine-embeddings-BhsmnP-6.js +0 -1370
  1527. package/dist/memory-core-host-engine-foundation-CtFD8jpc.js +0 -10
  1528. package/dist/memory-core-host-engine-qmd-DCvmid82.js +0 -375
  1529. package/dist/memory-core-host-engine-storage-N3YflxjF.js +0 -109
  1530. package/dist/memory-core-host-multimodal-BVd6eEE3.js +0 -1
  1531. package/dist/memory-core-host-query-Bxzu0mAD.js +0 -2
  1532. package/dist/memory-core-host-runtime-cli-nz5fxbbn.js +0 -10
  1533. package/dist/memory-core-host-runtime-core-BcGQFQUw.js +0 -8
  1534. package/dist/memory-core-host-runtime-files-DO5A0pY5.js +0 -3
  1535. package/dist/memory-core-host-secret-CQAiTACg.js +0 -1
  1536. package/dist/memory-core-host-status-0g2XexDn.js +0 -44
  1537. package/dist/memory-embedding-providers-BOMS0u3X.js +0 -34
  1538. package/dist/memory-lancedb-kZBcB07O.js +0 -2
  1539. package/dist/memory-runtime-BIGGpmaC.js +0 -2
  1540. package/dist/memory-runtime-XyiDon5w.js +0 -34
  1541. package/dist/memory-search-CQFSugEg.js +0 -2
  1542. package/dist/memory-search-DpAYXyjc.js +0 -202
  1543. package/dist/memory-state-DDJh6L4-.js +0 -41
  1544. package/dist/mention-gating-_kzByrvM.js +0 -25
  1545. package/dist/mentions-BCBF5Klg.js +0 -65
  1546. package/dist/mentions-BKYgZd-C.js +0 -155
  1547. package/dist/merge-patch-CtvE2OP0.js +0 -65
  1548. package/dist/message-Dna6Vsdg.js +0 -205
  1549. package/dist/message-action-discovery-CPTCAl8K.js +0 -133
  1550. package/dist/message-action-runner-Byldnjex.js +0 -1703
  1551. package/dist/message-channel-bEWdw4ul.js +0 -105
  1552. package/dist/message-handler-C9TRy9hy.js +0 -1771
  1553. package/dist/message-hook-mappers-CzwFvq_c.js +0 -255
  1554. package/dist/messages-CQT2FDZ3.js +0 -270
  1555. package/dist/method-scopes-B6e_KuRU.js +0 -2663
  1556. package/dist/migrate-cli-C_iDle77.js +0 -500
  1557. package/dist/migration-snapshot.runtime-DAzTUgU-.js +0 -3
  1558. package/dist/migration-snapshot.runtime.js +0 -1
  1559. package/dist/mime-DkaKoCVP.js +0 -156
  1560. package/dist/min-host-version-CIhgRq0c.js +0 -349
  1561. package/dist/minimax-vlm-Dh6g-MLh.js +0 -512
  1562. package/dist/model-auth-DcCyGs_6.js +0 -377
  1563. package/dist/model-auth-env-OT6ucjoP.js +0 -63
  1564. package/dist/model-auth-label-fGtOs2u-.js +0 -45
  1565. package/dist/model-auth-markers-D2z_AIuC.js +0 -70
  1566. package/dist/model-auth-runtime-shared-DnhseQ_3.js +0 -18
  1567. package/dist/model-buttons-zQ-cRhqo.js +0 -187
  1568. package/dist/model-catalog-f9zO4b6C.js +0 -208
  1569. package/dist/model-catalog.runtime-iRu_OMJS.js +0 -2
  1570. package/dist/model-catalog.runtime.js +0 -1
  1571. package/dist/model-definitions-BGWurJeM.js +0 -49
  1572. package/dist/model-definitions-C-e07VgA.js +0 -255
  1573. package/dist/model-definitions-DUANiLUG.js +0 -126
  1574. package/dist/model-definitions-DrxdjAkB.js +0 -202
  1575. package/dist/model-id-9W_sHLHy.js +0 -12
  1576. package/dist/model-id-DEv7HEyl.js +0 -20
  1577. package/dist/model-input-DwbpFRYm.js +0 -20
  1578. package/dist/model-overrides-BaecXmMv.js +0 -84
  1579. package/dist/model-overrides-UUODi1G1.js +0 -91
  1580. package/dist/model-param-b-BHlbSl5R.js +0 -15
  1581. package/dist/model-picker-BgVMnja3.js +0 -439
  1582. package/dist/model-picker-D8elZqN_.js +0 -3
  1583. package/dist/model-picker.runtime-BUfgRpvT.js +0 -15
  1584. package/dist/model-picker.runtime.js +0 -1
  1585. package/dist/model-runtime-CkjgxQmB.js +0 -1772
  1586. package/dist/model-selection-DXY5nwui.js +0 -407
  1587. package/dist/model-selection-Dx6Ag-ZE.js +0 -505
  1588. package/dist/model-suppression-C8XSEnsv.js +0 -24
  1589. package/dist/model-suppression.runtime-Dqra9AAF.js +0 -7
  1590. package/dist/model-suppression.runtime.js +0 -1
  1591. package/dist/models--Ze_o5z6.js +0 -193
  1592. package/dist/models-7_w_ynp7.js +0 -35
  1593. package/dist/models-BMmB_oQc.js +0 -130
  1594. package/dist/models-B_TKM4gG.js +0 -18
  1595. package/dist/models-B_UROL5b.js +0 -3
  1596. package/dist/models-BmDGSZCK.js +0 -31
  1597. package/dist/models-BywIyTzh.js +0 -126
  1598. package/dist/models-C5GB-E7D.js +0 -154
  1599. package/dist/models-DU3Lv10g.js +0 -754
  1600. package/dist/models-VgpjMiqM.js +0 -138
  1601. package/dist/models-_DZVZ2Na.js +0 -18
  1602. package/dist/models-bBe0FFJe.js +0 -2550
  1603. package/dist/models-cli-kZR11PgM.js +0 -197
  1604. package/dist/models-config-D6j7jkCN.js +0 -2
  1605. package/dist/models-config-lYKxSxLo.js +0 -1106
  1606. package/dist/models-config.runtime-D2tdVUsi.js +0 -2
  1607. package/dist/models-config.runtime.js +0 -1
  1608. package/dist/models-emJUoDsF.js +0 -40
  1609. package/dist/models-gPCm0Fco.js +0 -122
  1610. package/dist/models-mi7nu17U.js +0 -99
  1611. package/dist/models-nUP9ZPV8.js +0 -552
  1612. package/dist/models-provider-runtime-DfIZ0cvV.js +0 -2
  1613. package/dist/monitor-BEjwRY59.js +0 -3622
  1614. package/dist/monitor-BiwufaF7.js +0 -718
  1615. package/dist/monitor-BqwlHm94.js +0 -3660
  1616. package/dist/monitor-Cj6Atk8I.js +0 -676
  1617. package/dist/monitor-D2qBnOYz.js +0 -666
  1618. package/dist/monitor-DZmBV1Nj2.js +0 -2
  1619. package/dist/monitor-RMoB6sGQ.js +0 -4067
  1620. package/dist/monitor-auth-EvlH1zbN.js +0 -192
  1621. package/dist/monitor-lbUydC5_.js +0 -1525
  1622. package/dist/monitor-polling.runtime-O6ZG6yYv.js +0 -307
  1623. package/dist/monitor-polling.runtime.js +0 -1
  1624. package/dist/monitor-provider-x4TUmYNN.js +0 -1782
  1625. package/dist/monitor-vE0skDM1.js +0 -687
  1626. package/dist/monitor-webhook.runtime-DoTv_oZv.js +0 -297
  1627. package/dist/monitor-webhook.runtime.js +0 -1
  1628. package/dist/moonshot-stream-wrappers-Csssd6kW.js +0 -24
  1629. package/dist/moonshot-thinking-stream-wrappers-D3j6Q9Yk.js +0 -69
  1630. package/dist/msteams-DsFLaFEV.js +0 -33
  1631. package/dist/multimodal-DoXQtvBl.js +0 -66
  1632. package/dist/mutable-allowlist-detectors-CbFK2eTK.js +0 -62
  1633. package/dist/native-command-registry-B4BAqmAW.js +0 -2
  1634. package/dist/native-command-session-targets-DfUCBY63.js +0 -10
  1635. package/dist/net-DjzoSxQo.js +0 -265
  1636. package/dist/network-discovery-display-h8MqTMCI.js +0 -48
  1637. package/dist/network-mode-QjJNOXMa.js +0 -17
  1638. package/dist/nextcloud-talk-COZ5YrPY.js +0 -18
  1639. package/dist/node-cli-z8LHYl1w.js +0 -2323
  1640. package/dist/node-command-policy-DoeXKD1V.js +0 -205
  1641. package/dist/node-commands-ycnRypMq.js +0 -11
  1642. package/dist/node-require-BgDD9bTi.js +0 -14
  1643. package/dist/node-resolve-Drr1RIcN.js +0 -110
  1644. package/dist/node-service-Nyf8eLc4.js +0 -68
  1645. package/dist/node-startup-env-CVMjxAUF.js +0 -50
  1646. package/dist/nodes-cli-BMyafV_R.js +0 -1044
  1647. package/dist/nodes-screen-oyGHNlY5.js +0 -219
  1648. package/dist/nodes.helpers-DKBA9twS.js +0 -203
  1649. package/dist/normalize-C46CugdT.js +0 -35
  1650. package/dist/normalize-reply-VrMa_PA2.js +0 -500
  1651. package/dist/normalize-secret-input-CC9iFcnK.js +0 -32
  1652. package/dist/nostr-DGfd-Skj.js +0 -19
  1653. package/dist/note-B5R9zt2K.js +0 -109
  1654. package/dist/notify-CKEt6MKY.js +0 -298
  1655. package/dist/npm-registry-spec-dWUFCqDk.js +0 -100
  1656. package/dist/oauth-BBIy_OBl.js +0 -152
  1657. package/dist/oauth-DzMUt9ZO.js +0 -56
  1658. package/dist/oauth.credentials-CKrXIXPf.js +0 -119
  1659. package/dist/oauth.flow-Dd6MZcHS.js +0 -122
  1660. package/dist/oauth.http-CZlbXoZD.js +0 -23
  1661. package/dist/oauth.project-DAVNbct7.js +0 -125
  1662. package/dist/oauth.shared-D1_wwlyt.js +0 -26
  1663. package/dist/oauth.token-CnB-w_v2.js +0 -42
  1664. package/dist/ollama-EE_SvO8P.js +0 -26
  1665. package/dist/onboard-2otvb4-n.js +0 -307
  1666. package/dist/onboard-72nGEzpd.js +0 -25
  1667. package/dist/onboard-B14oDS4M.js +0 -23
  1668. package/dist/onboard-BH5hcOyK.js +0 -39
  1669. package/dist/onboard-BRkQIFt_.js +0 -25
  1670. package/dist/onboard-BSArlkkq.js +0 -73
  1671. package/dist/onboard-Bau_HSmO.js +0 -36
  1672. package/dist/onboard-BsqpQhXj.js +0 -591
  1673. package/dist/onboard-CBa7u1iZ.js +0 -25
  1674. package/dist/onboard-CLKZrJow.js +0 -29
  1675. package/dist/onboard-COaMJ5wS.js +0 -28
  1676. package/dist/onboard-CbTQZti9.js +0 -48
  1677. package/dist/onboard-Ce3rcBNR.js +0 -29
  1678. package/dist/onboard-CiMzgSvO.js +0 -67
  1679. package/dist/onboard-DNuWjUOg.js +0 -17
  1680. package/dist/onboard-DY3JtOcX.js +0 -47
  1681. package/dist/onboard-Dd_eFJ7g.js +0 -25
  1682. package/dist/onboard-DgMI-C3P.js +0 -24
  1683. package/dist/onboard-Dj3Kkl9C.js +0 -49
  1684. package/dist/onboard-Djne8OY8.js +0 -34
  1685. package/dist/onboard-DnNU28xK.js +0 -48
  1686. package/dist/onboard-MFS79j1I.js +0 -23
  1687. package/dist/onboard-REHqRyQm.js +0 -26
  1688. package/dist/onboard-VVnzyvuh.js +0 -46
  1689. package/dist/onboard-channels-B8UocRdo.js +0 -705
  1690. package/dist/onboard-channels-Ci5QQyQ0.js +0 -2
  1691. package/dist/onboard-config-7edS4yYd.js +0 -2
  1692. package/dist/onboard-config-C-6p2HNL.js +0 -29
  1693. package/dist/onboard-custom-BREC7K0s.js +0 -2
  1694. package/dist/onboard-custom-D7oXiV6u.js +0 -646
  1695. package/dist/onboard-helpers-BCIfy96O.js +0 -4
  1696. package/dist/onboard-helpers-CLedS83g.js +0 -227
  1697. package/dist/onboard-hooks-DW0gav3i.js +0 -52
  1698. package/dist/onboard-lh38uUOa.js +0 -25
  1699. package/dist/onboard-rH_HA9v-.js +0 -34
  1700. package/dist/onboard-remote-DG5Rb2y7.js +0 -2
  1701. package/dist/onboard-remote-DgDwHLCW.js +0 -193
  1702. package/dist/onboard-search-Bz78SAON.js +0 -339
  1703. package/dist/onboard-skills-BK1iF6NI.js +0 -2
  1704. package/dist/onboard-skills-Cfs4Gz-d.js +0 -134
  1705. package/dist/openai-B3atWWiZ.js +0 -21
  1706. package/dist/openai-codex-auth-identity-blYgqX5I.js +0 -40
  1707. package/dist/openai-codex-catalog-DQoW5ntP.js +0 -11
  1708. package/dist/openai-codex-provider-BeX3_fQL.js +0 -254
  1709. package/dist/openai-provider-DfSRc815.js +0 -272
  1710. package/dist/openai-stream-wrappers-Cmn9nSYj.js +0 -338
  1711. package/dist/openclaw-exec-env-DnTrPIdx.js +0 -17
  1712. package/dist/openclaw-root-F1SOdmJ0.js +0 -88
  1713. package/dist/openclaw-tools.runtime-Dx73yE1V.js +0 -2
  1714. package/dist/openclaw-tools.runtime.js +0 -1
  1715. package/dist/operator-approvals-client-NQtGN5k_.js +0 -33
  1716. package/dist/order-DNBhjW6F.js +0 -744
  1717. package/dist/origin-routing-BC2EzQqM.js +0 -15
  1718. package/dist/origin-routing-BVUTLJGu.js +0 -2
  1719. package/dist/os-summary-CdlXkpL1.js +0 -26
  1720. package/dist/outbound-adapter-D6WGzS7P.js +0 -183
  1721. package/dist/outbound-ek4CqhT2.js +0 -2
  1722. package/dist/outbound-hgMEZIU9.js +0 -2739
  1723. package/dist/outbound-media-B2ZrkOxl.js +0 -15
  1724. package/dist/outbound-runtime-CtDmQy3z.js +0 -2
  1725. package/dist/outbound-send-deps-COPf3lwV.js +0 -7
  1726. package/dist/outbound-session-DHKvttsz.js +0 -41
  1727. package/dist/pairing-challenge-O7jo1Q5R.js +0 -33
  1728. package/dist/pairing-cli-BEUxC5EH.js +0 -116
  1729. package/dist/pairing-labels-Cj1fFxG9.js +0 -7
  1730. package/dist/pairing-message-FaqHPEFk.js +0 -4
  1731. package/dist/pairing-messages-DxLpe0GE.js +0 -23
  1732. package/dist/pairing-pending-DGyUpmjC.js +0 -14
  1733. package/dist/pairing-store-B171dUVa.js +0 -617
  1734. package/dist/pairing-token-CnyXOU__.js +0 -88
  1735. package/dist/param-readers-CqAoT2n2.js +0 -2
  1736. package/dist/parse-duration-D9q1V0xx.js +0 -41
  1737. package/dist/parse-finite-number-CzdLC_gQ.js +0 -30
  1738. package/dist/parse-json-compat-DfjRYtKX.js +0 -11
  1739. package/dist/parse-log-line-Cd0JHPGg.js +0 -43
  1740. package/dist/parse-port-BFmNhrtE.js +0 -8
  1741. package/dist/parse-timeout-bktz0495.js +0 -27
  1742. package/dist/path-alias-guards-BeOn9PZR.js +0 -40
  1743. package/dist/path-env-C2F1kvna.js +0 -87
  1744. package/dist/path-safety-2mfHCe0n.js +0 -12
  1745. package/dist/paths-Bw8Ci57u.js +0 -2
  1746. package/dist/paths-GWMNxnBn.js +0 -201
  1747. package/dist/paths-xpks599B.js +0 -180
  1748. package/dist/payload-S8niBCaz.js +0 -90
  1749. package/dist/pdf-extract-Cm83kt2M.js +0 -73
  1750. package/dist/perplexity-web-search-provider-Cgr2BYVk.js +0 -423
  1751. package/dist/persistent-bindings.lifecycle-CAOm8v8I.js +0 -159
  1752. package/dist/persistent-dedupe-DoNHVMWs.js +0 -116
  1753. package/dist/pi-embedded-DEAtCIdT.js +0 -40616
  1754. package/dist/pi-embedded-helpers-BVjvCsor.js +0 -1733
  1755. package/dist/pi-embedded.runtime-Ctj3QFs-.js +0 -4
  1756. package/dist/pi-embedded.runtime.js +0 -1
  1757. package/dist/pi-model-discovery-KjI5xf8m.js +0 -188
  1758. package/dist/pi-settings-BJzoHYF9.js +0 -57
  1759. package/dist/pi-tools.before-tool-call.runtime-DJ6s0GDV.js +0 -354
  1760. package/dist/pi-tools.before-tool-call.runtime.js +0 -1
  1761. package/dist/plugin-auto-enable-BZvicayR.js +0 -400
  1762. package/dist/plugin-entry-D0vhddM4.js +0 -25
  1763. package/dist/plugin-entry.runtime-Xd644UDA.js +0 -112
  1764. package/dist/plugin-entry.runtime.js +0 -1
  1765. package/dist/plugin-error-boundary-RI4ByQoA.js +0 -55
  1766. package/dist/plugin-error-handler-DWUTf_UF.js +0 -109
  1767. package/dist/plugin-health-checker-2c6LyJwr.js +0 -125
  1768. package/dist/plugin-hot-reload-CA3__dZN.js +0 -215
  1769. package/dist/plugin-install-BjVLwj7-.js +0 -230
  1770. package/dist/plugin-install-CjwMt13j.js +0 -2
  1771. package/dist/plugin-install-config-policy-MApev-w-.js +0 -93
  1772. package/dist/plugin-install-path-warnings-BkBH-k4n.js +0 -40
  1773. package/dist/plugin-install-plan-0fWhyVBN.js +0 -50
  1774. package/dist/plugin-registry-CORVyKHv.js +0 -74
  1775. package/dist/plugin-registry-Dl1iIh7W.js +0 -2
  1776. package/dist/plugin-runtime-Dd1YN95W.js +0 -6
  1777. package/dist/plugin-sdk/account-core.js +0 -8
  1778. package/dist/plugin-sdk/account-helpers.js +0 -4
  1779. package/dist/plugin-sdk/account-id.js +0 -3
  1780. package/dist/plugin-sdk/account-resolution.js +0 -12
  1781. package/dist/plugin-sdk/acp-runtime.js +0 -3
  1782. package/dist/plugin-sdk/agent-config-primitives.js +0 -3
  1783. package/dist/plugin-sdk/agent-runtime.js +0 -29
  1784. package/dist/plugin-sdk/allow-from.js +0 -5
  1785. package/dist/plugin-sdk/allowlist-config-edit.js +0 -2
  1786. package/dist/plugin-sdk/amazon-bedrock.js +0 -15
  1787. package/dist/plugin-sdk/anthropic-vertex.js +0 -2
  1788. package/dist/plugin-sdk/approval-runtime.js +0 -8
  1789. package/dist/plugin-sdk/bluebubbles-policy.js +0 -2
  1790. package/dist/plugin-sdk/bluebubbles.js +0 -39
  1791. package/dist/plugin-sdk/boolean-param.js +0 -2
  1792. package/dist/plugin-sdk/browser-runtime.js +0 -3
  1793. package/dist/plugin-sdk/browser-support.js +0 -44
  1794. package/dist/plugin-sdk/browser.js +0 -15
  1795. package/dist/plugin-sdk/byteplus.js +0 -17
  1796. package/dist/plugin-sdk/channel-actions.js +0 -3
  1797. package/dist/plugin-sdk/channel-config-helpers.js +0 -2
  1798. package/dist/plugin-sdk/channel-config-primitives.js +0 -4
  1799. package/dist/plugin-sdk/channel-config-schema.js +0 -7
  1800. package/dist/plugin-sdk/channel-config-writes.js +0 -3
  1801. package/dist/plugin-sdk/channel-contract.js +0 -1
  1802. package/dist/plugin-sdk/channel-feedback.js +0 -5
  1803. package/dist/plugin-sdk/channel-inbound.js +0 -10
  1804. package/dist/plugin-sdk/channel-lifecycle.js +0 -3
  1805. package/dist/plugin-sdk/channel-pairing.js +0 -2
  1806. package/dist/plugin-sdk/channel-policy.js +0 -6
  1807. package/dist/plugin-sdk/channel-reply-pipeline.js +0 -2
  1808. package/dist/plugin-sdk/channel-runtime.js +0 -16
  1809. package/dist/plugin-sdk/channel-send-result.js +0 -2
  1810. package/dist/plugin-sdk/channel-setup.js +0 -5
  1811. package/dist/plugin-sdk/channel-status.js +0 -5
  1812. package/dist/plugin-sdk/channel-targets.js +0 -5
  1813. package/dist/plugin-sdk/chutes.js +0 -20
  1814. package/dist/plugin-sdk/cli-backend.js +0 -3
  1815. package/dist/plugin-sdk/cli-runtime.js +0 -7
  1816. package/dist/plugin-sdk/cloudflare-ai-gateway.js +0 -18
  1817. package/dist/plugin-sdk/collection-runtime.js +0 -3
  1818. package/dist/plugin-sdk/command-auth-native.js +0 -6
  1819. package/dist/plugin-sdk/command-auth.js +0 -14
  1820. package/dist/plugin-sdk/command-detection.js +0 -3
  1821. package/dist/plugin-sdk/command-surface.js +0 -3
  1822. package/dist/plugin-sdk/compat.js +0 -35
  1823. package/dist/plugin-sdk/config-runtime.js +0 -25
  1824. package/dist/plugin-sdk/conversation-runtime.js +0 -15
  1825. package/dist/plugin-sdk/core.js +0 -22
  1826. package/dist/plugin-sdk/dangerous-name-runtime.js +0 -3
  1827. package/dist/plugin-sdk/deepseek.js +0 -14
  1828. package/dist/plugin-sdk/device-bootstrap.js +0 -4
  1829. package/dist/plugin-sdk/diagnostic-runtime.js +0 -4
  1830. package/dist/plugin-sdk/diagnostics-otel.js +0 -6
  1831. package/dist/plugin-sdk/diffs.js +0 -4
  1832. package/dist/plugin-sdk/direct-dm.js +0 -2
  1833. package/dist/plugin-sdk/directory-runtime.js +0 -5
  1834. package/dist/plugin-sdk/discord-account.js +0 -2
  1835. package/dist/plugin-sdk/discord-core.js +0 -9
  1836. package/dist/plugin-sdk/discord-runtime-surface.js +0 -2
  1837. package/dist/plugin-sdk/discord-session-key.js +0 -2
  1838. package/dist/plugin-sdk/discord-surface.js +0 -2
  1839. package/dist/plugin-sdk/discord-thread-bindings.js +0 -2
  1840. package/dist/plugin-sdk/discord-timeouts.js +0 -2
  1841. package/dist/plugin-sdk/discord.js +0 -21
  1842. package/dist/plugin-sdk/error-runtime.js +0 -3
  1843. package/dist/plugin-sdk/extension-shared.js +0 -3
  1844. package/dist/plugin-sdk/feishu-conversation.js +0 -2
  1845. package/dist/plugin-sdk/feishu-setup.js +0 -2
  1846. package/dist/plugin-sdk/feishu.js +0 -34
  1847. package/dist/plugin-sdk/fetch-runtime.js +0 -7
  1848. package/dist/plugin-sdk/file-lock.js +0 -2
  1849. package/dist/plugin-sdk/gateway-runtime.js +0 -4
  1850. package/dist/plugin-sdk/github-copilot-login.js +0 -2
  1851. package/dist/plugin-sdk/github-copilot-token.js +0 -3
  1852. package/dist/plugin-sdk/global-singleton.js +0 -4
  1853. package/dist/plugin-sdk/google.js +0 -2
  1854. package/dist/plugin-sdk/googlechat.js +0 -38
  1855. package/dist/plugin-sdk/group-access.js +0 -2
  1856. package/dist/plugin-sdk/hook-runtime.js +0 -4
  1857. package/dist/plugin-sdk/host-runtime.js +0 -4
  1858. package/dist/plugin-sdk/huggingface.js +0 -18
  1859. package/dist/plugin-sdk/image-generation-core.js +0 -63
  1860. package/dist/plugin-sdk/image-generation.js +0 -2
  1861. package/dist/plugin-sdk/index.js +0 -5
  1862. package/dist/plugin-sdk/infra-runtime.js +0 -45
  1863. package/dist/plugin-sdk/interactive-runtime.js +0 -4
  1864. package/dist/plugin-sdk/irc-surface.js +0 -2
  1865. package/dist/plugin-sdk/irc.js +0 -30
  1866. package/dist/plugin-sdk/json-store.js +0 -3
  1867. package/dist/plugin-sdk/keyed-async-queue.js +0 -2
  1868. package/dist/plugin-sdk/kilocode.js +0 -23
  1869. package/dist/plugin-sdk/kimi-coding.js +0 -11
  1870. package/dist/plugin-sdk/lazy-runtime.js +0 -3
  1871. package/dist/plugin-sdk/line-core.js +0 -6
  1872. package/dist/plugin-sdk/line-runtime.js +0 -2
  1873. package/dist/plugin-sdk/line-surface.js +0 -2
  1874. package/dist/plugin-sdk/line.js +0 -9
  1875. package/dist/plugin-sdk/llm-task.js +0 -6
  1876. package/dist/plugin-sdk/logging-core.js +0 -5
  1877. package/dist/plugin-sdk/markdown-table-runtime.js +0 -3
  1878. package/dist/plugin-sdk/matrix-helper.js +0 -2
  1879. package/dist/plugin-sdk/matrix-runtime-heavy.js +0 -5
  1880. package/dist/plugin-sdk/matrix-runtime-shared.js +0 -3
  1881. package/dist/plugin-sdk/matrix-runtime-surface.js +0 -2
  1882. package/dist/plugin-sdk/matrix-surface.js +0 -2
  1883. package/dist/plugin-sdk/matrix-thread-bindings.js +0 -2
  1884. package/dist/plugin-sdk/matrix.js +0 -53
  1885. package/dist/plugin-sdk/mattermost-policy.js +0 -11
  1886. package/dist/plugin-sdk/mattermost.js +0 -41
  1887. package/dist/plugin-sdk/media-runtime.js +0 -17
  1888. package/dist/plugin-sdk/media-understanding-runtime.js +0 -2
  1889. package/dist/plugin-sdk/media-understanding.js +0 -3
  1890. package/dist/plugin-sdk/memory-core-engine-runtime.js +0 -2
  1891. package/dist/plugin-sdk/memory-core-host-engine-embeddings.js +0 -6
  1892. package/dist/plugin-sdk/memory-core-host-engine-foundation.js +0 -17
  1893. package/dist/plugin-sdk/memory-core-host-engine-qmd.js +0 -3
  1894. package/dist/plugin-sdk/memory-core-host-engine-storage.js +0 -4
  1895. package/dist/plugin-sdk/memory-core-host-multimodal.js +0 -3
  1896. package/dist/plugin-sdk/memory-core-host-query.js +0 -3
  1897. package/dist/plugin-sdk/memory-core-host-runtime-cli.js +0 -12
  1898. package/dist/plugin-sdk/memory-core-host-runtime-core.js +0 -14
  1899. package/dist/plugin-sdk/memory-core-host-runtime-files.js +0 -4
  1900. package/dist/plugin-sdk/memory-core-host-secret.js +0 -3
  1901. package/dist/plugin-sdk/memory-core-host-status.js +0 -2
  1902. package/dist/plugin-sdk/memory-core.js +0 -29
  1903. package/dist/plugin-sdk/memory-lancedb.js +0 -4
  1904. package/dist/plugin-sdk/minimax.js +0 -24
  1905. package/dist/plugin-sdk/mistral.js +0 -17
  1906. package/dist/plugin-sdk/models-provider-runtime.js +0 -3
  1907. package/dist/plugin-sdk/modelstudio-definitions.js +0 -19
  1908. package/dist/plugin-sdk/modelstudio.js +0 -24
  1909. package/dist/plugin-sdk/moonshot.js +0 -17
  1910. package/dist/plugin-sdk/msteams.js +0 -46
  1911. package/dist/plugin-sdk/native-command-registry.js +0 -3
  1912. package/dist/plugin-sdk/nextcloud-talk.js +0 -35
  1913. package/dist/plugin-sdk/nostr.js +0 -14
  1914. package/dist/plugin-sdk/nvidia.js +0 -11
  1915. package/dist/plugin-sdk/ollama-surface.js +0 -24
  1916. package/dist/plugin-sdk/ollama.js +0 -2
  1917. package/dist/plugin-sdk/openai.js +0 -2
  1918. package/dist/plugin-sdk/opencode-go.js +0 -14
  1919. package/dist/plugin-sdk/opencode.js +0 -15
  1920. package/dist/plugin-sdk/outbound-runtime.js +0 -5
  1921. package/dist/plugin-sdk/param-readers.js +0 -3
  1922. package/dist/plugin-sdk/plugin-entry.js +0 -3
  1923. package/dist/plugin-sdk/plugin-runtime.js +0 -8
  1924. package/dist/plugin-sdk/process-runtime.js +0 -3
  1925. package/dist/plugin-sdk/provider-auth-api-key.js +0 -9
  1926. package/dist/plugin-sdk/provider-auth-login.js +0 -2
  1927. package/dist/plugin-sdk/provider-auth-result.js +0 -2
  1928. package/dist/plugin-sdk/provider-auth-runtime.js +0 -5
  1929. package/dist/plugin-sdk/provider-auth.js +0 -17
  1930. package/dist/plugin-sdk/provider-catalog-shared.js +0 -2
  1931. package/dist/plugin-sdk/provider-entry.js +0 -2
  1932. package/dist/plugin-sdk/provider-env-vars.js +0 -3
  1933. package/dist/plugin-sdk/provider-http.js +0 -6
  1934. package/dist/plugin-sdk/provider-model-shared.js +0 -5
  1935. package/dist/plugin-sdk/provider-moonshot.js +0 -3
  1936. package/dist/plugin-sdk/provider-onboard.js +0 -3
  1937. package/dist/plugin-sdk/provider-setup.js +0 -3
  1938. package/dist/plugin-sdk/provider-stream.js +0 -4
  1939. package/dist/plugin-sdk/provider-tools.js +0 -2
  1940. package/dist/plugin-sdk/provider-usage.js +0 -3
  1941. package/dist/plugin-sdk/provider-web-fetch.js +0 -6
  1942. package/dist/plugin-sdk/provider-web-search.js +0 -7
  1943. package/dist/plugin-sdk/provider-zai-endpoint.js +0 -2
  1944. package/dist/plugin-sdk/qianfan.js +0 -13
  1945. package/dist/plugin-sdk/reply-chunking.js +0 -4
  1946. package/dist/plugin-sdk/reply-dispatch-runtime.js +0 -5
  1947. package/dist/plugin-sdk/reply-history.js +0 -3
  1948. package/dist/plugin-sdk/reply-payload.js +0 -2
  1949. package/dist/plugin-sdk/reply-runtime.js +0 -14
  1950. package/dist/plugin-sdk/request-url.js +0 -2
  1951. package/dist/plugin-sdk/retry-runtime.js +0 -4
  1952. package/dist/plugin-sdk/root-alias.cjs +0 -347
  1953. package/dist/plugin-sdk/routing.js +0 -9
  1954. package/dist/plugin-sdk/runtime-config-snapshot.js +0 -3
  1955. package/dist/plugin-sdk/runtime-env.js +0 -17
  1956. package/dist/plugin-sdk/runtime-group-policy.js +0 -3
  1957. package/dist/plugin-sdk/runtime-store.js +0 -2
  1958. package/dist/plugin-sdk/runtime.js +0 -9
  1959. package/dist/plugin-sdk/sandbox.js +0 -6
  1960. package/dist/plugin-sdk/secret-input.js +0 -4
  1961. package/dist/plugin-sdk/security-runtime.js +0 -6
  1962. package/dist/plugin-sdk/self-hosted-provider-setup.js +0 -2
  1963. package/dist/plugin-sdk/session-store-runtime.js +0 -4
  1964. package/dist/plugin-sdk/setup-adapter-runtime.js +0 -3
  1965. package/dist/plugin-sdk/setup-runtime.js +0 -6
  1966. package/dist/plugin-sdk/setup-tools.js +0 -6
  1967. package/dist/plugin-sdk/setup.js +0 -13
  1968. package/dist/plugin-sdk/sglang.js +0 -15
  1969. package/dist/plugin-sdk/signal-account.js +0 -2
  1970. package/dist/plugin-sdk/signal-surface.js +0 -2
  1971. package/dist/plugin-sdk/signal.js +0 -24
  1972. package/dist/plugin-sdk/skill-commands-runtime.js +0 -3
  1973. package/dist/plugin-sdk/slack-account.js +0 -2
  1974. package/dist/plugin-sdk/slack-core.js +0 -7
  1975. package/dist/plugin-sdk/slack-runtime-surface.js +0 -2
  1976. package/dist/plugin-sdk/slack-surface.js +0 -2
  1977. package/dist/plugin-sdk/slack-target-parser.js +0 -2
  1978. package/dist/plugin-sdk/slack-targets.js +0 -3
  1979. package/dist/plugin-sdk/slack.js +0 -20
  1980. package/dist/plugin-sdk/speech-core.js +0 -4
  1981. package/dist/plugin-sdk/speech-runtime.js +0 -2
  1982. package/dist/plugin-sdk/speech.js +0 -5
  1983. package/dist/plugin-sdk/ssrf-runtime.js +0 -6
  1984. package/dist/plugin-sdk/state-paths.js +0 -3
  1985. package/dist/plugin-sdk/status-helpers.js +0 -4
  1986. package/dist/plugin-sdk/string-normalization-runtime.js +0 -3
  1987. package/dist/plugin-sdk/synthetic.js +0 -17
  1988. package/dist/plugin-sdk/telegram-account.js +0 -2
  1989. package/dist/plugin-sdk/telegram-allow-from.js +0 -12
  1990. package/dist/plugin-sdk/telegram-command-config.js +0 -3
  1991. package/dist/plugin-sdk/telegram-core.js +0 -18
  1992. package/dist/plugin-sdk/telegram-surface.js +0 -42
  1993. package/dist/plugin-sdk/temp-path.js +0 -4
  1994. package/dist/plugin-sdk/testing.js +0 -11
  1995. package/dist/plugin-sdk/text-runtime.js +0 -19
  1996. package/dist/plugin-sdk/thread-bindings-runtime.js +0 -4
  1997. package/dist/plugin-sdk/thread-ownership.js +0 -5
  1998. package/dist/plugin-sdk/tlon.js +0 -13
  1999. package/dist/plugin-sdk/together.js +0 -16
  2000. package/dist/plugin-sdk/tool-send.js +0 -2
  2001. package/dist/plugin-sdk/twitch.js +0 -8
  2002. package/dist/plugin-sdk/venice.js +0 -16
  2003. package/dist/plugin-sdk/vllm.js +0 -15
  2004. package/dist/plugin-sdk/voice-call.js +0 -7
  2005. package/dist/plugin-sdk/volcengine.js +0 -17
  2006. package/dist/plugin-sdk/web-media.js +0 -4
  2007. package/dist/plugin-sdk/webhook-ingress.js +0 -9
  2008. package/dist/plugin-sdk/webhook-path.js +0 -2
  2009. package/dist/plugin-sdk/webhook-request-guards.js +0 -3
  2010. package/dist/plugin-sdk/whatsapp-auth-presence.js +0 -2
  2011. package/dist/plugin-sdk/whatsapp-core.js +0 -11
  2012. package/dist/plugin-sdk/whatsapp-shared.js +0 -5
  2013. package/dist/plugin-sdk/whatsapp-surface.js +0 -2
  2014. package/dist/plugin-sdk/whatsapp-targets.js +0 -2
  2015. package/dist/plugin-sdk/windows-spawn.js +0 -2
  2016. package/dist/plugin-sdk/xai.js +0 -27
  2017. package/dist/plugin-sdk/zalo-setup.js +0 -2
  2018. package/dist/plugin-sdk/zalo.js +0 -38
  2019. package/dist/plugin-sdk/zalouser.js +0 -29
  2020. package/dist/plugin-sdk/zod.js +0 -3
  2021. package/dist/plugins/build-smoke-entry.js +0 -4
  2022. package/dist/plugins/provider-runtime.runtime.js +0 -2
  2023. package/dist/plugins/runtime/index.js +0 -2
  2024. package/dist/plugins/runtime/runtime-line.contract.js +0 -23
  2025. package/dist/plugins-DcjzAZWt.js +0 -5
  2026. package/dist/plugins-allowlist-DoZlIC4p.js +0 -14
  2027. package/dist/plugins-cli-G6GhHHD0.js +0 -561
  2028. package/dist/plugins-command-helpers-CIYzoC65.js +0 -116
  2029. package/dist/plugins-install-persist-C5-bJdRb.js +0 -121
  2030. package/dist/plugins-update-command-CsT_saJm.js +0 -974
  2031. package/dist/plugins-w6xUzHby.js +0 -40
  2032. package/dist/pluralkit-B_DWQnc5.js +0 -21
  2033. package/dist/pluralkit-Bez5QVFC.js +0 -2
  2034. package/dist/policy-D6OQdw73.js +0 -173
  2035. package/dist/policy-DXeeH8B2.js +0 -147
  2036. package/dist/poll-params-DTVSSuok.js +0 -52
  2037. package/dist/polls-CMmT0F_y.js +0 -35
  2038. package/dist/port-defaults-Dajs4Obu.js +0 -30
  2039. package/dist/ports-DuU-A86K.js +0 -262
  2040. package/dist/ports-ZA1n2It7.js +0 -432
  2041. package/dist/ports-lsof-Cw_6T7ru.js +0 -25
  2042. package/dist/ports-probe-DeuK48Pq.js +0 -14
  2043. package/dist/preflight-audio-DTSBExi8.js +0 -48
  2044. package/dist/preflight-audio.runtime-BJRLyBvf.js +0 -7
  2045. package/dist/preflight-audio.runtime.js +0 -1
  2046. package/dist/prepare-BQBndJUC.js +0 -1301
  2047. package/dist/probe-BO4hbHvs.js +0 -435
  2048. package/dist/probe-DPv2pfj5.js +0 -1868
  2049. package/dist/probe-DlO2Q9rN.js +0 -170
  2050. package/dist/probe-RbbTQOHx.js +0 -178
  2051. package/dist/probe-auth-Bl9MHtlP.js +0 -2
  2052. package/dist/probe-auth-CUfEH7di.js +0 -63
  2053. package/dist/probe-eYLpFww_.js +0 -137
  2054. package/dist/probe-kfBMuOWF.js +0 -2
  2055. package/dist/probe-wktb4WTP.js +0 -349
  2056. package/dist/probe.runtime-BhbUesak.js +0 -2
  2057. package/dist/probe.runtime.js +0 -1
  2058. package/dist/process-runtime-CBFMzhIk.js +0 -2
  2059. package/dist/process-scoped-map-C7IoOrV-.js +0 -61
  2060. package/dist/profile-B5n9yLlB.js +0 -2
  2061. package/dist/profile-CmsqnPsu.js +0 -107
  2062. package/dist/profile-update-D6f10CZk.js +0 -67
  2063. package/dist/profile-utils-C7uzTwgJ.js +0 -15
  2064. package/dist/profiles-BoNergZo.js +0 -79
  2065. package/dist/program-BuKG0Ntx.js +0 -158
  2066. package/dist/program-context-DDmlbmbl.js +0 -2
  2067. package/dist/program-context-DQOnR5c_.js +0 -10
  2068. package/dist/progress-DQvXYKne.js +0 -132
  2069. package/dist/prompt-COzf5LIJ.js +0 -2
  2070. package/dist/prompt-OSmU-o7R.js +0 -20
  2071. package/dist/prompt-select-styled-yYL3el77.js +0 -6432
  2072. package/dist/prompt-style-DekFM6h7.js +0 -7
  2073. package/dist/prompts-MtRTsZpw.js +0 -9
  2074. package/dist/prototype-keys-DrjhYNcz.js +0 -11
  2075. package/dist/provider-BWTXmDq3.js +0 -3685
  2076. package/dist/provider-BrmcrkEe.js +0 -70
  2077. package/dist/provider-ByBRbhW5.js +0 -7216
  2078. package/dist/provider-api-key-auth-BcyipSdy.js +0 -109
  2079. package/dist/provider-api-key-auth.runtime-BRu_8L4m.js +0 -14
  2080. package/dist/provider-api-key-auth.runtime.js +0 -1
  2081. package/dist/provider-attribution-DMVujx9B.js +0 -285
  2082. package/dist/provider-auth-DK2UmYsZ.js +0 -43
  2083. package/dist/provider-auth-api-key-99KxscjW.js +0 -5
  2084. package/dist/provider-auth-choice-GbHta8Bp.js +0 -134
  2085. package/dist/provider-auth-choice-helpers-CO2MnSGR.js +0 -58
  2086. package/dist/provider-auth-choice-preference-DvAqSMGK.js +0 -44
  2087. package/dist/provider-auth-choice.runtime-B8R63sLq.js +0 -14
  2088. package/dist/provider-auth-choice.runtime-DypTKgMQ.js +0 -2
  2089. package/dist/provider-auth-choice.runtime.js +0 -1
  2090. package/dist/provider-auth-choices-n-JV1XgU.js +0 -65
  2091. package/dist/provider-auth-guidance-DAB9sGGR.js +0 -35
  2092. package/dist/provider-auth-helpers-gmTAji1W.js +0 -92
  2093. package/dist/provider-auth-input-GgY_tjJh.js +0 -116
  2094. package/dist/provider-auth-login-BYbccnB1.js +0 -8
  2095. package/dist/provider-auth-login.runtime-DnSxCwqU.js +0 -196
  2096. package/dist/provider-auth-login.runtime.js +0 -1
  2097. package/dist/provider-auth-mode-Dbja5LLX.js +0 -20
  2098. package/dist/provider-auth-ref-BErMfwCd.js +0 -171
  2099. package/dist/provider-auth-ref-DEF_hE2R.js +0 -2
  2100. package/dist/provider-auth-result-DiUxDF1G.js +0 -31
  2101. package/dist/provider-auth-runtime-BwMq9oMD.js +0 -32
  2102. package/dist/provider-catalog--Qc0q0I-.js +0 -26
  2103. package/dist/provider-catalog-A_s8JQaq.js +0 -18
  2104. package/dist/provider-catalog-B-EcLvBI.js +0 -11
  2105. package/dist/provider-catalog-Bte-HucL.js +0 -44
  2106. package/dist/provider-catalog-C63Rfat7.js +0 -11
  2107. package/dist/provider-catalog-C7q0Vb3S.js +0 -95
  2108. package/dist/provider-catalog-CCnuf8d3.js +0 -49
  2109. package/dist/provider-catalog-CYQ7k_Db.js +0 -48
  2110. package/dist/provider-catalog-CnlB2mMZ.js +0 -11
  2111. package/dist/provider-catalog-CoyAbDZX.js +0 -56
  2112. package/dist/provider-catalog-CtqhFopw.js +0 -48
  2113. package/dist/provider-catalog-CyGxB_aR.js +0 -18
  2114. package/dist/provider-catalog-D1pmWiDQ.js +0 -48
  2115. package/dist/provider-catalog-DGgsalJv.js +0 -12
  2116. package/dist/provider-catalog-DLdTTMmW.js +0 -11
  2117. package/dist/provider-catalog-DZzX7Vwk.js +0 -54
  2118. package/dist/provider-catalog-J2dZciKS.js +0 -11
  2119. package/dist/provider-catalog-LVrcrz-W.js +0 -36
  2120. package/dist/provider-catalog-aIN0QojF.js +0 -11
  2121. package/dist/provider-catalog-shared-Db9nbr1B.js +0 -28
  2122. package/dist/provider-discovery.runtime-BCUAsMMz.js +0 -10
  2123. package/dist/provider-discovery.runtime.js +0 -1
  2124. package/dist/provider-dispatcher-COxXbow_.js +0 -22
  2125. package/dist/provider-entry-CT_YeII_.js +0 -86
  2126. package/dist/provider-env-vars-4Bon7Y2X.js +0 -121
  2127. package/dist/provider-env-vars-Np7qkDjC.js +0 -2
  2128. package/dist/provider-flow-Dlg1GcXQ.js +0 -93
  2129. package/dist/provider-http-DQQ317hc.js +0 -3
  2130. package/dist/provider-id-CHzLB538.js +0 -30
  2131. package/dist/provider-model-defaults-dSPzPas0.js +0 -5
  2132. package/dist/provider-model-primary-D8SgLcOd.js +0 -26
  2133. package/dist/provider-model-shared-GO1WT2fY.js +0 -104
  2134. package/dist/provider-models-BG8YwJaY.js +0 -117
  2135. package/dist/provider-models-BVVCdM8F.js +0 -22
  2136. package/dist/provider-models-D2UZvTo3.js +0 -46
  2137. package/dist/provider-moonshot-Cl8urWHL.js +0 -2
  2138. package/dist/provider-oauth-flow-Bu2gIeX6.js +0 -33
  2139. package/dist/provider-onboard-CTEHTjfw.js +0 -264
  2140. package/dist/provider-openai-codex-oauth-tls-DdLUDuIM.js +0 -101
  2141. package/dist/provider-registry-Ljtt6CKE.js +0 -49
  2142. package/dist/provider-request-config-CIrbwAnR.js +0 -209
  2143. package/dist/provider-runtime-BBFXlsU0.js +0 -2
  2144. package/dist/provider-runtime-D_itmv9t.js +0 -291
  2145. package/dist/provider-runtime.runtime-B_oC992d.js +0 -26
  2146. package/dist/provider-runtime.runtime.js +0 -1
  2147. package/dist/provider-self-hosted-setup-BlNrSREL.js +0 -272
  2148. package/dist/provider-session.runtime-DQyRV-t3.js +0 -7
  2149. package/dist/provider-session.runtime.js +0 -1
  2150. package/dist/provider-setup-CSrOyU04.js +0 -2
  2151. package/dist/provider-stream-m5D8QZPz.js +0 -289
  2152. package/dist/provider-tools-NuJzTqa1.js +0 -37
  2153. package/dist/provider-usage-BB5mQ8Fg.js +0 -3
  2154. package/dist/provider-usage-CbPs3eFQ.js +0 -2
  2155. package/dist/provider-usage-DG1gff_M.js +0 -375
  2156. package/dist/provider-usage.fetch-DHWQ4YZu.js +0 -633
  2157. package/dist/provider-web-fetch-QzED2vth.js +0 -5
  2158. package/dist/provider-web-search-CVMEZcl8.js +0 -306
  2159. package/dist/provider-wizard-B0ocsg3q.js +0 -209
  2160. package/dist/provider-zai-endpoint-DoIy5HQf.js +0 -116
  2161. package/dist/provider.runtime-jHt6447e.js +0 -2
  2162. package/dist/provider.runtime.js +0 -1
  2163. package/dist/providers-DUy2TaM-.js +0 -59
  2164. package/dist/providers.runtime-Bz0X8DZ2.js +0 -60
  2165. package/dist/providers.runtime.js +0 -1
  2166. package/dist/proxy-env-D4H9qI5l.js +0 -40
  2167. package/dist/proxy-fetch-DiyTLcAR.js +0 -55
  2168. package/dist/proxy-hcRRmsDd.js +0 -121
  2169. package/dist/pw-ai-Cp64-UGh.js +0 -2037
  2170. package/dist/qmd-manager-D2rMomsU.js +0 -1740
  2171. package/dist/qr-cli-DuANCi-n.js +0 -2
  2172. package/dist/qr-cli-lr5CcLr8.js +0 -367
  2173. package/dist/qr-image-DOcoqAUw.js +0 -2
  2174. package/dist/query-expansion-85HlYbKD.js +0 -633
  2175. package/dist/queue-CtO0M_P1.js +0 -663
  2176. package/dist/reaction-runtime-api-B4KmfKtJ.js +0 -114
  2177. package/dist/reactions-5N2KSGJ2.js +0 -258
  2178. package/dist/read-only-account-inspect-Y_ijOKJ3.js +0 -9
  2179. package/dist/read-only-account-inspect.telegram-BSjjDWnM.js +0 -202
  2180. package/dist/reasoning-tags-CAmbBXLr.js +0 -77
  2181. package/dist/recovery-key-store-DqgdfMc7.js +0 -283
  2182. package/dist/redact-BDinS1q9.js +0 -102
  2183. package/dist/redact-identifier-S69DDJn1.js +0 -13
  2184. package/dist/redact-sensitive-url-CAJSZ_7g.js +0 -50
  2185. package/dist/redirect-headers-CGxONG_L.js +0 -25
  2186. package/dist/ref-contract-CC5BLDoS.js +0 -53
  2187. package/dist/region-BFGEM88n.js +0 -62
  2188. package/dist/register-lazy-command-D6EEI-zz.js +0 -43
  2189. package/dist/register.agent-D1eKwVU7.js +0 -239
  2190. package/dist/register.backup-S8hwHpZL.js +0 -236
  2191. package/dist/register.configure-CJrQ3u9y.js +0 -15
  2192. package/dist/register.maintenance-BrKWl7_D.js +0 -449
  2193. package/dist/register.message-BCWJfH2h.js +0 -642
  2194. package/dist/register.onboard-zzNq0pJS.js +0 -79
  2195. package/dist/register.setup-BLQwDKzc.js +0 -104
  2196. package/dist/register.status-health-sessions-B4TUEudf.js +0 -1206
  2197. package/dist/register.subclis-B0pG22H2.js +0 -295
  2198. package/dist/register.subclis-BEM0mzJb.js +0 -3
  2199. package/dist/registry-ByjnKj3u.js +0 -219
  2200. package/dist/registry-CuFNdbH5.js +0 -60
  2201. package/dist/registry-DvqOrcbF.js +0 -675
  2202. package/dist/registry-mVzzlPf7.js +0 -50
  2203. package/dist/repair-IMBZnz-L.js +0 -112
  2204. package/dist/replies-BCoZ2HxY.js +0 -118
  2205. package/dist/reply-D8bUQd-Q.js +0 -3176
  2206. package/dist/reply-blocks-CjCUTZru.js +0 -103
  2207. package/dist/reply-chunking-CxFd5izq.js +0 -3
  2208. package/dist/reply-dispatch-runtime-Bk9RDzB9.js +0 -3
  2209. package/dist/reply-history-DtTaPEgt.js +0 -2
  2210. package/dist/reply-payload-CRYI4jIB.js +0 -232
  2211. package/dist/reply-payloads-CQXH7ury.js +0 -116
  2212. package/dist/reply-payloads-dedupe-BKObDjVe.js +0 -135
  2213. package/dist/reply-payloads-dedupe.runtime-SbVNMvEs.js +0 -2
  2214. package/dist/reply-payloads-dedupe.runtime.js +0 -1
  2215. package/dist/reply-prefix-Eema_xXG.js +0 -39
  2216. package/dist/reply-runtime-DUrpJTzu.js +0 -123
  2217. package/dist/reply.runtime-Cdb_6NI1.js +0 -2
  2218. package/dist/reply.runtime.js +0 -1
  2219. package/dist/request-url-B8k-YRRH.js +0 -10
  2220. package/dist/resolve-C3pJ2gj_.js +0 -174
  2221. package/dist/resolve-C_pCWwC0.js +0 -619
  2222. package/dist/resolve-allowlist-HrJ_3icS.js +0 -147
  2223. package/dist/resolve-cbCi7mbs.js +0 -2
  2224. package/dist/resolve-channels-BTyErRev.js +0 -226
  2225. package/dist/resolve-channels-DvV-fUQv.js +0 -263
  2226. package/dist/resolve-configured-secret-input-string-BasQGOd9.js +0 -112
  2227. package/dist/resolve-route-EE8E7OAF.js +0 -486
  2228. package/dist/resolve-system-bin-TC907QYo.js +0 -120
  2229. package/dist/resolve-targets-B1MvBWpT.js +0 -280
  2230. package/dist/resolve-users-BfVoBZG_.js +0 -145
  2231. package/dist/resolve-utils-ClmKSkEQ.js +0 -102
  2232. package/dist/response-generator-ACP21F1j.js +0 -153
  2233. package/dist/response-prefix-template-Cp4tg6Qw.js +0 -50
  2234. package/dist/restart-sentinel-B3EigRIb.js +0 -70
  2235. package/dist/restart-stale-pids-dsB3eE6_.js +0 -187
  2236. package/dist/retry-CIAqcw7C.js +0 -76
  2237. package/dist/retry-policy-BJ5Q68It.js +0 -58
  2238. package/dist/retry-runtime-Cbu5zDnX.js +0 -3
  2239. package/dist/rooms-B1IyUfuR.js +0 -325
  2240. package/dist/root-help-Bwa-vlhy.js +0 -53
  2241. package/dist/route-reply-bC07YRDb.js +0 -133
  2242. package/dist/route-reply.runtime-dS2XMwkv.js +0 -2
  2243. package/dist/route-reply.runtime.js +0 -1
  2244. package/dist/route-resolution-DQHmIfWN.js +0 -461
  2245. package/dist/routes-CWXihJFR.js +0 -6884
  2246. package/dist/routing-BVt9nMN-.js +0 -16
  2247. package/dist/rpc-5eaI-FsF.js +0 -67
  2248. package/dist/rpc-context-Dimdo4io.js +0 -155
  2249. package/dist/run-command-2jxKF1a6.js +0 -32
  2250. package/dist/run-main-BKeNUaXq.js +0 -425
  2251. package/dist/run-with-concurrency-DGLkItan.js +0 -41
  2252. package/dist/runner-COmi-bB0.js +0 -1479
  2253. package/dist/runs-CX-70k4f.js +0 -616
  2254. package/dist/runtime-1phb9iVo.js +0 -6
  2255. package/dist/runtime-B8hqEtu6.js +0 -181
  2256. package/dist/runtime-BpHrcXgA.js +0 -5
  2257. package/dist/runtime-BscSIjIL.js +0 -126
  2258. package/dist/runtime-C8qvwPYG.js +0 -286
  2259. package/dist/runtime-CBX_rq4O.js +0 -18
  2260. package/dist/runtime-CC1YDOst.js +0 -5
  2261. package/dist/runtime-CIE7xJwu.js +0 -5
  2262. package/dist/runtime-CNZi_czi.js +0 -42
  2263. package/dist/runtime-CPw-0dWW.js +0 -5
  2264. package/dist/runtime-DXdxDbJm.js +0 -102
  2265. package/dist/runtime-DofOSZ5U.js +0 -2153
  2266. package/dist/runtime-api-B4Zb5p1_.js +0 -2
  2267. package/dist/runtime-api-BB2RZPnq.js +0 -2
  2268. package/dist/runtime-api-BJnw1_pK.js +0 -2
  2269. package/dist/runtime-api-BTf2rLCn.js +0 -2
  2270. package/dist/runtime-api-BTgAUySz.js +0 -2
  2271. package/dist/runtime-api-BVftCkYc.js +0 -2484
  2272. package/dist/runtime-api-BWaVsvsK.js +0 -14
  2273. package/dist/runtime-api-BXlE282E.js +0 -2
  2274. package/dist/runtime-api-Ba7wWBWO.js +0 -1
  2275. package/dist/runtime-api-BfZqvwkY.js +0 -2
  2276. package/dist/runtime-api-Bja3afzd.js +0 -3676
  2277. package/dist/runtime-api-C7cX3f2r.js +0 -2
  2278. package/dist/runtime-api-CCKblcQO.js +0 -81
  2279. package/dist/runtime-api-CEmQSooZ.js +0 -2
  2280. package/dist/runtime-api-CWQMIahu.js +0 -241
  2281. package/dist/runtime-api-Ch1E1gvT.js +0 -2
  2282. package/dist/runtime-api-CjgyJEjn.js +0 -2
  2283. package/dist/runtime-api-CuqnElJG.js +0 -3
  2284. package/dist/runtime-api-DOyNJNHi.js +0 -2
  2285. package/dist/runtime-api-DUbp7oPz.js +0 -2
  2286. package/dist/runtime-api-DZDDizAj.js +0 -1
  2287. package/dist/runtime-api-DZcQIyI0.js +0 -1
  2288. package/dist/runtime-api-Di-XE7J4.js +0 -3
  2289. package/dist/runtime-api-Dq7rdsm6.js +0 -2
  2290. package/dist/runtime-api-DxO7sIvA.js +0 -120
  2291. package/dist/runtime-api-Dzz1aWyq.js +0 -29
  2292. package/dist/runtime-api-_dg5Me1l.js +0 -2
  2293. package/dist/runtime-config-snapshot-DqWNFIej.js +0 -2
  2294. package/dist/runtime-d8L2hZ57.js +0 -5
  2295. package/dist/runtime-discord-ops.runtime-C2o0995d.js +0 -25
  2296. package/dist/runtime-discord-ops.runtime.js +0 -1
  2297. package/dist/runtime-embedded-pi.runtime-Bk8vHdbc.js +0 -2
  2298. package/dist/runtime-embedded-pi.runtime.js +0 -1
  2299. package/dist/runtime-entry-BypP0hpR.js +0 -4925
  2300. package/dist/runtime-env-SHKgcATc.js +0 -9
  2301. package/dist/runtime-forwarders-ev8FdVyV.js +0 -44
  2302. package/dist/runtime-group-policy-DXJJCWpk.js +0 -1
  2303. package/dist/runtime-group-policy-zTp8fKRK.js +0 -59
  2304. package/dist/runtime-guard-78ESz4Qy.js +0 -70
  2305. package/dist/runtime-kS8e4c6-.js +0 -125
  2306. package/dist/runtime-media-understanding.runtime-CpPWzWdQ.js +0 -2
  2307. package/dist/runtime-media-understanding.runtime.js +0 -1
  2308. package/dist/runtime-model-auth.runtime-1Gsp1j1n.js +0 -2
  2309. package/dist/runtime-model-auth.runtime.js +0 -1
  2310. package/dist/runtime-parse-vvG9x7Ps.js +0 -83
  2311. package/dist/runtime-paths-NiQSNveu.js +0 -305
  2312. package/dist/runtime-plugin-boundary-CzRNh2jW.js +0 -65
  2313. package/dist/runtime-schema-uKXWjWrD.js +0 -14440
  2314. package/dist/runtime-slack-ops.runtime-MQwSRdp3.js +0 -15
  2315. package/dist/runtime-slack-ops.runtime.js +0 -1
  2316. package/dist/runtime-status-2omGgKaM.js +0 -109
  2317. package/dist/runtime-status-Cc383GkB.js +0 -15
  2318. package/dist/runtime-store-CT3yRBe_.js +0 -22
  2319. package/dist/runtime-tts.runtime-DTfPYn3H.js +0 -2
  2320. package/dist/runtime-tts.runtime.js +0 -1
  2321. package/dist/runtime-uvckmk15.js +0 -68
  2322. package/dist/runtime-web-tools-Cf6BXnCm.js +0 -2042
  2323. package/dist/runtime-whatsapp-boundary-Bs8RrKxP.js +0 -139
  2324. package/dist/runtime-whatsapp-boundary-C5mx67ac.js +0 -2
  2325. package/dist/safe-regex-tLlDZYfM.js +0 -244
  2326. package/dist/safe-text-DhIQbZid.js +0 -16
  2327. package/dist/sandbox-DkZ4-LBj.js +0 -4
  2328. package/dist/sandbox-cli-Cho_k3dA.js +0 -443
  2329. package/dist/sandbox-f4-hZNCj.js +0 -2710
  2330. package/dist/sandbox-paths-Br54mtAJ.js +0 -146
  2331. package/dist/sanitize-env-vars-BpNLWkzd.js +0 -82
  2332. package/dist/scan-paths-Bln7l19-.js +0 -28
  2333. package/dist/schema-validator-DofqBvJi.js +0 -176
  2334. package/dist/scoped-expiring-id-cache-C8wyKEV-.js +0 -35
  2335. package/dist/scp-host-B9NPcVwn.js +0 -62
  2336. package/dist/sdk-Ba91_ru8.js +0 -1108
  2337. package/dist/searxng-search-provider-CUEJoeaQ.js +0 -220
  2338. package/dist/secret-equal-fMR1DjSl.js +0 -9
  2339. package/dist/secret-file-BNKBIds0.js +0 -11
  2340. package/dist/secret-file-DwDmPLSX.js +0 -92
  2341. package/dist/secret-input-4MqmO__N.js +0 -13
  2342. package/dist/secret-input-Bqf5ho4v.js +0 -38
  2343. package/dist/secret-input-DyzcNLLY.js +0 -2
  2344. package/dist/secrets-cli-DAP4hi4r.js +0 -2112
  2345. package/dist/secure-random-Diy9rj1m.js +0 -20
  2346. package/dist/security-cli-2WQVKZ3w.js +0 -477
  2347. package/dist/security-runtime-BSQDlFPi.js +0 -55
  2348. package/dist/semver-compare-DkYCMcwG.js +0 -53
  2349. package/dist/send--GwzHbbI.js +0 -100
  2350. package/dist/send-4ZItW1GB.js +0 -3
  2351. package/dist/send-B1YVZR_q.js +0 -1076
  2352. package/dist/send-B6AgLKhw.js +0 -178
  2353. package/dist/send-CAosrV3E.js +0 -2
  2354. package/dist/send-CTHiX-WN.js +0 -442
  2355. package/dist/send-CywIIzow.js +0 -318
  2356. package/dist/send-DZ2VaVTD.js +0 -856
  2357. package/dist/send-deps-Cuc-dTy5.js +0 -19
  2358. package/dist/send-policy-Dz5lteoO.js +0 -60
  2359. package/dist/send-q09VUMe3.js +0 -532
  2360. package/dist/send.components-Cbi5ixnJ.js +0 -844
  2361. package/dist/send.components-dLe6ppiS.js +0 -2
  2362. package/dist/server-BRW1HQ2M.js +0 -67
  2363. package/dist/server-Clq20rV8.js +0 -27990
  2364. package/dist/server-middleware-Ubw3OFd1.js +0 -108
  2365. package/dist/server-node-events-kgWhdE2I.js +0 -454
  2366. package/dist/server-startup-matrix-migration-DJZgJiUa.js +0 -1348
  2367. package/dist/service-2O78fADl.js +0 -867
  2368. package/dist/service-BCUDr0mF.js +0 -2
  2369. package/dist/session-BIwHn1FL.js +0 -137
  2370. package/dist/session-BJudz6Rb.js +0 -50
  2371. package/dist/session-archive.runtime-8FrIp7MP.js +0 -2
  2372. package/dist/session-archive.runtime.js +0 -1
  2373. package/dist/session-binding-service-D7bUc7mS.js +0 -421
  2374. package/dist/session-context-DbS6R7x0.js +0 -23
  2375. package/dist/session-conversation-5Z-WApq_.js +0 -15
  2376. package/dist/session-conversation-BC-SPGma.js +0 -135
  2377. package/dist/session-conversation-D-Olnomz.js +0 -27
  2378. package/dist/session-cost-usage-5iS5N1Rs.js +0 -651
  2379. package/dist/session-cost-usage-ibiGeH7Z.js +0 -2
  2380. package/dist/session-envelope-RE_1D3fZ.js +0 -18
  2381. package/dist/session-errors-CoC2qhLC.js +0 -63
  2382. package/dist/session-file-CnTnoAyl.js +0 -120
  2383. package/dist/session-fork.runtime-Bb9nNLwX.js +0 -50
  2384. package/dist/session-fork.runtime.js +0 -1
  2385. package/dist/session-hooks-D4zcaOKV.js +0 -109
  2386. package/dist/session-key-CQMUjsSp.js +0 -52
  2387. package/dist/session-key-Do__tq1E.js +0 -279
  2388. package/dist/session-key-normalization-BamCBtxj.js +0 -22
  2389. package/dist/session-override-CHm5auQy.js +0 -100
  2390. package/dist/session-reset-model.runtime-DD5SooaH.js +0 -119
  2391. package/dist/session-reset-model.runtime.js +0 -1
  2392. package/dist/session-route-O1Pb7Oid.js +0 -91
  2393. package/dist/session-store-runtime-ePmbOWO1.js +0 -2
  2394. package/dist/session-subagent-reactivation.runtime-BwUDVflj.js +0 -2
  2395. package/dist/session-subagent-reactivation.runtime.js +0 -1
  2396. package/dist/session-transcript-files.fs-CyBs2u56.js +0 -149
  2397. package/dist/session-updates-C33bkLCm.js +0 -222
  2398. package/dist/session-updates.runtime-BHLQJ71D.js +0 -2
  2399. package/dist/session-updates.runtime.js +0 -1
  2400. package/dist/session-utils-C0HJP9m_.js +0 -1743
  2401. package/dist/session-write-lock-C7svKLqX.js +0 -343
  2402. package/dist/sessions-CkaONOVi.js +0 -224
  2403. package/dist/sessions-Dqj9fL_x.js +0 -2
  2404. package/dist/sessions-j2hbBGOS.js +0 -443
  2405. package/dist/setup-0GrDtpRN.js +0 -427
  2406. package/dist/setup-BrOJEPVN.js +0 -15
  2407. package/dist/setup-adapter-runtime-CyIIvoms.js +0 -2
  2408. package/dist/setup-api-1P88M5pV.js +0 -2
  2409. package/dist/setup-binary-CXmsVXWb.js +0 -2
  2410. package/dist/setup-bootstrap-QdrIAyis.js +0 -54
  2411. package/dist/setup-core-BqPbreVF.js +0 -256
  2412. package/dist/setup-core-CFzSqpD7.js +0 -256
  2413. package/dist/setup-core-DJHWTJKX.js +0 -383
  2414. package/dist/setup-core-DT1fK9yD.js +0 -146
  2415. package/dist/setup-core-kjYyNYvv.js +0 -48
  2416. package/dist/setup-core-t03VZdcn.js +0 -160
  2417. package/dist/setup-group-access-BQbnTk8B.js +0 -70
  2418. package/dist/setup-helpers-0yWIq2cW.js +0 -390
  2419. package/dist/setup-runtime-BChXvJOO.js +0 -4
  2420. package/dist/setup-surface-B8loJ-nJ.js +0 -272
  2421. package/dist/setup-surface-BKizDP2g.js +0 -237
  2422. package/dist/setup-surface-BOd4V0w5.js +0 -261
  2423. package/dist/setup-surface-BaLQtvFW.js +0 -353
  2424. package/dist/setup-surface-Bha7U86Z.js +0 -72
  2425. package/dist/setup-surface-BkHkduRm.js +0 -450
  2426. package/dist/setup-surface-CDfudYpT2.js +0 -261
  2427. package/dist/setup-surface-CT-Erp53.js +0 -346
  2428. package/dist/setup-surface-Co1jSLDk.js +0 -656
  2429. package/dist/setup-surface-D0joW4q1.js +0 -333
  2430. package/dist/setup-surface-D9rWJb4Z.js +0 -1447
  2431. package/dist/setup-surface-D_CJfyJ1.js +0 -381
  2432. package/dist/setup-surface-DbVJ8CAj.js +0 -484
  2433. package/dist/setup-surface-Di1q12ha.js +0 -97
  2434. package/dist/setup-surface-LWupQ_eL.js +0 -304
  2435. package/dist/setup-tools-Cb6PLN3L.js +0 -4
  2436. package/dist/setup-wizard-helpers-CA5yiprq.js +0 -841
  2437. package/dist/setup-wizard-proxy-bmMo6OPA.js +0 -127
  2438. package/dist/setup.finalize-DvGlwfbU.js +0 -443
  2439. package/dist/setup.gateway-config-D_eSo_Jz.js +0 -246
  2440. package/dist/setup.secret-input-BAQnay16.js +0 -25
  2441. package/dist/shared-1nXP7RAM.js +0 -78
  2442. package/dist/shared-6u4-kP5J.js +0 -221
  2443. package/dist/shared-BnSR7joQ.js +0 -144
  2444. package/dist/shared-BsLpgVLV.js +0 -37
  2445. package/dist/shared-C-PSF7Rv.js +0 -64
  2446. package/dist/shared-C1MrVu4M.js +0 -180
  2447. package/dist/shared-CA8QQ_O5.js +0 -94
  2448. package/dist/shared-CCV62W5K.js +0 -2
  2449. package/dist/shared-CHJjz6Zz.js +0 -72
  2450. package/dist/shared-CK49TKED.js +0 -50
  2451. package/dist/shared-CL7I4ij0.js +0 -160
  2452. package/dist/shared-Cr7ijuS4.js +0 -198
  2453. package/dist/shared-D61IX915.js +0 -10
  2454. package/dist/shared-Dr9OQu4c.js +0 -64
  2455. package/dist/shared-DwxV-O-g.js +0 -136
  2456. package/dist/shared-dWHdeoyy.js +0 -126
  2457. package/dist/shared-runtime-yV5uP0IO.js +0 -7
  2458. package/dist/shell-argv-B9p91CMW.js +0 -72
  2459. package/dist/shell-env-BTztt4a1.js +0 -181
  2460. package/dist/signal-B1kD3iF3.js +0 -46
  2461. package/dist/signal-DP8FUJOa.js +0 -6
  2462. package/dist/signal-Dvmeol77.js +0 -13
  2463. package/dist/signal-account-CYKnyxZK.js +0 -11
  2464. package/dist/signal-cli-install-DcmsRDbB.js +0 -188
  2465. package/dist/signal-surface-AbofIH7s.js +0 -21
  2466. package/dist/simple-completion-transport-Dl5DzRWP.js +0 -24
  2467. package/dist/skill-commands-CH4lfyW8.js +0 -77
  2468. package/dist/skill-commands-base-CvVjZByy.js +0 -60
  2469. package/dist/skill-commands-runtime-zpWkVBay.js +0 -2
  2470. package/dist/skill-commands.runtime-BKa5oyH-.js +0 -2
  2471. package/dist/skill-commands.runtime.js +0 -1
  2472. package/dist/skill-scanner-bqroDZTs.js +0 -354
  2473. package/dist/skills-D0K7gu2V.js +0 -972
  2474. package/dist/skills-DFTLIGCd.js +0 -4
  2475. package/dist/skills-clawhub-KJGw0uGT.js +0 -274
  2476. package/dist/skills-cli-DziAPxba.js +0 -369
  2477. package/dist/skills-install-CQeO3Sll.js +0 -819
  2478. package/dist/skills-remote-BojLLDxp.js +0 -584
  2479. package/dist/skills-status-BINZ_svK.js +0 -2
  2480. package/dist/skills-status-CdQUttuP.js +0 -170
  2481. package/dist/slack-BuMSbx3k.js +0 -6
  2482. package/dist/slack-DMg3O5YT.js +0 -9
  2483. package/dist/slack-account-LEbfbXys.js +0 -11
  2484. package/dist/slack-core-oqCiyGw8.js +0 -4
  2485. package/dist/slack-runtime-surface-CyaeT7yk.js +0 -18
  2486. package/dist/slack-surface-1yTIS5Q8.js +0 -44
  2487. package/dist/slack-target-parser-CruIJ5w5.js +0 -12
  2488. package/dist/slack-targets-ukxuKR1I.js +0 -45
  2489. package/dist/slash-commands-CRuXC74L.js +0 -672
  2490. package/dist/slash-commands.runtime-F6b9KUnh.js +0 -20
  2491. package/dist/slash-commands.runtime.js +0 -1
  2492. package/dist/slash-dispatch.runtime-CItGyoBF.js +0 -38
  2493. package/dist/slash-dispatch.runtime.js +0 -1
  2494. package/dist/slash-skill-commands.runtime-Caw0oNvV.js +0 -8
  2495. package/dist/slash-skill-commands.runtime.js +0 -1
  2496. package/dist/slots-Dq-2eIRb.js +0 -93
  2497. package/dist/speech-Ceb4ISD4.js +0 -46
  2498. package/dist/speech-provider-BHjDbut-.js +0 -190
  2499. package/dist/speech-provider-D45m9grJ.js +0 -154
  2500. package/dist/speech-provider-DM1ZXsz2.js +0 -385
  2501. package/dist/speech-runtime-CNvOkPw4.js +0 -34
  2502. package/dist/src-Dn1TYXp6.js +0 -2739
  2503. package/dist/ssh-config-C1ipLHgq.js +0 -77
  2504. package/dist/ssh-tunnel-BwMCLc2e.js +0 -159
  2505. package/dist/ssh-tunnel-D5YdH2SQ.js +0 -2
  2506. package/dist/ssrf-Duye12M_.js +0 -246
  2507. package/dist/ssrf-policy-5L7qS2kK.js +0 -69
  2508. package/dist/ssrf-runtime-bpDM5Bgo.js +0 -5
  2509. package/dist/stable-node-path-n7TARbHZ.js +0 -32
  2510. package/dist/stage-sandbox-media.runtime-Tlgx4F6M.js +0 -229
  2511. package/dist/stage-sandbox-media.runtime.js +0 -1
  2512. package/dist/stagger-Cs-6sySM.js +0 -54
  2513. package/dist/startup-verification-DS8Rlwfj.js +0 -131
  2514. package/dist/state-migrations-ssGF0Trg.js +0 -845
  2515. package/dist/state-paths-LoYjHd5L.js +0 -2
  2516. package/dist/status-B7yRr4OV.js +0 -3
  2517. package/dist/status-BM1Lyqo6.js +0 -261
  2518. package/dist/status-BekOC_tW.js +0 -650
  2519. package/dist/status-CxodlqzZ.js +0 -2
  2520. package/dist/status-DHbl5eIj.js +0 -608
  2521. package/dist/status-PsQV2sfU.js +0 -44
  2522. package/dist/status-all-C53a3881.js +0 -798
  2523. package/dist/status-helpers-CCJSSrVJ.js +0 -170
  2524. package/dist/status-issues-M-RUxHvm.js +0 -336
  2525. package/dist/status-issues-qWKbW6r2.js +0 -187
  2526. package/dist/status-json-B66tF12J.js +0 -86
  2527. package/dist/status.agent-local-B8Sw_p6M.js +0 -59
  2528. package/dist/status.command.text-runtime-csZS5yHm.js +0 -18
  2529. package/dist/status.daemon-D0GzvHft.js +0 -25
  2530. package/dist/status.format-C1VNrTBi.js +0 -44
  2531. package/dist/status.gateway-probe-4INUEsUo.js +0 -15
  2532. package/dist/status.link-channel-CJtR5UX6.js +0 -35
  2533. package/dist/status.node-mode-Bva3wbBI.js +0 -2
  2534. package/dist/status.node-mode-CneoXHPW.js +0 -32
  2535. package/dist/status.scan-t1kfm4e0.js +0 -264
  2536. package/dist/status.scan.deps.runtime-CCaTJlzV.js +0 -18
  2537. package/dist/status.scan.deps.runtime.js +0 -1
  2538. package/dist/status.scan.fast-json-DmzN3HuU.js +0 -97
  2539. package/dist/status.scan.fast-json-gu6uL_BR.js +0 -2
  2540. package/dist/status.scan.json-core-JjMIy9YZ.js +0 -254
  2541. package/dist/status.scan.runtime-r_5mTC8f.js +0 -9
  2542. package/dist/status.scan.runtime.js +0 -1
  2543. package/dist/status.service-summary-DnbDBXMs.js +0 -32
  2544. package/dist/status.summary-CbEhZE0h.js +0 -210
  2545. package/dist/status.summary-SLm6uT22.js +0 -2
  2546. package/dist/status.update-Bw9CvcCc.js +0 -2
  2547. package/dist/status.update-CLnevxJb.js +0 -79
  2548. package/dist/sticker-cache-C_FrWgaA.js +0 -1573
  2549. package/dist/sticker-vision.runtime-DR7e08nD.js +0 -16
  2550. package/dist/sticker-vision.runtime.js +0 -1
  2551. package/dist/storage-CPQLpmgN.js +0 -234
  2552. package/dist/storage-paths-DvC4vQo1.js +0 -51
  2553. package/dist/store-8ONMiMTI.js +0 -365
  2554. package/dist/store-DQJZr0Yf.js +0 -767
  2555. package/dist/store-Dxcm2vsw.js +0 -140
  2556. package/dist/store-_OZh8RrM.js +0 -1343
  2557. package/dist/store-read-JHUhrL0Z.js +0 -16
  2558. package/dist/store.runtime-Dmqv-8M7.js +0 -2
  2559. package/dist/store.runtime.js +0 -1
  2560. package/dist/stream-CGrFe0j0.js +0 -123
  2561. package/dist/stream-D9HOuZmn.js +0 -633
  2562. package/dist/stream-Di_JOWoE.js +0 -180
  2563. package/dist/stream-wrappers-D-DlMIYG.js +0 -136
  2564. package/dist/string-normalization-Ddc4JXRe.js +0 -19
  2565. package/dist/string-normalization-runtime-CCsvs1ds.js +0 -1
  2566. package/dist/string-sample-BIWt11jp.js +0 -11
  2567. package/dist/strip-inbound-meta-DvHTlpJG.js +0 -155
  2568. package/dist/subagent-orphan-recovery-Do8Az2RD.js +0 -206
  2569. package/dist/subagent-registry-runtime-D5PNyCsh.js +0 -2
  2570. package/dist/subcli-descriptors-Dasenv4J.js +0 -151
  2571. package/dist/subsystem-C9VSlEcV.js +0 -582
  2572. package/dist/supervisor-log.runtime-CZe76kAj.js +0 -8
  2573. package/dist/supervisor-log.runtime.js +0 -1
  2574. package/dist/system-cli-2-HDh_Ev.js +0 -58
  2575. package/dist/system-events-5SDw3lix.js +0 -93
  2576. package/dist/system-events-BuGmSpuG.js +0 -34
  2577. package/dist/system-message-0oem5MWV.js +0 -16
  2578. package/dist/system-run-command-BmlO5dn2.js +0 -301
  2579. package/dist/systemd-B2HBHMpF.js +0 -588
  2580. package/dist/systemd-hints-DkRlAuPR.js +0 -325
  2581. package/dist/systemd-linger-BBPBJSm0.js +0 -68
  2582. package/dist/systemd-linger-DiWO9n2E.js +0 -2
  2583. package/dist/table-CY2XIg3l.js +0 -305
  2584. package/dist/tables-D6qL6k4d.js +0 -832
  2585. package/dist/tailnet-CZMxMuGK.js +0 -76
  2586. package/dist/tailscale-mpS_cTve.js +0 -238
  2587. package/dist/tailscale-status-Dg2Iov5f.js +0 -71
  2588. package/dist/target-errors-ThNFqo8X.js +0 -26
  2589. package/dist/target-ids-O3O6piTN.js +0 -76
  2590. package/dist/target-parsing-Boyj_2v0.js +0 -41
  2591. package/dist/target-registry-BHJcVSo1.js +0 -1269
  2592. package/dist/targets-C7I_wjs2.js +0 -283
  2593. package/dist/targets-CZA632lq.js +0 -39
  2594. package/dist/targets-Dz1dx4G8.js +0 -78
  2595. package/dist/targets-Zd0-pJu7.js +0 -748
  2596. package/dist/targets-krmeAAxz.js +0 -70
  2597. package/dist/task-registry-delivery-runtime-BnkUa6Mp.js +0 -2
  2598. package/dist/task-registry.audit-DbCRt5MR.js +0 -320
  2599. package/dist/task-registry.audit.shared-SH4MOLKM.js +0 -18
  2600. package/dist/task-registry.maintenance-DfZmDWog.js +0 -2
  2601. package/dist/task-registry.summary-SoFiECCc.js +0 -44
  2602. package/dist/tavily-search-provider-BCY1kfQB.js +0 -227
  2603. package/dist/telegram/audit.js +0 -2
  2604. package/dist/telegram/token.js +0 -2
  2605. package/dist/telegram-Cq20PSxw.js +0 -23
  2606. package/dist/telegram-account-vRRwyfuA.js +0 -11
  2607. package/dist/telegram-command-config-BiHhXScJ.js +0 -1
  2608. package/dist/telegram-core-DTJayyAj.js +0 -6
  2609. package/dist/telegram-custom-commands-C-nv8yoB.js +0 -75
  2610. package/dist/temp-download-Ccatr7zI.js +0 -62
  2611. package/dist/temp-path-JU2kkd64.js +0 -2
  2612. package/dist/templating-Bu436Euy.js +0 -24
  2613. package/dist/testing-BrrgubIp.js +0 -690
  2614. package/dist/text-chunking-BTs2yTSd.js +0 -12
  2615. package/dist/text-chunking-ByXwyFNP.js +0 -20
  2616. package/dist/text-format-lEYRGxj5.js +0 -8
  2617. package/dist/text-runtime-D9ApM_8O.js +0 -398
  2618. package/dist/theme-Bb-qluq6.js +0 -2
  2619. package/dist/theme-wBMZmJzz.js +0 -34
  2620. package/dist/thinking-Dga2zdtd.js +0 -68
  2621. package/dist/thinking.shared-D6IkoLJU.js +0 -243
  2622. package/dist/thread-bindings-BMnz7w-V.js +0 -219
  2623. package/dist/thread-bindings-BbQWOcMr.js +0 -352
  2624. package/dist/thread-bindings-Bv0I9sBY.js +0 -534
  2625. package/dist/thread-bindings-C3jMrVvp.js +0 -778
  2626. package/dist/thread-bindings-policy-Br8s4hQ6.js +0 -172
  2627. package/dist/thread-bindings-runtime-CbG63N4N.js +0 -2
  2628. package/dist/thread-bindings-shared-DjSYaoHi.js +0 -95
  2629. package/dist/thread-bindings.discord-api-NFR5qsWt.js +0 -487
  2630. package/dist/thread-ownership-DG810AQi.js +0 -3
  2631. package/dist/threading-1Z_3y_Dp.js +0 -2
  2632. package/dist/threading-Hl8nWez6.js +0 -832
  2633. package/dist/threading-helpers-BpqyeyAU.js +0 -14
  2634. package/dist/threading-tool-context-DxV30qIW.js +0 -157
  2635. package/dist/timeouts-B1NiHSGi.js +0 -74
  2636. package/dist/tlon-C54Qojl0.js +0 -20
  2637. package/dist/tmp-openclaw-dir-B44_vmJv.js +0 -102
  2638. package/dist/token-BlUJQi_X.js +0 -2
  2639. package/dist/token-CDYFJvj8.js +0 -82
  2640. package/dist/token-kCjtGElJ.js +0 -45
  2641. package/dist/tokens-C2f9Klbt.js +0 -66
  2642. package/dist/tool-actions.runtime-aB0DgLk7.js +0 -532
  2643. package/dist/tool-actions.runtime.js +0 -1
  2644. package/dist/tool-display-C7h9IZa_.js +0 -1607
  2645. package/dist/tool-images-BDUvc_pd.js +0 -270
  2646. package/dist/tool-mutation-DIBpIegg.js +0 -140
  2647. package/dist/tool-policy-FUm_F19C.js +0 -515
  2648. package/dist/tool-policy-match-CCFHTsu9.js +0 -49
  2649. package/dist/tool-send-DClM4vsZ.js +0 -16
  2650. package/dist/tools-54j1hYBv.js +0 -123
  2651. package/dist/tools-effective-inventory-C09suj6-.js +0 -148
  2652. package/dist/tools.runtime-VBFxIXC8.js +0 -4
  2653. package/dist/tools.runtime.js +0 -1
  2654. package/dist/transcript-events-Dc7U5QmQ.js +0 -29
  2655. package/dist/transport-ready-Cje3USX4.js +0 -36
  2656. package/dist/tts-CTM9C09A.js +0 -2
  2657. package/dist/tts-Ck_K3tIi.js +0 -84
  2658. package/dist/tts-auto-mode-bD-u2biE.js +0 -14
  2659. package/dist/tts-bTuorllO.js +0 -102
  2660. package/dist/tts-eOLiJF6d.js +0 -29
  2661. package/dist/tts.runtime-ChTwy0yH.js +0 -3
  2662. package/dist/tts.runtime.js +0 -1
  2663. package/dist/tui-CrM-Bz3i.js +0 -3899
  2664. package/dist/tui-cli-aVL5aPGw.js +0 -31
  2665. package/dist/twitch-CFFlkhYG.js +0 -15
  2666. package/dist/typebox-DmerPHaM.js +0 -22
  2667. package/dist/types-BzNSmNk3.js +0 -12
  2668. package/dist/types-DAzqpvqD.js +0 -83
  2669. package/dist/types-DVJVELY7.js +0 -471
  2670. package/dist/types-DqNppUoh.js +0 -15
  2671. package/dist/types.secrets-BpcqHPAv.js +0 -80
  2672. package/dist/types.tools-BTQL6INB.js +0 -22
  2673. package/dist/typing-BnCchGtL.js +0 -8
  2674. package/dist/typing-Bugg5LPP.js +0 -68
  2675. package/dist/typing-J_ktpWeA.js +0 -2
  2676. package/dist/typing-mode-DDYL_0TG.js +0 -75
  2677. package/dist/typing-policy-CaZhrM-F.js +0 -11
  2678. package/dist/typing-start-guard-Cgjgzy5e.js +0 -73
  2679. package/dist/ui-BLDY9-7R.js +0 -212
  2680. package/dist/undici-global-dispatcher-CcNdQ7Dt.js +0 -99
  2681. package/dist/unhandled-rejections-CA_e1R-O.js +0 -2
  2682. package/dist/unhandled-rejections-V7U9keRG.js +0 -241
  2683. package/dist/update-CcALvtl_.js +0 -1253
  2684. package/dist/update-channels-Dn1F57Kf.js +0 -78
  2685. package/dist/update-check-CoDVxy35.js +0 -354
  2686. package/dist/update-cli-BWOYy_Mp.js +0 -1447
  2687. package/dist/update-offset-store-BLZmshZE.js +0 -75
  2688. package/dist/usage-CC7-wLUi.js +0 -39
  2689. package/dist/usage-format-C7nMV1jc.js +0 -513
  2690. package/dist/utils-CN_F_3Qg.js +0 -243
  2691. package/dist/utils-Cgw9Y0-Q.js +0 -2
  2692. package/dist/validation-BNNAUmDO.js +0 -18521
  2693. package/dist/verification-B4ogZ29M.js +0 -130
  2694. package/dist/verification-B99uVIxo.js +0 -2
  2695. package/dist/version-BNzJ37Re.js +0 -79
  2696. package/dist/version-Dw0eJ-1F.js +0 -2
  2697. package/dist/voice-call-Dt6m6oA3.js +0 -4
  2698. package/dist/wait-YXJvtMmp.js +0 -7
  2699. package/dist/warning-filter-GX8LpGKz.js +0 -57
  2700. package/dist/web-fetch-utils-CoVia2ez.js +0 -413
  2701. package/dist/web-media-D9opLz21.js +0 -2
  2702. package/dist/web-media-DHlguFej.js +0 -339
  2703. package/dist/web-search-BcSDWJK9.js +0 -169
  2704. package/dist/web-search-providers-CqY6CVp3.js +0 -21
  2705. package/dist/web-search-providers.runtime-BHjzPQW-.js +0 -113
  2706. package/dist/web-search-providers.runtime.js +0 -1
  2707. package/dist/web-search-providers.shared-CMeQec8y.js +0 -421
  2708. package/dist/web-search-shared-B5mHm7QD.js +0 -87
  2709. package/dist/webhook-ingress-CTl81NUR.js +0 -164
  2710. package/dist/webhook-memory-guards-B6k3g-po.js +0 -129
  2711. package/dist/webhook-path-CklCw5kp.js +0 -22
  2712. package/dist/webhook-request-guards-CxDPmU9e.js +0 -178
  2713. package/dist/webhook-shared-Bw9wLe6L.js +0 -370
  2714. package/dist/webhooks-cli-DPRITERU.js +0 -326
  2715. package/dist/whatsapp-CSzf1Nu0.js +0 -5
  2716. package/dist/whatsapp-D18Otn45.js +0 -30
  2717. package/dist/whatsapp-auth-presence-B5GZUgTA.js +0 -41
  2718. package/dist/whatsapp-core-Be0P_p4R.js +0 -7
  2719. package/dist/whatsapp-heartbeat-a2-OB01n.js +0 -85
  2720. package/dist/whatsapp-shared-ChjLiMDw.js +0 -56
  2721. package/dist/whatsapp-shared-FR_Jw-NH.js +0 -4
  2722. package/dist/whatsapp-surface-Dwrfi_SD.js +0 -26
  2723. package/dist/whatsapp-targets-59A3BDBi.js +0 -13
  2724. package/dist/widearea-dns-CfQt6b3q.js +0 -125
  2725. package/dist/windows-argv-DDAf3waz.js +0 -345
  2726. package/dist/windows-install-roots-XI3CvO9O.js +0 -149
  2727. package/dist/windows-spawn-DKvkg_66.js +0 -154
  2728. package/dist/with-timeout-B2smrGj0.js +0 -214
  2729. package/dist/with-timeout-BmJKiOMd.js +0 -13
  2730. package/dist/workflow-summary-BMvffn8D.js +0 -2
  2731. package/dist/workflow-summary-NvN5lUvK.js +0 -167
  2732. package/dist/workspace-D5P9nuJd.js +0 -479
  2733. package/dist/workspace-D5UiPYKk.js +0 -306
  2734. package/dist/workspace-dirs-CRv8Jwfz.js +0 -13
  2735. package/dist/ws-97FEIc7w.js +0 -11
  2736. package/dist/ws-log-BaAOgG9m.js +0 -281
  2737. package/dist/ws-logging-M92fgmyp.js +0 -10
  2738. package/dist/wsl-ytdRZp54.js +0 -57
  2739. package/dist/x-search-FsMNZ7d0.js +0 -166
  2740. package/dist/x-search-shared-D0tVMJk9.js +0 -124
  2741. package/dist/zalo-CNoa7XH7.js +0 -13
  2742. package/dist/zalo-js-HktBGDbg.js +0 -1156
  2743. package/dist/zalo-setup-BT-xGElf.js +0 -14
  2744. package/dist/zalouser-TwyfhIYz.js +0 -22
  2745. package/dist/zod-1Wegy5nx.js +0 -7
  2746. package/dist/zod-parse-HlGwTZP3.js +0 -14
  2747. package/dist/zod-schema.agent-runtime-DFC7a3eV.js +0 -602
  2748. package/dist/zod-schema.core-C1Ewlj9j.js +0 -520
  2749. package/dist/zod-schema.providers-core-Bmbs-R4l.js +0 -1541
  2750. package/dist/zod-schema.providers-whatsapp-CanJPkvb.js +0 -132
  2751. package/dist/zod-schema.sensitive-DEzKzMxI.js +0 -5
@@ -1,3676 +0,0 @@
1
- import { t as createNonExitingRuntime } from "./runtime-kS8e4c6-.js";
2
- import { _ as normalizeAccountId, u as resolveAgentIdFromSessionKey } from "./session-key-Do__tq1E.js";
3
- import { a as shouldLogVerbose, r as logVerbose, t as danger } from "./globals-CDtV0ht8.js";
4
- import { c as loadConfig } from "./io-BUxKr33U.js";
5
- import { r as buildChannelConfigSchema } from "./config-schema-mfJ91WLf.js";
6
- import { t as resolveAccountEntry } from "./account-lookup-CLJxpfHr.js";
7
- import { r as getSessionBindingService } from "./session-binding-service-D7bUc7mS.js";
8
- import { a as normalizePluginHttpPath } from "./http-route-overlap-C8lbolN5.js";
9
- import { a as warnMissingProviderGroupPolicyFallbackOnce, n as resolveAllowlistProviderRuntimeGroupPolicy, r as resolveDefaultGroupPolicy } from "./runtime-group-policy-zTp8fKRK.js";
10
- import "./status-helpers-CCJSSrVJ.js";
11
- import { p as resolveSendableOutboundReplyParts } from "./reply-payload-CRYI4jIB.js";
12
- import { r as chunkMarkdownText } from "./chunk-CW-a7Cfh.js";
13
- import { t as buildRandomTempFilePath } from "./temp-download-Ccatr7zI.js";
14
- import "./temp-path-JU2kkd64.js";
15
- import { i as resolveAgentRoute, n as deriveLastRoutePolicy } from "./resolve-route-EE8E7OAF.js";
16
- import "./core-DaMVvavf.js";
17
- import "./routing-BVt9nMN-.js";
18
- import { t as hasControlCommand } from "./command-detection-BV7Ipg_0.js";
19
- import { t as finalizeInboundContext } from "./inbound-context-Cxvd3JHZ.js";
20
- import { r as formatInboundEnvelope } from "./envelope-CrC9AdBL.js";
21
- import { n as buildMentionRegexes, r as matchesMentionPatterns } from "./mentions-BKYgZd-C.js";
22
- import { t as dispatchReplyWithBufferedBlockDispatcher } from "./provider-dispatcher-COxXbow_.js";
23
- import { n as resolveControlCommandGate } from "./command-gating-NyDk7t84.js";
24
- import { t as recordInboundSession } from "./session-BJudz6Rb.js";
25
- import { c as recordChannelActivity } from "./heartbeat-visibility-CHMO4pmJ.js";
26
- import { a as readChannelAllowFromStore, d as upsertChannelPairingRequest } from "./pairing-store-B171dUVa.js";
27
- import { n as isSenderIdAllowed, r as mergeDmAllowFromSources, t as firstDefined } from "./allow-from-Bj0HDNYh.js";
28
- import "./channel-config-schema-DsguzRfd.js";
29
- import { n as evaluateMatchedGroupAccessForPolicy } from "./group-access-BjveEAjz.js";
30
- import { c as resolvePinnedMainDmOwnerFromAllowlist } from "./dm-policy-shared-C99GNVxp.js";
31
- import { s as clearHistoryEntriesIfEnabled, u as recordPendingHistoryEntryIfEnabled } from "./history-B4mW8GfY.js";
32
- import "./reply-history-DtTaPEgt.js";
33
- import { t as waitForAbortSignal } from "./abort-signal-CrrraMAi.js";
34
- import "./runtime-CNZi_czi.js";
35
- import { t as withTimeout } from "./with-timeout-BmJKiOMd.js";
36
- import "./runtime-env-SHKgcATc.js";
37
- import "./setup-BrOJEPVN.js";
38
- import "./config-runtime-ngoccXmP.js";
39
- import "./reply-runtime-DUrpJTzu.js";
40
- import "./reply-dispatch-runtime-Bk9RDzB9.js";
41
- import { t as createChannelReplyPipeline } from "./channel-reply-pipeline-BtBcBCNu.js";
42
- import "./channel-runtime-F8_51GPp.js";
43
- import { a as isRequestBodyLimitError, c as requestBodyErrorToText, s as readRequestBodyWithLimit } from "./http-body-CfdQSEp0.js";
44
- import { i as resolveConfiguredBindingRoute, r as ensureConfiguredBindingRouteReady } from "./conversation-runtime-bArk0IjJ.js";
45
- import { t as resolvePairingIdLabel } from "./pairing-labels-Cj1fFxG9.js";
46
- import { r as stripMarkdown } from "./text-runtime-D9ApM_8O.js";
47
- import { t as registerPluginHttpRoute } from "./http-registry-ZGSBfYSe.js";
48
- import "./account-resolution-CbKUJkzG.js";
49
- import { t as createChannelPairingChallengeIssuer } from "./channel-pairing-Byr3MFbN.js";
50
- import { a as createWebhookInFlightLimiter, i as beginWebhookRequestPipelineOrReject } from "./webhook-request-guards-CxDPmU9e.js";
51
- import "./webhook-ingress-CTl81NUR.js";
52
- import "./command-auth-tqFmaIaJ.js";
53
- import "./channel-inbound-CXD3aSAK.js";
54
- import { n as resolveMentionGatingWithBypass } from "./mention-gating-_kzByrvM.js";
55
- import { n as toLocationContext, t as formatLocationText } from "./location-CtMHXE-d.js";
56
- import { t as resolveInboundSessionEnvelopeContext } from "./session-envelope-RE_1D3fZ.js";
57
- import { t as zod_exports } from "./zod-1Wegy5nx.js";
58
- import { i as resolveLineAccount } from "./accounts-p4Eir-wB.js";
59
- import fsSync from "node:fs";
60
- import { readFile } from "node:fs/promises";
61
- import crypto from "node:crypto";
62
- import { messagingApi } from "@line/bot-sdk";
63
- //#region extensions/line/src/bot-access.ts
64
- function normalizeAllowEntry(value) {
65
- const trimmed = String(value).trim();
66
- if (!trimmed) return "";
67
- if (trimmed === "*") return "*";
68
- return trimmed.replace(/^line:(?:user:)?/i, "");
69
- }
70
- const normalizeAllowFrom = (list) => {
71
- const entries = (list ?? []).map((value) => normalizeAllowEntry(value)).filter(Boolean);
72
- return {
73
- entries,
74
- hasWildcard: entries.includes("*"),
75
- hasEntries: entries.length > 0
76
- };
77
- };
78
- const normalizeDmAllowFromWithStore = (params) => normalizeAllowFrom(mergeDmAllowFromSources(params));
79
- const isSenderAllowed = (params) => {
80
- const { allow, senderId } = params;
81
- return isSenderIdAllowed(allow, senderId, false);
82
- };
83
- //#endregion
84
- //#region extensions/line/src/download.ts
85
- const AUDIO_BRANDS = new Set([
86
- "m4a ",
87
- "m4b ",
88
- "m4p ",
89
- "m4r ",
90
- "f4a ",
91
- "f4b "
92
- ]);
93
- async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 * 1024 * 1024) {
94
- const response = await new messagingApi.MessagingApiBlobClient({ channelAccessToken }).getMessageContent(messageId);
95
- const chunks = [];
96
- let totalSize = 0;
97
- for await (const chunk of response) {
98
- totalSize += chunk.length;
99
- if (totalSize > maxBytes) throw new Error(`Media exceeds ${Math.round(maxBytes / (1024 * 1024))}MB limit`);
100
- chunks.push(chunk);
101
- }
102
- const buffer = Buffer.concat(chunks);
103
- const contentType = detectContentType(buffer);
104
- const filePath = buildRandomTempFilePath({
105
- prefix: "line-media",
106
- extension: getExtensionForContentType(contentType)
107
- });
108
- await fsSync.promises.writeFile(filePath, buffer);
109
- logVerbose(`line: downloaded media ${messageId} to ${filePath} (${buffer.length} bytes)`);
110
- return {
111
- path: filePath,
112
- contentType,
113
- size: buffer.length
114
- };
115
- }
116
- function detectContentType(buffer) {
117
- const hasFtypBox = buffer.length >= 12 && buffer[4] === 102 && buffer[5] === 116 && buffer[6] === 121 && buffer[7] === 112;
118
- if (buffer.length >= 2) {
119
- if (buffer[0] === 255 && buffer[1] === 216) return "image/jpeg";
120
- if (buffer[0] === 137 && buffer[1] === 80 && buffer[2] === 78 && buffer[3] === 71) return "image/png";
121
- if (buffer[0] === 71 && buffer[1] === 73 && buffer[2] === 70) return "image/gif";
122
- if (buffer[0] === 82 && buffer[1] === 73 && buffer[2] === 70 && buffer[3] === 70 && buffer[8] === 87 && buffer[9] === 69 && buffer[10] === 66 && buffer[11] === 80) return "image/webp";
123
- if (hasFtypBox) {
124
- const majorBrand = buffer.toString("ascii", 8, 12).toLowerCase();
125
- if (AUDIO_BRANDS.has(majorBrand)) return "audio/mp4";
126
- return "video/mp4";
127
- }
128
- }
129
- return "application/octet-stream";
130
- }
131
- function getExtensionForContentType(contentType) {
132
- switch (contentType) {
133
- case "image/jpeg": return ".jpg";
134
- case "image/png": return ".png";
135
- case "image/gif": return ".gif";
136
- case "image/webp": return ".webp";
137
- case "video/mp4": return ".mp4";
138
- case "audio/mp4": return ".m4a";
139
- case "audio/mpeg": return ".mp3";
140
- default: return ".bin";
141
- }
142
- }
143
- //#endregion
144
- //#region extensions/line/src/probe.ts
145
- async function probeLineBot(channelAccessToken, timeoutMs = 5e3) {
146
- if (!channelAccessToken?.trim()) return {
147
- ok: false,
148
- error: "Channel access token not configured"
149
- };
150
- const client = new messagingApi.MessagingApiClient({ channelAccessToken: channelAccessToken.trim() });
151
- try {
152
- const profile = await withTimeout(client.getBotInfo(), timeoutMs);
153
- return {
154
- ok: true,
155
- bot: {
156
- displayName: profile.displayName,
157
- userId: profile.userId,
158
- basicId: profile.basicId,
159
- pictureUrl: profile.pictureUrl
160
- }
161
- };
162
- } catch (err) {
163
- return {
164
- ok: false,
165
- error: err instanceof Error ? err.message : String(err)
166
- };
167
- }
168
- }
169
- //#endregion
170
- //#region extensions/line/src/actions.ts
171
- /**
172
- * Create a message action (sends text when tapped)
173
- */
174
- function messageAction(label, text) {
175
- return {
176
- type: "message",
177
- label: label.slice(0, 20),
178
- text: text ?? label
179
- };
180
- }
181
- /**
182
- * Create a URI action (opens a URL when tapped)
183
- */
184
- function uriAction(label, uri) {
185
- return {
186
- type: "uri",
187
- label: label.slice(0, 20),
188
- uri
189
- };
190
- }
191
- /**
192
- * Create a postback action (sends data to webhook when tapped)
193
- */
194
- function postbackAction(label, data, displayText) {
195
- return {
196
- type: "postback",
197
- label: label.slice(0, 20),
198
- data: data.slice(0, 300),
199
- displayText: displayText?.slice(0, 300)
200
- };
201
- }
202
- /**
203
- * Create a datetime picker action
204
- */
205
- function datetimePickerAction(label, data, mode, options) {
206
- return {
207
- type: "datetimepicker",
208
- label: label.slice(0, 20),
209
- data: data.slice(0, 300),
210
- mode,
211
- initial: options?.initial,
212
- max: options?.max,
213
- min: options?.min
214
- };
215
- }
216
- //#endregion
217
- //#region extensions/line/src/template-messages.ts
218
- function buildTemplatePayloadAction(action) {
219
- if (action.type === "uri" && action.uri) return uriAction(action.label, action.uri);
220
- if (action.type === "postback" && action.data) return postbackAction(action.label, action.data, action.label);
221
- return messageAction(action.label, action.data ?? action.label);
222
- }
223
- /**
224
- * Create a confirm template (yes/no style dialog)
225
- */
226
- function createConfirmTemplate(text, confirmAction, cancelAction, altText) {
227
- const template = {
228
- type: "confirm",
229
- text: text.slice(0, 240),
230
- actions: [confirmAction, cancelAction]
231
- };
232
- return {
233
- type: "template",
234
- altText: altText?.slice(0, 400) ?? text.slice(0, 400),
235
- template
236
- };
237
- }
238
- /**
239
- * Create a button template with title, text, and action buttons
240
- */
241
- function createButtonTemplate(title, text, actions, options) {
242
- const textLimit = Boolean(options?.thumbnailImageUrl?.trim()) ? 160 : 60;
243
- const template = {
244
- type: "buttons",
245
- title: title.slice(0, 40),
246
- text: text.slice(0, textLimit),
247
- actions: actions.slice(0, 4),
248
- thumbnailImageUrl: options?.thumbnailImageUrl,
249
- imageAspectRatio: options?.imageAspectRatio ?? "rectangle",
250
- imageSize: options?.imageSize ?? "cover",
251
- imageBackgroundColor: options?.imageBackgroundColor,
252
- defaultAction: options?.defaultAction
253
- };
254
- return {
255
- type: "template",
256
- altText: options?.altText?.slice(0, 400) ?? `${title}: ${text}`.slice(0, 400),
257
- template
258
- };
259
- }
260
- /**
261
- * Create a carousel template with multiple columns
262
- */
263
- function createTemplateCarousel(columns, options) {
264
- const template = {
265
- type: "carousel",
266
- columns: columns.slice(0, 10),
267
- imageAspectRatio: options?.imageAspectRatio ?? "rectangle",
268
- imageSize: options?.imageSize ?? "cover"
269
- };
270
- return {
271
- type: "template",
272
- altText: options?.altText?.slice(0, 400) ?? "View carousel",
273
- template
274
- };
275
- }
276
- /**
277
- * Create a carousel column for use with createTemplateCarousel
278
- */
279
- function createCarouselColumn(params) {
280
- return {
281
- title: params.title?.slice(0, 40),
282
- text: params.text.slice(0, 120),
283
- actions: params.actions.slice(0, 3),
284
- thumbnailImageUrl: params.thumbnailImageUrl,
285
- imageBackgroundColor: params.imageBackgroundColor,
286
- defaultAction: params.defaultAction
287
- };
288
- }
289
- /**
290
- * Create an image carousel template (simpler, image-focused carousel)
291
- */
292
- function createImageCarousel(columns, altText) {
293
- const template = {
294
- type: "image_carousel",
295
- columns: columns.slice(0, 10)
296
- };
297
- return {
298
- type: "template",
299
- altText: altText?.slice(0, 400) ?? "View images",
300
- template
301
- };
302
- }
303
- /**
304
- * Create an image carousel column for use with createImageCarousel
305
- */
306
- function createImageCarouselColumn(imageUrl, action) {
307
- return {
308
- imageUrl,
309
- action
310
- };
311
- }
312
- /**
313
- * Create a simple yes/no confirmation dialog
314
- */
315
- function createYesNoConfirm(question, options) {
316
- return createConfirmTemplate(question, options?.yesData ? postbackAction(options.yesText ?? "Yes", options.yesData, options.yesText ?? "Yes") : messageAction(options?.yesText ?? "Yes"), options?.noData ? postbackAction(options.noText ?? "No", options.noData, options.noText ?? "No") : messageAction(options?.noText ?? "No"), options?.altText);
317
- }
318
- /**
319
- * Create a button menu with simple text buttons
320
- */
321
- function createButtonMenu(title, text, buttons, options) {
322
- return createButtonTemplate(title, text, buttons.slice(0, 4).map((btn) => messageAction(btn.label, btn.text)), {
323
- thumbnailImageUrl: options?.thumbnailImageUrl,
324
- altText: options?.altText
325
- });
326
- }
327
- /**
328
- * Create a button menu with URL links
329
- */
330
- function createLinkMenu(title, text, links, options) {
331
- return createButtonTemplate(title, text, links.slice(0, 4).map((link) => uriAction(link.label, link.url)), {
332
- thumbnailImageUrl: options?.thumbnailImageUrl,
333
- altText: options?.altText
334
- });
335
- }
336
- /**
337
- * Create a simple product/item carousel
338
- */
339
- function createProductCarousel(products, altText) {
340
- return createTemplateCarousel(products.slice(0, 10).map((product) => {
341
- const actions = [];
342
- if (product.actionUrl) actions.push(uriAction(product.actionLabel ?? "View", product.actionUrl));
343
- else if (product.actionData) actions.push(postbackAction(product.actionLabel ?? "Select", product.actionData));
344
- else actions.push(messageAction(product.actionLabel ?? "Select", product.title));
345
- return createCarouselColumn({
346
- title: product.title,
347
- text: product.price ? `${product.description}\n${product.price}`.slice(0, 120) : product.description,
348
- thumbnailImageUrl: product.imageUrl,
349
- actions
350
- });
351
- }), { altText });
352
- }
353
- /**
354
- * Convert a TemplateMessagePayload from ReplyPayload to a LINE TemplateMessage
355
- */
356
- function buildTemplateMessageFromPayload(payload) {
357
- switch (payload.type) {
358
- case "confirm": {
359
- const confirmAction = payload.confirmData.startsWith("http") ? uriAction(payload.confirmLabel, payload.confirmData) : payload.confirmData.includes("=") ? postbackAction(payload.confirmLabel, payload.confirmData, payload.confirmLabel) : messageAction(payload.confirmLabel, payload.confirmData);
360
- const cancelAction = payload.cancelData.startsWith("http") ? uriAction(payload.cancelLabel, payload.cancelData) : payload.cancelData.includes("=") ? postbackAction(payload.cancelLabel, payload.cancelData, payload.cancelLabel) : messageAction(payload.cancelLabel, payload.cancelData);
361
- return createConfirmTemplate(payload.text, confirmAction, cancelAction, payload.altText);
362
- }
363
- case "buttons": {
364
- const actions = payload.actions.slice(0, 4).map((action) => buildTemplatePayloadAction(action));
365
- return createButtonTemplate(payload.title, payload.text, actions, {
366
- thumbnailImageUrl: payload.thumbnailImageUrl,
367
- altText: payload.altText
368
- });
369
- }
370
- case "carousel": return createTemplateCarousel(payload.columns.slice(0, 10).map((col) => {
371
- const colActions = col.actions.slice(0, 3).map((action) => buildTemplatePayloadAction(action));
372
- return createCarouselColumn({
373
- title: col.title,
374
- text: col.text,
375
- thumbnailImageUrl: col.thumbnailImageUrl,
376
- actions: colActions
377
- });
378
- }), { altText: payload.altText });
379
- default: return null;
380
- }
381
- }
382
- //#endregion
383
- //#region extensions/line/src/channel-access-token.ts
384
- function resolveLineChannelAccessToken(explicit, params) {
385
- if (explicit?.trim()) return explicit.trim();
386
- if (!params.channelAccessToken) throw new Error(`LINE channel access token missing for account "${params.accountId}" (set channels.line.channelAccessToken or LINE_CHANNEL_ACCESS_TOKEN).`);
387
- return params.channelAccessToken.trim();
388
- }
389
- //#endregion
390
- //#region extensions/line/src/send.ts
391
- const userProfileCache = /* @__PURE__ */ new Map();
392
- const PROFILE_CACHE_TTL_MS = 300 * 1e3;
393
- function normalizeTarget(to) {
394
- const trimmed = to.trim();
395
- if (!trimmed) throw new Error("Recipient is required for LINE sends");
396
- const normalized = trimmed.replace(/^line:group:/i, "").replace(/^line:room:/i, "").replace(/^line:user:/i, "").replace(/^line:/i, "");
397
- if (!normalized) throw new Error("Recipient is required for LINE sends");
398
- return normalized;
399
- }
400
- function isLineUserChatId(chatId) {
401
- return /^U/i.test(chatId);
402
- }
403
- function createLineMessagingClient(opts) {
404
- const account = resolveLineAccount({
405
- cfg: opts.cfg ?? loadConfig(),
406
- accountId: opts.accountId
407
- });
408
- const token = resolveLineChannelAccessToken(opts.channelAccessToken, account);
409
- return {
410
- account,
411
- client: new messagingApi.MessagingApiClient({ channelAccessToken: token })
412
- };
413
- }
414
- function createLinePushContext(to, opts) {
415
- const { account, client } = createLineMessagingClient(opts);
416
- return {
417
- account,
418
- client,
419
- chatId: normalizeTarget(to)
420
- };
421
- }
422
- function createTextMessage(text) {
423
- return {
424
- type: "text",
425
- text
426
- };
427
- }
428
- function createImageMessage(originalContentUrl, previewImageUrl) {
429
- return {
430
- type: "image",
431
- originalContentUrl,
432
- previewImageUrl: previewImageUrl ?? originalContentUrl
433
- };
434
- }
435
- function createVideoMessage(originalContentUrl, previewImageUrl, trackingId) {
436
- return {
437
- type: "video",
438
- originalContentUrl,
439
- previewImageUrl,
440
- ...trackingId ? { trackingId } : {}
441
- };
442
- }
443
- function createAudioMessage(originalContentUrl, durationMs) {
444
- return {
445
- type: "audio",
446
- originalContentUrl,
447
- duration: durationMs
448
- };
449
- }
450
- function createLocationMessage(location) {
451
- return {
452
- type: "location",
453
- title: location.title.slice(0, 100),
454
- address: location.address.slice(0, 100),
455
- latitude: location.latitude,
456
- longitude: location.longitude
457
- };
458
- }
459
- function logLineHttpError(err, context) {
460
- if (!err || typeof err !== "object") return;
461
- const { status, statusText, body } = err;
462
- if (typeof body === "string") logVerbose(`line: ${context} failed (${status ? `${status} ${statusText ?? ""}`.trim() : "unknown status"}): ${body}`);
463
- }
464
- function recordLineOutboundActivity(accountId) {
465
- recordChannelActivity({
466
- channel: "line",
467
- accountId,
468
- direction: "outbound"
469
- });
470
- }
471
- async function pushLineMessages(to, messages, opts = {}, behavior = {}) {
472
- if (messages.length === 0) throw new Error("Message must be non-empty for LINE sends");
473
- const { account, client, chatId } = createLinePushContext(to, opts);
474
- const pushRequest = client.pushMessage({
475
- to: chatId,
476
- messages
477
- });
478
- if (behavior.errorContext) await pushRequest.catch((err) => {
479
- logLineHttpError(err, behavior.errorContext);
480
- throw err;
481
- });
482
- else await pushRequest;
483
- recordLineOutboundActivity(account.accountId);
484
- if (opts.verbose) logVerbose(behavior.verboseMessage?.(chatId, messages.length) ?? `line: pushed ${messages.length} messages to ${chatId}`);
485
- return {
486
- messageId: "push",
487
- chatId
488
- };
489
- }
490
- async function replyLineMessages(replyToken, messages, opts = {}, behavior = {}) {
491
- const { account, client } = createLineMessagingClient(opts);
492
- await client.replyMessage({
493
- replyToken,
494
- messages
495
- });
496
- recordLineOutboundActivity(account.accountId);
497
- if (opts.verbose) logVerbose(behavior.verboseMessage?.(messages.length) ?? `line: replied with ${messages.length} messages`);
498
- }
499
- async function sendMessageLine(to, text, opts = {}) {
500
- const chatId = normalizeTarget(to);
501
- const messages = [];
502
- const mediaUrl = opts.mediaUrl?.trim();
503
- if (mediaUrl) switch (opts.mediaKind) {
504
- case "video": {
505
- const previewImageUrl = opts.previewImageUrl?.trim();
506
- if (!previewImageUrl) throw new Error("LINE video messages require previewImageUrl to reference an image URL");
507
- const trackingId = isLineUserChatId(chatId) ? opts.trackingId : void 0;
508
- messages.push(createVideoMessage(mediaUrl, previewImageUrl, trackingId));
509
- break;
510
- }
511
- case "audio":
512
- messages.push(createAudioMessage(mediaUrl, opts.durationMs ?? 6e4));
513
- break;
514
- default:
515
- messages.push(createImageMessage(mediaUrl, opts.previewImageUrl?.trim() || mediaUrl));
516
- break;
517
- }
518
- if (text?.trim()) messages.push(createTextMessage(text.trim()));
519
- if (messages.length === 0) throw new Error("Message must be non-empty for LINE sends");
520
- if (opts.replyToken) {
521
- await replyLineMessages(opts.replyToken, messages, opts, { verboseMessage: () => `line: replied to ${chatId}` });
522
- return {
523
- messageId: "reply",
524
- chatId
525
- };
526
- }
527
- return pushLineMessages(chatId, messages, opts, { verboseMessage: (resolvedChatId) => `line: pushed message to ${resolvedChatId}` });
528
- }
529
- async function pushMessageLine(to, text, opts = {}) {
530
- return sendMessageLine(to, text, {
531
- ...opts,
532
- replyToken: void 0
533
- });
534
- }
535
- async function replyMessageLine(replyToken, messages, opts = {}) {
536
- await replyLineMessages(replyToken, messages, opts);
537
- }
538
- async function pushMessagesLine(to, messages, opts = {}) {
539
- return pushLineMessages(to, messages, opts, { errorContext: "push message" });
540
- }
541
- function createFlexMessage(altText, contents) {
542
- return {
543
- type: "flex",
544
- altText,
545
- contents
546
- };
547
- }
548
- async function pushImageMessage(to, originalContentUrl, previewImageUrl, opts = {}) {
549
- return pushLineMessages(to, [createImageMessage(originalContentUrl, previewImageUrl)], opts, { verboseMessage: (chatId) => `line: pushed image to ${chatId}` });
550
- }
551
- async function pushLocationMessage(to, location, opts = {}) {
552
- return pushLineMessages(to, [createLocationMessage(location)], opts, { verboseMessage: (chatId) => `line: pushed location to ${chatId}` });
553
- }
554
- async function pushFlexMessage(to, altText, contents, opts = {}) {
555
- return pushLineMessages(to, [{
556
- type: "flex",
557
- altText: altText.slice(0, 400),
558
- contents
559
- }], opts, {
560
- errorContext: "push flex message",
561
- verboseMessage: (chatId) => `line: pushed flex message to ${chatId}`
562
- });
563
- }
564
- async function pushTemplateMessage(to, template, opts = {}) {
565
- return pushLineMessages(to, [template], opts, { verboseMessage: (chatId) => `line: pushed template message to ${chatId}` });
566
- }
567
- async function pushTextMessageWithQuickReplies(to, text, quickReplyLabels, opts = {}) {
568
- return pushLineMessages(to, [createTextMessageWithQuickReplies(text, quickReplyLabels)], opts, { verboseMessage: (chatId) => `line: pushed message with quick replies to ${chatId}` });
569
- }
570
- function createQuickReplyItems(labels) {
571
- return { items: labels.slice(0, 13).map((label) => ({
572
- type: "action",
573
- action: {
574
- type: "message",
575
- label: label.slice(0, 20),
576
- text: label
577
- }
578
- })) };
579
- }
580
- function createTextMessageWithQuickReplies(text, quickReplyLabels) {
581
- return {
582
- type: "text",
583
- text,
584
- quickReply: createQuickReplyItems(quickReplyLabels)
585
- };
586
- }
587
- async function showLoadingAnimation(chatId, opts = {}) {
588
- const { client } = createLineMessagingClient(opts);
589
- try {
590
- await client.showLoadingAnimation({
591
- chatId: normalizeTarget(chatId),
592
- loadingSeconds: opts.loadingSeconds ?? 20
593
- });
594
- logVerbose(`line: showing loading animation to ${chatId}`);
595
- } catch (err) {
596
- logVerbose(`line: loading animation failed (non-fatal): ${String(err)}`);
597
- }
598
- }
599
- async function getUserProfile(userId, opts = {}) {
600
- if (opts.useCache ?? true) {
601
- const cached = userProfileCache.get(userId);
602
- if (cached && Date.now() - cached.fetchedAt < PROFILE_CACHE_TTL_MS) return {
603
- displayName: cached.displayName,
604
- pictureUrl: cached.pictureUrl
605
- };
606
- }
607
- const { client } = createLineMessagingClient(opts);
608
- try {
609
- const profile = await client.getProfile(userId);
610
- const result = {
611
- displayName: profile.displayName,
612
- pictureUrl: profile.pictureUrl
613
- };
614
- userProfileCache.set(userId, {
615
- ...result,
616
- fetchedAt: Date.now()
617
- });
618
- return result;
619
- } catch (err) {
620
- logVerbose(`line: failed to fetch profile for ${userId}: ${String(err)}`);
621
- return null;
622
- }
623
- }
624
- async function getUserDisplayName(userId, opts = {}) {
625
- return (await getUserProfile(userId, opts))?.displayName ?? userId;
626
- }
627
- //#endregion
628
- //#region extensions/line/src/auto-reply-delivery.ts
629
- async function deliverLineAutoReply(params) {
630
- const { payload, lineData, replyToken, accountId, to, textLimit, deps } = params;
631
- let replyTokenUsed = params.replyTokenUsed;
632
- const pushLineMessages = async (messages) => {
633
- if (messages.length === 0) return;
634
- for (let i = 0; i < messages.length; i += 5) await deps.pushMessagesLine(to, messages.slice(i, i + 5), { accountId });
635
- };
636
- const sendLineMessages = async (messages, allowReplyToken) => {
637
- if (messages.length === 0) return;
638
- let remaining = messages;
639
- if (allowReplyToken && replyToken && !replyTokenUsed) {
640
- const replyBatch = remaining.slice(0, 5);
641
- try {
642
- await deps.replyMessageLine(replyToken, replyBatch, { accountId });
643
- } catch (err) {
644
- deps.onReplyError?.(err);
645
- await pushLineMessages(replyBatch);
646
- }
647
- replyTokenUsed = true;
648
- remaining = remaining.slice(replyBatch.length);
649
- }
650
- if (remaining.length > 0) await pushLineMessages(remaining);
651
- };
652
- const richMessages = [];
653
- const hasQuickReplies = Boolean(lineData.quickReplies?.length);
654
- if (lineData.flexMessage) richMessages.push(deps.createFlexMessage(lineData.flexMessage.altText.slice(0, 400), lineData.flexMessage.contents));
655
- if (lineData.templateMessage) {
656
- const templateMsg = deps.buildTemplateMessageFromPayload(lineData.templateMessage);
657
- if (templateMsg) richMessages.push(templateMsg);
658
- }
659
- if (lineData.location) richMessages.push(deps.createLocationMessage(lineData.location));
660
- const processed = payload.text ? deps.processLineMessage(payload.text) : {
661
- text: "",
662
- flexMessages: []
663
- };
664
- for (const flexMsg of processed.flexMessages) richMessages.push(deps.createFlexMessage(flexMsg.altText.slice(0, 400), flexMsg.contents));
665
- const chunks = processed.text ? deps.chunkMarkdownText(processed.text, textLimit) : [];
666
- const mediaMessages = resolveSendableOutboundReplyParts(payload).mediaUrls.map((url) => url?.trim()).filter((url) => Boolean(url)).map((url) => deps.createImageMessage(url));
667
- if (chunks.length > 0) {
668
- const hasRichOrMedia = richMessages.length > 0 || mediaMessages.length > 0;
669
- if (hasQuickReplies && hasRichOrMedia) try {
670
- await sendLineMessages([...richMessages, ...mediaMessages], false);
671
- } catch (err) {
672
- deps.onReplyError?.(err);
673
- }
674
- const { replyTokenUsed: nextReplyTokenUsed } = await deps.sendLineReplyChunks({
675
- to,
676
- chunks,
677
- quickReplies: lineData.quickReplies,
678
- replyToken,
679
- replyTokenUsed,
680
- accountId,
681
- replyMessageLine: deps.replyMessageLine,
682
- pushMessageLine: deps.pushMessageLine,
683
- pushTextMessageWithQuickReplies: deps.pushTextMessageWithQuickReplies,
684
- createTextMessageWithQuickReplies: deps.createTextMessageWithQuickReplies
685
- });
686
- replyTokenUsed = nextReplyTokenUsed;
687
- if (!hasQuickReplies || !hasRichOrMedia) {
688
- await sendLineMessages(richMessages, false);
689
- if (mediaMessages.length > 0) await sendLineMessages(mediaMessages, false);
690
- }
691
- } else {
692
- const combined = [...richMessages, ...mediaMessages];
693
- if (hasQuickReplies && combined.length > 0) {
694
- const quickReply = deps.createQuickReplyItems(lineData.quickReplies);
695
- const targetIndex = replyToken && !replyTokenUsed ? Math.min(4, combined.length - 1) : combined.length - 1;
696
- combined[targetIndex] = {
697
- ...combined[targetIndex],
698
- quickReply
699
- };
700
- }
701
- await sendLineMessages(combined, true);
702
- }
703
- return { replyTokenUsed };
704
- }
705
- //#endregion
706
- //#region extensions/line/src/group-keys.ts
707
- function resolveLineGroupLookupIds(groupId) {
708
- const normalized = groupId?.trim();
709
- if (!normalized) return [];
710
- if (normalized.startsWith("group:") || normalized.startsWith("room:")) {
711
- const rawId = normalized.split(":").slice(1).join(":");
712
- return rawId ? [rawId, normalized] : [normalized];
713
- }
714
- return [
715
- normalized,
716
- `group:${normalized}`,
717
- `room:${normalized}`
718
- ];
719
- }
720
- function resolveLineGroupConfigEntry(groups, params) {
721
- if (!groups) return;
722
- for (const candidate of resolveLineGroupLookupIds(params.groupId)) {
723
- const hit = groups[candidate];
724
- if (hit) return hit;
725
- }
726
- for (const candidate of resolveLineGroupLookupIds(params.roomId)) {
727
- const hit = groups[candidate];
728
- if (hit) return hit;
729
- }
730
- return groups["*"];
731
- }
732
- function resolveLineGroupsConfig(cfg, accountId) {
733
- const lineConfig = cfg.channels?.line;
734
- if (!lineConfig) return;
735
- const normalizedAccountId = normalizeAccountId(accountId);
736
- return resolveAccountEntry(lineConfig.accounts, normalizedAccountId)?.groups ?? lineConfig.groups;
737
- }
738
- function resolveExactLineGroupConfigKey(params) {
739
- const groups = resolveLineGroupsConfig(params.cfg, params.accountId);
740
- if (!groups) return;
741
- return resolveLineGroupLookupIds(params.groupId).find((candidate) => Object.hasOwn(groups, candidate));
742
- }
743
- function resolveLineGroupHistoryKey(params) {
744
- return params.groupId?.trim() || params.roomId?.trim() || void 0;
745
- }
746
- //#endregion
747
- //#region extensions/line/src/bot-message-context.ts
748
- function getLineSourceInfo(source) {
749
- return {
750
- userId: source.type === "user" ? source.userId : source.type === "group" ? source.userId : source.type === "room" ? source.userId : void 0,
751
- groupId: source.type === "group" ? source.groupId : void 0,
752
- roomId: source.type === "room" ? source.roomId : void 0,
753
- isGroup: source.type === "group" || source.type === "room"
754
- };
755
- }
756
- function buildPeerId(source) {
757
- const groupKey = resolveLineGroupHistoryKey({
758
- groupId: source.type === "group" ? source.groupId : void 0,
759
- roomId: source.type === "room" ? source.roomId : void 0
760
- });
761
- if (groupKey) return groupKey;
762
- if (source.type === "user" && source.userId) return source.userId;
763
- return "unknown";
764
- }
765
- async function resolveLineInboundRoute(params) {
766
- recordChannelActivity({
767
- channel: "line",
768
- accountId: params.account.accountId,
769
- direction: "inbound"
770
- });
771
- const { userId, groupId, roomId, isGroup } = getLineSourceInfo(params.source);
772
- const peerId = buildPeerId(params.source);
773
- let route = resolveAgentRoute({
774
- cfg: params.cfg,
775
- channel: "line",
776
- accountId: params.account.accountId,
777
- peer: {
778
- kind: isGroup ? "group" : "direct",
779
- id: peerId
780
- }
781
- });
782
- const configuredRoute = resolveConfiguredBindingRoute({
783
- cfg: params.cfg,
784
- route,
785
- conversation: {
786
- channel: "line",
787
- accountId: params.account.accountId,
788
- conversationId: peerId
789
- }
790
- });
791
- let configuredBinding = configuredRoute.bindingResolution;
792
- const configuredBindingSessionKey = configuredRoute.boundSessionKey ?? "";
793
- route = configuredRoute.route;
794
- const boundConversation = getSessionBindingService().resolveByConversation({
795
- channel: "line",
796
- accountId: params.account.accountId,
797
- conversationId: peerId
798
- });
799
- const boundSessionKey = boundConversation?.targetSessionKey?.trim();
800
- if (boundConversation && boundSessionKey) {
801
- route = {
802
- ...route,
803
- sessionKey: boundSessionKey,
804
- agentId: resolveAgentIdFromSessionKey(boundSessionKey) || route.agentId,
805
- lastRoutePolicy: deriveLastRoutePolicy({
806
- sessionKey: boundSessionKey,
807
- mainSessionKey: route.mainSessionKey
808
- }),
809
- matchedBy: "binding.channel"
810
- };
811
- configuredBinding = null;
812
- getSessionBindingService().touch(boundConversation.bindingId);
813
- logVerbose(`line: routed via bound conversation ${peerId} -> ${boundSessionKey}`);
814
- }
815
- if (configuredBinding) {
816
- const ensured = await ensureConfiguredBindingRouteReady({
817
- cfg: params.cfg,
818
- bindingResolution: configuredBinding
819
- });
820
- if (!ensured.ok) {
821
- logVerbose(`line: configured ACP binding unavailable for ${peerId} -> ${configuredBindingSessionKey}: ${ensured.error}`);
822
- throw new Error(`Configured ACP binding unavailable: ${ensured.error}`);
823
- }
824
- logVerbose(`line: using configured ACP binding for ${peerId} -> ${configuredBindingSessionKey}`);
825
- }
826
- return {
827
- userId,
828
- groupId,
829
- roomId,
830
- isGroup,
831
- peerId,
832
- route
833
- };
834
- }
835
- const STICKER_PACKAGES = {
836
- "1": "Moon & James",
837
- "2": "Cony & Brown",
838
- "3": "Brown & Friends",
839
- "4": "Moon Special",
840
- "789": "LINE Characters",
841
- "6136": "Cony's Happy Life",
842
- "6325": "Brown's Life",
843
- "6359": "Choco",
844
- "6362": "Sally",
845
- "6370": "Edward",
846
- "11537": "Cony",
847
- "11538": "Brown",
848
- "11539": "Moon"
849
- };
850
- function describeStickerKeywords(sticker) {
851
- const keywords = sticker.keywords;
852
- if (keywords && keywords.length > 0) return keywords.slice(0, 3).join(", ");
853
- const stickerText = sticker.text;
854
- if (stickerText) return stickerText;
855
- return "";
856
- }
857
- function extractMessageText(message) {
858
- if (message.type === "text") return message.text;
859
- if (message.type === "location") {
860
- const loc = message;
861
- return formatLocationText({
862
- latitude: loc.latitude,
863
- longitude: loc.longitude,
864
- name: loc.title,
865
- address: loc.address
866
- }) ?? "";
867
- }
868
- if (message.type === "sticker") {
869
- const sticker = message;
870
- const packageName = STICKER_PACKAGES[sticker.packageId] ?? "sticker";
871
- const keywords = describeStickerKeywords(sticker);
872
- if (keywords) return `[Sent a ${packageName} sticker: ${keywords}]`;
873
- return `[Sent a ${packageName} sticker]`;
874
- }
875
- return "";
876
- }
877
- function extractMediaPlaceholder(message) {
878
- switch (message.type) {
879
- case "image": return "<media:image>";
880
- case "video": return "<media:video>";
881
- case "audio": return "<media:audio>";
882
- case "file": return "<media:document>";
883
- default: return "";
884
- }
885
- }
886
- function resolveLineConversationLabel(params) {
887
- return params.isGroup ? params.groupId ? `group:${params.groupId}` : params.roomId ? `room:${params.roomId}` : "unknown-group" : params.senderLabel;
888
- }
889
- function resolveLineAddresses(params) {
890
- const fromAddress = params.isGroup ? params.groupId ? `line:group:${params.groupId}` : params.roomId ? `line:room:${params.roomId}` : `line:${params.peerId}` : `line:${params.userId ?? params.peerId}`;
891
- return {
892
- fromAddress,
893
- toAddress: params.isGroup ? fromAddress : `line:${params.userId ?? params.peerId}`,
894
- originatingTo: params.isGroup ? fromAddress : `line:${params.userId ?? params.peerId}`
895
- };
896
- }
897
- function resolveLineGroupSystemPrompt(groups, source) {
898
- return resolveLineGroupConfigEntry(groups, {
899
- groupId: source.groupId,
900
- roomId: source.roomId
901
- })?.systemPrompt?.trim() || void 0;
902
- }
903
- async function finalizeLineInboundContext(params) {
904
- const { fromAddress, toAddress, originatingTo } = resolveLineAddresses({
905
- isGroup: params.source.isGroup,
906
- groupId: params.source.groupId,
907
- roomId: params.source.roomId,
908
- userId: params.source.userId,
909
- peerId: params.source.peerId
910
- });
911
- const senderId = params.source.userId ?? "unknown";
912
- const senderLabel = params.source.userId ? `user:${params.source.userId}` : "unknown";
913
- const conversationLabel = resolveLineConversationLabel({
914
- isGroup: params.source.isGroup,
915
- groupId: params.source.groupId,
916
- roomId: params.source.roomId,
917
- senderLabel
918
- });
919
- const { storePath, envelopeOptions, previousTimestamp } = resolveInboundSessionEnvelopeContext({
920
- cfg: params.cfg,
921
- agentId: params.route.agentId,
922
- sessionKey: params.route.sessionKey
923
- });
924
- const body = formatInboundEnvelope({
925
- channel: "LINE",
926
- from: conversationLabel,
927
- timestamp: params.timestamp,
928
- body: params.rawBody,
929
- chatType: params.source.isGroup ? "group" : "direct",
930
- sender: { id: senderId },
931
- previousTimestamp,
932
- envelope: envelopeOptions
933
- });
934
- const ctxPayload = finalizeInboundContext({
935
- Body: body,
936
- BodyForAgent: params.rawBody,
937
- RawBody: params.rawBody,
938
- CommandBody: params.rawBody,
939
- From: fromAddress,
940
- To: toAddress,
941
- SessionKey: params.route.sessionKey,
942
- AccountId: params.route.accountId,
943
- ChatType: params.source.isGroup ? "group" : "direct",
944
- ConversationLabel: conversationLabel,
945
- GroupSubject: params.source.isGroup ? params.source.groupId ?? params.source.roomId : void 0,
946
- SenderId: senderId,
947
- Provider: "line",
948
- Surface: "line",
949
- MessageSid: params.messageSid,
950
- Timestamp: params.timestamp,
951
- MediaPath: params.media.firstPath,
952
- MediaType: params.media.firstContentType,
953
- MediaUrl: params.media.firstPath,
954
- MediaPaths: params.media.paths,
955
- MediaUrls: params.media.paths,
956
- MediaTypes: params.media.types,
957
- ...params.locationContext,
958
- CommandAuthorized: params.commandAuthorized,
959
- OriginatingChannel: "line",
960
- OriginatingTo: originatingTo,
961
- GroupSystemPrompt: params.source.isGroup ? resolveLineGroupSystemPrompt(params.account.config.groups, params.source) : void 0,
962
- InboundHistory: params.inboundHistory
963
- });
964
- const pinnedMainDmOwner = !params.source.isGroup ? resolvePinnedMainDmOwnerFromAllowlist({
965
- dmScope: params.cfg.session?.dmScope,
966
- allowFrom: params.account.config.allowFrom,
967
- normalizeEntry: (entry) => normalizeAllowFrom([entry]).entries[0]
968
- }) : null;
969
- await recordInboundSession({
970
- storePath,
971
- sessionKey: ctxPayload.SessionKey ?? params.route.sessionKey,
972
- ctx: ctxPayload,
973
- updateLastRoute: !params.source.isGroup ? {
974
- sessionKey: params.route.mainSessionKey,
975
- channel: "line",
976
- to: params.source.userId ?? params.source.peerId,
977
- accountId: params.route.accountId,
978
- mainDmOwnerPin: pinnedMainDmOwner && params.source.userId ? {
979
- ownerRecipient: pinnedMainDmOwner,
980
- senderRecipient: params.source.userId,
981
- onSkip: ({ ownerRecipient, senderRecipient }) => {
982
- logVerbose(`line: skip main-session last route for ${senderRecipient} (pinned owner ${ownerRecipient})`);
983
- }
984
- } : void 0
985
- } : void 0,
986
- onRecordError: (err) => {
987
- logVerbose(`line: failed updating session meta: ${String(err)}`);
988
- }
989
- });
990
- if (shouldLogVerbose()) {
991
- const preview = body.slice(0, 200).replace(/\n/g, "\\n");
992
- const mediaInfo = params.verboseLog.kind === "inbound" && (params.verboseLog.mediaCount ?? 0) > 1 ? ` mediaCount=${params.verboseLog.mediaCount}` : "";
993
- logVerbose(`${params.verboseLog.kind === "inbound" ? "line inbound" : "line postback"}: from=${ctxPayload.From} len=${body.length}${mediaInfo} preview="${preview}"`);
994
- }
995
- return {
996
- ctxPayload,
997
- replyToken: params.event.replyToken
998
- };
999
- }
1000
- async function buildLineMessageContext(params) {
1001
- const { event, allMedia, cfg, account, commandAuthorized, groupHistories, historyLimit } = params;
1002
- const source = event.source;
1003
- const { userId, groupId, roomId, isGroup, peerId, route } = await resolveLineInboundRoute({
1004
- source,
1005
- cfg,
1006
- account
1007
- });
1008
- const message = event.message;
1009
- const messageId = message.id;
1010
- const timestamp = event.timestamp;
1011
- const textContent = extractMessageText(message);
1012
- const placeholder = extractMediaPlaceholder(message);
1013
- let rawBody = textContent || placeholder;
1014
- if (!rawBody && allMedia.length > 0) rawBody = `<media:image>${allMedia.length > 1 ? ` (${allMedia.length} images)` : ""}`;
1015
- if (!rawBody && allMedia.length === 0) return null;
1016
- let locationContext;
1017
- if (message.type === "location") {
1018
- const loc = message;
1019
- locationContext = toLocationContext({
1020
- latitude: loc.latitude,
1021
- longitude: loc.longitude,
1022
- name: loc.title,
1023
- address: loc.address
1024
- });
1025
- }
1026
- const historyKey = isGroup ? peerId : void 0;
1027
- const inboundHistory = historyKey && groupHistories && (historyLimit ?? 0) > 0 ? (groupHistories.get(historyKey) ?? []).map((entry) => ({
1028
- sender: entry.sender,
1029
- body: entry.body,
1030
- timestamp: entry.timestamp
1031
- })) : void 0;
1032
- const { ctxPayload } = await finalizeLineInboundContext({
1033
- cfg,
1034
- account,
1035
- event,
1036
- route,
1037
- source: {
1038
- userId,
1039
- groupId,
1040
- roomId,
1041
- isGroup,
1042
- peerId
1043
- },
1044
- rawBody,
1045
- timestamp,
1046
- messageSid: messageId,
1047
- commandAuthorized,
1048
- media: {
1049
- firstPath: allMedia[0]?.path,
1050
- firstContentType: allMedia[0]?.contentType,
1051
- paths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
1052
- types: allMedia.length > 0 ? allMedia.map((m) => m.contentType).filter(Boolean) : void 0
1053
- },
1054
- locationContext,
1055
- verboseLog: {
1056
- kind: "inbound",
1057
- mediaCount: allMedia.length
1058
- },
1059
- inboundHistory
1060
- });
1061
- return {
1062
- ctxPayload,
1063
- event,
1064
- userId,
1065
- groupId,
1066
- roomId,
1067
- isGroup,
1068
- route,
1069
- replyToken: event.replyToken,
1070
- accountId: account.accountId
1071
- };
1072
- }
1073
- async function buildLinePostbackContext(params) {
1074
- const { event, cfg, account, commandAuthorized } = params;
1075
- const source = event.source;
1076
- const { userId, groupId, roomId, isGroup, peerId, route } = await resolveLineInboundRoute({
1077
- source,
1078
- cfg,
1079
- account
1080
- });
1081
- const timestamp = event.timestamp;
1082
- const rawData = event.postback?.data?.trim() ?? "";
1083
- if (!rawData) return null;
1084
- let rawBody = rawData;
1085
- if (rawData.includes("line.action=")) {
1086
- const searchParams = new URLSearchParams(rawData);
1087
- const action = searchParams.get("line.action") ?? "";
1088
- const device = searchParams.get("line.device");
1089
- rawBody = device ? `line action ${action} device ${device}` : `line action ${action}`;
1090
- }
1091
- const messageSid = event.replyToken ? `postback:${event.replyToken}` : `postback:${timestamp}`;
1092
- const { ctxPayload } = await finalizeLineInboundContext({
1093
- cfg,
1094
- account,
1095
- event,
1096
- route,
1097
- source: {
1098
- userId,
1099
- groupId,
1100
- roomId,
1101
- isGroup,
1102
- peerId
1103
- },
1104
- rawBody,
1105
- timestamp,
1106
- messageSid,
1107
- commandAuthorized,
1108
- media: {
1109
- firstPath: "",
1110
- firstContentType: void 0,
1111
- paths: void 0,
1112
- types: void 0
1113
- },
1114
- verboseLog: { kind: "postback" }
1115
- });
1116
- return {
1117
- ctxPayload,
1118
- event,
1119
- userId,
1120
- groupId,
1121
- roomId,
1122
- isGroup,
1123
- route,
1124
- replyToken: event.replyToken,
1125
- accountId: account.accountId
1126
- };
1127
- }
1128
- //#endregion
1129
- //#region extensions/line/src/bot-handlers.ts
1130
- const LINE_DOWNLOADABLE_MESSAGE_TYPES = new Set([
1131
- "image",
1132
- "video",
1133
- "audio",
1134
- "file"
1135
- ]);
1136
- function isDownloadableLineMessageType(messageType) {
1137
- return LINE_DOWNLOADABLE_MESSAGE_TYPES.has(messageType);
1138
- }
1139
- const LINE_WEBHOOK_REPLAY_WINDOW_MS = 600 * 1e3;
1140
- const LINE_WEBHOOK_REPLAY_MAX_ENTRIES = 4096;
1141
- const LINE_WEBHOOK_REPLAY_PRUNE_INTERVAL_MS = 1e3;
1142
- function createLineWebhookReplayCache() {
1143
- return {
1144
- seenEvents: /* @__PURE__ */ new Map(),
1145
- inFlightEvents: /* @__PURE__ */ new Map(),
1146
- lastPruneAtMs: 0
1147
- };
1148
- }
1149
- function pruneLineWebhookReplayCache(cache, nowMs) {
1150
- const minSeenAt = nowMs - LINE_WEBHOOK_REPLAY_WINDOW_MS;
1151
- for (const [key, seenAt] of cache.seenEvents) if (seenAt < minSeenAt) cache.seenEvents.delete(key);
1152
- if (cache.seenEvents.size > LINE_WEBHOOK_REPLAY_MAX_ENTRIES) {
1153
- const deleteCount = cache.seenEvents.size - LINE_WEBHOOK_REPLAY_MAX_ENTRIES;
1154
- let deleted = 0;
1155
- for (const key of cache.seenEvents.keys()) {
1156
- if (deleted >= deleteCount) break;
1157
- cache.seenEvents.delete(key);
1158
- deleted += 1;
1159
- }
1160
- }
1161
- }
1162
- function buildLineWebhookReplayKey(event, accountId) {
1163
- if (event.type === "message") {
1164
- const messageId = event.message?.id?.trim();
1165
- if (messageId) return {
1166
- key: `${accountId}|message:${messageId}`,
1167
- eventId: `message:${messageId}`
1168
- };
1169
- }
1170
- const eventId = event.webhookEventId?.trim();
1171
- if (!eventId) return null;
1172
- const source = event.source;
1173
- const sourceId = source?.type === "group" ? `group:${source.groupId ?? ""}` : source?.type === "room" ? `room:${source.roomId ?? ""}` : `user:${source?.userId ?? ""}`;
1174
- return {
1175
- key: `${accountId}|${event.type}|${sourceId}|${eventId}`,
1176
- eventId: `event:${eventId}`
1177
- };
1178
- }
1179
- function getLineReplayCandidate(event, context) {
1180
- const replay = buildLineWebhookReplayKey(event, context.account.accountId);
1181
- const cache = context.replayCache;
1182
- if (!replay || !cache) return null;
1183
- const nowMs = Date.now();
1184
- if (nowMs - cache.lastPruneAtMs >= LINE_WEBHOOK_REPLAY_PRUNE_INTERVAL_MS || cache.seenEvents.size >= LINE_WEBHOOK_REPLAY_MAX_ENTRIES) {
1185
- pruneLineWebhookReplayCache(cache, nowMs);
1186
- cache.lastPruneAtMs = nowMs;
1187
- }
1188
- return {
1189
- key: replay.key,
1190
- eventId: replay.eventId,
1191
- seenAtMs: nowMs,
1192
- cache
1193
- };
1194
- }
1195
- function shouldSkipLineReplayEvent(candidate) {
1196
- const inFlightResult = candidate.cache.inFlightEvents.get(candidate.key);
1197
- if (inFlightResult) {
1198
- logVerbose(`line: skipped in-flight replayed webhook event ${candidate.eventId}`);
1199
- return {
1200
- skip: true,
1201
- inFlightResult
1202
- };
1203
- }
1204
- if (candidate.cache.seenEvents.has(candidate.key)) {
1205
- logVerbose(`line: skipped replayed webhook event ${candidate.eventId}`);
1206
- return { skip: true };
1207
- }
1208
- return { skip: false };
1209
- }
1210
- function markLineReplayEventInFlight(candidate) {
1211
- let resolve;
1212
- let reject;
1213
- const promise = new Promise((resolvePromise, rejectPromise) => {
1214
- resolve = resolvePromise;
1215
- reject = rejectPromise;
1216
- });
1217
- promise.catch(() => {});
1218
- candidate.cache.inFlightEvents.set(candidate.key, promise);
1219
- return {
1220
- promise,
1221
- resolve,
1222
- reject
1223
- };
1224
- }
1225
- function clearLineReplayEventInFlight(candidate) {
1226
- candidate.cache.inFlightEvents.delete(candidate.key);
1227
- }
1228
- function rememberLineReplayEvent(candidate) {
1229
- candidate.cache.seenEvents.set(candidate.key, candidate.seenAtMs);
1230
- }
1231
- function resolveLineGroupConfig(params) {
1232
- return resolveLineGroupConfigEntry(params.config.groups, {
1233
- groupId: params.groupId,
1234
- roomId: params.roomId
1235
- });
1236
- }
1237
- async function sendLinePairingReply(params) {
1238
- const { senderId, replyToken, context } = params;
1239
- const idLabel = (() => {
1240
- try {
1241
- return resolvePairingIdLabel("line");
1242
- } catch {
1243
- return "lineUserId";
1244
- }
1245
- })();
1246
- await createChannelPairingChallengeIssuer({
1247
- channel: "line",
1248
- upsertPairingRequest: async ({ id, meta }) => await upsertChannelPairingRequest({
1249
- channel: "line",
1250
- id,
1251
- accountId: context.account.accountId,
1252
- meta
1253
- })
1254
- })({
1255
- senderId,
1256
- senderIdLine: `Your ${idLabel}: ${senderId}`,
1257
- onCreated: () => {
1258
- logVerbose(`line pairing request sender=${senderId}`);
1259
- },
1260
- sendPairingReply: async (text) => {
1261
- if (replyToken) try {
1262
- await replyMessageLine(replyToken, [{
1263
- type: "text",
1264
- text
1265
- }], {
1266
- accountId: context.account.accountId,
1267
- channelAccessToken: context.account.channelAccessToken
1268
- });
1269
- return;
1270
- } catch (err) {
1271
- logVerbose(`line pairing reply failed for ${senderId}: ${String(err)}`);
1272
- }
1273
- try {
1274
- await pushMessageLine(`line:${senderId}`, text, {
1275
- accountId: context.account.accountId,
1276
- channelAccessToken: context.account.channelAccessToken
1277
- });
1278
- } catch (err) {
1279
- logVerbose(`line pairing reply failed for ${senderId}: ${String(err)}`);
1280
- }
1281
- }
1282
- });
1283
- }
1284
- async function shouldProcessLineEvent(event, context) {
1285
- const denied = {
1286
- allowed: false,
1287
- commandAuthorized: false
1288
- };
1289
- const { cfg, account } = context;
1290
- const { userId, groupId, roomId, isGroup } = getLineSourceInfo(event.source);
1291
- const senderId = userId ?? "";
1292
- const dmPolicy = account.config.dmPolicy ?? "pairing";
1293
- const storeAllowFrom = await readChannelAllowFromStore("line", void 0, account.accountId).catch(() => []);
1294
- const effectiveDmAllow = normalizeDmAllowFromWithStore({
1295
- allowFrom: account.config.allowFrom,
1296
- storeAllowFrom,
1297
- dmPolicy
1298
- });
1299
- const groupConfig = resolveLineGroupConfig({
1300
- config: account.config,
1301
- groupId,
1302
- roomId
1303
- });
1304
- const groupAllowOverride = groupConfig?.allowFrom;
1305
- const fallbackGroupAllowFrom = account.config.allowFrom?.length ? account.config.allowFrom : void 0;
1306
- const effectiveGroupAllow = normalizeAllowFrom(firstDefined(groupAllowOverride, account.config.groupAllowFrom, fallbackGroupAllowFrom));
1307
- const defaultGroupPolicy = resolveDefaultGroupPolicy(cfg);
1308
- const { groupPolicy, providerMissingFallbackApplied } = resolveAllowlistProviderRuntimeGroupPolicy({
1309
- providerConfigPresent: cfg.channels?.line !== void 0,
1310
- groupPolicy: account.config.groupPolicy,
1311
- defaultGroupPolicy
1312
- });
1313
- warnMissingProviderGroupPolicyFallbackOnce({
1314
- providerMissingFallbackApplied,
1315
- providerKey: "line",
1316
- accountId: account.accountId,
1317
- log: (message) => logVerbose(message)
1318
- });
1319
- if (isGroup) {
1320
- if (groupConfig?.enabled === false) {
1321
- logVerbose(`Blocked line group ${groupId ?? roomId ?? "unknown"} (group disabled)`);
1322
- return denied;
1323
- }
1324
- if (typeof groupAllowOverride !== "undefined") {
1325
- if (!senderId) {
1326
- logVerbose("Blocked line group message (group allowFrom override, no sender ID)");
1327
- return denied;
1328
- }
1329
- if (!isSenderAllowed({
1330
- allow: effectiveGroupAllow,
1331
- senderId
1332
- })) {
1333
- logVerbose(`Blocked line group sender ${senderId} (group allowFrom override)`);
1334
- return denied;
1335
- }
1336
- }
1337
- const senderGroupAccess = evaluateMatchedGroupAccessForPolicy({
1338
- groupPolicy,
1339
- requireMatchInput: true,
1340
- hasMatchInput: Boolean(senderId),
1341
- allowlistConfigured: effectiveGroupAllow.entries.length > 0,
1342
- allowlistMatched: Boolean(senderId) && isSenderAllowed({
1343
- allow: effectiveGroupAllow,
1344
- senderId
1345
- })
1346
- });
1347
- if (!senderGroupAccess.allowed && senderGroupAccess.reason === "disabled") {
1348
- logVerbose("Blocked line group message (groupPolicy: disabled)");
1349
- return denied;
1350
- }
1351
- if (!senderGroupAccess.allowed && senderGroupAccess.reason === "missing_match_input") {
1352
- logVerbose("Blocked line group message (no sender ID, groupPolicy: allowlist)");
1353
- return denied;
1354
- }
1355
- if (!senderGroupAccess.allowed && senderGroupAccess.reason === "empty_allowlist") {
1356
- logVerbose("Blocked line group message (groupPolicy: allowlist, no groupAllowFrom)");
1357
- return denied;
1358
- }
1359
- if (!senderGroupAccess.allowed && senderGroupAccess.reason === "not_allowlisted") {
1360
- logVerbose(`Blocked line group message from ${senderId} (groupPolicy: allowlist)`);
1361
- return denied;
1362
- }
1363
- return {
1364
- allowed: true,
1365
- commandAuthorized: resolveLineCommandAuthorized({
1366
- cfg,
1367
- event,
1368
- senderId,
1369
- allow: effectiveGroupAllow
1370
- })
1371
- };
1372
- }
1373
- if (dmPolicy === "disabled") {
1374
- logVerbose("Blocked line sender (dmPolicy: disabled)");
1375
- return denied;
1376
- }
1377
- if (!(dmPolicy === "open" || isSenderAllowed({
1378
- allow: effectiveDmAllow,
1379
- senderId
1380
- }))) {
1381
- if (dmPolicy === "pairing") {
1382
- if (!senderId) {
1383
- logVerbose("Blocked line sender (dmPolicy: pairing, no sender ID)");
1384
- return denied;
1385
- }
1386
- await sendLinePairingReply({
1387
- senderId,
1388
- replyToken: "replyToken" in event ? event.replyToken : void 0,
1389
- context
1390
- });
1391
- } else logVerbose(`Blocked line sender ${senderId || "unknown"} (dmPolicy: ${dmPolicy})`);
1392
- return denied;
1393
- }
1394
- return {
1395
- allowed: true,
1396
- commandAuthorized: resolveLineCommandAuthorized({
1397
- cfg,
1398
- event,
1399
- senderId,
1400
- allow: effectiveDmAllow
1401
- })
1402
- };
1403
- }
1404
- function getLineMentionees(message) {
1405
- if (message.type !== "text") return [];
1406
- const mentionees = message.mention?.mentionees;
1407
- return Array.isArray(mentionees) ? mentionees : [];
1408
- }
1409
- function isLineBotMentioned(message) {
1410
- return getLineMentionees(message).some((m) => m.isSelf === true || m.type === "all");
1411
- }
1412
- function hasAnyLineMention(message) {
1413
- return getLineMentionees(message).length > 0;
1414
- }
1415
- function resolveEventRawText(event) {
1416
- if (event.type === "message") {
1417
- const msg = event.message;
1418
- if (msg.type === "text") return msg.text;
1419
- return "";
1420
- }
1421
- if (event.type === "postback") return event.postback?.data?.trim() ?? "";
1422
- return "";
1423
- }
1424
- function resolveLineCommandAuthorized(params) {
1425
- const senderAllowedForCommands = isSenderAllowed({
1426
- allow: params.allow,
1427
- senderId: params.senderId
1428
- });
1429
- const useAccessGroups = params.cfg.commands?.useAccessGroups !== false;
1430
- const rawText = resolveEventRawText(params.event);
1431
- return resolveControlCommandGate({
1432
- useAccessGroups,
1433
- authorizers: [{
1434
- configured: params.allow.hasEntries,
1435
- allowed: senderAllowedForCommands
1436
- }],
1437
- allowTextCommands: true,
1438
- hasControlCommand: hasControlCommand(rawText, params.cfg)
1439
- }).commandAuthorized;
1440
- }
1441
- async function handleMessageEvent(event, context) {
1442
- const { cfg, account, runtime, mediaMaxBytes, processMessage } = context;
1443
- const message = event.message;
1444
- const decision = await shouldProcessLineEvent(event, context);
1445
- if (!decision.allowed) return;
1446
- const { isGroup, groupId, roomId } = getLineSourceInfo(event.source);
1447
- if (isGroup) {
1448
- const requireMention = resolveLineGroupConfig({
1449
- config: account.config,
1450
- groupId,
1451
- roomId
1452
- })?.requireMention !== false;
1453
- const rawText = message.type === "text" ? message.text : "";
1454
- const peerId = groupId ?? roomId ?? event.source.userId ?? "unknown";
1455
- const { agentId } = resolveAgentRoute({
1456
- cfg,
1457
- channel: "line",
1458
- accountId: account.accountId,
1459
- peer: {
1460
- kind: "group",
1461
- id: peerId
1462
- }
1463
- });
1464
- const mentionRegexes = buildMentionRegexes(cfg, agentId);
1465
- const wasMentionedByNative = isLineBotMentioned(message);
1466
- const wasMentionedByPattern = message.type === "text" ? matchesMentionPatterns(rawText, mentionRegexes) : false;
1467
- const wasMentioned = wasMentionedByNative || wasMentionedByPattern;
1468
- if (resolveMentionGatingWithBypass({
1469
- isGroup: true,
1470
- requireMention,
1471
- canDetectMention: message.type === "text",
1472
- wasMentioned,
1473
- hasAnyMention: hasAnyLineMention(message),
1474
- allowTextCommands: true,
1475
- hasControlCommand: hasControlCommand(rawText, cfg),
1476
- commandAuthorized: decision.commandAuthorized
1477
- }).shouldSkip) {
1478
- logVerbose(`line: skipping group message (requireMention, not mentioned)`);
1479
- const historyKey = groupId ?? roomId;
1480
- const senderId = event.source.type === "group" || event.source.type === "room" ? event.source.userId ?? "unknown" : "unknown";
1481
- if (historyKey && context.groupHistories) recordPendingHistoryEntryIfEnabled({
1482
- historyMap: context.groupHistories,
1483
- historyKey,
1484
- limit: context.historyLimit ?? 50,
1485
- entry: {
1486
- sender: `user:${senderId}`,
1487
- body: rawText || `<${message.type}>`,
1488
- timestamp: event.timestamp
1489
- }
1490
- });
1491
- return;
1492
- }
1493
- }
1494
- const allMedia = [];
1495
- if (isDownloadableLineMessageType(message.type)) try {
1496
- const media = await downloadLineMedia(message.id, account.channelAccessToken, mediaMaxBytes);
1497
- allMedia.push({
1498
- path: media.path,
1499
- contentType: media.contentType
1500
- });
1501
- } catch (err) {
1502
- const errMsg = String(err);
1503
- if (errMsg.includes("exceeds") && errMsg.includes("limit")) logVerbose(`line: media exceeds size limit for message ${message.id}`);
1504
- else runtime.error?.(danger(`line: failed to download media: ${errMsg}`));
1505
- }
1506
- const messageContext = await buildLineMessageContext({
1507
- event,
1508
- allMedia,
1509
- cfg,
1510
- account,
1511
- commandAuthorized: decision.commandAuthorized,
1512
- groupHistories: context.groupHistories,
1513
- historyLimit: context.historyLimit ?? 50
1514
- });
1515
- if (!messageContext) {
1516
- logVerbose("line: skipping empty message");
1517
- return;
1518
- }
1519
- await processMessage(messageContext);
1520
- if (isGroup && context.groupHistories) {
1521
- const historyKey = groupId ?? roomId;
1522
- if (historyKey && context.groupHistories.has(historyKey)) clearHistoryEntriesIfEnabled({
1523
- historyMap: context.groupHistories,
1524
- historyKey,
1525
- limit: context.historyLimit ?? 50
1526
- });
1527
- }
1528
- }
1529
- async function handleFollowEvent(event, _context) {
1530
- logVerbose(`line: user ${(event.source.type === "user" ? event.source.userId : void 0) ?? "unknown"} followed`);
1531
- }
1532
- async function handleUnfollowEvent(event, _context) {
1533
- logVerbose(`line: user ${(event.source.type === "user" ? event.source.userId : void 0) ?? "unknown"} unfollowed`);
1534
- }
1535
- async function handleJoinEvent(event, _context) {
1536
- const groupId = event.source.type === "group" ? event.source.groupId : void 0;
1537
- const roomId = event.source.type === "room" ? event.source.roomId : void 0;
1538
- logVerbose(`line: bot joined ${groupId ? `group ${groupId}` : `room ${roomId}`}`);
1539
- }
1540
- async function handleLeaveEvent(event, _context) {
1541
- const groupId = event.source.type === "group" ? event.source.groupId : void 0;
1542
- const roomId = event.source.type === "room" ? event.source.roomId : void 0;
1543
- logVerbose(`line: bot left ${groupId ? `group ${groupId}` : `room ${roomId}`}`);
1544
- }
1545
- async function handlePostbackEvent(event, context) {
1546
- const data = event.postback.data;
1547
- logVerbose(`line: received postback: ${data}`);
1548
- const decision = await shouldProcessLineEvent(event, context);
1549
- if (!decision.allowed) return;
1550
- const postbackContext = await buildLinePostbackContext({
1551
- event,
1552
- cfg: context.cfg,
1553
- account: context.account,
1554
- commandAuthorized: decision.commandAuthorized
1555
- });
1556
- if (!postbackContext) return;
1557
- await context.processMessage(postbackContext);
1558
- }
1559
- async function handleLineWebhookEvents(events, context) {
1560
- let firstError;
1561
- for (const event of events) {
1562
- const replayCandidate = getLineReplayCandidate(event, context);
1563
- const replaySkip = replayCandidate ? shouldSkipLineReplayEvent(replayCandidate) : null;
1564
- if (replaySkip?.skip) {
1565
- if (replaySkip.inFlightResult) try {
1566
- await replaySkip.inFlightResult;
1567
- } catch (err) {
1568
- context.runtime.error?.(danger(`line: replayed in-flight event failed: ${String(err)}`));
1569
- firstError ??= err;
1570
- }
1571
- continue;
1572
- }
1573
- const inFlightReservation = replayCandidate ? markLineReplayEventInFlight(replayCandidate) : null;
1574
- try {
1575
- switch (event.type) {
1576
- case "message":
1577
- await handleMessageEvent(event, context);
1578
- break;
1579
- case "follow":
1580
- await handleFollowEvent(event, context);
1581
- break;
1582
- case "unfollow":
1583
- await handleUnfollowEvent(event, context);
1584
- break;
1585
- case "join":
1586
- await handleJoinEvent(event, context);
1587
- break;
1588
- case "leave":
1589
- await handleLeaveEvent(event, context);
1590
- break;
1591
- case "postback":
1592
- await handlePostbackEvent(event, context);
1593
- break;
1594
- default: logVerbose(`line: unhandled event type: ${event.type}`);
1595
- }
1596
- if (replayCandidate) {
1597
- rememberLineReplayEvent(replayCandidate);
1598
- inFlightReservation?.resolve();
1599
- clearLineReplayEventInFlight(replayCandidate);
1600
- }
1601
- } catch (err) {
1602
- if (replayCandidate) {
1603
- inFlightReservation?.reject(err);
1604
- clearLineReplayEventInFlight(replayCandidate);
1605
- }
1606
- context.runtime.error?.(danger(`line: event handler failed: ${String(err)}`));
1607
- firstError ??= err;
1608
- }
1609
- }
1610
- if (firstError) throw firstError;
1611
- }
1612
- //#endregion
1613
- //#region extensions/line/src/signature.ts
1614
- function validateLineSignature(body, signature, channelSecret) {
1615
- const hash = crypto.createHmac("SHA256", channelSecret).update(body).digest("base64");
1616
- const hashBuffer = Buffer.from(hash);
1617
- const signatureBuffer = Buffer.from(signature);
1618
- const maxLen = Math.max(hashBuffer.length, signatureBuffer.length);
1619
- const paddedHash = Buffer.alloc(maxLen);
1620
- const paddedSig = Buffer.alloc(maxLen);
1621
- hashBuffer.copy(paddedHash);
1622
- signatureBuffer.copy(paddedSig);
1623
- const timingResult = crypto.timingSafeEqual(paddedHash, paddedSig);
1624
- return hashBuffer.length === signatureBuffer.length && timingResult;
1625
- }
1626
- //#endregion
1627
- //#region extensions/line/src/webhook-utils.ts
1628
- function parseLineWebhookBody(rawBody) {
1629
- try {
1630
- return JSON.parse(rawBody);
1631
- } catch {
1632
- return null;
1633
- }
1634
- }
1635
- //#endregion
1636
- //#region extensions/line/src/webhook.ts
1637
- const LINE_WEBHOOK_MAX_RAW_BODY_BYTES = 64 * 1024;
1638
- function readRawBody(req) {
1639
- const rawBody = req.rawBody ?? (typeof req.body === "string" || Buffer.isBuffer(req.body) ? req.body : null);
1640
- if (!rawBody) return null;
1641
- return Buffer.isBuffer(rawBody) ? rawBody.toString("utf-8") : rawBody;
1642
- }
1643
- function parseWebhookBody(rawBody) {
1644
- if (!rawBody) return null;
1645
- return parseLineWebhookBody(rawBody);
1646
- }
1647
- function createLineWebhookMiddleware(options) {
1648
- const { channelSecret, onEvents, runtime } = options;
1649
- return async (req, res, _next) => {
1650
- try {
1651
- const signature = req.headers["x-line-signature"];
1652
- if (!signature || typeof signature !== "string") {
1653
- res.status(400).json({ error: "Missing X-Line-Signature header" });
1654
- return;
1655
- }
1656
- const rawBody = readRawBody(req);
1657
- if (!rawBody) {
1658
- res.status(400).json({ error: "Missing raw request body for signature verification" });
1659
- return;
1660
- }
1661
- if (Buffer.byteLength(rawBody, "utf-8") > LINE_WEBHOOK_MAX_RAW_BODY_BYTES) {
1662
- res.status(413).json({ error: "Payload too large" });
1663
- return;
1664
- }
1665
- if (!validateLineSignature(rawBody, signature, channelSecret)) {
1666
- logVerbose("line: webhook signature validation failed");
1667
- res.status(401).json({ error: "Invalid signature" });
1668
- return;
1669
- }
1670
- const body = parseWebhookBody(rawBody);
1671
- if (!body) {
1672
- res.status(400).json({ error: "Invalid webhook payload" });
1673
- return;
1674
- }
1675
- if (body.events && body.events.length > 0) {
1676
- logVerbose(`line: received ${body.events.length} webhook events`);
1677
- await onEvents(body);
1678
- }
1679
- res.status(200).json({ status: "ok" });
1680
- } catch (err) {
1681
- runtime?.error?.(danger(`line webhook error: ${String(err)}`));
1682
- if (!res.headersSent) res.status(500).json({ error: "Internal server error" });
1683
- }
1684
- };
1685
- }
1686
- function startLineWebhook(options) {
1687
- const channelSecret = typeof options.channelSecret === "string" ? options.channelSecret.trim() : "";
1688
- if (!channelSecret) throw new Error("LINE webhook mode requires a non-empty channel secret. Set channels.line.channelSecret in your config.");
1689
- return {
1690
- path: options.path ?? "/line/webhook",
1691
- handler: createLineWebhookMiddleware({
1692
- channelSecret,
1693
- onEvents: options.onEvents,
1694
- runtime: options.runtime
1695
- })
1696
- };
1697
- }
1698
- //#endregion
1699
- //#region extensions/line/src/bot.ts
1700
- function createLineBot(opts) {
1701
- const runtime = opts.runtime ?? createNonExitingRuntime();
1702
- const cfg = opts.config ?? loadConfig();
1703
- const account = resolveLineAccount({
1704
- cfg,
1705
- accountId: opts.accountId
1706
- });
1707
- const mediaMaxBytes = (opts.mediaMaxMb ?? account.config.mediaMaxMb ?? 10) * 1024 * 1024;
1708
- const processMessage = opts.onMessage ?? (async () => {
1709
- logVerbose("line: no message handler configured");
1710
- });
1711
- const replayCache = createLineWebhookReplayCache();
1712
- const groupHistories = /* @__PURE__ */ new Map();
1713
- const handleWebhook = async (body) => {
1714
- if (!body.events || body.events.length === 0) return;
1715
- await handleLineWebhookEvents(body.events, {
1716
- cfg,
1717
- account,
1718
- runtime,
1719
- mediaMaxBytes,
1720
- processMessage,
1721
- replayCache,
1722
- groupHistories,
1723
- historyLimit: cfg.messages?.groupChat?.historyLimit ?? 50
1724
- });
1725
- };
1726
- return {
1727
- handleWebhook,
1728
- account
1729
- };
1730
- }
1731
- //#endregion
1732
- //#region extensions/line/src/flex-templates/common.ts
1733
- function attachFooterText(bubble, footer) {
1734
- bubble.footer = {
1735
- type: "box",
1736
- layout: "vertical",
1737
- contents: [{
1738
- type: "text",
1739
- text: footer,
1740
- size: "xs",
1741
- color: "#AAAAAA",
1742
- wrap: true,
1743
- align: "center"
1744
- }],
1745
- paddingAll: "lg",
1746
- backgroundColor: "#FAFAFA"
1747
- };
1748
- }
1749
- //#endregion
1750
- //#region extensions/line/src/flex-templates/basic-cards.ts
1751
- /**
1752
- * Create an info card with title, body, and optional footer
1753
- *
1754
- * Editorial design: Clean hierarchy with accent bar, generous spacing,
1755
- * and subtle background zones for visual separation.
1756
- */
1757
- function createInfoCard(title, body, footer) {
1758
- const bubble = {
1759
- type: "bubble",
1760
- size: "mega",
1761
- body: {
1762
- type: "box",
1763
- layout: "vertical",
1764
- contents: [{
1765
- type: "box",
1766
- layout: "horizontal",
1767
- contents: [{
1768
- type: "box",
1769
- layout: "vertical",
1770
- contents: [],
1771
- width: "4px",
1772
- backgroundColor: "#06C755",
1773
- cornerRadius: "2px"
1774
- }, {
1775
- type: "text",
1776
- text: title,
1777
- weight: "bold",
1778
- size: "xl",
1779
- color: "#111111",
1780
- wrap: true,
1781
- flex: 1,
1782
- margin: "lg"
1783
- }]
1784
- }, {
1785
- type: "box",
1786
- layout: "vertical",
1787
- contents: [{
1788
- type: "text",
1789
- text: body,
1790
- size: "md",
1791
- color: "#444444",
1792
- wrap: true,
1793
- lineSpacing: "6px"
1794
- }],
1795
- margin: "xl",
1796
- paddingAll: "lg",
1797
- backgroundColor: "#F8F9FA",
1798
- cornerRadius: "lg"
1799
- }],
1800
- paddingAll: "xl",
1801
- backgroundColor: "#FFFFFF"
1802
- }
1803
- };
1804
- if (footer) attachFooterText(bubble, footer);
1805
- return bubble;
1806
- }
1807
- /**
1808
- * Create a list card with title and multiple items
1809
- *
1810
- * Editorial design: Numbered/bulleted list with clear visual hierarchy,
1811
- * accent dots for each item, and generous spacing.
1812
- */
1813
- function createListCard(title, items) {
1814
- const itemContents = items.slice(0, 8).map((item, index) => {
1815
- const itemContents = [{
1816
- type: "text",
1817
- text: item.title,
1818
- size: "md",
1819
- weight: "bold",
1820
- color: "#1a1a1a",
1821
- wrap: true
1822
- }];
1823
- if (item.subtitle) itemContents.push({
1824
- type: "text",
1825
- text: item.subtitle,
1826
- size: "sm",
1827
- color: "#888888",
1828
- wrap: true,
1829
- margin: "xs"
1830
- });
1831
- const itemBox = {
1832
- type: "box",
1833
- layout: "horizontal",
1834
- contents: [{
1835
- type: "box",
1836
- layout: "vertical",
1837
- contents: [{
1838
- type: "box",
1839
- layout: "vertical",
1840
- contents: [],
1841
- width: "8px",
1842
- height: "8px",
1843
- backgroundColor: index === 0 ? "#06C755" : "#DDDDDD",
1844
- cornerRadius: "4px"
1845
- }],
1846
- width: "20px",
1847
- alignItems: "center",
1848
- paddingTop: "sm"
1849
- }, {
1850
- type: "box",
1851
- layout: "vertical",
1852
- contents: itemContents,
1853
- flex: 1
1854
- }],
1855
- margin: index > 0 ? "lg" : void 0
1856
- };
1857
- if (item.action) itemBox.action = item.action;
1858
- return itemBox;
1859
- });
1860
- return {
1861
- type: "bubble",
1862
- size: "mega",
1863
- body: {
1864
- type: "box",
1865
- layout: "vertical",
1866
- contents: [
1867
- {
1868
- type: "text",
1869
- text: title,
1870
- weight: "bold",
1871
- size: "xl",
1872
- color: "#111111",
1873
- wrap: true
1874
- },
1875
- {
1876
- type: "separator",
1877
- margin: "lg",
1878
- color: "#EEEEEE"
1879
- },
1880
- {
1881
- type: "box",
1882
- layout: "vertical",
1883
- contents: itemContents,
1884
- margin: "lg"
1885
- }
1886
- ],
1887
- paddingAll: "xl",
1888
- backgroundColor: "#FFFFFF"
1889
- }
1890
- };
1891
- }
1892
- /**
1893
- * Create an image card with image, title, and optional body text
1894
- */
1895
- function createImageCard(imageUrl, title, body, options) {
1896
- const bubble = {
1897
- type: "bubble",
1898
- hero: {
1899
- type: "image",
1900
- url: imageUrl,
1901
- size: "full",
1902
- aspectRatio: options?.aspectRatio ?? "20:13",
1903
- aspectMode: options?.aspectMode ?? "cover",
1904
- action: options?.action
1905
- },
1906
- body: {
1907
- type: "box",
1908
- layout: "vertical",
1909
- contents: [{
1910
- type: "text",
1911
- text: title,
1912
- weight: "bold",
1913
- size: "xl",
1914
- wrap: true
1915
- }],
1916
- paddingAll: "lg"
1917
- }
1918
- };
1919
- if (body && bubble.body) bubble.body.contents.push({
1920
- type: "text",
1921
- text: body,
1922
- size: "md",
1923
- wrap: true,
1924
- margin: "md",
1925
- color: "#666666"
1926
- });
1927
- return bubble;
1928
- }
1929
- /**
1930
- * Create an action card with title, body, and action buttons
1931
- */
1932
- function createActionCard(title, body, actions, options) {
1933
- const bubble = {
1934
- type: "bubble",
1935
- body: {
1936
- type: "box",
1937
- layout: "vertical",
1938
- contents: [{
1939
- type: "text",
1940
- text: title,
1941
- weight: "bold",
1942
- size: "xl",
1943
- wrap: true
1944
- }, {
1945
- type: "text",
1946
- text: body,
1947
- size: "md",
1948
- wrap: true,
1949
- margin: "md",
1950
- color: "#666666"
1951
- }],
1952
- paddingAll: "lg"
1953
- },
1954
- footer: {
1955
- type: "box",
1956
- layout: "vertical",
1957
- contents: actions.slice(0, 4).map((action, index) => ({
1958
- type: "button",
1959
- action: action.action,
1960
- style: index === 0 ? "primary" : "secondary",
1961
- margin: index > 0 ? "sm" : void 0
1962
- })),
1963
- paddingAll: "md"
1964
- }
1965
- };
1966
- if (options?.imageUrl) bubble.hero = {
1967
- type: "image",
1968
- url: options.imageUrl,
1969
- size: "full",
1970
- aspectRatio: options.aspectRatio ?? "20:13",
1971
- aspectMode: "cover"
1972
- };
1973
- return bubble;
1974
- }
1975
- /**
1976
- * Create a carousel container from multiple bubbles
1977
- * LINE allows max 12 bubbles in a carousel
1978
- */
1979
- function createCarousel(bubbles) {
1980
- return {
1981
- type: "carousel",
1982
- contents: bubbles.slice(0, 12)
1983
- };
1984
- }
1985
- /**
1986
- * Create a notification bubble (for alerts, status updates)
1987
- *
1988
- * Editorial design: Bold status indicator with accent color,
1989
- * clear typography, optional icon for context.
1990
- */
1991
- function createNotificationBubble(text, options) {
1992
- const typeColors = {
1993
- info: {
1994
- accent: "#3B82F6",
1995
- bg: "#EFF6FF"
1996
- },
1997
- success: {
1998
- accent: "#06C755",
1999
- bg: "#F0FDF4"
2000
- },
2001
- warning: {
2002
- accent: "#F59E0B",
2003
- bg: "#FFFBEB"
2004
- },
2005
- error: {
2006
- accent: "#EF4444",
2007
- bg: "#FEF2F2"
2008
- }
2009
- }[options?.type ?? "info"];
2010
- const contents = [];
2011
- contents.push({
2012
- type: "box",
2013
- layout: "vertical",
2014
- contents: [],
2015
- width: "4px",
2016
- backgroundColor: typeColors.accent,
2017
- cornerRadius: "2px"
2018
- });
2019
- const textContents = [];
2020
- if (options?.title) textContents.push({
2021
- type: "text",
2022
- text: options.title,
2023
- size: "md",
2024
- weight: "bold",
2025
- color: "#111111",
2026
- wrap: true
2027
- });
2028
- textContents.push({
2029
- type: "text",
2030
- text,
2031
- size: options?.title ? "sm" : "md",
2032
- color: options?.title ? "#666666" : "#333333",
2033
- wrap: true,
2034
- margin: options?.title ? "sm" : void 0
2035
- });
2036
- contents.push({
2037
- type: "box",
2038
- layout: "vertical",
2039
- contents: textContents,
2040
- flex: 1,
2041
- paddingStart: "lg"
2042
- });
2043
- return {
2044
- type: "bubble",
2045
- body: {
2046
- type: "box",
2047
- layout: "horizontal",
2048
- contents,
2049
- paddingAll: "xl",
2050
- backgroundColor: typeColors.bg
2051
- }
2052
- };
2053
- }
2054
- //#endregion
2055
- //#region extensions/line/src/flex-templates/schedule-cards.ts
2056
- function buildTitleSubtitleHeader(params) {
2057
- const { title, subtitle } = params;
2058
- const headerContents = [{
2059
- type: "text",
2060
- text: title,
2061
- weight: "bold",
2062
- size: "xl",
2063
- color: "#111111",
2064
- wrap: true
2065
- }];
2066
- if (subtitle) headerContents.push({
2067
- type: "text",
2068
- text: subtitle,
2069
- size: "sm",
2070
- color: "#888888",
2071
- margin: "sm",
2072
- wrap: true
2073
- });
2074
- return headerContents;
2075
- }
2076
- function buildCardHeaderSections(headerContents) {
2077
- return [{
2078
- type: "box",
2079
- layout: "vertical",
2080
- contents: headerContents,
2081
- paddingBottom: "lg"
2082
- }, {
2083
- type: "separator",
2084
- color: "#EEEEEE"
2085
- }];
2086
- }
2087
- function createMegaBubbleWithFooter(params) {
2088
- const bubble = {
2089
- type: "bubble",
2090
- size: "mega",
2091
- body: {
2092
- type: "box",
2093
- layout: "vertical",
2094
- contents: params.bodyContents,
2095
- paddingAll: "xl",
2096
- backgroundColor: "#FFFFFF"
2097
- }
2098
- };
2099
- if (params.footer) attachFooterText(bubble, params.footer);
2100
- return bubble;
2101
- }
2102
- /**
2103
- * Create a receipt/summary card (for orders, transactions, data tables)
2104
- *
2105
- * Editorial design: Clean table layout with alternating row backgrounds,
2106
- * prominent total section, and clear visual hierarchy.
2107
- */
2108
- function createReceiptCard(params) {
2109
- const { title, subtitle, items, total, footer } = params;
2110
- const itemRows = items.slice(0, 12).map((item, index) => ({
2111
- type: "box",
2112
- layout: "horizontal",
2113
- contents: [{
2114
- type: "text",
2115
- text: item.name,
2116
- size: "sm",
2117
- color: item.highlight ? "#111111" : "#666666",
2118
- weight: item.highlight ? "bold" : "regular",
2119
- flex: 3,
2120
- wrap: true
2121
- }, {
2122
- type: "text",
2123
- text: item.value,
2124
- size: "sm",
2125
- color: item.highlight ? "#06C755" : "#333333",
2126
- weight: item.highlight ? "bold" : "regular",
2127
- flex: 2,
2128
- align: "end",
2129
- wrap: true
2130
- }],
2131
- paddingAll: "md",
2132
- backgroundColor: index % 2 === 0 ? "#FFFFFF" : "#FAFAFA"
2133
- }));
2134
- const bodyContents = [...buildCardHeaderSections(buildTitleSubtitleHeader({
2135
- title,
2136
- subtitle
2137
- })), {
2138
- type: "box",
2139
- layout: "vertical",
2140
- contents: itemRows,
2141
- margin: "md",
2142
- cornerRadius: "md",
2143
- borderWidth: "light",
2144
- borderColor: "#EEEEEE"
2145
- }];
2146
- if (total) bodyContents.push({
2147
- type: "box",
2148
- layout: "horizontal",
2149
- contents: [{
2150
- type: "text",
2151
- text: total.label,
2152
- size: "lg",
2153
- weight: "bold",
2154
- color: "#111111",
2155
- flex: 2
2156
- }, {
2157
- type: "text",
2158
- text: total.value,
2159
- size: "xl",
2160
- weight: "bold",
2161
- color: "#06C755",
2162
- flex: 2,
2163
- align: "end"
2164
- }],
2165
- margin: "xl",
2166
- paddingAll: "lg",
2167
- backgroundColor: "#F0FDF4",
2168
- cornerRadius: "lg"
2169
- });
2170
- return createMegaBubbleWithFooter({
2171
- bodyContents,
2172
- footer
2173
- });
2174
- }
2175
- /**
2176
- * Create a calendar event card (for meetings, appointments, reminders)
2177
- *
2178
- * Editorial design: Date as hero, strong typographic hierarchy,
2179
- * color-blocked zones, full text wrapping for readability.
2180
- */
2181
- function createEventCard(params) {
2182
- const { title, date, time, location, description, calendar, isAllDay, action } = params;
2183
- const dateBlock = {
2184
- type: "box",
2185
- layout: "vertical",
2186
- contents: [{
2187
- type: "text",
2188
- text: date.toUpperCase(),
2189
- size: "sm",
2190
- weight: "bold",
2191
- color: "#06C755",
2192
- wrap: true
2193
- }, {
2194
- type: "text",
2195
- text: isAllDay ? "ALL DAY" : time ?? "",
2196
- size: "xxl",
2197
- weight: "bold",
2198
- color: "#111111",
2199
- wrap: true,
2200
- margin: "xs"
2201
- }],
2202
- paddingBottom: "lg",
2203
- borderWidth: "none"
2204
- };
2205
- if (!time && !isAllDay) dateBlock.contents = [{
2206
- type: "text",
2207
- text: date,
2208
- size: "xl",
2209
- weight: "bold",
2210
- color: "#111111",
2211
- wrap: true
2212
- }];
2213
- const bodyContents = [dateBlock, {
2214
- type: "box",
2215
- layout: "horizontal",
2216
- contents: [{
2217
- type: "box",
2218
- layout: "vertical",
2219
- contents: [],
2220
- width: "4px",
2221
- backgroundColor: "#06C755",
2222
- cornerRadius: "2px"
2223
- }, {
2224
- type: "box",
2225
- layout: "vertical",
2226
- contents: [{
2227
- type: "text",
2228
- text: title,
2229
- size: "lg",
2230
- weight: "bold",
2231
- color: "#1a1a1a",
2232
- wrap: true
2233
- }, ...calendar ? [{
2234
- type: "text",
2235
- text: calendar,
2236
- size: "xs",
2237
- color: "#888888",
2238
- margin: "sm",
2239
- wrap: true
2240
- }] : []],
2241
- flex: 1,
2242
- paddingStart: "lg"
2243
- }],
2244
- paddingTop: "lg",
2245
- paddingBottom: "lg",
2246
- borderWidth: "light",
2247
- borderColor: "#EEEEEE"
2248
- }];
2249
- if (location || description) {
2250
- const detailItems = [];
2251
- if (location) detailItems.push({
2252
- type: "box",
2253
- layout: "horizontal",
2254
- contents: [{
2255
- type: "text",
2256
- text: "📍",
2257
- size: "sm",
2258
- flex: 0
2259
- }, {
2260
- type: "text",
2261
- text: location,
2262
- size: "sm",
2263
- color: "#444444",
2264
- margin: "md",
2265
- flex: 1,
2266
- wrap: true
2267
- }],
2268
- alignItems: "flex-start"
2269
- });
2270
- if (description) detailItems.push({
2271
- type: "text",
2272
- text: description,
2273
- size: "sm",
2274
- color: "#666666",
2275
- wrap: true,
2276
- margin: location ? "lg" : "none"
2277
- });
2278
- bodyContents.push({
2279
- type: "box",
2280
- layout: "vertical",
2281
- contents: detailItems,
2282
- margin: "lg",
2283
- paddingAll: "lg",
2284
- backgroundColor: "#F8F9FA",
2285
- cornerRadius: "lg"
2286
- });
2287
- }
2288
- return {
2289
- type: "bubble",
2290
- size: "mega",
2291
- body: {
2292
- type: "box",
2293
- layout: "vertical",
2294
- contents: bodyContents,
2295
- paddingAll: "xl",
2296
- backgroundColor: "#FFFFFF",
2297
- action
2298
- }
2299
- };
2300
- }
2301
- /**
2302
- * Create a calendar agenda card showing multiple events
2303
- *
2304
- * Editorial timeline design: Time-focused left column with event details
2305
- * on the right. Visual accent bars indicate event priority/recency.
2306
- */
2307
- function createAgendaCard(params) {
2308
- const { title, subtitle, events, footer } = params;
2309
- const headerContents = buildTitleSubtitleHeader({
2310
- title,
2311
- subtitle
2312
- });
2313
- const eventItems = events.slice(0, 6).map((event, index) => {
2314
- const isActive = event.isNow || index === 0;
2315
- const accentColor = isActive ? "#06C755" : "#E5E5E5";
2316
- const timeColumn = {
2317
- type: "box",
2318
- layout: "vertical",
2319
- contents: [{
2320
- type: "text",
2321
- text: event.time ?? "—",
2322
- size: "sm",
2323
- weight: isActive ? "bold" : "regular",
2324
- color: isActive ? "#06C755" : "#666666",
2325
- align: "end",
2326
- wrap: true
2327
- }],
2328
- width: "65px",
2329
- justifyContent: "flex-start"
2330
- };
2331
- const dotColumn = {
2332
- type: "box",
2333
- layout: "vertical",
2334
- contents: [{
2335
- type: "box",
2336
- layout: "vertical",
2337
- contents: [],
2338
- width: "10px",
2339
- height: "10px",
2340
- backgroundColor: accentColor,
2341
- cornerRadius: "5px"
2342
- }],
2343
- width: "24px",
2344
- alignItems: "center",
2345
- justifyContent: "flex-start",
2346
- paddingTop: "xs"
2347
- };
2348
- const detailContents = [{
2349
- type: "text",
2350
- text: event.title,
2351
- size: "md",
2352
- weight: "bold",
2353
- color: "#1a1a1a",
2354
- wrap: true
2355
- }];
2356
- const secondaryParts = [];
2357
- if (event.location) secondaryParts.push(event.location);
2358
- if (event.calendar) secondaryParts.push(event.calendar);
2359
- if (secondaryParts.length > 0) detailContents.push({
2360
- type: "text",
2361
- text: secondaryParts.join(" · "),
2362
- size: "xs",
2363
- color: "#888888",
2364
- wrap: true,
2365
- margin: "xs"
2366
- });
2367
- return {
2368
- type: "box",
2369
- layout: "horizontal",
2370
- contents: [
2371
- timeColumn,
2372
- dotColumn,
2373
- {
2374
- type: "box",
2375
- layout: "vertical",
2376
- contents: detailContents,
2377
- flex: 1
2378
- }
2379
- ],
2380
- margin: index > 0 ? "xl" : void 0,
2381
- alignItems: "flex-start"
2382
- };
2383
- });
2384
- return createMegaBubbleWithFooter({
2385
- bodyContents: [...buildCardHeaderSections(headerContents), {
2386
- type: "box",
2387
- layout: "vertical",
2388
- contents: eventItems,
2389
- paddingTop: "xl"
2390
- }],
2391
- footer
2392
- });
2393
- }
2394
- //#endregion
2395
- //#region extensions/line/src/flex-templates/media-control-cards.ts
2396
- /**
2397
- * Create a media player card for Sonos, Spotify, Apple Music, etc.
2398
- *
2399
- * Editorial design: Album art hero with gradient overlay for text,
2400
- * prominent now-playing indicator, refined playback controls.
2401
- */
2402
- function createMediaPlayerCard(params) {
2403
- const { title, subtitle, source, imageUrl, isPlaying, progress, controls, extraActions } = params;
2404
- const trackInfo = [{
2405
- type: "text",
2406
- text: title,
2407
- weight: "bold",
2408
- size: "xl",
2409
- color: "#111111",
2410
- wrap: true
2411
- }];
2412
- if (subtitle) trackInfo.push({
2413
- type: "text",
2414
- text: subtitle,
2415
- size: "md",
2416
- color: "#666666",
2417
- wrap: true,
2418
- margin: "sm"
2419
- });
2420
- const statusItems = [];
2421
- if (isPlaying !== void 0) statusItems.push({
2422
- type: "box",
2423
- layout: "horizontal",
2424
- contents: [{
2425
- type: "box",
2426
- layout: "vertical",
2427
- contents: [],
2428
- width: "8px",
2429
- height: "8px",
2430
- backgroundColor: isPlaying ? "#06C755" : "#CCCCCC",
2431
- cornerRadius: "4px"
2432
- }, {
2433
- type: "text",
2434
- text: isPlaying ? "Now Playing" : "Paused",
2435
- size: "xs",
2436
- color: isPlaying ? "#06C755" : "#888888",
2437
- weight: "bold",
2438
- margin: "sm"
2439
- }],
2440
- alignItems: "center"
2441
- });
2442
- if (source) statusItems.push({
2443
- type: "text",
2444
- text: source,
2445
- size: "xs",
2446
- color: "#AAAAAA",
2447
- margin: statusItems.length > 0 ? "lg" : void 0
2448
- });
2449
- if (progress) statusItems.push({
2450
- type: "text",
2451
- text: progress,
2452
- size: "xs",
2453
- color: "#888888",
2454
- align: "end",
2455
- flex: 1
2456
- });
2457
- const bodyContents = [{
2458
- type: "box",
2459
- layout: "vertical",
2460
- contents: trackInfo
2461
- }];
2462
- if (statusItems.length > 0) bodyContents.push({
2463
- type: "box",
2464
- layout: "horizontal",
2465
- contents: statusItems,
2466
- margin: "lg",
2467
- alignItems: "center"
2468
- });
2469
- const bubble = {
2470
- type: "bubble",
2471
- size: "mega",
2472
- body: {
2473
- type: "box",
2474
- layout: "vertical",
2475
- contents: bodyContents,
2476
- paddingAll: "xl",
2477
- backgroundColor: "#FFFFFF"
2478
- }
2479
- };
2480
- if (imageUrl) bubble.hero = {
2481
- type: "image",
2482
- url: imageUrl,
2483
- size: "full",
2484
- aspectRatio: "1:1",
2485
- aspectMode: "cover"
2486
- };
2487
- if (controls || extraActions?.length) {
2488
- const footerContents = [];
2489
- if (controls) {
2490
- const controlButtons = [];
2491
- if (controls.previous) controlButtons.push({
2492
- type: "button",
2493
- action: {
2494
- type: "postback",
2495
- label: "⏮",
2496
- data: controls.previous.data
2497
- },
2498
- style: "secondary",
2499
- flex: 1,
2500
- height: "sm"
2501
- });
2502
- if (controls.play) controlButtons.push({
2503
- type: "button",
2504
- action: {
2505
- type: "postback",
2506
- label: "▶",
2507
- data: controls.play.data
2508
- },
2509
- style: isPlaying ? "secondary" : "primary",
2510
- flex: 1,
2511
- height: "sm",
2512
- margin: controls.previous ? "md" : void 0
2513
- });
2514
- if (controls.pause) controlButtons.push({
2515
- type: "button",
2516
- action: {
2517
- type: "postback",
2518
- label: "⏸",
2519
- data: controls.pause.data
2520
- },
2521
- style: isPlaying ? "primary" : "secondary",
2522
- flex: 1,
2523
- height: "sm",
2524
- margin: controlButtons.length > 0 ? "md" : void 0
2525
- });
2526
- if (controls.next) controlButtons.push({
2527
- type: "button",
2528
- action: {
2529
- type: "postback",
2530
- label: "⏭",
2531
- data: controls.next.data
2532
- },
2533
- style: "secondary",
2534
- flex: 1,
2535
- height: "sm",
2536
- margin: controlButtons.length > 0 ? "md" : void 0
2537
- });
2538
- if (controlButtons.length > 0) footerContents.push({
2539
- type: "box",
2540
- layout: "horizontal",
2541
- contents: controlButtons
2542
- });
2543
- }
2544
- if (extraActions?.length) footerContents.push({
2545
- type: "box",
2546
- layout: "horizontal",
2547
- contents: extraActions.slice(0, 2).map((action, index) => ({
2548
- type: "button",
2549
- action: {
2550
- type: "postback",
2551
- label: action.label.slice(0, 15),
2552
- data: action.data
2553
- },
2554
- style: "secondary",
2555
- flex: 1,
2556
- height: "sm",
2557
- margin: index > 0 ? "md" : void 0
2558
- })),
2559
- margin: "md"
2560
- });
2561
- if (footerContents.length > 0) bubble.footer = {
2562
- type: "box",
2563
- layout: "vertical",
2564
- contents: footerContents,
2565
- paddingAll: "lg",
2566
- backgroundColor: "#FAFAFA"
2567
- };
2568
- }
2569
- return bubble;
2570
- }
2571
- /**
2572
- * Create an Apple TV remote card with a D-pad and control rows.
2573
- */
2574
- function createAppleTvRemoteCard(params) {
2575
- const { deviceName, status, actionData } = params;
2576
- const headerContents = [{
2577
- type: "text",
2578
- text: deviceName,
2579
- weight: "bold",
2580
- size: "xl",
2581
- color: "#111111",
2582
- wrap: true
2583
- }];
2584
- if (status) headerContents.push({
2585
- type: "text",
2586
- text: status,
2587
- size: "sm",
2588
- color: "#666666",
2589
- wrap: true,
2590
- margin: "sm"
2591
- });
2592
- const makeButton = (label, data, style = "secondary") => ({
2593
- type: "button",
2594
- action: {
2595
- type: "postback",
2596
- label,
2597
- data
2598
- },
2599
- style,
2600
- height: "sm",
2601
- flex: 1
2602
- });
2603
- const dpadRows = [
2604
- {
2605
- type: "box",
2606
- layout: "horizontal",
2607
- contents: [
2608
- { type: "filler" },
2609
- makeButton("↑", actionData.up),
2610
- { type: "filler" }
2611
- ]
2612
- },
2613
- {
2614
- type: "box",
2615
- layout: "horizontal",
2616
- contents: [
2617
- makeButton("←", actionData.left),
2618
- makeButton("OK", actionData.select, "primary"),
2619
- makeButton("→", actionData.right)
2620
- ],
2621
- margin: "md"
2622
- },
2623
- {
2624
- type: "box",
2625
- layout: "horizontal",
2626
- contents: [
2627
- { type: "filler" },
2628
- makeButton("↓", actionData.down),
2629
- { type: "filler" }
2630
- ],
2631
- margin: "md"
2632
- }
2633
- ];
2634
- const menuRow = {
2635
- type: "box",
2636
- layout: "horizontal",
2637
- contents: [makeButton("Menu", actionData.menu), makeButton("Home", actionData.home)],
2638
- margin: "lg"
2639
- };
2640
- const playbackRow = {
2641
- type: "box",
2642
- layout: "horizontal",
2643
- contents: [makeButton("Play", actionData.play), makeButton("Pause", actionData.pause)],
2644
- margin: "md"
2645
- };
2646
- const volumeRow = {
2647
- type: "box",
2648
- layout: "horizontal",
2649
- contents: [
2650
- makeButton("Vol +", actionData.volumeUp),
2651
- makeButton("Mute", actionData.mute),
2652
- makeButton("Vol -", actionData.volumeDown)
2653
- ],
2654
- margin: "md"
2655
- };
2656
- return {
2657
- type: "bubble",
2658
- size: "mega",
2659
- body: {
2660
- type: "box",
2661
- layout: "vertical",
2662
- contents: [
2663
- {
2664
- type: "box",
2665
- layout: "vertical",
2666
- contents: headerContents
2667
- },
2668
- {
2669
- type: "separator",
2670
- margin: "lg",
2671
- color: "#EEEEEE"
2672
- },
2673
- ...dpadRows,
2674
- menuRow,
2675
- playbackRow,
2676
- volumeRow
2677
- ],
2678
- paddingAll: "xl",
2679
- backgroundColor: "#FFFFFF"
2680
- }
2681
- };
2682
- }
2683
- /**
2684
- * Create a device control card for Apple TV, smart home devices, etc.
2685
- *
2686
- * Editorial design: Device-focused header with status indicator,
2687
- * clean control grid with clear visual hierarchy.
2688
- */
2689
- function createDeviceControlCard(params) {
2690
- const { deviceName, deviceType, status, isOnline, imageUrl, controls } = params;
2691
- const headerContents = [{
2692
- type: "box",
2693
- layout: "horizontal",
2694
- contents: [{
2695
- type: "box",
2696
- layout: "vertical",
2697
- contents: [],
2698
- width: "10px",
2699
- height: "10px",
2700
- backgroundColor: isOnline !== false ? "#06C755" : "#FF5555",
2701
- cornerRadius: "5px"
2702
- }, {
2703
- type: "text",
2704
- text: deviceName,
2705
- weight: "bold",
2706
- size: "xl",
2707
- color: "#111111",
2708
- wrap: true,
2709
- flex: 1,
2710
- margin: "md"
2711
- }],
2712
- alignItems: "center"
2713
- }];
2714
- if (deviceType) headerContents.push({
2715
- type: "text",
2716
- text: deviceType,
2717
- size: "sm",
2718
- color: "#888888",
2719
- margin: "sm"
2720
- });
2721
- if (status) headerContents.push({
2722
- type: "box",
2723
- layout: "vertical",
2724
- contents: [{
2725
- type: "text",
2726
- text: status,
2727
- size: "sm",
2728
- color: "#444444",
2729
- wrap: true
2730
- }],
2731
- margin: "lg",
2732
- paddingAll: "md",
2733
- backgroundColor: "#F8F9FA",
2734
- cornerRadius: "md"
2735
- });
2736
- const bubble = {
2737
- type: "bubble",
2738
- size: "mega",
2739
- body: {
2740
- type: "box",
2741
- layout: "vertical",
2742
- contents: headerContents,
2743
- paddingAll: "xl",
2744
- backgroundColor: "#FFFFFF"
2745
- }
2746
- };
2747
- if (imageUrl) bubble.hero = {
2748
- type: "image",
2749
- url: imageUrl,
2750
- size: "full",
2751
- aspectRatio: "16:9",
2752
- aspectMode: "cover"
2753
- };
2754
- if (controls.length > 0) {
2755
- const rows = [];
2756
- const limitedControls = controls.slice(0, 6);
2757
- for (let i = 0; i < limitedControls.length; i += 2) {
2758
- const rowButtons = [];
2759
- for (let j = i; j < Math.min(i + 2, limitedControls.length); j++) {
2760
- const ctrl = limitedControls[j];
2761
- const buttonLabel = ctrl.icon ? `${ctrl.icon} ${ctrl.label}` : ctrl.label;
2762
- rowButtons.push({
2763
- type: "button",
2764
- action: {
2765
- type: "postback",
2766
- label: buttonLabel.slice(0, 18),
2767
- data: ctrl.data
2768
- },
2769
- style: ctrl.style ?? "secondary",
2770
- flex: 1,
2771
- height: "sm",
2772
- margin: j > i ? "md" : void 0
2773
- });
2774
- }
2775
- if (rowButtons.length === 1) rowButtons.push({ type: "filler" });
2776
- rows.push({
2777
- type: "box",
2778
- layout: "horizontal",
2779
- contents: rowButtons,
2780
- margin: i > 0 ? "md" : void 0
2781
- });
2782
- }
2783
- bubble.footer = {
2784
- type: "box",
2785
- layout: "vertical",
2786
- contents: rows,
2787
- paddingAll: "lg",
2788
- backgroundColor: "#FAFAFA"
2789
- };
2790
- }
2791
- return bubble;
2792
- }
2793
- //#endregion
2794
- //#region extensions/line/src/flex-templates/message.ts
2795
- /**
2796
- * Wrap a FlexContainer in a FlexMessage
2797
- */
2798
- function toFlexMessage(altText, contents) {
2799
- return {
2800
- type: "flex",
2801
- altText,
2802
- contents
2803
- };
2804
- }
2805
- //#endregion
2806
- //#region extensions/line/src/markdown-to-line.ts
2807
- /**
2808
- * Regex patterns for markdown detection
2809
- */
2810
- const MARKDOWN_TABLE_REGEX = /^\|(.+)\|[\r\n]+\|[-:\s|]+\|[\r\n]+((?:\|.+\|[\r\n]*)+)/gm;
2811
- const MARKDOWN_CODE_BLOCK_REGEX = /```(\w*)\n([\s\S]*?)```/g;
2812
- const MARKDOWN_LINK_REGEX = /\[([^\]]+)\]\(([^)]+)\)/g;
2813
- /**
2814
- * Detect and extract markdown tables from text
2815
- */
2816
- function extractMarkdownTables(text) {
2817
- const tables = [];
2818
- let textWithoutTables = text;
2819
- MARKDOWN_TABLE_REGEX.lastIndex = 0;
2820
- let match;
2821
- const matches = [];
2822
- while ((match = MARKDOWN_TABLE_REGEX.exec(text)) !== null) {
2823
- const fullMatch = match[0];
2824
- const headerLine = match[1];
2825
- const bodyLines = match[2];
2826
- const headers = parseTableRow(headerLine);
2827
- const rows = bodyLines.trim().split(/[\r\n]+/).filter((line) => line.trim()).map(parseTableRow);
2828
- if (headers.length > 0 && rows.length > 0) matches.push({
2829
- fullMatch,
2830
- table: {
2831
- headers,
2832
- rows
2833
- }
2834
- });
2835
- }
2836
- for (let i = matches.length - 1; i >= 0; i--) {
2837
- const { fullMatch, table } = matches[i];
2838
- tables.unshift(table);
2839
- textWithoutTables = textWithoutTables.replace(fullMatch, "");
2840
- }
2841
- return {
2842
- tables,
2843
- textWithoutTables
2844
- };
2845
- }
2846
- /**
2847
- * Parse a single table row (pipe-separated values)
2848
- */
2849
- function parseTableRow(row) {
2850
- return row.split("|").map((cell) => cell.trim()).filter((cell, index, arr) => {
2851
- if (index === 0 && cell === "") return false;
2852
- if (index === arr.length - 1 && cell === "") return false;
2853
- return true;
2854
- });
2855
- }
2856
- /**
2857
- * Convert a markdown table to a LINE Flex Message bubble
2858
- */
2859
- function convertTableToFlexBubble(table) {
2860
- const parseCell = (value) => {
2861
- const raw = value?.trim() ?? "";
2862
- if (!raw) return {
2863
- text: "-",
2864
- bold: false,
2865
- hasMarkup: false
2866
- };
2867
- let hasMarkup = false;
2868
- return {
2869
- text: raw.replace(/\*\*(.+?)\*\*/g, (_, inner) => {
2870
- hasMarkup = true;
2871
- return String(inner);
2872
- }).trim() || "-",
2873
- bold: /^\*\*.+\*\*$/.test(raw),
2874
- hasMarkup
2875
- };
2876
- };
2877
- const headerCells = table.headers.map((header) => parseCell(header));
2878
- const rowCells = table.rows.map((row) => row.map((cell) => parseCell(cell)));
2879
- const hasInlineMarkup = headerCells.some((cell) => cell.hasMarkup) || rowCells.some((row) => row.some((cell) => cell.hasMarkup));
2880
- if (table.headers.length === 2 && !hasInlineMarkup) {
2881
- const items = rowCells.map((row) => ({
2882
- name: row[0]?.text ?? "-",
2883
- value: row[1]?.text ?? "-"
2884
- }));
2885
- return createReceiptCard({
2886
- title: headerCells.map((cell) => cell.text).join(" / "),
2887
- items
2888
- });
2889
- }
2890
- return {
2891
- type: "bubble",
2892
- body: {
2893
- type: "box",
2894
- layout: "vertical",
2895
- contents: [
2896
- {
2897
- type: "box",
2898
- layout: "horizontal",
2899
- contents: headerCells.map((cell) => ({
2900
- type: "text",
2901
- text: cell.text,
2902
- weight: "bold",
2903
- size: "sm",
2904
- color: "#333333",
2905
- flex: 1,
2906
- wrap: true
2907
- })),
2908
- paddingBottom: "sm"
2909
- },
2910
- {
2911
- type: "separator",
2912
- margin: "sm"
2913
- },
2914
- ...rowCells.slice(0, 10).map((row, rowIndex) => {
2915
- return {
2916
- type: "box",
2917
- layout: "horizontal",
2918
- contents: table.headers.map((_, colIndex) => {
2919
- const cell = row[colIndex] ?? {
2920
- text: "-",
2921
- bold: false,
2922
- hasMarkup: false
2923
- };
2924
- return {
2925
- type: "text",
2926
- text: cell.text,
2927
- size: "sm",
2928
- color: "#666666",
2929
- flex: 1,
2930
- wrap: true,
2931
- weight: cell.bold ? "bold" : void 0
2932
- };
2933
- }),
2934
- margin: rowIndex === 0 ? "md" : "sm"
2935
- };
2936
- })
2937
- ],
2938
- paddingAll: "lg"
2939
- }
2940
- };
2941
- }
2942
- /**
2943
- * Detect and extract code blocks from text
2944
- */
2945
- function extractCodeBlocks(text) {
2946
- const codeBlocks = [];
2947
- let textWithoutCode = text;
2948
- MARKDOWN_CODE_BLOCK_REGEX.lastIndex = 0;
2949
- let match;
2950
- const matches = [];
2951
- while ((match = MARKDOWN_CODE_BLOCK_REGEX.exec(text)) !== null) {
2952
- const fullMatch = match[0];
2953
- const language = match[1] || void 0;
2954
- const code = match[2];
2955
- matches.push({
2956
- fullMatch,
2957
- block: {
2958
- language,
2959
- code: code.trim()
2960
- }
2961
- });
2962
- }
2963
- for (let i = matches.length - 1; i >= 0; i--) {
2964
- const { fullMatch, block } = matches[i];
2965
- codeBlocks.unshift(block);
2966
- textWithoutCode = textWithoutCode.replace(fullMatch, "");
2967
- }
2968
- return {
2969
- codeBlocks,
2970
- textWithoutCode
2971
- };
2972
- }
2973
- /**
2974
- * Convert a code block to a LINE Flex Message bubble
2975
- */
2976
- function convertCodeBlockToFlexBubble(block) {
2977
- const titleText = block.language ? `Code (${block.language})` : "Code";
2978
- const displayCode = block.code.length > 2e3 ? block.code.slice(0, 2e3) + "\n..." : block.code;
2979
- return {
2980
- type: "bubble",
2981
- body: {
2982
- type: "box",
2983
- layout: "vertical",
2984
- contents: [{
2985
- type: "text",
2986
- text: titleText,
2987
- weight: "bold",
2988
- size: "sm",
2989
- color: "#666666"
2990
- }, {
2991
- type: "box",
2992
- layout: "vertical",
2993
- contents: [{
2994
- type: "text",
2995
- text: displayCode,
2996
- size: "xs",
2997
- color: "#333333",
2998
- wrap: true
2999
- }],
3000
- backgroundColor: "#F5F5F5",
3001
- paddingAll: "md",
3002
- cornerRadius: "md",
3003
- margin: "sm"
3004
- }],
3005
- paddingAll: "lg"
3006
- }
3007
- };
3008
- }
3009
- /**
3010
- * Extract markdown links from text
3011
- */
3012
- function extractLinks(text) {
3013
- const links = [];
3014
- MARKDOWN_LINK_REGEX.lastIndex = 0;
3015
- let match;
3016
- while ((match = MARKDOWN_LINK_REGEX.exec(text)) !== null) links.push({
3017
- text: match[1],
3018
- url: match[2]
3019
- });
3020
- return {
3021
- links,
3022
- textWithLinks: text.replace(MARKDOWN_LINK_REGEX, "$1")
3023
- };
3024
- }
3025
- /**
3026
- * Create a Flex Message with tappable link buttons
3027
- */
3028
- function convertLinksToFlexBubble(links) {
3029
- return {
3030
- type: "bubble",
3031
- body: {
3032
- type: "box",
3033
- layout: "vertical",
3034
- contents: [{
3035
- type: "text",
3036
- text: "Links",
3037
- weight: "bold",
3038
- size: "md",
3039
- color: "#333333"
3040
- }],
3041
- paddingAll: "lg",
3042
- paddingBottom: "sm"
3043
- },
3044
- footer: {
3045
- type: "box",
3046
- layout: "vertical",
3047
- contents: links.slice(0, 4).map((link, index) => ({
3048
- type: "button",
3049
- action: {
3050
- type: "uri",
3051
- label: link.text.slice(0, 20),
3052
- uri: link.url
3053
- },
3054
- style: index === 0 ? "primary" : "secondary",
3055
- margin: index > 0 ? "sm" : void 0
3056
- })),
3057
- paddingAll: "md"
3058
- }
3059
- };
3060
- }
3061
- /**
3062
- * Main function: Process text for LINE output
3063
- * - Extracts tables → Flex Messages
3064
- * - Extracts code blocks → Flex Messages
3065
- * - Strips remaining markdown
3066
- * - Returns processed text + Flex Messages
3067
- */
3068
- function processLineMessage(text) {
3069
- const flexMessages = [];
3070
- let processedText = text;
3071
- const { tables, textWithoutTables } = extractMarkdownTables(processedText);
3072
- processedText = textWithoutTables;
3073
- for (const table of tables) {
3074
- const bubble = convertTableToFlexBubble(table);
3075
- flexMessages.push(toFlexMessage("Table", bubble));
3076
- }
3077
- const { codeBlocks, textWithoutCode } = extractCodeBlocks(processedText);
3078
- processedText = textWithoutCode;
3079
- for (const block of codeBlocks) {
3080
- const bubble = convertCodeBlockToFlexBubble(block);
3081
- flexMessages.push(toFlexMessage("Code", bubble));
3082
- }
3083
- const { textWithLinks } = extractLinks(processedText);
3084
- processedText = textWithLinks;
3085
- processedText = stripMarkdown(processedText);
3086
- return {
3087
- text: processedText,
3088
- flexMessages
3089
- };
3090
- }
3091
- /**
3092
- * Check if text contains markdown that needs conversion
3093
- */
3094
- function hasMarkdownToConvert(text) {
3095
- MARKDOWN_TABLE_REGEX.lastIndex = 0;
3096
- if (MARKDOWN_TABLE_REGEX.test(text)) return true;
3097
- MARKDOWN_CODE_BLOCK_REGEX.lastIndex = 0;
3098
- if (MARKDOWN_CODE_BLOCK_REGEX.test(text)) return true;
3099
- if (/\*\*[^*]+\*\*/.test(text)) return true;
3100
- if (/~~[^~]+~~/.test(text)) return true;
3101
- if (/^#{1,6}\s+/m.test(text)) return true;
3102
- if (/^>\s+/m.test(text)) return true;
3103
- return false;
3104
- }
3105
- //#endregion
3106
- //#region extensions/line/src/reply-chunks.ts
3107
- async function sendLineReplyChunks(params) {
3108
- const hasQuickReplies = Boolean(params.quickReplies?.length);
3109
- let replyTokenUsed = Boolean(params.replyTokenUsed);
3110
- if (params.chunks.length === 0) return { replyTokenUsed };
3111
- if (params.replyToken && !replyTokenUsed) try {
3112
- const replyBatch = params.chunks.slice(0, 5);
3113
- const remaining = params.chunks.slice(replyBatch.length);
3114
- const replyMessages = replyBatch.map((chunk) => ({
3115
- type: "text",
3116
- text: chunk
3117
- }));
3118
- if (hasQuickReplies && remaining.length === 0 && replyMessages.length > 0) {
3119
- const lastIndex = replyMessages.length - 1;
3120
- replyMessages[lastIndex] = params.createTextMessageWithQuickReplies(replyBatch[lastIndex], params.quickReplies);
3121
- }
3122
- await params.replyMessageLine(params.replyToken, replyMessages, { accountId: params.accountId });
3123
- replyTokenUsed = true;
3124
- for (let i = 0; i < remaining.length; i += 1) if (i === remaining.length - 1 && hasQuickReplies) await params.pushTextMessageWithQuickReplies(params.to, remaining[i], params.quickReplies, { accountId: params.accountId });
3125
- else await params.pushMessageLine(params.to, remaining[i], { accountId: params.accountId });
3126
- return { replyTokenUsed };
3127
- } catch (err) {
3128
- params.onReplyError?.(err);
3129
- replyTokenUsed = true;
3130
- }
3131
- for (let i = 0; i < params.chunks.length; i += 1) if (i === params.chunks.length - 1 && hasQuickReplies) await params.pushTextMessageWithQuickReplies(params.to, params.chunks[i], params.quickReplies, { accountId: params.accountId });
3132
- else await params.pushMessageLine(params.to, params.chunks[i], { accountId: params.accountId });
3133
- return { replyTokenUsed };
3134
- }
3135
- //#endregion
3136
- //#region extensions/line/src/webhook-node.ts
3137
- const LINE_WEBHOOK_MAX_BODY_BYTES = 1024 * 1024;
3138
- const LINE_WEBHOOK_PREAUTH_MAX_BODY_BYTES = 64 * 1024;
3139
- const LINE_WEBHOOK_PREAUTH_BODY_TIMEOUT_MS = 5e3;
3140
- async function readLineWebhookRequestBody(req, maxBytes = LINE_WEBHOOK_MAX_BODY_BYTES, timeoutMs = LINE_WEBHOOK_PREAUTH_BODY_TIMEOUT_MS) {
3141
- return await readRequestBodyWithLimit(req, {
3142
- maxBytes,
3143
- timeoutMs
3144
- });
3145
- }
3146
- function createLineNodeWebhookHandler(params) {
3147
- const maxBodyBytes = params.maxBodyBytes ?? LINE_WEBHOOK_MAX_BODY_BYTES;
3148
- const readBody = params.readBody ?? readLineWebhookRequestBody;
3149
- return async (req, res) => {
3150
- if (req.method === "GET" || req.method === "HEAD") {
3151
- if (req.method === "HEAD") {
3152
- res.statusCode = 204;
3153
- res.end();
3154
- return;
3155
- }
3156
- res.statusCode = 200;
3157
- res.setHeader("Content-Type", "text/plain");
3158
- res.end("OK");
3159
- return;
3160
- }
3161
- if (req.method !== "POST") {
3162
- res.statusCode = 405;
3163
- res.setHeader("Allow", "GET, HEAD, POST");
3164
- res.setHeader("Content-Type", "application/json");
3165
- res.end(JSON.stringify({ error: "Method Not Allowed" }));
3166
- return;
3167
- }
3168
- try {
3169
- const signatureHeader = req.headers["x-line-signature"];
3170
- const signature = typeof signatureHeader === "string" ? signatureHeader.trim() : Array.isArray(signatureHeader) ? (signatureHeader[0] ?? "").trim() : "";
3171
- if (!signature) {
3172
- logVerbose("line: webhook missing X-Line-Signature header");
3173
- res.statusCode = 400;
3174
- res.setHeader("Content-Type", "application/json");
3175
- res.end(JSON.stringify({ error: "Missing X-Line-Signature header" }));
3176
- return;
3177
- }
3178
- const rawBody = await readBody(req, Math.min(maxBodyBytes, LINE_WEBHOOK_PREAUTH_MAX_BODY_BYTES), LINE_WEBHOOK_PREAUTH_BODY_TIMEOUT_MS);
3179
- if (!validateLineSignature(rawBody, signature, params.channelSecret)) {
3180
- logVerbose("line: webhook signature validation failed");
3181
- res.statusCode = 401;
3182
- res.setHeader("Content-Type", "application/json");
3183
- res.end(JSON.stringify({ error: "Invalid signature" }));
3184
- return;
3185
- }
3186
- const body = parseLineWebhookBody(rawBody);
3187
- if (!body) {
3188
- res.statusCode = 400;
3189
- res.setHeader("Content-Type", "application/json");
3190
- res.end(JSON.stringify({ error: "Invalid webhook payload" }));
3191
- return;
3192
- }
3193
- params.onRequestAuthenticated?.();
3194
- if (body.events && body.events.length > 0) {
3195
- logVerbose(`line: received ${body.events.length} webhook events`);
3196
- await params.bot.handleWebhook(body);
3197
- }
3198
- res.statusCode = 200;
3199
- res.setHeader("Content-Type", "application/json");
3200
- res.end(JSON.stringify({ status: "ok" }));
3201
- } catch (err) {
3202
- if (isRequestBodyLimitError(err, "PAYLOAD_TOO_LARGE")) {
3203
- res.statusCode = 413;
3204
- res.setHeader("Content-Type", "application/json");
3205
- res.end(JSON.stringify({ error: "Payload too large" }));
3206
- return;
3207
- }
3208
- if (isRequestBodyLimitError(err, "REQUEST_BODY_TIMEOUT")) {
3209
- res.statusCode = 408;
3210
- res.setHeader("Content-Type", "application/json");
3211
- res.end(JSON.stringify({ error: requestBodyErrorToText("REQUEST_BODY_TIMEOUT") }));
3212
- return;
3213
- }
3214
- params.runtime.error?.(danger(`line webhook error: ${String(err)}`));
3215
- if (!res.headersSent) {
3216
- res.statusCode = 500;
3217
- res.setHeader("Content-Type", "application/json");
3218
- res.end(JSON.stringify({ error: "Internal server error" }));
3219
- }
3220
- }
3221
- };
3222
- }
3223
- //#endregion
3224
- //#region extensions/line/src/monitor.ts
3225
- const runtimeState = /* @__PURE__ */ new Map();
3226
- const lineWebhookInFlightLimiter = createWebhookInFlightLimiter();
3227
- function recordChannelRuntimeState(params) {
3228
- const key = `${params.channel}:${params.accountId}`;
3229
- const existing = runtimeState.get(key) ?? {
3230
- running: false,
3231
- lastStartAt: null,
3232
- lastStopAt: null,
3233
- lastError: null
3234
- };
3235
- runtimeState.set(key, {
3236
- ...existing,
3237
- ...params.state
3238
- });
3239
- }
3240
- function startLineLoadingKeepalive(params) {
3241
- const intervalMs = params.intervalMs ?? 18e3;
3242
- const loadingSeconds = params.loadingSeconds ?? 20;
3243
- let stopped = false;
3244
- const trigger = () => {
3245
- if (stopped) return;
3246
- showLoadingAnimation(params.userId, {
3247
- accountId: params.accountId,
3248
- loadingSeconds
3249
- }).catch(() => {});
3250
- };
3251
- trigger();
3252
- const timer = setInterval(trigger, intervalMs);
3253
- return () => {
3254
- if (stopped) return;
3255
- stopped = true;
3256
- clearInterval(timer);
3257
- };
3258
- }
3259
- async function monitorLineProvider(opts) {
3260
- const { channelAccessToken, channelSecret, accountId, config, runtime, abortSignal, webhookPath } = opts;
3261
- const resolvedAccountId = accountId ?? "default";
3262
- const token = channelAccessToken.trim();
3263
- const secret = channelSecret.trim();
3264
- if (!token) throw new Error("LINE webhook mode requires a non-empty channel access token.");
3265
- if (!secret) throw new Error("LINE webhook mode requires a non-empty channel secret.");
3266
- recordChannelRuntimeState({
3267
- channel: "line",
3268
- accountId: resolvedAccountId,
3269
- state: {
3270
- running: true,
3271
- lastStartAt: Date.now()
3272
- }
3273
- });
3274
- const bot = createLineBot({
3275
- channelAccessToken: token,
3276
- channelSecret: secret,
3277
- accountId,
3278
- runtime,
3279
- config,
3280
- onMessage: async (ctx) => {
3281
- if (!ctx) return;
3282
- const { ctxPayload, replyToken, route } = ctx;
3283
- recordChannelRuntimeState({
3284
- channel: "line",
3285
- accountId: resolvedAccountId,
3286
- state: { lastInboundAt: Date.now() }
3287
- });
3288
- const shouldShowLoading = Boolean(ctx.userId && !ctx.isGroup);
3289
- const displayNamePromise = ctx.userId ? getUserDisplayName(ctx.userId, { accountId: ctx.accountId }) : Promise.resolve(ctxPayload.From);
3290
- const stopLoading = shouldShowLoading ? startLineLoadingKeepalive({
3291
- userId: ctx.userId,
3292
- accountId: ctx.accountId
3293
- }) : null;
3294
- logVerbose(`line: received message from ${await displayNamePromise} (${ctxPayload.From})`);
3295
- try {
3296
- const textLimit = 5e3;
3297
- let replyTokenUsed = false;
3298
- const { onModelSelected, ...replyPipeline } = createChannelReplyPipeline({
3299
- cfg: config,
3300
- agentId: route.agentId,
3301
- channel: "line",
3302
- accountId: route.accountId
3303
- });
3304
- const { queuedFinal } = await dispatchReplyWithBufferedBlockDispatcher({
3305
- ctx: ctxPayload,
3306
- cfg: config,
3307
- dispatcherOptions: {
3308
- ...replyPipeline,
3309
- deliver: async (payload, _info) => {
3310
- const lineData = payload.channelData?.line ?? {};
3311
- if (ctx.userId && !ctx.isGroup) showLoadingAnimation(ctx.userId, { accountId: ctx.accountId }).catch(() => {});
3312
- const { replyTokenUsed: nextReplyTokenUsed } = await deliverLineAutoReply({
3313
- payload,
3314
- lineData,
3315
- to: ctxPayload.From,
3316
- replyToken,
3317
- replyTokenUsed,
3318
- accountId: ctx.accountId,
3319
- textLimit,
3320
- deps: {
3321
- buildTemplateMessageFromPayload,
3322
- processLineMessage,
3323
- chunkMarkdownText,
3324
- sendLineReplyChunks,
3325
- replyMessageLine,
3326
- pushMessageLine,
3327
- pushTextMessageWithQuickReplies,
3328
- createQuickReplyItems,
3329
- createTextMessageWithQuickReplies,
3330
- pushMessagesLine,
3331
- createFlexMessage,
3332
- createImageMessage,
3333
- createLocationMessage,
3334
- onReplyError: (replyErr) => {
3335
- logVerbose(`line: reply token failed, falling back to push: ${String(replyErr)}`);
3336
- }
3337
- }
3338
- });
3339
- replyTokenUsed = nextReplyTokenUsed;
3340
- recordChannelRuntimeState({
3341
- channel: "line",
3342
- accountId: resolvedAccountId,
3343
- state: { lastOutboundAt: Date.now() }
3344
- });
3345
- },
3346
- onError: (err, info) => {
3347
- runtime.error?.(danger(`line ${info.kind} reply failed: ${String(err)}`));
3348
- }
3349
- },
3350
- replyOptions: { onModelSelected }
3351
- });
3352
- if (!queuedFinal) logVerbose(`line: no response generated for message from ${ctxPayload.From}`);
3353
- } catch (err) {
3354
- runtime.error?.(danger(`line: auto-reply failed: ${String(err)}`));
3355
- if (replyToken) try {
3356
- await replyMessageLine(replyToken, [{
3357
- type: "text",
3358
- text: "Sorry, I encountered an error processing your message."
3359
- }], { accountId: ctx.accountId });
3360
- } catch (replyErr) {
3361
- runtime.error?.(danger(`line: error reply failed: ${String(replyErr)}`));
3362
- }
3363
- } finally {
3364
- stopLoading?.();
3365
- }
3366
- }
3367
- });
3368
- const normalizedPath = normalizePluginHttpPath(webhookPath, "/line/webhook") ?? "/line/webhook";
3369
- const createScopedLineWebhookHandler = (onRequestAuthenticated) => createLineNodeWebhookHandler({
3370
- channelSecret: secret,
3371
- bot,
3372
- runtime,
3373
- onRequestAuthenticated
3374
- });
3375
- const unregisterHttp = registerPluginHttpRoute({
3376
- path: normalizedPath,
3377
- auth: "plugin",
3378
- replaceExisting: true,
3379
- pluginId: "line",
3380
- accountId: resolvedAccountId,
3381
- log: (msg) => logVerbose(msg),
3382
- handler: async (req, res) => {
3383
- if (req.method !== "POST") {
3384
- await createScopedLineWebhookHandler()(req, res);
3385
- return;
3386
- }
3387
- const requestLifecycle = beginWebhookRequestPipelineOrReject({
3388
- req,
3389
- res,
3390
- inFlightLimiter: lineWebhookInFlightLimiter,
3391
- inFlightKey: `line:${resolvedAccountId}`
3392
- });
3393
- if (!requestLifecycle.ok) return;
3394
- try {
3395
- await createScopedLineWebhookHandler(requestLifecycle.release)(req, res);
3396
- } finally {
3397
- requestLifecycle.release();
3398
- }
3399
- }
3400
- });
3401
- logVerbose(`line: registered webhook handler at ${normalizedPath}`);
3402
- let stopped = false;
3403
- const stopHandler = () => {
3404
- if (stopped) return;
3405
- stopped = true;
3406
- logVerbose(`line: stopping provider for account ${resolvedAccountId}`);
3407
- unregisterHttp();
3408
- recordChannelRuntimeState({
3409
- channel: "line",
3410
- accountId: resolvedAccountId,
3411
- state: {
3412
- running: false,
3413
- lastStopAt: Date.now()
3414
- }
3415
- });
3416
- };
3417
- if (abortSignal?.aborted) stopHandler();
3418
- else if (abortSignal) {
3419
- abortSignal.addEventListener("abort", stopHandler, { once: true });
3420
- await waitForAbortSignal(abortSignal);
3421
- }
3422
- return {
3423
- account: bot.account,
3424
- handleWebhook: bot.handleWebhook,
3425
- stop: () => {
3426
- stopHandler();
3427
- abortSignal?.removeEventListener("abort", stopHandler);
3428
- }
3429
- };
3430
- }
3431
- //#endregion
3432
- //#region extensions/line/src/config-schema.ts
3433
- const DmPolicySchema = zod_exports.z.enum([
3434
- "open",
3435
- "allowlist",
3436
- "pairing",
3437
- "disabled"
3438
- ]);
3439
- const GroupPolicySchema = zod_exports.z.enum([
3440
- "open",
3441
- "allowlist",
3442
- "disabled"
3443
- ]);
3444
- const ThreadBindingsSchema = zod_exports.z.object({
3445
- enabled: zod_exports.z.boolean().optional(),
3446
- idleHours: zod_exports.z.number().optional(),
3447
- maxAgeHours: zod_exports.z.number().optional(),
3448
- spawnSubagentSessions: zod_exports.z.boolean().optional(),
3449
- spawnAcpSessions: zod_exports.z.boolean().optional()
3450
- }).strict();
3451
- const LineCommonConfigSchema = zod_exports.z.object({
3452
- enabled: zod_exports.z.boolean().optional(),
3453
- channelAccessToken: zod_exports.z.string().optional(),
3454
- channelSecret: zod_exports.z.string().optional(),
3455
- tokenFile: zod_exports.z.string().optional(),
3456
- secretFile: zod_exports.z.string().optional(),
3457
- name: zod_exports.z.string().optional(),
3458
- allowFrom: zod_exports.z.array(zod_exports.z.union([zod_exports.z.string(), zod_exports.z.number()])).optional(),
3459
- groupAllowFrom: zod_exports.z.array(zod_exports.z.union([zod_exports.z.string(), zod_exports.z.number()])).optional(),
3460
- dmPolicy: DmPolicySchema.optional().default("pairing"),
3461
- groupPolicy: GroupPolicySchema.optional().default("allowlist"),
3462
- responsePrefix: zod_exports.z.string().optional(),
3463
- mediaMaxMb: zod_exports.z.number().optional(),
3464
- webhookPath: zod_exports.z.string().optional(),
3465
- threadBindings: ThreadBindingsSchema.optional()
3466
- });
3467
- const LineGroupConfigSchema = zod_exports.z.object({
3468
- enabled: zod_exports.z.boolean().optional(),
3469
- allowFrom: zod_exports.z.array(zod_exports.z.union([zod_exports.z.string(), zod_exports.z.number()])).optional(),
3470
- requireMention: zod_exports.z.boolean().optional(),
3471
- systemPrompt: zod_exports.z.string().optional(),
3472
- skills: zod_exports.z.array(zod_exports.z.string()).optional()
3473
- }).strict();
3474
- const LineAccountConfigSchema = LineCommonConfigSchema.extend({ groups: zod_exports.z.record(zod_exports.z.string(), LineGroupConfigSchema.optional()).optional() }).strict();
3475
- const LineConfigSchema = LineCommonConfigSchema.extend({
3476
- accounts: zod_exports.z.record(zod_exports.z.string(), LineAccountConfigSchema.optional()).optional(),
3477
- defaultAccount: zod_exports.z.string().optional(),
3478
- groups: zod_exports.z.record(zod_exports.z.string(), LineGroupConfigSchema.optional()).optional()
3479
- }).strict();
3480
- const LineChannelConfigSchema = buildChannelConfigSchema(LineConfigSchema);
3481
- //#endregion
3482
- //#region extensions/line/src/rich-menu.ts
3483
- const USER_BATCH_SIZE = 500;
3484
- function getClient(opts = {}) {
3485
- const account = resolveLineAccount({
3486
- cfg: loadConfig(),
3487
- accountId: opts.accountId
3488
- });
3489
- const token = resolveLineChannelAccessToken(opts.channelAccessToken, account);
3490
- return new messagingApi.MessagingApiClient({ channelAccessToken: token });
3491
- }
3492
- function getBlobClient(opts = {}) {
3493
- const account = resolveLineAccount({
3494
- cfg: loadConfig(),
3495
- accountId: opts.accountId
3496
- });
3497
- const token = resolveLineChannelAccessToken(opts.channelAccessToken, account);
3498
- return new messagingApi.MessagingApiBlobClient({ channelAccessToken: token });
3499
- }
3500
- function chunkUserIds(userIds) {
3501
- const batches = [];
3502
- for (let i = 0; i < userIds.length; i += USER_BATCH_SIZE) batches.push(userIds.slice(i, i + USER_BATCH_SIZE));
3503
- return batches;
3504
- }
3505
- async function createRichMenu(menu, opts = {}) {
3506
- const client = getClient(opts);
3507
- const richMenuRequest = {
3508
- size: menu.size,
3509
- selected: menu.selected ?? false,
3510
- name: menu.name.slice(0, 300),
3511
- chatBarText: menu.chatBarText.slice(0, 14),
3512
- areas: menu.areas
3513
- };
3514
- const response = await client.createRichMenu(richMenuRequest);
3515
- if (opts.verbose) logVerbose(`line: created rich menu ${response.richMenuId}`);
3516
- return response.richMenuId;
3517
- }
3518
- async function uploadRichMenuImage(richMenuId, imagePath, opts = {}) {
3519
- const blobClient = getBlobClient(opts);
3520
- const imageData = await readFile(imagePath);
3521
- const contentType = imagePath.toLowerCase().endsWith(".png") ? "image/png" : "image/jpeg";
3522
- await blobClient.setRichMenuImage(richMenuId, new Blob([imageData], { type: contentType }));
3523
- if (opts.verbose) logVerbose(`line: uploaded image to rich menu ${richMenuId}`);
3524
- }
3525
- async function setDefaultRichMenu(richMenuId, opts = {}) {
3526
- await getClient(opts).setDefaultRichMenu(richMenuId);
3527
- if (opts.verbose) logVerbose(`line: set default rich menu to ${richMenuId}`);
3528
- }
3529
- async function cancelDefaultRichMenu(opts = {}) {
3530
- await getClient(opts).cancelDefaultRichMenu();
3531
- if (opts.verbose) logVerbose("line: cancelled default rich menu");
3532
- }
3533
- async function getDefaultRichMenuId(opts = {}) {
3534
- const client = getClient(opts);
3535
- try {
3536
- return (await client.getDefaultRichMenuId()).richMenuId ?? null;
3537
- } catch {
3538
- return null;
3539
- }
3540
- }
3541
- async function linkRichMenuToUser(userId, richMenuId, opts = {}) {
3542
- await getClient(opts).linkRichMenuIdToUser(userId, richMenuId);
3543
- if (opts.verbose) logVerbose(`line: linked rich menu ${richMenuId} to user ${userId}`);
3544
- }
3545
- async function linkRichMenuToUsers(userIds, richMenuId, opts = {}) {
3546
- const client = getClient(opts);
3547
- for (const batch of chunkUserIds(userIds)) await client.linkRichMenuIdToUsers({
3548
- richMenuId,
3549
- userIds: batch
3550
- });
3551
- if (opts.verbose) logVerbose(`line: linked rich menu ${richMenuId} to ${userIds.length} users`);
3552
- }
3553
- async function unlinkRichMenuFromUser(userId, opts = {}) {
3554
- await getClient(opts).unlinkRichMenuIdFromUser(userId);
3555
- if (opts.verbose) logVerbose(`line: unlinked rich menu from user ${userId}`);
3556
- }
3557
- async function unlinkRichMenuFromUsers(userIds, opts = {}) {
3558
- const client = getClient(opts);
3559
- for (const batch of chunkUserIds(userIds)) await client.unlinkRichMenuIdFromUsers({ userIds: batch });
3560
- if (opts.verbose) logVerbose(`line: unlinked rich menu from ${userIds.length} users`);
3561
- }
3562
- async function getRichMenuIdOfUser(userId, opts = {}) {
3563
- const client = getClient(opts);
3564
- try {
3565
- return (await client.getRichMenuIdOfUser(userId)).richMenuId ?? null;
3566
- } catch {
3567
- return null;
3568
- }
3569
- }
3570
- async function getRichMenuList(opts = {}) {
3571
- return (await getClient(opts).getRichMenuList()).richmenus ?? [];
3572
- }
3573
- async function getRichMenu(richMenuId, opts = {}) {
3574
- const client = getClient(opts);
3575
- try {
3576
- return await client.getRichMenu(richMenuId);
3577
- } catch {
3578
- return null;
3579
- }
3580
- }
3581
- async function deleteRichMenu(richMenuId, opts = {}) {
3582
- await getClient(opts).deleteRichMenu(richMenuId);
3583
- if (opts.verbose) logVerbose(`line: deleted rich menu ${richMenuId}`);
3584
- }
3585
- async function createRichMenuAlias(richMenuId, aliasId, opts = {}) {
3586
- await getClient(opts).createRichMenuAlias({
3587
- richMenuId,
3588
- richMenuAliasId: aliasId
3589
- });
3590
- if (opts.verbose) logVerbose(`line: created alias ${aliasId} for rich menu ${richMenuId}`);
3591
- }
3592
- async function deleteRichMenuAlias(aliasId, opts = {}) {
3593
- await getClient(opts).deleteRichMenuAlias(aliasId);
3594
- if (opts.verbose) logVerbose(`line: deleted alias ${aliasId}`);
3595
- }
3596
- function createGridLayout(height, actions) {
3597
- const colWidth = Math.floor(2500 / 3);
3598
- const rowHeight = Math.floor(height / 2);
3599
- return [
3600
- {
3601
- bounds: {
3602
- x: 0,
3603
- y: 0,
3604
- width: colWidth,
3605
- height: rowHeight
3606
- },
3607
- action: actions[0]
3608
- },
3609
- {
3610
- bounds: {
3611
- x: colWidth,
3612
- y: 0,
3613
- width: colWidth,
3614
- height: rowHeight
3615
- },
3616
- action: actions[1]
3617
- },
3618
- {
3619
- bounds: {
3620
- x: colWidth * 2,
3621
- y: 0,
3622
- width: colWidth,
3623
- height: rowHeight
3624
- },
3625
- action: actions[2]
3626
- },
3627
- {
3628
- bounds: {
3629
- x: 0,
3630
- y: rowHeight,
3631
- width: colWidth,
3632
- height: rowHeight
3633
- },
3634
- action: actions[3]
3635
- },
3636
- {
3637
- bounds: {
3638
- x: colWidth,
3639
- y: rowHeight,
3640
- width: colWidth,
3641
- height: rowHeight
3642
- },
3643
- action: actions[4]
3644
- },
3645
- {
3646
- bounds: {
3647
- x: colWidth * 2,
3648
- y: rowHeight,
3649
- width: colWidth,
3650
- height: rowHeight
3651
- },
3652
- action: actions[5]
3653
- }
3654
- ];
3655
- }
3656
- function createDefaultMenuConfig() {
3657
- return {
3658
- size: {
3659
- width: 2500,
3660
- height: 843
3661
- },
3662
- selected: false,
3663
- name: "Default Menu",
3664
- chatBarText: "Menu",
3665
- areas: createGridLayout(843, [
3666
- messageAction("Help", "/help"),
3667
- messageAction("Status", "/status"),
3668
- messageAction("Settings", "/settings"),
3669
- messageAction("About", "/about"),
3670
- messageAction("Feedback", "/feedback"),
3671
- messageAction("Contact", "/contact")
3672
- ])
3673
- };
3674
- }
3675
- //#endregion
3676
- export { createAudioMessage as $, processLineMessage as A, datetimePickerAction as At, createImageCard as B, convertCodeBlockToFlexBubble as C, createConfirmTemplate as Ct, extractLinks as D, createProductCarousel as Dt, extractCodeBlocks as E, createLinkMenu as Et, createAgendaCard as F, downloadLineMedia as Ft, startLineWebhook as G, createListCard as H, createEventCard as I, isSenderAllowed as It, resolveExactLineGroupConfigKey as J, parseLineWebhookBody as K, createReceiptCard as L, normalizeAllowFrom as Lt, createAppleTvRemoteCard as M, postbackAction as Mt, createDeviceControlCard as N, uriAction as Nt, extractMarkdownTables as O, createTemplateCarousel as Ot, createMediaPlayerCard as P, probeLineBot as Pt, resolveLineGroupsConfig as Q, createActionCard as R, normalizeDmAllowFromWithStore as Rt, readLineWebhookRequestBody as S, createCarouselColumn as St, convertTableToFlexBubble as T, createImageCarouselColumn as Tt, createNotificationBubble as U, createInfoCard as V, createLineWebhookMiddleware as W, resolveLineGroupHistoryKey as X, resolveLineGroupConfigEntry as Y, resolveLineGroupLookupIds as Z, uploadRichMenuImage as _, showLoadingAnimation as _t, createRichMenuAlias as a, createVideoMessage as at, monitorLineProvider as b, createButtonMenu as bt, getDefaultRichMenuId as c, pushFlexMessage as ct, getRichMenuList as d, pushMessageLine as dt, createFlexMessage as et, linkRichMenuToUser as f, pushMessagesLine as ft, unlinkRichMenuFromUsers as g, sendMessageLine as gt, unlinkRichMenuFromUser as h, replyMessageLine as ht, createRichMenu as i, createTextMessageWithQuickReplies as it, toFlexMessage as j, messageAction as jt, hasMarkdownToConvert as k, createYesNoConfirm as kt, getRichMenu as l, pushImageMessage as lt, setDefaultRichMenu as m, pushTextMessageWithQuickReplies as mt, createDefaultMenuConfig as n, createLocationMessage as nt, deleteRichMenu as o, getUserDisplayName as ot, linkRichMenuToUsers as p, pushTemplateMessage as pt, validateLineSignature as q, createGridLayout as r, createQuickReplyItems as rt, deleteRichMenuAlias as s, getUserProfile as st, cancelDefaultRichMenu as t, createImageMessage as tt, getRichMenuIdOfUser as u, pushLocationMessage as ut, LineChannelConfigSchema as v, resolveLineChannelAccessToken as vt, convertLinksToFlexBubble as w, createImageCarousel as wt, createLineNodeWebhookHandler as x, createButtonTemplate as xt, LineConfigSchema as y, buildTemplateMessageFromPayload as yt, createCarousel as z };