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.
Files changed (117) hide show
  1. package/README.md +31 -7
  2. package/cordis.patch.yml +11 -5
  3. package/lib/client.js +5557 -3056
  4. package/lib/doc-page.js +7740 -0
  5. package/lib/types/convert/host.d.ts.map +1 -1
  6. package/lib/types/convert/host.js +36 -9
  7. package/lib/types/convert/host.js.map +1 -1
  8. package/lib/types/diagnosis/cards.d.ts +8 -7
  9. package/lib/types/diagnosis/cards.d.ts.map +1 -1
  10. package/lib/types/diagnosis/cards.js +119 -49
  11. package/lib/types/diagnosis/cards.js.map +1 -1
  12. package/lib/types/diagnosis/run.d.ts +51 -0
  13. package/lib/types/diagnosis/run.d.ts.map +1 -0
  14. package/lib/types/diagnosis/run.js +239 -0
  15. package/lib/types/diagnosis/run.js.map +1 -0
  16. package/lib/types/diagnosis/schema.d.ts +25 -2
  17. package/lib/types/diagnosis/schema.d.ts.map +1 -1
  18. package/lib/types/diagnosis/schema.js +64 -25
  19. package/lib/types/diagnosis/schema.js.map +1 -1
  20. package/lib/types/diagnosis/seed-source.d.ts +17 -2
  21. package/lib/types/diagnosis/seed-source.d.ts.map +1 -1
  22. package/lib/types/diagnosis/seed-source.js +18 -1
  23. package/lib/types/diagnosis/seed-source.js.map +1 -1
  24. package/lib/types/diagnosis/seed.d.ts +32 -42
  25. package/lib/types/diagnosis/seed.d.ts.map +1 -1
  26. package/lib/types/diagnosis/seed.js +187 -51
  27. package/lib/types/diagnosis/seed.js.map +1 -1
  28. package/lib/types/diagnosis/store.d.ts +114 -26
  29. package/lib/types/diagnosis/store.d.ts.map +1 -1
  30. package/lib/types/diagnosis/store.js +336 -167
  31. package/lib/types/diagnosis/store.js.map +1 -1
  32. package/lib/types/diagnosis/types.d.ts +168 -16
  33. package/lib/types/diagnosis/types.d.ts.map +1 -1
  34. package/lib/types/diagnosis/types.js +1 -1
  35. package/lib/types/diagnosis/types.js.map +1 -1
  36. package/lib/types/document-page.d.ts +39 -0
  37. package/lib/types/document-page.d.ts.map +1 -0
  38. package/lib/types/document-page.js +43 -0
  39. package/lib/types/document-page.js.map +1 -0
  40. package/lib/types/fs-atomic.d.ts +12 -0
  41. package/lib/types/fs-atomic.d.ts.map +1 -0
  42. package/lib/types/fs-atomic.js +42 -0
  43. package/lib/types/fs-atomic.js.map +1 -0
  44. package/lib/types/index.d.ts.map +1 -1
  45. package/lib/types/index.js +214 -24
  46. package/lib/types/index.js.map +1 -1
  47. package/lib/types/knowledge-bases.d.ts +10 -2
  48. package/lib/types/knowledge-bases.d.ts.map +1 -1
  49. package/lib/types/knowledge-bases.js +20 -18
  50. package/lib/types/knowledge-bases.js.map +1 -1
  51. package/lib/types/proposals.d.ts +166 -0
  52. package/lib/types/proposals.d.ts.map +1 -0
  53. package/lib/types/proposals.js +238 -0
  54. package/lib/types/proposals.js.map +1 -0
  55. package/lib/types/runtime.d.ts +199 -7
  56. package/lib/types/runtime.d.ts.map +1 -1
  57. package/lib/types/runtime.js +728 -145
  58. package/lib/types/runtime.js.map +1 -1
  59. package/lib/types/settings-schema.d.ts +2 -2
  60. package/lib/types/types.d.ts +61 -10
  61. package/lib/types/types.d.ts.map +1 -1
  62. package/lib/types/types.js +56 -8
  63. package/lib/types/types.js.map +1 -1
  64. package/lib/types/wiki-types.d.ts +8 -1
  65. package/lib/types/wiki-types.d.ts.map +1 -1
  66. package/lib/types/wiki-types.js +16 -25
  67. package/lib/types/wiki-types.js.map +1 -1
  68. package/package.json +4 -3
  69. package/preset/tita-data-agent/agent.cordis.yml +11 -5
  70. package/src/client/DirectoryPicker.tsx +12 -12
  71. package/src/client/InfoHint.tsx +21 -8
  72. package/src/client/IntentTab.tsx +20 -26
  73. package/src/client/KnowledgeBaseTab.tsx +190 -80
  74. package/src/client/KnowledgePanel.tsx +42 -9
  75. package/src/client/KnowledgeStepRail.tsx +3 -0
  76. package/src/client/NodeSettings.tsx +20 -22
  77. package/src/client/PreviewSections.tsx +87 -33
  78. package/src/client/ProposalReview.tsx +313 -0
  79. package/src/client/TypeDefinitionDrawer.tsx +72 -38
  80. package/src/client/WikiTypeEditor.tsx +193 -77
  81. package/src/client/arch/AgentArchitectureGraph.tsx +143 -14
  82. package/src/client/arch/NodeLogicPanel.tsx +6 -3
  83. package/src/client/arch/model.ts +164 -26
  84. package/src/client/architecture.css +29 -9
  85. package/src/client/architecture.tsx +54 -29
  86. package/src/client/attribution/AttributionGraph.tsx +481 -34
  87. package/src/client/attribution/AttributionTab.tsx +507 -106
  88. package/src/client/attribution/CaseView.tsx +9 -14
  89. package/src/client/attribution/GraphStage.tsx +25 -18
  90. package/src/client/attribution/RunView.tsx +27 -9
  91. package/src/client/attribution/StageChrome.tsx +296 -140
  92. package/src/client/attribution/graph-options.ts +611 -47
  93. package/src/client/attribution/model.ts +559 -30
  94. package/src/client/convert/ConvertPanel.tsx +6 -1
  95. package/src/client/doc-page.css +134 -0
  96. package/src/client/doc-page.tsx +263 -0
  97. package/src/client/panel-state.ts +105 -0
  98. package/src/client/request.ts +36 -0
  99. package/src/client/styles.css +317 -43
  100. package/src/client/useFitScale.ts +15 -2
  101. package/src/client/wiki-type-groups.ts +86 -0
  102. package/src/convert/host.ts +41 -7
  103. package/src/diagnosis/cards.ts +120 -50
  104. package/src/diagnosis/run.ts +245 -0
  105. package/src/diagnosis/schema.ts +67 -26
  106. package/src/diagnosis/seed-source.ts +28 -3
  107. package/src/diagnosis/seed.ts +187 -85
  108. package/src/diagnosis/store.ts +358 -174
  109. package/src/diagnosis/types.ts +181 -16
  110. package/src/document-page.ts +51 -0
  111. package/src/fs-atomic.ts +42 -0
  112. package/src/index.ts +209 -22
  113. package/src/knowledge-bases.ts +20 -18
  114. package/src/proposals.ts +337 -0
  115. package/src/runtime.ts +736 -135
  116. package/src/types.ts +113 -19
  117. package/src/wiki-types.ts +17 -27
