dsh-data-domain-knowledge 0.1.1-alpha.2 → 0.1.1-alpha.4

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 (252) hide show
  1. package/README.md +33 -16
  2. package/lib/client.js +1042 -2097
  3. package/lib/contract-refs.d.ts +0 -1
  4. package/lib/doc-page.js +1 -1
  5. package/lib/pages.js +2489 -1060
  6. package/lib/types/agent-behavior-rules.d.ts.map +1 -1
  7. package/lib/types/agent-behavior-rules.js +3 -2
  8. package/lib/types/agent-behavior-rules.js.map +1 -1
  9. package/lib/types/axis-contract.js +1 -1
  10. package/lib/types/axis-contract.js.map +1 -1
  11. package/lib/types/card-organize.d.ts +2 -1
  12. package/lib/types/card-organize.d.ts.map +1 -1
  13. package/lib/types/card-organize.js +5 -3
  14. package/lib/types/card-organize.js.map +1 -1
  15. package/lib/types/config-schema.d.ts +1 -1
  16. package/lib/types/config-schema.js +1 -1
  17. package/lib/types/convert/host.d.ts +2 -3
  18. package/lib/types/convert/host.d.ts.map +1 -1
  19. package/lib/types/convert/host.js +11 -2
  20. package/lib/types/convert/host.js.map +1 -1
  21. package/lib/types/convert/ingest.d.ts +14 -20
  22. package/lib/types/convert/ingest.d.ts.map +1 -1
  23. package/lib/types/convert/ingest.js +8 -5
  24. package/lib/types/convert/ingest.js.map +1 -1
  25. package/lib/types/diagnosis/store.d.ts +2 -2
  26. package/lib/types/diagnosis/store.d.ts.map +1 -1
  27. package/lib/types/diagnosis/store.js +10 -2
  28. package/lib/types/diagnosis/store.js.map +1 -1
  29. package/lib/types/diagnosis/types.d.ts +1 -1
  30. package/lib/types/diagnosis/types.js +1 -1
  31. package/lib/types/extract-model.d.ts +3 -0
  32. package/lib/types/extract-model.d.ts.map +1 -1
  33. package/lib/types/extract-model.js.map +1 -1
  34. package/lib/types/images.js +1 -1
  35. package/lib/types/index.d.ts +0 -4
  36. package/lib/types/index.d.ts.map +1 -1
  37. package/lib/types/index.js +99 -91
  38. package/lib/types/index.js.map +1 -1
  39. package/lib/types/knowledge-bases.d.ts +3 -0
  40. package/lib/types/knowledge-bases.d.ts.map +1 -1
  41. package/lib/types/knowledge-bases.js +22 -2
  42. package/lib/types/knowledge-bases.js.map +1 -1
  43. package/lib/types/knowledge-contract.d.ts +6 -0
  44. package/lib/types/knowledge-contract.d.ts.map +1 -1
  45. package/lib/types/knowledge-contract.js +6 -2
  46. package/lib/types/knowledge-contract.js.map +1 -1
  47. package/lib/types/layout.d.ts +9 -26
  48. package/lib/types/layout.d.ts.map +1 -1
  49. package/lib/types/layout.js +10 -28
  50. package/lib/types/layout.js.map +1 -1
  51. package/lib/types/materialize-snapshot.d.ts +5 -0
  52. package/lib/types/materialize-snapshot.d.ts.map +1 -1
  53. package/lib/types/migrate.d.ts +3 -1
  54. package/lib/types/migrate.d.ts.map +1 -1
  55. package/lib/types/migrate.js +3 -1
  56. package/lib/types/migrate.js.map +1 -1
  57. package/lib/types/model-text.d.ts +7 -0
  58. package/lib/types/model-text.d.ts.map +1 -1
  59. package/lib/types/model-text.js +31 -9
  60. package/lib/types/model-text.js.map +1 -1
  61. package/lib/types/organize-contract.d.ts.map +1 -1
  62. package/lib/types/organize-contract.js +2 -1
  63. package/lib/types/organize-contract.js.map +1 -1
  64. package/lib/types/pipeline/engine.d.ts +28 -4
  65. package/lib/types/pipeline/engine.d.ts.map +1 -1
  66. package/lib/types/pipeline/engine.js +68 -15
  67. package/lib/types/pipeline/engine.js.map +1 -1
  68. package/lib/types/pipeline/progress.d.ts +12 -0
  69. package/lib/types/pipeline/progress.d.ts.map +1 -0
  70. package/lib/types/pipeline/progress.js +37 -0
  71. package/lib/types/pipeline/progress.js.map +1 -0
  72. package/lib/types/pipeline/resumable-extract.d.ts +45 -0
  73. package/lib/types/pipeline/resumable-extract.d.ts.map +1 -0
  74. package/lib/types/pipeline/resumable-extract.js +262 -0
  75. package/lib/types/pipeline/resumable-extract.js.map +1 -0
  76. package/lib/types/pipeline/store.d.ts +8 -2
  77. package/lib/types/pipeline/store.d.ts.map +1 -1
  78. package/lib/types/pipeline/store.js +27 -5
  79. package/lib/types/pipeline/store.js.map +1 -1
  80. package/lib/types/pipeline/types.d.ts +56 -0
  81. package/lib/types/pipeline/types.d.ts.map +1 -1
  82. package/lib/types/pipeline/types.js +18 -1
  83. package/lib/types/pipeline/types.js.map +1 -1
  84. package/lib/types/present.d.ts +1 -1
  85. package/lib/types/present.js +1 -1
  86. package/lib/types/preset-ids.d.ts +0 -1
  87. package/lib/types/preset-ids.d.ts.map +1 -1
  88. package/lib/types/preset-ids.js +0 -3
  89. package/lib/types/preset-ids.js.map +1 -1
  90. package/lib/types/query-analysis.d.ts +0 -5
  91. package/lib/types/query-analysis.d.ts.map +1 -1
  92. package/lib/types/query-analysis.js +0 -16
  93. package/lib/types/query-analysis.js.map +1 -1
  94. package/lib/types/recall-delivery.d.ts +36 -0
  95. package/lib/types/recall-delivery.d.ts.map +1 -0
  96. package/lib/types/recall-delivery.js +16 -0
  97. package/lib/types/recall-delivery.js.map +1 -0
  98. package/lib/types/retrieval/scope.d.ts +17 -0
  99. package/lib/types/retrieval/scope.d.ts.map +1 -0
  100. package/lib/types/retrieval/scope.js +11 -0
  101. package/lib/types/retrieval/scope.js.map +1 -0
  102. package/lib/types/runtime.d.ts +75 -14
  103. package/lib/types/runtime.d.ts.map +1 -1
  104. package/lib/types/runtime.js +454 -198
  105. package/lib/types/runtime.js.map +1 -1
  106. package/lib/types/settings-volatile.d.ts +0 -7
  107. package/lib/types/settings-volatile.d.ts.map +1 -1
  108. package/lib/types/settings-volatile.js +0 -7
  109. package/lib/types/settings-volatile.js.map +1 -1
  110. package/lib/types/source-identity.d.ts +34 -0
  111. package/lib/types/source-identity.d.ts.map +1 -0
  112. package/lib/types/source-identity.js +85 -0
  113. package/lib/types/source-identity.js.map +1 -0
  114. package/lib/types/source-read.d.ts +18 -0
  115. package/lib/types/source-read.d.ts.map +1 -0
  116. package/lib/types/source-read.js +49 -0
  117. package/lib/types/source-read.js.map +1 -0
  118. package/lib/types/store/axis-references.d.ts.map +1 -1
  119. package/lib/types/store/axis-references.js +5 -3
  120. package/lib/types/store/axis-references.js.map +1 -1
  121. package/lib/types/store/knowledge-db.d.ts +5 -29
  122. package/lib/types/store/knowledge-db.d.ts.map +1 -1
  123. package/lib/types/store/knowledge-db.js +57 -2
  124. package/lib/types/store/knowledge-db.js.map +1 -1
  125. package/lib/types/store/source-identity.d.ts +8 -0
  126. package/lib/types/store/source-identity.d.ts.map +1 -0
  127. package/lib/types/store/source-identity.js +56 -0
  128. package/lib/types/store/source-identity.js.map +1 -0
  129. package/lib/types/types.d.ts +46 -5
  130. package/lib/types/types.d.ts.map +1 -1
  131. package/lib/types/types.js +6 -3
  132. package/lib/types/types.js.map +1 -1
  133. package/lib/types/wiki-availability.d.ts +11 -0
  134. package/lib/types/wiki-availability.d.ts.map +1 -0
  135. package/lib/types/wiki-availability.js +39 -0
  136. package/lib/types/wiki-availability.js.map +1 -0
  137. package/lib/types/wiki-finalize.d.ts +4 -2
  138. package/lib/types/wiki-finalize.d.ts.map +1 -1
  139. package/lib/types/wiki-finalize.js +9 -27
  140. package/lib/types/wiki-finalize.js.map +1 -1
  141. package/lib/types/wiki-links.d.ts +35 -0
  142. package/lib/types/wiki-links.d.ts.map +1 -0
  143. package/lib/types/wiki-links.js +129 -0
  144. package/lib/types/wiki-links.js.map +1 -0
  145. package/lib/types/wiki-trial-types.d.ts +3 -0
  146. package/lib/types/wiki-trial-types.d.ts.map +1 -1
  147. package/lib/types/wiki-trial.d.ts +3 -3
  148. package/lib/types/wiki-trial.d.ts.map +1 -1
  149. package/lib/types/wiki-trial.js +14 -3
  150. package/lib/types/wiki-trial.js.map +1 -1
  151. package/package.json +16 -16
  152. package/scripts/doctor.mjs +0 -7
  153. package/scripts/setup-embedding.sh +0 -0
  154. package/src/agent-behavior-rules.ts +3 -2
  155. package/src/axis-contract.ts +1 -1
  156. package/src/card-organize.ts +5 -3
  157. package/src/client/AttributionEventGuide.tsx +3 -3
  158. package/src/client/AxisMatrix.tsx +86 -19
  159. package/src/client/AxisRegistrySection.tsx +1 -1
  160. package/src/client/CompileSettingsView.tsx +473 -0
  161. package/src/client/DirectoryPicker.tsx +0 -2
  162. package/src/client/ExtractionTasksPage.tsx +557 -423
  163. package/src/client/GuideArchitectureCanvas.tsx +5 -12
  164. package/src/client/ImportFilesDialog.tsx +1 -0
  165. package/src/client/InfoHint.tsx +1 -1
  166. package/src/client/KnowledgeBaseTab.tsx +141 -148
  167. package/src/client/KnowledgePanel.tsx +16 -9
  168. package/src/client/OperationLogTab.tsx +1 -1
  169. package/src/client/PipelineRunView.tsx +173 -0
  170. package/src/client/RecallPanel.tsx +5 -16
  171. package/src/client/TabGuide.tsx +3 -7
  172. package/src/client/WikiFlowPanel.tsx +10 -11
  173. package/src/client/arch/NodeLogicPanel.tsx +3 -3
  174. package/src/client/arch/model.ts +5 -113
  175. package/src/client/architecture.css +1 -1
  176. package/src/client/architecture.tsx +13 -27
  177. package/src/client/attribution/AttributionTab.tsx +141 -10
  178. package/src/client/pages.css +305 -180
  179. package/src/client/pages.tsx +7 -12
  180. package/src/client/styles.css +15 -96
  181. package/src/config-schema.ts +1 -1
  182. package/src/convert/host.ts +13 -5
  183. package/src/convert/ingest.ts +20 -7
  184. package/src/diagnosis/store.ts +7 -2
  185. package/src/diagnosis/types.ts +1 -1
  186. package/src/extract-model.ts +3 -0
  187. package/src/images.ts +1 -1
  188. package/src/index.ts +92 -97
  189. package/src/knowledge-bases.ts +23 -3
  190. package/src/knowledge-contract.ts +7 -2
  191. package/src/layout.ts +10 -32
  192. package/src/materialize-snapshot.ts +1 -0
  193. package/src/migrate.ts +3 -1
  194. package/src/model-text.ts +33 -11
  195. package/src/organize-contract.ts +2 -1
  196. package/src/pipeline/engine.ts +85 -22
  197. package/src/pipeline/progress.ts +40 -0
  198. package/src/pipeline/resumable-extract.ts +233 -0
  199. package/src/pipeline/store.ts +28 -6
  200. package/src/pipeline/types.ts +47 -2
  201. package/src/present.ts +1 -1
  202. package/src/preset-ids.ts +0 -4
  203. package/src/query-analysis.ts +0 -20
  204. package/src/recall-delivery.ts +19 -0
  205. package/src/retrieval/scope.ts +10 -0
  206. package/src/runtime.ts +412 -206
  207. package/src/settings-volatile.ts +0 -7
  208. package/src/source-identity.ts +85 -0
  209. package/src/source-read.ts +47 -0
  210. package/src/store/axis-references.ts +5 -3
  211. package/src/store/knowledge-db.ts +54 -2
  212. package/src/store/source-identity.ts +42 -0
  213. package/src/types.ts +18 -5
  214. package/src/wiki-availability.ts +37 -0
  215. package/src/wiki-finalize.ts +9 -25
  216. package/src/wiki-links.ts +120 -0
  217. package/src/wiki-trial-types.ts +3 -2
  218. package/src/wiki-trial.ts +17 -6
  219. package/lib/types/intent/engine.d.ts +0 -122
  220. package/lib/types/intent/engine.d.ts.map +0 -1
  221. package/lib/types/intent/engine.js +0 -488
  222. package/lib/types/intent/engine.js.map +0 -1
  223. package/lib/types/intent/host.d.ts +0 -68
  224. package/lib/types/intent/host.d.ts.map +0 -1
  225. package/lib/types/intent/host.js +0 -249
  226. package/lib/types/intent/host.js.map +0 -1
  227. package/lib/types/intent/scope.d.ts +0 -25
  228. package/lib/types/intent/scope.d.ts.map +0 -1
  229. package/lib/types/intent/scope.js +0 -116
  230. package/lib/types/intent/scope.js.map +0 -1
  231. package/lib/types/intent/store.d.ts +0 -33
  232. package/lib/types/intent/store.d.ts.map +0 -1
  233. package/lib/types/intent/store.js +0 -239
  234. package/lib/types/intent/store.js.map +0 -1
  235. package/lib/types/intent/tools.d.ts +0 -62
  236. package/lib/types/intent/tools.d.ts.map +0 -1
  237. package/lib/types/intent/tools.js +0 -130
  238. package/lib/types/intent/tools.js.map +0 -1
  239. package/lib/types/intent/types.d.ts +0 -170
  240. package/lib/types/intent/types.d.ts.map +0 -1
  241. package/lib/types/intent/types.js +0 -56
  242. package/lib/types/intent/types.js.map +0 -1
  243. package/src/client/IntentLogic.tsx +0 -192
  244. package/src/client/IntentTab.tsx +0 -343
  245. package/src/client/TypeDefinitionDrawer.tsx +0 -195
  246. package/src/intent/README.md +0 -42
  247. package/src/intent/engine.ts +0 -515
  248. package/src/intent/host.ts +0 -315
  249. package/src/intent/scope.ts +0 -125
  250. package/src/intent/store.ts +0 -218
  251. package/src/intent/tools.ts +0 -154
  252. package/src/intent/types.ts +0 -229
