@zhin.js/core 1.3.2 → 1.3.3

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 (408) hide show
  1. package/README.md +7 -7
  2. package/lib/adapter.d.ts +22 -2
  3. package/lib/adapter.js +71 -1
  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 +94 -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 +0 -1
  41. package/lib/built/component.js +1 -3
  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 +0 -1
  47. package/lib/built/database.js +1 -3
  48. package/lib/built/dispatcher.d.ts +6 -6
  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 +25 -3
  54. package/lib/built/endpoint-lifecycle.d.ts +0 -1
  55. package/lib/built/endpoint-lifecycle.js +0 -1
  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 +0 -1
  68. package/lib/built/inbound-pipeline.d.ts +0 -1
  69. package/lib/built/inbound-pipeline.js +0 -1
  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 +54 -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 +0 -1
  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 +0 -1
  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 +55 -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 +0 -1
  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 +13 -7
  197. package/lib/index.js +11 -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 +0 -1
  213. package/lib/notice.js +0 -1
  214. package/lib/plugin-context.d.ts +0 -1
  215. package/lib/plugin-context.js +0 -1
  216. package/lib/plugin.d.ts +11 -2
  217. package/lib/plugin.js +19 -7
  218. package/lib/prompt.d.ts +0 -1
  219. package/lib/prompt.js +0 -1
  220. package/lib/request.d.ts +0 -1
  221. package/lib/request.js +0 -1
  222. package/lib/tool-zod.d.ts +0 -1
  223. package/lib/tool-zod.js +0 -1
  224. package/lib/types-generator.d.ts +0 -1
  225. package/lib/types-generator.js +0 -1
  226. package/lib/types.d.ts +30 -11
  227. package/lib/types.js +0 -1
  228. package/lib/utils.d.ts +36 -1
  229. package/lib/utils.js +33 -25
  230. package/package.json +15 -8
  231. package/lib/adapter.d.ts.map +0 -1
  232. package/lib/adapter.js.map +0 -1
  233. package/lib/agent-prompt.d.ts.map +0 -1
  234. package/lib/agent-prompt.js.map +0 -1
  235. package/lib/built/adapter-process.d.ts.map +0 -1
  236. package/lib/built/adapter-process.js.map +0 -1
  237. package/lib/built/agent-preset.d.ts.map +0 -1
  238. package/lib/built/agent-preset.js.map +0 -1
  239. package/lib/built/ai-trigger.d.ts.map +0 -1
  240. package/lib/built/ai-trigger.js.map +0 -1
  241. package/lib/built/authorization.d.ts.map +0 -1
  242. package/lib/built/authorization.js.map +0 -1
  243. package/lib/built/command.d.ts.map +0 -1
  244. package/lib/built/command.js.map +0 -1
  245. package/lib/built/common-adapter-tools.d.ts.map +0 -1
  246. package/lib/built/common-adapter-tools.js.map +0 -1
  247. package/lib/built/component.d.ts.map +0 -1
  248. package/lib/built/component.js.map +0 -1
  249. package/lib/built/config.d.ts.map +0 -1
  250. package/lib/built/config.js.map +0 -1
  251. package/lib/built/connect-endpoint-instance.d.ts.map +0 -1
  252. package/lib/built/connect-endpoint-instance.js.map +0 -1
  253. package/lib/built/cron.d.ts +0 -75
  254. package/lib/built/cron.d.ts.map +0 -1
  255. package/lib/built/cron.js +0 -122
  256. package/lib/built/cron.js.map +0 -1
  257. package/lib/built/database.d.ts.map +0 -1
  258. package/lib/built/database.js.map +0 -1
  259. package/lib/built/dispatcher.d.ts.map +0 -1
  260. package/lib/built/dispatcher.js.map +0 -1
  261. package/lib/built/endpoint-commands.d.ts.map +0 -1
  262. package/lib/built/endpoint-commands.js.map +0 -1
  263. package/lib/built/endpoint-lifecycle-service.d.ts.map +0 -1
  264. package/lib/built/endpoint-lifecycle-service.js.map +0 -1
  265. package/lib/built/endpoint-lifecycle.d.ts.map +0 -1
  266. package/lib/built/endpoint-lifecycle.js.map +0 -1
  267. package/lib/built/endpoint-manager.d.ts.map +0 -1
  268. package/lib/built/endpoint-manager.js.map +0 -1
  269. package/lib/built/generated-qrcode.d.ts.map +0 -1
  270. package/lib/built/generated-qrcode.js.map +0 -1
  271. package/lib/built/html-renderer-loader.d.ts.map +0 -1
  272. package/lib/built/html-renderer-loader.js.map +0 -1
  273. package/lib/built/html-segment-fallback.d.ts.map +0 -1
  274. package/lib/built/html-segment-fallback.js.map +0 -1
  275. package/lib/built/html-to-text.d.ts.map +0 -1
  276. package/lib/built/html-to-text.js.map +0 -1
  277. package/lib/built/inbound-pipeline.d.ts.map +0 -1
  278. package/lib/built/inbound-pipeline.js.map +0 -1
  279. package/lib/built/inbound-runner.d.ts.map +0 -1
  280. package/lib/built/inbound-runner.js.map +0 -1
  281. package/lib/built/introspection-format.d.ts.map +0 -1
  282. package/lib/built/introspection-format.js.map +0 -1
  283. package/lib/built/login-assist.d.ts.map +0 -1
  284. package/lib/built/login-assist.js.map +0 -1
  285. package/lib/built/management-command-guard.d.ts.map +0 -1
  286. package/lib/built/management-command-guard.js.map +0 -1
  287. package/lib/built/mcp-mesh-registrar.d.ts +0 -9
  288. package/lib/built/mcp-mesh-registrar.d.ts.map +0 -1
  289. package/lib/built/mcp-mesh-registrar.js +0 -17
  290. package/lib/built/mcp-mesh-registrar.js.map +0 -1
  291. package/lib/built/message-enrich.d.ts.map +0 -1
  292. package/lib/built/message-enrich.js.map +0 -1
  293. package/lib/built/message-filter.d.ts.map +0 -1
  294. package/lib/built/message-filter.js.map +0 -1
  295. package/lib/built/outbound-media-contract.d.ts.map +0 -1
  296. package/lib/built/outbound-media-contract.js.map +0 -1
  297. package/lib/built/outbound-media-utils.d.ts.map +0 -1
  298. package/lib/built/outbound-media-utils.js.map +0 -1
  299. package/lib/built/permission.d.ts.map +0 -1
  300. package/lib/built/permission.js.map +0 -1
  301. package/lib/built/permit-check.d.ts.map +0 -1
  302. package/lib/built/permit-check.js.map +0 -1
  303. package/lib/built/permit-parse.d.ts.map +0 -1
  304. package/lib/built/permit-parse.js.map +0 -1
  305. package/lib/built/platform-permit.d.ts.map +0 -1
  306. package/lib/built/platform-permit.js.map +0 -1
  307. package/lib/built/prepend-quote-context.d.ts.map +0 -1
  308. package/lib/built/prepend-quote-context.js.map +0 -1
  309. package/lib/built/qrcode-segment.d.ts.map +0 -1
  310. package/lib/built/qrcode-segment.js.map +0 -1
  311. package/lib/built/queue-im-field-contract.d.ts.map +0 -1
  312. package/lib/built/queue-im-field-contract.js.map +0 -1
  313. package/lib/built/rich-segments/adapter-policies.d.ts.map +0 -1
  314. package/lib/built/rich-segments/adapter-policies.js.map +0 -1
  315. package/lib/built/rich-segments/base.d.ts.map +0 -1
  316. package/lib/built/rich-segments/base.js.map +0 -1
  317. package/lib/built/rich-segments/builtins.d.ts.map +0 -1
  318. package/lib/built/rich-segments/builtins.js.map +0 -1
  319. package/lib/built/rich-segments/capabilities.d.ts.map +0 -1
  320. package/lib/built/rich-segments/capabilities.js.map +0 -1
  321. package/lib/built/rich-segments/html-segment.d.ts.map +0 -1
  322. package/lib/built/rich-segments/html-segment.js.map +0 -1
  323. package/lib/built/rich-segments/index.d.ts.map +0 -1
  324. package/lib/built/rich-segments/index.js.map +0 -1
  325. package/lib/built/rich-segments/markdown-segment.d.ts.map +0 -1
  326. package/lib/built/rich-segments/markdown-segment.js.map +0 -1
  327. package/lib/built/rich-segments/markdown-to-text.d.ts.map +0 -1
  328. package/lib/built/rich-segments/markdown-to-text.js.map +0 -1
  329. package/lib/built/rich-segments/qrcode-segment.d.ts.map +0 -1
  330. package/lib/built/rich-segments/qrcode-segment.js.map +0 -1
  331. package/lib/built/rich-segments/registry.d.ts.map +0 -1
  332. package/lib/built/rich-segments/registry.js.map +0 -1
  333. package/lib/built/rich-segments/resolve.d.ts.map +0 -1
  334. package/lib/built/rich-segments/resolve.js.map +0 -1
  335. package/lib/built/rich-segments/tts-segment.d.ts.map +0 -1
  336. package/lib/built/rich-segments/tts-segment.js.map +0 -1
  337. package/lib/built/rich-segments/types.d.ts.map +0 -1
  338. package/lib/built/rich-segments/types.js.map +0 -1
  339. package/lib/built/roles.d.ts.map +0 -1
  340. package/lib/built/roles.js.map +0 -1
  341. package/lib/built/runtime-io.d.ts.map +0 -1
  342. package/lib/built/runtime-io.js.map +0 -1
  343. package/lib/built/schema-endpoint-manager.d.ts.map +0 -1
  344. package/lib/built/schema-endpoint-manager.js.map +0 -1
  345. package/lib/built/schema-feature.d.ts.map +0 -1
  346. package/lib/built/schema-feature.js.map +0 -1
  347. package/lib/built/skill.d.ts.map +0 -1
  348. package/lib/built/skill.js.map +0 -1
  349. package/lib/built/speech-loader.d.ts.map +0 -1
  350. package/lib/built/speech-loader.js.map +0 -1
  351. package/lib/built/tool.d.ts.map +0 -1
  352. package/lib/built/tool.js.map +0 -1
  353. package/lib/command.d.ts.map +0 -1
  354. package/lib/command.js.map +0 -1
  355. package/lib/component.d.ts.map +0 -1
  356. package/lib/component.js.map +0 -1
  357. package/lib/endpoint-capabilities.d.ts.map +0 -1
  358. package/lib/endpoint-capabilities.js.map +0 -1
  359. package/lib/endpoint.d.ts.map +0 -1
  360. package/lib/endpoint.js.map +0 -1
  361. package/lib/errors.d.ts.map +0 -1
  362. package/lib/errors.js.map +0 -1
  363. package/lib/host-plugin-registry.d.ts.map +0 -1
  364. package/lib/host-plugin-registry.js.map +0 -1
  365. package/lib/im-session-id.d.ts.map +0 -1
  366. package/lib/im-session-id.js.map +0 -1
  367. package/lib/index.d.ts.map +0 -1
  368. package/lib/index.js.map +0 -1
  369. package/lib/jsx-dev-runtime.d.ts.map +0 -1
  370. package/lib/jsx-dev-runtime.js.map +0 -1
  371. package/lib/jsx-runtime.d.ts.map +0 -1
  372. package/lib/jsx-runtime.js.map +0 -1
  373. package/lib/jsx.d.ts.map +0 -1
  374. package/lib/jsx.js.map +0 -1
  375. package/lib/message-quote.d.ts.map +0 -1
  376. package/lib/message-quote.js.map +0 -1
  377. package/lib/message.d.ts.map +0 -1
  378. package/lib/message.js.map +0 -1
  379. package/lib/models/system-log.d.ts.map +0 -1
  380. package/lib/models/system-log.js.map +0 -1
  381. package/lib/models/user.d.ts.map +0 -1
  382. package/lib/models/user.js.map +0 -1
  383. package/lib/notice.d.ts.map +0 -1
  384. package/lib/notice.js.map +0 -1
  385. package/lib/plugin-context.d.ts.map +0 -1
  386. package/lib/plugin-context.js.map +0 -1
  387. package/lib/plugin.d.ts.map +0 -1
  388. package/lib/plugin.js.map +0 -1
  389. package/lib/prompt.d.ts.map +0 -1
  390. package/lib/prompt.js.map +0 -1
  391. package/lib/request.d.ts.map +0 -1
  392. package/lib/request.js.map +0 -1
  393. package/lib/scheduler/scheduler.d.ts +0 -49
  394. package/lib/scheduler/scheduler.d.ts.map +0 -1
  395. package/lib/scheduler/scheduler.js +0 -352
  396. package/lib/scheduler/scheduler.js.map +0 -1
  397. package/lib/scheduler/types.d.ts +0 -71
  398. package/lib/scheduler/types.d.ts.map +0 -1
  399. package/lib/scheduler/types.js +0 -8
  400. package/lib/scheduler/types.js.map +0 -1
  401. package/lib/tool-zod.d.ts.map +0 -1
  402. package/lib/tool-zod.js.map +0 -1
  403. package/lib/types-generator.d.ts.map +0 -1
  404. package/lib/types-generator.js.map +0 -1
  405. package/lib/types.d.ts.map +0 -1
  406. package/lib/types.js.map +0 -1
  407. package/lib/utils.d.ts.map +0 -1
  408. package/lib/utils.js.map +0 -1
