dsh-data-domain-knowledge 0.1.0-alpha.2 → 0.1.0-alpha.3
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/README.md +31 -7
- package/cordis.patch.yml +11 -5
- package/lib/client.js +5557 -3056
- package/lib/doc-page.js +7740 -0
- package/lib/types/convert/host.d.ts.map +1 -1
- package/lib/types/convert/host.js +36 -9
- package/lib/types/convert/host.js.map +1 -1
- package/lib/types/diagnosis/cards.d.ts +8 -7
- package/lib/types/diagnosis/cards.d.ts.map +1 -1
- package/lib/types/diagnosis/cards.js +119 -49
- package/lib/types/diagnosis/cards.js.map +1 -1
- package/lib/types/diagnosis/run.d.ts +51 -0
- package/lib/types/diagnosis/run.d.ts.map +1 -0
- package/lib/types/diagnosis/run.js +239 -0
- package/lib/types/diagnosis/run.js.map +1 -0
- package/lib/types/diagnosis/schema.d.ts +25 -2
- package/lib/types/diagnosis/schema.d.ts.map +1 -1
- package/lib/types/diagnosis/schema.js +64 -25
- package/lib/types/diagnosis/schema.js.map +1 -1
- package/lib/types/diagnosis/seed-source.d.ts +17 -2
- package/lib/types/diagnosis/seed-source.d.ts.map +1 -1
- package/lib/types/diagnosis/seed-source.js +18 -1
- package/lib/types/diagnosis/seed-source.js.map +1 -1
- package/lib/types/diagnosis/seed.d.ts +32 -42
- package/lib/types/diagnosis/seed.d.ts.map +1 -1
- package/lib/types/diagnosis/seed.js +187 -51
- package/lib/types/diagnosis/seed.js.map +1 -1
- package/lib/types/diagnosis/store.d.ts +114 -26
- package/lib/types/diagnosis/store.d.ts.map +1 -1
- package/lib/types/diagnosis/store.js +336 -167
- package/lib/types/diagnosis/store.js.map +1 -1
- package/lib/types/diagnosis/types.d.ts +168 -16
- package/lib/types/diagnosis/types.d.ts.map +1 -1
- package/lib/types/diagnosis/types.js +1 -1
- package/lib/types/diagnosis/types.js.map +1 -1
- package/lib/types/document-page.d.ts +39 -0
- package/lib/types/document-page.d.ts.map +1 -0
- package/lib/types/document-page.js +43 -0
- package/lib/types/document-page.js.map +1 -0
- package/lib/types/fs-atomic.d.ts +12 -0
- package/lib/types/fs-atomic.d.ts.map +1 -0
- package/lib/types/fs-atomic.js +42 -0
- package/lib/types/fs-atomic.js.map +1 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +214 -24
- package/lib/types/index.js.map +1 -1
- package/lib/types/knowledge-bases.d.ts +10 -2
- package/lib/types/knowledge-bases.d.ts.map +1 -1
- package/lib/types/knowledge-bases.js +20 -18
- package/lib/types/knowledge-bases.js.map +1 -1
- package/lib/types/proposals.d.ts +166 -0
- package/lib/types/proposals.d.ts.map +1 -0
- package/lib/types/proposals.js +238 -0
- package/lib/types/proposals.js.map +1 -0
- package/lib/types/runtime.d.ts +199 -7
- package/lib/types/runtime.d.ts.map +1 -1
- package/lib/types/runtime.js +728 -145
- package/lib/types/runtime.js.map +1 -1
- package/lib/types/settings-schema.d.ts +2 -2
- package/lib/types/types.d.ts +61 -10
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js +56 -8
- package/lib/types/types.js.map +1 -1
- package/lib/types/wiki-types.d.ts +8 -1
- package/lib/types/wiki-types.d.ts.map +1 -1
- package/lib/types/wiki-types.js +16 -25
- package/lib/types/wiki-types.js.map +1 -1
- package/package.json +4 -3
- package/preset/tita-data-agent/agent.cordis.yml +11 -5
- package/src/client/DirectoryPicker.tsx +12 -12
- package/src/client/InfoHint.tsx +21 -8
- package/src/client/IntentTab.tsx +20 -26
- package/src/client/KnowledgeBaseTab.tsx +190 -80
- package/src/client/KnowledgePanel.tsx +42 -9
- package/src/client/KnowledgeStepRail.tsx +3 -0
- package/src/client/NodeSettings.tsx +20 -22
- package/src/client/PreviewSections.tsx +87 -33
- package/src/client/ProposalReview.tsx +313 -0
- package/src/client/TypeDefinitionDrawer.tsx +72 -38
- package/src/client/WikiTypeEditor.tsx +193 -77
- package/src/client/arch/AgentArchitectureGraph.tsx +143 -14
- package/src/client/arch/NodeLogicPanel.tsx +6 -3
- package/src/client/arch/model.ts +164 -26
- package/src/client/architecture.css +29 -9
- package/src/client/architecture.tsx +54 -29
- package/src/client/attribution/AttributionGraph.tsx +481 -34
- package/src/client/attribution/AttributionTab.tsx +507 -106
- package/src/client/attribution/CaseView.tsx +9 -14
- package/src/client/attribution/GraphStage.tsx +25 -18
- package/src/client/attribution/RunView.tsx +27 -9
- package/src/client/attribution/StageChrome.tsx +296 -140
- package/src/client/attribution/graph-options.ts +611 -47
- package/src/client/attribution/model.ts +559 -30
- package/src/client/convert/ConvertPanel.tsx +6 -1
- package/src/client/doc-page.css +134 -0
- package/src/client/doc-page.tsx +263 -0
- package/src/client/panel-state.ts +105 -0
- package/src/client/request.ts +36 -0
- package/src/client/styles.css +317 -43
- package/src/client/useFitScale.ts +15 -2
- package/src/client/wiki-type-groups.ts +86 -0
- package/src/convert/host.ts +41 -7
- package/src/diagnosis/cards.ts +120 -50
- package/src/diagnosis/run.ts +245 -0
- package/src/diagnosis/schema.ts +67 -26
- package/src/diagnosis/seed-source.ts +28 -3
- package/src/diagnosis/seed.ts +187 -85
- package/src/diagnosis/store.ts +358 -174
- package/src/diagnosis/types.ts +181 -16
- package/src/document-page.ts +51 -0
- package/src/fs-atomic.ts +42 -0
- package/src/index.ts +209 -22
- package/src/knowledge-bases.ts +20 -18
- package/src/proposals.ts +337 -0
- package/src/runtime.ts +736 -135
- package/src/types.ts +113 -19
- package/src/wiki-types.ts +17 -27
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* 误导边昂贵」。
|
|
2
|
+
* 内置**示例**:一份排查手册 + 三篇复盘 + 三次排查日志 + 由它们编出来的那张图。
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* 它现在只有一重身份:**用户点了「载入内置示例」才写进去的样例,以及回归夹具**。
|
|
5
|
+
*
|
|
6
|
+
* 原来是两重(另一重是「首次启动的起点」,由 `DiagnosisStore.ensure()` 自动写入)。
|
|
7
|
+
* 实跑反馈把它去掉了:这份示例长得像真的业务文档,而它落在用户自己的
|
|
8
|
+
* `01_source_truth/` 与 `02_wiki/` 里 —— 新装一台机器,一打开「智能归因」就凭空多出
|
|
9
|
+
* 几份来源和几十张卡片,读起来像「我的知识库内容跟着包过来了」。示例没有被删除
|
|
10
|
+
* (它仍然是稳定夹具,`tests/diagnosis-cards.test.mjs` 逐字段对着它断言),
|
|
11
|
+
* 只是不再自动落盘 —— 入口是 `DiagnosisStore.loadSample()`。
|
|
12
|
+
*
|
|
13
|
+
* **两条来源分类、两个作者**(v1.1 起):
|
|
14
|
+
*
|
|
15
|
+
* | 来源分类 | 谁写 | 装什么 |
|
|
16
|
+
* | --- | --- | --- |
|
|
17
|
+
* | `question` | 人 | 手册与复盘 —— 卡片 `source_refs` 指向这里 |
|
|
18
|
+
* | `agent_diagnosis_case` | Agent | 一次排查的过程记录(`SEED_RUNS`) |
|
|
19
|
+
*
|
|
20
|
+
* `SEED_GRAPH` 里**只有卡片定义得了的东西**:类型层、引用层资产、案例桩,以及六种卡片边。
|
|
21
|
+
* `evidence` / `cause` 与四条执行边由 `SEED_RUNS` 读时解析出来 —— 把「上次查到什么」
|
|
22
|
+
* 写进卡片,等于让一份可复用的知识绑死在一次执行上。
|
|
9
23
|
*/
|
|
10
24
|
export const SEED_GRAPH = {
|
|
11
25
|
nodes: [
|
|
@@ -27,81 +41,87 @@ export const SEED_GRAPH = {
|
|
|
27
41
|
problemClass: 'deviation', problemSubclass: 'deviation-rise-sharp',
|
|
28
42
|
summary: '观测量:DAU + 单日窗口;放大 3.1 倍且只有 T-1 单日,相邻日期正常。',
|
|
29
43
|
},
|
|
30
|
-
{ id: 'H1', kind: 'hypothesis', layer: 'type', title: '上游分区未产出',
|
|
44
|
+
{ id: 'H1', kind: 'hypothesis', layer: 'type', title: '上游分区未产出', failureReason: 'upstream-missing', reuseCount: 12,
|
|
31
45
|
summary: '当日 dwd / ods 分区不存在 → 指标必然为 0。反例:分区在但行数为 0 时不是它。',
|
|
32
46
|
discriminator: '当日 dwd / ods 分区不存在 → 指标必然为 0',
|
|
33
47
|
notWhen: '分区存在但行数为 0(那是 H4);分区正常而指标仍为 0(那是口径或消费侧)' },
|
|
34
|
-
{ id: 'H2', kind: 'hypothesis', layer: 'type', title: '口径 / 版本变更',
|
|
48
|
+
{ id: 'H2', kind: 'hypothesis', layer: 'type', title: '口径 / 版本变更', failureReason: 'spec-change', reuseCount: 5,
|
|
35
49
|
summary: '口径版本切换未同步 → 同名词指标在不同版本下口径不同。',
|
|
36
50
|
discriminator: '口径版本切换后,同名词指标在两版定义下口径不一致',
|
|
37
51
|
notWhen: '口径未变更时本假设不成立 —— 不要用「名字一样」当作口径一致的证据' },
|
|
38
|
-
{ id: 'H3', kind: 'hypothesis', layer: 'type', title: '维表映射丢失',
|
|
52
|
+
{ id: 'H3', kind: 'hypothesis', layer: 'type', title: '维表映射丢失', failureReason: 'data-processing', reuseCount: 4,
|
|
39
53
|
summary: '新渠道未补录维表 → join 落 unknown 后被 where 过滤。',
|
|
40
54
|
discriminator: '维表 join 后 unknown 占比显著升高,且缺口集中在新增维度成员上',
|
|
41
55
|
notWhen: 'unknown 占比正常时本假设不成立;缺口若均匀分布在各维度上,应转 H4 或 H5' },
|
|
42
|
-
{ id: 'H4', kind: 'hypothesis', layer: 'type', title: '重复 / 回刷',
|
|
56
|
+
{ id: 'H4', kind: 'hypothesis', layer: 'type', title: '重复 / 回刷', failureReason: 'data-processing', reuseCount: 6,
|
|
43
57
|
summary: '上游重跑写入重复行 → 计数类指标放大。',
|
|
44
58
|
discriminator: '主键不唯一,或分区行数同比放大',
|
|
45
59
|
notWhen: '主键唯一性检查通过(T4.1)时本假设不成立 —— 这是最常被误判的一条' },
|
|
46
|
-
{ id: 'H5', kind: 'hypothesis', layer: 'type', title: '时间窗口 / 时区',
|
|
60
|
+
{ id: 'H5', kind: 'hypothesis', layer: 'type', title: '时间窗口 / 时区', failureReason: 'data-processing', reuseCount: 2,
|
|
47
61
|
summary: '跨天事件被补写进 T-1 分区 → 单日指标异常放大。',
|
|
48
62
|
discriminator: '分区内事件时间跨天,且只有 T-1 单日异常',
|
|
49
63
|
notWhen: '相邻日期同时异常时应转 H2;事件时间落在单日内则应转 H4' },
|
|
50
|
-
{ id: 'H6', kind: 'hypothesis', layer: 'type', title: '权限 / 过滤条件',
|
|
64
|
+
{ id: 'H6', kind: 'hypothesis', layer: 'type', title: '权限 / 过滤条件', failureReason: 'permission', reuseCount: 1,
|
|
51
65
|
summary: '行级权限或 where 条件变更 → 结果集被静默收窄。',
|
|
52
66
|
discriminator: '结果集被行级权限或 where 条件静默收窄',
|
|
53
67
|
notWhen: '权限与过滤条件在本周期未变更时本假设不成立' },
|
|
54
|
-
{ id: 'H7', kind: 'hypothesis', layer: 'type', title: '下游 BI 缓存 / 增量',
|
|
68
|
+
{ id: 'H7', kind: 'hypothesis', layer: 'type', title: '下游 BI 缓存 / 增量', failureReason: 'consumption', reuseCount: 3,
|
|
55
69
|
summary: '缓存或增量刷新未触发 → 展示侧滞后,明细不受影响。',
|
|
56
70
|
discriminator: 'BI 展示侧滞后,但直连明细的数字正常',
|
|
57
71
|
notWhen: '明细对账一致(T7.2)时本假设不成立;注意 T7.1「缓存时间正常」不足以否定它' },
|
|
58
|
-
// `code` 是这张卡片的稳定标识:假设卡片里写的是编码(`
|
|
72
|
+
// `code` 是这张卡片的稳定标识:假设卡片里写的是编码(`failure_reason: data-processing`),
|
|
59
73
|
// 边要连到节点 —— 少了它,「编码 → 节点」就只能靠 F1..F5 的位置去猜。
|
|
60
|
-
{ id: 'F1', kind: '
|
|
61
|
-
{ id: 'F2', kind: '
|
|
62
|
-
{ id: 'F3', kind: '
|
|
63
|
-
{ id: 'F4', kind: '
|
|
64
|
-
{ id: 'F5', kind: '
|
|
65
|
-
|
|
74
|
+
{ id: 'F1', kind: 'failure_reason', layer: 'type', title: '上游未产出', code: 'upstream-missing' },
|
|
75
|
+
{ id: 'F2', kind: 'failure_reason', layer: 'type', title: '口径变更', code: 'spec-change' },
|
|
76
|
+
{ id: 'F3', kind: 'failure_reason', layer: 'type', title: '数据处理', code: 'data-processing' },
|
|
77
|
+
{ id: 'F4', kind: 'failure_reason', layer: 'type', title: '消费与展示', code: 'consumption' },
|
|
78
|
+
{ id: 'F5', kind: 'failure_reason', layer: 'type', title: '权限与过滤', code: 'permission' },
|
|
79
|
+
// 检查点:`assets[]` 是 v1.3 的必填 —— 缺了它,这条检查不知道去哪查。
|
|
80
|
+
{ id: 'T1.1', kind: 'check_point', layer: 'type', title: '查分区存在性', costMinutes: 1, automation: 'auto', owner: '@duty',
|
|
81
|
+
assets: ['dwd_ord_di'],
|
|
66
82
|
summary: '分区 dwd_ord_di/dt 是否存在。不存在 → 支持 H1。',
|
|
67
83
|
verdictTrue: '分区不存在', verdictFalse: '分区存在' },
|
|
68
|
-
{ id: 'T1.2', kind: '
|
|
84
|
+
{ id: 'T1.2', kind: 'check_point', layer: 'type', title: '查任务实例状态', costMinutes: 1, automation: 'auto', owner: '@duty',
|
|
85
|
+
assets: ['ods_order_sync'],
|
|
69
86
|
summary: '上游任务实例是否 failed。failed → 支持 H1。',
|
|
70
87
|
verdictTrue: '实例状态 failed', verdictFalse: '实例状态 success / running' },
|
|
71
|
-
{ id: 'T2.1', kind: '
|
|
88
|
+
{ id: 'T2.1', kind: 'check_point', layer: 'type', title: '口径版本对比', costMinutes: 15, automation: 'manual', owner: '@metric-owner',
|
|
89
|
+
assets: ['metric_daily_gmv'],
|
|
72
90
|
summary: '对比近两次口径版本定义。口径变化 → 支持 H2。',
|
|
73
91
|
verdictTrue: '近两次口径定义不一致', verdictFalse: '口径定义逐字一致' },
|
|
74
|
-
{ id: 'T3.1', kind: '
|
|
92
|
+
{ id: 'T3.1', kind: 'check_point', layer: 'type', title: 'unknown 占比', costMinutes: 2, automation: 'auto', owner: '@duty',
|
|
93
|
+
assets: ['dim_channel_df'],
|
|
75
94
|
summary: '维表 join 后 unknown 占比。显著升高 → 支持 H3。',
|
|
76
95
|
verdictTrue: 'unknown 占比 > 5%', verdictFalse: 'unknown 占比 ≤ 5%' },
|
|
77
|
-
{ id: 'T4.1', kind: '
|
|
96
|
+
{ id: 'T4.1', kind: 'check_point', layer: 'type', title: '主键唯一性', costMinutes: 3, automation: 'auto', owner: '@duty',
|
|
97
|
+
assets: ['dwd_ord_di'],
|
|
78
98
|
summary: '主键唯一性检查。通过 → 否定 H4。这是最常被误判的一条。',
|
|
79
99
|
verdictTrue: '存在重复主键', verdictFalse: '主键唯一 → 否定 H4' },
|
|
80
|
-
{ id: 'T5.1', kind: '
|
|
100
|
+
{ id: 'T5.1', kind: 'check_point', layer: 'type', title: '事件时间分布', costMinutes: 8, automation: 'auto', owner: '@duty',
|
|
101
|
+
assets: ['dwd_ord_di'],
|
|
81
102
|
summary: '分区内事件时间分布。跨天 → 支持 H5。',
|
|
82
103
|
verdictTrue: '分区内事件时间跨出 T-1 单日窗口', verdictFalse: '事件时间全部落在 T-1 内' },
|
|
83
|
-
{ id: 'T7.1', kind: '
|
|
104
|
+
{ id: 'T7.1', kind: 'check_point', layer: 'type', title: '查缓存时间戳', costMinutes: 2, automation: 'auto', owner: '@duty',
|
|
105
|
+
assets: ['bi_daily_dashboard'],
|
|
84
106
|
summary: '缓存时间正常并不能否定 H7 —— 便宜检查给不出结论。',
|
|
85
107
|
verdictTrue: '缓存时间戳过期', verdictFalse: '缓存时间正常 —— 注意:这一条**不足以**否定 H7' },
|
|
86
|
-
{ id: 'T7.2', kind: '
|
|
108
|
+
{ id: 'T7.2', kind: 'check_point', layer: 'type', title: '直连明细对账', costMinutes: 35, automation: 'manual', owner: '@analyst',
|
|
109
|
+
assets: ['dwd_ord_di'],
|
|
87
110
|
summary: '明细对账一致 → 否定 H7。要否定它必须做这次贵检查。',
|
|
88
111
|
verdictTrue: '明细与报表数字不一致', verdictFalse: '明细与报表一致 → 否定 H7' },
|
|
89
112
|
// ── 引用层 ────────────────────────────────────────────────────────────
|
|
90
|
-
{ id: 'dwd_ord_di', kind: 'asset', layer: 'reference', title: 'dwd_ord_di' },
|
|
91
|
-
{ id: 'ods_order_sync', kind: 'asset', layer: 'reference', title: 'ods_order_sync' },
|
|
92
|
-
{ id: 'dim_channel_df', kind: 'asset', layer: 'reference', title: 'dim_channel_df' },
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
//
|
|
113
|
+
{ id: 'dwd_ord_di', kind: 'asset', layer: 'reference', title: 'dwd_ord_di', assetType: 'table' },
|
|
114
|
+
{ id: 'ods_order_sync', kind: 'asset', layer: 'reference', title: 'ods_order_sync', assetType: 'job' },
|
|
115
|
+
{ id: 'dim_channel_df', kind: 'asset', layer: 'reference', title: 'dim_channel_df', assetType: 'table' },
|
|
116
|
+
{ id: 'metric_daily_gmv', kind: 'asset', layer: 'reference', title: 'metric_daily_gmv', assetType: 'metric' },
|
|
117
|
+
{ id: 'bi_daily_dashboard', kind: 'asset', layer: 'reference', title: 'bi_daily_dashboard', assetType: 'linkage' },
|
|
118
|
+
// ── 实例层:案例节点是**图上的桩**(正文与有序路径住在案例卡片里) ──────
|
|
119
|
+
// 标题必须与 `SEED_CASES[].title` 是同一个字符串,否则同一份知识会有两份标题
|
|
120
|
+
// (而且还真的不一致过:「只剩」vs「只有」)。画布要在标签前显示案例 id,
|
|
96
121
|
// 那是渲染层的事(见 `nodeStyleFor` 的 labelText)。
|
|
97
122
|
{ id: 'CASE-001', kind: 'case', layer: 'instance', title: '日报 GMV 为 0' },
|
|
98
123
|
{ id: 'CASE-002', kind: 'case', layer: 'instance', title: '订单数只有昨日 12%' },
|
|
99
124
|
{ id: 'CASE-003', kind: 'case', layer: 'instance', title: 'DAU 突增 3.1 倍' },
|
|
100
|
-
{ id: 'C1', kind: 'cause', layer: 'instance', title: 'C1 ODS 任务失败' },
|
|
101
|
-
{ id: 'C2', kind: 'cause', layer: 'instance', title: 'C2 渠道维表未补录' },
|
|
102
|
-
{ id: 'C3', kind: 'cause', layer: 'instance', title: 'C3 跨天事件补写' },
|
|
103
|
-
{ id: 'E1', kind: 'evidence', layer: 'instance', title: 'E1 分区不存在' },
|
|
104
|
-
{ id: 'E7', kind: 'evidence', layer: 'instance', title: 'E7 明细对账一致' },
|
|
105
125
|
],
|
|
106
126
|
edges: [
|
|
107
127
|
// 层内:现象 → 假设(含一条僵尸边,用来演示「权重过期」)
|
|
@@ -125,7 +145,7 @@ export const SEED_GRAPH = {
|
|
|
125
145
|
{ id: 'e-s3-h4', source: 'S3', target: 'H4', kind: 'may_be_caused_by' },
|
|
126
146
|
{ id: 'e-s3-h5', source: 'S3', target: 'H5', kind: 'may_be_caused_by' },
|
|
127
147
|
{ id: 'e-s3-h7', source: 'S3', target: 'H7', kind: 'may_be_caused_by' },
|
|
128
|
-
// 层内:假设 →
|
|
148
|
+
// 层内:假设 → 检查点(H6 故意没有,它就是图上的空区)
|
|
129
149
|
{ id: 'e-h1-t11', source: 'H1', target: 'T1.1', kind: 'verified_by' },
|
|
130
150
|
{ id: 'e-h1-t12', source: 'H1', target: 'T1.2', kind: 'verified_by' },
|
|
131
151
|
{ id: 'e-h2-t21', source: 'H2', target: 'T2.1', kind: 'verified_by' },
|
|
@@ -134,7 +154,7 @@ export const SEED_GRAPH = {
|
|
|
134
154
|
{ id: 'e-h5-t51', source: 'H5', target: 'T5.1', kind: 'verified_by' },
|
|
135
155
|
{ id: 'e-h7-t71', source: 'H7', target: 'T7.1', kind: 'verified_by' },
|
|
136
156
|
{ id: 'e-h7-t72', source: 'H7', target: 'T7.2', kind: 'verified_by' },
|
|
137
|
-
// 层内:假设 →
|
|
157
|
+
// 层内:假设 → 失败原因(切面)
|
|
138
158
|
{ id: 'e-h1-f1', source: 'H1', target: 'F1', kind: 'categorized_as' },
|
|
139
159
|
{ id: 'e-h2-f2', source: 'H2', target: 'F2', kind: 'categorized_as' },
|
|
140
160
|
{ id: 'e-h3-f3', source: 'H3', target: 'F3', kind: 'categorized_as' },
|
|
@@ -142,26 +162,27 @@ export const SEED_GRAPH = {
|
|
|
142
162
|
{ id: 'e-h5-f3', source: 'H5', target: 'F3', kind: 'categorized_as' },
|
|
143
163
|
{ id: 'e-h6-f5', source: 'H6', target: 'F5', kind: 'categorized_as' },
|
|
144
164
|
{ id: 'e-h7-f4', source: 'H7', target: 'F4', kind: 'categorized_as' },
|
|
145
|
-
//
|
|
165
|
+
// 跨层:资产反向索引(这条假设**落在**哪个对象上)
|
|
146
166
|
{ id: 'e-a-dwd-h1', source: 'dwd_ord_di', target: 'H1', kind: 'indexed_from' },
|
|
147
167
|
{ id: 'e-a-ods-h1', source: 'ods_order_sync', target: 'H1', kind: 'indexed_from' },
|
|
148
168
|
{ id: 'e-a-dim-h3', source: 'dim_channel_df', target: 'H3', kind: 'indexed_from' },
|
|
149
|
-
//
|
|
150
|
-
|
|
151
|
-
{ id: 'e-
|
|
152
|
-
{ id: 'e-
|
|
153
|
-
{ id: 'e-
|
|
154
|
-
|
|
155
|
-
{ id: 'e-
|
|
156
|
-
{ id: 'e-
|
|
157
|
-
{ id: 'e-
|
|
169
|
+
// 跨层:检查点 → 资产(`queries`,v1.3)。这条检查**要去查**哪些对象 ——
|
|
170
|
+
// 与上面那条 `indexed_from` 是两条边:两端不同,回答的问题也不同。
|
|
171
|
+
{ id: 'e-t11-dwd-q', source: 'T1.1', target: 'dwd_ord_di', kind: 'queries' },
|
|
172
|
+
{ id: 'e-t12-ods-q', source: 'T1.2', target: 'ods_order_sync', kind: 'queries' },
|
|
173
|
+
{ id: 'e-t21-metric-q', source: 'T2.1', target: 'metric_daily_gmv', kind: 'queries' },
|
|
174
|
+
{ id: 'e-t31-dim-q', source: 'T3.1', target: 'dim_channel_df', kind: 'queries' },
|
|
175
|
+
{ id: 'e-t41-dwd-q', source: 'T4.1', target: 'dwd_ord_di', kind: 'queries' },
|
|
176
|
+
{ id: 'e-t51-dwd-q', source: 'T5.1', target: 'dwd_ord_di', kind: 'queries' },
|
|
177
|
+
{ id: 'e-t71-bi-q', source: 'T7.1', target: 'bi_daily_dashboard', kind: 'queries' },
|
|
178
|
+
{ id: 'e-t72-dwd-q', source: 'T7.2', target: 'dwd_ord_di', kind: 'queries' },
|
|
158
179
|
// 跨层:案例实例化(三个案例各归各的现象,但收敛到**同一批假设**)
|
|
159
180
|
{ id: 'e-case1-s1', source: 'CASE-001', target: 'S1', kind: 'instance_of', count: 1 },
|
|
160
181
|
{ id: 'e-case2-s2', source: 'CASE-002', target: 'S2', kind: 'instance_of', count: 1 },
|
|
161
182
|
{ id: 'e-case3-s3', source: 'CASE-003', target: 'S3', kind: 'instance_of', count: 1 },
|
|
162
183
|
],
|
|
163
184
|
};
|
|
164
|
-
/** 三个 seed
|
|
185
|
+
/** 三个 seed 案例卡片,与上面图谱里的节点 id 对齐(0021 §11)。 */
|
|
165
186
|
export const SEED_CASES = [
|
|
166
187
|
{
|
|
167
188
|
id: 'CASE-001',
|
|
@@ -239,4 +260,119 @@ export const SEED_CASES = [
|
|
|
239
260
|
],
|
|
240
261
|
},
|
|
241
262
|
];
|
|
263
|
+
/**
|
|
264
|
+
* 三次排查的**过程记录**(`agent_diagnosis_case`)。
|
|
265
|
+
*
|
|
266
|
+
* 它们与 `SEED_CASES` 一一对应,但**不是同一份东西**:这里是 Agent 跑出来的原始记录
|
|
267
|
+
* (每条检查点真跑了什么、看到什么、这个结果算不算数),`SEED_CASES` 是之后归纳出来的
|
|
268
|
+
* 案例卡片(要经人确认才生效)。一个回答「当时怎么走的」,一个回答「结论是什么」。
|
|
269
|
+
*
|
|
270
|
+
* `E7` 是 CASE-001 里那次**贵的否定**:T7.2 直连明细对账推翻了 H7。它不在案例的
|
|
271
|
+
* 主路径上(主路径早就确认了 H1),但它是这次排查最贵的一条知识 —— 40 分钟的误导段
|
|
272
|
+
* 正是靠它收尾的。
|
|
273
|
+
*/
|
|
274
|
+
export const SEED_RUNS = [
|
|
275
|
+
{
|
|
276
|
+
runId: 'RUN-20260811-1',
|
|
277
|
+
symptomId: 'S1',
|
|
278
|
+
startedAt: '2026-08-11T02:55:00+08:00',
|
|
279
|
+
durationMinutes: 65,
|
|
280
|
+
path: SEED_CASES[0].path,
|
|
281
|
+
evidence: [
|
|
282
|
+
{
|
|
283
|
+
id: 'E1', checkPointId: 'T1.1',
|
|
284
|
+
query: "select count(*) from dwd_ord_di where dt = '2026-08-10'",
|
|
285
|
+
result: '分区不存在', verdict: 'supports', hypothesisId: 'H1',
|
|
286
|
+
why: '与调度系统日志一致:ods_order_sync 02:40 实例 failed 且未启用重试,下游无输入',
|
|
287
|
+
at: '2026-08-11T02:58:00+08:00', by: '@duty', rawRef: 'scheduler://ods_order_sync/instance/20260811',
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
id: 'E7', checkPointId: 'T7.2',
|
|
291
|
+
query: "select sum(gmv) from dwd_ord_di_detail where dt = '2026-08-10'",
|
|
292
|
+
result: '明细与报表一致', verdict: 'refutes', hypothesisId: 'H7',
|
|
293
|
+
why: '明细对账一致,缓存不影响明细 —— 这一条花了 35 分钟,是唯一能否定 H7 的检查',
|
|
294
|
+
at: '2026-08-11T03:40:00+08:00', by: '@analyst',
|
|
295
|
+
},
|
|
296
|
+
],
|
|
297
|
+
rootCause: {
|
|
298
|
+
hypothesisId: 'H1', id: 'C1',
|
|
299
|
+
text: 'ODS 任务 ods_order_sync 02:40 失败且未启用重试,dwd_ord_di/dt 分区未产出。',
|
|
300
|
+
fixAction: '补 dwd_ord_di 分区;给 ods_order_sync 加失败告警与自动重试;分区存在性检查加入日报前置校验。',
|
|
301
|
+
confirmedAt: '2026-08-11T04:00:00+08:00',
|
|
302
|
+
},
|
|
303
|
+
misleading: SEED_CASES[0].misleading ? [SEED_CASES[0].misleading] : [],
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
runId: 'RUN-20260812-1',
|
|
307
|
+
symptomId: 'S2',
|
|
308
|
+
startedAt: '2026-08-12T09:10:00+08:00',
|
|
309
|
+
durationMinutes: 22,
|
|
310
|
+
path: SEED_CASES[1].path,
|
|
311
|
+
evidence: [
|
|
312
|
+
{
|
|
313
|
+
id: 'E2a', checkPointId: 'T1.1',
|
|
314
|
+
query: "select count(*) from dwd_ord_di where dt = '2026-08-11'",
|
|
315
|
+
result: '分区存在且有数据', verdict: 'refutes', hypothesisId: 'H1',
|
|
316
|
+
why: '分区有数据,H1 不成立 —— 1 分钟就砍掉了一条先验最高的假设',
|
|
317
|
+
at: '2026-08-12T09:12:00+08:00', by: '@duty',
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
id: 'E2b', checkPointId: 'T4.1',
|
|
321
|
+
query: "select order_id, count(*) c from dwd_ord_di where dt = '2026-08-11' group by order_id having c > 1 limit 10",
|
|
322
|
+
result: '主键唯一,无重复', verdict: 'refutes', hypothesisId: 'H4',
|
|
323
|
+
why: '主键唯一性检查通过,无重复行 —— H4 被否定',
|
|
324
|
+
at: '2026-08-12T09:16:00+08:00', by: '@duty',
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
id: 'E2c', checkPointId: 'T3.1',
|
|
328
|
+
query: "select channel, count(*) from dwd_ord_di where dt = '2026-08-11' group by channel order by 2 desc",
|
|
329
|
+
result: 'unknown 占比 88%', verdict: 'supports', hypothesisId: 'H3',
|
|
330
|
+
why: 'unknown 占比 88%,且缺口集中在新增的两个渠道 —— 与维表未补录一致',
|
|
331
|
+
at: '2026-08-12T09:24:00+08:00', by: '@duty',
|
|
332
|
+
},
|
|
333
|
+
],
|
|
334
|
+
rootCause: {
|
|
335
|
+
hypothesisId: 'H3', id: 'C2',
|
|
336
|
+
text: '新增渠道未补录维表,dim_channel_df join 落 unknown 后被 where channel is not null 过滤。',
|
|
337
|
+
fixAction: '补录渠道维表;把 unknown 占比纳入日常巡检;下游过滤改为「先报警再过滤」。',
|
|
338
|
+
confirmedAt: '2026-08-12T09:32:00+08:00',
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
runId: 'RUN-20260813-1',
|
|
343
|
+
symptomId: 'S3',
|
|
344
|
+
startedAt: '2026-08-13T14:05:00+08:00',
|
|
345
|
+
durationMinutes: 35,
|
|
346
|
+
path: SEED_CASES[2].path,
|
|
347
|
+
evidence: [
|
|
348
|
+
{
|
|
349
|
+
id: 'E3a', checkPointId: 'T4.1',
|
|
350
|
+
query: "select user_id, count(*) c from dwd_dau_di where dt = '2026-08-12' group by user_id having c > 1 limit 10",
|
|
351
|
+
result: '主键唯一,无重复', verdict: 'refutes', hypothesisId: 'H4',
|
|
352
|
+
why: '主键唯一性通过 —— 放大不是重复计数造成的',
|
|
353
|
+
at: '2026-08-13T14:10:00+08:00', by: '@duty',
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
id: 'E3b', checkPointId: 'T7.1',
|
|
357
|
+
query: 'select max(refresh_at) from bi_daily_dashboard_meta',
|
|
358
|
+
result: '缓存时间正常', verdict: 'inconclusive', hypothesisId: 'H7',
|
|
359
|
+
why: '缓存时间正常并不能否定 H7(T7.1 的 verdict_false 已经写明);要否定它必须做 35 分钟的直连明细对账 —— 这一条给不出结论',
|
|
360
|
+
at: '2026-08-13T14:18:00+08:00', by: '@duty',
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
id: 'E3c', checkPointId: 'T5.1',
|
|
364
|
+
query: "select event_time, count(*) from dwd_dau_di where dt = '2026-08-12' group by 1 order by 1 limit 5",
|
|
365
|
+
result: '分区内事件时间跨天', verdict: 'supports', hypothesisId: 'H5',
|
|
366
|
+
why: '事件时间跨出 T-1 单日窗口,且只有这一天异常 —— 与上游重跑补写一致',
|
|
367
|
+
at: '2026-08-13T14:34:00+08:00', by: '@duty',
|
|
368
|
+
},
|
|
369
|
+
],
|
|
370
|
+
rootCause: {
|
|
371
|
+
hypothesisId: 'H5', id: 'C3',
|
|
372
|
+
text: '上游重跑把跨天事件补写进 T-1 分区,事件时间与处理时间边界被跨越。',
|
|
373
|
+
fixAction: '重跑加事件时间边界校验;分区写入前检查事件时间下界。',
|
|
374
|
+
confirmedAt: '2026-08-13T14:40:00+08:00',
|
|
375
|
+
},
|
|
376
|
+
},
|
|
377
|
+
];
|
|
242
378
|
//# sourceMappingURL=seed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../src/diagnosis/seed.ts"],"names":[],"mappings":"AAoCA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,KAAK,EAAE;QACL,qDAAqD;QACrD,8CAA8C;QAC9C,2CAA2C;QAC3C;YACE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY;YAC7D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc;YACxD,OAAO,EAAE,gCAAgC;SAC1C;QACD;YACE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;YAC9D,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,sBAAsB;YAClE,OAAO,EAAE,0CAA0C;SACpD;QACD;YACE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc;YAC/D,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,sBAAsB;YAClE,OAAO,EAAE,2CAA2C;SACrD;QAED,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE;YAC9G,OAAO,EAAE,iDAAiD;YAC1D,aAAa,EAAE,8BAA8B;YAC7C,OAAO,EAAE,yCAAyC,EAAE;QACtD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;YAC1G,OAAO,EAAE,8BAA8B;YACvC,aAAa,EAAE,0BAA0B;YACzC,OAAO,EAAE,oCAAoC,EAAE;QACjD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;YAC3G,OAAO,EAAE,wCAAwC;YACjD,aAAa,EAAE,wCAAwC;YACvD,OAAO,EAAE,6CAA6C,EAAE;QAC1D,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;YAC5G,OAAO,EAAE,sBAAsB;YAC/B,aAAa,EAAE,iBAAiB;YAChC,OAAO,EAAE,sCAAsC,EAAE;QACnD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;YAC9G,OAAO,EAAE,6BAA6B;YACtC,aAAa,EAAE,wBAAwB;YACvC,OAAO,EAAE,gCAAgC,EAAE;QAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;YACzG,OAAO,EAAE,8BAA8B;YACvC,aAAa,EAAE,wBAAwB;YACvC,OAAO,EAAE,uBAAuB,EAAE;QACpC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;YAC9G,OAAO,EAAE,4BAA4B;YACrC,aAAa,EAAE,qBAAqB;YACpC,OAAO,EAAE,2CAA2C,EAAE;QAExD,iEAAiE;QACjE,4CAA4C;QAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE;QAC3F,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QACrF,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;QACzF,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;QACtF,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;QAErF,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YAC7G,OAAO,EAAE,oCAAoC;YAC7C,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE;QAC9C,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YAC9G,OAAO,EAAE,iCAAiC;YAC1C,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,wBAAwB,EAAE;QACtE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe;YACxH,OAAO,EAAE,2BAA2B;YACpC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE;QACvD,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YACjH,OAAO,EAAE,oCAAoC;YAC7C,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE;QACnE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YAC5G,OAAO,EAAE,gCAAgC;YACzC,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE;QACvD,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YAC7G,OAAO,EAAE,uBAAuB;YAChC,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,gBAAgB,EAAE;QACrE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;YAC7G,OAAO,EAAE,8BAA8B;YACvC,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,8BAA8B,EAAE;QACxE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU;YACnH,OAAO,EAAE,8BAA8B;YACvC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE;QAE9D,sEAAsE;QACtE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE;QAC5E,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE;QACpF,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE;QAEpF,mDAAmD;QACnD,yDAAyD;QACzD,iDAAiD;QACjD,yCAAyC;QACzC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;QACxE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE;QACzE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE;QAC1E,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE;QACpE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;QACnE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;QAClE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;QACpE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;KACtE;IACD,KAAK,EAAE;QACL,gCAAgC;QAChC,EAAE;QACF,+CAA+C;QAC/C,6CAA6C;QAC7C,kDAAkD;QAClD,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE,EAAE;QACtF,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QAEvE,2CAA2C;QAC3C,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QAEvE,8CAA8C;QAC9C,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QACvE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;QAEvE,+BAA+B;QAC/B,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QACrE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QACrE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QACrE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QACrE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QACrE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QACrE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QACrE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;QAErE,mBAAmB;QACnB,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACrE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACrE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACrE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACrE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACrE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACrE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;QAErE,YAAY;QACZ,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;QAC9E,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;QAClF,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;QAElF,sBAAsB;QACtB,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;QAClE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;QAC/D,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;QAClE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;QAE9D,aAAa;QACb,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;QACnE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;QACnE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;QAEnE,qCAAqC;QACrC,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;QACrF,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;QACrF,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;KACtF;CACF,CAAA;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,2DAA2D;QACtE,QAAQ,EAAE;YACR,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,mDAAmD,EAAE;YAC5E,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,sCAAsC,EAAE;YAChE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,4DAA4D,EAAE;YACvF,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,mDAAmD,EAAE;YAC5E,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8DAA8D,EAAE;SAC5F;QACD,IAAI,EAAE;YACJ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE;YACpD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;YAClD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;YACzD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;YACjD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;SAC5C;QACD,UAAU,EAAE;YACV,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,EAAE;YACjB,GAAG,EAAE,8GAA8G;SACpH;KACF;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,0EAA0E;QACrF,QAAQ,EAAE;YACR,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,8BAA8B,EAAE;YACvD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,2CAA2C,EAAE;YACrE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,0GAA0G,EAAE;YACrI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,sCAAsC,EAAE;YAC/D,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2CAA2C,EAAE;SACzE;QACD,IAAI,EAAE;YACJ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE;YACnD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACvD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE;YACvE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1E,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;YACzD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;SAC5C;KACF;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,qCAAqC;QAChD,QAAQ,EAAE;YACR,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,6BAA6B,EAAE;YACtD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,6CAA6C,EAAE;YACvE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,sFAAsF,EAAE;YACjH,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE;YAC/C,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE;SAC1D;QACD,IAAI,EAAE;YACJ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;YACrD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACvD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1E,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;YAC5C,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE;YAC/D,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;SAC5C;KACF;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../src/diagnosis/seed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,52 @@
|
|
|
1
|
-
import { type AttributionCase } from './seed.js';
|
|
2
1
|
import { type DiagnosisIssue } from './schema.js';
|
|
3
|
-
import {
|
|
4
|
-
import type { AttributionGraphData } from './types.js';
|
|
2
|
+
import { type DiagnosisCard } from './cards.js';
|
|
3
|
+
import type { AttributionCase, AttributionGraphData, DiagnosisRunRecord } from './types.js';
|
|
5
4
|
import type { KnowledgeRuntime } from '../runtime.js';
|
|
5
|
+
import type { CardProposalStore } from '../proposals.js';
|
|
6
6
|
/** 读取顺序的显式来源,界面据此说明「现在看到的是哪一份」。 */
|
|
7
|
-
export type DiagnosisSource = 'cards' | 'jsonl' | '
|
|
7
|
+
export type DiagnosisSource = 'cards' | 'jsonl' | 'empty';
|
|
8
8
|
export interface DiagnosisSnapshot {
|
|
9
9
|
graph: AttributionGraphData;
|
|
10
10
|
cases: AttributionCase[];
|
|
11
11
|
issues: DiagnosisIssue[];
|
|
12
|
-
/**
|
|
12
|
+
/** 数据是不是本次调用从内置示例写进去的(只有 `loadSample()` 会把它变成 true)。 */
|
|
13
13
|
seeded: boolean;
|
|
14
14
|
/** 旧知识根是否在本次被前向迁移成卡片。 */
|
|
15
15
|
migrated: boolean;
|
|
16
16
|
/** 读的是哪一份真相。 */
|
|
17
17
|
source: DiagnosisSource;
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* 这个库还什么都没有 —— 界面据此显示空态(说什么会有、怎么开始),
|
|
20
|
+
* 而不是画一张空图。
|
|
21
|
+
*/
|
|
22
|
+
canLoadSample: boolean;
|
|
23
|
+
/** 写卡片 / 迁移 / 读诊断日志过程中发现的问题。必须能显示出来,不能只进日志。 */
|
|
19
24
|
problems: string[];
|
|
25
|
+
/**
|
|
26
|
+
* 待人确认的提议条数(0021 §7.1)。
|
|
27
|
+
*
|
|
28
|
+
* 它挂在归因这一栏上,是因为**提议多半就是从排查里长出来的**:跑完一次排查,
|
|
29
|
+
* 案例卡片的草案就等在队列里。归因侧只挂一个角标,点它跳到「知识库 → Wiki」的
|
|
30
|
+
* 待办区逐条 review —— review 界面只有一处,不在这里再造一个。
|
|
31
|
+
*/
|
|
32
|
+
proposals: {
|
|
33
|
+
pending: number;
|
|
34
|
+
rejected: number;
|
|
35
|
+
confirmed: number;
|
|
36
|
+
};
|
|
20
37
|
}
|
|
21
|
-
/**
|
|
22
|
-
|
|
38
|
+
/**
|
|
39
|
+
* 只取运行时里真正要用的那几件事:读根目录、落 SourceRaw、写卡片、列来源。
|
|
40
|
+
*
|
|
41
|
+
* `loadSources` 是 v1.1 新增的:一次排查的产物现在是一条 `agent_diagnosis_case`
|
|
42
|
+
* 的 SourceRaw,归因图读的是它,而不是自造的 jsonl。
|
|
43
|
+
*/
|
|
44
|
+
type DiagnosisHost = Pick<KnowledgeRuntime, 'rootDir' | 'addSource' | 'writeCard' | 'loadSources'>;
|
|
23
45
|
export declare class DiagnosisStore {
|
|
24
46
|
private readonly host;
|
|
25
|
-
|
|
26
|
-
|
|
47
|
+
private readonly proposals?;
|
|
48
|
+
constructor(host: DiagnosisHost, proposals?: CardProposalStore | undefined);
|
|
49
|
+
private get legacyDir();
|
|
27
50
|
private get cardsDir();
|
|
28
51
|
/**
|
|
29
52
|
* 幂等初始化。三种状态各自处理,互不覆盖:
|
|
@@ -32,27 +55,83 @@ export declare class DiagnosisStore {
|
|
|
32
55
|
* 2. 没有卡片但有旧 jsonl → **前向迁移**:把旧图反推成卡片写出去,并**校验迁移无损**
|
|
33
56
|
* (重新编译一遍与旧图比对,不一致就不认这次迁移,继续按 jsonl 读 —— 宁可留在旧形态,
|
|
34
57
|
* 也不要静默丢知识);
|
|
35
|
-
* 3. 两者都没有 →
|
|
58
|
+
* 3. 两者都没有 → **什么都不写**。这个库还没开始做排查。
|
|
59
|
+
*
|
|
60
|
+
* 第 3 条原来是自动写入内置示例。实跑反馈把它改掉了:那份示例长得像真的业务文档,
|
|
61
|
+
* 而它落在用户自己的 `01_source_truth/` 与 `02_wiki/` 里 —— 新装一台机器,一打开
|
|
62
|
+
* 「智能归因」就凭空多出几份来源和几十张卡片。示例还在(`loadSample()`),
|
|
63
|
+
* 但改成**用户点一下才载入**。
|
|
64
|
+
*
|
|
65
|
+
* **v1.1 起连模板文件也不铺了**:模板卡由类型定义派生(0021 §6.6),落成磁盘文件会
|
|
66
|
+
* 造出「设置里改了、磁盘上那份没改」的第二真源。
|
|
36
67
|
*/
|
|
37
68
|
ensure(): Promise<{
|
|
38
69
|
seeded: boolean;
|
|
39
70
|
migrated: boolean;
|
|
40
71
|
problems: string[];
|
|
41
72
|
}>;
|
|
73
|
+
/**
|
|
74
|
+
* 载入**内置示例**:一份排查手册 + 三篇复盘 + 三次排查日志 → SourceRaw → 卡片 → 图。
|
|
75
|
+
*
|
|
76
|
+
* 只有用户明确点了「载入内置示例」才走这里(`ensure()` 不再自动调用)。幂等:
|
|
77
|
+
* `addSource` 按 `externalId`、`writeCard` 按 entityId,点两次不会写出第二份。
|
|
78
|
+
*
|
|
79
|
+
* **它走的是「提议 → 确认」那条门,不是绕过它**(0021 §6.1)。区别只在确认者是谁:
|
|
80
|
+
* 用户点「载入内置示例」这个动作本身就是**对整批示例的确认**,所以这里给每条提议记下
|
|
81
|
+
* `confirmedBy = user:load-sample`,然后照常走 `writeCard`。这样做的两个好处:
|
|
82
|
+
* 待办区里能看到这批卡片是怎么来的;而「未确认不落 `02_wiki/`」这条规则没有被开一个
|
|
83
|
+
* 后门 —— 例外是**确认者的身份**,不是门的缺失。
|
|
84
|
+
*/
|
|
85
|
+
loadSample(): Promise<{
|
|
86
|
+
seeded: boolean;
|
|
87
|
+
migrated: boolean;
|
|
88
|
+
problems: string[];
|
|
89
|
+
}>;
|
|
42
90
|
snapshot(): Promise<DiagnosisSnapshot>;
|
|
91
|
+
/** 待审 / 已拒 / 已确认未落卡的条数。没有提议存储时全是 0(诚实,不猜)。 */
|
|
92
|
+
private proposalCounts;
|
|
93
|
+
/**
|
|
94
|
+
* 图 = **卡片那张图** + **一次排查的产物**。
|
|
95
|
+
*
|
|
96
|
+
* 两条来源严格分工:类型层与引用层(以及六种卡片边)全部来自卡片;`evidence` / `cause`
|
|
97
|
+
* 与四条执行边全部来自 `agent_diagnosis_case` 的 SourceRaw。合成一张图是**读**的时候
|
|
98
|
+
* 做的,不是写的时候 —— 写的时候合成,等于让一次执行的结果变成可复用的知识。
|
|
99
|
+
*/
|
|
100
|
+
private buildGraph;
|
|
43
101
|
/**
|
|
44
|
-
*
|
|
102
|
+
* 旧 `05_diagnosis/` 里的执行产物:`evidence.jsonl` / `causes.jsonl` / `edges.jsonl`。
|
|
45
103
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
104
|
+
* 只取**执行边**:卡片边由卡片投影出来,这里再读一遍就会出现重复边。同时按 id 去重
|
|
105
|
+
* —— 已经由 `agent_diagnosis_case` 解析出来的节点不重复加(新旧两代可能描述同一次排查)。
|
|
48
106
|
*/
|
|
107
|
+
private readLegacyRunArtifacts;
|
|
49
108
|
readGraph(): Promise<AttributionGraphData>;
|
|
50
109
|
readCases(): Promise<AttributionCase[]>;
|
|
51
110
|
/** 读 `02_wiki/diagnosis/**` 下的全部卡片。解析不出来的文件按「不是卡片」跳过。 */
|
|
52
111
|
readCards(): Promise<DiagnosisCard[]>;
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
112
|
+
/**
|
|
113
|
+
* 读全部 `agent_diagnosis_case` 来源,解析出排查记录。
|
|
114
|
+
*
|
|
115
|
+
* 块坏了、`runId` 缺了、`symptomId` 缺了就**跳过并如实报问题** —— 不猜。
|
|
116
|
+
* 一条坏日志不该让整张图读不出来,但它也不能被静默吞掉。
|
|
117
|
+
*/
|
|
118
|
+
readRuns(): Promise<{
|
|
119
|
+
records: DiagnosisRunRecord[];
|
|
120
|
+
problems: string[];
|
|
121
|
+
}>;
|
|
122
|
+
/**
|
|
123
|
+
* 一次排查结束:写一条 `agent_diagnosis_case` 的 SourceRaw,并**提议**一张案例卡片。
|
|
124
|
+
*
|
|
125
|
+
* 两件事分开是有意的:记录是 Agent 的产物,可以直接落(它是实例层的原始记录,不是知识);
|
|
126
|
+
* 案例卡片落在收敛的那一侧,所以只能提议,等人确认。
|
|
127
|
+
*
|
|
128
|
+
* 幂等:`externalId` = runId,同一次排查重跑不会写出第二条来源。
|
|
129
|
+
*/
|
|
130
|
+
recordRun(record: DiagnosisRunRecord): Promise<{
|
|
131
|
+
sourceId?: string;
|
|
132
|
+
proposalId?: string;
|
|
133
|
+
problems: string[];
|
|
134
|
+
}>;
|
|
56
135
|
private migrate;
|
|
57
136
|
/**
|
|
58
137
|
* 落原始材料。
|
|
@@ -61,21 +140,30 @@ export declare class DiagnosisStore {
|
|
|
61
140
|
* `addSource` 用 `externalId` 幂等,所以重复调用不会写出第二份。
|
|
62
141
|
*/
|
|
63
142
|
private writeSources;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
143
|
+
/**
|
|
144
|
+
* 写一批卡片。返回写失败的原因(schema 不认、出处不存在等),由调用方决定怎么显示。
|
|
145
|
+
*
|
|
146
|
+
* **它是一条「确认之后」的路径**:调用方必须先有人的确认(`loadSample` 是用户点了按钮、
|
|
147
|
+
* 迁移是搬已有知识、review 面板是逐条点了通过),`confirmedBy` 就是那个凭证。
|
|
148
|
+
* Agent 手里没有这条路径 —— 它只有 `propose_wiki_cards` 与 `write_knowledge_card`
|
|
149
|
+
* (后者要求一条已确认且尚未落卡的提议)。
|
|
150
|
+
*
|
|
151
|
+
* 有提议存储时**先提一条提议再确认再落卡**,而不是直接写:这样待办区里能追溯
|
|
152
|
+
* 「这张卡片是哪一次确认产生的」,而两条路径(这里与 review 面板)共用同一个形状。
|
|
153
|
+
*/
|
|
154
|
+
private writeCards;
|
|
155
|
+
private readLegacyCases;
|
|
68
156
|
private readLegacyGraph;
|
|
69
157
|
/**
|
|
70
158
|
* 是否存在**值得迁移的旧知识根**。
|
|
71
159
|
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* 迁移分支,然后在空图上白跑一趟。
|
|
160
|
+
* 只看旧版的**类型层**分片,而且要求它真的有内容:空文件不算「旧知识根」,
|
|
161
|
+
* 否则首次启动会走进迁移分支,然后在空图上白跑一趟。
|
|
75
162
|
*/
|
|
76
163
|
private legacyShardFiles;
|
|
77
164
|
private readLines;
|
|
78
|
-
private writeIfAbsent;
|
|
79
165
|
}
|
|
80
|
-
|
|
166
|
+
/** 卡片正文:小节 + 结构化块。复用编解码里的同一套序列化,避免两处格式漂移。 */
|
|
167
|
+
export declare function renderCardBody(card: DiagnosisCard): string;
|
|
168
|
+
export {};
|
|
81
169
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/diagnosis/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/diagnosis/store.ts"],"names":[],"mappings":"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"}
|