dsh-data-domain-knowledge 0.1.0-alpha.9 → 0.1.1-alpha.2

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 (438) hide show
  1. package/README.md +118 -567
  2. package/cordis.patch.yml +5 -418
  3. package/eval/README.md +19 -8
  4. package/eval/benchmark-extraction-format.mjs +20 -0
  5. package/eval/evaluate-retrieval.mjs +17 -8
  6. package/eval/queries.example.jsonl +1 -0
  7. package/lib/client.js +4181 -3239
  8. package/lib/contract-envelope.d.ts +91 -0
  9. package/lib/contract-envelope.js +106 -0
  10. package/lib/contract-layout.d.ts +130 -0
  11. package/lib/contract-layout.js +138 -0
  12. package/lib/contract-refs.d.ts +39 -0
  13. package/lib/contract-refs.js +9 -0
  14. package/lib/contract-version.d.ts +311 -0
  15. package/lib/contract-version.js +270 -0
  16. package/lib/contract-wire.d.ts +147 -0
  17. package/lib/contract-wire.js +99 -0
  18. package/lib/contracts.d.ts +12 -0
  19. package/lib/contracts.js +12 -0
  20. package/lib/doc-page.js +2 -2
  21. package/lib/pages.js +3329 -1296
  22. package/lib/types/agent-behavior-rules.d.ts +10 -0
  23. package/lib/types/agent-behavior-rules.d.ts.map +1 -0
  24. package/lib/types/agent-behavior-rules.js +28 -0
  25. package/lib/types/agent-behavior-rules.js.map +1 -0
  26. package/lib/types/axis-registry.d.ts +37 -5
  27. package/lib/types/axis-registry.d.ts.map +1 -1
  28. package/lib/types/axis-registry.js +234 -26
  29. package/lib/types/axis-registry.js.map +1 -1
  30. package/lib/types/card-organize.d.ts +27 -12
  31. package/lib/types/card-organize.d.ts.map +1 -1
  32. package/lib/types/card-organize.js +58 -73
  33. package/lib/types/card-organize.js.map +1 -1
  34. package/lib/types/compiler/embedding-identity.d.ts +3 -0
  35. package/lib/types/compiler/embedding-identity.d.ts.map +1 -0
  36. package/lib/types/compiler/embedding-identity.js +24 -0
  37. package/lib/types/compiler/embedding-identity.js.map +1 -0
  38. package/lib/types/compiler/snapshot.d.ts +16 -0
  39. package/lib/types/compiler/snapshot.d.ts.map +1 -0
  40. package/lib/types/compiler/snapshot.js +2 -0
  41. package/lib/types/compiler/snapshot.js.map +1 -0
  42. package/lib/types/config-schema.d.ts +6 -3
  43. package/lib/types/config-schema.d.ts.map +1 -1
  44. package/lib/types/config-schema.js +6 -2
  45. package/lib/types/config-schema.js.map +1 -1
  46. package/lib/types/convert/host.d.ts +6 -5
  47. package/lib/types/convert/host.d.ts.map +1 -1
  48. package/lib/types/convert/host.js +58 -18
  49. package/lib/types/convert/host.js.map +1 -1
  50. package/lib/types/convert/ingest.d.ts +10 -1
  51. package/lib/types/convert/ingest.d.ts.map +1 -1
  52. package/lib/types/convert/ingest.js +68 -9
  53. package/lib/types/convert/ingest.js.map +1 -1
  54. package/lib/types/derive-contract.d.ts +3 -0
  55. package/lib/types/derive-contract.d.ts.map +1 -0
  56. package/lib/types/derive-contract.js +15 -0
  57. package/lib/types/derive-contract.js.map +1 -0
  58. package/lib/types/diagnosis/cards.d.ts +7 -3
  59. package/lib/types/diagnosis/cards.d.ts.map +1 -1
  60. package/lib/types/diagnosis/cards.js +13 -8
  61. package/lib/types/diagnosis/cards.js.map +1 -1
  62. package/lib/types/diagnosis/run.d.ts +4 -13
  63. package/lib/types/diagnosis/run.d.ts.map +1 -1
  64. package/lib/types/diagnosis/run.js +26 -16
  65. package/lib/types/diagnosis/run.js.map +1 -1
  66. package/lib/types/diagnosis/schema.js +2 -2
  67. package/lib/types/diagnosis/schema.js.map +1 -1
  68. package/lib/types/diagnosis/seed-source.d.ts +1 -1
  69. package/lib/types/diagnosis/seed-source.d.ts.map +1 -1
  70. package/lib/types/diagnosis/seed-source.js +5 -4
  71. package/lib/types/diagnosis/seed-source.js.map +1 -1
  72. package/lib/types/diagnosis/seed.d.ts +4 -4
  73. package/lib/types/diagnosis/seed.d.ts.map +1 -1
  74. package/lib/types/diagnosis/seed.js +6 -8
  75. package/lib/types/diagnosis/seed.js.map +1 -1
  76. package/lib/types/diagnosis/store.d.ts +24 -18
  77. package/lib/types/diagnosis/store.d.ts.map +1 -1
  78. package/lib/types/diagnosis/store.js +130 -65
  79. package/lib/types/diagnosis/store.js.map +1 -1
  80. package/lib/types/diagnosis/types.d.ts +47 -15
  81. package/lib/types/diagnosis/types.d.ts.map +1 -1
  82. package/lib/types/diagnosis/types.js.map +1 -1
  83. package/lib/types/environment/dsh-python.d.ts +77 -0
  84. package/lib/types/environment/dsh-python.d.ts.map +1 -0
  85. package/lib/types/environment/dsh-python.js +139 -0
  86. package/lib/types/environment/dsh-python.js.map +1 -0
  87. package/lib/types/environment/install.d.ts +15 -0
  88. package/lib/types/environment/install.d.ts.map +1 -0
  89. package/lib/types/environment/install.js +297 -0
  90. package/lib/types/environment/install.js.map +1 -0
  91. package/lib/types/environment/manifest.d.ts +208 -0
  92. package/lib/types/environment/manifest.d.ts.map +1 -0
  93. package/lib/types/environment/manifest.js +26 -0
  94. package/lib/types/environment/manifest.js.map +1 -0
  95. package/lib/types/environment/model-catalog.d.ts +223 -0
  96. package/lib/types/environment/model-catalog.d.ts.map +1 -0
  97. package/lib/types/environment/model-catalog.js +129 -0
  98. package/lib/types/environment/model-catalog.js.map +1 -0
  99. package/lib/types/environment/process.d.ts +10 -0
  100. package/lib/types/environment/process.d.ts.map +1 -0
  101. package/lib/types/environment/process.js +54 -0
  102. package/lib/types/environment/process.js.map +1 -0
  103. package/lib/types/environment/selection.d.ts +9 -0
  104. package/lib/types/environment/selection.d.ts.map +1 -0
  105. package/lib/types/environment/selection.js +29 -0
  106. package/lib/types/environment/selection.js.map +1 -0
  107. package/lib/types/environment/service.d.ts +64 -0
  108. package/lib/types/environment/service.d.ts.map +1 -0
  109. package/lib/types/environment/service.js +424 -0
  110. package/lib/types/environment/service.js.map +1 -0
  111. package/lib/types/environment/types.d.ts +56 -0
  112. package/lib/types/environment/types.d.ts.map +1 -0
  113. package/lib/types/environment/types.js +2 -0
  114. package/lib/types/environment/types.js.map +1 -0
  115. package/lib/types/events.d.ts +76 -0
  116. package/lib/types/events.d.ts.map +1 -0
  117. package/lib/types/events.js +52 -0
  118. package/lib/types/events.js.map +1 -0
  119. package/lib/types/extract-contract.d.ts +3 -0
  120. package/lib/types/extract-contract.d.ts.map +1 -0
  121. package/lib/types/extract-contract.js +41 -0
  122. package/lib/types/extract-contract.js.map +1 -0
  123. package/lib/types/extract-model.d.ts +5 -0
  124. package/lib/types/extract-model.d.ts.map +1 -1
  125. package/lib/types/extract-model.js.map +1 -1
  126. package/lib/types/extract-table-contract.d.ts +3 -0
  127. package/lib/types/extract-table-contract.d.ts.map +1 -0
  128. package/lib/types/extract-table-contract.js +27 -0
  129. package/lib/types/extract-table-contract.js.map +1 -0
  130. package/lib/types/extract-table.d.ts +8 -0
  131. package/lib/types/extract-table.d.ts.map +1 -0
  132. package/lib/types/extract-table.js +158 -0
  133. package/lib/types/extract-table.js.map +1 -0
  134. package/lib/types/extraction-runs.d.ts +30 -6
  135. package/lib/types/extraction-runs.d.ts.map +1 -1
  136. package/lib/types/extraction-runs.js +69 -8
  137. package/lib/types/extraction-runs.js.map +1 -1
  138. package/lib/types/fs-atomic.d.ts +0 -7
  139. package/lib/types/fs-atomic.d.ts.map +1 -1
  140. package/lib/types/fs-atomic.js +17 -2
  141. package/lib/types/fs-atomic.js.map +1 -1
  142. package/lib/types/images.d.ts +26 -0
  143. package/lib/types/images.d.ts.map +1 -0
  144. package/lib/types/images.js +196 -0
  145. package/lib/types/images.js.map +1 -0
  146. package/lib/types/index.d.ts +2 -2
  147. package/lib/types/index.d.ts.map +1 -1
  148. package/lib/types/index.js +598 -209
  149. package/lib/types/index.js.map +1 -1
  150. package/lib/types/intent/engine.d.ts +12 -4
  151. package/lib/types/intent/engine.d.ts.map +1 -1
  152. package/lib/types/intent/engine.js +43 -5
  153. package/lib/types/intent/engine.js.map +1 -1
  154. package/lib/types/intent/host.d.ts +5 -8
  155. package/lib/types/intent/host.d.ts.map +1 -1
  156. package/lib/types/intent/host.js +56 -11
  157. package/lib/types/intent/host.js.map +1 -1
  158. package/lib/types/intent/scope.d.ts +25 -0
  159. package/lib/types/intent/scope.d.ts.map +1 -0
  160. package/lib/types/intent/scope.js +116 -0
  161. package/lib/types/intent/scope.js.map +1 -0
  162. package/lib/types/intent/tools.d.ts +24 -20
  163. package/lib/types/intent/tools.d.ts.map +1 -1
  164. package/lib/types/intent/tools.js +65 -23
  165. package/lib/types/intent/tools.js.map +1 -1
  166. package/lib/types/intent/types.d.ts +11 -4
  167. package/lib/types/intent/types.d.ts.map +1 -1
  168. package/lib/types/knowledge-bases.d.ts +11 -5
  169. package/lib/types/knowledge-bases.d.ts.map +1 -1
  170. package/lib/types/knowledge-bases.js +52 -20
  171. package/lib/types/knowledge-bases.js.map +1 -1
  172. package/lib/types/knowledge-contract.d.ts +32 -0
  173. package/lib/types/knowledge-contract.d.ts.map +1 -0
  174. package/lib/types/knowledge-contract.js +116 -0
  175. package/lib/types/knowledge-contract.js.map +1 -0
  176. package/lib/types/knowledge.d.ts +31 -9
  177. package/lib/types/knowledge.d.ts.map +1 -1
  178. package/lib/types/knowledge.js +137 -60
  179. package/lib/types/knowledge.js.map +1 -1
  180. package/lib/types/layout.d.ts +10 -29
  181. package/lib/types/layout.d.ts.map +1 -1
  182. package/lib/types/layout.js +17 -36
  183. package/lib/types/layout.js.map +1 -1
  184. package/lib/types/materialize-snapshot.d.ts +49 -0
  185. package/lib/types/materialize-snapshot.d.ts.map +1 -0
  186. package/lib/types/materialize-snapshot.js +2 -0
  187. package/lib/types/materialize-snapshot.js.map +1 -0
  188. package/lib/types/migrate.d.ts +11 -0
  189. package/lib/types/migrate.d.ts.map +1 -1
  190. package/lib/types/migrate.js +83 -2
  191. package/lib/types/migrate.js.map +1 -1
  192. package/lib/types/model-text.d.ts +58 -1
  193. package/lib/types/model-text.d.ts.map +1 -1
  194. package/lib/types/model-text.js +85 -30
  195. package/lib/types/model-text.js.map +1 -1
  196. package/lib/types/oplog.d.ts.map +1 -1
  197. package/lib/types/oplog.js +7 -0
  198. package/lib/types/oplog.js.map +1 -1
  199. package/lib/types/organize-contract.d.ts +18 -0
  200. package/lib/types/organize-contract.d.ts.map +1 -0
  201. package/lib/types/organize-contract.js +82 -0
  202. package/lib/types/organize-contract.js.map +1 -0
  203. package/lib/types/pipeline/engine.d.ts +66 -0
  204. package/lib/types/pipeline/engine.d.ts.map +1 -0
  205. package/lib/types/pipeline/engine.js +352 -0
  206. package/lib/types/pipeline/engine.js.map +1 -0
  207. package/lib/types/pipeline/store.d.ts +73 -0
  208. package/lib/types/pipeline/store.d.ts.map +1 -0
  209. package/lib/types/pipeline/store.js +143 -0
  210. package/lib/types/pipeline/store.js.map +1 -0
  211. package/lib/types/pipeline/types.d.ts +102 -0
  212. package/lib/types/pipeline/types.d.ts.map +1 -0
  213. package/lib/types/pipeline/types.js +5 -0
  214. package/lib/types/pipeline/types.js.map +1 -0
  215. package/lib/types/present.d.ts +2 -0
  216. package/lib/types/present.d.ts.map +1 -1
  217. package/lib/types/present.js +9 -4
  218. package/lib/types/present.js.map +1 -1
  219. package/lib/types/preset-ids.d.ts +4 -0
  220. package/lib/types/preset-ids.d.ts.map +1 -0
  221. package/lib/types/preset-ids.js +6 -0
  222. package/lib/types/preset-ids.js.map +1 -0
  223. package/lib/types/query-analysis.d.ts +13 -1
  224. package/lib/types/query-analysis.d.ts.map +1 -1
  225. package/lib/types/query-analysis.js +62 -6
  226. package/lib/types/query-analysis.js.map +1 -1
  227. package/lib/types/recall-rank.d.ts +3 -3
  228. package/lib/types/recall-rank.d.ts.map +1 -1
  229. package/lib/types/recall-rank.js +4 -4
  230. package/lib/types/recall-rank.js.map +1 -1
  231. package/lib/types/retention.d.ts +39 -0
  232. package/lib/types/retention.d.ts.map +1 -0
  233. package/lib/types/retention.js +42 -0
  234. package/lib/types/retention.js.map +1 -0
  235. package/lib/types/retrieval/vector-index.d.ts +32 -0
  236. package/lib/types/retrieval/vector-index.d.ts.map +1 -0
  237. package/lib/types/retrieval/vector-index.js +15 -0
  238. package/lib/types/retrieval/vector-index.js.map +1 -0
  239. package/lib/types/retrieval/visibility.d.ts +6 -0
  240. package/lib/types/retrieval/visibility.d.ts.map +1 -0
  241. package/lib/types/retrieval/visibility.js +11 -0
  242. package/lib/types/retrieval/visibility.js.map +1 -0
  243. package/lib/types/runtime.d.ts +272 -27
  244. package/lib/types/runtime.d.ts.map +1 -1
  245. package/lib/types/runtime.js +2751 -537
  246. package/lib/types/runtime.js.map +1 -1
  247. package/lib/types/settings-schema.d.ts +17 -15
  248. package/lib/types/settings-schema.d.ts.map +1 -1
  249. package/lib/types/settings-schema.js +50 -47
  250. package/lib/types/settings-schema.js.map +1 -1
  251. package/lib/types/settings-volatile.d.ts +4 -4
  252. package/lib/types/settings-volatile.js +4 -4
  253. package/lib/types/source-evidence.d.ts +14 -0
  254. package/lib/types/source-evidence.d.ts.map +1 -0
  255. package/lib/types/source-evidence.js +36 -0
  256. package/lib/types/source-evidence.js.map +1 -0
  257. package/lib/types/store/axis-references.d.ts +5 -0
  258. package/lib/types/store/axis-references.d.ts.map +1 -0
  259. package/lib/types/store/axis-references.js +106 -0
  260. package/lib/types/store/axis-references.js.map +1 -0
  261. package/lib/types/store/derived.d.ts +12 -1
  262. package/lib/types/store/derived.d.ts.map +1 -1
  263. package/lib/types/store/derived.js +71 -12
  264. package/lib/types/store/derived.js.map +1 -1
  265. package/lib/types/store/knowledge-db.d.ts +31 -1
  266. package/lib/types/store/knowledge-db.d.ts.map +1 -1
  267. package/lib/types/store/knowledge-db.js +252 -18
  268. package/lib/types/store/knowledge-db.js.map +1 -1
  269. package/lib/types/store/migrate.d.ts.map +1 -1
  270. package/lib/types/store/migrate.js +17 -6
  271. package/lib/types/store/migrate.js.map +1 -1
  272. package/lib/types/trajectory-types.d.ts +172 -0
  273. package/lib/types/trajectory-types.d.ts.map +1 -0
  274. package/lib/types/trajectory-types.js +36 -0
  275. package/lib/types/trajectory-types.js.map +1 -0
  276. package/lib/types/types.d.ts +59 -27
  277. package/lib/types/types.d.ts.map +1 -1
  278. package/lib/types/types.js +6 -15
  279. package/lib/types/types.js.map +1 -1
  280. package/lib/types/wiki-finalize.d.ts +16 -0
  281. package/lib/types/wiki-finalize.d.ts.map +1 -1
  282. package/lib/types/wiki-finalize.js +26 -0
  283. package/lib/types/wiki-finalize.js.map +1 -1
  284. package/lib/types/wiki-materialize.d.ts +4 -0
  285. package/lib/types/wiki-materialize.d.ts.map +1 -1
  286. package/lib/types/wiki-materialize.js +21 -7
  287. package/lib/types/wiki-materialize.js.map +1 -1
  288. package/lib/types/wiki-trial-types.d.ts +87 -0
  289. package/lib/types/wiki-trial-types.d.ts.map +1 -1
  290. package/lib/types/wiki-trial-types.js +0 -16
  291. package/lib/types/wiki-trial-types.js.map +1 -1
  292. package/lib/types/wiki-trial.d.ts +40 -16
  293. package/lib/types/wiki-trial.d.ts.map +1 -1
  294. package/lib/types/wiki-trial.js +337 -224
  295. package/lib/types/wiki-trial.js.map +1 -1
  296. package/package.json +29 -20
  297. package/python/prepare-models.py +19 -0
  298. package/python/requirements.txt +8 -6
  299. package/scripts/doctor.mjs +13 -19
  300. package/scripts/environment.mjs +29 -0
  301. package/scripts/setup-embedding.sh +15 -5
  302. package/src/agent-behavior-rules.ts +37 -0
  303. package/src/axis-registry.ts +234 -27
  304. package/src/card-organize.ts +69 -75
  305. package/src/client/AgentBehaviorRulesCard.tsx +65 -0
  306. package/src/client/AttributionEventGuide.tsx +41 -39
  307. package/src/client/AxisRegistrySection.tsx +204 -164
  308. package/src/client/CompileDialogs.tsx +44 -29
  309. package/src/client/DeleteDocumentDialog.tsx +36 -5
  310. package/src/client/DirectoryPicker.tsx +0 -10
  311. package/src/client/EnvironmentSetup.tsx +243 -0
  312. package/src/client/ExpansionGraph.tsx +13 -7
  313. package/src/client/ExtractionTasksPage.tsx +578 -0
  314. package/src/client/GuideArchitectureCanvas.tsx +470 -0
  315. package/src/client/ImportFilesDialog.tsx +2 -13
  316. package/src/client/IntentLogic.tsx +2 -2
  317. package/src/client/IntentTab.tsx +118 -47
  318. package/src/client/KnowledgeBaseTab.tsx +277 -197
  319. package/src/client/KnowledgeLayerSection.tsx +24 -6
  320. package/src/client/KnowledgePanel.tsx +58 -93
  321. package/src/client/KnowledgeSettingsDrawer.tsx +90 -0
  322. package/src/client/ListPager.tsx +15 -5
  323. package/src/client/MaterializeTrajectoryView.tsx +124 -0
  324. package/src/client/NodeSettings.tsx +210 -89
  325. package/src/client/NormalizeTrajectoryView.tsx +136 -0
  326. package/src/client/PipelineNotice.tsx +26 -0
  327. package/src/client/PreviewSections.tsx +118 -51
  328. package/src/client/RecallPanel.tsx +89 -85
  329. package/src/client/TabGuide.tsx +159 -184
  330. package/src/client/TrialReportView.tsx +391 -214
  331. package/src/client/TypeDefinitionDrawer.tsx +150 -23
  332. package/src/client/WikiCardPreview.tsx +62 -16
  333. package/src/client/WikiFlowPanel.tsx +4 -4
  334. package/src/client/arch/NodeLogicPanel.tsx +3 -4
  335. package/src/client/arch/model.ts +6 -9
  336. package/src/client/architecture.tsx +23 -33
  337. package/src/client/attribution/AttributionGraph.tsx +10 -6
  338. package/src/client/attribution/AttributionTab.tsx +136 -84
  339. package/src/client/attribution/CaseView.tsx +3 -1
  340. package/src/client/attribution/EventView.tsx +108 -0
  341. package/src/client/attribution/RunView.tsx +2 -2
  342. package/src/client/attribution/StageChrome.tsx +34 -3
  343. package/src/client/attribution/ViewSwitch.tsx +20 -5
  344. package/src/client/attribution/graph-options.ts +47 -39
  345. package/src/client/attribution/model.ts +17 -10
  346. package/src/client/config-scope.ts +3 -3
  347. package/src/client/graph/palette.ts +165 -0
  348. package/src/client/index.ts +49 -42
  349. package/src/client/pages.css +459 -135
  350. package/src/client/pages.tsx +37 -9
  351. package/src/client/problem-domains.ts +1 -1
  352. package/src/client/session-remote.ts +9 -0
  353. package/src/client/styles.css +205 -62
  354. package/src/client/wiki-trial.ts +44 -3
  355. package/src/compiler/embedding-identity.ts +21 -0
  356. package/src/compiler/snapshot.ts +17 -0
  357. package/src/config-schema.ts +8 -3
  358. package/src/convert/host.ts +56 -21
  359. package/src/convert/ingest.ts +74 -10
  360. package/src/derive-contract.ts +14 -0
  361. package/src/diagnosis/cards.ts +13 -8
  362. package/src/diagnosis/run.ts +27 -17
  363. package/src/diagnosis/schema.ts +2 -2
  364. package/src/diagnosis/seed-source.ts +5 -4
  365. package/src/diagnosis/seed.ts +6 -8
  366. package/src/diagnosis/store.ts +138 -69
  367. package/src/diagnosis/types.ts +34 -15
  368. package/src/environment/dsh-python.ts +156 -0
  369. package/src/environment/install.ts +244 -0
  370. package/src/environment/manifest.ts +28 -0
  371. package/src/environment/model-catalog.ts +147 -0
  372. package/src/environment/process.ts +54 -0
  373. package/src/environment/selection.ts +29 -0
  374. package/src/environment/service.ts +348 -0
  375. package/src/environment/types.ts +45 -0
  376. package/src/events.ts +108 -0
  377. package/src/extract-contract.ts +42 -0
  378. package/src/extract-model.ts +10 -1
  379. package/src/extract-table-contract.ts +26 -0
  380. package/src/extract-table.ts +132 -0
  381. package/src/extraction-runs.ts +70 -11
  382. package/src/fs-atomic.ts +19 -2
  383. package/src/images.ts +203 -0
  384. package/src/index.ts +553 -205
  385. package/src/intent/README.md +8 -6
  386. package/src/intent/engine.ts +44 -6
  387. package/src/intent/host.ts +59 -18
  388. package/src/intent/scope.ts +125 -0
  389. package/src/intent/tools.ts +70 -28
  390. package/src/intent/types.ts +11 -4
  391. package/src/knowledge-bases.ts +56 -20
  392. package/src/knowledge-contract.ts +114 -0
  393. package/src/knowledge.ts +138 -69
  394. package/src/layout.ts +17 -37
  395. package/src/materialize-snapshot.ts +46 -0
  396. package/src/migrate.ts +75 -2
  397. package/src/model-text.ts +109 -4
  398. package/src/oplog.ts +7 -0
  399. package/src/organize-contract.ts +83 -0
  400. package/src/pipeline/engine.ts +323 -0
  401. package/src/pipeline/store.ts +147 -0
  402. package/src/pipeline/types.ts +93 -0
  403. package/src/present.ts +10 -4
  404. package/src/preset-ids.ts +6 -0
  405. package/src/python/embedding_worker.py +66 -2
  406. package/src/query-analysis.ts +68 -8
  407. package/src/recall-rank.ts +5 -5
  408. package/src/retention.ts +76 -0
  409. package/src/retrieval/vector-index.ts +45 -0
  410. package/src/retrieval/visibility.ts +14 -0
  411. package/src/runtime.ts +2708 -567
  412. package/src/settings-schema.ts +11 -8
  413. package/src/settings-volatile.ts +4 -4
  414. package/src/source-evidence.ts +37 -0
  415. package/src/store/axis-references.ts +96 -0
  416. package/src/store/derived.ts +70 -12
  417. package/src/store/knowledge-db.ts +248 -17
  418. package/src/store/migrate.ts +16 -6
  419. package/src/trajectory-types.ts +142 -0
  420. package/src/types.ts +61 -35
  421. package/src/wiki-finalize.ts +28 -0
  422. package/src/wiki-materialize.ts +25 -6
  423. package/src/wiki-trial-types.ts +83 -1
  424. package/src/wiki-trial.ts +357 -185
  425. package/lib/types/intent/preset-tools.d.ts +0 -37
  426. package/lib/types/intent/preset-tools.d.ts.map +0 -1
  427. package/lib/types/intent/preset-tools.js +0 -45
  428. package/lib/types/intent/preset-tools.js.map +0 -1
  429. package/preset/tita-data-agent/agent.cordis.yml +0 -394
  430. package/preset/tita-data-agent/preset.yml +0 -3
  431. package/scripts/install-agent-preset.mjs +0 -92
  432. package/scripts/sync-agent-preset.mjs +0 -188
  433. package/src/client/AgentPresetCard.tsx +0 -247
  434. package/src/client/agent-preset.ts +0 -121
  435. package/src/client/convert/ConvertPanel.tsx +0 -583
  436. package/src/client/convert/styles.css +0 -138
  437. package/src/client/convert/styles.ts +0 -49
  438. package/src/intent/preset-tools.ts +0 -48