@@ -1,26 +1,39 @@
1
1
  /**
2
- * IM 会话 ID 解析(无 AI 依赖)
2
+ * IM 会话 ID 解析(SSOT @zhin.js/kernel + im-scene)
3
3
  *
4
- * 格式:`platform:endpointId:scope:sceneId`
4
+ * 格式:`platform:endpointId:kind:sceneId`
5
5
  */
6
- export type IMSessionScope = 'private' | 'group' | 'channel';
7
- export interface ResolveIMSessionIdInput {
8
- platform: string;
9
- endpointId: string;
10
- scope: IMSessionScope;
11
- sceneId: string;
12
- }
6
+ import { type ResolveIMSessionIdInput } from '@zhin.js/kernel';
7
+ import { type IMSceneKind, type IMSceneRef } from './im-scene.js';
8
+ export type { IMSceneKind, ResolveIMSessionIdInput };
13
9
  export declare function resolveIMSessionId(input: ResolveIMSessionIdInput): string;
14
- export declare function resolveIMSceneIdForSession(scope: IMSessionScope, sceneId?: string, senderId?: string): string;
10
+ export declare function resolveIMSessionIdFromScene(scene: IMSceneRef): string;
11
+ export declare function resolveIMSceneIdForSession(kind: IMSceneKind, sceneId?: string, senderId?: string): string;
15
12
  export declare function resolveIMSessionIdFromMessage(message: {
16
13
  $adapter?: string;
17
14
  $endpoint?: string;
18
15
  $channel?: {
19
- type?: IMSessionScope;
16
+ type?: IMSceneKind;
20
17
  id?: string;
21
18
  };
22
19
  $sender?: {
23
20
  id?: string;
24
21
  };
25
22
  }): string;
