@shgroup/dsh-serenity-hooks 1.57.0 → 1.57.2

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.
@@ -3,14 +3,16 @@
3
3
  *
4
4
  * ## 现状 → 本模块要收掉什么(取证:`…/acc-c4c5-current-state.md` §①/§③ 3.1)
5
5
  *
6
- * 插件自己 spawn 了**四个** node:http 监听器(B 3081 网关 / C 3082 微信发送 / D 3099 Skiff 调试
7
- * / E 3100 ACP+问答)。此前四处各写一份同款样板:`createServer` + `server.once('error')` +
6
+ * 插件自己 spawn 了**三个** node:http 监听器(B 3081 网关 / C 3082 微信发送 / D 3099 Skiff 调试)。
7
+ * ⚠️ **2026-10-15 变更**:原为四个(含 **E 3100 ACP+问答**),E 已随 owner「砍掉外部问答」令**整面退役**
8
+ * ⇒ 仍保有面 B/C/D 三个;本段保留"当年是四个"的记述,因为下方"两套拆卸"的病史由它解释。
9
+ * 此前四处各写一份同款样板:`createServer` + `server.once('error')` +
8
10
  * `listen(port, host)` + 模块级 `active` 变量 + `close()`;拆卸也分裂成**两套**——
9
11
  * `seams/lifecycle.ts` 有一个聚合 disposer,而 `gateway.ts` 与 `weixin-send-api.ts`
10
12
  * **各自另注册**一个(D/E 干脆没有自己的 disposer)。
11
13
  *
12
14
  * 本模块把"listener 生命周期"收成一处:**active 表 + 统一 listen/close + 统一错误与端口占用
13
- * 处理**。四个面各自只提供 `{ name, port, host, enabled, handler }`。
15
+ * 处理**。各面各自只提供 `{ name, port, host, enabled, handler }`。
14
16
  *
15
17
  * ## 🔴 共享的是「生命周期与样板」,**绝不是**「路由 / 监听器 / 鉴权」
16
18
  *
@@ -18,12 +20,12 @@
18
20
  * · **A ↔ C 解耦**(`weixin-send-api.ts:4-7`):3080 会被 3081 原样反代(连请求头),
19
21
  * 把 3082 的端点挂到 3080 上 = 已登录的外部家庭账号即可冒充 bot 发消息
20
22
  * ⇒ 本模块**不提供**"把面挂到别的面"的能力,也不共享路由表;
21
- * · **E ↔ D** 共用会话核心(acp-core → skiff-core)但各自独立 listener + 独立路由/HTML;
23
+ * · (原 **E ↔ D** 共用会话核心但各自独立 listener 一条,**随 E 退役删除**);
22
24
  * · **B 是 A 的代理宿主**(把请求打到 `127.0.0.1:<主端口>`),不是另一个路由面。
23
25
  *
24
26
  * ## 面 A(3080)不在本模块之列
25
27
  * 它是**宿主 DSH 主 WebUI**,插件只往上挂 `/serenity/*` 路由(`ctx.webServer.register`),
26
- * **插件不起这个 listener** ⇒ 面宿主只持有 B/C/D/E 四个自起面。
28
+ * **插件不起这个 listener** ⇒ 面宿主只持有 B/C/D 三个自起面。
27
29
  *
28
30
  * ## 两个入口的分工(这是本模块唯一的"抽象决策",别混)
29
31
  * · {@link startFace} —— **机械启动**:把一个 handler 绑到 `host:port` 上。同名面若已在监听,
package/lib/index.d.ts CHANGED
@@ -129,11 +129,6 @@ export interface Config {
129
129
  enabled?: boolean;
130
130
  debugPort?: number;
131
131
  };
132
- /** F4c ACP(实验性):HTTP JSON-RPC 端点启停(entry 默认值,运行时经 DSH settings) */
133
- acp?: {
134
- enabled?: boolean;
135
- httpPort?: number;
136
- };
137
132
  /** v1.30.12 web_fetch provider 接管(fake-ip / TUN 网络:宿主内置 provider 判「非公网」恒拒) */
