@openclaw/irc 2026.9.5 → 2026.9.7

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 (364) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{channel-BkN5303m.mjs → channel-CO6Iez9u.mjs} +65 -122
  3. package/dist/.setup/{channel-plugin-api-fr0j2Sw2.mjs → channel-plugin-api-DlMVsHyU.mjs} +1 -1
  4. package/dist/.setup/{channel-runtime-B6Q0BfOC.mjs → channel-runtime-195XTdZC.mjs} +5 -5
  5. package/dist/api.js +1 -1
  6. package/dist/channel-plugin-api.js +1 -1
  7. package/dist/doctor-contract-api.js +187 -5
  8. package/dist/setup-entry.js +1 -1
  9. package/node_modules/zod/README.md +2 -2
  10. package/node_modules/zod/compile.cjs +19 -0
  11. package/node_modules/zod/index.cjs +19 -0
  12. package/node_modules/zod/locales/index.cjs +19 -0
  13. package/node_modules/zod/mini/index.cjs +19 -0
  14. package/node_modules/zod/package.json +8 -7
  15. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  16. package/node_modules/zod/src/v4/classic/external.ts +2 -0
  17. package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
  18. package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
  19. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
  20. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
  21. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  22. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
  23. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  24. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
  25. package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
  26. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  27. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  28. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
  29. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
  30. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
  31. package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
  32. package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
  33. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  34. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  35. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  36. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
  37. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  38. package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
  39. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
  40. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
  41. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
  42. package/node_modules/zod/src/v4/core/api.ts +44 -28
  43. package/node_modules/zod/src/v4/core/checks.ts +62 -102
  44. package/node_modules/zod/src/v4/core/compile.ts +218 -93
  45. package/node_modules/zod/src/v4/core/core.ts +1 -3
  46. package/node_modules/zod/src/v4/core/doc.ts +6 -2
  47. package/node_modules/zod/src/v4/core/errors.ts +3 -6
  48. package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
  49. package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
  50. package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
  51. package/node_modules/zod/src/v4/core/parse.ts +37 -16
  52. package/node_modules/zod/src/v4/core/regexes.ts +14 -4
  53. package/node_modules/zod/src/v4/core/schemas.ts +296 -132
  54. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  55. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
  56. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  57. package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
  58. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  59. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  60. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  61. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
  62. package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
  63. package/node_modules/zod/src/v4/core/util.ts +218 -147
  64. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  65. package/node_modules/zod/src/v4/locales/ar.ts +2 -0
  66. package/node_modules/zod/src/v4/locales/az.ts +2 -0
  67. package/node_modules/zod/src/v4/locales/be.ts +2 -0
  68. package/node_modules/zod/src/v4/locales/bg.ts +2 -0
  69. package/node_modules/zod/src/v4/locales/bn.ts +2 -0
  70. package/node_modules/zod/src/v4/locales/ca.ts +2 -0
  71. package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
  72. package/node_modules/zod/src/v4/locales/cs.ts +2 -0
  73. package/node_modules/zod/src/v4/locales/da.ts +2 -0
  74. package/node_modules/zod/src/v4/locales/de.ts +2 -0
  75. package/node_modules/zod/src/v4/locales/el.ts +2 -0
  76. package/node_modules/zod/src/v4/locales/en.ts +2 -0
  77. package/node_modules/zod/src/v4/locales/eo.ts +2 -0
  78. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  79. package/node_modules/zod/src/v4/locales/fa.ts +2 -0
  80. package/node_modules/zod/src/v4/locales/fi.ts +2 -0
  81. package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
  82. package/node_modules/zod/src/v4/locales/fr.ts +2 -0
  83. package/node_modules/zod/src/v4/locales/gu.ts +2 -0
  84. package/node_modules/zod/src/v4/locales/he.ts +2 -0
  85. package/node_modules/zod/src/v4/locales/hi.ts +2 -0
  86. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  87. package/node_modules/zod/src/v4/locales/hu.ts +2 -0
  88. package/node_modules/zod/src/v4/locales/hy.ts +2 -0
  89. package/node_modules/zod/src/v4/locales/id.ts +2 -0
  90. package/node_modules/zod/src/v4/locales/index.ts +1 -0
  91. package/node_modules/zod/src/v4/locales/is.ts +2 -0
  92. package/node_modules/zod/src/v4/locales/it.ts +2 -0
  93. package/node_modules/zod/src/v4/locales/ja.ts +2 -0
  94. package/node_modules/zod/src/v4/locales/ka.ts +2 -0
  95. package/node_modules/zod/src/v4/locales/km.ts +2 -0
  96. package/node_modules/zod/src/v4/locales/kn.ts +2 -0
  97. package/node_modules/zod/src/v4/locales/ko.ts +2 -0
  98. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  99. package/node_modules/zod/src/v4/locales/mk.ts +2 -0
  100. package/node_modules/zod/src/v4/locales/ms.ts +2 -0
  101. package/node_modules/zod/src/v4/locales/ne.ts +2 -0
  102. package/node_modules/zod/src/v4/locales/nl.ts +2 -0
  103. package/node_modules/zod/src/v4/locales/nn.ts +2 -0
  104. package/node_modules/zod/src/v4/locales/no.ts +2 -0
  105. package/node_modules/zod/src/v4/locales/ota.ts +2 -0
  106. package/node_modules/zod/src/v4/locales/pl.ts +2 -0
  107. package/node_modules/zod/src/v4/locales/ps.ts +2 -0
  108. package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
  109. package/node_modules/zod/src/v4/locales/pt.ts +2 -0
  110. package/node_modules/zod/src/v4/locales/ro.ts +2 -0
  111. package/node_modules/zod/src/v4/locales/ru.ts +2 -0
  112. package/node_modules/zod/src/v4/locales/sk.ts +2 -0
  113. package/node_modules/zod/src/v4/locales/sl.ts +2 -0
  114. package/node_modules/zod/src/v4/locales/sv.ts +2 -0
  115. package/node_modules/zod/src/v4/locales/ta.ts +2 -0
  116. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  117. package/node_modules/zod/src/v4/locales/th.ts +2 -0
  118. package/node_modules/zod/src/v4/locales/tk.ts +2 -0
  119. package/node_modules/zod/src/v4/locales/tr.ts +2 -0
  120. package/node_modules/zod/src/v4/locales/uk.ts +2 -0
  121. package/node_modules/zod/src/v4/locales/ur.ts +2 -0
  122. package/node_modules/zod/src/v4/locales/uz.ts +2 -0
  123. package/node_modules/zod/src/v4/locales/vi.ts +2 -0
  124. package/node_modules/zod/src/v4/locales/yo.ts +2 -0
  125. package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
  126. package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
  127. package/node_modules/zod/src/v4/mini/external.ts +2 -0
  128. package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
  129. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
  130. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  131. package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
  132. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  133. package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
  134. package/node_modules/zod/v3/ZodError.cjs +19 -0
  135. package/node_modules/zod/v3/errors.cjs +19 -0
  136. package/node_modules/zod/v3/external.cjs +19 -0
  137. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  138. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  139. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  140. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  141. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  142. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  143. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  144. package/node_modules/zod/v3/index.cjs +19 -0
  145. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  146. package/node_modules/zod/v3/types.cjs +19 -0
  147. package/node_modules/zod/v4/classic/checks.cjs +19 -0
  148. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  149. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  150. package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
  151. package/node_modules/zod/v4/classic/errors.cjs +19 -0
  152. package/node_modules/zod/v4/classic/external.cjs +22 -1
  153. package/node_modules/zod/v4/classic/external.d.cts +1 -1
  154. package/node_modules/zod/v4/classic/external.d.ts +1 -1
  155. package/node_modules/zod/v4/classic/external.js +1 -1
  156. package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
  157. package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
  158. package/node_modules/zod/v4/classic/in-out.cjs +19 -0
  159. package/node_modules/zod/v4/classic/index.cjs +19 -0
  160. package/node_modules/zod/v4/classic/iso.cjs +19 -0
  161. package/node_modules/zod/v4/classic/parse.cjs +19 -0
  162. package/node_modules/zod/v4/classic/schemas.cjs +100 -35
  163. package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
  164. package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
  165. package/node_modules/zod/v4/classic/schemas.js +77 -33
  166. package/node_modules/zod/v4/core/api.cjs +45 -22
  167. package/node_modules/zod/v4/core/api.d.cts +12 -6
  168. package/node_modules/zod/v4/core/api.d.ts +12 -6
  169. package/node_modules/zod/v4/core/api.js +25 -22
  170. package/node_modules/zod/v4/core/checks.cjs +51 -97
  171. package/node_modules/zod/v4/core/checks.d.cts +17 -1
  172. package/node_modules/zod/v4/core/checks.d.ts +17 -1
  173. package/node_modules/zod/v4/core/checks.js +31 -96
  174. package/node_modules/zod/v4/core/compile.cjs +173 -78
  175. package/node_modules/zod/v4/core/compile.d.cts +18 -4
  176. package/node_modules/zod/v4/core/compile.d.ts +18 -4
  177. package/node_modules/zod/v4/core/compile.js +154 -79
  178. package/node_modules/zod/v4/core/core.cjs +20 -1
  179. package/node_modules/zod/v4/core/core.js +1 -1
  180. package/node_modules/zod/v4/core/doc.cjs +26 -2
  181. package/node_modules/zod/v4/core/doc.js +7 -2
  182. package/node_modules/zod/v4/core/errors.cjs +21 -5
  183. package/node_modules/zod/v4/core/errors.js +2 -5
  184. package/node_modules/zod/v4/core/index.cjs +19 -0
  185. package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
  186. package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
  187. package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
  188. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  189. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  190. package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
  191. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  192. package/node_modules/zod/v4/core/memoizer.cjs +111 -23
  193. package/node_modules/zod/v4/core/memoizer.js +69 -23
  194. package/node_modules/zod/v4/core/parse.cjs +56 -16
  195. package/node_modules/zod/v4/core/parse.js +37 -16
  196. package/node_modules/zod/v4/core/regexes.cjs +31 -6
  197. package/node_modules/zod/v4/core/regexes.d.cts +3 -0
  198. package/node_modules/zod/v4/core/regexes.d.ts +3 -0
  199. package/node_modules/zod/v4/core/regexes.js +10 -4
  200. package/node_modules/zod/v4/core/registries.cjs +19 -0
  201. package/node_modules/zod/v4/core/schemas.cjs +302 -114
  202. package/node_modules/zod/v4/core/schemas.d.cts +28 -8
  203. package/node_modules/zod/v4/core/schemas.d.ts +28 -8
  204. package/node_modules/zod/v4/core/schemas.js +279 -113
  205. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  206. package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
  207. package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
  208. package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
  209. package/node_modules/zod/v4/core/to-json-schema.js +7 -6
  210. package/node_modules/zod/v4/core/util.cjs +177 -143
  211. package/node_modules/zod/v4/core/util.d.cts +25 -4
  212. package/node_modules/zod/v4/core/util.d.ts +25 -4
  213. package/node_modules/zod/v4/core/util.js +156 -143
  214. package/node_modules/zod/v4/core/versions.cjs +21 -2
  215. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  216. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  217. package/node_modules/zod/v4/core/versions.js +2 -2
  218. package/node_modules/zod/v4/core/visit.cjs +19 -0
  219. package/node_modules/zod/v4/index.cjs +19 -0
  220. package/node_modules/zod/v4/locales/ar.cjs +2 -0
  221. package/node_modules/zod/v4/locales/ar.js +2 -0
  222. package/node_modules/zod/v4/locales/az.cjs +2 -0
  223. package/node_modules/zod/v4/locales/az.js +2 -0
  224. package/node_modules/zod/v4/locales/be.cjs +2 -0
  225. package/node_modules/zod/v4/locales/be.js +2 -0
  226. package/node_modules/zod/v4/locales/bg.cjs +2 -0
  227. package/node_modules/zod/v4/locales/bg.js +2 -0
  228. package/node_modules/zod/v4/locales/bn.cjs +2 -0
  229. package/node_modules/zod/v4/locales/bn.js +2 -0
  230. package/node_modules/zod/v4/locales/ca.cjs +2 -0
  231. package/node_modules/zod/v4/locales/ca.js +2 -0
  232. package/node_modules/zod/v4/locales/ckb.cjs +2 -0
  233. package/node_modules/zod/v4/locales/ckb.js +2 -0
  234. package/node_modules/zod/v4/locales/cs.cjs +2 -0
  235. package/node_modules/zod/v4/locales/cs.js +2 -0
  236. package/node_modules/zod/v4/locales/da.cjs +2 -0
  237. package/node_modules/zod/v4/locales/da.js +2 -0
  238. package/node_modules/zod/v4/locales/de.cjs +2 -0
  239. package/node_modules/zod/v4/locales/de.js +2 -0
  240. package/node_modules/zod/v4/locales/el.cjs +2 -0
  241. package/node_modules/zod/v4/locales/el.js +2 -0
  242. package/node_modules/zod/v4/locales/en.cjs +2 -0
  243. package/node_modules/zod/v4/locales/en.js +2 -0
  244. package/node_modules/zod/v4/locales/eo.cjs +2 -0
  245. package/node_modules/zod/v4/locales/eo.js +2 -0
  246. package/node_modules/zod/v4/locales/es.cjs +2 -0
  247. package/node_modules/zod/v4/locales/es.js +2 -0
  248. package/node_modules/zod/v4/locales/fa.cjs +2 -0
  249. package/node_modules/zod/v4/locales/fa.js +2 -0
  250. package/node_modules/zod/v4/locales/fi.cjs +2 -0
  251. package/node_modules/zod/v4/locales/fi.js +2 -0
  252. package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  253. package/node_modules/zod/v4/locales/fr-CA.js +2 -0
  254. package/node_modules/zod/v4/locales/fr.cjs +2 -0
  255. package/node_modules/zod/v4/locales/fr.js +2 -0
  256. package/node_modules/zod/v4/locales/gu.cjs +2 -0
  257. package/node_modules/zod/v4/locales/gu.js +2 -0
  258. package/node_modules/zod/v4/locales/he.cjs +2 -0
  259. package/node_modules/zod/v4/locales/he.js +2 -0
  260. package/node_modules/zod/v4/locales/hi.cjs +2 -0
  261. package/node_modules/zod/v4/locales/hi.js +2 -0
  262. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  263. package/node_modules/zod/v4/locales/hr.js +2 -0
  264. package/node_modules/zod/v4/locales/hu.cjs +2 -0
  265. package/node_modules/zod/v4/locales/hu.js +2 -0
  266. package/node_modules/zod/v4/locales/hy.cjs +2 -0
  267. package/node_modules/zod/v4/locales/hy.js +2 -0
  268. package/node_modules/zod/v4/locales/id.cjs +2 -0
  269. package/node_modules/zod/v4/locales/id.js +2 -0
  270. package/node_modules/zod/v4/locales/index.cjs +22 -1
  271. package/node_modules/zod/v4/locales/index.d.cts +1 -0
  272. package/node_modules/zod/v4/locales/index.d.ts +1 -0
  273. package/node_modules/zod/v4/locales/index.js +1 -0
  274. package/node_modules/zod/v4/locales/is.cjs +2 -0
  275. package/node_modules/zod/v4/locales/is.js +2 -0
  276. package/node_modules/zod/v4/locales/it.cjs +2 -0
  277. package/node_modules/zod/v4/locales/it.js +2 -0
  278. package/node_modules/zod/v4/locales/ja.cjs +2 -0
  279. package/node_modules/zod/v4/locales/ja.js +2 -0
  280. package/node_modules/zod/v4/locales/ka.cjs +2 -0
  281. package/node_modules/zod/v4/locales/ka.js +2 -0
  282. package/node_modules/zod/v4/locales/km.cjs +2 -0
  283. package/node_modules/zod/v4/locales/km.js +2 -0
  284. package/node_modules/zod/v4/locales/kn.cjs +2 -0
  285. package/node_modules/zod/v4/locales/kn.js +2 -0
  286. package/node_modules/zod/v4/locales/ko.cjs +2 -0
  287. package/node_modules/zod/v4/locales/ko.js +2 -0
  288. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  289. package/node_modules/zod/v4/locales/lt.js +2 -0
  290. package/node_modules/zod/v4/locales/mk.cjs +2 -0
  291. package/node_modules/zod/v4/locales/mk.js +2 -0
  292. package/node_modules/zod/v4/locales/ms.cjs +2 -0
  293. package/node_modules/zod/v4/locales/ms.js +2 -0
  294. package/node_modules/zod/v4/locales/ne.cjs +2 -0
  295. package/node_modules/zod/v4/locales/ne.js +2 -0
  296. package/node_modules/zod/v4/locales/nl.cjs +2 -0
  297. package/node_modules/zod/v4/locales/nl.js +2 -0
  298. package/node_modules/zod/v4/locales/nn.cjs +2 -0
  299. package/node_modules/zod/v4/locales/nn.js +2 -0
  300. package/node_modules/zod/v4/locales/no.cjs +2 -0
  301. package/node_modules/zod/v4/locales/no.js +2 -0
  302. package/node_modules/zod/v4/locales/ota.cjs +2 -0
  303. package/node_modules/zod/v4/locales/ota.js +2 -0
  304. package/node_modules/zod/v4/locales/pl.cjs +2 -0
  305. package/node_modules/zod/v4/locales/pl.js +2 -0
  306. package/node_modules/zod/v4/locales/ps.cjs +2 -0
  307. package/node_modules/zod/v4/locales/ps.js +2 -0
  308. package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
  309. package/node_modules/zod/v4/locales/pt-BR.js +2 -0
  310. package/node_modules/zod/v4/locales/pt.cjs +2 -0
  311. package/node_modules/zod/v4/locales/pt.js +2 -0
  312. package/node_modules/zod/v4/locales/ro.cjs +2 -0
  313. package/node_modules/zod/v4/locales/ro.js +2 -0
  314. package/node_modules/zod/v4/locales/ru.cjs +2 -0
  315. package/node_modules/zod/v4/locales/ru.js +2 -0
  316. package/node_modules/zod/v4/locales/sk.cjs +2 -0
  317. package/node_modules/zod/v4/locales/sk.js +2 -0
  318. package/node_modules/zod/v4/locales/sl.cjs +2 -0
  319. package/node_modules/zod/v4/locales/sl.js +2 -0
  320. package/node_modules/zod/v4/locales/sv.cjs +2 -0
  321. package/node_modules/zod/v4/locales/sv.js +2 -0
  322. package/node_modules/zod/v4/locales/ta.cjs +2 -0
  323. package/node_modules/zod/v4/locales/ta.js +2 -0
  324. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  325. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  326. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  327. package/node_modules/zod/v4/locales/tg.js +117 -0
  328. package/node_modules/zod/v4/locales/th.cjs +2 -0
  329. package/node_modules/zod/v4/locales/th.js +2 -0
  330. package/node_modules/zod/v4/locales/tk.cjs +2 -0
  331. package/node_modules/zod/v4/locales/tk.js +2 -0
  332. package/node_modules/zod/v4/locales/tr.cjs +2 -0
  333. package/node_modules/zod/v4/locales/tr.js +2 -0
  334. package/node_modules/zod/v4/locales/uk.cjs +2 -0
  335. package/node_modules/zod/v4/locales/uk.js +2 -0
  336. package/node_modules/zod/v4/locales/ur.cjs +2 -0
  337. package/node_modules/zod/v4/locales/ur.js +2 -0
  338. package/node_modules/zod/v4/locales/uz.cjs +2 -0
  339. package/node_modules/zod/v4/locales/uz.js +2 -0
  340. package/node_modules/zod/v4/locales/vi.cjs +2 -0
  341. package/node_modules/zod/v4/locales/vi.js +2 -0
  342. package/node_modules/zod/v4/locales/yo.cjs +2 -0
  343. package/node_modules/zod/v4/locales/yo.js +2 -0
  344. package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  345. package/node_modules/zod/v4/locales/zh-CN.js +2 -0
  346. package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  347. package/node_modules/zod/v4/locales/zh-TW.js +2 -0
  348. package/node_modules/zod/v4/mini/checks.cjs +19 -0
  349. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  350. package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
  351. package/node_modules/zod/v4/mini/external.cjs +22 -1
  352. package/node_modules/zod/v4/mini/external.d.cts +1 -1
  353. package/node_modules/zod/v4/mini/external.d.ts +1 -1
  354. package/node_modules/zod/v4/mini/external.js +1 -1
  355. package/node_modules/zod/v4/mini/in-out.cjs +19 -0
  356. package/node_modules/zod/v4/mini/index.cjs +19 -0
  357. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  358. package/node_modules/zod/v4/mini/parse.cjs +19 -0
  359. package/node_modules/zod/v4/mini/schemas.cjs +44 -8
  360. package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
  361. package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
  362. package/node_modules/zod/v4/mini/schemas.js +21 -6
  363. package/node_modules/zod/v4-mini/index.cjs +19 -0
  364. package/package.json +5 -5