26
- //# sourceMappingURL=im-session-id.d.ts.map
23
+ /** Canonical scene fields for transcript / session persistence (ADR 0028 SSOT). */
24
+ export declare function resolveSceneFieldsFromMessage(message: {
25
+ $adapter?: string;
26
+ $endpoint?: string;
27
+ $channel?: {
28
+ type?: IMSceneKind;
29
+ id?: string;
30
+ };
31
+ $sender?: {
32
+ id?: string;
33
+ };
34
+ }): {
35
+ platform: string;
36
+ endpointId: string;
37
+ sceneId: string;
38
+ sceneType: IMSceneKind;
39
+ };
@@ -1,29 +1,47 @@
1
1
  /**
2
- * IM 会话 ID 解析(无 AI 依赖)
2
+ * IM 会话 ID 解析(SSOT @zhin.js/kernel + im-scene)
3
3
  *
4
- * 格式:`platform:endpointId:scope:sceneId`
4
+ * 格式:`platform:endpointId:kind:sceneId`
5
5
  */
6
+ import { resolveIMSceneIdForSession as resolveIMSceneIdForSessionKernel, resolveIMSessionId as resolveIMSessionIdKernel, } from '@zhin.js/kernel';
7
+ import { resolveIMSceneSessionId, sceneRefFromMessage, } from './im-scene.js';
6
8
  export function resolveIMSessionId(input) {
7
- const platform = String(input.platform || 'unknown');
8
- const endpointId = String(input.endpointId || 'default');
9
- const scope = input.scope || 'private';
10
- const sceneId = String(input.sceneId || 'unknown');
11
- return `${platform}:${endpointId}:${scope}:${sceneId}`;
9
+ return resolveIMSessionIdKernel(input);
12
10
  }
