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
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Models supported by the local embedding and reranking workers. Revisions are pinned in manifest.ts.
3
+ *
4
+ * 这一份是**纯数据**:客户端也要 import 它(模型选项、下载量的文案),所以这里不能出现
5
+ * `node:*`。磁盘上有没有那份模型由服务端判(`modelOptionsView(root)`)。
6
+ */
7
+ export declare const EMBEDDING_MODELS: readonly [{
8
+ readonly id: "bge-small-zh-v1.5";
9
+ readonly repo: "BAAI/bge-small-zh-v1.5";
10
+ readonly directory: "bge-small-zh-v1.5";
11
+ readonly label: "BGE Small 中文";
12
+ readonly dimension: 512;
13
+ readonly download: "约 96 MB";
14
+ readonly description: "资源占用最低,适合先跑通本地知识检索。";
15
+ }, {
16
+ readonly id: "bge-base-zh-v1.5";
17
+ readonly repo: "BAAI/bge-base-zh-v1.5";
18
+ readonly directory: "bge-base-zh-v1.5";
19
+ readonly label: "BGE Base 中文";
20
+ readonly dimension: 768;
21
+ readonly download: "约 409 MB";
22
+ readonly description: "效果与资源占用较均衡。";
23
+ }, {
24
+ readonly id: "bge-large-zh-v1.5";
25
+ readonly repo: "BAAI/bge-large-zh-v1.5";
26
+ readonly directory: "bge-large-zh-v1.5";
27
+ readonly label: "BGE Large 中文";
28
+ readonly dimension: 1024;
29
+ readonly download: "约 1.3 GB";
30
+ readonly description: "中文向量效果优先,需要更多内存与磁盘。";
31
+ }, {
32
+ readonly id: "wemm-embedding-2b-quantized";
33
+ readonly repo: "ewin-reg/WeMM-Embedding-2B-Quantized";
34
+ readonly directory: "WeMM-Embedding-2B-Quantized";
35
+ readonly label: "WeMM Embedding 2B 社区量化版";
36
+ readonly dimension: 2048;
37
+ readonly download: "约 1.8 GB";
38
+ readonly description: "社区维护的 INT4 / FP8 量化模型,非腾讯官方发布;模型卡标注 license: other,请查看协议。";
39
+ }, {
40
+ readonly id: "wemm-embedding-2b";
41
+ readonly repo: "tencent/WeMM-Embedding-2B";
42
+ readonly directory: "WeMM-Embedding-2B";
43
+ readonly label: "腾讯 WeMM Embedding 2B(BF16)";
44
+ readonly dimension: 2048;
45
+ readonly download: "约 5.5 GB";
46
+ readonly description: "多模态向量模型,支持文本和图片;下载与推理资源占用较高。";
47
+ }];
48
+ export declare const RERANK_MODELS: readonly [{
49
+ readonly id: "bge-reranker-base";
50
+ readonly repo: "BAAI/bge-reranker-base";
51
+ readonly directory: "bge-reranker-base";
52
+ readonly label: "BGE Reranker Base";
53
+ readonly download: "约 1.1 GB";
54
+ readonly description: "中文重排的轻量选项。";
55
+ }, {
56
+ readonly id: "qwen3-reranker-0.6b";
57
+ readonly repo: "Qwen/Qwen3-Reranker-0.6B";
58
+ readonly directory: "Qwen3-Reranker-0.6B";
59
+ readonly label: "Qwen3 Reranker 0.6B";
60
+ readonly download: "约 1.2 GB";
61
+ readonly description: "支持 100 多种语言,适合先试用 Qwen 重排。";
62
+ }, {
63
+ readonly id: "bge-reranker-large";
64
+ readonly repo: "BAAI/bge-reranker-large";
65
+ readonly directory: "bge-reranker-large";
66
+ readonly label: "BGE Reranker Large";
67
+ readonly download: "约 2.2 GB";
68
+ readonly description: "中文和英文重排效果优先,推理速度较慢。";
69
+ }, {
70
+ readonly id: "qwen3-reranker-4b";
71
+ readonly repo: "Qwen/Qwen3-Reranker-4B";
72
+ readonly directory: "Qwen3-Reranker-4B";
73
+ readonly label: "Qwen3 Reranker 4B";
74
+ readonly download: "约 8.1 GB";
75
+ readonly description: "Qwen 中档重排模型;请先确认磁盘与内存充足。";
76
+ }, {
77
+ readonly id: "qwen3-reranker-8b";
78
+ readonly repo: "Qwen/Qwen3-Reranker-8B";
79
+ readonly directory: "Qwen3-Reranker-8B";
80
+ readonly label: "Qwen3 Reranker 8B";
81
+ readonly download: "约 16.4 GB";
82
+ readonly description: "资源占用最高;下载前请确认有足够磁盘与内存。";
83
+ }];
84
+ export type EmbeddingModelId = (typeof EMBEDDING_MODELS)[number]['id'];
85
+ export type RerankModelId = (typeof RERANK_MODELS)[number]['id'];
86
+ export interface ModelSelection {
87
+ embedding: EmbeddingModelId;
88
+ rerank: RerankModelId;
89
+ }
90
+ export interface ModelOptionView {
91
+ id: string;
92
+ label: string;
93
+ dimension?: number;
94
+ download: string;
95
+ description: string;
96
+ modelCardUrl?: string;
97
+ /**
98
+ * 这份模型在资源目录里是否**完整**(有 config、有权重、有分词器词表)。
99
+ * 省略 = 服务端没给资源目录,不知道 —— 不知道就不显示徽标,不猜。
100
+ */
101
+ installed?: boolean;
102
+ }
103
+ export declare const DEFAULT_MODEL_SELECTION: ModelSelection;
104
+ export declare function isModelSelection(value: unknown): value is ModelSelection;
105
+ export declare function parseModelSelection(value: unknown, fallback?: ModelSelection): ModelSelection;
106
+ export declare function embeddingModel(id: EmbeddingModelId): {
107
+ readonly id: "bge-small-zh-v1.5";
108
+ readonly repo: "BAAI/bge-small-zh-v1.5";
109
+ readonly directory: "bge-small-zh-v1.5";
110
+ readonly label: "BGE Small 中文";
111
+ readonly dimension: 512;
112
+ readonly download: "约 96 MB";
113
+ readonly description: "资源占用最低,适合先跑通本地知识检索。";
114
+ } | {
115
+ readonly id: "bge-base-zh-v1.5";
116
+ readonly repo: "BAAI/bge-base-zh-v1.5";
117
+ readonly directory: "bge-base-zh-v1.5";
118
+ readonly label: "BGE Base 中文";
119
+ readonly dimension: 768;
120
+ readonly download: "约 409 MB";
121
+ readonly description: "效果与资源占用较均衡。";
122
+ } | {
123
+ readonly id: "bge-large-zh-v1.5";
124
+ readonly repo: "BAAI/bge-large-zh-v1.5";
125
+ readonly directory: "bge-large-zh-v1.5";
126
+ readonly label: "BGE Large 中文";
127
+ readonly dimension: 1024;
128
+ readonly download: "约 1.3 GB";
129
+ readonly description: "中文向量效果优先,需要更多内存与磁盘。";
130
+ } | {
131
+ readonly id: "wemm-embedding-2b-quantized";
132
+ readonly repo: "ewin-reg/WeMM-Embedding-2B-Quantized";
133
+ readonly directory: "WeMM-Embedding-2B-Quantized";
134
+ readonly label: "WeMM Embedding 2B 社区量化版";
135
+ readonly dimension: 2048;
136
+ readonly download: "约 1.8 GB";
137
+ readonly description: "社区维护的 INT4 / FP8 量化模型,非腾讯官方发布;模型卡标注 license: other,请查看协议。";
138
+ } | {
139
+ readonly id: "wemm-embedding-2b";
140
+ readonly repo: "tencent/WeMM-Embedding-2B";
141
+ readonly directory: "WeMM-Embedding-2B";
142
+ readonly label: "腾讯 WeMM Embedding 2B(BF16)";
143
+ readonly dimension: 2048;
144
+ readonly download: "约 5.5 GB";
145
+ readonly description: "多模态向量模型,支持文本和图片;下载与推理资源占用较高。";
146
+ };
147
+ export declare function rerankModel(id: RerankModelId): {
148
+ readonly id: "bge-reranker-base";
149
+ readonly repo: "BAAI/bge-reranker-base";
150
+ readonly directory: "bge-reranker-base";
151
+ readonly label: "BGE Reranker Base";
152
+ readonly download: "约 1.1 GB";
153
+ readonly description: "中文重排的轻量选项。";
154
+ } | {
155
+ readonly id: "qwen3-reranker-0.6b";
156
+ readonly repo: "Qwen/Qwen3-Reranker-0.6B";
157
+ readonly directory: "Qwen3-Reranker-0.6B";
158
+ readonly label: "Qwen3 Reranker 0.6B";
159
+ readonly download: "约 1.2 GB";
160
+ readonly description: "支持 100 多种语言,适合先试用 Qwen 重排。";
161
+ } | {
162
+ readonly id: "bge-reranker-large";
163
+ readonly repo: "BAAI/bge-reranker-large";
164
+ readonly directory: "bge-reranker-large";
165
+ readonly label: "BGE Reranker Large";
166
+ readonly download: "约 2.2 GB";
167
+ readonly description: "中文和英文重排效果优先,推理速度较慢。";
168
+ } | {
169
+ readonly id: "qwen3-reranker-4b";
170
+ readonly repo: "Qwen/Qwen3-Reranker-4B";
171
+ readonly directory: "Qwen3-Reranker-4B";
172
+ readonly label: "Qwen3 Reranker 4B";
173
+ readonly download: "约 8.1 GB";
174
+ readonly description: "Qwen 中档重排模型;请先确认磁盘与内存充足。";
175
+ } | {
176
+ readonly id: "qwen3-reranker-8b";
177
+ readonly repo: "Qwen/Qwen3-Reranker-8B";
178
+ readonly directory: "Qwen3-Reranker-8B";
179
+ readonly label: "Qwen3 Reranker 8B";
180
+ readonly download: "约 16.4 GB";
181
+ readonly description: "资源占用最高;下载前请确认有足够磁盘与内存。";
182
+ };
183
+ /**
184
+ * 把「约 1.1 GB」这样的文案换回字节数。
185
+ *
186
+ * 判据只留一份:**目录里写的就是那句文案**(顺序与大小都在那里定),再写一份数字字段迟早
187
+ * 会和它对不上。格式是我们自己定的(`约 <数字> MB|GB`),认不出来就返回 undefined ——
188
+ * 算不出总数时宁可不显示总数,也不编一个。
189
+ */
190
+ export declare function downloadBytes(text: string): number | undefined;
191
+ /** 字节数 → 「约 1.2 GB / 约 96 MB」。用于把几个模型加起来报一个总数。 */
192
+ export declare function formatBytes(bytes: number): string;
193
+ /**
194
+ * 模型选项。
195
+ *
196
+ * `installed` 是一个**回调**而不是路径:这一份是纯数据模块(客户端也 import 它),
197
+ * 而「磁盘上有没有、完不完整」要用 `node:fs` 判。服务端把判据传进来,顺便也就把它
198
+ * 与自检那一栏的「模型结构」检查绑成了**同一个函数** —— 否则会出现「选项说已下载、
199
+ * 自检说文件不全」这种同一件事两种说法。
200
+ *
201
+ * 不传回调就省略 `installed`:不知道就别猜,客户端也就不显示徽标。
202
+ */
203
+ export declare function modelOptionsView(installed?: (directory: string) => boolean): {
204
+ embedding: {
205
+ dimension?: number | undefined;
206
+ installed?: boolean | undefined;
207
+ id: string;
208
+ label: string;
209
+ download: string;
210
+ description: string;
211
+ modelCardUrl: string;
212
+ }[];
213
+ rerank: {
214
+ dimension?: number | undefined;
215
+ installed?: boolean | undefined;
216
+ id: string;
217
+ label: string;
218
+ download: string;
219
+ description: string;
220
+ modelCardUrl: string;
221
+ }[];
222
+ };
223
+ //# sourceMappingURL=model-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../../src/environment/model-catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnB,CAAA;AAEV,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BhB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAChE,MAAM,WAAW,cAAc;IAAG,SAAS,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE;AACtF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AACD,eAAO,MAAM,uBAAuB,EAAE,cAGrC,CAAA;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAKxE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,iBAA0B,GAAG,cAAc,CAItG;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM9D;AAED,kDAAkD;AAClD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO;;;;;;;;;;;;;;;;;;;EAW1E"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Models supported by the local embedding and reranking workers. Revisions are pinned in manifest.ts.
3
+ *
4
+ * 这一份是**纯数据**:客户端也要 import 它(模型选项、下载量的文案),所以这里不能出现
5
+ * `node:*`。磁盘上有没有那份模型由服务端判(`modelOptionsView(root)`)。
6
+ */
7
+ export const EMBEDDING_MODELS = [
8
+ {
9
+ id: 'bge-small-zh-v1.5', repo: 'BAAI/bge-small-zh-v1.5', directory: 'bge-small-zh-v1.5',
10
+ label: 'BGE Small 中文', dimension: 512, download: '约 96 MB',
11
+ description: '资源占用最低,适合先跑通本地知识检索。',
12
+ },
13
+ {
14
+ id: 'bge-base-zh-v1.5', repo: 'BAAI/bge-base-zh-v1.5', directory: 'bge-base-zh-v1.5',
15
+ label: 'BGE Base 中文', dimension: 768, download: '约 409 MB',
16
+ description: '效果与资源占用较均衡。',
17
+ },
18
+ {
19
+ id: 'bge-large-zh-v1.5', repo: 'BAAI/bge-large-zh-v1.5', directory: 'bge-large-zh-v1.5',
20
+ label: 'BGE Large 中文', dimension: 1024, download: '约 1.3 GB',
21
+ description: '中文向量效果优先,需要更多内存与磁盘。',
22
+ },
23
+ {
24
+ id: 'wemm-embedding-2b-quantized', repo: 'ewin-reg/WeMM-Embedding-2B-Quantized', directory: 'WeMM-Embedding-2B-Quantized',
25
+ label: 'WeMM Embedding 2B 社区量化版', dimension: 2048, download: '约 1.8 GB',
26
+ description: '社区维护的 INT4 / FP8 量化模型,非腾讯官方发布;模型卡标注 license: other,请查看协议。',
27
+ },
28
+ {
29
+ id: 'wemm-embedding-2b', repo: 'tencent/WeMM-Embedding-2B', directory: 'WeMM-Embedding-2B',
30
+ label: '腾讯 WeMM Embedding 2B(BF16)', dimension: 2048, download: '约 5.5 GB',
31
+ description: '多模态向量模型,支持文本和图片;下载与推理资源占用较高。',
32
+ },
33
+ ];
34
+ export const RERANK_MODELS = [
35
+ {
36
+ id: 'bge-reranker-base', repo: 'BAAI/bge-reranker-base', directory: 'bge-reranker-base',
37
+ label: 'BGE Reranker Base', download: '约 1.1 GB',
38
+ description: '中文重排的轻量选项。',
39
+ },
40
+ {
41
+ id: 'qwen3-reranker-0.6b', repo: 'Qwen/Qwen3-Reranker-0.6B', directory: 'Qwen3-Reranker-0.6B',
42
+ label: 'Qwen3 Reranker 0.6B', download: '约 1.2 GB',
43
+ description: '支持 100 多种语言,适合先试用 Qwen 重排。',
44
+ },
45
+ {
46
+ id: 'bge-reranker-large', repo: 'BAAI/bge-reranker-large', directory: 'bge-reranker-large',
47
+ label: 'BGE Reranker Large', download: '约 2.2 GB',
48
+ description: '中文和英文重排效果优先,推理速度较慢。',
49
+ },
50
+ {
51
+ id: 'qwen3-reranker-4b', repo: 'Qwen/Qwen3-Reranker-4B', directory: 'Qwen3-Reranker-4B',
52
+ label: 'Qwen3 Reranker 4B', download: '约 8.1 GB',
53
+ description: 'Qwen 中档重排模型;请先确认磁盘与内存充足。',
54
+ },
55
+ {
56
+ id: 'qwen3-reranker-8b', repo: 'Qwen/Qwen3-Reranker-8B', directory: 'Qwen3-Reranker-8B',
57
+ label: 'Qwen3 Reranker 8B', download: '约 16.4 GB',
58
+ description: '资源占用最高;下载前请确认有足够磁盘与内存。',
59
+ },
60
+ ];
61
+ export const DEFAULT_MODEL_SELECTION = {
62
+ embedding: 'bge-small-zh-v1.5',
63
+ rerank: 'bge-reranker-base',
64
+ };
65
+ export function isModelSelection(value) {
66
+ if (!value || typeof value !== 'object')
67
+ return false;
68
+ const selection = value;
69
+ return EMBEDDING_MODELS.some(model => model.id === selection.embedding)
70
+ && RERANK_MODELS.some(model => model.id === selection.rerank);
71
+ }
72
+ export function parseModelSelection(value, fallback = DEFAULT_MODEL_SELECTION) {
73
+ if (value === undefined || value === null)
74
+ return { ...fallback };
75
+ if (!isModelSelection(value))
76
+ throw new Error('模型选择无效,请重新选择向量模型和重排模型');
77
+ return { embedding: value.embedding, rerank: value.rerank };
78
+ }
79
+ export function embeddingModel(id) {
80
+ return EMBEDDING_MODELS.find(model => model.id === id);
81
+ }
82
+ export function rerankModel(id) {
83
+ return RERANK_MODELS.find(model => model.id === id);
84
+ }
85
+ /**
86
+ * 把「约 1.1 GB」这样的文案换回字节数。
87
+ *
88
+ * 判据只留一份:**目录里写的就是那句文案**(顺序与大小都在那里定),再写一份数字字段迟早
89
+ * 会和它对不上。格式是我们自己定的(`约 <数字> MB|GB`),认不出来就返回 undefined ——
90
+ * 算不出总数时宁可不显示总数,也不编一个。
91
+ */
92
+ export function downloadBytes(text) {
93
+ const matched = /约\s*([\d.]+)\s*(MB|GB)/i.exec(text);
94
+ if (!matched)
95
+ return undefined;
96
+ const value = Number(matched[1]);
97
+ if (!Number.isFinite(value))
98
+ return undefined;
99
+ return Math.round(value * (matched[2].toUpperCase() === 'GB' ? 1024 ** 3 : 1024 ** 2));
100
+ }
101
+ /** 字节数 → 「约 1.2 GB / 约 96 MB」。用于把几个模型加起来报一个总数。 */
102
+ export function formatBytes(bytes) {
103
+ if (bytes >= 1024 ** 3)
104
+ return `约 ${(bytes / 1024 ** 3).toFixed(1)} GB`;
105
+ return `约 ${Math.max(1, Math.round(bytes / 1024 ** 2))} MB`;
106
+ }
107
+ /**
108
+ * 模型选项。
109
+ *
110
+ * `installed` 是一个**回调**而不是路径:这一份是纯数据模块(客户端也 import 它),
111
+ * 而「磁盘上有没有、完不完整」要用 `node:fs` 判。服务端把判据传进来,顺便也就把它
112
+ * 与自检那一栏的「模型结构」检查绑成了**同一个函数** —— 否则会出现「选项说已下载、
113
+ * 自检说文件不全」这种同一件事两种说法。
114
+ *
115
+ * 不传回调就省略 `installed`:不知道就别猜,客户端也就不显示徽标。
116
+ */
117
+ export function modelOptionsView(installed) {
118
+ const present = (model) => ({
119
+ id: model.id, label: model.label, download: model.download, description: model.description,
120
+ modelCardUrl: `https://huggingface.co/${model.repo}`,
121
+ ...(installed === undefined ? {} : { installed: installed(model.directory) }),
122
+ ...('dimension' in model ? { dimension: model.dimension } : {}),
123
+ });
124
+ return {
125
+ embedding: EMBEDDING_MODELS.map(present),
126
+ rerank: RERANK_MODELS.map(present),
127
+ };
128
+ }
129
+ //# sourceMappingURL=model-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../../src/environment/model-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface ProcessOptions {
2
+ cwd?: string;
3
+ env?: NodeJS.ProcessEnv;
4
+ signal?: AbortSignal;
5
+ timeoutMs?: number;
6
+ onLine?: (line: string) => void;
7
+ }
8
+ /** No shell, bounded output, and only this child PID is stopped. */
9
+ export declare function runProcess(command: string, args: string[], options?: ProcessOptions): Promise<string>;
10
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/environment/process.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0CzG"}
@@ -0,0 +1,54 @@
1
+ import { spawn } from 'node:child_process';
2
+ /** No shell, bounded output, and only this child PID is stopped. */
3
+ export function runProcess(command, args, options = {}) {
4
+ return new Promise((resolve, reject) => {
5
+ if (options.signal?.aborted)
6
+ return reject(new Error('ENVIRONMENT_CANCELLED'));
7
+ const child = spawn(command, args, { cwd: options.cwd, env: options.env ?? process.env, stdio: ['ignore', 'pipe', 'pipe'] });
8
+ let output = '', tail = '', settled = false, stopError;
9
+ let killTimer;
10
+ const end = (error) => {
11
+ if (settled)
12
+ return;
13
+ settled = true;
14
+ clearTimeout(timer);
15
+ clearTimeout(killTimer);
16
+ options.signal?.removeEventListener('abort', cancel);
17
+ if (error)
18
+ reject(error);
19
+ else
20
+ resolve(output);
21
+ };
22
+ // Keep the install lock until this owned child has actually exited.
23
+ const stop = (error) => {
24
+ if (settled || stopError)
25
+ return;
26
+ stopError = error;
27
+ clearTimeout(timer);
28
+ child.kill('SIGTERM');
29
+ killTimer = setTimeout(() => child.kill('SIGKILL'), 1500);
30
+ };
31
+ const cancel = () => stop(new Error('ENVIRONMENT_CANCELLED'));
32
+ const timer = setTimeout(() => stop(new Error(`环境步骤超时:${command}`)), options.timeoutMs ?? 30_000);
33
+ options.signal?.addEventListener('abort', cancel, { once: true });
34
+ const receive = (data) => {
35
+ const text = data.toString();
36
+ output = (output + text).slice(-128_000);
37
+ tail = (tail + text).slice(-16_000);
38
+ const lines = tail.split(/[\r\n]+/);
39
+ tail = lines.pop() ?? '';
40
+ for (const line of lines)
41
+ if (line.trim())
42
+ options.onLine?.(line.trim());
43
+ };
44
+ child.stdout.on('data', receive);
45
+ child.stderr.on('data', receive);
46
+ child.once('error', error => end(error));
47
+ child.once('close', code => {
48
+ if (tail.trim())
49
+ options.onLine?.(tail.trim());
50
+ end(stopError ?? (code === 0 ? undefined : new Error(`环境步骤失败(${code ?? '已停止'}):${output.slice(-3000).trim() || command}`)));
51
+ });
52
+ });
53
+ }
54
+ //# sourceMappingURL=process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/environment/process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type ModelSelection } from './model-catalog.js';
2
+ export declare const MODEL_SELECTION_FILE = "environment-model-selection.json";
3
+ export declare function readModelSelection(resourceRoot: string): ModelSelection;
4
+ export declare function selectedEmbedding(resourceRoot: string | undefined): {
5
+ path?: string;
6
+ dimension?: number;
7
+ };
8
+ export declare function writeModelSelection(resourceRoot: string, selection: ModelSelection): Promise<void>;
9
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../src/environment/selection.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6D,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnH,eAAO,MAAM,oBAAoB,qCAAqC,CAAA;AAEtE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAMvE;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAKzG;AAED,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxG"}
@@ -0,0 +1,29 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { mkdir, rename, writeFile } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { DEFAULT_MODEL_SELECTION, embeddingModel, isModelSelection } from './model-catalog.js';
5
+ export const MODEL_SELECTION_FILE = 'environment-model-selection.json';
6
+ export function readModelSelection(resourceRoot) {
7
+ try {
8
+ const value = JSON.parse(readFileSync(join(resourceRoot, MODEL_SELECTION_FILE), 'utf8'));
9
+ if (isModelSelection(value))
10
+ return { embedding: value.embedding, rerank: value.rerank };
11
+ }
12
+ catch { /* first install or damaged selection: use the shipped defaults */ }
13
+ return { ...DEFAULT_MODEL_SELECTION };
14
+ }
15
+ export function selectedEmbedding(resourceRoot) {
16
+ if (!resourceRoot)
17
+ return {};
18
+ const model = embeddingModel(readModelSelection(resourceRoot).embedding);
19
+ const path = join(resourceRoot, 'models', model.directory);
20
+ return existsSync(path) ? { path, dimension: model.dimension } : {};
21
+ }
22
+ export async function writeModelSelection(resourceRoot, selection) {
23
+ await mkdir(resourceRoot, { recursive: true });
24
+ const destination = join(resourceRoot, MODEL_SELECTION_FILE);
25
+ const temporary = `${destination}.${process.pid}.tmp`;
26
+ await writeFile(temporary, `${JSON.stringify(selection, null, 2)}\n`, 'utf8');
27
+ await rename(temporary, destination);
28
+ }
29
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/environment/selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAuB,MAAM,oBAAoB,CAAA;AAEnH,MAAM,CAAC,MAAM,oBAAoB,GAAG,kCAAkC,CAAA;AAEtE,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QACjG,IAAI,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAC1F,CAAC;IAAC,MAAM,CAAC,CAAC,kEAAkE,CAAC,CAAC;IAC9E,OAAO,EAAE,GAAG,uBAAuB,EAAE,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAAgC;IAChE,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC1D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,YAAoB,EAAE,SAAyB;IACvF,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,MAAM,CAAA;IACrD,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7E,MAAM,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AACtC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import type { RuntimeKnowledgeConfig } from '../types.js';
2
+ import { installRequiredEnvironment } from './install.js';
3
+ import { type ModelSelection } from './model-catalog.js';
4
+ import { runProcess } from './process.js';
5
+ import type { EnvironmentItemId, EnvironmentReport, EnvironmentView } from './types.js';
6
+ export interface EnvironmentOptions {
7
+ resourceRoot: string;
8
+ snapshot: () => {
9
+ config: RuntimeKnowledgeConfig;
10
+ paths: {
11
+ python: string;
12
+ embeddingModel: string;
13
+ rerankModel: string;
14
+ };
15
+ };
16
+ probe: (kind: 'embedding' | 'rerank') => Promise<{
17
+ ok: boolean;
18
+ message: string;
19
+ }>;
20
+ reload: () => void;
21
+ compileStatus?: () => {
22
+ ready: boolean;
23
+ message: string;
24
+ };
25
+ activateSelection?: (selection: ModelSelection) => Promise<() => Promise<void>>;
26
+ run?: typeof runProcess;
27
+ install?: typeof installRequiredEnvironment;
28
+ }
29
+ export declare function modelFilesProblem(path: string): string | undefined;
30
+ /** Preparation and readiness are shared by all bases in one deployment. */
31
+ export declare class KnowledgeEnvironment {
32
+ private readonly options;
33
+ private report;
34
+ private job?;
35
+ private checkPending?;
36
+ private checkScope;
37
+ private checkDeep;
38
+ private work?;
39
+ private controller?;
40
+ private checkController?;
41
+ private disposed;
42
+ constructor(options: EnvironmentOptions);
43
+ private fingerprint;
44
+ view(): EnvironmentView;
45
+ invalidate(): void;
46
+ requireReady(kind?: EnvironmentItemId): Promise<void>;
47
+ check(deep?: boolean, kind?: EnvironmentItemId): Promise<EnvironmentReport>;
48
+ private item;
49
+ private performCheck;
50
+ /**
51
+ * 这个解释器有没有「加载不了第三方原生扩展」的结构性问题。
52
+ *
53
+ * 目前只有一种:macOS 上带 hardened runtime(`codesign` 的 flags 里有 `runtime`)——
54
+ * 库校验只喂它自己 Team ID 签的 dylib,而 pip 上的 torch 等轮子是 ad-hoc 签名的。
55
+ * 判据来自 `dsh-python.ts`,安装那条路用的是同一个函数:**自检与安装必须看同一件事**,
56
+ * 否则会出现「自检说没问题、装的时候换了解释器」这种两边不对账的情况。
57
+ */
58
+ private interpreterProblem;
59
+ start(action: 'check' | 'install', requestedSelection?: unknown): EnvironmentView;
60
+ wait(): Promise<void>;
61
+ cancel(): void;
62
+ close(): void;
63
+ }
64
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/environment/service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,OAAO,EAAE,0BAA0B,EAAoB,MAAM,cAAc,CAAA;AAC3E,OAAO,EAA0E,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEhI,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,KAAK,EAA4C,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjI,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM;QAAE,MAAM,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;IAC1H,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClF,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/E,GAAG,CAAC,EAAE,OAAO,UAAU,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,0BAA0B,CAAA;CAC5C;AA+DD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsBlE;AAED,2EAA2E;AAC3E,qBAAa,oBAAoB;IAUnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,GAAG,CAAC,CAAwB;IACpC,OAAO,CAAC,YAAY,CAAC,CAA4B;IACjD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,IAAI,CAAC,CAAe;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAQ;gBACK,OAAO,EAAE,kBAAkB;IAIxD,OAAO,CAAC,WAAW;IAWnB,IAAI,IAAI,eAAe;IA2BvB,UAAU,IAAI,IAAI;IAEZ,YAAY,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,KAAK,CAAC,IAAI,UAAO,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAcxE,OAAO,CAAC,IAAI;YAME,YAAY;IA6D1B;;;;;;;OAOG;YACW,kBAAkB;IAQhC,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,eAAe;IAoE3E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;CACd"}