@@ -1,195 +0,0 @@
1
- import { useEffect, useMemo, useRef, useState, type ChangeEvent, type ReactNode } from 'react'
2
- import { Check } from '@tita-agent/ui/icons'
3
- import { Button, Field, SelectMenu, Textarea, type SelectMenuOption } from '@tita-agent/ui/components'
4
- import {
5
- Drawer, DrawerBody, DrawerContent, DrawerHeader, DrawerTitle,
6
- } from '@tita-agent/ui/overlays'
7
- import { styles } from './styles.ts'
8
- import { AxisRegistrySection } from './AxisRegistrySection.tsx'
9
- import { requestJson } from './request.ts'
10
-
11
- export interface CompileModelSelectionView {
12
- mode: 'default' | 'fixed'
13
- provider?: string
14
- model?: string
15
- reasoningEffort?: string
16
- }
17
-
18
- interface CompileModelCatalogItem {
19
- provider: string
20
- id: string
21
- name: string
22
- description?: string
23
- available: boolean
24
- current?: boolean
25
- reasoning?: { efforts: Array<{ id: string; name: string; description?: string }>; defaultEffort?: string }
26
- }
27
-
28
- interface CompileModelCatalog {
29
- selection: CompileModelSelectionView
30
- default: { provider?: string; model?: string; reasoningEffort?: string; available: boolean }
31
- models: CompileModelCatalogItem[]
32
- why?: string
33
- }
34
-
35
- const DEFAULT_MODEL_VALUE = '__dsh_default__'
36
- const fixedModelValue = (provider: string, model: string): string => `fixed:${encodeURIComponent(provider)}:${encodeURIComponent(model)}`
37
-
38
- export interface TypeDefinitionDrawerProps {
39
- open: boolean
40
- onOpenChange: (open: boolean) => void
41
- kbId: string
42
- busy: string | null
43
- extractionNote?: string
44
- onSaveExtractionNote?: (note: string) => Promise<void>
45
- compileModel?: CompileModelSelectionView
46
- onSaveCompileModel?: (selection: CompileModelSelectionView) => Promise<void>
47
- }
48
-
49
- export function TypeDefinitionDrawer({
50
- open, onOpenChange, kbId, busy, extractionNote = '', onSaveExtractionNote,
51
- compileModel = { mode: 'default' }, onSaveCompileModel,
52
- }: TypeDefinitionDrawerProps): ReactNode {
53
- const [noteDraft, setNoteDraft] = useState(extractionNote)
54
- const [modelDraft, setModelDraft] = useState(DEFAULT_MODEL_VALUE)
55
- const [effortDraft, setEffortDraft] = useState(compileModel.reasoningEffort ?? '__default__')
56
- useEffect(() => { setEffortDraft(compileModel.reasoningEffort ?? '__default__') }, [compileModel.reasoningEffort])
57
- const [catalog, setCatalog] = useState<CompileModelCatalog | null>(null)
58
- const [catalogError, setCatalogError] = useState('')
59
- /**
60
- * 上一次读回来的默认模型。
61
- *
62
- * 放进 ref 而不是当成 effect 的依赖:这份 effect **自己会写 `catalog`**,把
63
- * `catalog?.default.provider` 列进依赖就是让输出当输入 —— 每读一次目录都会再触发
64
- * 一次自己,打开抽屉要打两三次 `/knowledge/models`。ref 让它读到最新值,但不触发。
65
- */
66
- const catalogRef = useRef<CompileModelCatalog | null>(null)
67
- catalogRef.current = catalog
68
- useEffect(() => { setNoteDraft(extractionNote) }, [extractionNote])
69
- useEffect(() => {
70
- if (compileModel.mode === 'fixed' && compileModel.provider && compileModel.model) {
71
- setModelDraft(fixedModelValue(compileModel.provider, compileModel.model))
72
- } else {
73
- setModelDraft(DEFAULT_MODEL_VALUE)
74
- }
75
- }, [compileModel.mode, compileModel.provider, compileModel.model])
76
- useEffect(() => {
77
- if (!open || onSaveCompileModel === undefined) return undefined
78
- let cancelled = false
79
- setCatalogError('')
80
- const route = modelDraft.startsWith('fixed:') ? modelDraft.split(':').slice(1).map(decodeURIComponent) : [catalogRef.current?.default.provider, catalogRef.current?.default.model]
81
- const params = new URLSearchParams({ kb: kbId })
82
- if (route[0] && route[1]) { params.set('provider', route[0]); params.set('model', route[1]) }
83
- void requestJson<CompileModelCatalog>(`/knowledge/models?${params}`).then(result => {
84
- if (!cancelled) setCatalog(result.data ?? null)
85
- }).catch(error => {
86
- if (!cancelled) setCatalogError(error instanceof Error ? error.message : String(error))
87
- })
88
- return () => { cancelled = true }
89
- }, [kbId, onSaveCompileModel, open, modelDraft])
90
-
91
- const modelOptions = useMemo(() => {
92
- const options: SelectMenuOption[] = [{
93
- value: DEFAULT_MODEL_VALUE,
94
- label: catalog?.default?.provider && catalog.default.model
95
- ? `跟随 DSH 默认模型(${catalog.default.provider} / ${catalog.default.model})`
96
- : '跟随 DSH 默认模型',
97
- }]
98
- for (const item of catalog?.models ?? []) {
99
- options.push({
100
- value: fixedModelValue(item.provider, item.id),
101
- label: item.available
102
- ? `${item.name}(${item.provider} / ${item.id})`
103
- : `当前已失效:${item.provider} / ${item.id}`,
104
- ...(item.available ? {} : { disabled: true }),
105
- })
106
- }
107
- if (compileModel.mode === 'fixed' && compileModel.provider && compileModel.model
108
- && !options.some(option => option.value === fixedModelValue(compileModel.provider!, compileModel.model!))) {
109
- options.push({
110
- value: fixedModelValue(compileModel.provider, compileModel.model),
111
- label: `当前已失效:${compileModel.provider} / ${compileModel.model}`,
112
- disabled: true,
113
- })
114
- }
115
- return options
116
- }, [catalog, compileModel.mode, compileModel.model, compileModel.provider])
117
-
118
- const modelChanged = effortDraft !== (compileModel.reasoningEffort ?? '__default__') || modelDraft !== (compileModel.mode === 'fixed' && compileModel.provider && compileModel.model
119
- ? fixedModelValue(compileModel.provider, compileModel.model)
120
- : DEFAULT_MODEL_VALUE)
121
- const saveCompileModel = async (): Promise<void> => {
122
- if (onSaveCompileModel === undefined) return
123
- if (modelDraft === DEFAULT_MODEL_VALUE) {
124
- await onSaveCompileModel({ mode: 'default', ...(effortDraft === '__default__' ? {} : { reasoningEffort: effortDraft }) })
125
- return
126
- }
127
- const selected = catalog?.models.find(item => fixedModelValue(item.provider, item.id) === modelDraft && item.available)
128
- if (!selected) return
129
- await onSaveCompileModel({ mode: 'fixed', provider: selected.provider, model: selected.id, ...(effortDraft === '__default__' ? {} : { reasoningEffort: effortDraft }) })
130
- }
131
-
132
- const selectedModel = catalog?.models.find(item => modelDraft === DEFAULT_MODEL_VALUE
133
- ? item.provider === catalog.default.provider && item.id === catalog.default.model
134
- : fixedModelValue(item.provider, item.id) === modelDraft)
135
- const effortOptions: SelectMenuOption[] = [{ value: '__default__', label: '跟随模型默认强度' }, ...(selectedModel?.reasoning?.efforts ?? []).map(item => ({ value: item.id, label: item.name }))]
136
- if (effortDraft !== '__default__' && !effortOptions.some(option => option.value === effortDraft)) effortOptions.push({ value: effortDraft, label: `当前不可用:${effortDraft}`, disabled: true })
137
-
138
- return <Drawer open={open} onOpenChange={onOpenChange}>
139
- {open && <DrawerContent
140
- className={styles.settingsDrawer}
141
- resizable
142
- resizeKey="tita-typedef-drawer"
143
- >
144
- <DrawerHeader>
145
- <DrawerTitle>编译设置</DrawerTitle>
146
- </DrawerHeader>
147
- <DrawerBody>
148
- <div className={styles.settingsStack}>
149
- {onSaveCompileModel !== undefined && <section className={styles.settingsSection}>
150
- <div className={styles.settingsSectionHeader}>
151
- <div><h3>编译模型</h3></div>
152
- </div>
153
- <Field as="div" label="模型" hint="用于抽取、归一补判与卡片组织;任务启动时保存实际选择。">
154
- <SelectMenu value={modelDraft} disabled={busy !== null || (catalog === null && catalogError === '')} onValueChange={value => { setModelDraft(value); setEffortDraft('__default__') }}
155
- options={modelOptions} placeholder="加载 DSH 模型目录…" aria-label="编译模型" />
156
- </Field>
157
- <Field as="div" label="思考强度" hint={selectedModel?.reasoning?.efforts.length ? '档位来自当前模型的 DSH 目录。' : '当前模型未提供可选档位,使用模型默认值。'}>
158
- <SelectMenu value={effortDraft} options={effortOptions} onValueChange={setEffortDraft} disabled={busy !== null || !selectedModel?.reasoning?.efforts.length} aria-label="编译模型思考强度" />
159
- </Field>
160
- {catalog?.default && !catalog.default.available && <p className={styles.kbHint} role="status">
161
- DSH 默认模型不可用;可在 DSH 设置中修复,或选择固定模型。
162
- </p>}
163
- {catalogError !== '' && <p className={styles.kbHint} role="alert">模型目录读取失败:{catalogError}</p>}
164
- {catalog?.why && <p className={styles.kbHint} role="status">模型目录提示:{catalog.why}</p>}
165
- {modelChanged && <div className={styles.settingsSectionActions}>
166
- <Button variant="outline" size="sm" disabled={busy !== null || (catalog === null && modelDraft !== DEFAULT_MODEL_VALUE)}
167
- onClick={() => void saveCompileModel()}>
168
- <Check size={12} />保存
169
- </Button>
170
- </div>}
171
- </section>}
172
-
173
- {onSaveExtractionNote !== undefined && <section className={styles.settingsSection}>
174
- <div className={styles.settingsSectionHeader}>
175
- <div><h3>提取备注</h3></div>
176
- </div>
177
- <Field label="坐标约定" hint="逐字加入每次抽取提示词。">
178
- <Textarea value={noteDraft} rows={3} spellCheck={false} disabled={busy !== null}
179
- aria-label="坐标提取备注" placeholder="填写本库特有的坐标约定。"
180
- onChange={(event: ChangeEvent<HTMLTextAreaElement>) => setNoteDraft(event.target.value)} />
181
- </Field>
182
- {noteDraft !== extractionNote && <div className={styles.settingsSectionActions}>
183
- <Button variant="outline" size="sm" disabled={busy !== null}
184
- onClick={() => void onSaveExtractionNote(noteDraft)}>
185
- <Check size={12} />保存
186
- </Button>
187
- </div>}
188
- </section>}
189
-
190
- <AxisRegistrySection kbId={kbId} canEdit={busy === null} />
191
- </div>
192
- </DrawerBody>
193
- </DrawerContent>}
194
- </Drawer>
195
- }
@@ -1,42 +0,0 @@
1
- # dsh-data-domain-knowledge/intent
2
-
3
- 本模块是 Tita Data Agent 的会话意图审计记录器。它与知识库召回侧的 Query Analysis
4
- 分开:前者记录会话事实,后者在每次检索时解析 Intent / Object / Action / Scene,
5
- 用于生成和排序 WikiCard 候选。
6
-
7
- ## 对外契约
8
-
9
- Host 提供两个工具:
10
-
11
- - `intent_record`:把模型对当前轮次的判断写成一条审计记录。
12
- - `intent_store_view`:查看当前会话的最近记录与任务链路。
13
-
14
- 工具在 Host 层注册,供标准模式使用。意图写入与读取只接受 `standard` 会话。
15
- HTTP 只读接口是 `/intent/overview` 与
16
- `/intent/store`,服务名仍为 `titaDataAgentIntent`。
17
-
18
- ## 固定审计契约
19
-
20
- 分类、act 与 predicate 的内置词表由代码固定提供,不属于知识库配置,也没有编辑入口。
21
- `intent_record` 的工具描述携带这份固定规则;记录器只校验并保留模型结论,不做完整的
22
- 意图分类、不反问、不阻断请求。门控只负责判断是否进入数据域:其他 preset 和普通聊天
23
- 不创建意图记录;标准模式在数据工具、数据域请求或数据分类被激活后,模型漏调时,
24
- Host 才在 `turn/end` 补一条 `source: 'fallback'` 的 `unknown` 记录。
25
-
26
- ## 记录与 ID
27
-
28
- - 按 `session + data turn` upsert:同一数据轮次重复调用只保留一条记录,普通轮次不落记录。
29
- - Host 在 `turn/start` 为当前轮次预分配 `subtaskId`;模型用 `relation` 表示新任务
30
- (`new_task`)或已有任务的子任务(`subtask_of`)。
31
- - 记录写入 `<agentRoot>/intent/intent.db`。`intent_records` 保存每轮当前版本,
32
- `intent_record_history` 追加保存每次变更。内存工作集仍按 TTL(默认 600 秒)管理,
33
- SQLite 用于重启后的审计留痕与面板读取。
34
-
35
- ## 与知识库召回的边界
36
-
37
- 会话审计不会决定 WikiCard 的召回结果。知识库召回单独解析当前 Query,再通过
38
- Coordinate、FTS、Vector 三路生成 Section 候选,统一重排后归并为完整 WikiCard 返回
39
- 给 Agent Context。
40
-
41
- 因此,修改意图审计词表不是召回配置动作;需要调整召回行为时,应修改 Query Analysis、
42
- 轴注册表或召回/重排参数。