13
- export function resolveIMSceneIdForSession(scope, sceneId, senderId) {
14
- if (scope === 'group' || scope === 'channel') {
15
- return sceneId || senderId || 'unknown';
16
- }
17
- return senderId || sceneId || 'unknown';
11
+ export function resolveIMSessionIdFromScene(scene) {
12
+ return resolveIMSceneSessionId(scene);
13
+ }
14
+ export function resolveIMSceneIdForSession(kind, sceneId, senderId) {
15
+ return resolveIMSceneIdForSessionKernel(kind, sceneId, senderId);
18
16
  }
19
17
  export function resolveIMSessionIdFromMessage(message) {
20
- const scope = (message.$channel?.type || 'private');
21
- const sceneId = resolveIMSceneIdForSession(scope, message.$channel?.id, message.$sender?.id);
18
+ const scene = sceneRefFromMessage(message);
19
+ if (scene)
20
+ return resolveIMSceneSessionId(scene);
21
+ const kind = (message.$channel?.type || 'private');
22
22
  return resolveIMSessionId({
23
23
  platform: String(message.$adapter || ''),
24
24
  endpointId: String(message.$endpoint || ''),
25
- scope,
26
- sceneId,
25
+ kind,
26
+ sceneId: resolveIMSceneIdForSession(kind, message.$channel?.id, message.$sender?.id),
27
27
  });
28
28
  }
29
- //# sourceMappingURL=im-session-id.js.map
29
+ /** Canonical scene fields for transcript / session persistence (ADR 0028 SSOT). */
30
+ export function resolveSceneFieldsFromMessage(message) {
31
+ const scene = sceneRefFromMessage(message);
32
+ if (scene) {
33
+ return {
34
+ platform: scene.platform,
35
+ endpointId: scene.endpointId,
36
+ sceneId: scene.sceneId,
37
+ sceneType: scene.kind,
38
+ };
39
+ }
40
+ const sceneType = (message.$channel?.type || 'private');
41
+ return {
42
+ platform: String(message.$adapter || ''),
43
+ endpointId: String(message.$endpoint || ''),
44
+ sceneType,
45
+ sceneId: resolveIMSceneIdForSession(sceneType, message.$channel?.id, message.$sender?.id),
46
+ };
47
+ }
package/lib/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './command.js';
5
5
  export * from './component.js';
6
6
  export * from './adapter.js';
7
7
  export * from './message.js';
8
+ export * from './im-scene.js';
8
9
  export * from './notice.js';
9
10
  export * from './request.js';
10
11
  export * from './prompt.js';
@@ -14,7 +15,8 @@ export * from './utils.js';
14
15
  export * from './errors.js';
15
16
  export * from './built/config.js';
16
17
  export * from './built/command.js';
17
- export * from './built/cron.js';
18
+ export * from './built/schedule.js';
19
+ export type { ScheduleDescriptor, ScheduleHandle, ScheduleContextExtensions } from './built/schedule.js';
18
20
  export * from './models/system-log.js';
19
21
  export * from './models/user.js';
20
22
  export * from './built/permission.js';
@@ -34,16 +36,22 @@ export * from './built/common-adapter-tools.js';
34
36
  export * from './built/roles.js';
35
37
  export * from './im-session-id.js';
36
38
  export * from './built/ai-trigger.js';
39
+ export * from './built/ai-access.js';
37
40
  export * from './built/dispatcher.js';
38
41
  export * from './built/schema-feature.js';
39
42
  export * from './built/login-assist.js';
40
43
  export * from './built/generated-qrcode.js';
41
44
  export * from './built/qrcode-segment.js';
42
45
  export * from './built/rich-segments/index.js';
43
- export { loadHtmlRenderer, HTML_RENDERER_PACKAGE } from './built/html-renderer-loader.js';
44
- export { loadSpeechPipeline, SPEECH_PACKAGE } from './built/speech-loader.js';
46
+ export * from './built/interactive-segments/index.js';
47
+ export * from './built/ai-outbound/index.js';
48
+ export { loadHtmlRenderer, seedHtmlRenderer, HTML_RENDERER_PACKAGE } from './built/html-renderer-loader.js';
49
+ export { loadSpeechPipeline, seedSpeechPipeline, SPEECH_PACKAGE } from './built/speech-loader.js';
45
50
  export * from './built/outbound-media-utils.js';
46
51
  export * from './built/outbound-media-contract.js';
52
+ export * from './built/interactive-segment-contract.js';
53
+ export * from './built/segment-contract/index.js';
54
+ export * from './built/generic-segment-mapper.js';
47
55
  export * from './built/adapter-process.js';
48
56
  export * from './built/component.js';
49
57
  export * from './built/inbound-runner.js';
@@ -61,13 +69,11 @@ export * from './built/introspection-format.js';
61
69
  export * from './built/management-command-guard.js';
62
70
  export * from './built/html-to-text.js';
63
71
  export * from './built/html-segment-fallback.js';
64
- export * from './built/mcp-mesh-registrar.js';
65
72
  export * from './built/prepend-quote-context.js';
66
73
  export * from './message-quote.js';
67
74
  export * from '@zhin.js/database';
68
75
  export * from '@zhin.js/logger';
69
76
  export { Schema } from '@zhin.js/schema';
70
77
  export type { PluginLike } from '@zhin.js/kernel';
71
- export { Feature, Cron, Scheduler, getScheduler, setScheduler } from '@zhin.js/kernel';
72
- export type { FeatureJSON, FeatureListener, Schedule, JobPayload, JobState, ScheduledJob, JobStore, JobCallback, AddJobOptions, IScheduler, SchedulerOptions, } from '@zhin.js/kernel';
73
- //# sourceMappingURL=index.d.ts.map
78
+ export { Feature, ScheduleEngine, getScheduleEngine, setScheduleEngine, Scheduler, getScheduler, setScheduler, } from '@zhin.js/kernel';
79
+ export type { FeatureJSON, FeatureListener, Schedule, JobPayload, JobState, ScheduledJob, JobStore, JobCallback, AddJobOptions, IScheduler, SchedulerOptions, ScheduleFireCallback, MemoryScheduleRegistration, ScheduleEngineOptions, JobContext, ResolvedJob, ScheduleKind, } from '@zhin.js/kernel';
package/lib/index.js CHANGED
@@ -6,6 +6,7 @@ export * from './command.js';
6
6
  export * from './component.js';
7
7
  export * from './adapter.js';
8
8
  export * from './message.js';
9
+ export * from './im-scene.js';
9
10
  export * from './notice.js';
10
11
  export * from './request.js';
11
12
  export * from './prompt.js';
@@ -16,7 +17,7 @@ export * from './errors.js';
16
17
  // ── Built 模块 ──────────────────────────────────────────────────────
17
18
  export * from './built/config.js';
18
19
  export * from './built/command.js';
19
- export * from './built/cron.js';
20
+ export * from './built/schedule.js';
20
21
  // Models
21
22
  export * from './models/system-log.js';
22
23
  export * from './models/user.js';
@@ -36,16 +37,22 @@ export * from './built/common-adapter-tools.js';
36
37
  export * from './built/roles.js';
37
38
  export * from './im-session-id.js';
38
39
  export * from './built/ai-trigger.js';
40
+ export * from './built/ai-access.js';
39
41
  export * from './built/dispatcher.js';
40
42
  export * from './built/schema-feature.js';
41
43
  export * from './built/login-assist.js';
42
44
  export * from './built/generated-qrcode.js';
43
45
  export * from './built/qrcode-segment.js';
44
46
  export * from './built/rich-segments/index.js';
45
- export { loadHtmlRenderer, HTML_RENDERER_PACKAGE } from './built/html-renderer-loader.js';
46
- export { loadSpeechPipeline, SPEECH_PACKAGE } from './built/speech-loader.js';
47
+ export * from './built/interactive-segments/index.js';
48
+ export * from './built/ai-outbound/index.js';
49
+ export { loadHtmlRenderer, seedHtmlRenderer, HTML_RENDERER_PACKAGE } from './built/html-renderer-loader.js';
50
+ export { loadSpeechPipeline, seedSpeechPipeline, SPEECH_PACKAGE } from './built/speech-loader.js';
47
51
  export * from './built/outbound-media-utils.js';
48
52
  export * from './built/outbound-media-contract.js';
53
+ export * from './built/interactive-segment-contract.js';
54
+ export * from './built/segment-contract/index.js';
55
+ export * from './built/generic-segment-mapper.js';
49
56
  export * from './built/adapter-process.js';
50
57
  export * from './built/component.js';
51
58
  export * from './built/inbound-runner.js';
@@ -59,12 +66,10 @@ export * from './built/introspection-format.js';
59
66
  export * from './built/management-command-guard.js';
60
67
  export * from './built/html-to-text.js';
61
68
  export * from './built/html-segment-fallback.js';
62
- export * from './built/mcp-mesh-registrar.js';
63
69
  export * from './built/prepend-quote-context.js';
64
70
  export * from './message-quote.js';
65
71
  // ── 外部库 re-export ──────────────────────────────────────────────────
66
72
  export * from '@zhin.js/database';
67
73
  export * from '@zhin.js/logger';
68
74
  export { Schema } from '@zhin.js/schema';
69
- export { Feature, Cron, Scheduler, getScheduler, setScheduler } from '@zhin.js/kernel';
70
- //# sourceMappingURL=index.js.map
75
+ export { Feature, ScheduleEngine, getScheduleEngine, setScheduleEngine, Scheduler, getScheduler, setScheduler, } from '@zhin.js/kernel';
@@ -1,3 +1,2 @@
1
1
  export * from './jsx-runtime.js';
2
2
  export { jsx as jsxDEV } from './jsx.js';
3
- //# sourceMappingURL=jsx-dev-runtime.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export * from './jsx-runtime.js';
2
2
  export { jsx as jsxDEV } from './jsx.js';
3
- //# sourceMappingURL=jsx-dev-runtime.js.map
@@ -9,4 +9,3 @@ declare const _default: {
9
9
  renderJSX: typeof renderJSX;
10
10
  };
11
11
  export default _default;
12
- //# sourceMappingURL=jsx-runtime.d.ts.map
@@ -8,4 +8,3 @@ export default {
8
8
  Fragment,
9
9
  renderJSX
10
10
  };
11
- //# sourceMappingURL=jsx-runtime.js.map
package/lib/jsx.d.ts CHANGED
@@ -30,4 +30,3 @@ declare global {
30
30
  export declare function jsx(type: JSXElementType, data: JSXProps): MessageComponent<any>;
31
31
  export declare function jsxs(type: JSXElementType, props: JSXProps): MessageElement;
32
32
  export declare function renderJSX(element: MessageComponent<any>, context?: ComponentContext): Promise<SendContent>;
33
- //# sourceMappingURL=jsx.d.ts.map
package/lib/jsx.js CHANGED
@@ -91,4 +91,3 @@ async function renderChildren(children, context) {
91
91
  }
92
92
  return '';
93
93
  }
94
- //# sourceMappingURL=jsx.js.map
@@ -6,6 +6,5 @@ export declare function quoteIdFromContent(content: MessageElement[]): string |
6
6
  export declare function quoteIdFromRaw(raw: unknown): string | undefined;
7
7
  /** 无 $quote_id 时从 $content / $raw 回填 */
8
8
  export declare function syncQuoteId(message: Message<any>): void;
9
- /** 将 reply 段的 id / message_id 与 $quote_id 对齐 */
9
+ /** 将 reply 段与 $quote_id 对齐(canonical 仅保留 message_id */
10
10
  export declare function alignReplySegments(content: MessageElement[], quoteId?: string): void;
11
- //# sourceMappingURL=message-quote.d.ts.map
@@ -75,7 +75,7 @@ export function syncQuoteId(message) {
75
75
  if (id)
76
76
  message.$quote_id = id;
77
77
  }
78
- /** 将 reply 段的 id / message_id 与 $quote_id 对齐 */
78
+ /** 将 reply 段与 $quote_id 对齐(canonical 仅保留 message_id */
79
79
  export function alignReplySegments(content, quoteId) {
80
80
  const id = quoteId ?? quoteIdFromContent(content);
81
81
  if (!id)
@@ -84,8 +84,7 @@ export function alignReplySegments(content, quoteId) {
84
84
  if (seg.type !== 'reply' || !seg.data || typeof seg.data !== 'object')
85
85
  continue;
86
86
  const data = seg.data;
87
- data.id = id;
88
87
  data.message_id = id;
88
+ delete data.id;
89
89
  }
90
90
  }
91
- //# sourceMappingURL=message-quote.js.map
package/lib/message.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { MessageElement, MessageSender, SendContent } from "./types";
1
+ import { MessageElement, MessageSender, SendContent } from "./types.js";
2
2
  import { Component } from "./component.js";
3
3
  import { Adapters } from "./adapter.js";
4
4
  /**
@@ -17,11 +17,12 @@ export interface MessageChannel {
17
17
  id: string;
18
18
  type: MessageType;
19
19
  /**
20
- * 私聊/子频道消息的来源场景(如 QQ 群临时会话:type=private + parent.group)。
21
- * 出站时 adapter 据此选择 API(icqq → send_temp_msg)。
20
+ * 私聊/子频道消息的来源场景:
21
+ * - 群临时会话:type=private + parent.group
22
+ * - QQ 子频道:type=channel + parent.guild
22
23
  */
23
24
  parent?: {
24
- type: 'group' | 'channel';
25
+ type: 'group' | 'channel' | 'guild';
25
26
  id: string;
26
27
  };
27
28
  }
