@zhin.js/core 1.3.2 → 1.3.4

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 (416) hide show
  1. package/README.md +7 -7
  2. package/lib/adapter.d.ts +22 -2
  3. package/lib/adapter.js +72 -2
  4. package/lib/agent-prompt.d.ts +0 -1
  5. package/lib/agent-prompt.js +0 -1
  6. package/lib/built/adapter-process.d.ts +0 -1
  7. package/lib/built/adapter-process.js +0 -1
  8. package/lib/built/agent-preset.d.ts +0 -1
  9. package/lib/built/agent-preset.js +0 -1
  10. package/lib/built/ai-access.d.ts +36 -0
  11. package/lib/built/ai-access.js +46 -0
  12. package/lib/built/ai-outbound/adapter-access.d.ts +3 -0
  13. package/lib/built/ai-outbound/adapter-access.js +9 -0
  14. package/lib/built/ai-outbound/extensions/onebot-keyboard.d.ts +2 -0
  15. package/lib/built/ai-outbound/extensions/onebot-keyboard.js +67 -0
  16. package/lib/built/ai-outbound/extensions/qq-message.d.ts +3 -0
  17. package/lib/built/ai-outbound/extensions/qq-message.js +23 -0
  18. package/lib/built/ai-outbound/index.d.ts +9 -0
  19. package/lib/built/ai-outbound/index.js +9 -0
  20. package/lib/built/ai-outbound/parse.d.ts +13 -0
  21. package/lib/built/ai-outbound/parse.js +108 -0
  22. package/lib/built/ai-outbound/plain-mention-rewrite.d.ts +6 -0
  23. package/lib/built/ai-outbound/plain-mention-rewrite.js +37 -0
  24. package/lib/built/ai-outbound/prompt.d.ts +11 -0
  25. package/lib/built/ai-outbound/prompt.js +44 -0
  26. package/lib/built/ai-outbound/resolve.d.ts +4 -0
  27. package/lib/built/ai-outbound/resolve.js +64 -0
  28. package/lib/built/ai-outbound/structured-detect.d.ts +3 -0
  29. package/lib/built/ai-outbound/structured-detect.js +7 -0
  30. package/lib/built/ai-outbound/types.d.ts +60 -0
  31. package/lib/built/ai-outbound/types.js +5 -0
  32. package/lib/built/ai-trigger.d.ts +5 -1
  33. package/lib/built/ai-trigger.js +3 -7
  34. package/lib/built/authorization.d.ts +0 -1
  35. package/lib/built/authorization.js +0 -1
  36. package/lib/built/command.d.ts +0 -1
  37. package/lib/built/command.js +1 -3
  38. package/lib/built/common-adapter-tools.d.ts +25 -26
  39. package/lib/built/common-adapter-tools.js +48 -49
  40. package/lib/built/component.d.ts +1 -3
  41. package/lib/built/component.js +2 -4
  42. package/lib/built/config.d.ts +4 -1
  43. package/lib/built/config.js +26 -5
  44. package/lib/built/connect-endpoint-instance.d.ts +0 -1
  45. package/lib/built/connect-endpoint-instance.js +3 -2
  46. package/lib/built/database.d.ts +1 -3
  47. package/lib/built/database.js +2 -4
  48. package/lib/built/dispatcher.d.ts +7 -7
  49. package/lib/built/dispatcher.js +20 -8
  50. package/lib/built/endpoint-commands.d.ts +0 -1
  51. package/lib/built/endpoint-commands.js +6 -9
  52. package/lib/built/endpoint-lifecycle-service.d.ts +2 -1
  53. package/lib/built/endpoint-lifecycle-service.js +26 -3
  54. package/lib/built/endpoint-lifecycle.d.ts +0 -1
  55. package/lib/built/endpoint-lifecycle.js +4 -4
  56. package/lib/built/endpoint-manager.d.ts +0 -1
  57. package/lib/built/endpoint-manager.js +0 -1
  58. package/lib/built/generated-qrcode.d.ts +0 -1
  59. package/lib/built/generated-qrcode.js +0 -1
  60. package/lib/built/generic-segment-mapper.d.ts +6 -0
  61. package/lib/built/generic-segment-mapper.js +232 -0
  62. package/lib/built/html-renderer-loader.d.ts +2 -1
  63. package/lib/built/html-renderer-loader.js +6 -2
  64. package/lib/built/html-segment-fallback.d.ts +0 -1
  65. package/lib/built/html-segment-fallback.js +0 -1
  66. package/lib/built/html-to-text.d.ts +0 -1
  67. package/lib/built/html-to-text.js +15 -15
  68. package/lib/built/inbound-pipeline.d.ts +1 -2
  69. package/lib/built/inbound-pipeline.js +1 -2
  70. package/lib/built/inbound-runner.d.ts +0 -1
  71. package/lib/built/inbound-runner.js +0 -1
  72. package/lib/built/interactive-segment-contract.d.ts +6 -0
  73. package/lib/built/interactive-segment-contract.js +9 -0
  74. package/lib/built/interactive-segments/action.d.ts +17 -0
  75. package/lib/built/interactive-segments/action.js +69 -0
  76. package/lib/built/interactive-segments/button-spec.d.ts +10 -0
  77. package/lib/built/interactive-segments/button-spec.js +21 -0
  78. package/lib/built/interactive-segments/handlers.d.ts +9 -0
  79. package/lib/built/interactive-segments/handlers.js +58 -0
  80. package/lib/built/interactive-segments/index.d.ts +7 -0
  81. package/lib/built/interactive-segments/index.js +7 -0
  82. package/lib/built/interactive-segments/keyboard-segment.d.ts +12 -0
  83. package/lib/built/interactive-segments/keyboard-segment.js +13 -0
  84. package/lib/built/interactive-segments/onebot-keyboard.d.ts +10 -0
  85. package/lib/built/interactive-segments/onebot-keyboard.js +53 -0
  86. package/lib/built/interactive-segments/resolve.d.ts +9 -0
  87. package/lib/built/interactive-segments/resolve.js +84 -0
  88. package/lib/built/interactive-segments/types.d.ts +62 -0
  89. package/lib/built/interactive-segments/types.js +13 -0
  90. package/lib/built/introspection-format.d.ts +0 -1
  91. package/lib/built/introspection-format.js +1 -1
  92. package/lib/built/login-assist.d.ts +0 -1
  93. package/lib/built/login-assist.js +0 -1
  94. package/lib/built/management-command-guard.d.ts +5 -1
  95. package/lib/built/management-command-guard.js +5 -1
  96. package/lib/built/message-enrich.d.ts +1 -2
  97. package/lib/built/message-enrich.js +0 -1
  98. package/lib/built/message-filter.d.ts +0 -1
  99. package/lib/built/message-filter.js +1 -3
  100. package/lib/built/optional-peer-import.d.ts +3 -0
  101. package/lib/built/optional-peer-import.js +33 -0
  102. package/lib/built/outbound-media-contract.d.ts +0 -1
  103. package/lib/built/outbound-media-contract.js +0 -1
  104. package/lib/built/outbound-media-utils.d.ts +0 -1
  105. package/lib/built/outbound-media-utils.js +0 -1
  106. package/lib/built/permission.d.ts +0 -1
  107. package/lib/built/permission.js +1 -3
  108. package/lib/built/permit-check.d.ts +1 -2
  109. package/lib/built/permit-check.js +0 -1
  110. package/lib/built/permit-parse.d.ts +0 -1
  111. package/lib/built/permit-parse.js +0 -1
  112. package/lib/built/platform-permit.d.ts +5 -6
  113. package/lib/built/platform-permit.js +11 -12
  114. package/lib/built/prepend-quote-context.d.ts +0 -1
  115. package/lib/built/prepend-quote-context.js +0 -1
  116. package/lib/built/qrcode-segment.d.ts +0 -1
  117. package/lib/built/qrcode-segment.js +0 -1
  118. package/lib/built/queue-im-field-contract.d.ts +6 -1
  119. package/lib/built/queue-im-field-contract.js +10 -1
  120. package/lib/built/rich-segments/adapter-policies.d.ts +1 -2
  121. package/lib/built/rich-segments/adapter-policies.js +0 -1
  122. package/lib/built/rich-segments/base.d.ts +0 -1
  123. package/lib/built/rich-segments/base.js +0 -1
  124. package/lib/built/rich-segments/builtins.d.ts +0 -1
  125. package/lib/built/rich-segments/builtins.js +0 -1
  126. package/lib/built/rich-segments/capabilities.d.ts +0 -1
  127. package/lib/built/rich-segments/capabilities.js +0 -1
  128. package/lib/built/rich-segments/html-segment.d.ts +1 -2
  129. package/lib/built/rich-segments/html-segment.js +0 -1
  130. package/lib/built/rich-segments/index.d.ts +0 -1
  131. package/lib/built/rich-segments/index.js +0 -1
  132. package/lib/built/rich-segments/markdown-segment.d.ts +1 -2
  133. package/lib/built/rich-segments/markdown-segment.js +0 -1
  134. package/lib/built/rich-segments/markdown-to-text.d.ts +0 -1
  135. package/lib/built/rich-segments/markdown-to-text.js +0 -1
  136. package/lib/built/rich-segments/qrcode-segment.d.ts +1 -2
  137. package/lib/built/rich-segments/qrcode-segment.js +0 -1
  138. package/lib/built/rich-segments/registry.d.ts +0 -1
  139. package/lib/built/rich-segments/registry.js +0 -1
  140. package/lib/built/rich-segments/resolve.d.ts +1 -2
  141. package/lib/built/rich-segments/resolve.js +0 -1
  142. package/lib/built/rich-segments/tts-segment.d.ts +1 -2
  143. package/lib/built/rich-segments/tts-segment.js +0 -1
  144. package/lib/built/rich-segments/types.d.ts +0 -1
  145. package/lib/built/rich-segments/types.js +0 -1
  146. package/lib/built/roles.d.ts +0 -1
  147. package/lib/built/roles.js +0 -1
  148. package/lib/built/runtime-io.d.ts +0 -1
  149. package/lib/built/runtime-io.js +0 -1
  150. package/lib/built/schedule.d.ts +54 -0
  151. package/lib/built/schedule.js +112 -0
  152. package/lib/built/schema-endpoint-manager.d.ts +0 -1
  153. package/lib/built/schema-endpoint-manager.js +0 -1
  154. package/lib/built/schema-feature.d.ts +0 -1
  155. package/lib/built/schema-feature.js +1 -3
  156. package/lib/built/segment-contract/assert.d.ts +4 -0
  157. package/lib/built/segment-contract/assert.js +30 -0
  158. package/lib/built/segment-contract/delivery.d.ts +5 -0
  159. package/lib/built/segment-contract/delivery.js +40 -0
  160. package/lib/built/segment-contract/image.d.ts +5 -0
  161. package/lib/built/segment-contract/image.js +10 -0
  162. package/lib/built/segment-contract/index.d.ts +8 -0
  163. package/lib/built/segment-contract/index.js +7 -0
  164. package/lib/built/segment-contract/media.d.ts +8 -0
  165. package/lib/built/segment-contract/media.js +39 -0
  166. package/lib/built/segment-contract/mention.d.ts +10 -0
  167. package/lib/built/segment-contract/mention.js +26 -0
  168. package/lib/built/segment-contract/preview.d.ts +3 -0
  169. package/lib/built/segment-contract/preview.js +159 -0
  170. package/lib/built/segment-contract/types.d.ts +70 -0
  171. package/lib/built/segment-contract/types.js +5 -0
  172. package/lib/built/segment-contract/validate.d.ts +138 -0
  173. package/lib/built/segment-contract/validate.js +124 -0
  174. package/lib/built/skill.d.ts +0 -1
  175. package/lib/built/skill.js +0 -1
  176. package/lib/built/speech-loader.d.ts +2 -1
  177. package/lib/built/speech-loader.js +6 -2
  178. package/lib/built/tool.d.ts +0 -1
  179. package/lib/built/tool.js +1 -3
  180. package/lib/command.d.ts +12 -7
  181. package/lib/command.js +38 -16
  182. package/lib/component.d.ts +0 -1
  183. package/lib/component.js +28 -12
  184. package/lib/endpoint-capabilities.d.ts +3 -1
  185. package/lib/endpoint-capabilities.js +0 -1
  186. package/lib/endpoint.d.ts +0 -1
  187. package/lib/endpoint.js +0 -1
  188. package/lib/errors.d.ts +0 -1
  189. package/lib/errors.js +0 -1
  190. package/lib/host-plugin-registry.d.ts +0 -1
  191. package/lib/host-plugin-registry.js +0 -1
  192. package/lib/im-scene.d.ts +29 -0
  193. package/lib/im-scene.js +77 -0
  194. package/lib/im-session-id.d.ts +25 -12
  195. package/lib/im-session-id.js +35 -17
  196. package/lib/index.d.ts +14 -7
  197. package/lib/index.js +12 -6
  198. package/lib/jsx-dev-runtime.d.ts +0 -1
  199. package/lib/jsx-dev-runtime.js +0 -1
  200. package/lib/jsx-runtime.d.ts +0 -1
  201. package/lib/jsx-runtime.js +0 -1
  202. package/lib/jsx.d.ts +0 -1
  203. package/lib/jsx.js +0 -1
  204. package/lib/message-quote.d.ts +1 -2
  205. package/lib/message-quote.js +2 -3
  206. package/lib/message.d.ts +7 -5
  207. package/lib/message.js +16 -1
  208. package/lib/models/system-log.d.ts +0 -1
  209. package/lib/models/system-log.js +0 -1
  210. package/lib/models/user.d.ts +0 -1
  211. package/lib/models/user.js +0 -1
  212. package/lib/notice.d.ts +15 -59
  213. package/lib/notice.js +1 -4
  214. package/lib/plugin-context.d.ts +0 -1
  215. package/lib/plugin-context.js +0 -1
  216. package/lib/plugin.d.ts +13 -6
  217. package/lib/plugin.js +31 -15
  218. package/lib/prompt.d.ts +0 -1
  219. package/lib/prompt.js +0 -1
  220. package/lib/request.d.ts +16 -60
  221. package/lib/request.js +0 -4
  222. package/lib/side-event/base.d.ts +45 -0
  223. package/lib/side-event/base.js +30 -0
  224. package/lib/side-event/index.d.ts +3 -0
  225. package/lib/side-event/index.js +3 -0
  226. package/lib/side-event/normalize.d.ts +40 -0
  227. package/lib/side-event/normalize.js +117 -0
  228. package/lib/side-event/types.d.ts +25 -0
  229. package/lib/side-event/types.js +55 -0
  230. package/lib/tool-zod.d.ts +0 -1
  231. package/lib/tool-zod.js +0 -1
  232. package/lib/types-generator.d.ts +0 -1
  233. package/lib/types-generator.js +0 -1
  234. package/lib/types.d.ts +30 -11
  235. package/lib/types.js +0 -1
  236. package/lib/utils.d.ts +36 -1
  237. package/lib/utils.js +33 -25
  238. package/package.json +15 -8
  239. package/lib/adapter.d.ts.map +0 -1
  240. package/lib/adapter.js.map +0 -1
  241. package/lib/agent-prompt.d.ts.map +0 -1
  242. package/lib/agent-prompt.js.map +0 -1
  243. package/lib/built/adapter-process.d.ts.map +0 -1
  244. package/lib/built/adapter-process.js.map +0 -1
  245. package/lib/built/agent-preset.d.ts.map +0 -1
  246. package/lib/built/agent-preset.js.map +0 -1
  247. package/lib/built/ai-trigger.d.ts.map +0 -1
  248. package/lib/built/ai-trigger.js.map +0 -1
  249. package/lib/built/authorization.d.ts.map +0 -1
  250. package/lib/built/authorization.js.map +0 -1
  251. package/lib/built/command.d.ts.map +0 -1
  252. package/lib/built/command.js.map +0 -1
  253. package/lib/built/common-adapter-tools.d.ts.map +0 -1
  254. package/lib/built/common-adapter-tools.js.map +0 -1
  255. package/lib/built/component.d.ts.map +0 -1
  256. package/lib/built/component.js.map +0 -1
  257. package/lib/built/config.d.ts.map +0 -1
  258. package/lib/built/config.js.map +0 -1
  259. package/lib/built/connect-endpoint-instance.d.ts.map +0 -1
  260. package/lib/built/connect-endpoint-instance.js.map +0 -1
  261. package/lib/built/cron.d.ts +0 -75
  262. package/lib/built/cron.d.ts.map +0 -1
  263. package/lib/built/cron.js +0 -122
  264. package/lib/built/cron.js.map +0 -1
  265. package/lib/built/database.d.ts.map +0 -1
  266. package/lib/built/database.js.map +0 -1
  267. package/lib/built/dispatcher.d.ts.map +0 -1
  268. package/lib/built/dispatcher.js.map +0 -1
  269. package/lib/built/endpoint-commands.d.ts.map +0 -1
  270. package/lib/built/endpoint-commands.js.map +0 -1
  271. package/lib/built/endpoint-lifecycle-service.d.ts.map +0 -1
  272. package/lib/built/endpoint-lifecycle-service.js.map +0 -1
  273. package/lib/built/endpoint-lifecycle.d.ts.map +0 -1
  274. package/lib/built/endpoint-lifecycle.js.map +0 -1
  275. package/lib/built/endpoint-manager.d.ts.map +0 -1
  276. package/lib/built/endpoint-manager.js.map +0 -1
  277. package/lib/built/generated-qrcode.d.ts.map +0 -1
  278. package/lib/built/generated-qrcode.js.map +0 -1
  279. package/lib/built/html-renderer-loader.d.ts.map +0 -1
  280. package/lib/built/html-renderer-loader.js.map +0 -1
  281. package/lib/built/html-segment-fallback.d.ts.map +0 -1
  282. package/lib/built/html-segment-fallback.js.map +0 -1
  283. package/lib/built/html-to-text.d.ts.map +0 -1
  284. package/lib/built/html-to-text.js.map +0 -1
  285. package/lib/built/inbound-pipeline.d.ts.map +0 -1
  286. package/lib/built/inbound-pipeline.js.map +0 -1
  287. package/lib/built/inbound-runner.d.ts.map +0 -1
  288. package/lib/built/inbound-runner.js.map +0 -1
  289. package/lib/built/introspection-format.d.ts.map +0 -1
  290. package/lib/built/introspection-format.js.map +0 -1
  291. package/lib/built/login-assist.d.ts.map +0 -1
  292. package/lib/built/login-assist.js.map +0 -1
  293. package/lib/built/management-command-guard.d.ts.map +0 -1
  294. package/lib/built/management-command-guard.js.map +0 -1
  295. package/lib/built/mcp-mesh-registrar.d.ts +0 -9
  296. package/lib/built/mcp-mesh-registrar.d.ts.map +0 -1
  297. package/lib/built/mcp-mesh-registrar.js +0 -17
  298. package/lib/built/mcp-mesh-registrar.js.map +0 -1
  299. package/lib/built/message-enrich.d.ts.map +0 -1
  300. package/lib/built/message-enrich.js.map +0 -1
  301. package/lib/built/message-filter.d.ts.map +0 -1
  302. package/lib/built/message-filter.js.map +0 -1
  303. package/lib/built/outbound-media-contract.d.ts.map +0 -1
  304. package/lib/built/outbound-media-contract.js.map +0 -1
  305. package/lib/built/outbound-media-utils.d.ts.map +0 -1
  306. package/lib/built/outbound-media-utils.js.map +0 -1
  307. package/lib/built/permission.d.ts.map +0 -1
  308. package/lib/built/permission.js.map +0 -1
  309. package/lib/built/permit-check.d.ts.map +0 -1
  310. package/lib/built/permit-check.js.map +0 -1
  311. package/lib/built/permit-parse.d.ts.map +0 -1
  312. package/lib/built/permit-parse.js.map +0 -1
  313. package/lib/built/platform-permit.d.ts.map +0 -1
  314. package/lib/built/platform-permit.js.map +0 -1
  315. package/lib/built/prepend-quote-context.d.ts.map +0 -1
  316. package/lib/built/prepend-quote-context.js.map +0 -1
  317. package/lib/built/qrcode-segment.d.ts.map +0 -1
  318. package/lib/built/qrcode-segment.js.map +0 -1
  319. package/lib/built/queue-im-field-contract.d.ts.map +0 -1
  320. package/lib/built/queue-im-field-contract.js.map +0 -1
  321. package/lib/built/rich-segments/adapter-policies.d.ts.map +0 -1
  322. package/lib/built/rich-segments/adapter-policies.js.map +0 -1
  323. package/lib/built/rich-segments/base.d.ts.map +0 -1
  324. package/lib/built/rich-segments/base.js.map +0 -1
  325. package/lib/built/rich-segments/builtins.d.ts.map +0 -1
  326. package/lib/built/rich-segments/builtins.js.map +0 -1
  327. package/lib/built/rich-segments/capabilities.d.ts.map +0 -1
  328. package/lib/built/rich-segments/capabilities.js.map +0 -1
  329. package/lib/built/rich-segments/html-segment.d.ts.map +0 -1
  330. package/lib/built/rich-segments/html-segment.js.map +0 -1
  331. package/lib/built/rich-segments/index.d.ts.map +0 -1
  332. package/lib/built/rich-segments/index.js.map +0 -1
  333. package/lib/built/rich-segments/markdown-segment.d.ts.map +0 -1
  334. package/lib/built/rich-segments/markdown-segment.js.map +0 -1
  335. package/lib/built/rich-segments/markdown-to-text.d.ts.map +0 -1
  336. package/lib/built/rich-segments/markdown-to-text.js.map +0 -1
  337. package/lib/built/rich-segments/qrcode-segment.d.ts.map +0 -1
  338. package/lib/built/rich-segments/qrcode-segment.js.map +0 -1
  339. package/lib/built/rich-segments/registry.d.ts.map +0 -1
  340. package/lib/built/rich-segments/registry.js.map +0 -1
  341. package/lib/built/rich-segments/resolve.d.ts.map +0 -1
  342. package/lib/built/rich-segments/resolve.js.map +0 -1
  343. package/lib/built/rich-segments/tts-segment.d.ts.map +0 -1
  344. package/lib/built/rich-segments/tts-segment.js.map +0 -1
  345. package/lib/built/rich-segments/types.d.ts.map +0 -1
  346. package/lib/built/rich-segments/types.js.map +0 -1
  347. package/lib/built/roles.d.ts.map +0 -1
  348. package/lib/built/roles.js.map +0 -1
  349. package/lib/built/runtime-io.d.ts.map +0 -1
  350. package/lib/built/runtime-io.js.map +0 -1
  351. package/lib/built/schema-endpoint-manager.d.ts.map +0 -1
  352. package/lib/built/schema-endpoint-manager.js.map +0 -1
  353. package/lib/built/schema-feature.d.ts.map +0 -1
  354. package/lib/built/schema-feature.js.map +0 -1
  355. package/lib/built/skill.d.ts.map +0 -1
  356. package/lib/built/skill.js.map +0 -1
  357. package/lib/built/speech-loader.d.ts.map +0 -1
  358. package/lib/built/speech-loader.js.map +0 -1
  359. package/lib/built/tool.d.ts.map +0 -1
  360. package/lib/built/tool.js.map +0 -1
  361. package/lib/command.d.ts.map +0 -1
  362. package/lib/command.js.map +0 -1
  363. package/lib/component.d.ts.map +0 -1
  364. package/lib/component.js.map +0 -1
  365. package/lib/endpoint-capabilities.d.ts.map +0 -1
  366. package/lib/endpoint-capabilities.js.map +0 -1
  367. package/lib/endpoint.d.ts.map +0 -1
  368. package/lib/endpoint.js.map +0 -1
  369. package/lib/errors.d.ts.map +0 -1
  370. package/lib/errors.js.map +0 -1
  371. package/lib/host-plugin-registry.d.ts.map +0 -1
  372. package/lib/host-plugin-registry.js.map +0 -1
  373. package/lib/im-session-id.d.ts.map +0 -1
  374. package/lib/im-session-id.js.map +0 -1
  375. package/lib/index.d.ts.map +0 -1
  376. package/lib/index.js.map +0 -1
  377. package/lib/jsx-dev-runtime.d.ts.map +0 -1
  378. package/lib/jsx-dev-runtime.js.map +0 -1
  379. package/lib/jsx-runtime.d.ts.map +0 -1
  380. package/lib/jsx-runtime.js.map +0 -1
  381. package/lib/jsx.d.ts.map +0 -1
  382. package/lib/jsx.js.map +0 -1
  383. package/lib/message-quote.d.ts.map +0 -1
  384. package/lib/message-quote.js.map +0 -1
  385. package/lib/message.d.ts.map +0 -1
  386. package/lib/message.js.map +0 -1
  387. package/lib/models/system-log.d.ts.map +0 -1
  388. package/lib/models/system-log.js.map +0 -1
  389. package/lib/models/user.d.ts.map +0 -1
  390. package/lib/models/user.js.map +0 -1
  391. package/lib/notice.d.ts.map +0 -1
  392. package/lib/notice.js.map +0 -1
  393. package/lib/plugin-context.d.ts.map +0 -1
  394. package/lib/plugin-context.js.map +0 -1
  395. package/lib/plugin.d.ts.map +0 -1
  396. package/lib/plugin.js.map +0 -1
  397. package/lib/prompt.d.ts.map +0 -1
  398. package/lib/prompt.js.map +0 -1
  399. package/lib/request.d.ts.map +0 -1
  400. package/lib/request.js.map +0 -1
  401. package/lib/scheduler/scheduler.d.ts +0 -49
  402. package/lib/scheduler/scheduler.d.ts.map +0 -1
  403. package/lib/scheduler/scheduler.js +0 -352
  404. package/lib/scheduler/scheduler.js.map +0 -1
  405. package/lib/scheduler/types.d.ts +0 -71
  406. package/lib/scheduler/types.d.ts.map +0 -1
  407. package/lib/scheduler/types.js +0 -8
  408. package/lib/scheduler/types.js.map +0 -1
  409. package/lib/tool-zod.d.ts.map +0 -1
  410. package/lib/tool-zod.js.map +0 -1
  411. package/lib/types-generator.d.ts.map +0 -1
  412. package/lib/types-generator.js.map +0 -1
  413. package/lib/types.d.ts.map +0 -1
  414. package/lib/types.js.map +0 -1
  415. package/lib/utils.d.ts.map +0 -1
  416. package/lib/utils.js.map +0 -1
