@openclaw/line 2026.9.4 → 2026.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/assets/activity.svg +40 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/.setup/api-BePkCTWu.mjs +3 -0
  4. package/dist/.setup/api-W3zy11mj.mjs +11 -0
  5. package/dist/{card-command-pwvE48Wb.js → .setup/card-command-PSnrhetp.mjs} +2 -2
  6. package/dist/{channel-C2D8vUmv.js → .setup/channel-CAFu4vuW.mjs} +286 -91
  7. package/dist/.setup/channel.runtime-CgI6K6p-.mjs +4 -0
  8. package/dist/{markdown-to-line-DR3sFH6H.js → .setup/markdown-to-line-Dvyr_6HD.mjs} +58 -25
  9. package/dist/{monitor-2lOtBpg-.js → .setup/monitor-1JaX1WOU.mjs} +393 -135
  10. package/dist/.setup/monitor.runtime-D2vNVJRD.mjs +2 -0
  11. package/dist/{outbound.runtime-Cpp7NAmT.js → .setup/outbound.runtime-CyrwiL69.mjs} +2 -2
  12. package/dist/.setup/probe.runtime-kp-FIW5_.mjs +2 -0
  13. package/dist/{rich-messages-HS8pNeOa.js → .setup/rich-messages-Cp77q9NY.mjs} +158 -18
  14. package/dist/{send-CQQxpxPp.js → .setup/send-E6GiL_tr.mjs} +27 -10
  15. package/dist/{send-retry-ChpfJ-LM.js → .setup/send-retry-DaGwYlBO.mjs} +104 -3
  16. package/dist/{setup-surface-DiXO4x5f.js → .setup/setup-surface-CcfKJKtr.mjs} +2 -2
  17. package/dist/api.js +2 -10
  18. package/dist/channel-plugin-api.js +1 -1
  19. package/dist/contract-api.js +1 -1
  20. package/dist/doctor-contract-api.js +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/runtime-api.js +9 -9
  23. package/dist/setup-api.js +1 -1
  24. package/dist/setup-entry.js +2 -1
  25. package/node_modules/typebox/build/compile/validator.d.mts +1 -1
  26. package/node_modules/typebox/build/compile/validator.mjs +1 -1
  27. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
  28. package/node_modules/typebox/build/format/iri.mjs +5 -1
  29. package/node_modules/typebox/build/guard/emit.mjs +2 -4
  30. package/node_modules/typebox/build/guard/guard.mjs +6 -18
  31. package/node_modules/typebox/build/guard/string.mjs +16 -24
  32. package/node_modules/typebox/build/schema/build.mjs +2 -2
  33. package/node_modules/typebox/build/schema/check.mjs +1 -1
  34. package/node_modules/typebox/build/schema/compile.d.mts +3 -2
  35. package/node_modules/typebox/build/schema/compile.mjs +8 -8
  36. package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
  37. package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
  38. package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
  39. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
  40. package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
  41. package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
  42. package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
  43. package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
  44. package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
  45. package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
  46. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
  47. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
  48. package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
  49. package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
  50. package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
  51. package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
  52. package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
  53. package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
  54. package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
  55. package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
  56. package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
  57. package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
  58. package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
  59. package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
  60. package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
  61. package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
  62. package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
  63. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
  64. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
  65. package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
  66. package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
  67. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  68. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
  69. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  70. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
  71. package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
  72. package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
  73. package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
  74. package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
  75. package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
  76. package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
  77. package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
  78. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
  79. package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
  80. package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
  81. package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
  82. package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
  83. package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
  84. package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
  85. package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
  86. package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
  87. package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
  88. package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
  89. package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
  90. package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
  91. package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
  92. package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
  93. package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
  94. package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
  95. package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
  96. package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
  97. package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
  98. package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
  99. package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
  100. package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
  101. package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
  102. package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
  103. package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
  104. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
  105. package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
  106. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
  107. package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
  108. package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
  109. package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
  110. package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
  111. package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
  112. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
  113. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
  114. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
  115. package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
  116. package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
  117. package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
  118. package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
  119. package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
  120. package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
  121. package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
  122. package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
  123. package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
  124. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
  125. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  126. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
  127. package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
  128. package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
  129. package/node_modules/typebox/build/schema/errors.d.mts +2 -2
  130. package/node_modules/typebox/build/schema/errors.mjs +8 -14
  131. package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
  132. package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
  133. package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
  134. package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
  135. package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
  136. package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
  137. package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
  138. package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
  139. package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
  140. package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
  141. package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
  142. package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
  143. package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
  144. package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
  145. package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
  146. package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
  147. package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
  148. package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
  149. package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
  150. package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
  151. package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
  152. package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
  153. package/node_modules/typebox/build/schema/parse.d.mts +1 -0
  154. package/node_modules/typebox/build/schema/parse.mjs +10 -5
  155. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
  156. package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
  157. package/node_modules/typebox/build/schema/schema.d.mts +2 -0
  158. package/node_modules/typebox/build/schema/schema.mjs +2 -0
  159. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
  160. package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
  161. package/node_modules/typebox/package.json +1 -1
  162. package/node_modules/typebox/readme.md +59 -89
  163. package/node_modules/zod/README.md +27 -0
  164. package/node_modules/zod/compile.cjs +77 -0
  165. package/node_modules/zod/compile.d.cts +1 -0
  166. package/node_modules/zod/compile.d.ts +1 -0
  167. package/node_modules/zod/compile.js +52 -0
  168. package/node_modules/zod/index.cjs +2 -2
  169. package/node_modules/zod/index.d.cts +1 -2
  170. package/node_modules/zod/index.d.ts +1 -2
  171. package/node_modules/zod/index.js +5 -2
  172. package/node_modules/zod/package.json +13 -2
  173. package/node_modules/zod/src/compile.ts +56 -0
  174. package/node_modules/zod/src/index.ts +5 -2
  175. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  176. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  177. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  178. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  179. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  180. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  181. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  182. package/node_modules/zod/src/v3/types.ts +5 -5
  183. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  184. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  185. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  186. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  187. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  188. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  189. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  190. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  191. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  192. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  193. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  194. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  195. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  196. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  197. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  198. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  199. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  200. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  201. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  202. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  203. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  204. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  205. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  206. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  207. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  208. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  209. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  210. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  211. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  212. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  213. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  214. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  215. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  216. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  217. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  218. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  219. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  220. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  221. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  222. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  223. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  224. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  225. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  226. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  227. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  228. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  229. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  230. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  231. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  232. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  233. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  234. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  235. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  236. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  237. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  238. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  239. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  240. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  241. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  242. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  243. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  244. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  245. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  246. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  247. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  248. package/node_modules/zod/src/v4/core/api.ts +48 -12
  249. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  250. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  251. package/node_modules/zod/src/v4/core/core.ts +98 -19
  252. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  253. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  254. package/node_modules/zod/src/v4/core/index.ts +3 -0
  255. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  256. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  257. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  258. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  259. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  260. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  261. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  262. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  263. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  264. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  265. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  266. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  267. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  268. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  269. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  270. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  271. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  272. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  273. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  274. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  275. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  276. package/node_modules/zod/src/v4/core/util.ts +268 -42
  277. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  278. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  279. package/node_modules/zod/src/v4/index.ts +3 -3
  280. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  281. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  282. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  283. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  284. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  285. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  286. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  287. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  288. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  289. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  290. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  291. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  292. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  293. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  294. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  295. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  296. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  297. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  298. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  299. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  300. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  301. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  302. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  303. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  304. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  305. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  306. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  307. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  308. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  309. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  310. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  311. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  312. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  313. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  314. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  315. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  316. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  317. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  318. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  319. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  320. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  321. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  322. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  323. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  324. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  325. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  326. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  327. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  328. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  329. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  330. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  331. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  332. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  333. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  334. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  335. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  336. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  337. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  338. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  339. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  340. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  341. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  342. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  343. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  344. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  345. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  346. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  347. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  348. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  349. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  350. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  351. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  352. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  353. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  354. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  355. package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
  356. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  357. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  358. package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
  359. package/node_modules/zod/v3/ZodError.cjs +22 -12
  360. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  361. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  362. package/node_modules/zod/v3/ZodError.js +22 -12
  363. package/node_modules/zod/v3/types.cjs +7 -5
  364. package/node_modules/zod/v3/types.js +7 -5
  365. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  366. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  367. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  368. package/node_modules/zod/v4/classic/checks.js +1 -1
  369. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  370. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  371. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  372. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  373. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  374. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  375. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  376. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  377. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  378. package/node_modules/zod/v4/classic/errors.js +43 -34
  379. package/node_modules/zod/v4/classic/external.cjs +30 -27
  380. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  381. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  382. package/node_modules/zod/v4/classic/external.js +5 -8
  383. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  384. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  385. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  386. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  387. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  388. package/node_modules/zod/v4/classic/in-out.js +36 -0
  389. package/node_modules/zod/v4/classic/index.cjs +2 -2
  390. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  391. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  392. package/node_modules/zod/v4/classic/index.js +2 -2
  393. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  394. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  395. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  396. package/node_modules/zod/v4/classic/iso.js +2 -17
  397. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  398. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  399. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  400. package/node_modules/zod/v4/classic/parse.js +1 -0
  401. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  402. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  403. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  404. package/node_modules/zod/v4/classic/schemas.js +492 -396
  405. package/node_modules/zod/v4/core/api.cjs +23 -4
  406. package/node_modules/zod/v4/core/api.d.cts +13 -9
  407. package/node_modules/zod/v4/core/api.d.ts +13 -9
  408. package/node_modules/zod/v4/core/api.js +21 -4
  409. package/node_modules/zod/v4/core/checks.cjs +37 -31
  410. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  411. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  412. package/node_modules/zod/v4/core/checks.js +37 -31
  413. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  414. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  415. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  416. package/node_modules/zod/v4/core/compile.js +1783 -0
  417. package/node_modules/zod/v4/core/core.cjs +81 -18
  418. package/node_modules/zod/v4/core/core.d.cts +16 -4
  419. package/node_modules/zod/v4/core/core.d.ts +16 -4
  420. package/node_modules/zod/v4/core/core.js +82 -19
  421. package/node_modules/zod/v4/core/doc.cjs +5 -7
  422. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  423. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  424. package/node_modules/zod/v4/core/doc.js +5 -7
  425. package/node_modules/zod/v4/core/errors.cjs +110 -25
  426. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  427. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  428. package/node_modules/zod/v4/core/errors.js +110 -25
  429. package/node_modules/zod/v4/core/index.cjs +5 -1
  430. package/node_modules/zod/v4/core/index.d.cts +3 -0
  431. package/node_modules/zod/v4/core/index.d.ts +3 -0
  432. package/node_modules/zod/v4/core/index.js +3 -0
  433. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  434. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  435. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  436. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  437. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  438. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  439. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  440. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  441. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  442. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  443. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  444. package/node_modules/zod/v4/core/memoizer.js +265 -0
  445. package/node_modules/zod/v4/core/parse.cjs +96 -34
  446. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  447. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  448. package/node_modules/zod/v4/core/parse.js +94 -33
  449. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  450. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  451. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  452. package/node_modules/zod/v4/core/regexes.js +24 -13
  453. package/node_modules/zod/v4/core/registries.js +2 -2
  454. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  455. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  456. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  457. package/node_modules/zod/v4/core/schemas.js +526 -325
  458. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  459. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  460. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  461. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  462. package/node_modules/zod/v4/core/util.cjs +212 -31
  463. package/node_modules/zod/v4/core/util.d.cts +58 -1
  464. package/node_modules/zod/v4/core/util.d.ts +58 -1
  465. package/node_modules/zod/v4/core/util.js +202 -30
  466. package/node_modules/zod/v4/core/versions.cjs +2 -2
  467. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  468. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  469. package/node_modules/zod/v4/core/versions.js +2 -2
  470. package/node_modules/zod/v4/core/visit.cjs +195 -0
  471. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  472. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  473. package/node_modules/zod/v4/core/visit.js +169 -0
  474. package/node_modules/zod/v4/index.cjs +15 -5
  475. package/node_modules/zod/v4/index.d.cts +2 -2
  476. package/node_modules/zod/v4/index.d.ts +2 -2
  477. package/node_modules/zod/v4/index.js +3 -2
  478. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  479. package/node_modules/zod/v4/locales/ar.js +3 -0
  480. package/node_modules/zod/v4/locales/az.cjs +3 -0
  481. package/node_modules/zod/v4/locales/az.js +3 -0
  482. package/node_modules/zod/v4/locales/be.cjs +10 -0
  483. package/node_modules/zod/v4/locales/be.js +10 -0
  484. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  485. package/node_modules/zod/v4/locales/bg.js +3 -0
  486. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  487. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  488. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  489. package/node_modules/zod/v4/locales/bn.js +111 -0
  490. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  491. package/node_modules/zod/v4/locales/ca.js +3 -0
  492. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  493. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  494. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  495. package/node_modules/zod/v4/locales/ckb.js +131 -0
  496. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  497. package/node_modules/zod/v4/locales/cs.js +3 -0
  498. package/node_modules/zod/v4/locales/da.cjs +5 -2
  499. package/node_modules/zod/v4/locales/da.js +5 -2
  500. package/node_modules/zod/v4/locales/de.cjs +3 -0
  501. package/node_modules/zod/v4/locales/de.js +3 -0
  502. package/node_modules/zod/v4/locales/el.cjs +1 -0
  503. package/node_modules/zod/v4/locales/el.js +1 -0
  504. package/node_modules/zod/v4/locales/en.cjs +14 -4
  505. package/node_modules/zod/v4/locales/en.js +14 -4
  506. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  507. package/node_modules/zod/v4/locales/eo.js +3 -0
  508. package/node_modules/zod/v4/locales/es.cjs +2 -0
  509. package/node_modules/zod/v4/locales/es.js +2 -0
  510. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  511. package/node_modules/zod/v4/locales/fa.js +3 -0
  512. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  513. package/node_modules/zod/v4/locales/fi.js +3 -0
  514. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  515. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  516. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  517. package/node_modules/zod/v4/locales/fr.js +16 -14
  518. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  519. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  520. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  521. package/node_modules/zod/v4/locales/gu.js +111 -0
  522. package/node_modules/zod/v4/locales/he.cjs +5 -0
  523. package/node_modules/zod/v4/locales/he.js +5 -0
  524. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  525. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  526. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  527. package/node_modules/zod/v4/locales/hi.js +109 -0
  528. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  529. package/node_modules/zod/v4/locales/hr.js +2 -0
  530. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  531. package/node_modules/zod/v4/locales/hu.js +3 -0
  532. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  533. package/node_modules/zod/v4/locales/hy.js +9 -0
  534. package/node_modules/zod/v4/locales/id.cjs +3 -0
  535. package/node_modules/zod/v4/locales/id.js +3 -0
  536. package/node_modules/zod/v4/locales/index.cjs +22 -2
  537. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  538. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  539. package/node_modules/zod/v4/locales/index.js +10 -0
  540. package/node_modules/zod/v4/locales/is.cjs +3 -0
  541. package/node_modules/zod/v4/locales/is.js +3 -0
  542. package/node_modules/zod/v4/locales/it.cjs +3 -0
  543. package/node_modules/zod/v4/locales/it.js +3 -0
  544. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  545. package/node_modules/zod/v4/locales/ja.js +3 -0
  546. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  547. package/node_modules/zod/v4/locales/ka.js +3 -0
  548. package/node_modules/zod/v4/locales/km.cjs +3 -0
  549. package/node_modules/zod/v4/locales/km.js +3 -0
  550. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  551. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  552. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  553. package/node_modules/zod/v4/locales/kn.js +114 -0
  554. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  555. package/node_modules/zod/v4/locales/ko.js +3 -0
  556. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  557. package/node_modules/zod/v4/locales/lt.js +2 -0
  558. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  559. package/node_modules/zod/v4/locales/mk.js +3 -0
  560. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  561. package/node_modules/zod/v4/locales/ms.js +3 -0
  562. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  563. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  564. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  565. package/node_modules/zod/v4/locales/ne.js +109 -0
  566. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  567. package/node_modules/zod/v4/locales/nl.js +3 -0
  568. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  569. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  570. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  571. package/node_modules/zod/v4/locales/nn.js +111 -0
  572. package/node_modules/zod/v4/locales/no.cjs +5 -2
  573. package/node_modules/zod/v4/locales/no.js +5 -2
  574. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  575. package/node_modules/zod/v4/locales/ota.js +3 -0
  576. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  577. package/node_modules/zod/v4/locales/pl.js +3 -0
  578. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  579. package/node_modules/zod/v4/locales/ps.js +3 -0
  580. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  581. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  582. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  583. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  584. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  585. package/node_modules/zod/v4/locales/pt.js +87 -55
  586. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  587. package/node_modules/zod/v4/locales/ro.js +1 -0
  588. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  589. package/node_modules/zod/v4/locales/ru.js +10 -0
  590. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  591. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  592. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  593. package/node_modules/zod/v4/locales/sk.js +114 -0
  594. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  595. package/node_modules/zod/v4/locales/sl.js +3 -0
  596. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  597. package/node_modules/zod/v4/locales/sv.js +5 -2
  598. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  599. package/node_modules/zod/v4/locales/ta.js +3 -0
  600. package/node_modules/zod/v4/locales/th.cjs +3 -0
  601. package/node_modules/zod/v4/locales/th.js +3 -0
  602. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  603. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  604. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  605. package/node_modules/zod/v4/locales/tk.js +105 -0
  606. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  607. package/node_modules/zod/v4/locales/tr.js +3 -0
  608. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  609. package/node_modules/zod/v4/locales/uk.js +3 -0
  610. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  611. package/node_modules/zod/v4/locales/ur.js +3 -0
  612. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  613. package/node_modules/zod/v4/locales/uz.js +1 -0
  614. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  615. package/node_modules/zod/v4/locales/vi.js +3 -0
  616. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  617. package/node_modules/zod/v4/locales/yo.js +3 -0
  618. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  619. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  620. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  621. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  622. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  623. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  624. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  625. package/node_modules/zod/v4/mini/checks.js +1 -1
  626. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  627. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  628. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  629. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  630. package/node_modules/zod/v4/mini/external.cjs +12 -1
  631. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  632. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  633. package/node_modules/zod/v4/mini/external.js +3 -1
  634. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  635. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  636. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  637. package/node_modules/zod/v4/mini/in-out.js +36 -0
  638. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  639. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  640. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  641. package/node_modules/zod/v4/mini/parse.js +1 -1
  642. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  643. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  644. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  645. package/node_modules/zod/v4/mini/schemas.js +71 -45
  646. package/openclaw.plugin.json +120 -42
  647. package/package.json +16 -7
  648. package/dist/channel.runtime-CYHw3gcp.js +0 -4
  649. package/dist/monitor.runtime-BJ0XI3qK.js +0 -2
  650. package/dist/probe.runtime-CbtMgU4s.js +0 -2
  651. package/node_modules/zod/src/v4/core/config.ts +0 -15
  652. /package/dist/{account-helpers-BSUyZwLm.js → .setup/account-helpers-BSUyZwLm.mjs} +0 -0
  653. /package/dist/{accounts-BBEFMYbY.js → .setup/accounts-BBEFMYbY.mjs} +0 -0
  654. /package/dist/{webhook-spool-contract-1rY8OJw8.js → .setup/webhook-spool-contract-1rY8OJw8.mjs} +0 -0