@@ -91,6 +91,24 @@ function intentTitle(record: IntentRecord): string {
91
91
 
92
92
  const SOURCE_LABEL: Record<IntentRecord['source'], string> = { model: '模型判断', fallback: '系统兜底' }
93
93
 
94
+ function filterOptions(
95
+ records: IntentRecord[],
96
+ field: 'category' | 'act',
97
+ labels: Record<string, string>,
98
+ allLabel: string,
99
+ ): Array<{ value: string; label: string }> {
100
+ const values = new Set(records.flatMap(record => {
101
+ const value = record[field]
102
+ return value ? [value] : []
103
+ }))
104
+ const known = Object.keys(labels).filter(value => values.has(value))
105
+ const unknown = [...values].filter(value => !(value in labels)).sort()
106
+ return [
107
+ { value: '', label: allLabel },
108
+ ...[...known, ...unknown].map(value => ({ value, label: humanize(value, labels) ?? value })),
109
+ ]
110
+ }
111
+
94
112
  function DiagnosticDetails({ record }: { record: IntentRecord }): ReactNode {
95
113
  return <details className={styles.intentDiagnostics}>
96
114
  <summary>查看诊断信息</summary>
@@ -109,33 +127,38 @@ function Interpretation({ record }: { record: IntentRecord }): ReactNode {
109
127
  return <Card className={styles.intentInterpretation}>
110
128
  <div className={styles.intentSectionHead}>
111
129
  <div>
112
- <span className={styles.intentEyebrow}>最近一轮</span>
113
130
  <h3>Agent 是这样理解的</h3>
131
+ <p className={styles.intentSectionSubhead}>最新一条判断 · 按时间倒序</p>
114
132
  </div>
115
133
  <time dateTime={record.updatedAt}>{formatTime(record.updatedAt)}</time>
116
134
  </div>
117
135
 
118
- <div className={styles.intentStep}>
119
- <span className={styles.intentStepNumber}>1</span>
120
- <div className={styles.intentStepBody}>
121
- <span className={styles.intentStepLabel}>用户原话</span>
122
- <p className={styles.intentUserInput}>{record.userInput.slice(0, 320) || '(无用户原文)'}</p>
123
- </div>
136
+ <div className={styles.intentUserBlock}>
137
+ <span className={styles.intentStepLabel}>用户原话</span>
138
+ <p className={styles.intentUserInput}>{record.userInput.slice(0, 320) || '(无用户原文)'}</p>
124
139
  </div>
125
140
 
126
- <div className={styles.intentStepArrow} aria-hidden="true">↓</div>
127
-
128
- <div className={`${styles.intentStep} ${styles.intentStepResult}`}>
129
- <span className={styles.intentStepNumber}>2</span>
130
- <div className={styles.intentStepBody}>
141
+ <div className={styles.intentVerdict}>
142
+ <div className={styles.intentVerdictHead}>
131
143
  <span className={styles.intentStepLabel}>Agent 判断</span>
132
- <h4 className={styles.intentResultTitle}>{intentTitle(record)}</h4>
133
- <p className={styles.intentResultText}>{relationLabel(record.relation)}。这条判断{record.lowConfidence ? '的把握较低,建议复核。' : '用于记录本轮对话走向。'}</p>
134
- <div className={styles.intentResultTags}>
135
- <Badge tone={record.lowConfidence ? 'warning' : 'blue'}>{humanize(record.act, ACT_LABEL) ?? '未判定'}</Badge>
136
- {record.category && <Badge tone="violet">{humanize(record.category, CATEGORY_LABEL)}</Badge>}
137
- {record.lowConfidence && <span className={styles.intentLowConfidence}>需要复核</span>}
138
- </div>
144
+ {record.lowConfidence && <span className={styles.intentLowConfidence}>需要复核</span>}
145
+ </div>
146
+ <h4 className={styles.intentResultTitle}>{intentTitle(record)}</h4>
147
+ <p className={styles.intentResultText}>{relationLabel(record.relation)}。这条判断{record.lowConfidence ? '的把握较低,建议复核。' : '用于记录本轮对话走向。'}</p>
148
+ <div className={styles.intentResultTags}>
149
+ <Badge tone={record.lowConfidence ? 'warning' : 'blue'}>{humanize(record.act, ACT_LABEL) ?? '未判定'}</Badge>
150
+ {record.category && <Badge tone="violet">{humanize(record.category, CATEGORY_LABEL)}</Badge>}
151
+ </div>
152
+ </div>
153
+
154
+ <div className={styles.intentMetaGrid}>
155
+ <div className={styles.intentMetaCell}>
156
+ <span>任务关系</span>
157
+ <strong>{relationLabel(record.relation)}</strong>
158
+ </div>
159
+ <div className={styles.intentMetaCell}>
160
+ <span>记录来源</span>
161
+ <strong>{SOURCE_LABEL[record.source]}</strong>
139
162
  </div>
140
163
  </div>
141
164
 
@@ -145,19 +168,24 @@ function Interpretation({ record }: { record: IntentRecord }): ReactNode {
145
168
 
146
169
  function HistoryItem({ record }: { record: IntentRecord }): ReactNode {
147
170
  return <li className={styles.intentHistoryItem}>
148
- <div className={styles.intentHistoryMeta}>
171
+ <div className={styles.intentHistoryPrimary}>
172
+ <strong>{intentTitle(record)}</strong>
149
173
  <time dateTime={record.updatedAt}><Clock3 size={11} />{formatTime(record.updatedAt)}</time>
174
+ </div>
175
+ <p>{record.userInput.slice(0, 180) || '(无用户原文)'}</p>
176
+ <div className={styles.intentHistoryMeta}>
150
177
  <span>{relationLabel(record.relation)}</span>
178
+ <span>{SOURCE_LABEL[record.source]}</span>
151
179
  {record.lowConfidence && <span className={styles.intentHistoryWarning}>需复核</span>}
152
180
  </div>
153
- <p>{record.userInput.slice(0, 180) || '(无用户原文)'}</p>
154
- <strong>{intentTitle(record)}</strong>
155
181
  </li>
156
182
  }
157
183
 
158
184
  export function IntentTab({ visible }: { visible: boolean }): ReactNode {
159
185
  const [sessions, setSessions] = useState<SessionSummary[]>([])
160
186
  const [sessionKey, setSessionKey] = useState('')
187
+ const [categoryFilter, setCategoryFilter] = useState('')
188
+ const [actFilter, setActFilter] = useState('')
161
189
  const [store, setStore] = useState<StoreView | null>(null)
162
190
  const [loading, setLoading] = useState(false)
163
191
  const [error, setError] = useState<string | null>(null)
@@ -186,6 +214,8 @@ export function IntentTab({ visible }: { visible: boolean }): ReactNode {
186
214
 
187
215
  const selectSession = async (key: string): Promise<void> => {
188
216
  setSessionKey(key)
217
+ setCategoryFilter('')
218
+ setActFilter('')
189
219
  setLoading(true)
190
220
  try {
191
221
  setStore((await getJson<{ store: StoreView }>(`/intent/store?session_key=${encodeURIComponent(key)}`)).store)
@@ -198,19 +228,25 @@ export function IntentTab({ visible }: { visible: boolean }): ReactNode {
198
228
  }
199
229
 
200
230
  const recent = store?.recent ?? []
201
- const latest = recent[0]
202
- const history = recent.slice(1)
231
+ const categoryOptions = useMemo(() => filterOptions(recent, 'category', CATEGORY_LABEL, '全部意图'), [recent])
232
+ const actOptions = useMemo(() => filterOptions(recent, 'act', ACT_LABEL, '全部动作'), [recent])
233
+ const filteredRecent = useMemo(() => recent.filter(record => (
234
+ (!categoryFilter || record.category === categoryFilter)
235
+ && (!actFilter || record.act === actFilter)
236
+ )), [actFilter, categoryFilter, recent])
237
+ const latest = filteredRecent[0]
238
+ const history = filteredRecent.slice(1)
239
+ const hasFilter = Boolean(categoryFilter || actFilter)
203
240
  const auditStats = useMemo(() => ({
204
- lowConfidence: recent.filter(record => record.lowConfidence).length,
205
- fallback: recent.filter(record => record.source === 'fallback').length,
206
- }), [recent])
241
+ lowConfidence: filteredRecent.filter(record => record.lowConfidence).length,
242
+ fallback: filteredRecent.filter(record => record.source === 'fallback').length,
243
+ }), [filteredRecent])
207
244
 
208
245
  return <div className={styles.viewStack}>
209
246
  <div className={styles.intentTop}>
210
247
  <div>
211
- <span className={styles.intentEyebrow}>SESSION INTERPRETATION</span>
212
- <h2>这轮对话被理解成什么?</h2>
213
- <p>先看用户原话,再看 Agent 的判断。这里只做记录,不参与召回或执行。</p>
248
+ <h2>意图记录</h2>
249
+ <p>先看意图结论,再核对用户原话和任务关系。这里只做审计,不参与召回或执行。</p>
214
250
  </div>
215
251
  <InfoHint
216
252
  className={styles.kbToolbarHint}
@@ -221,21 +257,56 @@ export function IntentTab({ visible }: { visible: boolean }): ReactNode {
221
257
  </div>
222
258
 
223
259
  <div className={styles.intentControls}>
224
- <span className={styles.intentControlLabel}>查看会话</span>
225
- <SelectMenu
226
- value={sessionKey}
227
- onValueChange={next => void selectSession(next)}
228
- disabled={sessions.length === 0}
229
- aria-label="选择意图记录会话"
230
- placeholder={sessions.length === 0 ? '还没有会话记录' : '选择会话'}
231
- options={sessions.map(item => ({ value: item.sessionKey, label: `${item.sessionKey.slice(0, 18)} · ${item.recordCount} 条 · ${formatTime(item.lastAt)}` }))}
232
- />
233
- <Button variant="ghost" size="icon" title="刷新" aria-label="刷新意图记录" onClick={() => void load(sessionKey)} disabled={loading}><RefreshCw size={14} /></Button>
260
+ <div className={styles.intentPrimaryFilter}>
261
+ <div className={styles.intentFilterHeading}>
262
+ <span className={styles.intentControlLabel}>意图</span>
263
+ <small>优先筛选</small>
264
+ </div>
265
+ <SelectMenu
266
+ value={categoryFilter}
267
+ onValueChange={setCategoryFilter}
268
+ disabled={recent.length === 0}
269
+ aria-label="按意图筛选"
270
+ options={categoryOptions}
271
+ />
272
+ <span className={styles.intentFilterCount}>{filteredRecent.length} 条</span>
273
+ </div>
274
+ <div className={styles.intentSecondaryFilters}>
275
+ <span className={styles.intentControlLabel}>动作</span>
276
+ <SelectMenu
277
+ value={actFilter}
278
+ onValueChange={setActFilter}
279
+ className="w-full min-w-0"
280
+ size="sm"
281
+ disabled={recent.length === 0}
282
+ aria-label="按动作筛选"
283
+ options={actOptions}
284
+ />
285
+ <span className={styles.intentControlLabel}>会话</span>
286
+ <SelectMenu
287
+ value={sessionKey}
288
+ onValueChange={next => void selectSession(next)}
289
+ className="w-full min-w-0"
290
+ size="sm"
291
+ disabled={sessions.length === 0}
292
+ aria-label="选择意图记录会话"
293
+ placeholder={sessions.length === 0 ? '还没有会话记录' : '选择会话'}
294
+ options={sessions.map(item => ({ value: item.sessionKey, label: `${item.sessionKey.slice(0, 18)} · ${item.recordCount} 条 · ${formatTime(item.lastAt)}` }))}
295
+ />
296
+ <Button variant="ghost" size="icon" title="刷新" aria-label="刷新意图记录" onClick={() => void load(sessionKey)} disabled={loading}><RefreshCw size={14} /></Button>
297
+ </div>
298
+ <div className={styles.intentFilterSummary} aria-live="polite">
299
+ <span>当前会话显示 {filteredRecent.length} / {recent.length} 条</span>
300
+ {categoryFilter && <Badge tone="blue">{humanize(categoryFilter, CATEGORY_LABEL) ?? categoryFilter}</Badge>}
301
+ {actFilter && <Badge tone="violet">{humanize(actFilter, ACT_LABEL) ?? actFilter}</Badge>}
302
+ </div>
234
303
  </div>
235
304
 
236
305
  {pageNotice !== null && <p className={styles.kbNotice} role="alert">
237
306
  <AlertCircle size={13} /><span>{pageNotice}</span>
238
- <button type="button" className={styles.kbNoticeClose} aria-label="关闭提示" onClick={() => setPageNotice(null)}><X size={12} /></button>
307
+ {/* 这一枚原来是手写的 `<button>`,命中区只有 12px、图标用自己的字号档,焦点圈
308
+ 也是另写的一条。现在用与面板里其余关闭动作同一枚共享控件。 */}
309
+ <Button className={styles.kbNoticeClose} variant="ghost" size="icon" aria-label="关闭提示" title="关闭提示" onClick={() => setPageNotice(null)}><X size={13} /></Button>
239
310
  </p>}
240
311
  {error && <p className={styles.kbNotice}><AlertCircle size={13} /><span>{error}</span></p>}
241
312
 
@@ -243,27 +314,27 @@ export function IntentTab({ visible }: { visible: boolean }): ReactNode {
243
314
  ? <Interpretation record={latest} />
244
315
  : <Card className={styles.intentEmptyCard}>
245
316
  <BrainCircuit size={18} />
246
- <strong>还没有可展示的判断</strong>
247
- <p>选择一个有记录的会话后,这里会显示用户原话和 Agent 判断。</p>
317
+ <strong>{hasFilter ? '当前筛选下没有判断' : '还没有可展示的判断'}</strong>
318
+ <p>{hasFilter ? '调整“意图”或“动作”筛选后再看。' : '选择一个有记录的会话后,这里会显示用户原话和 Agent 判断。'}</p>
248
319
  </Card>}
249
320
 
250
321
  <section className={styles.intentHistory}>
251
322
  <div className={styles.intentSectionHead}>
252
323
  <div>
253
- <span className={styles.intentEyebrow}>EARLIER TURNS</span>
254
- <h3>之前的判断</h3>
324
+ <h3>历史判断</h3>
325
+ <p className={styles.intentSectionSubhead}>当前会话中更早的记录</p>
255
326
  </div>
256
327
  <span className={styles.intentSectionCount}>{history.length} 条</span>
257
328
  </div>
258
329
  {history.length === 0
259
- ? <p className={styles.intentEmpty}>{latest ? '这是当前会话的第一条判断。' : '暂无历史记录。'}</p>
330
+ ? <p className={styles.intentEmpty}>{hasFilter ? '当前筛选下没有更早的判断。' : latest ? '这是当前会话的第一条判断。' : '暂无历史记录。'}</p>
260
331
  : <ol className={styles.intentHistoryList}>
261
332
  {history.map(record => <HistoryItem key={record.id} record={record} />)}
262
333
  </ol>}
263
334
  </section>
264
335
 
265
336
  <div className={styles.intentFooter}>
266
- <span>共 {recent.length} 条判断</span>
337
+ <span>共 {filteredRecent.length} 条判断{hasFilter ? `(当前会话 ${recent.length} 条)` : ''}</span>
267
338
  {auditStats.lowConfidence > 0 && <span>{auditStats.lowConfidence} 条需要复核</span>}
268
339
  {auditStats.fallback > 0 && <span>{auditStats.fallback} 条系统兜底</span>}
269
340
  {store?.expiresAt && <span>保留至 {formatTime(store.expiresAt)}</span>}