@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.
- package/LICENSE +661 -0
- package/README.md +51 -0
- package/dist/adapter/accounts.d.ts +174 -0
- package/dist/adapter/accounts.d.ts.map +1 -0
- package/dist/adapter/accounts.js +653 -0
- package/dist/adapter/accounts.js.map +1 -0
- package/dist/adapter/bots.d.ts +142 -0
- package/dist/adapter/bots.d.ts.map +1 -0
- package/dist/adapter/bots.js +454 -0
- package/dist/adapter/bots.js.map +1 -0
- package/dist/adapter/host.d.ts +114 -0
- package/dist/adapter/host.d.ts.map +1 -0
- package/dist/adapter/host.js +90 -0
- package/dist/adapter/host.js.map +1 -0
- package/dist/adapter/login.d.ts +174 -0
- package/dist/adapter/login.d.ts.map +1 -0
- package/dist/adapter/login.js +345 -0
- package/dist/adapter/login.js.map +1 -0
- package/dist/adapter/registry.d.ts +102 -0
- package/dist/adapter/registry.d.ts.map +1 -0
- package/dist/adapter/registry.js +150 -0
- package/dist/adapter/registry.js.map +1 -0
- package/dist/config/core-config.d.ts +151 -0
- package/dist/config/core-config.d.ts.map +1 -0
- package/dist/config/core-config.js +338 -0
- package/dist/config/core-config.js.map +1 -0
- package/dist/config/schema.d.ts +449 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +871 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/store.d.ts +184 -0
- package/dist/config/store.d.ts.map +1 -0
- package/dist/config/store.js +428 -0
- package/dist/config/store.js.map +1 -0
- package/dist/config/yaml.d.ts +23 -0
- package/dist/config/yaml.d.ts.map +1 -0
- package/dist/config/yaml.js +108 -0
- package/dist/config/yaml.js.map +1 -0
- package/dist/http/client.d.ts +82 -0
- package/dist/http/client.d.ts.map +1 -0
- package/dist/http/client.js +658 -0
- package/dist/http/client.js.map +1 -0
- package/dist/index.d.ts +77 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +94 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/app.d.ts +244 -0
- package/dist/kernel/app.d.ts.map +1 -0
- package/dist/kernel/app.js +654 -0
- package/dist/kernel/app.js.map +1 -0
- package/dist/kernel/kv-sink.d.ts +34 -0
- package/dist/kernel/kv-sink.d.ts.map +1 -0
- package/dist/kernel/kv-sink.js +25 -0
- package/dist/kernel/kv-sink.js.map +1 -0
- package/dist/kernel/policy.d.ts +77 -0
- package/dist/kernel/policy.d.ts.map +1 -0
- package/dist/kernel/policy.js +99 -0
- package/dist/kernel/policy.js.map +1 -0
- package/dist/kernel/runtime.d.ts +117 -0
- package/dist/kernel/runtime.d.ts.map +1 -0
- package/dist/kernel/runtime.js +197 -0
- package/dist/kernel/runtime.js.map +1 -0
- package/dist/kernel/sql-sink.d.ts +36 -0
- package/dist/kernel/sql-sink.d.ts.map +1 -0
- package/dist/kernel/sql-sink.js +114 -0
- package/dist/kernel/sql-sink.js.map +1 -0
- package/dist/logger/format.d.ts +67 -0
- package/dist/logger/format.d.ts.map +1 -0
- package/dist/logger/format.js +218 -0
- package/dist/logger/format.js.map +1 -0
- package/dist/logger/index.d.ts +97 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +363 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/rotate.d.ts +47 -0
- package/dist/logger/rotate.d.ts.map +1 -0
- package/dist/logger/rotate.js +242 -0
- package/dist/logger/rotate.js.map +1 -0
- package/dist/message/segment.d.ts +255 -0
- package/dist/message/segment.d.ts.map +1 -0
- package/dist/message/segment.js +510 -0
- package/dist/message/segment.js.map +1 -0
- package/dist/message/split.d.ts +34 -0
- package/dist/message/split.d.ts.map +1 -0
- package/dist/message/split.js +79 -0
- package/dist/message/split.js.map +1 -0
- package/dist/message/target.d.ts +29 -0
- package/dist/message/target.d.ts.map +1 -0
- package/dist/message/target.js +34 -0
- package/dist/message/target.js.map +1 -0
- package/dist/pipeline/cooldown.d.ts +84 -0
- package/dist/pipeline/cooldown.d.ts.map +1 -0
- package/dist/pipeline/cooldown.js +94 -0
- package/dist/pipeline/cooldown.js.map +1 -0
- package/dist/pipeline/dispatch.d.ts +98 -0
- package/dist/pipeline/dispatch.d.ts.map +1 -0
- package/dist/pipeline/dispatch.js +323 -0
- package/dist/pipeline/dispatch.js.map +1 -0
- package/dist/pipeline/event.d.ts +130 -0
- package/dist/pipeline/event.d.ts.map +1 -0
- package/dist/pipeline/event.js +538 -0
- package/dist/pipeline/event.js.map +1 -0
- package/dist/pipeline/middleware.d.ts +63 -0
- package/dist/pipeline/middleware.d.ts.map +1 -0
- package/dist/pipeline/middleware.js +174 -0
- package/dist/pipeline/middleware.js.map +1 -0
- package/dist/pipeline/prompt.d.ts +80 -0
- package/dist/pipeline/prompt.d.ts.map +1 -0
- package/dist/pipeline/prompt.js +155 -0
- package/dist/pipeline/prompt.js.map +1 -0
- package/dist/pipeline/router.d.ts +98 -0
- package/dist/pipeline/router.d.ts.map +1 -0
- package/dist/pipeline/router.js +489 -0
- package/dist/pipeline/router.js.map +1 -0
- package/dist/platform/detect.d.ts +24 -0
- package/dist/platform/detect.d.ts.map +1 -0
- package/dist/platform/detect.js +178 -0
- package/dist/platform/detect.js.map +1 -0
- package/dist/platform/paths.d.ts +38 -0
- package/dist/platform/paths.d.ts.map +1 -0
- package/dist/platform/paths.js +129 -0
- package/dist/platform/paths.js.map +1 -0
- package/dist/platform/system.d.ts +71 -0
- package/dist/platform/system.d.ts.map +1 -0
- package/dist/platform/system.js +242 -0
- package/dist/platform/system.js.map +1 -0
- package/dist/plugin/context.d.ts +92 -0
- package/dist/plugin/context.d.ts.map +1 -0
- package/dist/plugin/context.js +573 -0
- package/dist/plugin/context.js.map +1 -0
- package/dist/plugin/define.d.ts +92 -0
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/plugin/define.js +82 -0
- package/dist/plugin/define.js.map +1 -0
- package/dist/plugin/discover.d.ts +106 -0
- package/dist/plugin/discover.d.ts.map +1 -0
- package/dist/plugin/discover.js +254 -0
- package/dist/plugin/discover.js.map +1 -0
- package/dist/plugin/events.d.ts +109 -0
- package/dist/plugin/events.d.ts.map +1 -0
- package/dist/plugin/events.js +209 -0
- package/dist/plugin/events.js.map +1 -0
- package/dist/plugin/hooks.d.ts +266 -0
- package/dist/plugin/hooks.d.ts.map +1 -0
- package/dist/plugin/hooks.js +84 -0
- package/dist/plugin/hooks.js.map +1 -0
- package/dist/plugin/host.d.ts +160 -0
- package/dist/plugin/host.d.ts.map +1 -0
- package/dist/plugin/host.js +546 -0
- package/dist/plugin/host.js.map +1 -0
- package/dist/plugin/market.d.ts +264 -0
- package/dist/plugin/market.d.ts.map +1 -0
- package/dist/plugin/market.js +700 -0
- package/dist/plugin/market.js.map +1 -0
- package/dist/plugin/services.d.ts +116 -0
- package/dist/plugin/services.d.ts.map +1 -0
- package/dist/plugin/services.js +213 -0
- package/dist/plugin/services.js.map +1 -0
- package/dist/plugin/tar.d.ts +65 -0
- package/dist/plugin/tar.d.ts.map +1 -0
- package/dist/plugin/tar.js +277 -0
- package/dist/plugin/tar.js.map +1 -0
- package/dist/render/registry.d.ts +127 -0
- package/dist/render/registry.d.ts.map +1 -0
- package/dist/render/registry.js +306 -0
- package/dist/render/registry.js.map +1 -0
- package/dist/scheduler/index.d.ts +67 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/index.js +279 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/server/api.d.ts +179 -0
- package/dist/server/api.d.ts.map +1 -0
- package/dist/server/api.js +602 -0
- package/dist/server/api.js.map +1 -0
- package/dist/server/auth.d.ts +83 -0
- package/dist/server/auth.d.ts.map +1 -0
- package/dist/server/auth.js +178 -0
- package/dist/server/auth.js.map +1 -0
- package/dist/server/browse.d.ts +60 -0
- package/dist/server/browse.d.ts.map +1 -0
- package/dist/server/browse.js +187 -0
- package/dist/server/browse.js.map +1 -0
- package/dist/server/files.d.ts +27 -0
- package/dist/server/files.d.ts.map +1 -0
- package/dist/server/files.js +76 -0
- package/dist/server/files.js.map +1 -0
- package/dist/server/index.d.ts +189 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +1123 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/table.d.ts +105 -0
- package/dist/server/table.d.ts.map +1 -0
- package/dist/server/table.js +289 -0
- package/dist/server/table.js.map +1 -0
- package/dist/store/index.d.ts +50 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +120 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/json.d.ts +73 -0
- package/dist/store/json.d.ts.map +1 -0
- package/dist/store/json.js +174 -0
- package/dist/store/json.js.map +1 -0
- package/dist/store/kv.d.ts +126 -0
- package/dist/store/kv.d.ts.map +1 -0
- package/dist/store/kv.js +232 -0
- package/dist/store/kv.js.map +1 -0
- package/dist/store/level.d.ts +103 -0
- package/dist/store/level.d.ts.map +1 -0
- package/dist/store/level.js +119 -0
- package/dist/store/level.js.map +1 -0
- package/dist/store/memory.d.ts +61 -0
- package/dist/store/memory.d.ts.map +1 -0
- package/dist/store/memory.js +94 -0
- package/dist/store/memory.js.map +1 -0
- package/dist/store/sql.d.ts +142 -0
- package/dist/store/sql.d.ts.map +1 -0
- package/dist/store/sql.js +246 -0
- package/dist/store/sql.js.map +1 -0
- package/dist/testing/fake.d.ts +109 -0
- package/dist/testing/fake.d.ts.map +1 -0
- package/dist/testing/fake.js +196 -0
- package/dist/testing/fake.js.map +1 -0
- package/dist/testing/index.d.ts +16 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +16 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-adapter.d.ts +205 -0
- package/dist/testing/mock-adapter.d.ts.map +1 -0
- package/dist/testing/mock-adapter.js +309 -0
- package/dist/testing/mock-adapter.js.map +1 -0
- package/dist/util/deep.d.ts +108 -0
- package/dist/util/deep.d.ts.map +1 -0
- package/dist/util/deep.js +275 -0
- package/dist/util/deep.js.map +1 -0
- package/dist/util/defer.d.ts +107 -0
- package/dist/util/defer.d.ts.map +1 -0
- package/dist/util/defer.js +163 -0
- package/dist/util/defer.js.map +1 -0
- package/dist/util/dispose.d.ts +88 -0
- package/dist/util/dispose.d.ts.map +1 -0
- package/dist/util/dispose.js +143 -0
- package/dist/util/dispose.js.map +1 -0
- package/dist/util/duration.d.ts +28 -0
- package/dist/util/duration.d.ts.map +1 -0
- package/dist/util/duration.js +77 -0
- package/dist/util/duration.js.map +1 -0
- package/dist/util/fs.d.ts +110 -0
- package/dist/util/fs.d.ts.map +1 -0
- package/dist/util/fs.js +269 -0
- package/dist/util/fs.js.map +1 -0
- package/dist/util/id.d.ts +49 -0
- package/dist/util/id.d.ts.map +1 -0
- package/dist/util/id.js +87 -0
- package/dist/util/id.js.map +1 -0
- package/dist/util/lru.d.ts +74 -0
- package/dist/util/lru.d.ts.map +1 -0
- package/dist/util/lru.js +156 -0
- package/dist/util/lru.js.map +1 -0
- package/dist/util/queue.d.ts +64 -0
- package/dist/util/queue.d.ts.map +1 -0
- package/dist/util/queue.js +147 -0
- package/dist/util/queue.js.map +1 -0
- package/dist/util/text.d.ts +86 -0
- package/dist/util/text.d.ts.map +1 -0
- package/dist/util/text.js +182 -0
- package/dist/util/text.js.map +1 -0
- package/package.json +44 -0
- package/src/adapter/accounts.ts +758 -0
- package/src/adapter/bots.ts +582 -0
- package/src/adapter/host.ts +224 -0
- package/src/adapter/login.ts +481 -0
- package/src/adapter/registry.ts +202 -0
- package/src/config/core-config.test.ts +60 -0
- package/src/config/core-config.ts +401 -0
- package/src/config/schema.test.ts +179 -0
- package/src/config/schema.ts +1036 -0
- package/src/config/store.test.ts +245 -0
- package/src/config/store.ts +506 -0
- package/src/config/yaml.ts +119 -0
- package/src/http/client.test.ts +568 -0
- package/src/http/client.ts +777 -0
- package/src/index.ts +106 -0
- package/src/kernel/app.test.ts +267 -0
- package/src/kernel/app.ts +843 -0
- package/src/kernel/kv-sink.ts +58 -0
- package/src/kernel/policy.ts +120 -0
- package/src/kernel/runtime.test.ts +542 -0
- package/src/kernel/runtime.ts +307 -0
- package/src/kernel/sql-sink.ts +154 -0
- package/src/logger/format.ts +259 -0
- package/src/logger/index.ts +427 -0
- package/src/logger/rotate.ts +265 -0
- package/src/message/segment.test.ts +335 -0
- package/src/message/segment.ts +569 -0
- package/src/message/split.ts +97 -0
- package/src/message/target.ts +48 -0
- package/src/pipeline/cooldown.ts +136 -0
- package/src/pipeline/dispatch.ts +419 -0
- package/src/pipeline/event.ts +735 -0
- package/src/pipeline/middleware.test.ts +426 -0
- package/src/pipeline/middleware.ts +199 -0
- package/src/pipeline/prompt.ts +212 -0
- package/src/pipeline/router.test.ts +432 -0
- package/src/pipeline/router.ts +575 -0
- package/src/platform/detect.ts +178 -0
- package/src/platform/paths.ts +147 -0
- package/src/platform/system.test.ts +102 -0
- package/src/platform/system.ts +289 -0
- package/src/plugin/context.test.ts +459 -0
- package/src/plugin/context.ts +757 -0
- package/src/plugin/define.test.ts +120 -0
- package/src/plugin/define.ts +142 -0
- package/src/plugin/discover.test.ts +253 -0
- package/src/plugin/discover.ts +353 -0
- package/src/plugin/events.test.ts +162 -0
- package/src/plugin/events.ts +266 -0
- package/src/plugin/hooks.ts +373 -0
- package/src/plugin/host.test.ts +696 -0
- package/src/plugin/host.ts +738 -0
- package/src/plugin/market.test.ts +781 -0
- package/src/plugin/market.ts +870 -0
- package/src/plugin/services.test.ts +135 -0
- package/src/plugin/services.ts +261 -0
- package/src/plugin/tar.test.ts +158 -0
- package/src/plugin/tar.ts +309 -0
- package/src/render/registry.test.ts +127 -0
- package/src/render/registry.ts +439 -0
- package/src/scheduler/index.ts +357 -0
- package/src/server/api.test.ts +802 -0
- package/src/server/api.ts +869 -0
- package/src/server/auth.ts +201 -0
- package/src/server/browse.test.ts +193 -0
- package/src/server/browse.ts +240 -0
- package/src/server/files.ts +97 -0
- package/src/server/index.test.ts +566 -0
- package/src/server/index.ts +1386 -0
- package/src/server/table.ts +351 -0
- package/src/store/index.ts +156 -0
- package/src/store/json.ts +198 -0
- package/src/store/kv.test.ts +307 -0
- package/src/store/kv.ts +256 -0
- package/src/store/level.ts +167 -0
- package/src/store/memory.ts +109 -0
- package/src/store/sql.test.ts +204 -0
- package/src/store/sql.ts +324 -0
- package/src/testing/fake.ts +297 -0
- package/src/testing/index.ts +15 -0
- package/src/testing/mock-adapter.ts +588 -0
- package/src/util/deep.ts +272 -0
- package/src/util/defer.ts +211 -0
- package/src/util/dispose.ts +169 -0
- package/src/util/duration.ts +82 -0
- package/src/util/fs.ts +279 -0
- package/src/util/id.ts +94 -0
- package/src/util/lru.ts +185 -0
- package/src/util/queue.ts +167 -0
- package/src/util/text.ts +189 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/kernel/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|