@dommaker/harness 1.8.0 → 1.9.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/CHANGELOG.md +18 -1
- package/README.md +1 -1
- package/dist/cli/commands/check.d.ts +8 -0
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +10 -11
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/status.d.ts +8 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +5 -7
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts +22 -0
- package/dist/cli/commands/sync-docs/capabilities-syncer.d.ts.map +1 -1
- package/dist/cli/commands/sync-docs/capabilities-syncer.js +113 -8
- package/dist/cli/commands/sync-docs/capabilities-syncer.js.map +1 -1
- package/dist/cli/commands/sync-docs/index.d.ts.map +1 -1
- package/dist/cli/commands/sync-docs/index.js +36 -4
- package/dist/cli/commands/sync-docs/index.js.map +1 -1
- package/dist/cli/state-io.d.ts +34 -0
- package/dist/cli/state-io.d.ts.map +1 -0
- package/dist/cli/state-io.js +71 -0
- package/dist/cli/state-io.js.map +1 -0
- package/dist/hooks/bootstrap.d.ts +9 -12
- package/dist/hooks/bootstrap.d.ts.map +1 -1
- package/dist/hooks/bootstrap.js +9 -31
- package/dist/hooks/bootstrap.js.map +1 -1
- package/dist/hooks/index.d.ts +5 -7
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -10
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/CONTEXT.md +2 -2
- package/src/__tests__/public-exports.test.ts +30 -4
- package/src/__tests__/public-type-surface.test.ts +0 -8
- package/src/cli/__tests__/state-io.test.ts +50 -0
- package/src/cli/commands/CONTEXT.md +4 -0
- package/src/cli/commands/__tests__/check-read-count.test.ts +3 -0
- package/src/cli/commands/__tests__/check.test.ts +20 -8
- package/src/cli/commands/__tests__/registry.test.ts +39 -3
- package/src/cli/commands/__tests__/status-extra.test.ts +25 -8
- package/src/cli/commands/__tests__/status.test.ts +46 -18
- package/src/cli/commands/__tests__/sync-docs-table-layout.test.ts +259 -0
- package/src/cli/commands/check.ts +20 -18
- package/src/cli/commands/status.ts +12 -7
- package/src/cli/commands/sync-docs/capabilities-syncer.ts +139 -9
- package/src/cli/commands/sync-docs/index.ts +41 -4
- package/src/cli/state-io.ts +53 -0
- package/src/hooks/CONTEXT.md +12 -22
- package/src/hooks/__tests__/bootstrap.test.ts +21 -70
- package/src/hooks/bootstrap.ts +9 -48
- package/src/hooks/index.ts +5 -20
- package/src/index.ts +1 -13
- package/dist/hooks/config.d.ts +0 -30
- package/dist/hooks/config.d.ts.map +0 -1
- package/dist/hooks/config.js +0 -34
- package/dist/hooks/config.js.map +0 -1
- package/dist/hooks/pipeline.d.ts +0 -36
- package/dist/hooks/pipeline.d.ts.map +0 -1
- package/dist/hooks/pipeline.js +0 -133
- package/dist/hooks/pipeline.js.map +0 -1
- package/dist/hooks/registry.d.ts +0 -70
- package/dist/hooks/registry.d.ts.map +0 -1
- package/dist/hooks/registry.js +0 -141
- package/dist/hooks/registry.js.map +0 -1
- package/dist/hooks/types.d.ts +0 -111
- package/dist/hooks/types.d.ts.map +0 -1
- package/dist/hooks/types.js +0 -9
- package/dist/hooks/types.js.map +0 -1
- package/src/__tests__/hooks-pipeline.test.ts +0 -201
- package/src/hooks/__tests__/config.test.ts +0 -19
- package/src/hooks/__tests__/pipeline.test.ts +0 -90
- package/src/hooks/__tests__/registry.test.ts +0 -115
- package/src/hooks/config.ts +0 -33
- package/src/hooks/pipeline.ts +0 -155
- package/src/hooks/registry.ts +0 -166
- package/src/hooks/types.ts +0 -118
package/dist/hooks/pipeline.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* HookPipeline — hook 有序执行、错误隔离、采样
|
|
4
|
-
*
|
|
5
|
-
* 执行顺序:before hooks → consumer operation → after hooks
|
|
6
|
-
* 每个 hook 独立 try/catch,单个 hook 失败不影���其他 hook。
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.HookPipeline = void 0;
|
|
10
|
-
class HookPipeline {
|
|
11
|
-
registry;
|
|
12
|
-
constructor(registry) {
|
|
13
|
-
this.registry = registry;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* 执行指定 phase 的所有 enabled hook
|
|
17
|
-
*
|
|
18
|
-
* @param phase hook 时机
|
|
19
|
-
* @param context 传递给每个 hook 的上下文
|
|
20
|
-
* @returns 管线执行结果
|
|
21
|
-
*/
|
|
22
|
-
async run(phase, context) {
|
|
23
|
-
const hooks = this.registry.getEnabled(phase);
|
|
24
|
-
const records = [];
|
|
25
|
-
const blockedBy = [];
|
|
26
|
-
const warnings = [];
|
|
27
|
-
let passed = true;
|
|
28
|
-
for (const hook of hooks) {
|
|
29
|
-
const record = await this.executeOne(hook, context);
|
|
30
|
-
records.push(record);
|
|
31
|
-
if (!record.passed) {
|
|
32
|
-
if (hook.errorStrategy === 'block') {
|
|
33
|
-
passed = false;
|
|
34
|
-
blockedBy.push(hook.name);
|
|
35
|
-
break; // blocking hook 失败,停止执行后续 hook
|
|
36
|
-
}
|
|
37
|
-
// 'warn':记录警告继续(有效集合仅 block/warn,策略由 HookConfig 必填声明)
|
|
38
|
-
warnings.push(hook.name);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return { passed, records, blockedBy, warnings };
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* 执行 before + after 全套管线
|
|
45
|
-
*
|
|
46
|
-
* @param context 上下文
|
|
47
|
-
* @param operation 业务操作(在 before 和 after 之间执行)
|
|
48
|
-
* @returns 管线结果 + 操作结果
|
|
49
|
-
*/
|
|
50
|
-
async runFull(context, operation) {
|
|
51
|
-
// 1. Before hooks
|
|
52
|
-
const beforeResult = await this.run('before', context);
|
|
53
|
-
if (!beforeResult.passed) {
|
|
54
|
-
return { pipelineResult: beforeResult };
|
|
55
|
-
}
|
|
56
|
-
// 2. Execute operation
|
|
57
|
-
let operationResult;
|
|
58
|
-
try {
|
|
59
|
-
operationResult = await operation();
|
|
60
|
-
}
|
|
61
|
-
catch (err) {
|
|
62
|
-
// 操作失败:仍执行 after hooks,但传递错误信息
|
|
63
|
-
const afterResult = await this.run('after', {
|
|
64
|
-
...context,
|
|
65
|
-
_operationError: err.message,
|
|
66
|
-
});
|
|
67
|
-
return {
|
|
68
|
-
pipelineResult: {
|
|
69
|
-
passed: false,
|
|
70
|
-
records: [...beforeResult.records, ...afterResult.records],
|
|
71
|
-
blockedBy: [...beforeResult.blockedBy, '_operation'],
|
|
72
|
-
warnings: [...beforeResult.warnings, ...afterResult.warnings],
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
// 3. After hooks
|
|
77
|
-
const afterResult = await this.run('after', context);
|
|
78
|
-
return {
|
|
79
|
-
pipelineResult: {
|
|
80
|
-
passed: beforeResult.passed && afterResult.passed,
|
|
81
|
-
records: [...beforeResult.records, ...afterResult.records],
|
|
82
|
-
blockedBy: [...beforeResult.blockedBy, ...afterResult.blockedBy],
|
|
83
|
-
warnings: [...beforeResult.warnings, ...afterResult.warnings],
|
|
84
|
-
},
|
|
85
|
-
operationResult,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* 执行单个 hook(带采样和错误隔离)
|
|
90
|
-
*/
|
|
91
|
-
async executeOne(hook, context) {
|
|
92
|
-
const startedAt = Date.now();
|
|
93
|
-
// 采样检查
|
|
94
|
-
if (hook.sampleRate !== undefined && hook.sampleRate < 1) {
|
|
95
|
-
if (Math.random() > hook.sampleRate) {
|
|
96
|
-
return {
|
|
97
|
-
hookName: hook.name,
|
|
98
|
-
phase: hook.phase,
|
|
99
|
-
startedAt,
|
|
100
|
-
completedAt: Date.now(),
|
|
101
|
-
durationMs: 0,
|
|
102
|
-
passed: true,
|
|
103
|
-
sampled: true,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
try {
|
|
108
|
-
const result = await hook.execute(context);
|
|
109
|
-
return {
|
|
110
|
-
hookName: hook.name,
|
|
111
|
-
phase: hook.phase,
|
|
112
|
-
startedAt,
|
|
113
|
-
completedAt: Date.now(),
|
|
114
|
-
durationMs: Date.now() - startedAt,
|
|
115
|
-
passed: result.passed !== false,
|
|
116
|
-
error: result.error,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
catch (err) {
|
|
120
|
-
return {
|
|
121
|
-
hookName: hook.name,
|
|
122
|
-
phase: hook.phase,
|
|
123
|
-
startedAt,
|
|
124
|
-
completedAt: Date.now(),
|
|
125
|
-
durationMs: Date.now() - startedAt,
|
|
126
|
-
passed: false,
|
|
127
|
-
error: err.message,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
exports.HookPipeline = HookPipeline;
|
|
133
|
-
//# sourceMappingURL=pipeline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/hooks/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/registry.d.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HookRegistry — hook 注册/注销/查询
|
|
3
|
-
*
|
|
4
|
-
* 纯簿记,无执行逻辑。线程不安全(Node.js 单线程)。
|
|
5
|
-
*/
|
|
6
|
-
import type { EffectiveHook, HookConfig, HookDefinition, HookPhase } from './types';
|
|
7
|
-
/**
|
|
8
|
-
* 注册表闭环双向校验(H5,复制 checker 闭环模式)
|
|
9
|
-
*
|
|
10
|
-
* 声明(HookConfig,consumer 的 per-hook 配置表)↔ 实现(注册的
|
|
11
|
-
* HookDefinition)加载期双向校验,任一不满足即抛错,拒绝静默缺失:
|
|
12
|
-
* - 引用未注册 → 抛错(声明了配置但没有注册实现 = 死配置)
|
|
13
|
-
* - 注册无定义 → 抛错(注册了实现但没有配置声明 = 死代码)
|
|
14
|
-
* - 重复声明 / 重复注册 → 抛错
|
|
15
|
-
*
|
|
16
|
-
* 断言限构建/测试期调用(harness 无内置 hook 定义,加载期闭环由
|
|
17
|
-
* consumer 在其注册点/测试中调用本函数),不进入运行时热路径,
|
|
18
|
-
* 不破坏 --help/--version 懒加载。消灭「hook 定义不注册 = 死代码」
|
|
19
|
-
* 类 prompt 规矩(studio 侧随动)。
|
|
20
|
-
*
|
|
21
|
-
* @throws 任一方向不满足时抛错
|
|
22
|
-
*/
|
|
23
|
-
export declare function assertHookRegistryClosed<C = unknown, R = unknown>(configs: readonly HookConfig[], hooks: readonly HookDefinition<C, R>[]): void;
|
|
24
|
-
export declare class HookRegistry<C = unknown, R = unknown> {
|
|
25
|
-
private hooks;
|
|
26
|
-
/**
|
|
27
|
-
* 注册 hook(同名覆盖)
|
|
28
|
-
*
|
|
29
|
-
* 有效 `enabled` / `errorStrategy` 由 HookConfig 填充——配置表是这两个
|
|
30
|
-
* 语义的唯一声明点(#159),定义与配置名称不一致即抛错。
|
|
31
|
-
*/
|
|
32
|
-
register(hook: HookDefinition<C, R>, config: HookConfig): void;
|
|
33
|
-
/**
|
|
34
|
-
* 批量注册(按 name 配对配置;有实现缺配置声明即抛错)
|
|
35
|
-
*/
|
|
36
|
-
registerAll(hooks: HookDefinition<C, R>[], configs: readonly HookConfig[]): void;
|
|
37
|
-
/**
|
|
38
|
-
* 注销 hook
|
|
39
|
-
*/
|
|
40
|
-
unregister(name: string): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* 获取单个 hook(含有效 enabled / errorStrategy)
|
|
43
|
-
*/
|
|
44
|
-
get(name: string): EffectiveHook<C, R> | undefined;
|
|
45
|
-
/**
|
|
46
|
-
* 获取指定时机、已启用的 hook,按优先级排序
|
|
47
|
-
*/
|
|
48
|
-
getEnabled(phase: HookPhase): EffectiveHook<C, R>[];
|
|
49
|
-
/**
|
|
50
|
-
* 列出所有 hook 名称
|
|
51
|
-
*/
|
|
52
|
-
listNames(): string[];
|
|
53
|
-
/**
|
|
54
|
-
* 列出所有 hook(含禁用)
|
|
55
|
-
*/
|
|
56
|
-
listAll(): EffectiveHook<C, R>[];
|
|
57
|
-
/**
|
|
58
|
-
* 启用/禁用 hook
|
|
59
|
-
*/
|
|
60
|
-
setEnabled(name: string, enabled: boolean): boolean;
|
|
61
|
-
/**
|
|
62
|
-
* 清空所有 hook
|
|
63
|
-
*/
|
|
64
|
-
clear(): void;
|
|
65
|
-
/**
|
|
66
|
-
* Hook 数量
|
|
67
|
-
*/
|
|
68
|
-
get size(): number;
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/hooks/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAC/D,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,KAAK,EAAE,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GACrC,IAAI,CAsCN;AAED,qBAAa,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IAChD,OAAO,CAAC,KAAK,CAA+C;IAE5D;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAa9D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI;IAahF;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IAIlD;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAMnD;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,OAAO,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAIhC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAOnD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
package/dist/hooks/registry.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* HookRegistry — hook 注册/注销/查询
|
|
4
|
-
*
|
|
5
|
-
* 纯簿记,无执行逻辑。线程不安全(Node.js 单线程)。
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.HookRegistry = void 0;
|
|
9
|
-
exports.assertHookRegistryClosed = assertHookRegistryClosed;
|
|
10
|
-
/**
|
|
11
|
-
* 注册表闭环双向校验(H5,复制 checker 闭环模式)
|
|
12
|
-
*
|
|
13
|
-
* 声明(HookConfig,consumer 的 per-hook 配置表)↔ 实现(注册的
|
|
14
|
-
* HookDefinition)加载期双向校验,任一不满足即抛错,拒绝静默缺失:
|
|
15
|
-
* - 引用未注册 → 抛错(声明了配置但没有注册实现 = 死配置)
|
|
16
|
-
* - 注册无定义 → 抛错(注册了实现但没有配置声明 = 死代码)
|
|
17
|
-
* - 重复声明 / 重复注册 → 抛错
|
|
18
|
-
*
|
|
19
|
-
* 断言限构建/测试期调用(harness 无内置 hook 定义,加载期闭环由
|
|
20
|
-
* consumer 在其注册点/测试中调用本函数),不进入运行时热路径,
|
|
21
|
-
* 不破坏 --help/--version 懒加载。消灭「hook 定义不注册 = 死代码」
|
|
22
|
-
* 类 prompt 规矩(studio 侧随动)。
|
|
23
|
-
*
|
|
24
|
-
* @throws 任一方向不满足时抛错
|
|
25
|
-
*/
|
|
26
|
-
function assertHookRegistryClosed(configs, hooks) {
|
|
27
|
-
const configNames = new Set();
|
|
28
|
-
for (const config of configs) {
|
|
29
|
-
if (configNames.has(config.name)) {
|
|
30
|
-
throw new Error(`[harness] hook 注册表闭环校验失败:hook 配置 "${config.name}" 重复声明。`);
|
|
31
|
-
}
|
|
32
|
-
configNames.add(config.name);
|
|
33
|
-
}
|
|
34
|
-
const hookNames = new Set();
|
|
35
|
-
for (const hook of hooks) {
|
|
36
|
-
if (hookNames.has(hook.name)) {
|
|
37
|
-
throw new Error(`[harness] hook 注册表闭环校验失败:hook "${hook.name}" 重复注册。`);
|
|
38
|
-
}
|
|
39
|
-
hookNames.add(hook.name);
|
|
40
|
-
}
|
|
41
|
-
for (const config of configs) {
|
|
42
|
-
if (!hookNames.has(config.name)) {
|
|
43
|
-
throw new Error(`[harness] hook 注册表闭环校验失败:hook 配置 "${config.name}" 引用的实现未注册。` +
|
|
44
|
-
`请注册同名 HookDefinition,或删除该配置声明。`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
for (const hook of hooks) {
|
|
48
|
-
if (!configNames.has(hook.name)) {
|
|
49
|
-
throw new Error(`[harness] hook 注册表闭环校验失败:hook "${hook.name}" 注册了实现但没有对应配置声明。` +
|
|
50
|
-
`请补齐 HookConfig 声明,或移除该实现。`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
class HookRegistry {
|
|
55
|
-
hooks = new Map();
|
|
56
|
-
/**
|
|
57
|
-
* 注册 hook(同名覆盖)
|
|
58
|
-
*
|
|
59
|
-
* 有效 `enabled` / `errorStrategy` 由 HookConfig 填充——配置表是这两个
|
|
60
|
-
* 语义的唯一声明点(#159),定义与配置名称不一致即抛错。
|
|
61
|
-
*/
|
|
62
|
-
register(hook, config) {
|
|
63
|
-
if (hook.name !== config.name) {
|
|
64
|
-
throw new Error(`[harness] hook 注册失败:定义 "${hook.name}" 与配置 "${config.name}" 名称不一致。`);
|
|
65
|
-
}
|
|
66
|
-
this.hooks.set(hook.name, {
|
|
67
|
-
...hook,
|
|
68
|
-
enabled: config.enabled,
|
|
69
|
-
errorStrategy: config.errorStrategy,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* 批量注册(按 name 配对配置;有实现缺配置声明即抛错)
|
|
74
|
-
*/
|
|
75
|
-
registerAll(hooks, configs) {
|
|
76
|
-
const configByName = new Map(configs.map(c => [c.name, c]));
|
|
77
|
-
for (const hook of hooks) {
|
|
78
|
-
const config = configByName.get(hook.name);
|
|
79
|
-
if (!config) {
|
|
80
|
-
throw new Error(`[harness] hook 注册失败:hook "${hook.name}" 没有对应的 HookConfig 声明。`);
|
|
81
|
-
}
|
|
82
|
-
this.register(hook, config);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* 注销 hook
|
|
87
|
-
*/
|
|
88
|
-
unregister(name) {
|
|
89
|
-
return this.hooks.delete(name);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* 获取单个 hook(含有效 enabled / errorStrategy)
|
|
93
|
-
*/
|
|
94
|
-
get(name) {
|
|
95
|
-
return this.hooks.get(name);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* 获取指定时机、已启用的 hook,按优先级排序
|
|
99
|
-
*/
|
|
100
|
-
getEnabled(phase) {
|
|
101
|
-
return Array.from(this.hooks.values())
|
|
102
|
-
.filter(h => h.phase === phase && h.enabled)
|
|
103
|
-
.sort((a, b) => (a.priority ?? 100) - (b.priority ?? 100));
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* 列出所有 hook 名称
|
|
107
|
-
*/
|
|
108
|
-
listNames() {
|
|
109
|
-
return Array.from(this.hooks.keys());
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* 列出所有 hook(含禁用)
|
|
113
|
-
*/
|
|
114
|
-
listAll() {
|
|
115
|
-
return Array.from(this.hooks.values());
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* 启用/禁用 hook
|
|
119
|
-
*/
|
|
120
|
-
setEnabled(name, enabled) {
|
|
121
|
-
const hook = this.hooks.get(name);
|
|
122
|
-
if (!hook)
|
|
123
|
-
return false;
|
|
124
|
-
hook.enabled = enabled;
|
|
125
|
-
return true;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* 清空所有 hook
|
|
129
|
-
*/
|
|
130
|
-
clear() {
|
|
131
|
-
this.hooks.clear();
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Hook 数量
|
|
135
|
-
*/
|
|
136
|
-
get size() {
|
|
137
|
-
return this.hooks.size;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
exports.HookRegistry = HookRegistry;
|
|
141
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/hooks/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/types.d.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hooks 类型定义
|
|
3
|
-
*
|
|
4
|
-
* 通用 hook 管线:注册、排序、错误隔离、采样。
|
|
5
|
-
* 无业务逻辑,consumer 自行定义 hook 名称和语义。
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Hook 执行时机
|
|
9
|
-
*/
|
|
10
|
-
export type HookPhase = 'before' | 'after' | 'around';
|
|
11
|
-
/**
|
|
12
|
-
* Hook 错误处理策略(有效集合:'block' | 'warn')
|
|
13
|
-
*
|
|
14
|
-
* #159 起原 'ignore' 退出有效面:策略的唯一声明点是 HookConfig(必填),
|
|
15
|
-
* 不存在「未声明 strategy」的运行时形态。
|
|
16
|
-
*/
|
|
17
|
-
export type HookErrorStrategy = 'block' | 'warn';
|
|
18
|
-
/**
|
|
19
|
-
* Hook 配置(G7 归一后形状:consumer 侧的 per-hook 声明表)
|
|
20
|
-
*
|
|
21
|
-
* 声明与实现构成注册表闭环(assertHookRegistryClosed 双向校验):
|
|
22
|
-
* - 声明(HookConfig)是「定义」侧:引用未注册实现 → 抛错
|
|
23
|
-
* - 注册(HookDefinition)是「实现」侧:注册无对应声明 → 抛错
|
|
24
|
-
*
|
|
25
|
-
* #159 起本表是 `enabled` / `errorStrategy` 的**唯一声明点**:
|
|
26
|
-
* HookDefinition 不再携带这两个字段,有效值在注册环节由本表填充
|
|
27
|
-
* (见 EffectiveHook),声明与实现两处值矛盾在构造上不可能出现。
|
|
28
|
-
*
|
|
29
|
-
* 对应 studio 侧 per-hook 运行时配置(hooks/config.ts 的 DEFAULTS)语义:
|
|
30
|
-
* blocking:true ↔ errorStrategy 'block'(失败阻断管线),
|
|
31
|
-
* blocking:false ↔ errorStrategy 'warn'(记录警告继续)——无损映射见
|
|
32
|
-
* config.ts 的 toErrorStrategy。
|
|
33
|
-
*/
|
|
34
|
-
export interface HookConfig {
|
|
35
|
-
/** Hook 唯一名称(须与注册的 HookDefinition.name 一致) */
|
|
36
|
-
name: string;
|
|
37
|
-
/** 是否启用(false 时不进入管线) */
|
|
38
|
-
enabled: boolean;
|
|
39
|
-
/** 错误策略:block=失败阻断管线,warn=记录警告继续 */
|
|
40
|
-
errorStrategy: HookErrorStrategy;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Hook 定义
|
|
44
|
-
*
|
|
45
|
-
* Consumer 自行选择 name(如 'beforeAgentExecute'),harness 只提供管线。
|
|
46
|
-
* `enabled` / `errorStrategy` 不在此处声明——唯一声明点是 HookConfig(#159)。
|
|
47
|
-
*/
|
|
48
|
-
export interface HookDefinition<C = unknown, R = unknown> {
|
|
49
|
-
/** Hook 唯一名称(consumer 定义语义) */
|
|
50
|
-
name: string;
|
|
51
|
-
/** 执行时机 */
|
|
52
|
-
phase: HookPhase;
|
|
53
|
-
/** 优先级(越小越先执行,默认 100) */
|
|
54
|
-
priority?: number;
|
|
55
|
-
/** 采样率 0-1(1=100% 执行,0.1=10% 采样) */
|
|
56
|
-
sampleRate?: number;
|
|
57
|
-
/** Hook 执行函数 */
|
|
58
|
-
execute: (context: C) => Promise<HookResult<R>>;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* 有效 hook = HookDefinition + 注册环节由 HookConfig 填充的有效值
|
|
62
|
-
*
|
|
63
|
-
* 管线与注册表的判定(启用过滤、block/warn 分派)只读本类型,
|
|
64
|
-
* 值来源单一(HookConfig),不存在第二声明点。
|
|
65
|
-
*/
|
|
66
|
-
export interface EffectiveHook<C = unknown, R = unknown> extends HookDefinition<C, R> {
|
|
67
|
-
/** 是否启用(来自 HookConfig.enabled) */
|
|
68
|
-
enabled: boolean;
|
|
69
|
-
/** 错误策略(来自 HookConfig.errorStrategy) */
|
|
70
|
-
errorStrategy: HookErrorStrategy;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Hook 执行结果
|
|
74
|
-
*/
|
|
75
|
-
export interface HookResult<R = unknown> {
|
|
76
|
-
/** 是否通过(blocking hook 必须返回 false 才阻断) */
|
|
77
|
-
passed: boolean;
|
|
78
|
-
/** 结果数据 */
|
|
79
|
-
data?: R;
|
|
80
|
-
/** 错误信息 */
|
|
81
|
-
error?: string;
|
|
82
|
-
/** 元数据(consumer 自行定义) */
|
|
83
|
-
metadata?: Record<string, unknown>;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Hook 执行记录
|
|
87
|
-
*/
|
|
88
|
-
export interface HookExecutionRecord {
|
|
89
|
-
hookName: string;
|
|
90
|
-
phase: HookPhase;
|
|
91
|
-
startedAt: number;
|
|
92
|
-
completedAt: number;
|
|
93
|
-
durationMs: number;
|
|
94
|
-
passed: boolean;
|
|
95
|
-
error?: string;
|
|
96
|
-
sampled?: boolean;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* 管线执行结果
|
|
100
|
-
*/
|
|
101
|
-
export interface PipelineResult {
|
|
102
|
-
/** 是否全部通过(blocking hook 任一失败 = false) */
|
|
103
|
-
passed: boolean;
|
|
104
|
-
/** 各 hook 执行记录 */
|
|
105
|
-
records: HookExecutionRecord[];
|
|
106
|
-
/** 失败的 blocking hook 名称列表 */
|
|
107
|
-
blockedBy: string[];
|
|
108
|
-
/** 警告 hook 名称列表 */
|
|
109
|
-
warnings: string[];
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,aAAa,EAAE,iBAAiB,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IACtD,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CACjD;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,CAAE,SAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,aAAa,EAAE,iBAAiB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB"}
|
package/dist/hooks/types.js
DELETED
package/dist/hooks/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|