@@ -2,9 +2,8 @@
2
2
  * ComponentFeature
3
3
  * 管理所有插件注册的组件,继承自 Feature 抽象类
4
4
  */
5
- import { Feature } from "@zhin.js/kernel";
5
+ import { Feature } from '@zhin.js/kernel';
6
6
  import { renderComponents } from "../component.js";
7
- import { getPlugin } from "../plugin.js";
8
7
  /**
9
8
  * 组件服务 Feature
10
9
  */
@@ -87,7 +86,7 @@ export class ComponentFeature extends Feature {
87
86
  const feature = this;
88
87
  return {
89
88
  addComponent(component) {
90
- const plugin = getPlugin();
89
+ const plugin = this;
91
90
  const dispose = feature.add(component, plugin.name);
92
91
  plugin.recordFeatureContribution(feature.name, component.name);
93
92
  plugin.onDispose(dispose);
@@ -96,4 +95,3 @@ export class ComponentFeature extends Feature {
96
95
  };
97
96
  }
98
97
  }
99
- //# sourceMappingURL=component.js.map
@@ -10,6 +10,8 @@ export declare class ConfigLoader<T extends object> {
10
10
  get data(): T;
11
11
  get raw(): T;
12
12
  get extension(): string;
13
+ /** `load()` / `patchKey()` 使用的绝对路径 */
14
+ get resolvedPath(): string;
13
15
  constructor(filename: string, initial: T, schema?: Schema<T> | undefined);
14
16
  resolvePath(baseDir?: string): string;
15
17
  load(baseDir?: string): void;
@@ -20,6 +22,8 @@ export declare class ConfigLoader<T extends object> {
20
22
  */
21
23
  patchKey(key: string, value: any): void;
22
24
  }
25
+ /** 解析 endpoint 配置中的 `${ENV}` 引用(运行时 add 后热连接用) */
26
+ export declare function resolveEndpointConfigEnv(config: Record<string, unknown>): Record<string, unknown>;
23
27
  export declare function mergeConfigDefaults<T>(defaults: T, overrides: unknown): T;
24
28
  export declare namespace ConfigLoader {
25
29
  const supportedExtensions: string[];
@@ -96,4 +100,3 @@ export declare class ConfigFeature extends Feature<ConfigRecord> {
96
100
  * @deprecated Use ConfigFeature instead
97
101
  */
98
102
  export declare const ConfigService: typeof ConfigFeature;
99
- //# sourceMappingURL=config.d.ts.map
@@ -8,7 +8,6 @@ import fs from "node:fs";
8
8
  import { stringify as stringifyYaml, parse as parseYaml, parseDocument } from "yaml";
9
9
  import { parse as parseToml, stringify as stringifyToml } from "smol-toml";
10
10
  import { Feature } from "@zhin.js/kernel";
11
- import { getPlugin } from "../plugin.js";
12
11
  /** Deno / Node 统一的工作目录(`Deno.chdir` 后应与 `process.cwd()` 一致) */
13
12
  export function runtimeCwd() {
14
13
  const g = globalThis;
@@ -37,6 +36,10 @@ export class ConfigLoader {
37
36
  get extension() {
38
37
  return path.extname(this.filename).toLowerCase();
39
38
  }
39
+ /** `load()` / `patchKey()` 使用的绝对路径 */
40
+ get resolvedPath() {
41
+ return this.#resolvedPath || this.resolvePath();
42
+ }
40
43
  constructor(filename, initial, schema) {
41
44
  this.filename = filename;
42
45
  this.initial = initial;
@@ -96,8 +99,10 @@ export class ConfigLoader {
96
99
  ? this.filename
97
100
  : path.resolve(baseDir, this.filename);
98
101
  }
99
- load(baseDir = runtimeCwd()) {
100
- const fullPath = this.resolvePath(baseDir);
102
+ load(baseDir) {
103
+ const fullPath = baseDir !== undefined
104
+ ? this.resolvePath(baseDir)
105
+ : (this.#resolvedPath || this.resolvePath());
101
106
  this.#resolvedPath = fullPath;
102
107
  if (!fs.existsSync(fullPath)) {
103
108
  try {
@@ -197,6 +202,23 @@ function isPlainObject(value) {
197
202
  && !Array.isArray(value)
198
203
  && Object.getPrototypeOf(value) === Object.prototype;
199
204
  }
205
+ /** 解析 endpoint 配置中的 `${ENV}` 引用(运行时 add 后热连接用) */
206
+ export function resolveEndpointConfigEnv(config) {
207
+ const out = { ...config };
208
+ for (const [key, value] of Object.entries(out)) {
209
+ if (typeof value !== 'string')
210
+ continue;
211
+ const match = value.match(/^\$\{([^}]+)\}$/);
212
+ if (!match)
213
+ continue;
214
+ const envKey = match[1];
215
+ const resolved = envLookup(envKey);
216
+ if (resolved != null && resolved !== '') {
217
+ out[key] = resolved;
218
+ }
219
+ }
220
+ return out;
221
+ }
200
222
  export function mergeConfigDefaults(defaults, overrides) {
201
223
  if (Array.isArray(defaults)) {
202
224
  return (Array.isArray(overrides) ? overrides : defaults);
@@ -327,7 +349,7 @@ export class ConfigFeature extends Feature {
327
349
  const feature = this;
328
350
  return {
329
351
  addConfig(key, defaultValue) {
330
- const plugin = getPlugin();
352
+ const plugin = this;
331
353
  // 尝试写入主配置文件(如果 key 不存在)
332
354
  if (feature.#primaryConfigFile) {
333
355
  const config = feature.configs.get(feature.#primaryConfigFile);
@@ -352,4 +374,3 @@ export class ConfigFeature extends Feature {
352
374
  * @deprecated Use ConfigFeature instead
353
375
  */
354
376
  export const ConfigService = ConfigFeature;
355
- //# sourceMappingURL=config.js.map
@@ -15,4 +15,3 @@ export declare function connectEndpointInstance(options: ConnectEndpointInstance
15
15
  * 按 Endpoint capabilities 断开单个实例。
16
16
  */
17
17
  export declare function disconnectEndpointInstance(plugin: Plugin, adapter: Adapter, endpoint: Endpoint): Promise<void>;
18
- //# sourceMappingURL=connect-endpoint-instance.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import { assertInbound, getAdapterCapabilities, hasInbound, registerEndpointCapabilities, resolveEndpointCapabilities, } from '../endpoint-capabilities.js';
2
2
  import { emitEndpointLifecycle } from './endpoint-lifecycle.js';
3
+ import { resolveEndpointConfigEnv } from './config.js';
3
4
  /**
4
5
  * 按 Endpoint capabilities 连接或注册单个实例(connectEndpoints 与 Adapter.start 共用)。
5
6
  */
@@ -7,7 +8,8 @@ export async function connectEndpointInstance(options) {
7
8
  const { plugin, adapter, config } = options;
8
9
  const adapterCaps = getAdapterCapabilities(adapter);
9
10
  const caps = resolveEndpointCapabilities(adapterCaps, config.capabilities);
10
- const endpoint = adapter.createEndpoint(config);
11
+ const resolvedConfig = resolveEndpointConfigEnv(config);
12
+ const endpoint = adapter.createEndpoint(resolvedConfig);
11
13
  registerEndpointCapabilities(endpoint, caps);
12
14
  if (caps.includes('inbound')) {
13
15
  assertInbound(endpoint);
@@ -38,4 +40,3 @@ export async function disconnectEndpointInstance(plugin, adapter, endpoint) {
38
40
  await endpoint.$disconnect();
39
41
  await emitEndpointLifecycle(plugin, adapter, endpoint, 'disconnect');
40
42
  }
41
- //# sourceMappingURL=connect-endpoint-instance.js.map
@@ -4,8 +4,7 @@
4
4
  */
5
5
  import { Definition, Database } from "@zhin.js/database";
6
6
  import { DatabaseConfig, Models } from "../types.js";
7
- import { Feature, FeatureJSON } from "@zhin.js/kernel";
8
- import type { PluginLike } from '@zhin.js/kernel';
7
+ import { Feature, FeatureJSON, type PluginLike } from '@zhin.js/kernel';
9
8
  /**
10
9
  * 模型定义记录
11
10
  */
@@ -67,4 +66,3 @@ export declare class DatabaseFeature extends Feature<ModelRecord> {
67
66
  };
68
67
  }
69
68
  export {};
70
- //# sourceMappingURL=database.d.ts.map
@@ -4,8 +4,7 @@
4
4
  */
5
5
  import { Registry } from "@zhin.js/database";
6
6
  import { formatCompact } from '@zhin.js/logger';
7
- import { Feature } from "@zhin.js/kernel";
8
- import { getPlugin } from "../plugin.js";
7
+ import { Feature } from '@zhin.js/kernel';
9
8
  import { SystemLogDefinition } from "../models/system-log.js";
10
9
  import { UserDefinition } from "../models/user.js";
11
10
  const databaseAfterStartHooks = [];
@@ -96,7 +95,7 @@ export class DatabaseFeature extends Feature {
96
95
  const feature = this;
97
96
  return {
98
97
  defineModel(name, definition) {
99
- const plugin = getPlugin();
98
+ const plugin = this;
100
99
  const record = { name: name, definition };
101
100
  const dispose = feature.add(record, plugin.name);
102
101
  plugin.recordFeatureContribution(feature.name, name);
@@ -105,4 +104,3 @@ export class DatabaseFeature extends Feature {
105
104
  };
106
105
  }
107
106
  }
108
- //# sourceMappingURL=database.js.map
@@ -27,12 +27,9 @@
27
27
  * 默认路由为 exclusive(命令与 AI 互斥);需双轨时请显式 dualRoute.mode: 'dual'。
28
28
  */
29
29
  import { Message } from '../message.js';
30
- import type { MessageMiddleware, RegisteredAdapter, MaybePromise, SendContent, OutboundReplySource, OutboundPolishMiddleware } from '../types.js';
31
- import type { Context } from '../plugin.js';
32
- export declare function getOutboundReplyStore(): {
33
- message: Message<any>;
34
- source: OutboundReplySource;
35
- } | undefined;
30
+ import { type Context } from '../plugin.js';
31
+ import type { MessageMiddleware, RegisteredAdapter, MaybePromise, SendContent, OutboundReplySource, OutboundPolishMiddleware, OutboundReplyStore } from '../types.js';
32
+ export declare function getOutboundReplyStore(): OutboundReplyStore | undefined;
36
33
  /**
37
34
  * 路由判定结果(互斥模式 legacy)
38
35
  */
@@ -110,6 +107,10 @@ export interface MessageDispatcherService {
110
107
  * 在 `before.sendMessage` 管道内调用 `message.$reply`(与 Adapter#sendMessage 同一出站链)
111
108
  */
112
109
  replyWithPolish(message: Message<any>, source: ReplySource, content: SendContent, options?: ReplyWithPolishOptions): Promise<unknown>;
110
+ /** Proactive 出站:在 ALS 内执行 send,触发 outbound polish / before.sendMessage */
111
+ runWithOutboundPolish<T>(store: Pick<OutboundReplyStore, 'message' | 'trigger' | 'proactiveSource'> & {
112
+ source?: OutboundReplySource;
113
+ }, fn: () => Promise<T>): Promise<T>;
113
114
  /**
114
115
  * 是否匹配为指令路径(与 dispatch 内判定一致)
115
116
  */
@@ -136,4 +137,3 @@ declare module '../plugin.js' {
136
137
  }
137
138
  }
138
139
  export declare function createMessageDispatcher(options?: CreateMessageDispatcherOptions): Context<'dispatcher', DispatcherContextExtensions>;
139
- //# sourceMappingURL=dispatcher.d.ts.map
@@ -27,7 +27,7 @@
27
27
  * 默认路由为 exclusive(命令与 AI 互斥);需双轨时请显式 dualRoute.mode: 'dual'。
28
28
  */
29
29
  import { AsyncLocalStorage } from 'node:async_hooks';
30
- import { getPlugin } from '../plugin.js';
30
+ import { isActionMessage } from './interactive-segments/action.js';
31
31
  /** Dispatcher 管理的「会话回复」异步上下文,供 `before.sendMessage` 内读取(与 Adapter.renderSendMessage 同链) */
32
32
  const outboundReplyAls = new AsyncLocalStorage();
33
33
  export function getOutboundReplyStore() {
@@ -206,10 +206,22 @@ export function createMessageDispatcher(options) {
206
206
  if (!rootPlugin) {
207
207
  return quote ? message.$reply(content, quote) : message.$reply(content);
208
208
  }
209
- return outboundReplyAls.run({ message, source }, () => quote ? message.$reply(content, quote) : message.$reply(content));
209
+ return outboundReplyAls.run({
210
+ message,
211
+ source,
212
+ trigger: 'inbound',
213
+ }, () => quote ? message.$reply(content, quote) : message.$reply(content));
214
+ }
215
+ async function runWithOutboundPolish(store, fn) {
216
+ return outboundReplyAls.run({
217
+ message: store.message,
218
+ source: store.source ?? 'proactive',
219
+ trigger: store.trigger,
220
+ proactiveSource: store.proactiveSource,
221
+ }, fn);
210
222
  }
211
223
  async function maybeRecordGroupPassiveContext(message) {
212
- if (!groupPassiveContextHandler)
224
+ if (!groupPassiveContextHandler || isActionMessage(message))
213
225
  return;
214
226
  const scope = message.$channel?.type;
215
227
  if (scope !== 'group' && scope !== 'channel')
@@ -336,6 +348,9 @@ export function createMessageDispatcher(options) {
336
348
  replyWithPolish(message, source, content, options) {
337
349
  return replyWithPolishInternal(message, source, content, options);
338
350
  },
351
+ runWithOutboundPolish(store, fn) {
352
+ return runWithOutboundPolish(store, fn);
353
+ },
339
354
  matchCommand(message) {
340
355
  return matchCommandInternal(message);
341
356
  },
@@ -354,18 +369,15 @@ export function createMessageDispatcher(options) {
354
369
  },
355
370
  extensions: {
356
371
  addGuardrail(guardrail) {
357
- const plugin = getPlugin();
358
372
  const dispose = service.addGuardrail(guardrail);
359
- plugin.onDispose(dispose);
373
+ rootPlugin?.onDispose(dispose);
360
374
  return dispose;
361
375
  },
362
376
  addOutboundPolish(handler) {
363
- const plugin = getPlugin();
364
377
  const dispose = service.addOutboundPolish(handler);
365
- plugin.onDispose(dispose);
378
+ rootPlugin?.onDispose(dispose);
366
379
  return dispose;
367
380
  },
368
381
  },
369
382
  };
370
383
  }
371
- //# sourceMappingURL=dispatcher.js.map
@@ -1,4 +1,3 @@
1
1
  import type { CommandFeature } from './command.js';
2
2
  import type { Plugin } from '../plugin.js';
3
3
  export declare function registerEndpointManagementCommands(plugin: Plugin, commandService: CommandFeature): () => void;
4
- //# sourceMappingURL=endpoint-commands.d.ts.map
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Adapter } from '../adapter.js';
5
5
  import { MessageCommand } from '../command.js';
6
- import { rejectUnlessManagementOperator } from './management-command-guard.js';
6
+ import { MANAGEMENT_OPERATOR_PERMIT } from './management-command-guard.js';
7
7
  import { createEndpointLifecycleService } from './endpoint-lifecycle-service.js';
8
8
  import { endpointHelpText, formatEndpointsList } from './introspection-format.js';
9
9
  function collectRuntimeEndpoints(root) {
@@ -26,17 +26,11 @@ export function registerEndpointManagementCommands(plugin, commandService) {
26
26
  const root = plugin.root;
27
27
  const disposers = [];
28
28
  const service = () => createEndpointLifecycleService(root);
29
- const guard = (message) => {
30
- const ai = root.inject('ai');
31
- return rejectUnlessManagementOperator(message, root, ai?.getTriggerConfig?.());
32
- };
33
29
  const register = (pattern, desc, handler) => {
34
30
  const cmd = new MessageCommand(pattern)
35
31
  .desc(desc)
32
+ .permit(MANAGEMENT_OPERATOR_PERMIT)
36
33
  .action(async (message, match) => {
37
- const denied = guard(message);
38
- if (denied)
39
- return denied;
40
34
  try {
41
35
  return await handler(message, match);
42
36
  }
@@ -93,10 +87,13 @@ export function registerEndpointManagementCommands(plugin, commandService) {
93
87
  }
94
88
  return '已取消 Endpoint 绑定流程。';
95
89
  });
90
+ register('/endpoint sync', '将内存中的 endpoint 配置写回 zhin.config', async () => {
91
+ const result = await service().syncToDisk();
92
+ return result.message;
93
+ });
96
94
  register('/endpoints', '列出各适配器下的 Endpoint 及在线状态', () => formatEndpointsList(collectRuntimeEndpoints(root)));
97
95
  return () => {
98
96
  for (const d of disposers)
99
97
  d();
100
98
  };
101
99
  }
102
- //# sourceMappingURL=endpoint-commands.js.map
@@ -14,6 +14,8 @@ export declare class EndpointLifecycleService {
14
14
  resolveManager(adapterKey: string): EndpointManager;
15
15
  listProvisionableAdapters(): string[];
16
16
  persistEndpoints(endpoints: EndpointConfigRecord[]): Promise<void>;
17
+ /** 将内存中的 endpoints 写回 zhin.config(修复运行时与磁盘不一致) */
18
+ syncToDisk(): Promise<EndpointLifecycleResult>;
17
19
  connectConfig(adapter: Adapter, config: EndpointConfigRecord): Promise<Endpoint>;
18
20
  disconnectRuntime(adapter: Adapter, name: string): Promise<boolean>;
19
21
  add(adapterKey: string, message: Message, initialReply?: string): Promise<EndpointLifecycleResult>;
@@ -24,4 +26,3 @@ export declare class EndpointLifecycleService {
24
26
  cancelProvision(): boolean;
25
27
  }
26
28
  export declare function createEndpointLifecycleService(root: Plugin): EndpointLifecycleService;
27
- //# sourceMappingURL=endpoint-lifecycle-service.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { formatDisplayPath } from '@zhin.js/logger';
1
2
  import { Adapter } from '../adapter.js';
2
3
  import { segment } from '../utils.js';
3
4
  import { connectEndpointInstance, disconnectEndpointInstance } from './connect-endpoint-instance.js';
@@ -74,7 +75,18 @@ export class EndpointLifecycleService {
74
75
  const configService = getConfigService(this.root);
75
76
  const loader = configService.configs.get(configService.primaryFile);
76
77
  loader.patchKey('endpoints', endpoints);
77
- loader.load();
78
+ }
79
+ /** 将内存中的 endpoints 写回 zhin.config(修复运行时与磁盘不一致) */
80
+ async syncToDisk() {
81
+ const configService = getConfigService(this.root);
82
+ const loader = configService.configs.get(configService.primaryFile);
83
+ const endpoints = readAllEndpoints(this.root);
84
+ await this.persistEndpoints(endpoints);
85
+ const configPath = formatDisplayPath(loader.resolvedPath);
86
+ const names = endpoints.map((e) => `${e.context}/${e.name}`).join(', ') || '(无)';
87
+ return {
88
+ message: `✅ 已将 ${endpoints.length} 个 endpoint 写入 \`${configPath}\`:${names}`,
89
+ };
78
90
  }
79
91
  async connectConfig(adapter, config) {
80
92
  const name = config.name;
@@ -110,7 +122,19 @@ export class EndpointLifecycleService {
110
122
  throw new Error('Endpoint 名称不能为空');
111
123
  }
112
124
  const endpoints = readAllEndpoints(this.root);
113
- assertUniqueName(endpoints, config.context, config.name);
125
+ try {
126
+ assertUniqueName(endpoints, config.context, config.name);
127
+ }
128
+ catch (err) {
129
+ if (err instanceof Error && err.message.includes('已存在')) {
130
+ const online = adapter.endpoints.has(config.name);
131
+ const hint = online
132
+ ? '该 Endpoint 已在运行时注册,无需重复扫码;可发 /endpoints 确认。若 zhin.config.yml 未更新,请 /endpoint sync。'
133
+ : '可用 /endpoint start 重试连接,或 /endpoint remove 后重新添加。';
134
+ throw new Error(`${err.message}。${hint}`);
135
+ }
136
+ throw err;
137
+ }
114
138
  endpoints.push(config);
115
139
  await this.persistEndpoints(endpoints);
116
140
  try {
@@ -216,4 +240,3 @@ export class EndpointLifecycleService {
216
240
  export function createEndpointLifecycleService(root) {
217
241
  return new EndpointLifecycleService(root);
218
242
  }
219
- //# sourceMappingURL=endpoint-lifecycle-service.js.map
@@ -25,4 +25,3 @@ export declare function emitEndpointLifecycle(plugin: Plugin, adapter: Adapter,
25
25
  phase?: string;
26
26
  detail?: Record<string, unknown>;
27
27
  }): Promise<void>;
28
- //# sourceMappingURL=endpoint-lifecycle.d.ts.map
@@ -26,11 +26,11 @@ export async function emitEndpointLifecycle(plugin, adapter, endpoint, kind, det
26
26
  $id: `endpoint-lifecycle:${endpoint.$id}:${kind}:${Date.now()}`,
27
27
  $adapter: adapter.name,
28
28
  $endpoint: endpoint.$id,
29
- $type: 'endpoint.lifecycle',
30
- $subType: kind,
31
- $channel: { id: endpoint.$id, type: 'private' },
29
+ $type: 'notice',
30
+ $scene_id: endpoint.$id,
31
+ $scene_type: 'endpoint',
32
+ $sub_type: kind,
32
33
  $timestamp: Date.now(),
33
34
  });
34
35
  adapter.emit('notice.receive', notice);
35
36
  }
36
- //# sourceMappingURL=endpoint-lifecycle.js.map
@@ -32,4 +32,3 @@ export interface EndpointManagerClass {
32
32
  /** 通用 schema 驱动 add/edit 时使用 */
33
33
  readonly endpointConfigSchema?: Schema;
34
34
  }
35
- //# sourceMappingURL=endpoint-manager.d.ts.map
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=endpoint-manager.js.map
@@ -22,4 +22,3 @@ export declare class GeneratedQrCode {
22
22
  }
23
23
  /** 便捷别名 */
24
24
  export declare const generateQrCode: typeof GeneratedQrCode.generate;
25
- //# sourceMappingURL=generated-qrcode.d.ts.map
@@ -43,4 +43,3 @@ export class GeneratedQrCode {
43
43
  }
44
44
  /** 便捷别名 */
45
45
  export const generateQrCode = GeneratedQrCode.generate.bind(GeneratedQrCode);
46
- //# sourceMappingURL=generated-qrcode.js.map
@@ -0,0 +1,6 @@
1
+ import type { MessageElement, SendContent } from '../types.js';
2
+ import type { Segment } from './segment-contract/types.js';
3
+ /** 通用 IM adapter:legacy wire → canonical Segment[] */
4
+ export declare function toCanonicalSegments(content: readonly MessageElement[] | readonly unknown[]): Segment[];
5
+ /** canonical → wire(mention→at;image MediaRef→legacy 字段) */
6
+ export declare function fromCanonicalSegments(content: SendContent): MessageElement[];