@yunzai-ng/core 0.1.0

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 (357) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +51 -0
  3. package/dist/adapter/accounts.d.ts +174 -0
  4. package/dist/adapter/accounts.d.ts.map +1 -0
  5. package/dist/adapter/accounts.js +653 -0
  6. package/dist/adapter/accounts.js.map +1 -0
  7. package/dist/adapter/bots.d.ts +142 -0
  8. package/dist/adapter/bots.d.ts.map +1 -0
  9. package/dist/adapter/bots.js +454 -0
  10. package/dist/adapter/bots.js.map +1 -0
  11. package/dist/adapter/host.d.ts +114 -0
  12. package/dist/adapter/host.d.ts.map +1 -0
  13. package/dist/adapter/host.js +90 -0
  14. package/dist/adapter/host.js.map +1 -0
  15. package/dist/adapter/login.d.ts +174 -0
  16. package/dist/adapter/login.d.ts.map +1 -0
  17. package/dist/adapter/login.js +345 -0
  18. package/dist/adapter/login.js.map +1 -0
  19. package/dist/adapter/registry.d.ts +102 -0
  20. package/dist/adapter/registry.d.ts.map +1 -0
  21. package/dist/adapter/registry.js +150 -0
  22. package/dist/adapter/registry.js.map +1 -0
  23. package/dist/config/core-config.d.ts +151 -0
  24. package/dist/config/core-config.d.ts.map +1 -0
  25. package/dist/config/core-config.js +338 -0
  26. package/dist/config/core-config.js.map +1 -0
  27. package/dist/config/schema.d.ts +449 -0
  28. package/dist/config/schema.d.ts.map +1 -0
  29. package/dist/config/schema.js +871 -0
  30. package/dist/config/schema.js.map +1 -0
  31. package/dist/config/store.d.ts +184 -0
  32. package/dist/config/store.d.ts.map +1 -0
  33. package/dist/config/store.js +428 -0
  34. package/dist/config/store.js.map +1 -0
  35. package/dist/config/yaml.d.ts +23 -0
  36. package/dist/config/yaml.d.ts.map +1 -0
  37. package/dist/config/yaml.js +108 -0
  38. package/dist/config/yaml.js.map +1 -0
  39. package/dist/http/client.d.ts +82 -0
  40. package/dist/http/client.d.ts.map +1 -0
  41. package/dist/http/client.js +658 -0
  42. package/dist/http/client.js.map +1 -0
  43. package/dist/index.d.ts +77 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +94 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/kernel/app.d.ts +244 -0
  48. package/dist/kernel/app.d.ts.map +1 -0
  49. package/dist/kernel/app.js +654 -0
  50. package/dist/kernel/app.js.map +1 -0
  51. package/dist/kernel/kv-sink.d.ts +34 -0
  52. package/dist/kernel/kv-sink.d.ts.map +1 -0
  53. package/dist/kernel/kv-sink.js +25 -0
  54. package/dist/kernel/kv-sink.js.map +1 -0
  55. package/dist/kernel/policy.d.ts +77 -0
  56. package/dist/kernel/policy.d.ts.map +1 -0
  57. package/dist/kernel/policy.js +99 -0
  58. package/dist/kernel/policy.js.map +1 -0
  59. package/dist/kernel/runtime.d.ts +117 -0
  60. package/dist/kernel/runtime.d.ts.map +1 -0
  61. package/dist/kernel/runtime.js +197 -0
  62. package/dist/kernel/runtime.js.map +1 -0
  63. package/dist/kernel/sql-sink.d.ts +36 -0
  64. package/dist/kernel/sql-sink.d.ts.map +1 -0
  65. package/dist/kernel/sql-sink.js +114 -0
  66. package/dist/kernel/sql-sink.js.map +1 -0
  67. package/dist/logger/format.d.ts +67 -0
  68. package/dist/logger/format.d.ts.map +1 -0
  69. package/dist/logger/format.js +218 -0
  70. package/dist/logger/format.js.map +1 -0
  71. package/dist/logger/index.d.ts +97 -0
  72. package/dist/logger/index.d.ts.map +1 -0
  73. package/dist/logger/index.js +363 -0
  74. package/dist/logger/index.js.map +1 -0
  75. package/dist/logger/rotate.d.ts +47 -0
  76. package/dist/logger/rotate.d.ts.map +1 -0
  77. package/dist/logger/rotate.js +242 -0
  78. package/dist/logger/rotate.js.map +1 -0
  79. package/dist/message/segment.d.ts +255 -0
  80. package/dist/message/segment.d.ts.map +1 -0
  81. package/dist/message/segment.js +510 -0
  82. package/dist/message/segment.js.map +1 -0
  83. package/dist/message/split.d.ts +34 -0
  84. package/dist/message/split.d.ts.map +1 -0
  85. package/dist/message/split.js +79 -0
  86. package/dist/message/split.js.map +1 -0
  87. package/dist/message/target.d.ts +29 -0
  88. package/dist/message/target.d.ts.map +1 -0
  89. package/dist/message/target.js +34 -0
  90. package/dist/message/target.js.map +1 -0
  91. package/dist/pipeline/cooldown.d.ts +84 -0
  92. package/dist/pipeline/cooldown.d.ts.map +1 -0
  93. package/dist/pipeline/cooldown.js +94 -0
  94. package/dist/pipeline/cooldown.js.map +1 -0
  95. package/dist/pipeline/dispatch.d.ts +98 -0
  96. package/dist/pipeline/dispatch.d.ts.map +1 -0
  97. package/dist/pipeline/dispatch.js +323 -0
  98. package/dist/pipeline/dispatch.js.map +1 -0
  99. package/dist/pipeline/event.d.ts +130 -0
  100. package/dist/pipeline/event.d.ts.map +1 -0
  101. package/dist/pipeline/event.js +538 -0
  102. package/dist/pipeline/event.js.map +1 -0
  103. package/dist/pipeline/middleware.d.ts +63 -0
  104. package/dist/pipeline/middleware.d.ts.map +1 -0
  105. package/dist/pipeline/middleware.js +174 -0
  106. package/dist/pipeline/middleware.js.map +1 -0
  107. package/dist/pipeline/prompt.d.ts +80 -0
  108. package/dist/pipeline/prompt.d.ts.map +1 -0
  109. package/dist/pipeline/prompt.js +155 -0
  110. package/dist/pipeline/prompt.js.map +1 -0
  111. package/dist/pipeline/router.d.ts +98 -0
  112. package/dist/pipeline/router.d.ts.map +1 -0
  113. package/dist/pipeline/router.js +489 -0
  114. package/dist/pipeline/router.js.map +1 -0
  115. package/dist/platform/detect.d.ts +24 -0
  116. package/dist/platform/detect.d.ts.map +1 -0
  117. package/dist/platform/detect.js +178 -0
  118. package/dist/platform/detect.js.map +1 -0
  119. package/dist/platform/paths.d.ts +38 -0
  120. package/dist/platform/paths.d.ts.map +1 -0
  121. package/dist/platform/paths.js +129 -0
  122. package/dist/platform/paths.js.map +1 -0
  123. package/dist/platform/system.d.ts +71 -0
  124. package/dist/platform/system.d.ts.map +1 -0
  125. package/dist/platform/system.js +242 -0
  126. package/dist/platform/system.js.map +1 -0
  127. package/dist/plugin/context.d.ts +92 -0
  128. package/dist/plugin/context.d.ts.map +1 -0
  129. package/dist/plugin/context.js +573 -0
  130. package/dist/plugin/context.js.map +1 -0
  131. package/dist/plugin/define.d.ts +92 -0
  132. package/dist/plugin/define.d.ts.map +1 -0
  133. package/dist/plugin/define.js +82 -0
  134. package/dist/plugin/define.js.map +1 -0
  135. package/dist/plugin/discover.d.ts +106 -0
  136. package/dist/plugin/discover.d.ts.map +1 -0
  137. package/dist/plugin/discover.js +254 -0
  138. package/dist/plugin/discover.js.map +1 -0
  139. package/dist/plugin/events.d.ts +109 -0
  140. package/dist/plugin/events.d.ts.map +1 -0
  141. package/dist/plugin/events.js +209 -0
  142. package/dist/plugin/events.js.map +1 -0
  143. package/dist/plugin/hooks.d.ts +266 -0
  144. package/dist/plugin/hooks.d.ts.map +1 -0
  145. package/dist/plugin/hooks.js +84 -0
  146. package/dist/plugin/hooks.js.map +1 -0
  147. package/dist/plugin/host.d.ts +160 -0
  148. package/dist/plugin/host.d.ts.map +1 -0
  149. package/dist/plugin/host.js +546 -0
  150. package/dist/plugin/host.js.map +1 -0
  151. package/dist/plugin/market.d.ts +264 -0
  152. package/dist/plugin/market.d.ts.map +1 -0
  153. package/dist/plugin/market.js +700 -0
  154. package/dist/plugin/market.js.map +1 -0
  155. package/dist/plugin/services.d.ts +116 -0
  156. package/dist/plugin/services.d.ts.map +1 -0
  157. package/dist/plugin/services.js +213 -0
  158. package/dist/plugin/services.js.map +1 -0
  159. package/dist/plugin/tar.d.ts +65 -0
  160. package/dist/plugin/tar.d.ts.map +1 -0
  161. package/dist/plugin/tar.js +277 -0
  162. package/dist/plugin/tar.js.map +1 -0
  163. package/dist/render/registry.d.ts +127 -0
  164. package/dist/render/registry.d.ts.map +1 -0
  165. package/dist/render/registry.js +306 -0
  166. package/dist/render/registry.js.map +1 -0
  167. package/dist/scheduler/index.d.ts +67 -0
  168. package/dist/scheduler/index.d.ts.map +1 -0
  169. package/dist/scheduler/index.js +279 -0
  170. package/dist/scheduler/index.js.map +1 -0
  171. package/dist/server/api.d.ts +179 -0
  172. package/dist/server/api.d.ts.map +1 -0
  173. package/dist/server/api.js +602 -0
  174. package/dist/server/api.js.map +1 -0
  175. package/dist/server/auth.d.ts +83 -0
  176. package/dist/server/auth.d.ts.map +1 -0
  177. package/dist/server/auth.js +178 -0
  178. package/dist/server/auth.js.map +1 -0
  179. package/dist/server/browse.d.ts +60 -0
  180. package/dist/server/browse.d.ts.map +1 -0
  181. package/dist/server/browse.js +187 -0
  182. package/dist/server/browse.js.map +1 -0
  183. package/dist/server/files.d.ts +27 -0
  184. package/dist/server/files.d.ts.map +1 -0
  185. package/dist/server/files.js +76 -0
  186. package/dist/server/files.js.map +1 -0
  187. package/dist/server/index.d.ts +189 -0
  188. package/dist/server/index.d.ts.map +1 -0
  189. package/dist/server/index.js +1123 -0
  190. package/dist/server/index.js.map +1 -0
  191. package/dist/server/table.d.ts +105 -0
  192. package/dist/server/table.d.ts.map +1 -0
  193. package/dist/server/table.js +289 -0
  194. package/dist/server/table.js.map +1 -0
  195. package/dist/store/index.d.ts +50 -0
  196. package/dist/store/index.d.ts.map +1 -0
  197. package/dist/store/index.js +120 -0
  198. package/dist/store/index.js.map +1 -0
  199. package/dist/store/json.d.ts +73 -0
  200. package/dist/store/json.d.ts.map +1 -0
  201. package/dist/store/json.js +174 -0
  202. package/dist/store/json.js.map +1 -0
  203. package/dist/store/kv.d.ts +126 -0
  204. package/dist/store/kv.d.ts.map +1 -0
  205. package/dist/store/kv.js +232 -0
  206. package/dist/store/kv.js.map +1 -0
  207. package/dist/store/level.d.ts +103 -0
  208. package/dist/store/level.d.ts.map +1 -0
  209. package/dist/store/level.js +119 -0
  210. package/dist/store/level.js.map +1 -0
  211. package/dist/store/memory.d.ts +61 -0
  212. package/dist/store/memory.d.ts.map +1 -0
  213. package/dist/store/memory.js +94 -0
  214. package/dist/store/memory.js.map +1 -0
  215. package/dist/store/sql.d.ts +142 -0
  216. package/dist/store/sql.d.ts.map +1 -0
  217. package/dist/store/sql.js +246 -0
  218. package/dist/store/sql.js.map +1 -0
  219. package/dist/testing/fake.d.ts +109 -0
  220. package/dist/testing/fake.d.ts.map +1 -0
  221. package/dist/testing/fake.js +196 -0
  222. package/dist/testing/fake.js.map +1 -0
  223. package/dist/testing/index.d.ts +16 -0
  224. package/dist/testing/index.d.ts.map +1 -0
  225. package/dist/testing/index.js +16 -0
  226. package/dist/testing/index.js.map +1 -0
  227. package/dist/testing/mock-adapter.d.ts +205 -0
  228. package/dist/testing/mock-adapter.d.ts.map +1 -0
  229. package/dist/testing/mock-adapter.js +309 -0
  230. package/dist/testing/mock-adapter.js.map +1 -0
  231. package/dist/util/deep.d.ts +108 -0
  232. package/dist/util/deep.d.ts.map +1 -0
  233. package/dist/util/deep.js +275 -0
  234. package/dist/util/deep.js.map +1 -0
  235. package/dist/util/defer.d.ts +107 -0
  236. package/dist/util/defer.d.ts.map +1 -0
  237. package/dist/util/defer.js +163 -0
  238. package/dist/util/defer.js.map +1 -0
  239. package/dist/util/dispose.d.ts +88 -0
  240. package/dist/util/dispose.d.ts.map +1 -0
  241. package/dist/util/dispose.js +143 -0
  242. package/dist/util/dispose.js.map +1 -0
  243. package/dist/util/duration.d.ts +28 -0
  244. package/dist/util/duration.d.ts.map +1 -0
  245. package/dist/util/duration.js +77 -0
  246. package/dist/util/duration.js.map +1 -0
  247. package/dist/util/fs.d.ts +110 -0
  248. package/dist/util/fs.d.ts.map +1 -0
  249. package/dist/util/fs.js +269 -0
  250. package/dist/util/fs.js.map +1 -0
  251. package/dist/util/id.d.ts +49 -0
  252. package/dist/util/id.d.ts.map +1 -0
  253. package/dist/util/id.js +87 -0
  254. package/dist/util/id.js.map +1 -0
  255. package/dist/util/lru.d.ts +74 -0
  256. package/dist/util/lru.d.ts.map +1 -0
  257. package/dist/util/lru.js +156 -0
  258. package/dist/util/lru.js.map +1 -0
  259. package/dist/util/queue.d.ts +64 -0
  260. package/dist/util/queue.d.ts.map +1 -0
  261. package/dist/util/queue.js +147 -0
  262. package/dist/util/queue.js.map +1 -0
  263. package/dist/util/text.d.ts +86 -0
  264. package/dist/util/text.d.ts.map +1 -0
  265. package/dist/util/text.js +182 -0
  266. package/dist/util/text.js.map +1 -0
  267. package/package.json +44 -0
  268. package/src/adapter/accounts.ts +758 -0
  269. package/src/adapter/bots.ts +582 -0
  270. package/src/adapter/host.ts +224 -0
  271. package/src/adapter/login.ts +481 -0
  272. package/src/adapter/registry.ts +202 -0
  273. package/src/config/core-config.test.ts +60 -0
  274. package/src/config/core-config.ts +401 -0
  275. package/src/config/schema.test.ts +179 -0
  276. package/src/config/schema.ts +1036 -0
  277. package/src/config/store.test.ts +245 -0
  278. package/src/config/store.ts +506 -0
  279. package/src/config/yaml.ts +119 -0
  280. package/src/http/client.test.ts +568 -0
  281. package/src/http/client.ts +777 -0
  282. package/src/index.ts +106 -0
  283. package/src/kernel/app.test.ts +267 -0
  284. package/src/kernel/app.ts +843 -0
  285. package/src/kernel/kv-sink.ts +58 -0
  286. package/src/kernel/policy.ts +120 -0
  287. package/src/kernel/runtime.test.ts +542 -0
  288. package/src/kernel/runtime.ts +307 -0
  289. package/src/kernel/sql-sink.ts +154 -0
  290. package/src/logger/format.ts +259 -0
  291. package/src/logger/index.ts +427 -0
  292. package/src/logger/rotate.ts +265 -0
  293. package/src/message/segment.test.ts +335 -0
  294. package/src/message/segment.ts +569 -0
  295. package/src/message/split.ts +97 -0
  296. package/src/message/target.ts +48 -0
  297. package/src/pipeline/cooldown.ts +136 -0
  298. package/src/pipeline/dispatch.ts +419 -0
  299. package/src/pipeline/event.ts +735 -0
  300. package/src/pipeline/middleware.test.ts +426 -0
  301. package/src/pipeline/middleware.ts +199 -0
  302. package/src/pipeline/prompt.ts +212 -0
  303. package/src/pipeline/router.test.ts +432 -0
  304. package/src/pipeline/router.ts +575 -0
  305. package/src/platform/detect.ts +178 -0
  306. package/src/platform/paths.ts +147 -0
  307. package/src/platform/system.test.ts +102 -0
  308. package/src/platform/system.ts +289 -0
  309. package/src/plugin/context.test.ts +459 -0
  310. package/src/plugin/context.ts +757 -0
  311. package/src/plugin/define.test.ts +120 -0
  312. package/src/plugin/define.ts +142 -0
  313. package/src/plugin/discover.test.ts +253 -0
  314. package/src/plugin/discover.ts +353 -0
  315. package/src/plugin/events.test.ts +162 -0
  316. package/src/plugin/events.ts +266 -0
  317. package/src/plugin/hooks.ts +373 -0
  318. package/src/plugin/host.test.ts +696 -0
  319. package/src/plugin/host.ts +738 -0
  320. package/src/plugin/market.test.ts +781 -0
  321. package/src/plugin/market.ts +870 -0
  322. package/src/plugin/services.test.ts +135 -0
  323. package/src/plugin/services.ts +261 -0
  324. package/src/plugin/tar.test.ts +158 -0
  325. package/src/plugin/tar.ts +309 -0
  326. package/src/render/registry.test.ts +127 -0
  327. package/src/render/registry.ts +439 -0
  328. package/src/scheduler/index.ts +357 -0
  329. package/src/server/api.test.ts +802 -0
  330. package/src/server/api.ts +869 -0
  331. package/src/server/auth.ts +201 -0
  332. package/src/server/browse.test.ts +193 -0
  333. package/src/server/browse.ts +240 -0
  334. package/src/server/files.ts +97 -0
  335. package/src/server/index.test.ts +566 -0
  336. package/src/server/index.ts +1386 -0
  337. package/src/server/table.ts +351 -0
  338. package/src/store/index.ts +156 -0
  339. package/src/store/json.ts +198 -0
  340. package/src/store/kv.test.ts +307 -0
  341. package/src/store/kv.ts +256 -0
  342. package/src/store/level.ts +167 -0
  343. package/src/store/memory.ts +109 -0
  344. package/src/store/sql.test.ts +204 -0
  345. package/src/store/sql.ts +324 -0
  346. package/src/testing/fake.ts +297 -0
  347. package/src/testing/index.ts +15 -0
  348. package/src/testing/mock-adapter.ts +588 -0
  349. package/src/util/deep.ts +272 -0
  350. package/src/util/defer.ts +211 -0
  351. package/src/util/dispose.ts +169 -0
  352. package/src/util/duration.ts +82 -0
  353. package/src/util/fs.ts +279 -0
  354. package/src/util/id.ts +94 -0
  355. package/src/util/lru.ts +185 -0
  356. package/src/util/queue.ts +167 -0
  357. package/src/util/text.ts +189 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/kernel/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgBrD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EAGtB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAoB,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAkB,MAAM,oBAAoB,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAqB,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAA4C,MAAM,mBAAmB,CAAA;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAwB,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAE,MAAM,EAAgB,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAqB,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,aAAa,EAAuB,MAAM,eAAe,CAAA;AAElE,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,eAAe,CAAA;AAExC,cAAc;AACd,MAAM,YAAY,GAAG,QAAQ,CAAA;AAE7B,+BAA+B;AAC/B,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAEjC,oEAAoE;AACpE,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEtD;;;;;;GAMG;AACH,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,oBAAoB,CAA0B,CAAA;QAC1E,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAA;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,gBAAgB,CAAA;IACzB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,KAAyB;IAC3D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzD,CAAC;AAoDD;;;GAGG;AACH,SAAS,eAAe;IACtB,OAAO;QACL,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;QAClD,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACpF,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;QAClD,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;KAC3E,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,OAAO,CAAC,IAAqB,EAAE,EAAW;IACjD,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC1C,CAAC;AA0DD;;;;;GAKG;AACH,MAAM,OAAO,GAAG;IACd,WAAW;IACF,OAAO,CAAQ;IACxB,WAAW;IACF,KAAK,CAAc;IAC5B,aAAa;IACJ,QAAQ,CAAc;IAC/B,+BAA+B;IACtB,SAAS,CAAW;IAC7B,eAAe;IACN,MAAM,CAAQ;IACvB,uBAAuB;IACd,WAAW,CAAa;IACjC,aAAa;IACJ,MAAM,CAAkB;IACjC,YAAY;IACH,EAAE,CAAS;IACpB,aAAa;IACJ,GAAG,CAAgB;IAC5B,eAAe;IACN,IAAI,CAAmB;IAChC,0CAA0C;IACjC,QAAQ,CAAiB;IAClC,aAAa;IACJ,MAAM,CAAc;IAC7B,qBAAqB;IACZ,MAAM,CAAc;IAC7B;;;;;OAKG;IACM,KAAK,CAAa;IAC3B,WAAW;IACF,OAAO,CAAY;IAC5B;;;;OAIG;IACM,UAAU,CAAkB;IACrC;;;;;;;;OAQG;IACM,OAAO,CAAc;IAC9B,uBAAuB;IACd,IAAI,CAAS;IAEtB,WAAW;IACF,YAAY,CAAa;IAClC,wCAAwC;IAC/B,OAAO,CAA2B;IAC3C,aAAa;IACJ,YAAY,CAAQ;IAC7B,iDAAiD;IACxC,UAAU,CAAY;IAC/B,WAAW;IACX,OAAO,GAAc,SAAS,CAAA;IAC9B,sBAAsB;IACtB,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAEvB;;;;;;OAMG;IACH,YAAY,KAAe;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;QAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAA;QACrC,0CAA0C;QAC1C,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;QAEtC,0BAA0B;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,IAAI,GAAG;YACV,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,SAAS;gBACX,OAAO,IAAI,CAAC,UAAU,CAAA;YACxB,CAAC;YACD,IAAI,QAAQ;gBACV,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAA;YACjC,CAAC;YACD,IAAI,IAAI;gBACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAA;YAC7B,CAAC;YACD,IAAI,QAAQ;gBACV,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAA;YACjC,CAAC;YACD,IAAI,OAAO;gBACT,OAAO,IAAI,CAAC,YAAY,CAAA;YAC1B,CAAC;YACD,IAAI,MAAM;gBACR,sCAAsC;gBACtC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAA;YAC/B,CAAC;YACD,KAAK,EAAE,GAAkB,EAAE,CAAC,WAAW,EAAE;SAC1C,CAAA;IACH,CAAC;IAED,WAAW;IACX,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,gBAAgB;IAChB,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,aAAa;IACb,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,CAAC,OAAO,gDAAgD,CACxE,CAAA;QACH,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE5B,uCAAuC;QACvC,mCAAmC;QACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAA;QAC1C,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC5B,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YAC1C,yCAAyC;YACzC,8BAA8B;YAC9B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5E,CAAC,CAAC,CACH,CAAA;QAED,qCAAqC;QACrC,0BAA0B;QAC1B,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QAElD,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpD,IAAI,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;QAC3C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAC/F,CAAA;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAA;QAEtG,cAAc;QACd,6CAA6C;QAC7C,0DAA0D;QAC1D,gCAAgC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kCAAkC;gBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC/F,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,MAAM,CAAC,CAAA;QACjD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY,CAAC,MAAqB;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,KAAK,CAAC,CAAA;YAC1C,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,mBAAmB,SAAS,4BAA4B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAC7E,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAM;QACrE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEzB,yCAAyC;QACzC,IAAI,CAAC;YACH,MAAM,WAAW,CACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAChC,IAAI,CAAC,YAAY,EACjB,wBAAwB,IAAI,CAAC,YAAY,2BAA2B,CACrE,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACpE,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;QAEF,8CAA8C;QAC9C,iDAAiD;QACjD,wBAAwB;QACxB,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAE/F,gCAAgC;QAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACtC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAE1B,0CAA0C;QAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACrD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;QAE5D,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,qBAAqB;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,aAAa;QACX,cAAc;QACd,IAAI,OAAO,GAAG,KAAK,CAAA;QAEnB;;;WAGG;QACH,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAQ,EAAE;YAChD,IAAI,OAAO,EAAE,CAAC;gBACZ,uCAAuC;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,aAAa,CAAC,CAAA;gBAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;gBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,kBAAkB,CAAC,CAAA;YAChD,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CACnB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB,CAAA;QACH,CAAC,CAAA;QAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC/B,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAClC,CAAC,CAAA;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,OAAiB;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,EAAiB;QAC3C,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,CAAA;QACZ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,EAAE,GAAG,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB,EAAE;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,CAAA;IAC7C,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAEzF,uEAAuE;IACvE,sCAAsC;IACtC,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAA;IACnD,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK;QACzC,GAAG,EAAE,KAAK,CAAC,IAAI;QACf,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK;QAC/B,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI;QAC1C,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ;KAC/B,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,QAAQ,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,SAAS,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;IACpG,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAE5G,uEAAuE;IACvE,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAA;IAC7G,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAC7B,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAElC,sCAAsC;IACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACzC,IACE,MAAM,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI;QACpD,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ;QACxC,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,EACxC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;IAC/E,CAAC;IAED,uEAAuE;IACvE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;QACtB,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;QAC9E,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;QAC7B,MAAM,EAAE,IAAI;KACb,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IAEzG,uEAAuE;IACvE,kCAAkC;IAClC,kCAAkC;IAClC,MAAM,IAAI,GAAG,gBAAgB,CAAC;QAC5B,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;QACpD,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;QACzB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;QACzB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,IAAI,aAAa,OAAO,EAAE;KAC5D,CAAC,CAAA;IAEF,mEAAmE;IACnE,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAA;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,wDAAwD;IACxD,MAAM,UAAU,GAAG,eAAe,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAA;IAChC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;IACf,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;QACnC,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM;QAC1C,MAAM,EAAE,EAAE,CAAC,MAAM;KAClB,CAAC,CAAA;IACF,KAAK,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAW,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAA;IAEpE,wDAAwD;IACxD,gDAAgD;IAChD,aAAa;IACb,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM;QACnC,CAAC,CAAC,MAAM,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAChF,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,MAAM;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAEjC,qEAAqE;IACrE,iCAAiC;IACjC,MAAM,SAAS,GAAG;QAChB,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC;QACpH,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;KAC1B,CAAA;IAED;;;;;;OAMG;IACH,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,KAAK;QACL,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,WAAW;QACnB,EAAE;QACF,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,KAAK;QACL,GAAG,EAAE,GAAG,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA;QACzB,CAAC;QACD,SAAS;QACT,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,yCAAyC;QACzC,iCAAiC;QACjC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ;QACnC,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;KAClE,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE;QAC1C,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE;QAChD,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE;QAC1C,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE;KACvD,CAAC,CAAA;IAEF,sCAAsC;IACtC,qCAAqC;IACrC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC9B,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACvC,UAAU,EAAE,KAAK,CAAC,OAAO;QACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC;QACjD,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAA;YACnC,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACpD,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;aAChD,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,mEAAmE;IACnE,iDAAiD;IACjD,kDAAkD;IAClD,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,cAAc,CAAC;QAC7B,MAAM,EAAE,IAAI;QACZ,MAAM;QACN,EAAE;QACF,MAAM;QACN,MAAM;QACN,KAAK;QACL,UAAU;QACV,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACnC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;KAC7C,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QAClB,OAAO;QACP,KAAK;QACL,QAAQ;QACR,SAAS;QACT,WAAW;QACX,MAAM;QACN,EAAE;QACF,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,WAAW;QACX,UAAU;QACV,OAAO;QACP,SAAS;QACT,MAAM;QACN,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,oBAAoB;KACtD,CAAC,CAAA;IACF,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;IAEjB,uEAAuE;IACvE,8DAA8D;IAC9D,+CAA+C;IAC/C,8CAA8C;IAC9C,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,CAAC,GAAG,CACL,WAAW,CAAC,MAAM,EAAE;YAClB,OAAO;YACP,KAAK;YACL,QAAQ;YACR,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACpC,MAAM;YACN,WAAW;YACX,SAAS;YACT,OAAO,EAAE,IAAI;YACb,MAAM;YACN,UAAU,EAAE;gBACV,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAChD,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC1C,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE;aACvD;YACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;YACxB,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS;YAC9B,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;YAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 模块职责:将插件注册的 KV 驱动接入 `KvDriverSink` 接缝