@@ -58,5 +59,6 @@ export declare namespace Message {
58
59
  function quoteIdFromContent(content: MessageElement[]): string | undefined;
59
60
  function syncQuoteId(message: Message<any>): void;
60
61
  function alignReplySegments(content: MessageElement[], quoteId?: string): void;
62
+ function actionPayload(message: Message<any>): string | undefined;
63
+ function isAction(message: Message<any>): boolean;
61
64
  }
62
- //# sourceMappingURL=message.d.ts.map
package/lib/message.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { alignReplySegments as alignReplySegmentsImpl, quoteIdFromContent as quoteIdFromContentImpl, syncQuoteId as syncQuoteIdImpl, } from "./message-quote.js";
2
+ import { isActionMessage as isActionMessageImpl } from "./built/interactive-segments/action.js";
2
3
  export var Message;
3
4
  (function (Message) {
4
5
  /**
@@ -20,5 +21,19 @@ export var Message;
20
21
  alignReplySegmentsImpl(content, quoteId);
21
22
  }
22
23
  Message.alignReplySegments = alignReplySegments;
24
+ function actionPayload(message) {
25
+ for (const item of message.$content ?? []) {
26
+ if (typeof item === 'string')
27
+ continue;
28
+ if (item.type === 'action' && item.data?.payload) {
29
+ return String(item.data.payload);
30
+ }
31
+ }
32
+ return undefined;
33
+ }
34
+ Message.actionPayload = actionPayload;
35
+ function isAction(message) {
36
+ return isActionMessageImpl(message);
37
+ }
38
+ Message.isAction = isAction;
23
39
  })(Message || (Message = {}));
24
- //# sourceMappingURL=message.js.map
@@ -8,4 +8,3 @@ export interface SystemLog {
8
8
  timestamp: Date;
9
9
  }
10
10
  export declare const SystemLogDefinition: Definition<SystemLog>;
11
- //# sourceMappingURL=system-log.d.ts.map
@@ -6,4 +6,3 @@ export const SystemLogDefinition = {
6
6
  source: { type: 'text', nullable: false },
7
7
  timestamp: { type: 'date', nullable: false }
8
8
  };
9
- //# sourceMappingURL=system-log.js.map
@@ -7,4 +7,3 @@ export interface User {
7
7
  permissions?: string[];
8
8
  }
9
9
  export declare const UserDefinition: Definition<User>;
10
- //# sourceMappingURL=user.d.ts.map
@@ -5,4 +5,3 @@ export const UserDefinition = {
5
5
  third_part: { type: 'json', default: [] },
6
6
  permissions: { type: 'json', default: [] }
7
7
  };
8
- //# sourceMappingURL=user.js.map
package/lib/notice.d.ts CHANGED
@@ -79,4 +79,3 @@ export declare namespace Notice {
79
79
  */
80
80
  function from<T extends object>(input: T, format: NoticeBase): Notice<T>;
81
81
  }
82
- //# sourceMappingURL=notice.d.ts.map
package/lib/notice.js CHANGED
@@ -8,4 +8,3 @@ export var Notice;
8
8
  }