@@ -0,0 +1,40 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+ <!--
3
+ Source: simple-icons@16.31.0, icons/line.svg
4
+ https://www.npmjs.com/package/simple-icons/v/16.31.0
5
+ https://github.com/simple-icons/simple-icons
6
+
7
+ # CC0 1.0 Universal
8
+
9
+ ## Statement of Purpose
10
+
11
+ The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an “owner”) of an original work of authorship and/or a database (each, a “Work”).
12
+
13
+ Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works (“Commons”) that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.
14
+
15
+ For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the “Affirmer”), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.
16
+
17
+ 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights (“Copyright and Related Rights”). Copyright and Related Rights include, but are not limited to, the following:
18
+ 1. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;
19
+ 2. moral rights retained by the original author(s) and/or performer(s);
20
+ 3. publicity and privacy rights pertaining to a person’s image or likeness depicted in a Work;
21
+ 4. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(i), below;
22
+ 5. rights protecting the extraction, dissemination, use and reuse of data in a Work;
23
+ 6. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and
24
+ 7. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.
25
+
26
+ 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer’s Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the “Waiver”). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer’s heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer’s express Statement of Purpose.
27
+
28
+ 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer’s express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer’s Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the “License”). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer’s express Statement of Purpose.
29
+
30
+ 4. Limitations and Disclaimers.
31
+ 1. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.
32
+ 2. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.
33
+ 3. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person’s Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.
34
+ 4. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.
35
+
36
+ For more information, please see <https://creativecommons.org/publicdomain/zero/1.0>.
37
+ Names and marks remain the property of their respective owners.
38
+ -->
39
+ <path fill="currentColor" stroke="none" d="M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314" />
40
+ </svg>
Binary file
@@ -0,0 +1,3 @@
1
+ import { t as linePlugin } from "./channel-CAFu4vuW.mjs";
2
+ import { t as lineSetupPlugin } from "./api-W3zy11mj.mjs";
3
+ export { linePlugin, lineSetupPlugin };
@@ -0,0 +1,11 @@
1
+ import { n as lineChannelPluginCommon } from "./channel-CAFu4vuW.mjs";
2
+ import { r as lineSetupContract, t as lineSetupWizard } from "./setup-surface-CcfKJKtr.mjs";
3
+ //#region extensions/line/src/channel.setup.ts
4
+ const lineSetupPlugin = {
5
+ id: "line",
6
+ ...lineChannelPluginCommon,
7
+ setupWizard: lineSetupWizard,
8
+ setupContract: lineSetupContract
9
+ };
10
+ //#endregion
11
+ export { lineSetupPlugin as t };
@@ -1,5 +1,5 @@
1
- import { d as createActionCard, f as createImageCard, m as createListCard, p as createInfoCard, u as createReceiptCard } from "./send-retry-ChpfJ-LM.js";
2
- import { t as createFlexMessage } from "./send-CQQxpxPp.js";
1
+ import { d as createActionCard, f as createImageCard, m as createListCard, p as createInfoCard, u as createReceiptCard } from "./send-retry-DaGwYlBO.mjs";
2
+ import { t as createFlexMessage } from "./send-E6GiL_tr.mjs";
3
3
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
5
5
  //#region extensions/line/src/card-command.ts