3
+ * 依赖方向:依赖 store/index、plugin/hooks、类型包
4
+ * 生命周期:应用级单例;注销由插件卸载时触发
5
+ * 注意事项:**插件注册的驱动不会立即接管存储**。KV 必须在 `create()` 阶段即开启
6
+ * (配置、账号、插件状态均需使用它),而插件在其之后方才加载,
7
+ * 因此 `store-redis` 一类插件注册的驱动最早也需下一次启动方能生效。
8
+ *
9
+ * 此项取舍并非规避实现成本:先加载插件再开启存储将导致"插件加载失败时连日志都无处写入"
10
+ * 的循环依赖问题。取舍是明确的 —— 更换驱动需重启一次,
11
+ * 而更换驱动本身即属极低频操作。
12
+ *
13
+ * 因此此处在注册时会**主动比对当前配置**:使用者配置了 `store.driver: redis`
14
+ * 而实际仍运行于 level 之上时,日志中必须出现一句"重启后生效",
15
+ * 而不应使使用者误认为数据已写入 Redis。
16
+ */
17
+ import type { Logger } from "@yunzai-ng/types";
18
+ import type { KvDriverSink } from "../plugin/hooks.js";
19
+ /** 创建 KV 驱动接缝的参数 */
20
+ export interface KvDriverSinkOptions {
21
+ /** 日志器 */
22
+ logger: Logger;
23
+ /** 取配置里请求的驱动 id(现读,配置可能已被改过) */
24
+ requested: () => string;
25
+ /** 当前实际生效的驱动 id */
26
+ active: string;
27
+ }
28
+ /**
29
+ * 创建 KV 驱动接缝
30
+ * @param opts 参数
31
+ * @returns KV 驱动接缝
32
+ */
33
+ export declare function createKvDriverSink(opts: KvDriverSinkOptions): KvDriverSink;
34
+ //# sourceMappingURL=kv-sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv-sink.d.ts","sourceRoot":"","sources":["../../src/kernel/kv-sink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD,oBAAoB;AACpB,MAAM,WAAW,mBAAmB;IAClC,UAAU;IACV,MAAM,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,SAAS,EAAE,MAAM,MAAM,CAAA;IACvB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAsB1E"}
@@ -0,0 +1,25 @@
1
+ import { registerKvDriver } from "../store/index.js";
2
+ /**
3
+ * 创建 KV 驱动接缝
4
+ * @param opts 参数
5
+ * @returns KV 驱动接缝
6
+ */
7
+ export function createKvDriverSink(opts) {
8
+ const logger = opts.logger.child({ scope: "store" });
9
+ return {
10
+ register(driver, owner) {
11
+ // 驱动实例转成工厂:openKv 需要的是"给我目录、我造一个",
12
+ // 而插件手里已经有实例了。忽略 dir 参数是刻意的 ——
13
+ // 目录信息在插件自己构造实例时就已经拿到(ctx.dataDir)
14
+ const undo = registerKvDriver(driver.id, () => driver);
15
+ logger.info(`插件 ${owner} 注册了 KV 驱动 ${driver.id}`);
16
+ const requested = opts.requested();
17
+ if (requested === driver.id && opts.active !== driver.id) {
18
+ logger.warn(`配置里的 store.driver 是 ${driver.id},但本次启动实际使用的是 ${opts.active} ——` +
19
+ `插件注册的驱动要下次启动才能接管存储,现在重启一次即可生效`);
20
+ }
21
+ return undo;
22
+ }
23
+ };
24
+ }
25
+ //# sourceMappingURL=kv-sink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv-sink.js","sourceRoot":"","sources":["../../src/kernel/kv-sink.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAYpD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAyB;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAEpD,OAAO;QACL,QAAQ,CAAC,MAAgB,EAAE,KAAa;YACtC,mCAAmC;YACnC,+BAA+B;YAC/B,mCAAmC;YACnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;YACtD,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,cAAc,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;YAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAClC,IAAI,SAAS,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CACT,uBAAuB,MAAM,CAAC,EAAE,gBAAgB,IAAI,CAAC,MAAM,KAAK;oBAC9D,+BAA+B,CAClC,CAAA;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * 模块职责:内核策略 —— 主人、命令前缀、昵称、维护模式
3
+ * 依赖方向:依赖 config/core-config 与类型包;不依赖任何子系统
4
+ * 生命周期:与应用同寿,无需回收
5
+ * 注意事项:所有取值均**即时读取配置**而不缓存,故改完主人号对下一条消息即生效,不必重启。
6
+ * `ConfigFile.get()` 在配置未变更时返回同一个对象,故"即时读取"只是一次属性访问。
7
+ *
8
+ * 此处刻意**不做鉴权**:`addMaster` 对任何调用方均开放。凭据校验是入口的职责
9
+ * (WebUI 经由令牌,命令经由 `isMaster`),策略层仅负责"名单的内容"。
10
+ * 两者混于一层将导致"经由修改配置绕过鉴权"这类漏洞。
11
+ */
12
+ import type { PolicyView } from "@yunzai-ng/types";
13
+ import type { CoreConfigHandle } from "../config/core-config.js";
14
+ /**
15
+ * 内核策略
16
+ *
17
+ * 实现类型包里的 `PolicyView`(适配器与插件只看得到那个只读接口),
18
+ * 另外多给内核自己用的几项:前缀、昵称、维护模式。
19
+ */
20
+ export declare class KernelPolicy implements PolicyView {
21
+ #private;
22
+ /**
23
+ * @param config 内核配置句柄
24
+ */
25
+ constructor(config: CoreConfigHandle);
26
+ /** 主人账号列表 */
27
+ get masters(): readonly string[];
28
+ /**
29
+ * 命令前缀
30
+ *
31
+ * 空数组表示不限制前缀。命令路由据此分桶,见 pipeline 层。
32
+ */
33
+ get prefixes(): readonly string[];
34
+ /** 机器人昵称(群里以昵称开头等同于 @ 机器人) */
35
+ get nicknames(): readonly string[];
36
+ /** 是否忽略自身发出的消息 */
37
+ get ignoreSelf(): boolean;
38
+ /** 是否处于维护模式(只响应主人) */
39
+ get maintenance(): boolean;
40
+ /**
41
+ * 判断是否主人
42
+ *
43
+ * 主人名单为空时一律返回 false —— 不存在"没配主人就人人是主人"的默认,
44
+ * 那会让首次启动的机器人对全世界开放管理命令。
45
+ * @param uid 用户 id
46
+ * @returns 是否主人
47
+ */
48
+ isMaster(uid: string): boolean;
49
+ /**
50
+ * 判断该用户当前是否应被响应
51
+ *
52
+ * 维护模式下只放行主人。这是**唯一**的全局开关判定点,管线里不要再各自判一次。
53
+ * @param uid 用户 id
54
+ * @returns 是否响应
55
+ */
56
+ canRespond(uid: string): boolean;
57
+ /**
58
+ * 添加主人并落盘
59
+ * @param uid 用户 id(纯数字)
60
+ * @returns 是否真的添加了(已在名单里时 false)
61
+ * @throws SchemaError uid 不是合法 id 时;此时配置与文件都不变
62
+ */
63
+ addMaster(uid: string): Promise<boolean>;
64
+ /**
65
+ * 移除主人并落盘
66
+ * @param uid 用户 id
67
+ * @returns 是否真的移除了
68
+ */
69
+ removeMaster(uid: string): Promise<boolean>;
70
+ }
71
+ /**
72
+ * 创建内核策略
73
+ * @param config 内核配置句柄
74
+ * @returns 内核策略
75
+ */
76
+ export declare function createPolicy(config: CoreConfigHandle): KernelPolicy;
77
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/kernel/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,UAAU;;IAI7C;;OAEG;gBACS,MAAM,EAAE,gBAAgB;IAIpC,aAAa;IACb,IAAI,OAAO,IAAI,SAAS,MAAM,EAAE,CAE/B;IAED;;;;OAIG;IACH,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAED,8BAA8B;IAC9B,IAAI,SAAS,IAAI,SAAS,MAAM,EAAE,CAEjC;IAED,kBAAkB;IAClB,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,sBAAsB;IACtB,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK9B;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;;;;OAKG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9C;;;;OAIG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAMlD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,YAAY,CAEnE"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * 内核策略
3
+ *
4
+ * 实现类型包里的 `PolicyView`(适配器与插件只看得到那个只读接口),
5
+ * 另外多给内核自己用的几项:前缀、昵称、维护模式。
6
+ */
7
+ export class KernelPolicy {
8
+ /** 内核配置句柄 */
9
+ #config;
10
+ /**
11
+ * @param config 内核配置句柄
12
+ */
13
+ constructor(config) {
14
+ this.#config = config;
15
+ }
16
+ /** 主人账号列表 */
17
+ get masters() {
18
+ return this.#config.get().bot.masterQQ;
19
+ }
20
+ /**
21
+ * 命令前缀
22
+ *
23
+ * 空数组表示不限制前缀。命令路由据此分桶,见 pipeline 层。
24
+ */
25
+ get prefixes() {
26
+ return this.#config.get().bot.prefix;
27
+ }
28
+ /** 机器人昵称(群里以昵称开头等同于 @ 机器人) */
29
+ get nicknames() {
30
+ return this.#config.get().bot.nickname;
31
+ }
32
+ /** 是否忽略自身发出的消息 */
33
+ get ignoreSelf() {
34
+ return this.#config.get().bot.ignoreSelf;
35
+ }
36
+ /** 是否处于维护模式(只响应主人) */
37
+ get maintenance() {
38
+ return this.#config.get().bot.onlyMaster;
39
+ }
40
+ /**
41
+ * 判断是否主人
42
+ *
43
+ * 主人名单为空时一律返回 false —— 不存在"没配主人就人人是主人"的默认,
44
+ * 那会让首次启动的机器人对全世界开放管理命令。
45
+ * @param uid 用户 id
46
+ * @returns 是否主人
47
+ */
48
+ isMaster(uid) {
49
+ if (uid === "")
50
+ return false;
51
+ return this.masters.includes(uid);
52
+ }
53
+ /**
54
+ * 判断该用户当前是否应被响应
55
+ *
56
+ * 维护模式下只放行主人。这是**唯一**的全局开关判定点,管线里不要再各自判一次。
57
+ * @param uid 用户 id
58
+ * @returns 是否响应
59
+ */
60
+ canRespond(uid) {
61
+ return !this.maintenance || this.isMaster(uid);
62
+ }
63
+ /**
64
+ * 添加主人并落盘
65
+ * @param uid 用户 id(纯数字)
66
+ * @returns 是否真的添加了(已在名单里时 false)
67
+ * @throws SchemaError uid 不是合法 id 时;此时配置与文件都不变
68
+ */
69
+ async addMaster(uid) {
70
+ const current = this.masters;
71
+ if (current.includes(uid))
72
+ return false;
73
+ // 整个数组一起写:deepMerge 对数组是整体替换而非追加,
74
+ // 只传新增项会把原有主人全冲掉
75
+ await this.#config.patch({ bot: { masterQQ: [...current, uid] } });
76
+ return true;
77
+ }
78
+ /**
79
+ * 移除主人并落盘
80
+ * @param uid 用户 id
81
+ * @returns 是否真的移除了
82
+ */
83
+ async removeMaster(uid) {
84
+ const current = this.masters;
85
+ if (!current.includes(uid))
86
+ return false;
87
+ await this.#config.patch({ bot: { masterQQ: current.filter(id => id !== uid) } });
88
+ return true;
89
+ }
90
+ }
91
+ /**
92
+ * 创建内核策略
93
+ * @param config 内核配置句柄
94
+ * @returns 内核策略
95
+ */
96
+ export function createPolicy(config) {
97
+ return new KernelPolicy(config);
98
+ }
99
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/kernel/policy.ts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACvB,aAAa;IACJ,OAAO,CAAkB;IAElC;;OAEG;IACH,YAAY,MAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,aAAa;IACb,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAA;IACtC,CAAC;IAED,8BAA8B;IAC9B,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAA;IACxC,CAAC;IAED,kBAAkB;IAClB,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAA;IAC1C,CAAC;IAED,sBAAsB;IACtB,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAA;IAC1C,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAW;QAClB,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,KAAK,CAAA;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,GAAW;QACpB,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QACvC,kCAAkC;QAClC,iBAAiB;QACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;QAClE,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,GAAW;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QACxC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;QACjF,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAwB;IACnD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * 模块职责:装配运行期子系统 —— 消息管线、调度器、渲染注册表、适配器与账号
3
+ * 依赖方向:依赖 pipeline / scheduler / render / adapter 各层与内核基础设施;
4
+ * **不依赖任何插件**,亦不被上述任何一层反向 import(由 scripts/check-layering.mjs 守卫)
5
+ * 生命周期:`createApp()` 中调用一次,且在 `new App(...)` **之前**;回收动作经 `own()` 移交 `App.stop()`
6
+ * 注意事项:从 `kernel/app.ts` 拆出来是为了让那边只描述生命周期 —— 子系统之间的装配有十余条,
7
+ * 混在 `createApp` 里会把「启动顺序」这条主线盖掉。附带收益是可单独测试:`RuntimeDeps`
8
+ * 是一组窄依赖,不必先造一个真的 `App`。四条不可改的约定:
9
+ *
10
+ * **必须早于 `new App(...)`。** 顺序反了,从 App 构造完到子系统装配完之间有一段空窗,
11
+ * `AppView.bots` 在那期间给出的是空占位注册表 —— 视图虽是 getter,窗口期内每次读取
12
+ * 都是错的。
13
+ *
14
+ * **接缝字段是「替换」而非「注入」。** `hooks` 与 `subsystems` 是可变对象,插件上下文每次
15
+ * 使用时实时读取,故此处直接改写字段即可,不必通知任何一方。
16
+ *
17
+ * **配置一律取 getter 或取值函数,不缓存快照。** 面板改了 `message.splitLength` 应当自下
18
+ * 一条消息即生效。唯一的例外是 `message.concurrency` —— 信号量容量在创建时固定,这一点
19
+ * 已写进它的配置说明。
20
+ */
21
+ import type { Disposer, Logger } from "@yunzai-ng/types";
22
+ import { AccountManager } from "../adapter/accounts.js";
23
+ import { BotRegistry } from "../adapter/bots.js";
24
+ import { LoginManager } from "../adapter/login.js";
25
+ import { AdapterRegistry } from "../adapter/registry.js";
26
+ import type { CoreConfigHandle } from "../config/core-config.js";
27
+ import { CooldownStore } from "../pipeline/cooldown.js";
28
+ import { EventDispatcher } from "../pipeline/dispatch.js";
29
+ import { EventFactory, type PluginRuntimeView } from "../pipeline/event.js";
30
+ import { MiddlewarePipeline } from "../pipeline/middleware.js";
31
+ import { PromptRegistry } from "../pipeline/prompt.js";
32
+ import { CommandRouter } from "../pipeline/router.js";
33
+ import type { CoreEventBus } from "../plugin/events.js";
34
+ import type { KernelHooks } from "../plugin/hooks.js";
35
+ import { RenderRegistry } from "../render/registry.js";
36
+ import { Scheduler } from "../scheduler/index.js";
37
+ import type { KvStore } from "../store/index.js";
38
+ import type { KernelSubsystems } from "./app.js";
39
+ import type { KernelPolicy } from "./policy.js";
40
+ /** 装配运行期子系统所需的依赖 */
41
+ export interface RuntimeDeps {
42
+ /** 根日志器;各子系统自行派生 child */
43
+ readonly logger: Logger;
44
+ /** 内核配置句柄 */
45
+ readonly config: CoreConfigHandle;
46
+ /** KV 存储 */
47
+ readonly kv: KvStore;
48
+ /** 内核事件总线 */
49
+ readonly events: CoreEventBus;
50
+ /** 内核策略(同时充当三层的策略视图,见 `installRuntime` 的注释) */
51
+ readonly policy: KernelPolicy;
52
+ /** 子系统接缝;本函数会替换其中五个字段 */
53
+ readonly hooks: KernelHooks;
54
+ /** 可后填的子系统视图;本函数会替换全部四个字段 */
55
+ readonly subsystems: KernelSubsystems;
56
+ /**
57
+ * 按插件名取运行时上下文
58
+ *
59
+ * 由插件宿主提供(`PluginHost.runtime`)。分发器靠它把 `e.render()` 的模板根、
60
+ * `e.prompt()` 的卸载信号绑到发起命令的那个插件上。
61
+ * @param name 插件名
62
+ * @returns 插件运行时视图;未加载或已卸载时 undefined
63
+ */
64
+ readonly plugins: (name: string) => PluginRuntimeView | undefined;
65
+ /**
66
+ * 登记一个需要在停机时回收的动作
67
+ *
68
+ * 回收按登记的**逆序**执行,见 `kernel/app.ts` 的 `own()`。
69
+ * @param dispose 回收函数
70
+ */
71
+ readonly own: (dispose: Disposer) => void;
72
+ }
73
+ /**
74
+ * 装配好的运行期子系统
75
+ *
76
+ * 暴露的是**具体实现**而不是窄视图:WebUI(阶段四)要做账号增删改查、要看
77
+ * 登录会话快照、要列渲染器、要读分发器的积压计数,这些都在 `AppView` 的
78
+ * 只读视图之外。`App` 持有这一份,WebUI 从 `App` 拿。
79
+ */
80
+ export interface RuntimeParts {
81
+ /** `prompt` 等待者登记表 */
82
+ readonly prompts: PromptRegistry;
83
+ /** 事件工厂 */
84
+ readonly factory: EventFactory;
85
+ /** 中间件管线 */
86
+ readonly middlewares: MiddlewarePipeline;
87
+ /** 命令路由 */
88
+ readonly router: CommandRouter;
89
+ /** 冷却存储 */
90
+ readonly cooldown: CooldownStore;
91
+ /** 事件分发器(适配器唯一的入口) */
92
+ readonly dispatcher: EventDispatcher;
93
+ /** 定时任务调度器 */
94
+ readonly scheduler: Scheduler;
95
+ /** 渲染注册表 */
96
+ readonly renderers: RenderRegistry;
97
+ /** 适配器注册表 */
98
+ readonly adapters: AdapterRegistry;
99
+ /** 在线 Bot 注册表 */
100
+ readonly bots: BotRegistry;
101
+ /** 账号管理器 */
102
+ readonly accounts: AccountManager;
103
+ /** 登录会话管理器 */
104
+ readonly logins: LoginManager;
105
+ }
106
+ /**
107
+ * 装配全部运行期子系统,并把它们填进内核接缝
108
+ *
109
+ * 构造顺序按依赖来:管线(内层)→ 调度器与渲染(旁挂)→ 适配器与账号(外层,
110
+ * 事件从这里进来)。`KernelPolicy` 会被同时当成 `DispatchPolicyView`、
111
+ * `EventPolicyView`、`PolicyView` 传下去 —— 它结构上满足三者,多写三个适配器
112
+ * 对象只会让"这几个视图必须对得上"这件事变得不明显。
113
+ * @param deps 依赖
114
+ * @returns 装配好的子系统
115
+ */
116
+ export declare function installRuntime(deps: RuntimeDeps): RuntimeParts;
117
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/kernel/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,197 @@
1
+ import { AccountManager } from "../adapter/accounts.js";
2
+ import { BotRegistry } from "../adapter/bots.js";
3
+ import { createAdapterHostFactory } from "../adapter/host.js";
4
+ import { LoginManager } from "../adapter/login.js";
5
+ import { AdapterRegistry } from "../adapter/registry.js";
6
+ import { CooldownStore } from "../pipeline/cooldown.js";
7
+ import { EventDispatcher } from "../pipeline/dispatch.js";
8
+ import { EventFactory } from "../pipeline/event.js";
9
+ import { MiddlewarePipeline } from "../pipeline/middleware.js";
10
+ import { PromptRegistry } from "../pipeline/prompt.js";
11
+ import { CommandRouter } from "../pipeline/router.js";
12
+ import { RenderRegistry } from "../render/registry.js";
13
+ import { Scheduler } from "../scheduler/index.js";
14
+ import { parseDuration } from "../util/duration.js";
15
+ /** 适配器数据的 KV 命名空间名 */
16
+ const KV_ADAPTER = "adapter";
17
+ /** 账号记录的 KV 命名空间名 */
18
+ const KV_ACCOUNTS = "accounts";
19
+ /**
20
+ * 发送超时读不出来时的兜底毫秒
21
+ *
22
+ * 与 `message.sendTimeout` 的 schema 默认值 `"30s"` 对应。schema 会在加载时
23
+ * 校验时长格式,所以这个兜底实际上走不到;留着是因为"发送永不超时"的后果比
24
+ * 一个偏差几秒的超时严重得多 —— 在 `sequential` 模式下,一次永不结束的发送
25
+ * 会把那个会话的队列永久堵死。
26
+ */
27
+ const FALLBACK_SEND_TIMEOUT = 30_000;
28
+ /**
29
+ * 取当前渲染策略
30
+ *
31
+ * 超时解析不出来时给 0:`RenderRegistry.render()` 对非正值有自己的兜底
32
+ * (60 秒),把那个数字再抄一遍只会多一处需要同步维护的地方。
33
+ * @param config 内核配置句柄
34
+ * @returns 渲染策略
35
+ */
36
+ function renderPolicyOf(config) {
37
+ const r = config.get().render;
38
+ return {
39
+ default: r.default,
40
+ timeout: parseDuration(r.timeout, 0),
41
+ retry: r.retry,
42
+ quality: r.quality,
43
+ scale: r.scale
44
+ };
45
+ }
46
+ /**
47
+ * 造一份"活的"发送策略视图
48
+ *
49
+ * 三个字段都是 getter:`BotFacade` 在**每次发送时**读它们(见 adapter/bots.ts),
50
+ * 所以在面板上把切分长度从 3000 改成 1000,下一条消息就按 1000 切,
51
+ * 不需要重连账号。缓存成快照的话就得重连才生效。
52
+ * @param config 内核配置句柄
53
+ * @returns 发送策略视图
54
+ */
55
+ function sendPolicyOf(config) {
56
+ return {
57
+ get splitLength() {
58
+ return config.get().message.splitLength;
59
+ },
60
+ get sendTimeout() {
61
+ return parseDuration(config.get().message.sendTimeout, FALLBACK_SEND_TIMEOUT);
62
+ },
63
+ get sequential() {
64
+ return config.get().message.sequential;
65
+ }
66
+ };
67
+ }
68
+ /**
69
+ * 装配全部运行期子系统,并把它们填进内核接缝
70
+ *
71
+ * 构造顺序按依赖来:管线(内层)→ 调度器与渲染(旁挂)→ 适配器与账号(外层,
72
+ * 事件从这里进来)。`KernelPolicy` 会被同时当成 `DispatchPolicyView`、
73
+ * `EventPolicyView`、`PolicyView` 传下去 —— 它结构上满足三者,多写三个适配器
74
+ * 对象只会让"这几个视图必须对得上"这件事变得不明显。
75
+ * @param deps 依赖
76
+ * @returns 装配好的子系统
77
+ */
78
+ export function installRuntime(deps) {
79
+ const { logger, config, kv, events, policy, hooks, subsystems } = deps;
80
+ const log = logger.child({ scope: "runtime" });
81
+ // ── 1. 消息管线 ───────────────────────────────────────────────────────
82
+ const prompts = new PromptRegistry();
83
+ const factory = new EventFactory({ logger, policy, prompts });
84
+ const middlewares = new MiddlewarePipeline(logger);
85
+ const router = new CommandRouter({ logger });
86
+ const cooldown = new CooldownStore();
87
+ const dispatcher = new EventDispatcher({
88
+ logger,
89
+ policy,
90
+ events,
91
+ factory,
92
+ middlewares,
93
+ router,
94
+ cooldown,
95
+ prompts,
96
+ plugins: deps.plugins,
97
+ // 只读一次:信号量的容量在构造时定下,见文件头第 4 条
98
+ concurrency: config.get().message.concurrency
99
+ });
100
+ // ── 2. 调度器与渲染 ───────────────────────────────────────────────────
101
+ const scheduler = new Scheduler({ logger });
102
+ // onDone 在此处接线而非由注册表自己认识总线:注册表对渲染实现零认知,
103
+ // 认识事件总线就等于认识插件系统(见 render/registry.ts 的构造参数注释)
104
+ const renderers = new RenderRegistry({
105
+ logger,
106
+ policy: () => renderPolicyOf(config),
107
+ onDone: info => events.emitDetached("render/done", info)
108
+ });
109
+ // ── 3. 适配器与账号 ───────────────────────────────────────────────────
110
+ const adapters = new AdapterRegistry({ logger });
111
+ const bots = new BotRegistry({ logger });
112
+ const createHost = createAdapterHostFactory({
113
+ logger,
114
+ kv: kv.namespace(KV_ADAPTER),
115
+ policy,
116
+ server: () => hooks.server,
117
+ // 不 await:适配器是在 socket 回调里调 dispatch 的,一条消息处理多久
118
+ // 都不该把下一条报文的读取堵住。`submit()` 契约上永不抛出,所以也不需要
119
+ // 在这里 catch —— 真出错了它自己会落日志并发 pipeline/error。
120
+ dispatch: (event, bot) => void dispatcher.submit(event, bot)
121
+ });
122
+ const accounts = new AccountManager({
123
+ logger,
124
+ kv: kv.namespace(KV_ACCOUNTS),
125
+ adapters,
126
+ bots,
127
+ createHost,
128
+ events,
129
+ sendPolicy: sendPolicyOf(config)
130
+ });
131
+ const logins = new LoginManager({
132
+ logger,
133
+ adapters,
134
+ createAccount: (adapterId, cfg, label) => accounts.create(adapterId, cfg, label)
135
+ });
136
+ // ── 4. 填进接缝 ───────────────────────────────────────────────────────
137
+ // 这五个在 app.ts 里原本是 unavailable*() 占位,插件调用它们会拿到一条
138
+ // "该子系统尚未装配"的错误;替换之后已加载的插件立刻看到真实现
139
+ hooks.commands = router;
140
+ hooks.middlewares = middlewares;
141
+ hooks.tasks = scheduler;
142
+ hooks.render = renderers;
143
+ hooks.adapters = adapters;
144
+ // hooks.bots.pick 不用动:app.ts 里那个闭包读的是 subsystems.bots,现取现用
145
+ subsystems.adapters = adapters;
146
+ subsystems.bots = bots;
147
+ subsystems.accounts = accounts;
148
+ subsystems.registries = {
149
+ commands: () => router.list(),
150
+ tasks: () => scheduler.list(),
151
+ middlewares: () => middlewares.list()
152
+ };
153
+ // ── 5. 账号上线时机 ───────────────────────────────────────────────────
154
+ // 挂在 app/ready 而不是就地连接:适配器由插件注册,插件全部加载完之前连接
155
+ // 必然因"适配器未注册"白失败一次(见 adapter/accounts.ts 的 load 注释)。
156
+ deps.own(events.on("app/ready", async () => {
157
+ // 只 await load():账号列表要在 start() 返回前就位(WebUI 与插件的
158
+ // app/ready 都可能立刻去读它)。而"连上"取决于对端 —— NapCat 没启动时
159
+ // 一次 TCP 连接可能耗时数十秒,使 start() 阻塞于此只会令使用者误判框架已无响应。
160
+ // 连接失败有退避重连兜着,插件想知道上线时机请听 bot/online。
161
+ await accounts.load();
162
+ void accounts.startAll().catch((err) => {
163
+ log.error("启动账号时出现未预期的错误", err);
164
+ });
165
+ }));
166
+ // ── 6. 停机回收 ───────────────────────────────────────────────────────
167
+ // 登记顺序 = 从内到外,`App.stop()` 逆序执行(见 kernel/app.ts 第 3 步),
168
+ // 于是实际关闭顺序是:账号 → 登录会话 → 管线残留 → 调度器 → 渲染器。
169
+ // 先断账号,此后不再有新事件进管线;渲染器最后关,因为在它之前的每一步
170
+ // 都还可能要出一张图(比如插件在 app/stopping 里发一条告别消息)。
171
+ deps.own(() => renderers.stop());
172
+ deps.own(() => scheduler.stop());
173
+ deps.own(() => {
174
+ // 兜底清扫:正常路径下插件卸载已逐条完整摘除,此处防的是越界注册
175
+ middlewares.clear();
176
+ router.clear();
177
+ prompts.clear();
178
+ cooldown.clear();
179
+ });
180
+ deps.own(() => logins.stop());
181
+ deps.own(() => accounts.stop());
182
+ return {
183
+ prompts,
184
+ factory,
185
+ middlewares,
186
+ router,
187
+ cooldown,
188
+ dispatcher,
189
+ scheduler,
190
+ renderers,
191
+ adapters,
192
+ bots,
193
+ accounts,
194
+ logins
195
+ };
196
+ }
197
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/kernel/runtime.ts"],"names":[],"mappings":"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"}