138
133
  webFetch?: {
139
134
  enabled?: boolean;
@@ -173,12 +168,6 @@ export interface Config {
173
168
  skiffEnabled?: Volatile<boolean | undefined>;
174
169
  /** F4 Skiff 调试端口(面板层;部署层同义键 = `skiff.debugPort`) */
175
170
  skiffDebugPort?: Volatile<number | undefined>;
176
- /** F4c ACP HTTP 端点总开关(面板层;部署层同义键 = `acp.enabled`) */
177
- acpEnabled?: Volatile<boolean | undefined>;
178
- /** F4c ACP HTTP 端口(面板层;部署层同义键 = `acp.httpPort`) */
179
- acpHttpPort?: Volatile<number | undefined>;
180
- /** F4d 建议问答页总开关(面板层;无部署层同义键) */
181
- publicAskEnabled?: Volatile<boolean | undefined>;
182
171
  /** CRO(轨迹自编程唤起)总闸(面板层;无部署层同义键;缺省开) */
183
172
  croEnabled?: Volatile<boolean | undefined>;
184
173
  /** 无人值守代理回复总闸(面板层;无部署层同义键;缺省关) */
@@ -221,13 +210,6 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
221
210
  enabled: z<boolean, boolean, "defined">;
222
211
  debugPort: z<number, number, "defined">;
223
212
  }>>, "plain">;
224
- acp: z<Schemastery.ObjectS<NoInfer<{
225
- enabled: z<boolean, boolean, "defined">;
226
- httpPort: z<number, number, "defined">;
227
- }>>, Schemastery.ObjectT<NoInfer<{
228
- enabled: z<boolean, boolean, "defined">;
229
- httpPort: z<number, number, "defined">;
230
- }>>, "plain">;
231
213
  webFetch: z<Schemastery.ObjectS<NoInfer<{
232
214
  enabled: z<boolean, boolean, "defined">;
233
215
  }>>, Schemastery.ObjectT<NoInfer<{
@@ -279,9 +261,6 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
279
261
  rebuildThresholdK: z<number, number, "volatile">;
280
262
  skiffEnabled: z<boolean, boolean, "volatile">;
281
263
  skiffDebugPort: z<number, number, "volatile">;
282
- acpEnabled: z<boolean, boolean, "volatile">;
283
- acpHttpPort: z<number, number, "volatile">;
284
- publicAskEnabled: z<boolean, boolean, "volatile">;
285
264
  croEnabled: z<boolean, boolean, "volatile">;
286
265
  unattendedEnabled: z<boolean, boolean, "volatile">;
287
266
  diagramEnabled: z<boolean, boolean, "volatile">;
@@ -314,13 +293,6 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
314
293
  enabled: z<boolean, boolean, "defined">;
315
294
  debugPort: z<number, number, "defined">;
316
295
  }>>, "plain">;
317
- acp: z<Schemastery.ObjectS<NoInfer<{
318
- enabled: z<boolean, boolean, "defined">;
319
- httpPort: z<number, number, "defined">;
320
- }>>, Schemastery.ObjectT<NoInfer<{
321
- enabled: z<boolean, boolean, "defined">;
322
- httpPort: z<number, number, "defined">;
323
- }>>, "plain">;
324
296
  webFetch: z<Schemastery.ObjectS<NoInfer<{
325
297
  enabled: z<boolean, boolean, "defined">;
326
298
  }>>, Schemastery.ObjectT<NoInfer<{
@@ -372,9 +344,6 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
372
344
  rebuildThresholdK: z<number, number, "volatile">;
373
345
  skiffEnabled: z<boolean, boolean, "volatile">;
374
346
  skiffDebugPort: z<number, number, "volatile">;
375
- acpEnabled: z<boolean, boolean, "volatile">;
376
- acpHttpPort: z<number, number, "volatile">;
377
- publicAskEnabled: z<boolean, boolean, "volatile">;
378
347
  croEnabled: z<boolean, boolean, "volatile">;
379
348
  unattendedEnabled: z<boolean, boolean, "volatile">;
380
349
  diagramEnabled: z<boolean, boolean, "volatile">;