@@ -1,8 +1,8 @@
1
- import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-BBEFMYbY.js";
2
- import { t as hasLineCredentials } from "./account-helpers-BSUyZwLm.js";
3
- import { _ as LineChannelConfigSchema, a as renderLineCard, d as resolveExactLineGroupConfigKey, h as getLineRuntime, n as createLineQuickReply, o as renderLinePresentation, p as resolveLineGroupLookupIds, r as lineMessageActions, t as LINE_PRESENTATION_CAPABILITIES, u as buildLineQuickReplyFallbackText } from "./rich-messages-HS8pNeOa.js";
4
- import { s as createLineSendReceipt, t as explainLineRefusal, w as buildLineMediaMessage } from "./send-retry-ChpfJ-LM.js";
5
- import { r as lineSetupContract, t as lineSetupWizard } from "./setup-surface-DiXO4x5f.js";
1
+ import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-BBEFMYbY.mjs";
2
+ import { t as hasLineCredentials } from "./account-helpers-BSUyZwLm.mjs";
3
+ import { S as LineChannelConfigSchema, _ as resolveLineGroupLookupIds, a as renderLineCard, b as normalizeAllowFrom, f as buildLineQuickReplyFallbackText, g as resolveLineGroupConfigEntry, h as resolveExactLineGroupConfigKey, n as createLineQuickReply, o as renderLinePresentation, p as getLineRuntime, r as lineMessageActions, t as LINE_PRESENTATION_CAPABILITIES } from "./rich-messages-Cp77q9NY.mjs";
4
+ import { F as inferLineTargetChatType, I as normalizeLineMessagingTarget, O as reportLineQuoteCarrierMissing, T as canCarryLineQuoteToken, j as buildLineMediaMessage, k as resolveLineQuoteToken, s as createLineSendReceipt, t as explainLineRefusal } from "./send-retry-DaGwYlBO.mjs";
5
+ import { r as lineSetupContract, t as lineSetupWizard } from "./setup-surface-CcfKJKtr.mjs";
6
6
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
7
7
  import { buildDmGroupAccountAllowlistAdapter, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
8
8
  import { buildChannelOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
@@ -12,14 +12,16 @@ import { createChannelDirectoryAdapter, createResolvedDirectoryEntriesLister } f
12
12
  import { describeWebhookAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
13
13
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
14
14
  import { clearAccountFieldsFromConfigSection, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
15
- import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
15
+ import { isRecord, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
16
+ import { parseAccessGroupAllowFromEntry } from "openclaw/plugin-sdk/access-groups";
17
+ import { firstDefined } from "openclaw/plugin-sdk/allow-from";
16
18
  import { createAccountStatusSink, defineChannelMessageAdapter, listMessageReceiptPlatformIds } from "openclaw/plugin-sdk/channel-outbound";
19
+ import { buildTokenChannelStatusSummary, collectIssuesForEnabledAccounts, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, createDependentCredentialStatusIssueCollector } from "openclaw/plugin-sdk/status-helpers";
17
20
  import { createChannelPartialDeliveryError, isChannelPartialDeliveryError } from "openclaw/plugin-sdk/channel-inbound";
18
21
  import { createAttachedChannelResultAdapter, createEmptyChannelResult } from "openclaw/plugin-sdk/channel-send-result";
19
22
  import { PlatformMessageNotDispatchedError } from "openclaw/plugin-sdk/error-runtime";
20
23
  import { resolveOutboundMediaUrls } from "openclaw/plugin-sdk/reply-payload";
21
24
  import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
22
- import { buildTokenChannelStatusSummary, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, createDependentCredentialStatusIssueCollector } from "openclaw/plugin-sdk/status-helpers";
23
25
  //#region extensions/line/src/bindings.ts
24
26
  function normalizeLineConversationId(raw) {
25
27
  const trimmed = raw?.trim() ?? "";
@@ -118,9 +120,188 @@ const lineChannelPluginCommon = {
118
120
  }
119
121
  };
120
122
  //#endregion
123
+ //#region extensions/line/src/doctor.ts
124
+ const GROUP_DEFAULTS_KEY = "*";
125
+ function classifyAllowFrom(values) {
126
+ const entries = Array.isArray(values) ? normalizeAllowFrom(values).entries : [];
127
+ return {
128
+ covered: entries.some((entry) => parseAccessGroupAllowFromEntry(entry) === null),
129
+ referenced: entries.some((entry) => parseAccessGroupAllowFromEntry(entry) !== null)
130
+ };
131
+ }
132
+ /**
133
+ * Read the group map one scope at a time, the way account resolution does.
134
+ *
135
+ * `mergeAccountConfig` spreads account keys over channel keys and LINE declares no
136
+ * nested object keys, so an account that authors `groups` replaces the channel-level
137
+ * map outright instead of merging entry by entry. Reading both scopes together would
138
+ * credit an account with groups its runtime never sees.
139
+ */
140
+ function readGroupEntries(account, parent) {
141
+ const groups = isRecord(account?.groups) ? account.groups : parent?.groups;
142
+ if (!isRecord(groups)) return [];
143
+ return Object.entries(groups).filter((entry) => isRecord(entry[1]));
144
+ }
145
+ function inspectLineGroupCoverage(params) {
146
+ const empty = {
147
+ group: [],
148
+ defaults: [],
149
+ channel: []
150
+ };
151
+ const entries = readGroupEntries(params.account, params.parent);
152
+ const groups = Object.fromEntries(entries);
153
+ const defaults = groups[GROUP_DEFAULTS_KEY];
154
+ const defaultCoverage = classifyAllowFrom(firstDefined(defaults?.allowFrom, params.groupAllowFrom));
155
+ let covered = defaults?.enabled !== false && defaultCoverage.covered;
156
+ const referenceBacked = defaults?.enabled !== false && defaultCoverage.referenced ? [GROUP_DEFAULTS_KEY] : [];
157
+ const uncovered = [];
158
+ for (const [id, group] of entries) {
159
+ if (id === GROUP_DEFAULTS_KEY) continue;
160
+ const groupId = resolveLineGroupLookupIds(id)[0];
161
+ if (resolveExactLineGroupConfigKey({
162
+ groups,
163
+ groupId
164
+ }) !== id) continue;
165
+ const effectiveGroup = resolveLineGroupConfigEntry(groups, { groupId });
166
+ if (effectiveGroup?.enabled === false) continue;
167
+ const allowlist = classifyAllowFrom(firstDefined(effectiveGroup?.allowFrom, params.groupAllowFrom));
168
+ if (allowlist.referenced) referenceBacked.push(id);
169
+ if (allowlist.covered) covered = true;
170
+ else if (allowlist.referenced) continue;
171
+ else if (group.allowFrom !== void 0) empty.group.push(id);
172
+ else if (defaults?.allowFrom !== void 0) empty.defaults.push(id);
173
+ else if (params.groupAllowFrom !== void 0) empty.channel.push(id);
174
+ else uncovered.push(id);
175
+ }
176
+ return {
177
+ covered,
178
+ referenceBacked,
179
+ uncovered,
180
+ empty
181
+ };
182
+ }
183
+ function readLineGroupCoverage(params) {
184
+ const { account, parent } = params;
185
+ return inspectLineGroupCoverage({
186
+ account,
187
+ ...parent ? { parent } : {},
188
+ groupAllowFrom: firstDefined(account.groupAllowFrom, parent?.groupAllowFrom)
189
+ });
190
+ }
191
+ function readGroupPolicy(value) {
192
+ return typeof value === "string" ? value : void 0;
193
+ }
194
+ function isLineGroupAllowlistScope(params) {
195
+ return params.channelName === "line" && (readGroupPolicy(params.account.groupPolicy) ?? readGroupPolicy(params.parent?.groupPolicy)) === "allowlist";
196
+ }
197
+ function formatGroupIds(ids) {
198
+ return ids.map((id) => `"${id}"`).join(", ");
199
+ }
200
+ /** Name blocked groups when a working per-group allowlist makes the shared warning untrue. */
201
+ function collectLineEmptyAllowlistExtraWarnings(params) {
202
+ if (!isLineGroupAllowlistScope(params)) return [];
203
+ const { covered, referenceBacked, uncovered, empty } = readLineGroupCoverage(params);
204
+ const warnings = [];
205
+ if (referenceBacked.length > 0) {
206
+ const single = referenceBacked.length === 1;
207
+ warnings.push(`- ${params.prefix}.groups: ${single ? "group" : "groups"} ${formatGroupIds(referenceBacked)} ${single ? "uses" : "use"} access-group references. Doctor cannot verify their LINE sender membership here. Check the referenced access groups before relying on group access.`);
208
+ }
209
+ const dropped = (ids) => `- ${params.prefix}.groups: ${ids.length === 1 ? "group" : "groups"} ${formatGroupIds(ids)} ${ids.length === 1 ? "resolves" : "resolve"} to an empty sender allowlist — messages there are silently dropped.`;
210
+ if (empty.group.length > 0) warnings.push(`${dropped(empty.group)} The empty list is authored on ${empty.group.length === 1 ? "that entry" : "those entries"} and overrides every wider list, so add sender IDs there, or remove the allowFrom key to inherit.`);
211
+ if (empty.defaults.length > 0) warnings.push(`${dropped(empty.defaults)} The empty list comes from ${params.prefix}.groups."*".allowFrom, so add sender IDs to that entry, or give ${empty.defaults.length === 1 ? "the group" : "each group"} its own allowFrom.`);
212
+ if (empty.channel.length > 0) warnings.push(`${dropped(empty.channel)} The empty list comes from ${params.prefix}.groupAllowFrom, so add sender IDs there, or give ${empty.channel.length === 1 ? "the group" : "each group"} its own allowFrom.`);
213
+ if ((covered || referenceBacked.length > 0) && uncovered.length > 0) {
214
+ const single = uncovered.length === 1;
215
+ const otherGroups = referenceBacked.length > 0 ? "" : " while your other groups keep working";
216
+ warnings.push(`- ${params.prefix}.groups: ${single ? "group" : "groups"} ${formatGroupIds(uncovered)} ${single ? "has" : "have"} no sender allowlist — messages there are silently dropped${otherGroups}. Add sender IDs under ${params.prefix}.groups.<id>.allowFrom, or under ${params.prefix}.groups."*".allowFrom to cover every group, or to ${params.prefix}.groupAllowFrom.`);
217
+ }
218
+ return warnings;
219
+ }
220
+ const lineDoctor = {
221
+ collectEmptyAllowlistExtraWarnings: collectLineEmptyAllowlistExtraWarnings,
222
+ shouldSkipDefaultEmptyGroupAllowlistWarning: (params) => {
223
+ if (!isLineGroupAllowlistScope(params)) return false;
224
+ const { covered, referenceBacked } = readLineGroupCoverage(params);
225
+ return covered || referenceBacked.length > 0;
226
+ }
227
+ };
228
+ //#endregion
229
+ //#region extensions/line/src/status.ts
230
+ const loadLineProbeRuntime$1 = createLazyRuntimeModule(() => import("./probe.runtime-kp-FIW5_.mjs"));
231
+ const collectLineCredentialIssues = createDependentCredentialStatusIssueCollector({
232
+ channel: "line",
233
+ dependencySourceKey: "tokenSource",
234
+ missingPrimaryMessage: "LINE channel access token not configured",
235
+ missingDependentMessage: "LINE channel secret not configured"
236
+ });
237
+ function readProbeWebhookState(probe) {
238
+ if (!isRecord(probe) || !isRecord(probe.webhook)) return;
239
+ const { status } = probe.webhook;
240
+ return status === "active" || status === "disabled" || status === "unset" ? { status } : void 0;
241
+ }
242
+ /**
243
+ * What to tell an operator about a webhook LINE will not deliver to, or nothing when
244
+ * it will. Startup and status both report this, and share one wording so the account
245
+ * that logged the warning cannot describe itself differently when asked again.
246
+ *
247
+ * Each state names the action it needs, and only the action: a registered-but-off
248
+ * webhook needs the console switch, an unregistered one needs the route this account
249
+ * serves. Both name where to look rather than what is there — a registered URL, and an
250
+ * opaque configured route, are strings an operator may be using as a shared secret, and
251
+ * neither is needed to act: the console holds the first, and the operator's own config
252
+ * holds the second.
253
+ */
254
+ function describeLineWebhookDelivery(params) {
255
+ const { webhook } = params;
256
+ if (!webhook || webhook.status === "active") return;
257
+ const consoleTab = "the channel's Messaging API tab in the LINE Developers Console";
258
+ return webhook.status === "disabled" ? {
259
+ message: "LINE is not delivering webhook events: this channel's webhook URL is registered but switched off.",
260
+ fix: `turn Use webhook on in ${consoleTab}`
261
+ } : {
262
+ message: "LINE is not delivering webhook events: this channel has no webhook URL registered.",
263
+ fix: `register your gateway's public HTTPS URL for the route in channels.line.webhookPath (default /line/webhook) in ${consoleTab}, then turn Use webhook on`
264
+ };
265
+ }
266
+ function collectLineWebhookIssues(accounts) {
267
+ return collectIssuesForEnabledAccounts({
268
+ accounts,
269
+ readAccount: (account) => account.configured === false ? null : account,
270
+ collectIssues: ({ account, accountId, issues }) => {
271
+ const delivery = describeLineWebhookDelivery({ webhook: readProbeWebhookState(account.probe) });
272
+ if (delivery) issues.push({
273
+ channel: "line",
274
+ accountId,
275
+ kind: "config",
276
+ ...delivery
277
+ });
278
+ }
279
+ });
280
+ }
281
+ const lineStatusAdapter = createComputedAccountStatusAdapter({
282
+ defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID),
283
+ collectStatusIssues: (accounts) => [...collectLineCredentialIssues(accounts), ...collectLineWebhookIssues(accounts)],
284
+ buildChannelSummary: ({ snapshot }) => buildTokenChannelStatusSummary(snapshot),
285
+ probeAccount: async ({ account, timeoutMs }) => await (await loadLineProbeRuntime$1()).probeLineBot(account.channelAccessToken, timeoutMs),
286
+ resolveAccountSnapshot: ({ account, probe }) => ({
287
+ accountId: account.accountId,
288
+ name: account.name,
289
+ enabled: account.enabled,
290
+ configured: hasLineCredentials(account),
291
+ extra: {
292
+ tokenSource: account.tokenSource,
293
+ signingSecretSource: account.signingSecretSource,
294
+ tokenStatus: account.tokenStatus,
295
+ signingSecretStatus: account.signingSecretStatus,
296
+ mode: "webhook",
297
+ ...probe?.quota ? { quota: probe.quota } : {}
298
+ }
299
+ })
300
+ });
301
+ //#endregion
121
302
  //#region extensions/line/src/gateway.ts
122
- const loadLineProbeRuntime$1 = createLazyRuntimeModule(() => import("./probe.runtime-CbtMgU4s.js"));
123
- const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-BJ0XI3qK.js"));
303
+ const loadLineProbeRuntime = createLazyRuntimeModule(() => import("./probe.runtime-kp-FIW5_.mjs"));
304
+ const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-D2vNVJRD.mjs"));
124
305
  const lineGatewayAdapter = {
125
306
  startAccount: async (ctx) => {
126
307
  const account = ctx.account;
@@ -135,9 +316,11 @@ const lineGatewayAdapter = {
135
316
  statusSink({ lifecycle: "starting" });
136
317
  let lineBotLabel = "";
137
318
  try {
138
- const probe = await (await loadLineProbeRuntime$1()).probeLineBot(token, 2500);
319
+ const probe = await (await loadLineProbeRuntime()).probeLineBot(token, 2500);
139
320
  const displayName = probe.ok ? probe.bot?.displayName?.trim() : null;
140
321
  if (displayName) lineBotLabel = ` (${displayName})`;
322
+ const delivery = describeLineWebhookDelivery({ webhook: probe.ok ? probe.webhook : void 0 });
323
+ if (delivery) ctx.log?.warn(`[${account.accountId}] ${delivery.message} Fix: ${delivery.fix}.`);
141
324
  } catch (err) {
142
325
  if (getLineRuntime().logging.shouldLogVerbose()) ctx.log?.debug?.(`[${account.accountId}] bot probe failed: ${String(err)}`);
143
326
  }
@@ -197,29 +380,19 @@ function resolveLineGroupRequireMention(params) {
197
380
  });
198
381
  }
199
382
  //#endregion
200
- //#region extensions/line/src/messaging-target.ts
201
- function normalizeLineMessagingTarget(target) {
202
- const trimmed = target.trim();
203
- if (!trimmed) return;
204
- return trimmed.replace(/^line:(group|room|user):/i, "").replace(/^line:/i, "");
205
- }
206
- function inferLineTargetChatType(target) {
207
- const normalized = normalizeLineMessagingTarget(target);
208
- if (!normalized) return;
209
- if (/^U[a-f0-9]{32}$/i.test(normalized)) return "direct";
210
- return /^[CR][a-f0-9]{32}$/i.test(normalized) ? "group" : void 0;
211
- }
212
- //#endregion
213
383
  //#region extensions/line/src/outbound.ts
214
- const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-Cpp7NAmT.js"));
384
+ const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-CyrwiL69.mjs"));
385
+ function quotedOption(quoteToken) {
386
+ return quoteToken ? { quoteToken } : {};
387
+ }
215
388
  const lineOutboundAdapter = {
216
389
  deliveryMode: "direct",
217
390
  chunker: (text, limit) => getLineRuntime().channel.text.chunkMarkdownText(text, limit),
218
391
  textChunkLimit: 5e3,
219
392
  sanitizeText: ({ text }) => sanitizeAssistantVisibleText(text),
220
393
  presentationCapabilities: LINE_PRESENTATION_CAPABILITIES,
221
- renderPresentation: ({ payload, presentation }) => renderLinePresentation(payload, presentation),
222
- sendPayload: async ({ to, payload, accountId, cfg, onDeliveryResult }) => {
394
+ renderPresentation: ({ payload, presentation, sourcePresentation, ctx }) => renderLinePresentation(payload, presentation, ctx.to, sourcePresentation),
395
+ sendPayload: async ({ to, payload, accountId, cfg, replyToId, onDeliveryResult, assertDirectAdapterHandoff }) => {
223
396
  const runtime = getLineRuntime();
224
397
  const outboundRuntime = await loadLineOutboundRuntime();
225
398
  const rawLineData = payload.channelData?.line ?? {};
@@ -240,7 +413,11 @@ const lineOutboundAdapter = {
240
413
  const sendOptions = {
241
414
  verbose: false,
242
415
  cfg,
243
- accountId: accountId ?? void 0
416
+ accountId: accountId ?? void 0,
417
+ authorize: assertDirectAdapterHandoff ? () => {
418
+ assertDirectAdapterHandoff();
419
+ return true;
420
+ } : void 0
244
421
  };
245
422
  let lastResult = null;
246
423
  const recordResult = async (resultPromise) => {
@@ -282,16 +459,26 @@ const lineOutboundAdapter = {
282
459
  await recordResult(sendBatch(to, batch, sendOptions));
283
460
  }
284
461
  };
285
- const sendTextWithQuickReply = async (text) => {
462
+ let replyQuoteToken = resolveLineQuoteToken({
463
+ cfg,
464
+ accountId,
465
+ chatId: to,
466
+ messageId: replyToId
467
+ });
468
+ const sendTextWithQuickReply = async (text, quoteToken) => {
286
469
  if (quickReplyItems.length > 0 && quickReply) {
287
470
  await sendMessageBatch([{
288
471
  type: "text",
289
472
  text,
290
- quickReply
473
+ quickReply,
474
+ ...quotedOption(quoteToken)
291
475
  }]);
292
476
  return;
293
477
  }
294
- await recordResult(sendQuickReplies(to, text, quickReplies, sendOptions));
478
+ await recordResult(sendQuickReplies(to, text, quickReplies, {
479
+ ...sendOptions,
480
+ ...quotedOption(quoteToken)
481
+ }));
295
482
  };
296
483
  const processed = payload.text ? outboundRuntime.processLineMessage(payload.text) : {
297
484
  text: "",
@@ -329,32 +516,56 @@ const lineOutboundAdapter = {
329
516
  }
330
517
  if (lineData.templateMessage) {
331
518
  const template = buildTemplate(lineData.templateMessage);
332
- if (template) await recordResult(sendTemplate(to, template, sendOptions));
519
+ if (template?.type === "template") await recordResult(sendTemplate(to, template, sendOptions));
520
+ else if (template) {
521
+ await recordResult(sendText(to, template.text, {
522
+ ...sendOptions,
523
+ ...quotedOption(replyQuoteToken)
524
+ }));
525
+ replyQuoteToken = void 0;
526
+ }
333
527
  }
334
528
  if (location) await recordResult(sendLocation(to, location, sendOptions));
335
529
  if (!orderedMessages) for (const flexMsg of processed.flexMessages) await recordResult(sendFlex(to, flexMsg.altText, flexMsg.contents, sendOptions));
336
530
  }
337
531
  const sendMediaAfterText = !(hasQuickReplies && chunks.length > 0);
338
532
  if (mediaUrls.length > 0 && !shouldSendQuickRepliesInline && !sendMediaAfterText) await sendMediaMessages();
339
- if (orderedMessages && !shouldSendQuickRepliesInline) for (const [index, message] of orderedMessages.entries()) {
340
- const isLast = index === orderedMessages.length - 1;
341
- if (message.type === "flex") {
342
- if (isLast && quickReply) await sendMessageBatch([{
343
- ...message,
344
- quickReply
345
- }]);
346
- else await recordResult(sendFlex(to, message.altText, message.contents, sendOptions));
347
- } else if (isLast && hasQuickReplies) await sendTextWithQuickReply(message.text);
348
- else await recordResult(sendText(to, message.text, sendOptions));
533
+ if (orderedMessages && !shouldSendQuickRepliesInline) {
534
+ const quotedIndex = orderedMessages.findIndex(canCarryLineQuoteToken);
535
+ if (replyQuoteToken && quotedIndex < 0) reportLineQuoteCarrierMissing(to);
536
+ for (const [index, message] of orderedMessages.entries()) {
537
+ const isLast = index === orderedMessages.length - 1;
538
+ const quoteToken = index === quotedIndex ? replyQuoteToken : void 0;
539
+ if (message.type === "flex") {
540
+ if (isLast && quickReply) await sendMessageBatch([{
541
+ ...message,
542
+ quickReply
543
+ }]);
544
+ else await recordResult(sendFlex(to, message.altText, message.contents, sendOptions));
545
+ } else if (isLast && hasQuickReplies) await sendTextWithQuickReply(message.text, quoteToken);
546
+ else await recordResult(sendText(to, message.text, {
547
+ ...sendOptions,
548
+ ...quotedOption(quoteToken)
549
+ }));
550
+ }
551
+ } else if (chunks.length > 0) for (const [i, chunk] of chunks.entries()) {
552
+ const isLast = i === chunks.length - 1;
553
+ const quoteToken = i === 0 ? replyQuoteToken : void 0;
554
+ if (isLast && hasQuickReplies) await sendTextWithQuickReply(chunk, quoteToken);
555
+ else await recordResult(sendText(to, chunk, {
556
+ ...sendOptions,
557
+ ...quotedOption(quoteToken)
558
+ }));
349
559
  }
350
- else if (chunks.length > 0) for (const [i, chunk] of chunks.entries()) if (i === chunks.length - 1 && hasQuickReplies) await sendTextWithQuickReply(chunk);
351
- else await recordResult(sendText(to, chunk, sendOptions));
352
560
  else if (shouldSendQuickRepliesInline) {
353
561
  const quickReplyMessages = [];
354
562
  if (lineData.flexMessage) quickReplyMessages.push(outboundRuntime.createFlexMessage(lineData.flexMessage.altText, lineData.flexMessage.contents));
355
563
  if (lineData.templateMessage) {
356
564
  const template = buildTemplate(lineData.templateMessage);
357
- if (template) quickReplyMessages.push(template);
565
+ if (template) quickReplyMessages.push(template.type === "text" ? {
566
+ ...template,
567
+ ...quotedOption(replyQuoteToken)
568
+ } : template);
358
569
  }
359
570
  if (locationMessage) quickReplyMessages.push(locationMessage);
360
571
  for (const flexMsg of processed.flexMessages) quickReplyMessages.push(outboundRuntime.createFlexMessage(flexMsg.altText, flexMsg.contents));
@@ -370,7 +581,7 @@ const lineOutboundAdapter = {
370
581
  quickReply
371
582
  };
372
583
  await sendMessageBatch(quickReplyMessages);
373
- } else if (quickReply) await sendTextWithQuickReply(buildLineQuickReplyFallbackText(quickReplyLabels));
584
+ } else if (quickReply) await sendTextWithQuickReply(buildLineQuickReplyFallbackText(quickReplyLabels), replyQuoteToken);
374
585
  }
375
586
  if (mediaUrls.length > 0 && !shouldSendQuickRepliesInline && sendMediaAfterText) await sendMediaMessages();
376
587
  const completedResult = lastResult;
@@ -383,11 +594,21 @@ const lineOutboundAdapter = {
383
594
  ...ctx,
384
595
  payload: { text: ctx.text }
385
596
  }),
386
- sendMedia: async ({ cfg, to, text, mediaUrl, accountId }) => await (await loadLineOutboundRuntime()).sendMessageLine(to, text, {
597
+ sendMedia: async ({ cfg, to, text, mediaUrl, accountId, replyToId, assertDirectAdapterHandoff }) => await (await loadLineOutboundRuntime()).sendMessageLine(to, text, {
387
598
  verbose: false,
388
599
  mediaUrl,
389
600
  cfg,
390
- accountId: accountId ?? void 0
601
+ accountId: accountId ?? void 0,
602
+ authorize: assertDirectAdapterHandoff ? () => {
603
+ assertDirectAdapterHandoff();
604
+ return true;
605
+ } : void 0,
606
+ quoteToken: resolveLineQuoteToken({
607
+ cfg,
608
+ accountId,
609
+ chatId: to,
610
+ messageId: replyToId
611
+ })
391
612
  })
392
613
  })
393
614
  };
@@ -409,31 +630,25 @@ const lineMessageAdapter = defineChannelMessageAdapter({
409
630
  durableFinal: { capabilities: {
410
631
  text: true,
411
632
  media: true,
633
+ replyTo: true,
412
634
  messageSendingHooks: true
413
635
  } },
414
636
  send: {
415
- text: async ({ cfg, to, text, accountId, onDeliveryResult }) => {
637
+ text: async ({ onDeliveryResult, ...ctx }) => {
416
638
  return toLineMessageSendResult(await lineOutboundAdapter.sendPayload({
417
- cfg,
418
- to,
419
- text,
420
- accountId,
421
- payload: { text },
639
+ ...ctx,
640
+ payload: { text: ctx.text },
422
641
  onDeliveryResult: async (deliveryResult) => {
423
642
  await onDeliveryResult?.(toLineMessageSendResult(deliveryResult, "text"));
424
643
  }
425
644
  }), "text");
426
645
  },
427
- media: async ({ cfg, to, text, mediaUrl, accountId, onDeliveryResult }) => {
646
+ media: async ({ onDeliveryResult, ...ctx }) => {
428
647
  return toLineMessageSendResult(await lineOutboundAdapter.sendPayload({
429
- cfg,
430
- to,
431
- text,
432
- mediaUrl,
433
- accountId,
648
+ ...ctx,
434
649
  payload: {
435
- text,
436
- mediaUrl
650
+ text: ctx.text,
651
+ mediaUrl: ctx.mediaUrl
437
652
  },
438
653
  onDeliveryResult: async (deliveryResult) => {
439
654
  await onDeliveryResult?.(toLineMessageSendResult(deliveryResult, "media"));
@@ -447,37 +662,8 @@ const lineMessageAdapter = defineChannelMessageAdapter({
447
662
  }
448
663
  });
449
664
  //#endregion
450
- //#region extensions/line/src/status.ts
451
- const loadLineProbeRuntime = createLazyRuntimeModule(() => import("./probe.runtime-CbtMgU4s.js"));
452
- const collectLineStatusIssues = createDependentCredentialStatusIssueCollector({
453
- channel: "line",
454
- dependencySourceKey: "tokenSource",
455
- missingPrimaryMessage: "LINE channel access token not configured",
456
- missingDependentMessage: "LINE channel secret not configured"
457
- });
458
- const lineStatusAdapter = createComputedAccountStatusAdapter({
459
- defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID),
460
- collectStatusIssues: collectLineStatusIssues,
461
- buildChannelSummary: ({ snapshot }) => buildTokenChannelStatusSummary(snapshot),
462
- probeAccount: async ({ account, timeoutMs }) => await (await loadLineProbeRuntime()).probeLineBot(account.channelAccessToken, timeoutMs),
463
- resolveAccountSnapshot: ({ account, probe }) => ({
464
- accountId: account.accountId,
465
- name: account.name,
466
- enabled: account.enabled,
467
- configured: hasLineCredentials(account),
468
- extra: {
469
- tokenSource: account.tokenSource,
470
- signingSecretSource: account.signingSecretSource,
471
- tokenStatus: account.tokenStatus,
472
- signingSecretStatus: account.signingSecretStatus,
473
- mode: "webhook",
474
- ...probe?.quota ? { quota: probe.quota } : {}
475
- }
476
- })
477
- });
478
- //#endregion
479
665
  //#region extensions/line/src/channel.ts
480
- const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-CYHw3gcp.js"));
666
+ const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-CgI6K6p-.mjs"));
481
667
  const lineSecurityAdapter = createRestrictSendersChannelSecurity({
482
668
  channelKey: "line",
483
669
  resolveDmPolicy: (account) => account.config.dmPolicy,
@@ -584,6 +770,7 @@ const linePlugin = createChatChannelPlugin({
584
770
  }),
585
771
  setupContract: lineSetupContract,
586
772
  status: lineStatusAdapter,
773
+ doctor: lineDoctor,
587
774
  gateway: lineGatewayAdapter,
588
775
  heartbeat: { sendTyping: async ({ cfg, to, accountId }) => {
589
776
  const chatId = normalizeLineMessagingTarget(to);
@@ -627,6 +814,14 @@ const linePlugin = createChatChannelPlugin({
627
814
  }
628
815
  } },
629
816
  security: lineSecurityAdapter,
817
+ threading: { scopedAccountReplyToMode: {
818
+ resolveAccount: (cfg, accountId) => resolveLineAccount({
819
+ cfg,
820
+ accountId: accountId ?? void 0
821
+ }),
822
+ resolveReplyToMode: (account) => account.config.replyToMode,
823
+ fallback: "off"
824
+ } },
630
825
  outbound: lineOutboundAdapter
631
826
  });
632
827
  //#endregion
@@ -0,0 +1,4 @@
1
+ import { a as probeLineBot } from "./send-retry-DaGwYlBO.mjs";
2
+ import { t as monitorLineProvider } from "./monitor-1JaX1WOU.mjs";
3
+ import { _ as showLoadingAnimation, d as pushMessageLine } from "./send-E6GiL_tr.mjs";
4
+ export { monitorLineProvider, probeLineBot, pushMessageLine, showLoadingAnimation };