9
9
  Notice.from = from;
10
10
  })(Notice || (Notice = {}));
11
- //# sourceMappingURL=notice.js.map
@@ -27,4 +27,3 @@ export declare function getCurrentFile(metaUrl?: string): string;
27
27
  * @see docs/guide/plugin-development.md#getplugin-与-useplugin
28
28
  */
29
29
  export declare function getPlugin(): Plugin;
30
- //# sourceMappingURL=plugin-context.d.ts.map
@@ -59,4 +59,3 @@ export function getPlugin() {
59
59
  }
60
60
  return plugin;
61
61
  }
62
- //# sourceMappingURL=plugin-context.js.map
package/lib/plugin.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  * - 中间件系统、适配器管理、useContext 等
8
8
  */
9
9
  import type { PluginManifest } from "./types.js";
10
+ import type { InteractiveHandler } from "./built/interactive-segments/types.js";
10
11
  import { MessageMiddleware, RegisteredAdapter, MaybePromise, ArrayItem, SendOptions, MessageSendPayload } from "./types.js";
11
12
  import { Adapter, Adapters } from "./adapter.js";
12
13
  import { PluginBase, PluginBaseLifecycle } from "@zhin.js/kernel";
@@ -64,6 +65,10 @@ export declare class Plugin extends PluginBase implements PluginLike {
64
65
  * 中间件用于处理消息流转
65
66
  */
66
67
  addMiddleware<T extends RegisteredAdapter>(middleware: MessageMiddleware<T>, name?: string): () => void;
68
+ /**
69
+ * 注册交互式 action 回调处理器(自动安装根中间件,优先于 Dispatcher)
70
+ */
71
+ registerInteractiveHandler(prefix: string, handler: InteractiveHandler): () => void;
67
72
  /**
68
73
  * 插件名称
69
74
  */
@@ -159,7 +164,7 @@ export declare namespace Plugin {
159
164
  interface Features {
160
165
  commands: string[];
161
166
  components: string[];
162
- crons: string[];
167
+ schedules: string[];
163
168
  middlewares: string[];
164
169
  }
165
170
  /**
@@ -193,6 +198,8 @@ export declare namespace Plugin {
193
198
  "ai.response": [Plugin.AIEventPayload];
194
199
  "ai.typing.start": [Plugin.AIEventPayload];
195
200
  "ai.typing.stop": [Plugin.AIEventPayload];
201
+ "ai.activity.queued.start": [Plugin.AIEventPayload];
202
+ "ai.activity.queued.clear": [Plugin.AIEventPayload];
196
203
  "ai.subagent.spawn": [Plugin.AIEventPayload];
197
204
  "ai.subagent.start": [Plugin.AIEventPayload];
198
205
  "ai.subagent.finish": [Plugin.AIEventPayload];
@@ -204,6 +211,9 @@ export declare namespace Plugin {
204
211
  "ai.session.new": [Plugin.AIEventPayload];
205
212
  "ai.session.compact": [Plugin.AIEventPayload];
206
213
  "ai.hook": [Plugin.AIEventPayload];
214
+ "schedule.start": [Plugin.AIEventPayload];
215
+ "schedule.finish": [Plugin.AIEventPayload];
216
+ "schedule.error": [Plugin.AIEventPayload];
207
217
  }
208
218
  interface AIEventPayload {
209
219
  sessionId: string;
@@ -257,4 +267,3 @@ export declare namespace Plugin {
257
267
  interface Extensions {
258
268
  }
259
269
  }
260
- //# sourceMappingURL=plugin.d.ts.map
package/lib/plugin.js CHANGED
@@ -11,6 +11,7 @@ import * as path from "node:path";
11
11
  import { pathToFileURL } from "node:url";
12
12
  import { formatCompact } from "@zhin.js/logger";
13
13
  import { compose, remove, resolveEntry } from "./utils.js";
14
+ import { ensureInteractiveMiddleware, registerInteractiveHandler as registerInteractiveHandlerCore, } from "./built/interactive-segments/handlers.js";
14
15
  import { Adapter } from "./adapter.js";
15
16
  import { Feature } from "@zhin.js/kernel";
16
17
  import { PluginBase, resolvePluginResolveDir as _resolvePluginResolveDir, pluginCreateRequire as _pluginCreateRequire, getFileHash, watchFile, registerExtension, unregisterExtensions, installExtensionProxy, } from "@zhin.js/kernel";
@@ -36,7 +37,9 @@ function pluginCreateRequire() {
36
37
  * 同一上下文中同一文件多次调用返回同一实例
37
38
  */
38
39
  export function usePlugin() {
39
- const callerFile = getCurrentFile();
40
+ // 必须传入 plugin.ts 的 import.meta.url:getCurrentFile 默认锚定在 plugin-context.ts,
41
+ // 否则会多跳一层 usePlugin 帧,把调用方误判为 plugin.ts(plugin.name === "plugin")。
42
+ const callerFile = getCurrentFile(import.meta.url);
40
43
  // 如果当前 store 已是同一文件创建的插件,直接返回
41
44
  const current = storage.getStore();
42
45
  if (current && current.filePath.replace(/\?t=\d+$/, '') === callerFile.replace(/\?t=\d+$/, '')) {
@@ -103,6 +106,15 @@ export class Plugin extends PluginBase {
103
106
  this.onDispose(dispose);
104
107
  return dispose;
105
108
  }
109
+ /**
110
+ * 注册交互式 action 回调处理器(自动安装根中间件,优先于 Dispatcher)
111
+ */
112
+ registerInteractiveHandler(prefix, handler) {
113
+ ensureInteractiveMiddleware((mw) => this.root.addMiddleware(mw));
114
+ const dispose = registerInteractiveHandlerCore(prefix, handler);
115
+ this.onDispose(dispose);
116
+ return dispose;
117
+ }
106
118
  /**
107
119
  * 插件名称
108
120
  */
@@ -212,7 +224,8 @@ export class Plugin extends PluginBase {
212
224
  contextReadyCallback();
213
225
  }
214
226
  inject(name) {
215
- const context = this.root.contexts.get(name);
227
+ const resolved = name === 'cron' ? 'schedule' : name;
228
+ const context = this.root.contexts.get(resolved);
216
229
  return context?.value;
217
230
  }
218
231
  injectAdapter(name) {
@@ -291,11 +304,11 @@ export class Plugin extends PluginBase {
291
304
  get features() {
292
305
  const commandService = this.inject('command');
293
306
  const componentService = this.inject('component');
294
- const cronService = this.inject('cron');
307
+ const scheduleService = this.inject('schedule');
295
308
  return {
296
309
  commands: commandService ? commandService.items.map(c => c.pattern) : [],
297
310
  components: componentService ? componentService.getAllNames() : [],
298
- crons: cronService ? cronService.items.map(c => c.cronExpression) : [],
311
+ schedules: scheduleService ? scheduleService.items.map(s => s.id) : [],
299
312
  middlewares: this.#middlewares.map((m, i) => m.name || `middleware_${i}`),
300
313
  };
301
314
  }
@@ -310,8 +323,8 @@ export class Plugin extends PluginBase {
310
323
  result.push({ name: 'command', count: f.commands.length });
311
324
  if (f.components.length > 0)
312
325
  result.push({ name: 'component', count: f.components.length });
313
- if (f.crons.length > 0)
314
- result.push({ name: 'cron', count: f.crons.length });
326
+ if (f.schedules.length > 0)
327
+ result.push({ name: 'schedule', count: f.schedules.length });
315
328
  // #middlewares includes the default command middleware, only count user-added ones
316
329
  const userMiddlewareCount = this.#middlewares.length - 1; // subtract default #messageMiddleware
317
330
  if (userMiddlewareCount > 0)
@@ -573,4 +586,3 @@ export class Plugin extends PluginBase {
573
586
  export function defineContext(options) {
574
587
  return options;
575
588
  }
576
- //# sourceMappingURL=plugin.js.map
package/lib/prompt.d.ts CHANGED
@@ -115,4 +115,3 @@ export declare namespace Prompt {
115
115
  };
116
116
  export {};
117
117
  }
118
- //# sourceMappingURL=prompt.d.ts.map
package/lib/prompt.js CHANGED
@@ -245,4 +245,3 @@ export class Prompt {
245
245
  }
246
246
  }
247
247
  }
248
- //# sourceMappingURL=prompt.js.map
package/lib/request.d.ts CHANGED
@@ -82,4 +82,3 @@ export declare namespace Request {
82
82
  */
83
83
  function from<T extends object>(input: T, format: RequestBase): Request<T>;
84
84
  }
85
- //# sourceMappingURL=request.d.ts.map
package/lib/request.js CHANGED
@@ -8,4 +8,3 @@ export var Request;
8
8
  }
9
9
  Request.from = from;
10
10
  })(Request || (Request = {}));
11
- //# sourceMappingURL=request.js.map
package/lib/tool-zod.d.ts CHANGED
@@ -26,4 +26,3 @@ export interface CreateToolFromZodOptions {
26
26
  */
27
27
  export declare function createToolFromZod<T extends Record<string, any>>(name: string, description: string, schema: any, execute: (args: T, message?: Message<any>) => MaybePromise<any>, options?: CreateToolFromZodOptions): Tool;
28
28
  export {};
29
- //# sourceMappingURL=tool-zod.d.ts.map
package/lib/tool-zod.js CHANGED
@@ -95,4 +95,3 @@ export function createToolFromZod(name, description, schema, execute, options) {
95
95
  kind: options?.kind,
96
96
  };
97
97
  }
98
- //# sourceMappingURL=tool-zod.js.map
@@ -3,4 +3,3 @@
3
3
  * @param cwd 项目根目录
4
4
  */
5
5
  export declare function generateEnvTypes(cwd: string): Promise<void>;
6
- //# sourceMappingURL=types-generator.d.ts.map
@@ -69,4 +69,3 @@ export async function generateEnvTypes(cwd) {
69
69
  });
70
70
  }
