@wingsky-1/dsh-decision-gateway 0.2.6
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 +21 -0
- package/README.en.md +56 -0
- package/README.md +56 -0
- package/cordis.patch.yml +7 -0
- package/lib/THIRD-PARTY-LICENSES +35 -0
- package/lib/client/api/contract.d.ts +37 -0
- package/lib/client/api/interface.d.ts +9 -0
- package/lib/client/api/routes.d.ts +11 -0
- package/lib/client/index.d.ts +8 -0
- package/lib/client/locale.d.ts +31 -0
- package/lib/client/locales.d.ts +122 -0
- package/lib/client/settings/card.d.ts +7 -0
- package/lib/client/settings/connection.d.ts +10 -0
- package/lib/client/settings/format.d.ts +4 -0
- package/lib/client/settings/history.d.ts +9 -0
- package/lib/client/settings/presets.d.ts +9 -0
- package/lib/client/settings/prob.d.ts +10 -0
- package/lib/client.js +1518 -0
- package/lib/index.d.ts +32 -0
- package/lib/index.js +3142 -0
- package/lib/server/api/deps.d.ts +53 -0
- package/lib/server/api/impl/handlers.d.ts +11 -0
- package/lib/server/api/impl/route.d.ts +28 -0
- package/lib/server/api/impl/service.d.ts +4 -0
- package/lib/server/api/interface.d.ts +3 -0
- package/lib/server/config/deps.d.ts +32 -0
- package/lib/server/config/impl/envelope.d.ts +9 -0
- package/lib/server/config/impl/model.d.ts +54 -0
- package/lib/server/config/impl/paths.d.ts +12 -0
- package/lib/server/config/impl/service.d.ts +37 -0
- package/lib/server/config/interface.d.ts +12 -0
- package/lib/server/history/deps.d.ts +25 -0
- package/lib/server/history/impl/entry.d.ts +29 -0
- package/lib/server/history/impl/hash.d.ts +8 -0
- package/lib/server/history/impl/paths.d.ts +2 -0
- package/lib/server/history/impl/redact.d.ts +2 -0
- package/lib/server/history/impl/service.d.ts +30 -0
- package/lib/server/history/interface.d.ts +4 -0
- package/lib/server/store/deps.d.ts +6 -0
- package/lib/server/store/impl/io.d.ts +24 -0
- package/lib/server/store/interface.d.ts +4 -0
- package/lib/server/tools/deps.d.ts +83 -0
- package/lib/server/tools/impl/client.d.ts +62 -0
- package/lib/server/tools/impl/define.d.ts +30 -0
- package/lib/server/tools/impl/precheck.d.ts +8 -0
- package/lib/server/tools/impl/probe.d.ts +24 -0
- package/lib/server/tools/impl/semaphore.d.ts +4 -0
- package/lib/server/tools/impl/service.d.ts +18 -0
- package/lib/server/tools/impl/validate.d.ts +17 -0
- package/lib/server/tools/interface.d.ts +7 -0
- package/lib/server/upgrade/deps.d.ts +37 -0
- package/lib/server/upgrade/impl/service.d.ts +13 -0
- package/lib/server/upgrade/impl/steps.d.ts +3 -0
- package/lib/server/upgrade/interface.d.ts +6 -0
- package/lib/shared/contract.d.ts +184 -0
- package/lib/shared/interface.d.ts +7 -0
- package/package.json +99 -0
- package/shared/client/ensure-style.d.ts +21 -0
- package/shared/client/i18n.d.ts +15 -0
- package/shared/dsh-home.d.ts +15 -0
- package/shared/host-utils.d.ts +65 -0
- package/shared/loopback.d.ts +21 -0
- package/shared/paths.d.ts +12 -0
- package/shared/settings-namespace.d.ts +82 -0
- package/shared/sse-hub.d.ts +76 -0
- package/shared/upgrade-tick.d.ts +11 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { ServerResponse } from "node:http";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 连接表项状态(stalledAt 缺省 = 未 stalled)。
|
|
5
|
+
* failStreak:连续写抛错次数(≥3 ≈ 3 心跳周期判死,对齐 dsh-notifier 原版)。
|
|
6
|
+
*/
|
|
7
|
+
export interface SseConnState {
|
|
8
|
+
/** 连续写抛错次数。 */
|
|
9
|
+
failStreak: number;
|
|
10
|
+
/** 自上次成功写/心跳以来的"写被拒"起始时刻(ms epoch;缺省 = 未 stalled)。 */
|
|
11
|
+
stalledAt?: number;
|
|
12
|
+
/** 注册时刻(ms epoch;maxAge 轮换依据)。 */
|
|
13
|
+
registeredAt: number;
|
|
14
|
+
/** 最近一次成功写时刻(ms epoch;idle 判定依据)。 */
|
|
15
|
+
lastWriteAt: number;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** 回收/淘汰原因(health 观测 + 调试)。`dispose` = 卸载时统一关连接那一次。 */
|
|
19
|
+
export type SseEvictReason = "close" | "error" | "stalled" | "maxage" | "destroyed" | "dispose";
|
|
20
|
+
|
|
21
|
+
/** evict 原因计数(health 观测:先量化残留构成再调参)。键集与 `SseEvictReason` 一一对应。 */
|
|
22
|
+
export interface SseEvictStats {
|
|
23
|
+
close: number;
|
|
24
|
+
error: number;
|
|
25
|
+
stalled: number;
|
|
26
|
+
maxage: number;
|
|
27
|
+
destroyed: number;
|
|
28
|
+
dispose: number;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** 连接健康观测:排障用明细,**故意不进 `/health`**——它随连接数增长,
|
|
32
|
+
* 而 `/health` 是常量大小的聚合面且经 lan-proxy 对局域网可见。真要暴露请单开路由。 */
|
|
33
|
+
export interface SseConnHealth {
|
|
34
|
+
/** 连接已存活时长(ms)。 */
|
|
35
|
+
ageMs: number;
|
|
36
|
+
/** 距最近成功写已过去时长(ms;-1 = 从未写过)。 */
|
|
37
|
+
lastWriteAgoMs: number;
|
|
38
|
+
/** 当前 stalled 持续时长(ms;-1 = 未 stalled)。 */
|
|
39
|
+
stalledMs: number;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** createSseHub 选项。 */
|
|
43
|
+
export interface SseHubOptions {
|
|
44
|
+
/** 心跳间隔(默认 30s;测试注入短值)。 */
|
|
45
|
+
heartbeatMs?: number;
|
|
46
|
+
/** stalled 回收窗口:连续写被拒超过此时长即 evict(默认 90s)。 */
|
|
47
|
+
stalledTimeoutMs?: number;
|
|
48
|
+
/** maxAge 轮换上限(默认 120min;0 = 关闭轮换)。 */
|
|
49
|
+
maxAgeMs?: number;
|
|
50
|
+
/** maxAge 轮换的"空闲"门槛:距最近成功写超过此时长才算空闲(默认 15min)。 */
|
|
51
|
+
idleTimeoutMs?: number;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* SSE 连接枢纽(共享核心,取代各包自建连接表)。
|
|
56
|
+
* 连接表 + 心跳 + stalled/maxAge 主动回收(#515)。
|
|
57
|
+
* 广播负载生成留调用方:hub 只向全部连接写现成 text 帧并判死收口;
|
|
58
|
+
* ?since 补拉(notifier 路由层行为)不进 hub。
|
|
59
|
+
*/
|
|
60
|
+
export interface SseHub {
|
|
61
|
+
/** 注册一条 SSE 连接:入表 + 挂 close/error 监听。 */
|
|
62
|
+
register(res: ServerResponse): void;
|
|
63
|
+
/** 向全部连接写一帧 text(调用方生成,通常经 sseData());判死收口在内部。 */
|
|
64
|
+
broadcast(text: string): void;
|
|
65
|
+
/** 当前连接数(语义 = 服务端未释放句柄数)。 */
|
|
66
|
+
size(): number;
|
|
67
|
+
/** evict 原因计数(health 观测)。 */
|
|
68
|
+
evictStats(): SseEvictStats;
|
|
69
|
+
/** 连接健康快照(按注册序;排障用明细,不进 `/health`,理由见 `SseConnHealth`)。 */
|
|
70
|
+
connHealth(now?: number): SseConnHealth[];
|
|
71
|
+
/** 停止心跳定时器。 */
|
|
72
|
+
dispose(): void;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** 创建 SSE 枢纽并启动心跳(unref:不阻止进程退出)。 */
|
|
76
|
+
export declare function createSseHub(options: SseHubOptions): SseHub;
|