@@ -9,10 +9,26 @@ import { PROBLEM_CLASS_LABEL, problemClassIds, problemSubclassOf } from './probl
9
9
  export const DIAGNOSIS_ENTITY_TYPES = [
10
10
  'diagnosis/symptom',
11
11
  'diagnosis/hypothesis',
12
- 'diagnosis/check',
13
- 'diagnosis/failure-mode',
12
+ 'diagnosis/check-point',
13
+ 'diagnosis/failure-reason',
14
14
  'diagnosis/case',
15
15
  ];
16
+ /**
17
+ * 改名之前的两个 `entity_type`,以及它们对应的新名字。
18
+ *
19
+ * 留着这张表是为了**存量卡片不静默消失**:磁盘上还叫 `diagnosis/check` 的卡片,
20
+ * 如果读的时候直接判为「未知类型」,后果是这张卡片既不进 wikiNotes、也不上图,
21
+ * 而且没有任何报错。所以读取端按别名认,写入端做一次性迁移(见
22
+ * `runtime.migrateLegacyDiagnosisCards`)。
23
+ */
24
+ export const LEGACY_ENTITY_TYPES = {
25
+ 'diagnosis/check': 'diagnosis/check-point',
26
+ 'diagnosis/failure-mode': 'diagnosis/failure-reason',
27
+ };
28
+ /** 卡片里那个旧字段名 → 新字段名。`failure_mode` 改叫 `failure_reason`。 */
29
+ export const LEGACY_BLOCK_FIELDS = {
30
+ failure_mode: 'failure_reason',
31
+ };
16
32
  /** 不是 wiki 卡片、但仍属于同一张图的节点类型。校验不按卡片规则要求它们。 */
17
33
  export const NON_CARD_KINDS = ['asset', 'evidence', 'cause', 'unknown'];
18
34
  /** 所有类型共有的信封字段。 */