package/assets/icon.png CHANGED
Binary file
@@ -2,42 +2,36 @@ import { t as IrcChannelConfigSchema } from "./config-schema-Cy9tItsu.mjs";
2
2
  import { t as getIrcRuntime } from "./runtime-xy-FcjJC.mjs";
3
3
  import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-D_DC3YWj.mjs";
4
4
  import { createAccountListHelpers, describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
5
+ import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
5
6
  import { formatNormalizedAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
6
7
  import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter, createScopedDmSecurityResolver } from "openclaw/plugin-sdk/channel-config-helpers";
7
8
  import { buildChannelOutboundSessionRoute, createChatChannelPlugin, parseOptionalDelimitedEntries } from "openclaw/plugin-sdk/channel-core";
8
9
  import { defineStableChannelIngressIdentity, identityEntryAuthenticationClassifier } from "openclaw/plugin-sdk/channel-ingress-runtime";
9
10
  import { buildMutableAllowEntryDetector, collectStandardAllowlistLists, createAllowlistProviderOpenWarningCollector, createConditionalWarningCollector, createDangerousNameMatchingMutableAllowlistWarningCollector, resolveScopeKeyCaseInsensitive, resolveScopeRequireMention, resolveScopeToolsPolicy } from "openclaw/plugin-sdk/channel-policy";
11
+ import { PAIRING_APPROVED_MESSAGE } from "openclaw/plugin-sdk/channel-status";
10
12
  import { createChannelDirectoryAdapter, createResolvedDirectoryEntriesLister } from "openclaw/plugin-sdk/directory-runtime";
11
13
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
12
14
  import { buildBaseChannelStatusSummary, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState } from "openclaw/plugin-sdk/status-helpers";
13
15
  import { resolveAccountWithDefaultFallback } from "openclaw/plugin-sdk/account-core";
14
- import { DEFAULT_ACCOUNT_ID, DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$2, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
15
- import { parseStrictPositiveInteger } from "openclaw/plugin-sdk/number-runtime";
16
+ import { parseTcpPort } from "openclaw/plugin-sdk/number-runtime";
16
17
  import { isTruthyEnvValue } from "openclaw/plugin-sdk/runtime-env";
17
18
  import { tryReadSecretFileSync } from "openclaw/plugin-sdk/secret-file-runtime";
18
19
  import { resolveSecretInputString } from "openclaw/plugin-sdk/secret-input";
19
20
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeStringEntries, normalizeStringifiedOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
20
21
  import { createAccountStatusSink, createMessageReceiptFromOutboundResults, createReplyToFanout, defineChannelMessageAdapter, runPassiveAccountLifecycle, sanitizeForPlainText } from "openclaw/plugin-sdk/channel-outbound";
21
- import { PAIRING_APPROVED_MESSAGE } from "openclaw/plugin-sdk/channel-status";
22
- import { chunkTextForOutbound, convertMarkdownTables, sanitizeAssistantVisibleText, stripMarkdown } from "openclaw/plugin-sdk/text-chunking";
23
22
  import { attachChannelToResult } from "openclaw/plugin-sdk/channel-send-result";
23
+ import { chunkTextForOutbound, convertMarkdownTables, sanitizeAssistantVisibleText, stripMarkdown } from "openclaw/plugin-sdk/text-chunking";
24
+ import { randomUUID } from "node:crypto";
24
25
  import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
25
26
  import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
26
27
  import net from "node:net";
27
28
  import tls from "node:tls";
28
29
  import { withTimeout } from "openclaw/plugin-sdk/security-runtime";
29
- import { randomUUID } from "node:crypto";
30
30
  import { assertSecretOwnerAvailable } from "openclaw/plugin-sdk/channel-secret-owner-runtime";
31
31
  import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
32
32
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1, normalizeAccountId as normalizeAccountId$1 } from "openclaw/plugin-sdk/routing";
33
33
  import { applyAccountNameToChannelSection, createAllowFromSection, createPromptParsedAllowFromForAccount, createSetupInputPresenceValidator, createSetupTranslator, createStandardChannelSetupStatus, createTopLevelChannelAllowFromSetter, createTopLevelChannelDmPolicySetter, formatDocsLink, patchScopedAccountConfig, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
34
34
  //#region extensions/irc/src/accounts.ts
35
- function parseIntEnv(value) {
36
- if (!value?.trim()) return;
37
- const parsed = parseStrictPositiveInteger(value);
38
- if (parsed === void 0 || parsed > 65535) return;
39
- return parsed;
40
- }
41
35
  const { listAccountIds: listIrcAccountIds, resolveDefaultAccountId: resolveDefaultIrcAccountId, resolveAccountConfig: mergeIrcAccountConfig } = createAccountListHelpers("irc", {
42
36
  normalizeAccountId,
43
37
  omitKeys: ["defaultAccount"],
@@ -136,13 +130,13 @@ function resolveIrcAccount(params) {
136
130
  const accountEnabled = merged.enabled !== false;
137
131
  const enabled = baseEnabled && accountEnabled;
138
132
  const tls = typeof merged.tls === "boolean" ? merged.tls : accountId === DEFAULT_ACCOUNT_ID && process.env.IRC_TLS ? isTruthyEnvValue(process.env.IRC_TLS) : true;
139
- const envPort = accountId === DEFAULT_ACCOUNT_ID ? parseIntEnv(process.env.IRC_PORT) : void 0;
133
+ const envPort = accountId === DEFAULT_ACCOUNT_ID ? parseTcpPort(process.env.IRC_PORT) : void 0;
140
134
  const port = merged.port ?? envPort ?? (tls ? 6697 : 6667);
141
135
  const envChannels = accountId === DEFAULT_ACCOUNT_ID ? parseOptionalDelimitedEntries(process.env.IRC_CHANNELS) : void 0;
142
- const host = (merged.host?.trim() || (accountId === DEFAULT_ACCOUNT_ID ? process.env.IRC_HOST?.trim() : "") || "").trim();
143
- const nick = (merged.nick?.trim() || (accountId === DEFAULT_ACCOUNT_ID ? process.env.IRC_NICK?.trim() : "") || "").trim();
144
- const username = (merged.username?.trim() || (accountId === DEFAULT_ACCOUNT_ID ? process.env.IRC_USERNAME?.trim() : "") || nick || "openclaw").trim();
145
- const realname = (merged.realname?.trim() || (accountId === DEFAULT_ACCOUNT_ID ? process.env.IRC_REALNAME?.trim() : "") || "OpenClaw").trim();
136
+ const host = merged.host?.trim() || (accountId === DEFAULT_ACCOUNT_ID ? process.env.IRC_HOST?.trim() : "") || "";
137
+ const nick = merged.nick?.trim() || (accountId === DEFAULT_ACCOUNT_ID ? process.env.IRC_NICK?.trim() : "") || "";
138
+ const username = merged.username?.trim() || (accountId === DEFAULT_ACCOUNT_ID ? process.env.IRC_USERNAME?.trim() : "") || nick || "openclaw";
139
+ const realname = merged.realname?.trim() || (accountId === DEFAULT_ACCOUNT_ID ? process.env.IRC_REALNAME?.trim() : "") || "OpenClaw";
146
140
  const passwordResolution = resolvePassword(accountId, merged);
147
141
  const nickservResolution = resolveNickServConfig(accountId, merged.nickserv);
148
142
  const diagnostics = [passwordResolution.diagnostic, nickservResolution.diagnostic].filter((diagnostic) => Boolean(diagnostic));
@@ -202,7 +196,7 @@ const collectIrcMutableAllowlistWarnings = createDangerousNameMatchingMutableAll
202
196
  });
203
197
  //#endregion
204
198
  //#region extensions/irc/src/gateway.ts
205
- const loadIrcChannelRuntime$1 = createLazyRuntimeModule(() => import("./channel-runtime-B6Q0BfOC.mjs"));
199
+ const loadIrcChannelRuntime$1 = createLazyRuntimeModule(() => import("./channel-runtime-195XTdZC.mjs"));
206
200
  async function startIrcGatewayAccount(ctx) {
207
201
  const account = ctx.account;
208
202
  const statusSink = createAccountStatusSink({
@@ -474,9 +468,6 @@ function sanitizeIrcTarget(raw) {
474
468
  if (!IRC_TARGET_PATTERN.test(decoded)) throw new Error(`Invalid IRC target: ${raw}`);
475
469
  return decoded;
476
470
  }
477
- function makeIrcMessageId() {
478
- return randomUUID();
479
- }
480
471
  //#endregion
481
472
  //#region extensions/irc/src/client.ts
482
473
  const IRC_ERROR_CODES = /* @__PURE__ */ new Set([
@@ -516,9 +507,6 @@ function buildFallbackNick(nick) {
516
507
  if (base.length >= maxNickLen) return `${base.slice(0, maxNickLen - suffix.length)}${suffix}`;
517
508
  return `${base}${suffix}`;
518
509
  }
519
- function normalizeIrcNick(value) {
520
- return normalizeLowercaseStringOrEmpty(value);
521
- }
522
510
  function buildIrcNickServCommands(options) {
523
511
  if (!options || options.enabled === false) return [];
524
512
  const password = sanitizeIrcOutboundText(options.password ?? "");
@@ -533,7 +521,7 @@ function buildIrcNickServCommands(options) {
533
521
  return commands;
534
522
  }
535
523
  async function connectIrcClient(options) {
536
- const timeoutMs = options.connectTimeoutMs != null ? options.connectTimeoutMs : 15e3;
524
+ const timeoutMs = options.connectTimeoutMs ?? 15e3;
537
525
  const messageChunkMaxChars = Math.max(1, Math.floor(options.messageChunkMaxChars ?? 350));
538
526
  if (!options.host.trim()) throw new Error("IRC host is required");
539
527
  if (!options.nick.trim()) throw new Error("IRC nick is required");
@@ -561,7 +549,7 @@ async function connectIrcClient(options) {
561
549
  });
562
550
  const fail = (err) => {
563
551
  const error = toIrcError(err);
564
- if (options.onError) options.onError(error);
552
+ options.onError?.(error);
565
553
  if (!ready && rejectReady) {
566
554
  rejectReady(error);
567
555
  rejectReady = null;
@@ -594,7 +582,7 @@ async function connectIrcClient(options) {
594
582
  if (!fallbackNickAttempted) {
595
583
  fallbackNickAttempted = true;
596
584
  const fallbackNick = buildFallbackNick(desiredNick);
597
- if (normalizeIrcNick(fallbackNick) !== normalizeIrcNick(currentNick)) try {
585
+ if (normalizeLowercaseStringOrEmpty(fallbackNick) !== normalizeLowercaseStringOrEmpty(currentNick)) try {
598
586
  sendRaw(`NICK ${fallbackNick}`);
599
587
  currentNick = fallbackNick;
600
588
  return true;
@@ -627,7 +615,7 @@ async function connectIrcClient(options) {
627
615
  closed = true;
628
616
  removeAbortListener?.();
629
617
  removeAbortListener = null;
630
- const safeReason = sanitizeIrcOutboundText(reason != null ? reason : "bye");
618
+ const safeReason = sanitizeIrcOutboundText(reason ?? "bye");
631
619
  try {
632
620
  if (safeReason) sendRaw(`QUIT :${safeReason}`);
633
621
  else sendRaw("QUIT");
@@ -650,30 +638,24 @@ async function connectIrcClient(options) {
650
638
  buffer = buffer.slice(idx + 1);
651
639
  idx = buffer.indexOf("\n");
652
640
  if (!rawLine) continue;
653
- if (options.onLine) options.onLine(rawLine);
641
+ options.onLine?.(rawLine);
654
642
  const line = parseIrcLine(rawLine);
655
643
  if (!line) continue;
656
644
  if (line.command === "PING") {
657
- const payload = line.trailing != null ? line.trailing : line.params[0] != null ? line.params[0] : "";
645
+ const payload = line.trailing ?? line.params[0] ?? "";
658
646
  sendRaw(`PONG :${payload}`);
659
647
  continue;
660
648
  }
661
649
  if (line.command === "NICK") {
662
650
  const prefix = parseIrcPrefix(line.prefix);
663
- if (prefix.nick && normalizeIrcNick(prefix.nick) === normalizeIrcNick(currentNick)) currentNick = (line.trailing != null ? line.trailing : line.params[0] != null ? line.params[0] : currentNick).trim();
651
+ if (prefix.nick && normalizeLowercaseStringOrEmpty(prefix.nick) === normalizeLowercaseStringOrEmpty(currentNick)) currentNick = (line.trailing ?? line.params[0] ?? currentNick).trim();
664
652
  continue;
665
653
  }
666
- if (!ready && IRC_NICK_COLLISION_CODES.has(line.command)) {
667
- if (tryRecoverNickCollision()) continue;
668
- const detail = line.trailing != null ? line.trailing : line.params.join(" ") || "nickname in use";
669
- fail(/* @__PURE__ */ new Error(`IRC login failed (${line.command}): ${detail}`));
670
- close();
671
- return;
672
- }
673
- if (!ready && IRC_ERROR_CODES.has(line.command)) {
674
- const detail = line.trailing != null ? line.trailing : line.params.join(" ") || "login rejected";
675
- fail(/* @__PURE__ */ new Error(`IRC login failed (${line.command}): ${detail}`));
676
- close();
654
+ const nickCollision = IRC_NICK_COLLISION_CODES.has(line.command);
655
+ if (!ready && (nickCollision || IRC_ERROR_CODES.has(line.command))) {
656
+ if (nickCollision && tryRecoverNickCollision()) continue;
657
+ const detail = line.trailing ?? (line.params.join(" ") || (nickCollision ? "nickname in use" : "login rejected"));
658
+ failAndClose(/* @__PURE__ */ new Error(`IRC login failed (${line.command}): ${detail}`));
677
659
  return;
678
660
  }
679
661
  if (line.command === "001") {
@@ -695,21 +677,20 @@ async function connectIrcClient(options) {
695
677
  fail(err);
696
678
  }
697
679
  }
698
- if (resolveReady) resolveReady();
680
+ resolveReady?.();
699
681
  resolveReady = null;
700
682
  rejectReady = null;
701
683
  continue;
702
684
  }
703
685
  if (line.command === "NOTICE") {
704
- if (options.onNotice) options.onNotice(line.trailing != null ? line.trailing : "", line.params[0]);
686
+ options.onNotice?.(line.trailing ?? "", line.params[0]);
705
687
  continue;
706
688
  }
707
689
  if (line.command === "PRIVMSG") {
708
- const targetParam = line.params[0];
709
- const target = targetParam ? targetParam.trim() : "";
690
+ const target = line.params[0]?.trim() ?? "";
710
691
  const text = line.trailing ?? line.params[1] ?? "";
711
692
  const prefix = parseIrcPrefix(line.prefix);
712
- const senderNick = prefix.nick ? prefix.nick.trim() : "";
693
+ const senderNick = prefix.nick?.trim() ?? "";
713
694
  if (!target || !senderNick || !text.trim()) continue;
714
695
  if (options.onPrivmsg) Promise.resolve(options.onPrivmsg({
715
696
  senderNick,
@@ -731,8 +712,7 @@ async function connectIrcClient(options) {
731
712
  sendRaw(`NICK ${options.nick.trim()}`);
732
713
  sendRaw(`USER ${options.username.trim()} 0 * :${sanitizeIrcOutboundText(options.realname)}`);
733
714
  } catch (err) {
734
- fail(err);
735
- close();
715
+ failAndClose(err);
736
716
  }
737
717
  });
738
718
  socket.once("error", (err) => {
@@ -854,7 +834,7 @@ async function sendIrcMessages(to, text, opts, planMessages = (preparedText) =>
854
834
  if (!client.isReady()) throw new Error("IRC connection closed before send");
855
835
  client.sendPrivmsg(target, message.text, message.replyTo);
856
836
  recordIrcOutboundActivity(account.accountId);
857
- const messageId = makeIrcMessageId();
837
+ const messageId = randomUUID();
858
838
  const result = {
859
839
  messageId,
860
840
  target,
@@ -1026,18 +1006,10 @@ const validateIrcRequiredSetupInput = createSetupInputPresenceValidator({ whenNo
1026
1006
  someOf: ["nick"],
1027
1007
  message: "IRC requires nick."
1028
1008
  }] });
1029
- function parsePort(raw, fallback) {
1030
- const trimmed = raw.trim();
1031
- if (!trimmed) return fallback;
1032
- const parsed = parseStrictPositiveInteger(trimmed);
1033
- if (parsed === void 0 || parsed > 65535) return fallback;
1034
- return parsed;
1035
- }
1036
1009
  function validateIrcPortInput(input) {
1037
1010
  const raw = input.port;
1038
1011
  if (raw === void 0 || raw === null || raw === "") return null;
1039
- const parsed = parseStrictPositiveInteger(String(raw));
1040
- return parsed !== void 0 && parsed <= 65535 ? null : "IRC port must be between 1 and 65535.";
1012
+ return parseTcpPort(String(raw)) !== null ? null : "IRC port must be between 1 and 65535.";
1041
1013
  }
1042
1014
  function updateIrcAccountConfig(cfg, accountId, patch) {
1043
1015
  return patchScopedAccountConfig({
@@ -1092,7 +1064,7 @@ const ircSetupAdapter = {
1092
1064
  const patch = {
1093
1065
  enabled: true,
1094
1066
  host: setupInput.host?.trim(),
1095
- port: portInput ? parsePort(portInput, setupInput.tls === false ? 6667 : 6697) : void 0,
1067
+ port: portInput ? parseTcpPort(portInput) ?? (setupInput.tls === false ? 6667 : 6697) : void 0,
1096
1068
  tls: setupInput.tls,
1097
1069
  nick: setupInput.nick?.trim(),
1098
1070
  username: setupInput.username?.trim(),
@@ -1184,6 +1156,22 @@ const t = createSetupTranslator();
1184
1156
  const channel = "irc";
1185
1157
  const USE_ENV_FLAG = "__ircUseEnv";
1186
1158
  const TLS_FLAG = "__ircTls";
1159
+ function ircAccountTextInput(configKey, input) {
1160
+ return {
1161
+ ...input,
1162
+ currentValue: ({ cfg, accountId }) => resolveIrcAccount({
1163
+ cfg,
1164
+ accountId
1165
+ }).config[configKey] || void 0,
1166
+ shouldPrompt: ({ credentialValues }) => credentialValues[USE_ENV_FLAG] !== "1",
1167
+ validate: ({ value }) => normalizeStringifiedOptionalString(value) ? void 0 : "Required",
1168
+ normalizeValue: ({ value }) => normalizeStringifiedOptionalString(value) ?? "",
1169
+ applySet: async ({ cfg, accountId, value }) => updateIrcAccountConfig(cfg, accountId, {
1170
+ enabled: true,
1171
+ [configKey]: value
1172
+ })
1173
+ };
1174
+ }
1187
1175
  function parseListInput(raw) {
1188
1176
  return normalizeStringEntries(raw.split(/[\n,;]+/g));
1189
1177
  }
@@ -1338,21 +1326,10 @@ const ircSetupWizard = {
1338
1326
  },
1339
1327
  credentials: [],
1340
1328
  textInputs: [
1341
- {
1329
+ ircAccountTextInput("host", {
1342
1330
  inputKey: "httpHost",
1343
- message: t("wizard.irc.serverHostPrompt"),
1344
- currentValue: ({ cfg, accountId }) => resolveIrcAccount({
1345
- cfg,
1346
- accountId
1347
- }).config.host || void 0,
1348
- shouldPrompt: ({ credentialValues }) => credentialValues[USE_ENV_FLAG] !== "1",
1349
- validate: ({ value }) => normalizeStringifiedOptionalString(value) ? void 0 : "Required",
1350
- normalizeValue: ({ value }) => normalizeStringifiedOptionalString(value) ?? "",
1351
- applySet: async ({ cfg, accountId, value }) => updateIrcAccountConfig(cfg, accountId, {
1352
- enabled: true,
1353
- host: value
1354
- })
1355
- },
1331
+ message: t("wizard.irc.serverHostPrompt")
1332
+ }),
1356
1333
  {
1357
1334
  inputKey: "httpPort",
1358
1335
  message: t("wizard.irc.serverPortPrompt"),
@@ -1372,68 +1349,34 @@ const ircSetupWizard = {
1372
1349
  },
1373
1350
  validate: ({ value }) => {
1374
1351
  const raw = normalizeStringifiedOptionalString(value) ?? "";
1375
- const parsed = parseStrictPositiveInteger(raw);
1376
- return parsed !== void 0 && parsed <= 65535 ? void 0 : "Use a port between 1 and 65535";
1352
+ return parseTcpPort(raw) !== null ? void 0 : "Use a port between 1 and 65535";
1377
1353
  },
1378
- normalizeValue: ({ value }) => String(parsePort(value, 6697)),
1354
+ normalizeValue: ({ value }) => String(parseTcpPort(value) ?? 6697),
1379
1355
  applySet: async ({ cfg, accountId, value }) => updateIrcAccountConfig(cfg, accountId, {
1380
1356
  enabled: true,
1381
- port: parsePort(value, 6697)
1357
+ port: parseTcpPort(value) ?? 6697
1382
1358
  })
1383
1359
  },
1384
- {
1360
+ ircAccountTextInput("nick", {
1385
1361
  inputKey: "token",
1386
- message: t("wizard.irc.nickPrompt"),
1387
- currentValue: ({ cfg, accountId }) => resolveIrcAccount({
1388
- cfg,
1389
- accountId
1390
- }).config.nick || void 0,
1391
- shouldPrompt: ({ credentialValues }) => credentialValues[USE_ENV_FLAG] !== "1",
1392
- validate: ({ value }) => normalizeStringifiedOptionalString(value) ? void 0 : "Required",
1393
- normalizeValue: ({ value }) => normalizeStringifiedOptionalString(value) ?? "",
1394
- applySet: async ({ cfg, accountId, value }) => updateIrcAccountConfig(cfg, accountId, {
1395
- enabled: true,
1396
- nick: value
1397
- })
1398
- },
1399
- {
1362
+ message: t("wizard.irc.nickPrompt")
1363
+ }),
1364
+ ircAccountTextInput("username", {
1400
1365
  inputKey: "userId",
1401
1366
  message: t("wizard.irc.usernamePrompt"),
1402
- currentValue: ({ cfg, accountId }) => resolveIrcAccount({
1403
- cfg,
1404
- accountId
1405
- }).config.username || void 0,
1406
- shouldPrompt: ({ credentialValues }) => credentialValues[USE_ENV_FLAG] !== "1",
1407
1367
  initialValue: ({ cfg, accountId, credentialValues }) => resolveIrcAccount({
1408
1368
  cfg,
1409
1369
  accountId
1410
- }).config.username || credentialValues.token || "openclaw",
1411
- validate: ({ value }) => normalizeStringifiedOptionalString(value) ? void 0 : "Required",
1412
- normalizeValue: ({ value }) => normalizeStringifiedOptionalString(value) ?? "",
1413
- applySet: async ({ cfg, accountId, value }) => updateIrcAccountConfig(cfg, accountId, {
1414
- enabled: true,
1415
- username: value
1416
- })
1417
- },
1418
- {
1370
+ }).config.username || credentialValues.token || "openclaw"
1371
+ }),
1372
+ ircAccountTextInput("realname", {
1419
1373
  inputKey: "deviceName",
1420
1374
  message: t("wizard.irc.realNamePrompt"),
1421
- currentValue: ({ cfg, accountId }) => resolveIrcAccount({
1422
- cfg,
1423
- accountId
1424
- }).config.realname || void 0,
1425
- shouldPrompt: ({ credentialValues }) => credentialValues[USE_ENV_FLAG] !== "1",
1426
1375
  initialValue: ({ cfg, accountId }) => resolveIrcAccount({
1427
1376
  cfg,
1428
1377
  accountId
1429
- }).config.realname || "OpenClaw",
1430
- validate: ({ value }) => normalizeStringifiedOptionalString(value) ? void 0 : "Required",
1431
- normalizeValue: ({ value }) => normalizeStringifiedOptionalString(value) ?? "",
1432
- applySet: async ({ cfg, accountId, value }) => updateIrcAccountConfig(cfg, accountId, {
1433
- enabled: true,
1434
- realname: value
1435
- })
1436
- },
1378
+ }).config.realname || "OpenClaw"
1379
+ }),
1437
1380
  {
1438
1381
  inputKey: "groupChannels",
1439
1382
  message: t("wizard.irc.autoJoinPrompt"),
@@ -1544,7 +1487,7 @@ const meta = {
1544
1487
  systemImage: "number",
1545
1488
  markdownCapable: true
1546
1489
  };
1547
- const loadIrcChannelRuntime = createLazyRuntimeModule(() => import("./channel-runtime-B6Q0BfOC.mjs"));
1490
+ const loadIrcChannelRuntime = createLazyRuntimeModule(() => import("./channel-runtime-195XTdZC.mjs"));
1548
1491
  function normalizePairingTarget(raw) {
1549
1492
  const normalized = normalizeIrcAllowEntry(raw);
1550
1493
  if (!normalized) return "";
@@ -1697,7 +1640,7 @@ const ircPlugin = createChatChannelPlugin({
1697
1640
  const target = normalizeIrcMessagingTarget(to);
1698
1641
  return target ? isChannelTarget(target) ? "group" : "direct" : void 0;
1699
1642
  },
1700
- resolveOutboundSessionRoute: (params) => resolveIrcOutboundSessionRoute(params),
1643
+ resolveOutboundSessionRoute: resolveIrcOutboundSessionRoute,
1701
1644
  targetResolver: {
1702
1645
  looksLikeId: looksLikeIrcTargetId,
1703
1646
  hint: "<#channel|nick>"
@@ -1741,7 +1684,7 @@ const ircPlugin = createChatChannelPlugin({
1741
1684
  }
1742
1685
  }),
1743
1686
  status: createComputedAccountStatusAdapter({
1744
- defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID$2),
1687
+ defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID),
1745
1688
  buildChannelSummary: ({ account, snapshot }) => ({
1746
1689
  ...buildBaseChannelStatusSummary(snapshot),
1747
1690
  host: account.host,
@@ -1,3 +1,3 @@
1
- import { t as ircPlugin } from "./channel-BkN5303m.mjs";
1
+ import { t as ircPlugin } from "./channel-CO6Iez9u.mjs";
2
2
  import "../channel-plugin-api.js";
3
3
  export { ircPlugin };
@@ -1,6 +1,6 @@
1
- import { a as resolveIrcGroupRequireMention, c as connectIrcClient, d as sanitizeIrcAssistantText, f as createIrcIngressSubject, h as normalizeIrcAllowEntry, i as resolveIrcGroupMatch, l as parseIrcLine, m as isChannelTarget, o as sendMessageIrc, p as ircIngressIdentity, s as buildIrcConnectOptions, u as parseIrcPrefix, y as resolveIrcAccount } from "./channel-BkN5303m.mjs";
1
+ import { a as resolveIrcGroupRequireMention, c as connectIrcClient, d as sanitizeIrcAssistantText, f as createIrcIngressSubject, h as normalizeIrcAllowEntry, i as resolveIrcGroupMatch, l as parseIrcLine, m as isChannelTarget, o as sendMessageIrc, p as ircIngressIdentity, s as buildIrcConnectOptions, u as parseIrcPrefix, y as resolveIrcAccount } from "./channel-CO6Iez9u.mjs";
2
2
  import { t as getIrcRuntime } from "./runtime-xy-FcjJC.mjs";
3
- import { channelIngressRoutes, createChannelIngressResolver } from "openclaw/plugin-sdk/channel-ingress-runtime";
3
+ import { channelIngressRoutes } from "openclaw/plugin-sdk/channel-ingress-runtime";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { bindIngressLifecycleToReplyOptions, createChannelIngressError, createChannelIngressMonitor, resolveChannelStreamingBlockEnabled } from "openclaw/plugin-sdk/channel-outbound";
6
6
  import { randomUUID } from "node:crypto";
@@ -11,9 +11,9 @@ import { createChannelPairingController } from "openclaw/plugin-sdk/channel-pair
11
11
  import { isDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
12
12
  import { deliverFormattedTextWithAttachments } from "openclaw/plugin-sdk/reply-payload";
13
13
  import { GROUP_POLICY_BLOCKED_LABEL, resolveAllowlistProviderRuntimeGroupPolicy, resolveDefaultGroupPolicy, warnMissingProviderGroupPolicyFallbackOnce } from "openclaw/plugin-sdk/runtime-group-policy";
14
+ import { escapeRegExp } from "openclaw/plugin-sdk/text-utility-runtime";
14
15
  //#region extensions/irc/src/inbound.ts
15
16
  const CHANNEL_ID = "irc";
16
- const escapeIrcRegexLiteral = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
17
17
  const IRC_NICK_CHARACTER = String.raw`[A-Za-z0-9_\-\[\]\\\x60^{}|~]`;
18
18
  const IRC_RFC1459_CASE_EQUIVALENTS = /* @__PURE__ */ new Map([
19
19
  ["[", "{"],
@@ -28,7 +28,7 @@ const IRC_RFC1459_CASE_EQUIVALENTS = /* @__PURE__ */ new Map([
28
28
  function buildIrcNickMentionPattern(value) {
29
29
  return Array.from(value, (character) => {
30
30
  const equivalent = IRC_RFC1459_CASE_EQUIVALENTS.get(character);
31
- return equivalent ? `[${escapeIrcRegexLiteral(character)}${escapeIrcRegexLiteral(equivalent)}]` : escapeIrcRegexLiteral(character);
31
+ return equivalent ? `[${escapeRegExp(character)}${escapeRegExp(equivalent)}]` : escapeRegExp(character);
32
32
  }).join("");
33
33
  }
34
34
  function hasEntries(entries) {
@@ -132,7 +132,7 @@ async function handleIrcInbound(params) {
132
132
  id: peerId
133
133
  }
134
134
  });
135
- const access = await createChannelIngressResolver({
135
+ const access = await core.channel.inbound.ingress.createResolver({
136
136
  channelId: CHANNEL_ID,
137
137
  accountId: account.accountId,
138
138
  identity: ircIngressIdentity,
package/dist/api.js CHANGED
@@ -1,3 +1,3 @@
1
- import { _ as listIrcAccountIds, g as listEnabledIrcAccounts, n as ircSetupWizard, r as ircSetupAdapter, t as ircPlugin, v as resolveDefaultIrcAccountId, y as resolveIrcAccount } from "./.setup/channel-BkN5303m.mjs";
1
+ import { _ as listIrcAccountIds, g as listEnabledIrcAccounts, n as ircSetupWizard, r as ircSetupAdapter, t as ircPlugin, v as resolveDefaultIrcAccountId, y as resolveIrcAccount } from "./.setup/channel-CO6Iez9u.mjs";
2
2
  import { n as setIrcRuntime } from "./.setup/runtime-xy-FcjJC.mjs";
3
3
  export { ircPlugin, ircSetupAdapter, ircSetupWizard, listEnabledIrcAccounts, listIrcAccountIds, resolveDefaultIrcAccountId, resolveIrcAccount, setIrcRuntime };
@@ -1,2 +1,2 @@
1
- import { t as ircPlugin } from "./.setup/channel-BkN5303m.mjs";
1
+ import { t as ircPlugin } from "./.setup/channel-CO6Iez9u.mjs";
2
2
  export { ircPlugin };