71
71
  }
72
- //# sourceMappingURL=types-generator.js.map
package/lib/types.d.ts CHANGED
@@ -1,11 +1,10 @@
1
- import { MessageChannel, Message } from "./message.js";
2
- import { Adapter, Adapters } from "./adapter.js";
3
- import { Endpoint } from "./endpoint.js";
4
- import { SystemLog } from "./models/system-log.js";
5
- import { User } from "./models/user.js";
6
- import { Databases, Registry } from "@zhin.js/database";
7
- import { MessageComponent } from "./message.js";
8
- import { ProcessAdapter } from "./built/adapter-process.js";
1
+ import { MessageChannel, Message, MessageComponent } from './message.js';
2
+ import { Adapter, Adapters } from './adapter.js';
3
+ import { Endpoint } from './endpoint.js';
4
+ import { SystemLog } from './models/system-log.js';
5
+ import { User } from './models/user.js';
6
+ import { Databases, Registry } from '@zhin.js/database';
7
+ import { ProcessAdapter } from './built/adapter-process.js';
9
8
  export type { SenderRole } from "./built/roles.js";
10
9
  export type ArrayItem<T> = T extends Array<infer R> ? R : unknown;
11
10
  export interface Models extends Record<string, object> {
@@ -77,8 +76,27 @@ export interface QuotedMessagePayload {
77
76
  export interface QuotableEndpoint {
78
77
  $getMsg(messageId: string): Promise<QuotedMessagePayload>;
79
78
  }
80
- /** 出站回复来源(指令 / AI),仅当经 MessageDispatcher.replyWithPolish 发出时由框架填入异步上下文 */
81
- export type OutboundReplySource = 'command' | 'ai';
79
+ /** 可选:编辑已发送消息(交互式棋盘更新) */
80
+ export interface EditMessageOptions {
81
+ messageId: string;
82
+ context: string;
83
+ endpoint: string;
84
+ id: string;
85
+ type: 'private' | 'group' | 'channel';
86
+ content: SendContent;
87
+ }
88
+ export interface EditableEndpoint {
89
+ $editMessage?(options: EditMessageOptions): Promise<void>;
90
+ }
91
+ /** 出站回复来源(指令 / AI / proactive),仅当经 MessageDispatcher.replyWithPolish 或 runWithOutboundPolish 发出时由框架填入异步上下文 */
92
+ export type OutboundReplySource = 'command' | 'ai' | 'proactive';
93
+ export type OutboundReplyTrigger = 'inbound' | 'proactive';
94
+ export interface OutboundReplyStore {
95
+ message: Message;
96
+ source: OutboundReplySource;
97
+ trigger: OutboundReplyTrigger;
98
+ proactiveSource?: string;
99
+ }
82
100
  /**
83
101
  * 出站润色上下文(`dispatcher.addOutboundPolish` 的 handler 签名的同构类型)。
84
102
  * 与 {@link Adapter.sendMessage} → `before.sendMessage` 同一管道;需 `message`/`source` 时见 `getOutboundReplyStore`(dispatcher 导出)。
@@ -135,6 +153,8 @@ export interface SendOptions extends MessageChannel {
135
153
  context: string;
136
154
  endpoint: string;
137
155
  content: SendContent;
156
+ quoteId?: string;
157
+ threadId?: string;
138
158
  }
139
159
  /** `Adapter.sendMessage` 成功发出后由 core 分发的载荷 */
140
160
  export interface MessageSendPayload {
@@ -382,4 +402,3 @@ export interface PluginManifest {
382
402
  }
383
403
  /** @deprecated 使用 Tool 替代 */
384
404
  export type AITool = Tool;
385
- //# sourceMappingURL=types.d.ts.map