@@ -29,11 +45,11 @@ export const DIAGNOSIS_ENTITIES = [
29
45
  entityType: 'diagnosis/symptom',
30
46
  kind: 'symptom',
31
47
  layer: 'type',
32
- label: '现象类型',
48
+ label: '现象',
33
49
  fields: [
34
50
  { name: 'observable', note: '可观测口径:指标 + 维度 + 时间窗' },
35
51
  { name: 'entry_when', note: '什么条件下适用' },
36
- { name: 'problem_class', note: '问题大类:mandatory,取值只能来自 §4.5 的四个大类' },
52
+ { name: 'problem_class', note: '问题大类:必填,取值只能来自 §4.5 的四个大类' },
37
53
  { name: 'problem_subclass', note: '问题子类:必须属于所选大类;它同时决定 §5.1 的 shape / time_pattern' },
38
54
  ],
39
55
  sections: ['观测口径', '典型信号', '不适用的情况', '关联假设'],
@@ -46,34 +62,35 @@ export const DIAGNOSIS_ENTITIES = [
46
62
  fields: [
47
63
  { name: 'discriminator', note: '**一句可判真假的话** —— 它同时是查重的比对对象' },
48
64
  { name: 'not_when', note: '**反例边界**:什么情况下这个假设不成立。refutes 边在文档层的表达' },
49
- { name: 'failure_mode', note: '切面:upstream-missing | spec-change | data-processing | consumption | permission' },
50
- { name: 'verified_by', note: '引用的检查 id 列表' },
51
- { name: 'assets', note: '关联资产(表 / 指标 / 任务)' },
65
+ { name: 'failure_reason', note: '切面:upstream-missing | spec-change | data-processing | consumption | permission' },
66
+ { name: 'verified_by', note: '引用的检查点 id 列表' },
67
+ { name: 'assets', note: '这条假设**落在**哪些对象上(反向索引入口)。可写成 `"dwd_ord_di"`,或 `{ id, type }` 顺带声明种类' },
52
68
  { name: 'stats', system: true, note: 'prior / last_hit_at / refutes_count / case_count' },
53
69
  ],
54
70
  sections: ['判据', '反例边界', '典型信号', '关联检查', '案例索引'],
55
71
  },
56
72
  {
57
- entityType: 'diagnosis/check',
58
- kind: 'check',
73
+ entityType: 'diagnosis/check-point',
74
+ kind: 'check_point',
59
75
  layer: 'type',
60
- label: '检查',
76
+ label: '检查点',
61
77
  fields: [
62
78
  { name: 'cost_minutes', note: '耗时(分钟),优先分的分母' },
63
79
  { name: 'automation', note: 'auto | manual' },
64
80
  { name: 'owner', note: '执行人或角色' },
65
81
  { name: 'verdict_true', note: '**看到什么算真**' },
66
82
  { name: 'verdict_false', note: '**看到什么算假** —— 只写「算真」就无法否定假设' },
67
- { name: 'runbook', note: '怎么跑:SQL / 工具 / 找谁' },
83
+ { name: 'runbook', note: '怎么跑:SQL / 工具 / 找谁。**可复用的查询模板**写这里' },
68
84
  { name: 'side_effect', note: '是否有副作用(只读 / 会写)' },
85
+ { name: 'assets', note: '**查询依据**:这条检查要去查哪些对象(表 / 指标 / 任务 / 链路)。可写成 `"dwd_ord_di"`,或 `{ id, type }` 顺带声明种类' },
69
86
  ],
70
87
  sections: ['怎么跑', '判定阈值', '有结论与无结论的区分'],
71
88
  },
72
89
  {
73
- entityType: 'diagnosis/failure-mode',
74
- kind: 'failure-mode',
90
+ entityType: 'diagnosis/failure-reason',
91
+ kind: 'failure_reason',
75
92
  layer: 'type',
76
- label: '失败模式(切面)',
93
+ label: '失败原因',
77
94
  fields: [
78
95
  { name: 'code', note: '稳定编码' },
79
96
  { name: 'label', note: '界面词' },
@@ -88,7 +105,7 @@ export const DIAGNOSIS_ENTITIES = [
88
105
  label: '案例',
89
106
  fields: [
90
107
  { name: 'symptom', note: '入口现象 id' },
91
- { name: 'path', note: '**有序**节点序列:现象 → 假设 → 检查 → 证据 → 根因' },
108
+ { name: 'path', note: '**有序**节点序列:现象 → 假设 → 检查点 → 证据 → 根因' },
92
109
  { name: 'duration_minutes', note: '总耗时' },
93
110
  { name: 'misleading_edges', note: '误导边:节点 + 浪费的分钟数 + 为什么' },
94
111
  { name: 'root_cause', note: '根因一句话' },
@@ -98,7 +115,7 @@ export const DIAGNOSIS_ENTITIES = [
98
115
  sections: ['现象', '影响面', '排查过程', '根因', '修复与防复发'],
99
116
  },
100
117
  ];
101
- /** 语义校验用的判据:check 的标题必须**可执行**。 */
118
+ /** 语义校验用的判据:检查点的标题必须**可执行**。 */
102
119
  const VAGUE_CHECK_TITLES = /^(检查|看看|排查|确认)?\s*(一下)?\s*(数据质量|是不是|有没有问题|上游|下游)/;
103
120
  function fieldIssue(node, field, message) {
104
121
  return { level: 'format', entityId: node.id, field, message };
@@ -111,6 +128,9 @@ export function specOf(kind) {
111
128
  *
112
129
  * 分开报错不是洁癖:**格式错说明卡片没填完,引用错说明图断了,语义错说明这条知识
113
130
  * 本身没用**。三者对应的动作完全不同(补字段 / 修边 / 重写),混在一起就只能靠猜。
131
+ *
132
+ * 它同时是**提议阶段与确认阶段的前置**(0021 §6.5):两道都跑,是因为这两次修改
133
+ * 来自不同的人。
114
134
  */
115
135
  export function validateDiagnosis(graph) {
116
136
  const issues = [];
@@ -126,8 +146,8 @@ export function validateDiagnosis(graph) {
126
146
  issues.push(fieldIssue(node, 'discriminator', '假设必须有一句可判真假的判据'));
127
147
  if (!node.notWhen?.trim())
128
148
  issues.push(fieldIssue(node, 'notWhen', '假设必须写明反例边界 —— 否则查重会把相似情形并成一条'));
129
- if (!node.failureMode)
130
- issues.push(fieldIssue(node, 'failureMode', '假设必须归属一个失败模式切面'));
149
+ if (!node.failureReason)
150
+ issues.push(fieldIssue(node, 'failureReason', '假设必须归属一个失败原因切面'));
131
151
  }
132
152
  if (node.kind === 'symptom') {
133
153
  // 问题侧的分类是**必填**:留空的后果不是「少个字段」,而是这个现象在按问题筛选时
@@ -152,13 +172,26 @@ export function validateDiagnosis(graph) {
152
172
  // 分类字段只属于现象。假设上挂问题大类,会把「问题」和「原因」两根轴搅在一起。
153
173
  issues.push(fieldIssue(node, 'problemClass', '问题分类只能写在现象(symptom)上,不能挂在原因侧'));
154
174
  }
155
- if (node.kind === 'check') {
175
+ if (node.kind === 'check_point') {
156
176
  for (const [field, value] of [['costMinutes', node.costMinutes], ['automation', node.automation], ['owner', node.owner], ['verdictTrue', node.verdictTrue], ['verdictFalse', node.verdictFalse]]) {
157
177
  if (value === undefined || value === '')
158
- issues.push(fieldIssue(node, field, `检查缺少 ${field} —— 缺了它这一步就无法被自动化或复核`));
178
+ issues.push(fieldIssue(node, field, `检查点缺少 ${field} —— 缺了它这一步就无法被自动化或复核`));
179
+ }
180
+ // `assets[]` 是 v1.3 的必填:缺了它,这条检查**不知道去哪查**,
181
+ // 也就没法生成查询、判断影响面。
182
+ if (!node.assets || node.assets.length === 0) {
183
+ issues.push(fieldIssue(node, 'assets', '检查点必须写明查询依据(assets[])—— 缺了它这条检查不知道去哪查'));
159
184
  }
160
185
  }
161
- // `case` 节点只是图上的桩:案例的正文与路径住在 `cases.json` 里,由
186
+ if (node.kind === 'evidence') {
187
+ if (!node.query?.trim())
188
+ issues.push(fieldIssue(node, 'query', '证据必须记下这次实际跑的查询'));
189
+ if (!node.verdict)
190
+ issues.push(fieldIssue(node, 'verdict', '证据必须给出结论:supports / refutes / inconclusive'));
191
+ if (!node.why?.trim())
192
+ issues.push(fieldIssue(node, 'why', '证据必须说明「为什么这个结果算数或不算数」—— 采信与剔除都得能说理由'));
193
+ }
194
+ // `case` 节点只是图上的桩:案例的正文与路径住在案例卡片里,由
162
195
  // DiagnosisSnapshot.cases 校验,不在节点上重复要求。
163
196
  }
164
197
  // ── 第二层:引用完整性 ────────────────────────────────────────────────────
@@ -174,24 +207,30 @@ export function validateDiagnosis(graph) {
174
207
  const hasCheck = graph.edges.some(edge => edge.kind === 'verified_by' && edge.source === node.id);
175
208
  // 空区不是错,是**待办**:它是一条信息(这张图哪里还没建完),所以只提示不报错。
176
209
  if (!hasCheck)
177
- issues.push({ level: 'semantic', entityId: node.id, message: '空区:有假设但没有任何检查,拿不出成本,因此进不了排序' });
210
+ issues.push({ level: 'semantic', entityId: node.id, message: '空区:有假设但没有任何检查点,拿不出成本,因此进不了排序' });
178
211
  }
179
212
  // ── 第三层:语义 ──────────────────────────────────────────────────────────
180
213
  for (const node of graph.nodes) {
181
- if (node.kind !== 'check')
214
+ if (node.kind !== 'check_point')
182
215
  continue;
183
216
  if (VAGUE_CHECK_TITLES.test(node.title.trim())) {
184
217
  issues.push({
185
218
  level: 'semantic',
186
219
  entityId: node.id,
187
220
  field: 'title',
188
- message: `检查标题不可执行:「${node.title}」。必须能回答「谁、用什么、多久、看到什么算真、看到什么算假」`,
221
+ message: `检查点标题不可执行:「${node.title}」。必须能回答「谁、用什么、多久、看到什么算真、看到什么算假」`,
189
222
  });
190
223
  }
191
224
  }
192
225
  return issues;
193
226
  }
194
- /** 空的模板卡:新人写卡片时看的是它,不是 schema。 */
227
+ /**
228
+ * 空的模板卡:新人写卡片时看的是它,不是 schema。
229
+ *
230
+ * 模板卡**由类型定义派生、不再落成磁盘文件**(0021 §6.6):模板是类型定义的一种
231
+ * 呈现,定义搬进设置,模板跟着走 —— 否则会出现「设置里改了、磁盘上那份没改」的
232
+ * 第二真源。
233
+ */
195
234
  export function templateCard(spec) {
196
235
  const front = [
197
236
  `entity_type: ${spec.entityType}`,
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/diagnosis/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/diagnosis/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AA+C9F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,mBAAmB;IACnB,sBAAsB;IACtB,uBAAuB;IACvB,0BAA0B;IAC1B,gBAAgB;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwC;IACtE,iBAAiB,EAAE,uBAAuB;IAC1C,wBAAwB,EAAE,0BAA0B;CACrD,CAAA;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,YAAY,EAAE,gBAAgB;CAC/B,CAAA;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAE9F,mBAAmB;AACnB,MAAM,CAAC,MAAM,kBAAkB,GAAyB;IACtD,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,6BAA6B,EAAE;IACnD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,+DAA+D,EAAE;IACzF,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;IAC9B,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,qDAAqD,EAAE;CAC7F,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA0B;IACvD;QACE,UAAU,EAAE,mBAAmB;QAC/B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,IAAI;QACX,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACnD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;YACvC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAC5D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,iDAAiD,EAAE;SACtF;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;KAC7C;IACD;QACE,UAAU,EAAE,sBAAsB;QAClC,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,IAAI;QACX,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,6BAA6B,EAAE;YAC9D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,wCAAwC,EAAE;YACpE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gFAAgF,EAAE;YAClH,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,oEAAoE,EAAE;YAC9F,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,kDAAkD,EAAE;SAC1F;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KACjD;IACD;QACE,UAAU,EAAE,uBAAuB;QACnC,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE;YAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE;YAC5C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,6BAA6B,EAAE;YAC9D,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,mCAAmC,EAAE;YAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAChD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mFAAmF,EAAE;SAC9G;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC;KACxC;IACD;QACE,UAAU,EAAE,0BAA0B;QACtC,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;QACb,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;YAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;YAC9B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,EAAE;SACpD;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC;KACvC;IACD;QACE,UAAU,EAAE,gBAAgB;QAC5B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,EAAE;YAC5D,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE;YACzC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,uBAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;YACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;YAC/B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;SACtC;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;KAChD;CACF,CAAA;AAED,gCAAgC;AAChC,MAAM,kBAAkB,GAAG,kDAAkD,CAAA;AAW7E,SAAS,UAAU,CAAC,IAAqB,EAAE,KAAa,EAAE,OAAe;IACvE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAyB;IAC9C,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAChE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA2B;IAC3D,MAAM,MAAM,GAAqB,EAAE,CAAA;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAE9D,uEAAuE;IACvE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;QAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAA;YACjG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,8BAA8B,CAAC,CAAC,CAAA;YACnG,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAA;QAC3F,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,4CAA4C;YAC5C,8BAA8B;YAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,gBAAgB,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YACjG,CAAC;iBAAM,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;YAC/E,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,uDAAuD,CAAC,CAAC,CAAA;YAC3G,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;YACrF,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAE,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAC5C,MAAM,IAAI,CAAC,eAAe,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAE,CAAC,OAAO,CAAC,WAAW,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;YACnK,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACrD,yCAAyC;YACzC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,8BAA8B,CAAC,CAAC,CAAA;QAC/E,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAU,EAAE,CAAC;gBAC1M,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;oBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,KAAK,sBAAsB,CAAC,CAAC,CAAA;YACrH,CAAC;YACD,4CAA4C;YAC5C,kBAAkB;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,uCAAuC,CAAC,CAAC,CAAA;YAClF,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAA;YACjF,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,4CAA4C,CAAC,CAAC,CAAA;YACzG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,qCAAqC,CAAC,CAAC,CAAA;QACpG,CAAC;QACD,oCAAoC;QACpC,wCAAwC;IAC1C,CAAC;IAED,oEAAoE;IACpE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,MAAM,EAAE,CAAC,CAAA;QACvI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,MAAM,EAAE,CAAC,CAAA;IACzI,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,SAAQ;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;QACjG,4CAA4C;QAC5C,IAAI,CAAC,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAC/G,CAAC;IAED,uEAAuE;IACvE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;YAAE,SAAQ;QACzC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACjB,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,cAAc,IAAI,CAAC,KAAK,iCAAiC;aACnE,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAyB;IACpD,MAAM,KAAK,GAAG;QACZ,gBAAgB,IAAI,CAAC,UAAU,EAAE;QACjC,MAAM;QACN,SAAS;QACT,oBAAoB;QACpB,SAAS;QACT,iBAAiB;QACjB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC;KAC9E,CAAA;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvE,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAA;AACnD,CAAC"}
@@ -2,8 +2,15 @@ export interface SeedSource {
2
2
  /** 稳定 id,用作 `external_id`,迁移与重跑都靠它幂等。 */
3
3
  id: string;
4
4
  title: string;
5
- /** 来源分类。排查手册与复盘都属于既有的 `question`(「问题排查文档」)。 */
6
- sourceType: 'question';
5
+ /**
6
+ * 来源分类。**两种**:
7
+ * - `question`:人写的手册与复盘(卡片 `source_refs` 指向这里);
8
+ * - `agent_diagnosis_case`:Agent 跑出来的三次排查记录(v1.1 新增的来源分类)。
9
+ *
10
+ * 边界裁决是「谁写的、是不是已经归纳过」:同一件事可以有两条来源,
11
+ * 一个回答「结论是什么」,一个回答「当时怎么走的」。
12
+ */
13
+ sourceType: 'question' | 'agent_diagnosis_case';
7
14
  content: string;
8
15
  }
9
16
  /**
@@ -16,5 +23,13 @@ export interface SeedSource {
16
23
  export declare const SEED_HANDBOOK = "# \u65E5\u62A5\u6307\u6807\u5F02\u5E38\u6392\u67E5\u624B\u518C\uFF08\u5185\u90E8\u7248\uFF09\n\n## \u8FD9\u4EFD\u624B\u518C\u89E3\u51B3\u4EC0\u4E48\n\n\u65E5\u62A5\u6307\u6807\u51FA\u73B0\u5F02\u5E38\u6CE2\u52A8\u65F6\uFF0C\u503C\u73ED\u540C\u5B66\u7684\u7B2C\u4E00\u53CD\u5E94\u901A\u5E38\u662F\u300C\u5148\u770B\u770B\u4E0A\u6E38\u300D\u3002\u8FD9\u53E5\u8BDD\u6CA1\u9519\uFF0C\u4F46\u5B83\u4E0D\u662F\u6D41\u7A0B\u3002\n\u624B\u518C\u628A\u300C\u5148\u770B\u4EC0\u4E48\u300D\u56FA\u5B9A\u4E0B\u6765\uFF1A**\u6BCF\u4E00\u8F6E\u53EA\u505A\u6210\u672C\u6700\u4F4E\u7684\u90A3\u4E2A\u68C0\u67E5**\uFF0C\u7528\u5B83\u7684\u7ED3\u8BBA\u53BB\u780D\u5019\u9009\uFF0C\u800C\u4E0D\u662F\n\u51ED\u5370\u8C61\u6311\u4E00\u4E2A\u65B9\u5411\u6DF1\u6316\u3002\n\n## \u73B0\u8C61\u5148\u5206\u56DB\u7C7B\n\n\u770B\u5230\u5F02\u5E38\u5148\u5224\u65AD\u5B83\u5C5E\u4E8E\u54EA\u4E00\u7C7B\uFF0C\u8FD9\u51B3\u5B9A\u4E86\u540E\u9762\u5F80\u54EA\u4E2A\u65B9\u5411\u627E\uFF1A\n\n- **\u7F3A\u5931**\uFF1A\u8BE5\u6709\u7684\u6CA1\u6709 \u2014\u2014 \u5168\u91CF\u4E3A 0\u3001\u5206\u533A\u6216\u8868\u672A\u4EA7\u51FA\u3001\u4EFB\u52A1\u62A5\u9519\u672A\u4EA7\u51FA\uFF1B\n- **\u504F\u5DEE**\uFF1A\u6709\uFF0C\u4F46\u5E45\u5EA6\u4E0D\u5BF9 \u2014\u2014 \u7A81\u964D\u3001\u7F13\u964D\u3001\u7A81\u589E\u3001\u7F13\u5347\uFF1B\n- **\u4E0D\u4E00\u81F4**\uFF1A\u6709\uFF0C\u4F46\u5BF9\u4E0D\u4E0A \u2014\u2014 \u4E0E\u6E90\u7CFB\u7EDF\u5BF9\u4E0D\u4E0A\u3001\u8DE8\u62A5\u8868\u52FE\u7A3D\u4E0D\u5E73\u3001\u53E3\u5F84\u53D8\u66F4\u540E\u4E0D\u4E00\u81F4\uFF1B\n- **\u7C92\u5EA6**\uFF1A\u6709\uFF0C\u4F46\u5207\u5206\u4E0D\u5BF9 \u2014\u2014 \u7EF4\u5EA6\u503C\u7F3A\u5931\u3001\u91CD\u590D\u8BA1\u6570\u3001\u6620\u5C04\u9519\u4F4D\u3002\n\n\u4E3A 0 \u548C\u7A81\u589E\u770B\u8D77\u6765\u76F8\u53CD\uFF0C\u4F46\u5B83\u4EEC\u7684\u5019\u9009\u539F\u56E0**\u6709\u91CD\u53E0**\uFF1A\u91CD\u590D / \u56DE\u5237\u65E2\u80FD\u9020\u6210\u653E\u5927\uFF0C\u4E5F\u80FD\u5728\u53BB\u91CD\u903B\u8F91\n\u4ECB\u5165\u540E\u9020\u6210\u9AA4\u964D\uFF1B\u4E0B\u6E38\u7F13\u5B58\u65E2\u80FD\u63A9\u76D6\u66F4\u65B0\uFF08\u770B\u8D77\u6765\u964D\u4E86\uFF09\uFF0C\u4E5F\u80FD\u91CD\u590D\u5C55\u793A\uFF08\u770B\u8D77\u6765\u6DA8\u4E86\uFF09\u3002\u6240\u4EE5\u4E0D\u8981\n\u6309\u300C\u6DA8\u8FD8\u662F\u8DCC\u300D\u53BB\u6392\u9664\u5047\u8BBE\uFF0C\u8981\u6309\u68C0\u67E5\u7ED3\u8BBA\u53BB\u780D\u3002\n\n## \u5019\u9009\u539F\u56E0\uFF08\u7C7B\u578B\u5C42\uFF09\n\n1. **\u4E0A\u6E38\u5206\u533A\u672A\u4EA7\u51FA** \u2014\u2014 \u5F53\u65E5 dwd / ods \u5206\u533A\u4E0D\u5B58\u5728 \u2192 \u6307\u6807\u5FC5\u7136\u4E3A 0\u3002\n \u53CD\u4F8B\uFF1A\u5206\u533A\u5B58\u5728\u4F46\u884C\u6570\u4E3A 0\uFF08\u90A3\u662F\u91CD\u590D / \u56DE\u5237\u7684\u53E6\u4E00\u9762\uFF09\uFF0C\u6216\u8005\u5206\u533A\u6B63\u5E38\u800C\u6307\u6807\u4ECD\u4E3A 0\uFF08\u90A3\u662F\u53E3\u5F84\u6216\u6D88\u8D39\u4FA7\uFF09\u3002\n2. **\u53E3\u5F84 / \u7248\u672C\u53D8\u66F4** \u2014\u2014 \u53E3\u5F84\u7248\u672C\u5207\u6362\u540E\uFF0C\u540C\u540D\u8BCD\u6307\u6807\u5728\u4E24\u7248\u5B9A\u4E49\u4E0B\u53E3\u5F84\u4E0D\u4E00\u81F4\u3002\n \u53CD\u4F8B\uFF1A\u53E3\u5F84\u672A\u53D8\u66F4\u65F6\u672C\u5047\u8BBE\u4E0D\u6210\u7ACB \u2014\u2014 \u4E0D\u8981\u7528\u300C\u540D\u5B57\u4E00\u6837\u300D\u5F53\u4F5C\u53E3\u5F84\u4E00\u81F4\u7684\u8BC1\u636E\u3002\n3. **\u7EF4\u8868\u6620\u5C04\u4E22\u5931** \u2014\u2014 \u7EF4\u8868 join \u540E unknown \u5360\u6BD4\u663E\u8457\u5347\u9AD8\uFF0C\u4E14\u7F3A\u53E3\u96C6\u4E2D\u5728\u65B0\u589E\u7EF4\u5EA6\u6210\u5458\u4E0A\u3002\n \u53CD\u4F8B\uFF1Aunknown \u5360\u6BD4\u6B63\u5E38\u65F6\u672C\u5047\u8BBE\u4E0D\u6210\u7ACB\uFF1B\u7F3A\u53E3\u5747\u5300\u5206\u5E03\u65F6\u5E94\u8F6C\u65F6\u95F4\u7A97\u53E3\u6216\u91CD\u590D / \u56DE\u5237\u3002\n4. **\u91CD\u590D / \u56DE\u5237** \u2014\u2014 \u4E3B\u952E\u4E0D\u552F\u4E00\uFF0C\u6216\u5206\u533A\u884C\u6570\u540C\u6BD4\u653E\u5927\u3002\u4E0A\u6E38\u91CD\u8DD1\u5199\u5165\u91CD\u590D\u884C \u2192 \u8BA1\u6570\u7C7B\u6307\u6807\u653E\u5927\u3002\n \u53CD\u4F8B\uFF1A\u4E3B\u952E\u552F\u4E00\u6027\u68C0\u67E5\u901A\u8FC7\u65F6\u672C\u5047\u8BBE\u4E0D\u6210\u7ACB \u2014\u2014 \u8FD9\u662F\u6700\u5E38\u88AB\u8BEF\u5224\u7684\u4E00\u6761\u3002\n5. **\u65F6\u95F4\u7A97\u53E3 / \u65F6\u533A** \u2014\u2014 \u5206\u533A\u5185\u4E8B\u4EF6\u65F6\u95F4\u8DE8\u51FA T-1 \u5355\u65E5\u7A97\u53E3\uFF0C\u4E14\u53EA\u6709\u5355\u65E5\u5F02\u5E38\u3002\n \u53CD\u4F8B\uFF1A\u76F8\u90BB\u65E5\u671F\u540C\u65F6\u5F02\u5E38\u65F6\u5E94\u8F6C\u53E3\u5F84\u53D8\u66F4\u3002\n6. **\u6743\u9650 / \u8FC7\u6EE4\u6761\u4EF6** \u2014\u2014 \u7ED3\u679C\u96C6\u88AB\u884C\u7EA7\u6743\u9650\u6216 where \u6761\u4EF6\u9759\u9ED8\u6536\u7A84\u3002\n \u53CD\u4F8B\uFF1A\u6743\u9650\u4E0E\u8FC7\u6EE4\u6761\u4EF6\u5728\u672C\u5468\u671F\u672A\u53D8\u66F4\u65F6\u672C\u5047\u8BBE\u4E0D\u6210\u7ACB\u3002\n7. **\u4E0B\u6E38 BI \u7F13\u5B58 / \u589E\u91CF** \u2014\u2014 BI \u5C55\u793A\u4FA7\u6EDE\u540E\uFF0C\u4F46\u76F4\u8FDE\u660E\u7EC6\u7684\u6570\u5B57\u6B63\u5E38\u3002\n \u53CD\u4F8B\uFF1A\u660E\u7EC6\u5BF9\u8D26\u4E00\u81F4\u65F6\u672C\u5047\u8BBE\u4E0D\u6210\u7ACB\u3002**\u6CE8\u610F\uFF1A\u67E5\u7F13\u5B58\u65F6\u95F4\u6233\u53EA\u8981 2 \u5206\u949F\uFF0C\u4F46\u5B83\u8FD4\u56DE\u300C\u6B63\u5E38\u300D\n \u5E76\u4E0D\u80FD\u5426\u5B9A\u8FD9\u6761\u5047\u8BBE** \u2014\u2014 \u8981\u5426\u5B9A\u5B83\u5FC5\u987B\u505A 35 \u5206\u949F\u7684\u4EBA\u5DE5\u660E\u7EC6\u5BF9\u8D26\u3002\n\n## \u68C0\u67E5\u7684\u6210\u672C\u610F\u8BC6\n\n\u6BCF\u4E2A\u5047\u8BBE\u4E0B\u9762\u6302\u7684\u68C0\u67E5\u8981\u5199\u6E05\u4E09\u4EF6\u4E8B\uFF1A\u591A\u4E45\u3001\u80FD\u4E0D\u80FD\u81EA\u52A8\u8DD1\u3001\u770B\u5230\u4EC0\u4E48\u7B97\u771F\u3001\u770B\u5230\u4EC0\u4E48\u7B97\u5047\u3002\n\u53EA\u5199\u300C\u7B97\u771F\u300D\u4E0D\u5199\u300C\u7B97\u5047\u300D\u7684\u68C0\u67E5\uFF0C\u7B49\u4E8E\u6CA1\u6709\u529E\u6CD5\u5426\u5B9A\u4EFB\u4F55\u5047\u8BBE\u3002\n\n\u6700\u8D35\u7684\u90A3\u6761\u77E5\u8BC6\u4E0D\u662F\u300C\u54EA\u4E2A\u68C0\u67E5\u6700\u51C6\u300D\uFF0C\u800C\u662F**\u54EA\u4E2A\u68C0\u67E5\u770B\u8D77\u6765\u4FBF\u5B9C\u5374\u6CA1\u6709\u7ED3\u8BBA**\u3002\n\u300C\u67E5\u7F13\u5B58\u65F6\u95F4\u6233\u300D\u5C31\u662F\u5178\u578B\uFF1A2 \u5206\u949F\u3001\u81EA\u52A8\u3001\u8FD4\u56DE\u6B63\u5E38 \u2014\u2014 \u7136\u540E\u503C\u73ED\u540C\u5B66\u4F1A\u4EE5\u4E3A\u6392\u9664\u4E86\u7F13\u5B58\uFF0C\n\u63A5\u7740\u5728\u522B\u7684\u65B9\u5411\u4E0A\u518D\u70E7\u56DB\u5341\u5206\u949F\u3002\u8FD9\u7C7B\u68C0\u67E5\u8981\u4E48\u6807\u6CE8\u300C\u65E0\u7ED3\u8BBA\u300D\uFF0C\u8981\u4E48\u8865\u4E00\u6B21\u771F\u6B63\u80FD\u8BC1\u4F2A\u7684\u68C0\u67E5\u3002\n\n## \u4E00\u6761\u7EAA\u5F8B\n\n**\u5426\u5B9A\u4E5F\u662F\u77E5\u8BC6\u3002** \u6BCF\u6B21\u6392\u67E5\u90FD\u8981\u628A\u300C\u5426\u5B9A\u4E86\u54EA\u6761\u5047\u8BBE\u3001\u56E0\u4E3A\u4EC0\u4E48\u300D\u8BB0\u4E0B\u6765\u3002\u53EA\u8BB0\u6210\u529F\u7684\u6392\u67E5\u4F1A\u8BA9\n\u540C\u4E00\u6279\u5047\u8BBE\u88AB\u53CD\u590D\u9A8C\u8BC1\uFF0C\u800C\u6C38\u8FDC\u4E0D\u4F1A\u88AB\u526A\u6389 \u2014\u2014 \u56FE\u4E0A\u4F1A\u957F\u51FA\u4E00\u5806\u50F5\u5C38\u8FB9\u3002\n";
17
24
  /** 三篇复盘:案例卡片的出处。正文就是案例的散文段(现象 / 影响面 / 排查过程 / 根因 / 修复)。 */
18
25
  export declare function seedCaseSources(): SeedSource[];
26
+ /**
27
+ * 三次排查的**过程记录**。
28
+ *
29
+ * 它们不由散文手写,而是从 `SEED_RUNS` **渲染**出来(`renderRunSource`)——
30
+ * 这正是运行时那条路径:一次排查结束 → 一条 `agent_diagnosis_case` 的 SourceRaw。
31
+ * 示例走同一条路,所以它同时也是这条路的回归夹具。
32
+ */
33
+ export declare function seedRunSources(): SeedSource[];
19
34
  export declare function seedSources(): SeedSource[];
20
35
  //# sourceMappingURL=seed-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"seed-source.d.ts","sourceRoot":"","sources":["../../../src/diagnosis/seed-source.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,69NAoDzB,CAAA;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAY9C;AAED,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAK1C"}
1
+ {"version":3,"file":"seed-source.d.ts","sourceRoot":"","sources":["../../../src/diagnosis/seed-source.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,UAAU,EAAE,UAAU,GAAG,sBAAsB,CAAA;IAC/C,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,69NAoDzB,CAAA;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,IAAI,UAAU,EAAE,CAY9C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAO7C;AAED,wBAAgB,WAAW,IAAI,UAAU,EAAE,CAM1C"}
@@ -12,7 +12,8 @@
12
12
  * 手册与复盘是**人写的散文**(就是下面这些字面量),卡片是从它们编译出来的结构化提取。
13
13
  * 两者内容会有重叠 —— 那是正常的:卡片是散文的投影,不是它的替代品。
14
14
  */
15
- import { SEED_CASES } from './seed.js';
15
+ import { SEED_CASES, SEED_RUNS } from './seed.js';
16
+ import { renderRunSource } from './run.js';
16
17
  /**
17
18
  * 排查手册:**类型层知识的出处**。
18
19
  *
@@ -87,10 +88,26 @@ export function seedCaseSources() {
87
88
  ].join('\n'),
88
89
  }));
89
90
  }
91
+ /**
92
+ * 三次排查的**过程记录**。
93
+ *
94
+ * 它们不由散文手写,而是从 `SEED_RUNS` **渲染**出来(`renderRunSource`)——
95
+ * 这正是运行时那条路径:一次排查结束 → 一条 `agent_diagnosis_case` 的 SourceRaw。
96
+ * 示例走同一条路,所以它同时也是这条路的回归夹具。
97
+ */
98
+ export function seedRunSources() {
99
+ return SEED_RUNS.map(record => ({
100
+ id: record.runId,
101
+ title: `AI 诊断日志 · ${record.symptomId} · ${record.runId}`,
102
+ sourceType: 'agent_diagnosis_case',
103
+ content: renderRunSource(record),
104
+ }));
105
+ }
90
106
  export function seedSources() {
91
107
  return [
92
108
  { id: 'handbook', title: '日报指标异常排查手册(内部版)', sourceType: 'question', content: SEED_HANDBOOK },
93
109
  ...seedCaseSources(),
110
+ ...seedRunSources(),
94
111
  ];
95
112
  }
96
113
  //# sourceMappingURL=seed-source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"seed-source.js","sourceRoot":"","sources":["../../../src/diagnosis/seed-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAWtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoD5B,CAAA;AAED,0DAA0D;AAC1D,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;QACjC,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5B,EAAE;YACF,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpF,QAAQ,IAAI,CAAC,eAAe,MAAM;SACnC,CAAC,IAAI,CAAC,IAAI,CAAC;KACb,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE;QAC5F,GAAG,eAAe,EAAE;KACrB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"seed-source.js","sourceRoot":"","sources":["../../../src/diagnosis/seed-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAkB1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoD5B,CAAA;AAED,0DAA0D;AAC1D,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;QACjC,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC5B,EAAE;YACF,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpF,QAAQ,IAAI,CAAC,eAAe,MAAM;SACnC,CAAC,IAAI,CAAC,IAAI,CAAC;KACb,CAAC,CAAC,CAAA;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9B,EAAE,EAAE,MAAM,CAAC,KAAK;QAChB,KAAK,EAAE,aAAa,MAAM,CAAC,SAAS,MAAM,MAAM,CAAC,KAAK,EAAE;QACxD,UAAU,EAAE,sBAA+B;QAC3C,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;KACjC,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE;QAC5F,GAAG,eAAe,EAAE;QACpB,GAAG,cAAc,EAAE;KACpB,CAAA;AACH,CAAC"}
@@ -1,50 +1,40 @@
1
- import type { AttributionGraphData } from './types.js';
1
+ import type { AttributionCase, AttributionGraphData, DiagnosisRunRecord } from './types.js';
2
2
  /**
3
- * 案例 = **一篇 wiki 定义 + 一条有序排查路径**。
3
+ * 内置**示例**:一份排查手册 + 三篇复盘 + 三次排查日志 + 由它们编出来的那张图。
4
4
  *
5
- * 两段各有明确消费者,不能合并:
6
- * - `sections` 是给人读、给向量召回的散文(可 diff、可评审、可追溯);
7
- * - `path` 是给图和剪枝用的结构(有序、可判真假、带被否定的分支)。
5
+ * 它现在只有一重身份:**用户点了「载入内置示例」才写进去的样例,以及回归夹具**。
8
6
  *
9
- * 序和枚举一旦写进散文,归并算法就再也读不到它们了 —— 所以路径单独成段。
10
- */
11
- export interface CaseSection {
12
- heading: string;
13
- body: string;
14
- }
15
- export interface CasePathStep {
16
- nodeId: string;
17
- label: string;
18
- note: string;
19
- /** 这一步的结论是「否定」:它把某个假设置于死地,而不是坐实。 */
20
- refuted?: boolean;
21
- }
22
- export interface AttributionCase {
23
- id: string;
24
- title: string;
25
- symptomId: string;
26
- sections: CaseSection[];
27
- path: CasePathStep[];
28
- durationMinutes: number;
29
- /** 误导段:最贵的那条知识。没有它,下次还会有人在同一个假设上烧掉四十分钟。 */
30
- misleading?: {
31
- nodeId: string;
32
- label: string;
33
- wastedMinutes: number;
34
- why: string;
35
- };
36
- rootCause: string;
37
- }
38
- /**
39
- * Seed 图谱:与 0021 §11 的三个案例同源,用来说明「同一现象有多个根因、否定边有用、
40
- * 误导边昂贵」。
7
+ * 原来是两重(另一重是「首次启动的起点」,由 `DiagnosisStore.ensure()` 自动写入)。
8
+ * 实跑反馈把它去掉了:这份示例长得像真的业务文档,而它落在用户自己的
9
+ * `01_source_truth/` 与 `02_wiki/` 里 —— 新装一台机器,一打开「智能归因」就凭空多出
10
+ * 几份来源和几十张卡片,读起来像「我的知识库内容跟着包过来了」。示例没有被删除
11
+ * (它仍然是稳定夹具,`tests/diagnosis-cards.test.mjs` 逐字段对着它断言),
12
+ * 只是不再自动落盘 —— 入口是 `DiagnosisStore.loadSample()`。
13
+ *
14
+ * **两条来源分类、两个作者**(v1.1 起):
15
+ *
16
+ * | 来源分类 | 谁写 | 装什么 |
17
+ * | --- | --- | --- |
18
+ * | `question` | 人 | 手册与复盘 —— 卡片 `source_refs` 指向这里 |
19
+ * | `agent_diagnosis_case` | Agent | 一次排查的过程记录(`SEED_RUNS`) |
41
20
  *
42
- * 它现在有两重身份:
43
- * 1. **首次启动的起点** —— `DiagnosisStore.ensure()` 在 `05_diagnosis/` 为空时把它写成
44
- * 真实的 jsonl,之后用户可以手改,不会被覆盖回去;
45
- * 2. **回归样本** —— 上面那三条结论需要一个稳定的夹具,所以它不会被删除。
21
+ * `SEED_GRAPH` 里**只有卡片定义得了的东西**:类型层、引用层资产、案例桩,以及六种卡片边。
22
+ * `evidence` / `cause` 与四条执行边由 `SEED_RUNS` 读时解析出来 —— 把「上次查到什么」
23
+ * 写进卡片,等于让一份可复用的知识绑死在一次执行上。
46
24
  */
47
25
  export declare const SEED_GRAPH: AttributionGraphData;
48
- /** 三个 seed 案例,与上面图谱里的节点 id 对齐(0021 §11)。 */
26
+ /** 三个 seed 案例卡片,与上面图谱里的节点 id 对齐(0021 §11)。 */
49
27
  export declare const SEED_CASES: AttributionCase[];
28
+ /**
29
+ * 三次排查的**过程记录**(`agent_diagnosis_case`)。
30
+ *
31
+ * 它们与 `SEED_CASES` 一一对应,但**不是同一份东西**:这里是 Agent 跑出来的原始记录
32
+ * (每条检查点真跑了什么、看到什么、这个结果算不算数),`SEED_CASES` 是之后归纳出来的
33
+ * 案例卡片(要经人确认才生效)。一个回答「当时怎么走的」,一个回答「结论是什么」。
34
+ *
35
+ * `E7` 是 CASE-001 里那次**贵的否定**:T7.2 直连明细对账推翻了 H7。它不在案例的
36
+ * 主路径上(主路径早就确认了 H1),但它是这次排查最贵的一条知识 —— 40 分钟的误导段
37
+ * 正是靠它收尾的。
38
+ */
39
+ export declare const SEED_RUNS: DiagnosisRunRecord[];
50
40
  //# sourceMappingURL=seed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/diagnosis/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,IAAI,EAAE,YAAY,EAAE,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,2CAA2C;IAC3C,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAClF,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,EAAE,oBAsKxB,CAAA;AAED,4CAA4C;AAC5C,eAAO,MAAM,UAAU,EAAE,eAAe,EA4EvC,CAAA"}
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../../src/diagnosis/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE3F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,EAAE,oBA4KxB,CAAA;AAED,8CAA8C;AAC9C,eAAO,MAAM,UAAU,EAAE,eAAe,EA4EvC,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,EAAE,kBAAkB,EAuGzC,CAAA"}