@epoint-testtech/ep-stage-skill 0.0.4-alpha.0 → 0.0.5
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/SKILL.md +27 -27
- package/codex-skill/ep-stage/glue-create-project/SKILL.md +223 -186
- package/codex-skill/ep-stage/glue-generate-testcase/SKILL.md +275 -199
- package/codex-skill/ep-stage/glue-generate-testcase/examples/observable-testcase.json +40 -40
- package/codex-skill/ep-stage/glue-generate-testcase/references/testcase-schema.md +95 -112
- package/codex-skill/ep-stage/glue-generate-testcase/references/testcase-tpl.md +72 -0
- package/codex-skill/ep-stage/glue-run-test/SKILL.md +292 -249
- package/codex-skill/ep-stage/glue-run-test/references/ai-runtime-loop.md +30 -0
- package/codex-skill/ep-stage/glue-run-test/references/crud-pipeline.md +132 -145
- package/codex-skill/ep-stage/glue-run-test/references/gap-review-protocol.md +44 -43
- package/codex-skill/ep-stage/glue-run-test/references/harness-principles.md +46 -46
- package/codex-skill/ep-stage/glue-run-test/references/playwright-cli-odav.md +166 -0
- package/codex-skill/ep-stage/glue-run-test/scripts/extract-page-elements-eval.mjs +233 -0
- package/codex-skill/ep-stage/glue-run-test/scripts/generate-crud-spec.mjs +149 -149
- package/codex-skill/ep-stage/page-element-scan/SKILL.md +91 -0
- package/codex-skill/ep-stage/page-element-scan/evals/evals.json +37 -0
- package/codex-skill/ep-stage/page-element-scan/evals/fixtures/sample-list-page.html +85 -0
- package/codex-skill/ep-stage/page-element-scan/references/pagination-controls.md +153 -0
- package/codex-skill/ep-stage/page-element-scan/scripts/extract-page-elements-eval.mjs +233 -0
- package/codex-skill/ep-stage/page-element-scan/scripts/extract-page-elements.mjs +298 -0
- package/codex-skill/ep-stage/page-element-scan/scripts/scan-page.mjs +749 -0
- package/codex-skill/ep-stage/recording-to-glue/SKILL.md +28 -28
- package/codex-skill/ep-stage/scripts/validate-skill.mjs +98 -95
- package/dist/src/cli/generate-testcase.d.ts +18 -51
- package/dist/src/cli/generate-testcase.d.ts.map +1 -1
- package/dist/src/cli/generate-testcase.js +127 -131
- package/dist/src/cli/index.d.ts +11 -2
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +49 -16
- package/dist/src/cli/probe.d.ts +2 -0
- package/dist/src/cli/probe.d.ts.map +1 -1
- package/dist/src/cli/probe.js +239 -13
- package/dist/src/cli/run.d.ts +136 -29
- package/dist/src/cli/run.d.ts.map +1 -1
- package/dist/src/cli/run.js +494 -65
- package/dist/src/cli/spec.d.ts +18 -11
- package/dist/src/cli/spec.d.ts.map +1 -1
- package/dist/src/cli/spec.js +74 -20
- package/dist/src/contracts/crud-business-module.d.ts +6 -0
- package/dist/src/contracts/crud-business-module.d.ts.map +1 -1
- package/dist/src/contracts/glue-contract-v1.d.ts +98 -0
- package/dist/src/contracts/glue-contract-v1.d.ts.map +1 -0
- package/dist/src/contracts/glue-contract-v1.js +9 -0
- package/dist/src/contracts/inference-trace.d.ts +223 -0
- package/dist/src/contracts/inference-trace.d.ts.map +1 -0
- package/dist/src/contracts/inference-trace.js +12 -0
- package/dist/src/contracts/observable-chain.d.ts +4 -0
- package/dist/src/contracts/observable-chain.d.ts.map +1 -1
- package/dist/src/extractors/code-list-json5.d.ts +192 -0
- package/dist/src/extractors/code-list-json5.d.ts.map +1 -0
- package/dist/src/extractors/code-list-json5.js +91 -0
- package/dist/src/extractors/code-list.d.ts +3 -3
- package/dist/src/extractors/code-list.d.ts.map +1 -1
- package/dist/src/extractors/code-list.js +46 -11
- package/dist/src/extractors/html-page.d.ts +9 -0
- package/dist/src/extractors/html-page.d.ts.map +1 -1
- package/dist/src/extractors/html-page.js +26 -2
- package/dist/src/extractors/prd-extractor.d.ts +70 -0
- package/dist/src/extractors/prd-extractor.d.ts.map +1 -0
- package/dist/src/extractors/prd-extractor.js +248 -0
- package/dist/src/generators/agent-inferred-workflow-script.js +66 -66
- package/dist/src/generators/stage-skeleton-script.d.ts +87 -20
- package/dist/src/generators/stage-skeleton-script.d.ts.map +1 -1
- package/dist/src/generators/stage-skeleton-script.js +656 -238
- package/dist/src/index.d.ts +7 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/inference/module-hints-inference.d.ts +30 -0
- package/dist/src/inference/module-hints-inference.d.ts.map +1 -0
- package/dist/src/inference/module-hints-inference.js +363 -0
- package/dist/src/inference/source-analysis.d.ts +26 -0
- package/dist/src/inference/source-analysis.d.ts.map +1 -0
- package/dist/src/inference/source-analysis.js +258 -0
- package/dist/src/normalizers/crud-contract.d.ts +3 -0
- package/dist/src/normalizers/crud-contract.d.ts.map +1 -1
- package/dist/src/normalizers/crud-contract.js +3 -0
- package/dist/src/runtime/ai-runtime-trace.d.ts +88 -0
- package/dist/src/runtime/ai-runtime-trace.d.ts.map +1 -0
- package/dist/src/runtime/ai-runtime-trace.js +119 -0
- package/dist/src/testcase/button-interaction-inference.d.ts +37 -0
- package/dist/src/testcase/button-interaction-inference.d.ts.map +1 -0
- package/dist/src/testcase/button-interaction-inference.js +385 -0
- package/dist/src/testcase/contract-testcase-assembler.d.ts +44 -0
- package/dist/src/testcase/contract-testcase-assembler.d.ts.map +1 -0
- package/dist/src/testcase/contract-testcase-assembler.js +806 -0
- package/dist/src/testcase/prd-button-mapper.d.ts +72 -0
- package/dist/src/testcase/prd-button-mapper.d.ts.map +1 -0
- package/dist/src/testcase/prd-button-mapper.js +148 -0
- package/dist/src/testcase/runtime-context.d.ts +9 -0
- package/dist/src/testcase/runtime-context.d.ts.map +1 -0
- package/dist/src/testcase/runtime-context.js +1 -0
- package/dist/src/testcase/test-access.d.ts +38 -0
- package/dist/src/testcase/test-access.d.ts.map +1 -0
- package/dist/src/testcase/test-access.js +106 -0
- package/dist/src/testcase/testcase-execution-fields.d.ts +10 -0
- package/dist/src/testcase/testcase-execution-fields.d.ts.map +1 -0
- package/dist/src/testcase/testcase-execution-fields.js +1 -0
- package/dist/src/testcase/testcase-generator.d.ts.map +1 -1
- package/dist/src/testcase/testcase-generator.js +6 -0
- package/dist/src/testcase/testcase-markdown.d.ts +11 -0
- package/dist/src/testcase/testcase-markdown.d.ts.map +1 -0
- package/dist/src/testcase/testcase-markdown.js +181 -0
- package/dist/src/testcase/testcase-skeleton.d.ts +4 -0
- package/dist/src/testcase/testcase-skeleton.d.ts.map +1 -1
- package/dist/src/testcase/testcase-spec-assembly.d.ts +4 -0
- package/dist/src/testcase/testcase-spec-assembly.d.ts.map +1 -1
- package/dist/src/testcase/testcase-v1-draft.d.ts +58 -0
- package/dist/src/testcase/testcase-v1-draft.d.ts.map +1 -0
- package/dist/src/testcase/testcase-v1-draft.js +13 -0
- package/dist/src/validation/contract.d.ts +14 -0
- package/dist/src/validation/contract.d.ts.map +1 -0
- package/dist/src/validation/contract.js +132 -0
- package/dist/src/validation/credentials.d.ts +7 -2
- package/dist/src/validation/credentials.d.ts.map +1 -1
- package/dist/src/validation/credentials.js +15 -4
- package/dist/src/validation/index.d.ts +2 -0
- package/dist/src/validation/index.d.ts.map +1 -1
- package/dist/src/validation/index.js +2 -0
- package/dist/src/validation/inference-trace.d.ts +13 -0
- package/dist/src/validation/inference-trace.d.ts.map +1 -0
- package/dist/src/validation/inference-trace.js +31 -0
- package/dist/src/validation/testcase.d.ts +9 -7
- package/dist/src/validation/testcase.d.ts.map +1 -1
- package/dist/src/validation/testcase.js +181 -34
- package/docs/README.md +124 -134
- package/docs/mvp-usage-guide.md +298 -298
- package/examples/schemeresource-observable-docs/schemeresource.context.md +20 -20
- package/examples/schemeresource.module-hints.json +38 -38
- package/examples/schemeresource.observable.code_list.md +37 -37
- package/examples/zwplace-observable-docs/zwplace.context.md +16 -16
- package/examples/zwplace-placecategory-validation.json +29 -29
- package/examples/zwplace.module-hints.json +69 -69
- package/examples/zwplace.observable.code_list.md +37 -37
- package/package.json +2 -2
- package/dist/test/cli/extract-contract.test.d.ts +0 -2
- package/dist/test/cli/extract-contract.test.d.ts.map +0 -1
- package/dist/test/cli/extract-contract.test.js +0 -32
- package/dist/test/cli/generate-testcase.test.d.ts +0 -2
- package/dist/test/cli/generate-testcase.test.d.ts.map +0 -1
- package/dist/test/cli/generate-testcase.test.js +0 -130
- package/dist/test/cli/index.test.d.ts +0 -2
- package/dist/test/cli/index.test.d.ts.map +0 -1
- package/dist/test/cli/index.test.js +0 -93
- package/dist/test/cli/run.test.d.ts +0 -2
- package/dist/test/cli/run.test.d.ts.map +0 -1
- package/dist/test/cli/run.test.js +0 -149
- package/dist/test/cli/spec.test.d.ts +0 -2
- package/dist/test/cli/spec.test.d.ts.map +0 -1
- package/dist/test/cli/spec.test.js +0 -196
- package/dist/test/crud-contract.test.d.ts +0 -2
- package/dist/test/crud-contract.test.d.ts.map +0 -1
- package/dist/test/crud-contract.test.js +0 -819
- package/dist/test/gap-inference.test.d.ts +0 -2
- package/dist/test/gap-inference.test.d.ts.map +0 -1
- package/dist/test/gap-inference.test.js +0 -597
- package/dist/test/generalization.test.d.ts +0 -2
- package/dist/test/generalization.test.d.ts.map +0 -1
- package/dist/test/generalization.test.js +0 -73
- package/dist/test/material-inventory.test.d.ts +0 -2
- package/dist/test/material-inventory.test.d.ts.map +0 -1
- package/dist/test/material-inventory.test.js +0 -141
- package/dist/test/observable-chain.test.d.ts +0 -2
- package/dist/test/observable-chain.test.d.ts.map +0 -1
- package/dist/test/observable-chain.test.js +0 -123
- package/dist/test/observable-pipeline.test.d.ts +0 -2
- package/dist/test/observable-pipeline.test.d.ts.map +0 -1
- package/dist/test/observable-pipeline.test.js +0 -461
- package/dist/test/page-structure.test.d.ts +0 -2
- package/dist/test/page-structure.test.d.ts.map +0 -1
- package/dist/test/page-structure.test.js +0 -45
- package/dist/test/scenario-inference.test.d.ts +0 -2
- package/dist/test/scenario-inference.test.d.ts.map +0 -1
- package/dist/test/scenario-inference.test.js +0 -73
- package/dist/test/stage-context.test.d.ts +0 -2
- package/dist/test/stage-context.test.d.ts.map +0 -1
- package/dist/test/stage-context.test.js +0 -395
- package/dist/test/testcase-generator.test.d.ts +0 -2
- package/dist/test/testcase-generator.test.d.ts.map +0 -1
- package/dist/test/testcase-generator.test.js +0 -276
- package/dist/test/testcase-skeleton.test.d.ts +0 -2
- package/dist/test/testcase-skeleton.test.d.ts.map +0 -1
- package/dist/test/testcase-skeleton.test.js +0 -185
- package/dist/test/testcase-spec-assembly.test.d.ts +0 -2
- package/dist/test/testcase-spec-assembly.test.d.ts.map +0 -1
- package/dist/test/testcase-spec-assembly.test.js +0 -105
- package/dist/test/util/credentials.test.d.ts +0 -2
- package/dist/test/util/credentials.test.d.ts.map +0 -1
- package/dist/test/util/credentials.test.js +0 -64
- package/dist/test/util/i18n-testcase.test.d.ts +0 -2
- package/dist/test/util/i18n-testcase.test.d.ts.map +0 -1
- package/dist/test/util/i18n-testcase.test.js +0 -119
- package/dist/test/util/softlink.test.d.ts +0 -2
- package/dist/test/util/softlink.test.d.ts.map +0 -1
- package/dist/test/util/softlink.test.js +0 -82
- package/dist/test/validation/credentials.test.d.ts +0 -2
- package/dist/test/validation/credentials.test.d.ts.map +0 -1
- package/dist/test/validation/credentials.test.js +0 -72
- package/dist/test/validation/projects-index.test.d.ts +0 -2
- package/dist/test/validation/projects-index.test.d.ts.map +0 -1
- package/dist/test/validation/projects-index.test.js +0 -48
- package/dist/test/validation/testcase.test.d.ts +0 -2
- package/dist/test/validation/testcase.test.d.ts.map +0 -1
- package/dist/test/validation/testcase.test.js +0 -129
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -7
package/dist/src/cli/spec.js
CHANGED
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import JSON5 from 'json5';
|
|
4
|
-
import {
|
|
4
|
+
import { generateStageSkeletonCrudSpecFromSlots } from '../generators/stage-skeleton-script.js';
|
|
5
|
+
import { validateContract } from '../validation/contract.js';
|
|
5
6
|
import { validateTestcase } from '../validation/testcase.js';
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* 胶水模式生成标记(头部注释,标识本段 spec 由 skeletonSlots + glue cases 组装)。
|
|
9
|
+
*/
|
|
10
|
+
const SKELETON_MARKER_LINE = '// === 胶水模式生成(基于 contract.skeletonSlots + glue cases)===';
|
|
11
|
+
/**
|
|
12
|
+
* spec 组装前的 testcase 就绪门禁(新协议,REQ-INFER-007)。
|
|
13
|
+
*
|
|
14
|
+
* 独立于 validateTestcase(纯 schema 校验),这里只判定
|
|
15
|
+
* "testcase 是否已通过人工审阅、可进入 spec 组装阶段"的 readiness 策略,
|
|
16
|
+
* 仅在 runSpec 内调用,不影响 run 子命令。
|
|
17
|
+
*
|
|
18
|
+
* 阻断条件(仅 cases 桶):
|
|
19
|
+
* - 任一 cases[].reviewStatus !== 'confirmed'(needs_review / blocked 均阻断)。
|
|
20
|
+
*
|
|
21
|
+
* **门禁边界**:
|
|
22
|
+
* 不因 uncoveredCandidates 的 ai/blocked/gap 阻断 spec 组装。
|
|
23
|
+
* 理由:gap 候选不影响 glue 骨架组装;blocked 只表示 AI 运行态可能无法补齐。
|
|
24
|
+
*
|
|
25
|
+
* @param testcase - 已通过 validateTestcase 的 EpStageTestcaseV1Draft。
|
|
26
|
+
* @throws 存在未确认 glue 用例时抛中文错误。
|
|
27
|
+
*/
|
|
28
|
+
function assertTestcaseReadyForSpec(testcase) {
|
|
29
|
+
const unconfirmed = testcase.cases.find((c) => c.reviewStatus !== 'confirmed');
|
|
30
|
+
if (unconfirmed) {
|
|
31
|
+
throw new Error(`testcase.json5 存在未确认用例(needs_review/blocked),请逐条审阅置为 confirmed 后再生成 spec(caseId=${unconfirmed.caseId},reviewStatus=${unconfirmed.reviewStatus})`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
7
34
|
/**
|
|
8
35
|
* 解析 spec 子命令参数。
|
|
9
36
|
*
|
|
@@ -29,28 +56,34 @@ export function parseSpecArgs(argv) {
|
|
|
29
56
|
return { testcase: result.testcase, out: result.out };
|
|
30
57
|
}
|
|
31
58
|
/**
|
|
32
|
-
* 定位 testcase 旁挂的 contract.
|
|
33
|
-
*
|
|
34
|
-
* 当前 Sub-step 4 未保存该文件;本函数兜底返回 null,调用方需先用 dev/extract-contract 显式生成)。
|
|
59
|
+
* 定位 testcase 旁挂的 contract.json5(新协议,由 testcase 子命令产出):
|
|
60
|
+
* `<tests-dir>/.ep-stage/contract.json5`。
|
|
35
61
|
*
|
|
36
62
|
* @param testcasePath - testcase.json5 绝对路径。
|
|
37
|
-
* @returns contract.
|
|
63
|
+
* @returns contract.json5 绝对路径或 null。
|
|
38
64
|
*/
|
|
39
65
|
function locateContract(testcasePath) {
|
|
40
|
-
const candidate = path.join(path.dirname(testcasePath), '.ep-stage', 'contract.
|
|
66
|
+
const candidate = path.join(path.dirname(testcasePath), '.ep-stage', 'contract.json5');
|
|
41
67
|
return existsSync(candidate) ? candidate : null;
|
|
42
68
|
}
|
|
43
69
|
/**
|
|
44
|
-
* spec
|
|
70
|
+
* spec 子命令主体(新协议 v1-draft,REQ-SPEC-01):只生成 v1 初始版 .spec.ts,不启动浏览器。
|
|
45
71
|
*
|
|
46
|
-
* v1 = 仅
|
|
47
|
-
* run
|
|
72
|
+
* v1 = 仅 glue 骨架部分(顶部注释 `// === 胶水模式生成 ===`);
|
|
73
|
+
* run 子命令后续在底部 `// @stage-gap-append` 处追加 AI 推理段。
|
|
48
74
|
*
|
|
49
|
-
*
|
|
50
|
-
* 1.
|
|
51
|
-
* 2.
|
|
52
|
-
* 3.
|
|
53
|
-
* 4.
|
|
75
|
+
* 流程:
|
|
76
|
+
* 1. JSON5.parse 读 testcase.json5 → validateTestcase(v1-draft schema);
|
|
77
|
+
* 2. 门禁 assertTestcaseReadyForSpec(cases 全 confirmed;不阻断 uncoveredCandidates);
|
|
78
|
+
* 3. 定位 `.ep-stage/contract.json5`(不再是 contract.json;不存在则中文报错引导先跑 testcase 子命令);
|
|
79
|
+
* 4. JSON5.parse + validateContract;
|
|
80
|
+
* 5. 从 `contract.scenario.skeletonSlots.{crud,export}` 取槽位、
|
|
81
|
+
* 从 `testcase.{moduleId,moduleName}` 取模块 → 调
|
|
82
|
+
* {@link generateStageSkeletonCrudSpecFromSlots} 生成基线骨架脚本;
|
|
83
|
+
* 6. 头部插 SKELETON_MARKER_LINE 标记,写盘。
|
|
84
|
+
*
|
|
85
|
+
* 消费边界(REQ-INFER-008):只读 testcase.json5 + contract.json5,不读 inference-trace.json。
|
|
86
|
+
* 新链路零依赖旧 CrudBusinessModuleContract 类型。
|
|
54
87
|
*
|
|
55
88
|
* @param args - 解析后的参数。
|
|
56
89
|
* @returns SpecResult(含 version='v1' 显式标识阶段)。
|
|
@@ -58,14 +91,35 @@ function locateContract(testcasePath) {
|
|
|
58
91
|
export function runSpec(args) {
|
|
59
92
|
const testcaseRaw = JSON5.parse(readFileSync(args.testcase, 'utf8'));
|
|
60
93
|
const testcase = validateTestcase(testcaseRaw);
|
|
94
|
+
assertTestcaseReadyForSpec(testcase);
|
|
61
95
|
const contractPath = locateContract(args.testcase);
|
|
62
96
|
if (!contractPath) {
|
|
63
|
-
throw new Error(`未找到 ${path.dirname(args.testcase)}/.ep-stage/contract.
|
|
97
|
+
throw new Error(`未找到 ${path.dirname(args.testcase)}/.ep-stage/contract.json5。请先运行 \`ep-stage-skill testcase --code-list <p> --tests-dir <p>\` 生成 contract.json5。`);
|
|
98
|
+
}
|
|
99
|
+
const contractRaw = JSON5.parse(readFileSync(contractPath, 'utf8'));
|
|
100
|
+
const contract = validateContract(contractRaw);
|
|
101
|
+
// skeletonSlots.crud 形态对齐 StageSkeletonCrudFlowSlots(见 glue-contract-v1.ts 注释)。
|
|
102
|
+
const crudSlots = contract.scenario.skeletonSlots.crud;
|
|
103
|
+
const exportSlot = contract.scenario.skeletonSlots.export;
|
|
104
|
+
const childGridSlots = (contract.scenario.skeletonSlots.childGrids ?? []);
|
|
105
|
+
const directUrl = contract.base?.navigation?.directUrl ?? '';
|
|
106
|
+
if (!directUrl) {
|
|
107
|
+
throw new Error('contract.base.navigation.directUrl 缺失。glue 主链路已切换为直达链接模式,请重跑 `/glue-generate-testcase` 补齐 --direct-url 后再生成 spec。');
|
|
108
|
+
}
|
|
109
|
+
const primaryRole = testcase.testAccess?.requiredRoles?.[0];
|
|
110
|
+
if (!primaryRole) {
|
|
111
|
+
throw new Error('testcase.testAccess.requiredRoles 至少需要一个角色作为主执行角色,用于登录 credentials.json5 匹配。');
|
|
64
112
|
}
|
|
65
|
-
const
|
|
66
|
-
const script =
|
|
67
|
-
|
|
68
|
-
|
|
113
|
+
const requirementName = path.basename(path.dirname(args.testcase));
|
|
114
|
+
const script = generateStageSkeletonCrudSpecFromSlots({
|
|
115
|
+
moduleId: testcase.moduleId,
|
|
116
|
+
moduleLabel: testcase.moduleName,
|
|
117
|
+
directUrl,
|
|
118
|
+
primaryRole,
|
|
119
|
+
requirementName,
|
|
120
|
+
crudSlots,
|
|
121
|
+
exportSlot,
|
|
122
|
+
childGridSlots,
|
|
69
123
|
});
|
|
70
124
|
const body = `${SKELETON_MARKER_LINE}\n${script}`;
|
|
71
125
|
mkdirSync(path.dirname(args.out), { recursive: true });
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* @deprecated 旧 v2 协议(CrudBusinessModuleContract)残留。
|
|
3
|
+
* 新 glue 链路(generate-testcase / spec / run)已改用 `EpStageContractV1Draft`
|
|
4
|
+
* (见 `src/contracts/glue-contract-v1.ts`),不再引用本文件类型。
|
|
5
|
+
* 本文件仍被 gap-pipeline(src/gap-planner/*、src/cli/run-gap-pipeline.ts、
|
|
6
|
+
* src/cli/dev/extract-contract.ts)作为独立子系统使用,故保留;待该子系统迁移后整体清理。
|
|
7
|
+
*
|
|
2
8
|
* CRUD 业务模块契约类型定义
|
|
3
9
|
*
|
|
4
10
|
* 定义了 crud-business-module/v1 版本契约的所有类型。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-business-module.d.ts","sourceRoot":"","sources":["../../../src/contracts/crud-business-module.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"crud-business-module.d.ts","sourceRoot":"","sources":["../../../src/contracts/crud-business-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ep-stage-contract/v1-draft 类型定义。
|
|
3
|
+
*
|
|
4
|
+
* 本类型是新协议重构后的契约 schema(破旧立新,不再保留 v2 兼容)。
|
|
5
|
+
* contract.scenario.skeletonSlots.crud 形态对齐生成器渲染层的
|
|
6
|
+
* StageSkeletonCrudFlowSlots(moduleId/searchConditions/frames/locators/assertions),
|
|
7
|
+
* 但本层不跨层 import generators 类型,仅在注释说明对齐关系,避免循环依赖。
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* 测试用例生成策略:
|
|
11
|
+
* - glue:骨架命中,胶水编码组装产出
|
|
12
|
+
* - ai:AI Agent 推理产出
|
|
13
|
+
*/
|
|
14
|
+
export type GenerationStrategy = 'glue' | 'ai';
|
|
15
|
+
/**
|
|
16
|
+
* 子表列槽位。
|
|
17
|
+
*/
|
|
18
|
+
export type ChildGridColumnSlot = {
|
|
19
|
+
field: string;
|
|
20
|
+
label: string;
|
|
21
|
+
component: 'input' | 'listbox';
|
|
22
|
+
required: boolean;
|
|
23
|
+
modelRef?: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* 子表槽位。
|
|
27
|
+
*/
|
|
28
|
+
export type ChildGridFlowSlot = {
|
|
29
|
+
gridId: string;
|
|
30
|
+
label: string;
|
|
31
|
+
pageRole: 'add' | 'edit';
|
|
32
|
+
editMode: 'cell_edit' | 'row_button_dialog' | 'none';
|
|
33
|
+
columns: ChildGridColumnSlot[];
|
|
34
|
+
addRowButtonLabel?: string;
|
|
35
|
+
deleteSelectedButtonLabel?: string;
|
|
36
|
+
locators: {
|
|
37
|
+
container: string;
|
|
38
|
+
addRowButton: string;
|
|
39
|
+
deleteSelectedButton: string;
|
|
40
|
+
grid: string;
|
|
41
|
+
editWrapInput: string;
|
|
42
|
+
editWrapListboxTrigger: string;
|
|
43
|
+
editWrapListboxInput: string;
|
|
44
|
+
rowCheckboxByIndex: string;
|
|
45
|
+
cellByIndexAndField: string;
|
|
46
|
+
cellValueByIndexAndField: string;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* contract.json5 v1-draft 顶层类型。
|
|
51
|
+
*
|
|
52
|
+
* 字段语义见 docs/ep-stage-field-dictionary.md 与 SKILL.md。
|
|
53
|
+
* `scenario.skeletonSlots.crud` 形态对齐 StageSkeletonCrudFlowSlots。
|
|
54
|
+
*/
|
|
55
|
+
export type EpStageContractV1Draft = {
|
|
56
|
+
schemaVersion: 'ep-stage-contract/v1-draft';
|
|
57
|
+
contractId: string;
|
|
58
|
+
contractKind: string;
|
|
59
|
+
base: {
|
|
60
|
+
module: {
|
|
61
|
+
id: string;
|
|
62
|
+
label: string;
|
|
63
|
+
};
|
|
64
|
+
navigation: {
|
|
65
|
+
entryMode: 'directUrl' | 'menu';
|
|
66
|
+
menuPath?: string;
|
|
67
|
+
directUrl?: string;
|
|
68
|
+
};
|
|
69
|
+
credentials: {
|
|
70
|
+
source: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
scenario: {
|
|
74
|
+
kind: string;
|
|
75
|
+
searchFields: Array<{
|
|
76
|
+
field: string;
|
|
77
|
+
label: string;
|
|
78
|
+
component: string;
|
|
79
|
+
caseExpansion?: string[];
|
|
80
|
+
}>;
|
|
81
|
+
skeletonSlots: {
|
|
82
|
+
crud: Record<string, unknown>;
|
|
83
|
+
export: {
|
|
84
|
+
moduleId: string;
|
|
85
|
+
label: string;
|
|
86
|
+
mode: string;
|
|
87
|
+
};
|
|
88
|
+
childGrids?: ChildGridFlowSlot[];
|
|
89
|
+
};
|
|
90
|
+
gapCandidates: Array<{
|
|
91
|
+
gapId: string;
|
|
92
|
+
label: string;
|
|
93
|
+
generationStrategy: GenerationStrategy;
|
|
94
|
+
}>;
|
|
95
|
+
};
|
|
96
|
+
unresolvedSlots: Array<Record<string, unknown>>;
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=glue-contract-v1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glue-contract-v1.d.ts","sourceRoot":"","sources":["../../../src/contracts/glue-contract-v1.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,WAAW,GAAG,mBAAmB,GAAG,MAAM,CAAC;IACrD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;CACH,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,4BAA4B,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE;QACJ,MAAM,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACtC,UAAU,EAAE;YAAE,SAAS,EAAE,WAAW,GAAG,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvF,WAAW,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,KAAK,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,aAAa,EAAE;YAEb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9B,MAAM,EAAE;gBAAE,QAAQ,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1D,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;SAClC,CAAC;QACF,aAAa,EAAE,KAAK,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,kBAAkB,EAAE,kBAAkB,CAAC;SACxC,CAAC,CAAC;KACJ,CAAC;IACF,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ep-stage-contract/v1-draft 类型定义。
|
|
3
|
+
*
|
|
4
|
+
* 本类型是新协议重构后的契约 schema(破旧立新,不再保留 v2 兼容)。
|
|
5
|
+
* contract.scenario.skeletonSlots.crud 形态对齐生成器渲染层的
|
|
6
|
+
* StageSkeletonCrudFlowSlots(moduleId/searchConditions/frames/locators/assertions),
|
|
7
|
+
* 但本层不跨层 import generators 类型,仅在注释说明对齐关系,避免循环依赖。
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* inference-trace.json 的类型定义(Plan Task 2)。
|
|
3
|
+
*
|
|
4
|
+
* 本文件只定义 `InferenceTraceV1` 的顶层章节类型:
|
|
5
|
+
* - {@link MaterialInventoryTrace}:物料清单(Task 3 负责组装,本任务只定义类型)。
|
|
6
|
+
* - {@link SourceAnalysis}:源分析快照,由 {@link buildSourceAnalysis} 产出。
|
|
7
|
+
* - {@link ModuleHintsInference}:动态槽位推理过程,由 {@link inferModuleHintsFromMaterials} 产出。
|
|
8
|
+
* - {@link InferenceTraceV1}:以上章节 + coverageDiff + reasoningSummary 的总账。
|
|
9
|
+
*
|
|
10
|
+
* 设计原则(spec §8):顶层章节稳定,内部证据数组与 reason 允许扩展。
|
|
11
|
+
*/
|
|
12
|
+
import type { DeleteExpectedOutcome } from './crud-business-module.js';
|
|
13
|
+
/**
|
|
14
|
+
* 单个物料的解析状态。
|
|
15
|
+
*
|
|
16
|
+
* @property status - resolved 表示物料存在且可读;missing 表示未找到。
|
|
17
|
+
* @property value - 物料值(路径或解析结果);status 为 missing 时省略。
|
|
18
|
+
* @property reason - status 为 missing 时的缺失原因。
|
|
19
|
+
* @property evidence - 可选的来源证据(如"HTML 目录名")。
|
|
20
|
+
*/
|
|
21
|
+
export type MaterialSlotStatus = {
|
|
22
|
+
status: 'resolved' | 'missing';
|
|
23
|
+
value?: string;
|
|
24
|
+
reason?: string;
|
|
25
|
+
evidence?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* 物料清单章节(spec §7 materialInventory)。
|
|
29
|
+
*
|
|
30
|
+
* Task 3 在 probe.ts 中组装,本任务只定义类型。
|
|
31
|
+
*/
|
|
32
|
+
export type MaterialInventoryTrace = {
|
|
33
|
+
knowledgeRoot: string;
|
|
34
|
+
moduleId: MaterialSlotStatus;
|
|
35
|
+
menu: MaterialSlotStatus;
|
|
36
|
+
htmlFiles: MaterialSlotStatus[];
|
|
37
|
+
javaActionFiles: MaterialSlotStatus[];
|
|
38
|
+
docsFiles: MaterialSlotStatus[];
|
|
39
|
+
missing: string[];
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* 源分析模式。
|
|
43
|
+
*
|
|
44
|
+
* - `extracted`:存在 spec.yaml,契约从规格抽取。
|
|
45
|
+
* - `inferred`:无 spec.yaml,契约靠推理。
|
|
46
|
+
* - `mixed`:部分从规格抽取、部分靠推理。
|
|
47
|
+
* - `prd+html+java`:基于 PRD markdown + HTML 页面 + Java Action 推理(014 场景)。
|
|
48
|
+
*/
|
|
49
|
+
export type SourceAnalysisMode = 'extracted' | 'inferred' | 'mixed' | 'prd+html+java';
|
|
50
|
+
/**
|
|
51
|
+
* 源分析中登记的一个证据来源。
|
|
52
|
+
*
|
|
53
|
+
* @property kind - 来源类别(prd_markdown / spec_yaml / html / java_action 等)。
|
|
54
|
+
* @property path - 来源文件绝对路径。
|
|
55
|
+
* @property provides - 该来源为推理提供的能力(如 searchFields、backendMethods)。
|
|
56
|
+
*/
|
|
57
|
+
export type SourceAnalysisEntry = {
|
|
58
|
+
kind: string;
|
|
59
|
+
path: string;
|
|
60
|
+
provides: string[];
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* UI 侧信号(来自 HTML 页面抽取)。
|
|
64
|
+
*
|
|
65
|
+
* @property pageId - 所属页面标识。
|
|
66
|
+
* @property kind - 信号类别(field / button / gridColumn / dialog / structureSignal)。
|
|
67
|
+
* @property label - 可读标签。
|
|
68
|
+
* @property value - 信号值(字段名 / 按钮文字 / 列 field 等)。
|
|
69
|
+
*/
|
|
70
|
+
export type UiSignal = {
|
|
71
|
+
pageId: string;
|
|
72
|
+
kind: 'field' | 'button' | 'gridColumn' | 'dialog' | 'structureSignal';
|
|
73
|
+
label: string;
|
|
74
|
+
value?: string;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* 后端侧信号(来自 Java Action 抽取)。
|
|
78
|
+
*
|
|
79
|
+
* @property controllerName - 所属 Controller 名称。
|
|
80
|
+
* @property kind - 信号类别(method / callbackMessage)。
|
|
81
|
+
* @property value - 信号值(方法名 / 消息文本)。
|
|
82
|
+
*/
|
|
83
|
+
export type BackendSignal = {
|
|
84
|
+
controllerName: string;
|
|
85
|
+
kind: 'method' | 'callbackMessage';
|
|
86
|
+
value: string;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* 源分析章节(spec §7 sourceAnalysis)。
|
|
90
|
+
*
|
|
91
|
+
* @property mode - 源分析模式。
|
|
92
|
+
* @property confidence - 推理置信度。
|
|
93
|
+
* @property sources - 登记的证据来源列表。
|
|
94
|
+
* @property fields - 跨页面汇总的字段名候选。
|
|
95
|
+
* @property businessRules - 从 PRD/Java 中提取的业务规则线索。
|
|
96
|
+
* @property uiSignals - UI 侧信号汇总。
|
|
97
|
+
* @property backendSignals - 后端侧信号汇总。
|
|
98
|
+
* @property unresolved - 未解析的来源或缺口说明。
|
|
99
|
+
*/
|
|
100
|
+
export type SourceAnalysis = {
|
|
101
|
+
mode: SourceAnalysisMode;
|
|
102
|
+
confidence: 'low' | 'medium' | 'high';
|
|
103
|
+
sources: SourceAnalysisEntry[];
|
|
104
|
+
fields: string[];
|
|
105
|
+
businessRules: string[];
|
|
106
|
+
uiSignals: UiSignal[];
|
|
107
|
+
backendSignals: BackendSignal[];
|
|
108
|
+
unresolved: string[];
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* dataKey 推理过程记录。
|
|
112
|
+
*
|
|
113
|
+
* @property selectedField - 最终选定的主键字段。
|
|
114
|
+
* @property reason - 选择理由。
|
|
115
|
+
* @property evidence - 支撑证据(出现该字段的位置)。
|
|
116
|
+
*/
|
|
117
|
+
export type DataKeyInference = {
|
|
118
|
+
selectedField?: string;
|
|
119
|
+
reason?: string;
|
|
120
|
+
evidence: string[];
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* 搜索条件推理过程记录。
|
|
124
|
+
*
|
|
125
|
+
* @property field - 搜索条件字段名。
|
|
126
|
+
* @property component - 控件类型(input / listbox)。
|
|
127
|
+
* @property resolved - 是否已解析到可用值/策略。
|
|
128
|
+
* @property reason - 未解析时的原因。
|
|
129
|
+
*/
|
|
130
|
+
export type SearchConditionInference = {
|
|
131
|
+
field: string;
|
|
132
|
+
component?: 'input' | 'listbox';
|
|
133
|
+
resolved: boolean;
|
|
134
|
+
reason?: string;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* 删除策略推理过程记录。
|
|
138
|
+
*
|
|
139
|
+
* @property value - 推理出的删除策略。
|
|
140
|
+
* @property reason - 选择理由。
|
|
141
|
+
* @property evidence - 支撑证据(Java messages)。
|
|
142
|
+
*/
|
|
143
|
+
export type DeletePolicyInference = {
|
|
144
|
+
value?: DeleteExpectedOutcome;
|
|
145
|
+
reason?: string;
|
|
146
|
+
evidence: string[];
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* 自定义工作流推理过程记录。
|
|
150
|
+
*
|
|
151
|
+
* @property label - 工作流标签(工具栏按钮文字)。
|
|
152
|
+
* @property actionAlias - 关联的动作别名。
|
|
153
|
+
* @property expectedIntent - 预期业务意图。
|
|
154
|
+
* @property expectedAssertion - 预期断言(有 Java callback 时填)。
|
|
155
|
+
* @property resolved - 是否已解析到可用断言。
|
|
156
|
+
* @property reason - 未解析时的原因。
|
|
157
|
+
* @property evidence - 支撑证据。
|
|
158
|
+
*/
|
|
159
|
+
export type CustomWorkflowInference = {
|
|
160
|
+
label: string;
|
|
161
|
+
actionAlias?: string[];
|
|
162
|
+
expectedIntent?: string;
|
|
163
|
+
expectedAssertion?: string;
|
|
164
|
+
resolved: boolean;
|
|
165
|
+
reason?: string;
|
|
166
|
+
evidence: string[];
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* 动态槽位推理章节(spec §7 moduleHintsInference)。
|
|
170
|
+
*
|
|
171
|
+
* @property mode - inferred 表示纯推理;merged 表示与显式 hints 合并。
|
|
172
|
+
* @property confidence - 推理置信度。
|
|
173
|
+
* @property dataKey - dataKey 推理过程。
|
|
174
|
+
* @property searchConditions - 搜索条件推理过程。
|
|
175
|
+
* @property buttonAliases - 按钮别名归类。
|
|
176
|
+
* @property deletePolicy - 删除策略推理过程。
|
|
177
|
+
* @property assertionPolicy - 断言策略推理过程。
|
|
178
|
+
* @property customWorkflows - 自定义工作流推理过程。
|
|
179
|
+
* @property unresolved - 未解析槽位列表。
|
|
180
|
+
*/
|
|
181
|
+
export type ModuleHintsInference = {
|
|
182
|
+
mode: 'inferred' | 'merged' | 'explicit_override';
|
|
183
|
+
confidence: 'low' | 'medium' | 'high';
|
|
184
|
+
dataKey: DataKeyInference;
|
|
185
|
+
searchConditions: SearchConditionInference[];
|
|
186
|
+
buttonAliases: Record<string, string[]>;
|
|
187
|
+
deletePolicy: DeletePolicyInference;
|
|
188
|
+
assertionPolicy: Record<string, string>;
|
|
189
|
+
customWorkflows: CustomWorkflowInference[];
|
|
190
|
+
unresolved: string[];
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* inference-trace.json 总账类型(schemaVersion: inference-trace/v1)。
|
|
194
|
+
*
|
|
195
|
+
* @property schemaVersion - 固定为 'inference-trace/v1'。
|
|
196
|
+
* @property codeListPath - code_list.md 绝对路径。
|
|
197
|
+
* @property generatedAt - 生成时间(ISO 8601)。
|
|
198
|
+
* @property materialInventory - 物料清单章节。
|
|
199
|
+
* @property sourceAnalysis - 源分析章节。
|
|
200
|
+
* @property moduleHintsInference - 动态槽位推理章节。
|
|
201
|
+
* @property coverageDiff - 覆盖差异章节(Task 3 后续 reconcile,本任务用内联形状)。
|
|
202
|
+
* @property reasoningSummary - 推理摘要章节。
|
|
203
|
+
*/
|
|
204
|
+
export type InferenceTraceV1 = {
|
|
205
|
+
schemaVersion: 'inference-trace/v1';
|
|
206
|
+
codeListPath: string;
|
|
207
|
+
generatedAt: string;
|
|
208
|
+
materialInventory: MaterialInventoryTrace;
|
|
209
|
+
sourceAnalysis: SourceAnalysis;
|
|
210
|
+
moduleHintsInference: ModuleHintsInference;
|
|
211
|
+
coverageDiff: {
|
|
212
|
+
coveredActions: unknown[];
|
|
213
|
+
uncoveredCandidates: unknown[];
|
|
214
|
+
needsReview: string[];
|
|
215
|
+
};
|
|
216
|
+
reasoningSummary: {
|
|
217
|
+
conclusion: string;
|
|
218
|
+
confidence: 'low' | 'medium' | 'high';
|
|
219
|
+
risks: string[];
|
|
220
|
+
needsHumanReview: boolean;
|
|
221
|
+
};
|
|
222
|
+
};
|
|
223
|
+
//# sourceMappingURL=inference-trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference-trace.d.ts","sourceRoot":"","sources":["../../../src/contracts/inference-trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,eAAe,EAAE,kBAAkB,EAAE,CAAC;IACtC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,eAAe,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,iBAAiB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,mBAAmB,CAAC;IAClD,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,YAAY,EAAE,qBAAqB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,cAAc,EAAE,cAAc,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,EAAE;QACZ,cAAc,EAAE,OAAO,EAAE,CAAC;QAC1B,mBAAmB,EAAE,OAAO,EAAE,CAAC;QAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,gBAAgB,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACtC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* inference-trace.json 的类型定义(Plan Task 2)。
|
|
3
|
+
*
|
|
4
|
+
* 本文件只定义 `InferenceTraceV1` 的顶层章节类型:
|
|
5
|
+
* - {@link MaterialInventoryTrace}:物料清单(Task 3 负责组装,本任务只定义类型)。
|
|
6
|
+
* - {@link SourceAnalysis}:源分析快照,由 {@link buildSourceAnalysis} 产出。
|
|
7
|
+
* - {@link ModuleHintsInference}:动态槽位推理过程,由 {@link inferModuleHintsFromMaterials} 产出。
|
|
8
|
+
* - {@link InferenceTraceV1}:以上章节 + coverageDiff + reasoningSummary 的总账。
|
|
9
|
+
*
|
|
10
|
+
* 设计原则(spec §8):顶层章节稳定,内部证据数组与 reason 允许扩展。
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable-chain.d.ts","sourceRoot":"","sources":["../../../src/contracts/observable-chain.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"observable-chain.d.ts","sourceRoot":"","sources":["../../../src/contracts/observable-chain.ts"],"names":[],"mappings":"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"}
|