dsh-data-domain-knowledge 0.1.0-alpha.13 → 0.1.0-alpha.15

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 (266) hide show
  1. package/README.md +89 -56
  2. package/cordis.patch.yml +36 -129
  3. package/eval/benchmark-extraction-format.mjs +20 -0
  4. package/lib/client.js +3262 -4142
  5. package/lib/doc-page.js +1 -1
  6. package/lib/pages.js +1147 -364
  7. package/lib/types/axis-registry.d.ts +8 -1
  8. package/lib/types/axis-registry.d.ts.map +1 -1
  9. package/lib/types/axis-registry.js +62 -7
  10. package/lib/types/axis-registry.js.map +1 -1
  11. package/lib/types/convert/host.d.ts.map +1 -1
  12. package/lib/types/convert/host.js +3 -0
  13. package/lib/types/convert/host.js.map +1 -1
  14. package/lib/types/convert/ingest.d.ts +9 -0
  15. package/lib/types/convert/ingest.d.ts.map +1 -1
  16. package/lib/types/convert/ingest.js +68 -9
  17. package/lib/types/convert/ingest.js.map +1 -1
  18. package/lib/types/diagnosis/cards.d.ts +7 -3
  19. package/lib/types/diagnosis/cards.d.ts.map +1 -1
  20. package/lib/types/diagnosis/cards.js +13 -8
  21. package/lib/types/diagnosis/cards.js.map +1 -1
  22. package/lib/types/diagnosis/run.d.ts +4 -13
  23. package/lib/types/diagnosis/run.d.ts.map +1 -1
  24. package/lib/types/diagnosis/run.js +26 -16
  25. package/lib/types/diagnosis/run.js.map +1 -1
  26. package/lib/types/diagnosis/schema.js +2 -2
  27. package/lib/types/diagnosis/schema.js.map +1 -1
  28. package/lib/types/diagnosis/seed-source.d.ts +1 -1
  29. package/lib/types/diagnosis/seed-source.d.ts.map +1 -1
  30. package/lib/types/diagnosis/seed-source.js +5 -4
  31. package/lib/types/diagnosis/seed-source.js.map +1 -1
  32. package/lib/types/diagnosis/seed.d.ts +4 -4
  33. package/lib/types/diagnosis/seed.d.ts.map +1 -1
  34. package/lib/types/diagnosis/seed.js +6 -8
  35. package/lib/types/diagnosis/seed.js.map +1 -1
  36. package/lib/types/diagnosis/store.d.ts +18 -17
  37. package/lib/types/diagnosis/store.d.ts.map +1 -1
  38. package/lib/types/diagnosis/store.js +94 -66
  39. package/lib/types/diagnosis/store.js.map +1 -1
  40. package/lib/types/diagnosis/types.d.ts +10 -16
  41. package/lib/types/diagnosis/types.d.ts.map +1 -1
  42. package/lib/types/diagnosis/types.js.map +1 -1
  43. package/lib/types/environment/dsh-python.d.ts +77 -0
  44. package/lib/types/environment/dsh-python.d.ts.map +1 -0
  45. package/lib/types/environment/dsh-python.js +139 -0
  46. package/lib/types/environment/dsh-python.js.map +1 -0
  47. package/lib/types/environment/install.d.ts +9 -1
  48. package/lib/types/environment/install.d.ts.map +1 -1
  49. package/lib/types/environment/install.js +149 -24
  50. package/lib/types/environment/install.js.map +1 -1
  51. package/lib/types/environment/model-catalog.d.ts +34 -2
  52. package/lib/types/environment/model-catalog.d.ts.map +1 -1
  53. package/lib/types/environment/model-catalog.js +40 -2
  54. package/lib/types/environment/model-catalog.js.map +1 -1
  55. package/lib/types/environment/service.d.ts +13 -3
  56. package/lib/types/environment/service.d.ts.map +1 -1
  57. package/lib/types/environment/service.js +127 -23
  58. package/lib/types/environment/service.js.map +1 -1
  59. package/lib/types/environment/types.d.ts +9 -0
  60. package/lib/types/environment/types.d.ts.map +1 -1
  61. package/lib/types/events.d.ts +2 -0
  62. package/lib/types/events.d.ts.map +1 -1
  63. package/lib/types/events.js +13 -0
  64. package/lib/types/events.js.map +1 -1
  65. package/lib/types/extract-contract.d.ts +1 -1
  66. package/lib/types/extract-contract.d.ts.map +1 -1
  67. package/lib/types/extract-contract.js +34 -31
  68. package/lib/types/extract-contract.js.map +1 -1
  69. package/lib/types/extract-model.d.ts +2 -0
  70. package/lib/types/extract-model.d.ts.map +1 -1
  71. package/lib/types/extract-model.js.map +1 -1
  72. package/lib/types/extract-table-contract.d.ts +3 -0
  73. package/lib/types/extract-table-contract.d.ts.map +1 -0
  74. package/lib/types/extract-table-contract.js +30 -0
  75. package/lib/types/extract-table-contract.js.map +1 -0
  76. package/lib/types/extract-table.d.ts +8 -0
  77. package/lib/types/extract-table.d.ts.map +1 -0
  78. package/lib/types/extract-table.js +151 -0
  79. package/lib/types/extract-table.js.map +1 -0
  80. package/lib/types/extraction-runs.d.ts +30 -6
  81. package/lib/types/extraction-runs.d.ts.map +1 -1
  82. package/lib/types/extraction-runs.js +69 -8
  83. package/lib/types/extraction-runs.js.map +1 -1
  84. package/lib/types/fs-atomic.d.ts +0 -7
  85. package/lib/types/fs-atomic.d.ts.map +1 -1
  86. package/lib/types/fs-atomic.js +17 -2
  87. package/lib/types/fs-atomic.js.map +1 -1
  88. package/lib/types/images.d.ts +1 -1
  89. package/lib/types/images.d.ts.map +1 -1
  90. package/lib/types/images.js +2 -2
  91. package/lib/types/images.js.map +1 -1
  92. package/lib/types/index.d.ts.map +1 -1
  93. package/lib/types/index.js +232 -50
  94. package/lib/types/index.js.map +1 -1
  95. package/lib/types/intent/scope.d.ts.map +1 -1
  96. package/lib/types/intent/scope.js +1 -0
  97. package/lib/types/intent/scope.js.map +1 -1
  98. package/lib/types/intent/tools.d.ts +19 -0
  99. package/lib/types/intent/tools.d.ts.map +1 -1
  100. package/lib/types/intent/tools.js +37 -1
  101. package/lib/types/intent/tools.js.map +1 -1
  102. package/lib/types/knowledge-bases.d.ts.map +1 -1
  103. package/lib/types/knowledge-bases.js +5 -16
  104. package/lib/types/knowledge-bases.js.map +1 -1
  105. package/lib/types/knowledge.d.ts +3 -0
  106. package/lib/types/knowledge.d.ts.map +1 -1
  107. package/lib/types/knowledge.js +21 -5
  108. package/lib/types/knowledge.js.map +1 -1
  109. package/lib/types/materialize-snapshot.d.ts +49 -0
  110. package/lib/types/materialize-snapshot.d.ts.map +1 -0
  111. package/lib/types/materialize-snapshot.js +2 -0
  112. package/lib/types/materialize-snapshot.js.map +1 -0
  113. package/lib/types/model-text.d.ts +1 -1
  114. package/lib/types/model-text.d.ts.map +1 -1
  115. package/lib/types/model-text.js +5 -4
  116. package/lib/types/model-text.js.map +1 -1
  117. package/lib/types/oplog.d.ts.map +1 -1
  118. package/lib/types/oplog.js +7 -0
  119. package/lib/types/oplog.js.map +1 -1
  120. package/lib/types/pipeline/engine.d.ts +60 -0
  121. package/lib/types/pipeline/engine.d.ts.map +1 -0
  122. package/lib/types/pipeline/engine.js +338 -0
  123. package/lib/types/pipeline/engine.js.map +1 -0
  124. package/lib/types/pipeline/store.d.ts +73 -0
  125. package/lib/types/pipeline/store.d.ts.map +1 -0
  126. package/lib/types/pipeline/store.js +143 -0
  127. package/lib/types/pipeline/store.js.map +1 -0
  128. package/lib/types/pipeline/types.d.ts +101 -0
  129. package/lib/types/pipeline/types.d.ts.map +1 -0
  130. package/lib/types/pipeline/types.js +5 -0
  131. package/lib/types/pipeline/types.js.map +1 -0
  132. package/lib/types/present.d.ts +2 -0
  133. package/lib/types/present.d.ts.map +1 -1
  134. package/lib/types/present.js +9 -4
  135. package/lib/types/present.js.map +1 -1
  136. package/lib/types/retention.d.ts +39 -0
  137. package/lib/types/retention.d.ts.map +1 -0
  138. package/lib/types/retention.js +42 -0
  139. package/lib/types/retention.js.map +1 -0
  140. package/lib/types/runtime.d.ts +115 -5
  141. package/lib/types/runtime.d.ts.map +1 -1
  142. package/lib/types/runtime.js +862 -132
  143. package/lib/types/runtime.js.map +1 -1
  144. package/lib/types/source-evidence.d.ts +9 -1
  145. package/lib/types/source-evidence.d.ts.map +1 -1
  146. package/lib/types/source-evidence.js +13 -5
  147. package/lib/types/source-evidence.js.map +1 -1
  148. package/lib/types/store/axis-references.js +3 -3
  149. package/lib/types/store/axis-references.js.map +1 -1
  150. package/lib/types/store/derived.d.ts +1 -1
  151. package/lib/types/store/derived.d.ts.map +1 -1
  152. package/lib/types/store/derived.js +41 -7
  153. package/lib/types/store/derived.js.map +1 -1
  154. package/lib/types/store/knowledge-db.d.ts +18 -0
  155. package/lib/types/store/knowledge-db.d.ts.map +1 -1
  156. package/lib/types/store/knowledge-db.js +111 -6
  157. package/lib/types/store/knowledge-db.js.map +1 -1
  158. package/lib/types/store/migrate.js +1 -1
  159. package/lib/types/store/migrate.js.map +1 -1
  160. package/lib/types/trajectory-types.d.ts +172 -0
  161. package/lib/types/trajectory-types.d.ts.map +1 -0
  162. package/lib/types/trajectory-types.js +36 -0
  163. package/lib/types/trajectory-types.js.map +1 -0
  164. package/lib/types/types.d.ts +3 -4
  165. package/lib/types/types.d.ts.map +1 -1
  166. package/lib/types/types.js.map +1 -1
  167. package/lib/types/wiki-finalize.d.ts +16 -0
  168. package/lib/types/wiki-finalize.d.ts.map +1 -1
  169. package/lib/types/wiki-finalize.js +26 -0
  170. package/lib/types/wiki-finalize.js.map +1 -1
  171. package/lib/types/wiki-materialize.d.ts.map +1 -1
  172. package/lib/types/wiki-materialize.js +3 -15
  173. package/lib/types/wiki-materialize.js.map +1 -1
  174. package/lib/types/wiki-trial-types.d.ts +3 -0
  175. package/lib/types/wiki-trial-types.d.ts.map +1 -1
  176. package/lib/types/wiki-trial.d.ts +2 -0
  177. package/lib/types/wiki-trial.d.ts.map +1 -1
  178. package/lib/types/wiki-trial.js +31 -7
  179. package/lib/types/wiki-trial.js.map +1 -1
  180. package/package.json +6 -3
  181. package/preset/tita-data-agent/agent.cordis.yml +36 -129
  182. package/src/axis-registry.ts +57 -9
  183. package/src/client/AttributionEventGuide.tsx +10 -9
  184. package/src/client/CompileDialogs.tsx +10 -2
  185. package/src/client/EnvironmentSetup.tsx +76 -16
  186. package/src/client/ExpansionGraph.tsx +13 -7
  187. package/src/client/ExtractionTasksPage.tsx +543 -156
  188. package/src/client/ImportFilesDialog.tsx +2 -13
  189. package/src/client/IntentTab.tsx +3 -1
  190. package/src/client/KnowledgeBaseTab.tsx +139 -122
  191. package/src/client/KnowledgeLayerSection.tsx +19 -2
  192. package/src/client/KnowledgePanel.tsx +17 -3
  193. package/src/client/ListPager.tsx +15 -5
  194. package/src/client/MaterializeTrajectoryView.tsx +124 -0
  195. package/src/client/NodeSettings.tsx +90 -25
  196. package/src/client/NormalizeTrajectoryView.tsx +136 -0
  197. package/src/client/PipelineNotice.tsx +26 -0
  198. package/src/client/RecallPanel.tsx +55 -25
  199. package/src/client/TabGuide.tsx +4 -4
  200. package/src/client/TrialReportView.tsx +61 -16
  201. package/src/client/TypeDefinitionDrawer.tsx +33 -9
  202. package/src/client/WikiCardPreview.tsx +43 -10
  203. package/src/client/WikiFlowPanel.tsx +4 -4
  204. package/src/client/architecture.tsx +1 -1
  205. package/src/client/attribution/AttributionTab.tsx +37 -36
  206. package/src/client/attribution/CaseView.tsx +3 -1
  207. package/src/client/attribution/EventView.tsx +14 -4
  208. package/src/client/attribution/RunView.tsx +2 -2
  209. package/src/client/attribution/ViewSwitch.tsx +20 -5
  210. package/src/client/attribution/graph-options.ts +38 -31
  211. package/src/client/attribution/model.ts +16 -9
  212. package/src/client/graph/palette.ts +165 -0
  213. package/src/client/pages.css +224 -28
  214. package/src/client/pages.tsx +33 -11
  215. package/src/client/styles.css +61 -6
  216. package/src/client/wiki-trial.ts +30 -1
  217. package/src/convert/host.ts +3 -0
  218. package/src/convert/ingest.ts +73 -9
  219. package/src/diagnosis/cards.ts +13 -8
  220. package/src/diagnosis/run.ts +27 -17
  221. package/src/diagnosis/schema.ts +2 -2
  222. package/src/diagnosis/seed-source.ts +5 -4
  223. package/src/diagnosis/seed.ts +6 -8
  224. package/src/diagnosis/store.ts +99 -69
  225. package/src/diagnosis/types.ts +10 -16
  226. package/src/environment/dsh-python.ts +156 -0
  227. package/src/environment/install.ts +134 -19
  228. package/src/environment/model-catalog.ts +45 -3
  229. package/src/environment/service.ts +111 -23
  230. package/src/environment/types.ts +6 -0
  231. package/src/events.ts +12 -0
  232. package/src/extract-contract.ts +6 -3
  233. package/src/extract-model.ts +2 -0
  234. package/src/extract-table-contract.ts +29 -0
  235. package/src/extract-table.ts +126 -0
  236. package/src/extraction-runs.ts +70 -11
  237. package/src/fs-atomic.ts +19 -2
  238. package/src/images.ts +2 -2
  239. package/src/index.ts +207 -72
  240. package/src/intent/scope.ts +1 -0
  241. package/src/intent/tools.ts +38 -1
  242. package/src/knowledge-bases.ts +4 -12
  243. package/src/knowledge.ts +24 -4
  244. package/src/materialize-snapshot.ts +46 -0
  245. package/src/model-text.ts +5 -3
  246. package/src/oplog.ts +7 -0
  247. package/src/pipeline/engine.ts +312 -0
  248. package/src/pipeline/store.ts +147 -0
  249. package/src/pipeline/types.ts +92 -0
  250. package/src/present.ts +10 -4
  251. package/src/retention.ts +76 -0
  252. package/src/runtime.ts +853 -131
  253. package/src/source-evidence.ts +12 -5
  254. package/src/store/axis-references.ts +3 -3
  255. package/src/store/derived.ts +40 -7
  256. package/src/store/knowledge-db.ts +111 -5
  257. package/src/store/migrate.ts +1 -1
  258. package/src/trajectory-types.ts +142 -0
  259. package/src/types.ts +3 -4
  260. package/src/wiki-finalize.ts +28 -0
  261. package/src/wiki-materialize.ts +3 -14
  262. package/src/wiki-trial-types.ts +3 -0
  263. package/src/wiki-trial.ts +26 -7
  264. package/src/client/convert/ConvertPanel.tsx +0 -583
  265. package/src/client/convert/styles.css +0 -138
  266. package/src/client/convert/styles.ts +0 -49
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/diagnosis/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/diagnosis/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,OAAO,GACP,MAAM,GACN,UAAU,GACV,OAAO,GACP,SAAS,CAAA;AAEb;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,aAAa,GAAG,iBAAiB,GAAG,aAAa,GAAG,YAAY,CAAA;AAEjH,0DAA0D;AAC1D,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAA;AAErE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAA;AAE9D;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,gCAAgC;AAChC,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,aAAa,GACb,gBAAgB,GAChB,SAAS,GACT,UAAU,GACV,UAAU,GACV,SAAS,GACT,cAAc,GACd,aAAa,GACb,cAAc,CAAA;AAElB,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,mBAAmB,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAA;IAIf,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gCAAgC;IAChC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,cAAc;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,WAAW;IACX,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,mBAAmB,CAAA;IACzB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,0BAA0B;AAC1B,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,IAAI,EAAE,YAAY,EAAE,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,2CAA2C;IAC3C,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAClF,SAAS,EAAE,MAAM,CAAA;IACjB,oCAAoC;IACpC,eAAe,CAAC,EAAE,WAAW,GAAG,aAAa,CAAA;CAC9C;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAA;IACpD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAClF,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAC,CAAA;IACF,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/F,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACrD,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAA;CAChB;AAaD,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,YAAY;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB;IAChB,OAAO,EAAE,eAAe,CAAA;IACxB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAA;IACX,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAe;AACf,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,iDAAiD;IACjD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAA;IACb,eAAe;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,yCAAyC;IACzC,IAAI,EAAE,YAAY,EAAE,CAAA;IACpB,QAAQ,EAAE,oBAAoB,EAAE,CAAA;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,oCAAoC;IACpC,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC1F"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/diagnosis/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyKH,0BAA0B;AAC1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/diagnosis/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0KH,0BAA0B;AAC1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * DSH 自带 Python 的落点(2026-10-18)。
3
+ *
4
+ * 桌面端把 Python 3.12 **打在自己的运行时里**:
5
+ * `<App>/Contents/Resources/runtime/primary-runtime/dependencies/python`(清单见同目录
6
+ * `runtime.json` 的 `python` 字段)。但这一层没把位置告诉插件 —— 宿主不导出 `DSH_PYTHON`,
7
+ * 于是「一键准备」的默认值 `python3` 落到了系统那个 3.9(macOS 命令行工具自带的正是 3.9),
8
+ * 第一步就报「Python 版本不受支持」,而机器上明明有 3.12。
9
+ *
10
+ * 所以这里自己找,顺序是:
11
+ *
12
+ * 1. **`DSH_PYTHON`** —— 显式覆盖永远是第一位的(文档里承诺的自定义入口)。
13
+ * 2. **DSH 自带的那一个** —— 从宿主告诉我们的两个锚点推:Electron 的 `resourcesPath`,
14
+ * 以及 `process.execPath`(桌面端是 `Contents/MacOS/<App>`,`ELECTRON_RUN_AS_NODE` 下
15
+ * 它就是运行时用的那个可执行文件)。两者都会向上找几级,因为包装脚本与真实二进制的
16
+ * 层级不一定一样。
17
+ * 3. **PATH 上的 `python3`** —— 都没有才退回。
18
+ *
19
+ * ## 这里只回答「哪个路径最可能是它」,不回答「它是哪个版本」
20
+ *
21
+ * 版本判断必须由准备阶段做(它要跑一次 `sys.version_info`,并把结论写进安装日志)。
22
+ * 在这里再探测一遍等于把同步可判的事情做成两次异步调用,而且拿到版本也不知道该报给谁。
23
+ */
24
+ import { runProcess } from './process.js';
25
+ export interface PythonPick {
26
+ /** 要拿去建虚拟环境的解释器。 */
27
+ path: string;
28
+ /** 它从哪来 —— 报错时要能说清「我没找到自带的那个」。 */
29
+ source: 'override' | 'bundled' | 'path';
30
+ }
31
+ export interface PythonProbe {
32
+ env?: Record<string, string | undefined>;
33
+ /** Electron 的 `process.resourcesPath`;不在 Electron 里时省略。 */
34
+ resourcesPath?: string;
35
+ /** 宿主的可执行文件路径;默认取 `process.execPath`。 */
36
+ execPath?: string;
37
+ platform?: NodeJS.Platform;
38
+ /** 存在性判断,测试里换成假的。 */
39
+ exists?: (path: string) => boolean;
40
+ }
41
+ /**
42
+ * 挑一个基础解释器。**纯函数**(存在性判断可注入),所以「自带优先于 PATH」这条能被单独断言。
43
+ */
44
+ export declare function pickBasePython(probe?: PythonProbe): PythonPick;
45
+ /** 报错里那句「没找到自带的那一个」用得上。 */
46
+ export declare function pythonSourceLabel(source: PythonPick['source']): string;
47
+ /**
48
+ * 这个解释器能不能加载**第三方原生扩展**(torch 这类 pip 装的 dylib)。
49
+ *
50
+ * macOS 上不行的一种情况是真实存在过的(2026-10-18 实测):DSH 桌面端把 Python 3.12
51
+ * 打在自己的运行时里,并给它签了 Developer ID + **hardened runtime**
52
+ * (`flags=0x10000(runtime)`),又没有 `com.apple.security.cs.disable-library-validation`。
53
+ * 库校验因此生效 —— 它只肯加载**同一 Team ID** 签的 dylib。pip 上的 torch 是 ad-hoc 签名
54
+ * (Team ID 为空),于是:
55
+ *
56
+ * ```
57
+ * OSError: dlopen(.../libtorch_global_deps.dylib, 0x000A):
58
+ * code signature ... not valid for use in process:
59
+ * mapping process and mapped file (non-platform) have different Team IDs
60
+ * ```
61
+ *
62
+ * 同一个 dylib 换成 uv 管的独立 CPython(`adhoc, linker-signed`,没有 runtime 标记)
63
+ * 就能加载 —— 这一条在同一台机器上验过。
64
+ *
65
+ * 判据读的是 `codesign` 的 flags,不看路径:运行时目录在某些安装形态下不在 `.app` 里,
66
+ * 而「带不带 hardened runtime」才是真正决定库校验的那件事。没有 `codesign`(Linux/Windows)
67
+ * 或读不到(没签名)时一律当「能加载」—— 不因为探测失败就改道去下载解释器。
68
+ */
69
+ export declare function hasHardenedRuntime(path: string, run?: typeof runProcess): Promise<boolean>;
70
+ /**
71
+ * 这个解释器要不要换成 uv 管的那一个。
72
+ *
73
+ * 判据只有一条:**带 hardened runtime 就用不了第三方原生扩展**(见 `hasHardenedRuntime`)。
74
+ * `DSH_PYTHON` 显式给的不改道 —— 那是用户的选择;插件只把风险写进日志。
75
+ */
76
+ export declare function needsManagedInterpreter(pick: PythonPick, hardened: boolean): boolean;
77
+ //# sourceMappingURL=dsh-python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsh-python.d.ts","sourceRoot":"","sources":["../../../src/environment/dsh-python.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAwCzC,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAA;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACxC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;IAC1B,qBAAqB;IACrB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CACnC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,GAAE,WAAgB,GAAG,UAAU,CAoBlE;AAED,2BAA2B;AAC3B,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAEtE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,OAAO,UAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAS5G;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAEpF"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * DSH 自带 Python 的落点(2026-10-18)。
3
+ *
4
+ * 桌面端把 Python 3.12 **打在自己的运行时里**:
5
+ * `<App>/Contents/Resources/runtime/primary-runtime/dependencies/python`(清单见同目录
6
+ * `runtime.json` 的 `python` 字段)。但这一层没把位置告诉插件 —— 宿主不导出 `DSH_PYTHON`,
7
+ * 于是「一键准备」的默认值 `python3` 落到了系统那个 3.9(macOS 命令行工具自带的正是 3.9),
8
+ * 第一步就报「Python 版本不受支持」,而机器上明明有 3.12。
9
+ *
10
+ * 所以这里自己找,顺序是:
11
+ *
12
+ * 1. **`DSH_PYTHON`** —— 显式覆盖永远是第一位的(文档里承诺的自定义入口)。
13
+ * 2. **DSH 自带的那一个** —— 从宿主告诉我们的两个锚点推:Electron 的 `resourcesPath`,
14
+ * 以及 `process.execPath`(桌面端是 `Contents/MacOS/<App>`,`ELECTRON_RUN_AS_NODE` 下
15
+ * 它就是运行时用的那个可执行文件)。两者都会向上找几级,因为包装脚本与真实二进制的
16
+ * 层级不一定一样。
17
+ * 3. **PATH 上的 `python3`** —— 都没有才退回。
18
+ *
19
+ * ## 这里只回答「哪个路径最可能是它」,不回答「它是哪个版本」
20
+ *
21
+ * 版本判断必须由准备阶段做(它要跑一次 `sys.version_info`,并把结论写进安装日志)。
22
+ * 在这里再探测一遍等于把同步可判的事情做成两次异步调用,而且拿到版本也不知道该报给谁。
23
+ */
24
+ import { existsSync } from 'node:fs';
25
+ import { posix, win32 } from 'node:path';
26
+ import { runProcess } from './process.js';
27
+ /**
28
+ * 按**目标平台**拼路径,不按跑这段代码的机器。
29
+ *
30
+ * 生产里两者永远一致(Windows 上 `process.platform` 就是 `win32`),但这里允许注入平台 ——
31
+ * 而 POSIX 上的 `dirname('C:\\x\\node.exe')` 会给出 `'.'`,于是那条 Windows 断言在 mac 上
32
+ * 跑不通。用平台自己的路径工具,注入才是真的能测。
33
+ */
34
+ const pathsFor = (platform) => platform === 'win32' ? win32 : posix;
35
+ /** 相对 App 资源根的落点。`runtime.json` 就在它的上一级。 */
36
+ const BUNDLE_RELATIVE = ['runtime/primary-runtime/dependencies/python'];
37
+ /** 一个解释器可能叫的几个名字。Windows 的独立发行版把 `python.exe` 放在根上。 */
38
+ function interpreterNames(root, platform) {
39
+ const { join } = pathsFor(platform);
40
+ return platform === 'win32'
41
+ ? [join(root, 'python.exe'), join(root, 'python3.exe')]
42
+ : [join(root, 'bin', 'python3'), join(root, 'bin', 'python')];
43
+ }
44
+ /** 从锚点向上走几级,每一级都试「本体」和「本体/Resources」两种排法。 */
45
+ function bundleCandidates(anchor, platform) {
46
+ const { dirname, join } = pathsFor(platform);
47
+ const found = [];
48
+ let dir = anchor;
49
+ for (let depth = 0; depth < 6; depth += 1) {
50
+ for (const relative of BUNDLE_RELATIVE) {
51
+ for (const name of interpreterNames(join(dir, relative), platform))
52
+ found.push(name);
53
+ // macOS / Windows 的 `.app`:真实资源在 `Contents/Resources`,而锚点是 `Contents/MacOS`。
54
+ for (const name of interpreterNames(join(dir, 'Resources', relative), platform))
55
+ found.push(name);
56
+ }
57
+ const parent = dirname(dir);
58
+ if (parent === dir)
59
+ break;
60
+ dir = parent;
61
+ }
62
+ return found;
63
+ }
64
+ /**
65
+ * 挑一个基础解释器。**纯函数**(存在性判断可注入),所以「自带优先于 PATH」这条能被单独断言。
66
+ */
67
+ export function pickBasePython(probe = {}) {
68
+ const env = probe.env ?? process.env;
69
+ const override = env.DSH_PYTHON?.trim();
70
+ if (override)
71
+ return { path: override, source: 'override' };
72
+ const platform = probe.platform ?? process.platform;
73
+ const exists = probe.exists ?? existsSync;
74
+ const anchors = [];
75
+ if (probe.resourcesPath)
76
+ anchors.push(probe.resourcesPath);
77
+ const { dirname } = pathsFor(platform);
78
+ const executables = [env.DSH_DESKTOP_NODE_EXECUTABLE, probe.execPath ?? process.execPath];
79
+ for (const executable of executables) {
80
+ const value = executable?.trim();
81
+ if (value)
82
+ anchors.push(dirname(value));
83
+ }
84
+ for (const anchor of anchors) {
85
+ for (const candidate of bundleCandidates(anchor, platform)) {
86
+ if (exists(candidate))
87
+ return { path: candidate, source: 'bundled' };
88
+ }
89
+ }
90
+ return { path: 'python3', source: 'path' };
91
+ }
92
+ /** 报错里那句「没找到自带的那一个」用得上。 */
93
+ export function pythonSourceLabel(source) {
94
+ return source === 'override' ? 'DSH_PYTHON' : source === 'bundled' ? 'DSH 自带运行时' : 'PATH 上的 python3';
95
+ }
96
+ /**
97
+ * 这个解释器能不能加载**第三方原生扩展**(torch 这类 pip 装的 dylib)。
98
+ *
99
+ * macOS 上不行的一种情况是真实存在过的(2026-10-18 实测):DSH 桌面端把 Python 3.12
100
+ * 打在自己的运行时里,并给它签了 Developer ID + **hardened runtime**
101
+ * (`flags=0x10000(runtime)`),又没有 `com.apple.security.cs.disable-library-validation`。
102
+ * 库校验因此生效 —— 它只肯加载**同一 Team ID** 签的 dylib。pip 上的 torch 是 ad-hoc 签名
103
+ * (Team ID 为空),于是:
104
+ *
105
+ * ```
106
+ * OSError: dlopen(.../libtorch_global_deps.dylib, 0x000A):
107
+ * code signature ... not valid for use in process:
108
+ * mapping process and mapped file (non-platform) have different Team IDs
109
+ * ```
110
+ *
111
+ * 同一个 dylib 换成 uv 管的独立 CPython(`adhoc, linker-signed`,没有 runtime 标记)
112
+ * 就能加载 —— 这一条在同一台机器上验过。
113
+ *
114
+ * 判据读的是 `codesign` 的 flags,不看路径:运行时目录在某些安装形态下不在 `.app` 里,
115
+ * 而「带不带 hardened runtime」才是真正决定库校验的那件事。没有 `codesign`(Linux/Windows)
116
+ * 或读不到(没签名)时一律当「能加载」—— 不因为探测失败就改道去下载解释器。
117
+ */
118
+ export async function hasHardenedRuntime(path, run = runProcess) {
119
+ if (process.platform !== 'darwin')
120
+ return false;
121
+ try {
122
+ const output = await run('/usr/bin/codesign', ['-dv', '--verbose=2', path], { timeoutMs: 10_000 });
123
+ const flags = /flags=0x[0-9a-f]+\(([^)]*)\)/i.exec(output)?.[1] ?? '';
124
+ return flags.split(',').some(flag => flag.trim() === 'runtime');
125
+ }
126
+ catch {
127
+ return false;
128
+ }
129
+ }
130
+ /**
131
+ * 这个解释器要不要换成 uv 管的那一个。
132
+ *
133
+ * 判据只有一条:**带 hardened runtime 就用不了第三方原生扩展**(见 `hasHardenedRuntime`)。
134
+ * `DSH_PYTHON` 显式给的不改道 —— 那是用户的选择;插件只把风险写进日志。
135
+ */
136
+ export function needsManagedInterpreter(pick, hardened) {
137
+ return hardened && pick.source !== 'override';
138
+ }
139
+ //# sourceMappingURL=dsh-python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsh-python.js","sourceRoot":"","sources":["../../../src/environment/dsh-python.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,13 @@ import { runProcess } from './process.js';
3
3
  export declare const requirementsFile: string;
4
4
  export declare const setupScript: string;
5
5
  export declare function managedPython(root: string): string;
6
- export declare function installRequiredEnvironment(root: string, signal: AbortSignal, stage: (label: string) => void, log: (line: string) => void, runner?: typeof runProcess, selection?: ModelSelection, basePython?: string): Promise<void>;
6
+ /**
7
+ * 准备这个库的推理运行时。
8
+ *
9
+ * `basePython` 省略时按 `pickBasePython()` 找:`DSH_PYTHON` → DSH 自带运行时 → PATH 上的
10
+ * `python3`。**默认值不能再写死 `python3`**:macOS 命令行工具自带的是 3.9,而桌面端明明把
11
+ * 3.12 打在了自己的运行时里 —— 写死默认值会让「一键准备」在任何没配 `DSH_PYTHON` 的机器上
12
+ * 第一步就失败(见 `dsh-python.ts` 的注释)。
13
+ */
14
+ export declare function installRequiredEnvironment(root: string, signal: AbortSignal, stage: (label: string) => void, log: (line: string) => void, runner?: typeof runProcess, selection?: ModelSelection, basePython?: string, hardened?: (path: string) => Promise<boolean>): Promise<void>;
7
15
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/environment/install.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEjF,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAA;AAE9D,eAAO,MAAM,gBAAgB,QAA8E,CAAA;AAC3G,eAAO,MAAM,WAAW,QAA+E,CAAA;AACvG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAgI;AA6EnL,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,GAAE,OAAO,UAAuB,EAAE,SAAS,GAAE,cAAwC,EAAE,UAAU,SAAsC,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC7S"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/environment/install.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEjF,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAA;AAG9D,eAAO,MAAM,gBAAgB,QAA8E,CAAA;AAC3G,eAAO,MAAM,WAAW,QAA+E,CAAA;AACvG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAgI;AAoInL;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,GAAE,OAAO,UAAuB,EAAE,SAAS,GAAE,cAAwC,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAA4C,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFzW"}
@@ -1,6 +1,6 @@
1
1
  import { createHash, randomUUID } from 'node:crypto';
2
2
  import { existsSync } from 'node:fs';
3
- import { chmod, copyFile, mkdir, open, readFile, readdir, rename, rm, writeFile } from 'node:fs/promises';
3
+ import { chmod, copyFile, mkdir, open, readFile, readdir, rename, rm, stat, writeFile } from 'node:fs/promises';
4
4
  import { homedir } from 'node:os';
5
5
  import { dirname, join } from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
@@ -8,9 +8,16 @@ import { modelsForSelection, UV_VERSION } from './manifest.js';
8
8
  import { DEFAULT_MODEL_SELECTION } from './model-catalog.js';
9
9
  import { writeModelSelection } from './selection.js';
10
10
  import { runProcess } from './process.js';
11
+ import { hasHardenedRuntime, needsManagedInterpreter, pickBasePython, pythonSourceLabel } from './dsh-python.js';
11
12
  export const requirementsFile = fileURLToPath(new URL('../../../python/requirements.txt', import.meta.url));
12
13
  export const setupScript = fileURLToPath(new URL('../../../python/prepare-models.py', import.meta.url));
13
14
  export function managedPython(root) { return process.platform === 'win32' ? join(root, 'python', 'Scripts', 'python.exe') : join(root, 'python', 'bin', 'python'); }
15
+ /** 只问次版本:判断的是「能不能装这套依赖」,不是补丁号。 */
16
+ const PYTHON_VERSION_SCRIPT = 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")';
17
+ /** 推理依赖支持的解释器区间(torch 的 wheel 覆盖到 3.13)。 */
18
+ const SUPPORTED_PYTHON = /^3\.(10|11|12|13)$/;
19
+ /** 走 uv 管理解释器时请求的版本:与桌面端自带的那份对齐,避免两套行为。 */
20
+ const MANAGED_PYTHON = '3.12';
14
21
  async function download(url, signal) {
15
22
  const response = await fetch(url, { signal: AbortSignal.any([signal, AbortSignal.timeout(120_000)]) });
16
23
  if (!response.ok)
@@ -81,13 +88,22 @@ async function ensureUv(root, signal, log, run) {
81
88
  await rm(scratch, { recursive: true, force: true });
82
89
  }
83
90
  }
91
+ /**
92
+ * 一把「陈旧」锁可以被接管的时限。
93
+ *
94
+ * 单步安装超时是 30 分钟,整轮远小于这个上限,所以 6 小时之后还在的锁一定是崩溃残留。
95
+ * 有了它,「持锁进程已死但 PID 被系统复用」才不会让用户永久卡在「另一个进程正在准备环境」上。
96
+ */
97
+ const STALE_LOCK_MS = 6 * 60 * 60 * 1000;
84
98
  async function installLock(root) {
85
99
  const path = join(root, 'environment-install.lock');
86
- for (let attempt = 0; attempt < 2; attempt++) {
100
+ /** 这一把锁的归属凭据。释放时靠它判断「这份文件还是不是我的」。 */
101
+ const token = randomUUID();
102
+ for (let attempt = 0; attempt < 3; attempt++) {
87
103
  try {
88
104
  const file = await open(path, 'wx');
89
105
  try {
90
- await file.writeFile(JSON.stringify({ pid: process.pid, at: new Date().toISOString() }));
106
+ await file.writeFile(JSON.stringify({ token, pid: process.pid, at: new Date().toISOString() }));
91
107
  }
92
108
  catch (cause) {
93
109
  await rm(path, { force: true });
@@ -96,52 +112,157 @@ async function installLock(root) {
96
112
  finally {
97
113
  await file.close();
98
114
  }
99
- return () => rm(path, { force: true });
115
+ return async () => {
116
+ /**
117
+ * 只删**自己那一把**。判据是 token,不是「路径上有没有文件」:锁可能已被另一个
118
+ * 进程按陈旧接管过,那时这份文件是它的 —— 删掉就等于让两个安装并发写同一个 venv。
119
+ */
120
+ try {
121
+ const current = JSON.parse(await readFile(path, 'utf8'));
122
+ if (current.token === token)
123
+ await rm(path, { force: true });
124
+ }
125
+ catch { /* 已被接管或已不存在:不是自己的锁就不动 */ }
126
+ };
100
127
  }
101
128
  catch (error) {
102
129
  if (error.code !== 'EEXIST')
103
130
  throw error;
104
- let pid = 0;
131
+ let holder;
105
132
  try {
106
- pid = Number(JSON.parse(await readFile(path, 'utf8')).pid);
133
+ holder = JSON.parse(await readFile(path, 'utf8'));
107
134
  }
108
135
  catch {
109
- throw new Error('安装锁异常,请检查 resource/environment-install.lock');
136
+ holder = undefined;
110
137
  }
111
- if (!Number.isInteger(pid) || pid <= 0)
112
- throw new Error('安装锁异常,请检查 resource/environment-install.lock');
138
+ if (holder === undefined) {
139
+ /**
140
+ * 解析不了(0 字节、半截 JSON、磁盘满)也要能自愈。
141
+ *
142
+ * 锁是「`open('wx')` 建文件 → 再写内容」两步,中间被杀就会留下这种文件;
143
+ * 原来这里直接抛「安装锁异常」,于是**每一次**安装尝试都失败,只能人工删锁。
144
+ * 判据换成文件的 mtime:与「持锁进程还活着」同一套时限,超时就接管。
145
+ */
146
+ const info = await stat(path).catch(() => undefined);
147
+ const aged = info !== undefined && Date.now() - info.mtimeMs > STALE_LOCK_MS;
148
+ if (!aged)
149
+ throw new Error('安装锁异常,请检查 resource/environment-install.lock');
150
+ await rm(path, { force: true });
151
+ continue;
152
+ }
153
+ const pid = Number(holder.pid);
154
+ const at = Date.parse(String(holder.at ?? ''));
155
+ const aged = Number.isFinite(at) && Date.now() - at > STALE_LOCK_MS;
156
+ if (!Number.isInteger(pid) || pid <= 0) {
157
+ // 内容不成立:没到期就如实报出来让人看一眼,到期了才当陈旧处理。
158
+ if (!aged)
159
+ throw new Error('安装锁异常,请检查 resource/environment-install.lock');
160
+ }
161
+ else {
162
+ let dead = false;
163
+ try {
164
+ process.kill(pid, 0);
165
+ }
166
+ catch (cause) {
167
+ dead = cause.code === 'ESRCH';
168
+ }
169
+ // `dead`(进程真的没了)或 `aged`(号码可能已被别人复用)任一成立都算陈旧。
170
+ if (!dead && !aged)
171
+ throw new Error('另一个进程正在准备环境,请等待完成后重试');
172
+ }
173
+ /**
174
+ * 接管之前**再读一次**并确认还是刚才那一把。读完到删之间仍有一个极窄的窗口,
175
+ * 但「先删后判」会让两个进程同时接管同一把锁 —— 那才是真正的并发安装。
176
+ */
113
177
  try {
114
- process.kill(pid, 0);
115
- throw new Error('另一个进程正在准备环境,请等待完成后重试');
178
+ const again = JSON.parse(await readFile(path, 'utf8'));
179
+ if (again.token !== holder.token)
180
+ continue;
116
181
  }
117
- catch (cause) {
118
- if (cause.code !== 'ESRCH')
119
- throw cause;
120
- await rm(path, { force: true });
182
+ catch {
183
+ continue;
121
184
  }
185
+ await rm(path, { force: true });
122
186
  }
123
187
  }
124
188
  throw new Error('无法获取环境安装锁');
125
189
  }
126
- export async function installRequiredEnvironment(root, signal, stage, log, runner = runProcess, selection = DEFAULT_MODEL_SELECTION, basePython = process.env.DSH_PYTHON || 'python3') {
190
+ /**
191
+ * 准备这个库的推理运行时。
192
+ *
193
+ * `basePython` 省略时按 `pickBasePython()` 找:`DSH_PYTHON` → DSH 自带运行时 → PATH 上的
194
+ * `python3`。**默认值不能再写死 `python3`**:macOS 命令行工具自带的是 3.9,而桌面端明明把
195
+ * 3.12 打在了自己的运行时里 —— 写死默认值会让「一键准备」在任何没配 `DSH_PYTHON` 的机器上
196
+ * 第一步就失败(见 `dsh-python.ts` 的注释)。
197
+ */
198
+ export async function installRequiredEnvironment(root, signal, stage, log, runner = runProcess, selection = DEFAULT_MODEL_SELECTION, basePython, hardened = path => hasHardenedRuntime(path, runner)) {
127
199
  await mkdir(root, { recursive: true });
200
+ const picked = basePython === undefined ? pickBasePython() : { path: basePython, source: 'override' };
128
201
  const unlock = await installLock(root);
129
- const env = { ...process.env, UV_CACHE_DIR: join(root, 'cache', 'uv'), HF_HOME: join(root, 'cache', 'huggingface'), PIP_DISABLE_PIP_VERSION_CHECK: '1' };
202
+ const env = {
203
+ ...process.env,
204
+ UV_CACHE_DIR: join(root, 'cache', 'uv'),
205
+ /**
206
+ * uv 自己管理的解释器也落在资源目录里:它和依赖、模型一样属于「这个 Agent 的家当」,
207
+ * 备份 / 迁移 / 删除该一起走,而不是散到 `~/.local/share/uv/python`。
208
+ */
209
+ UV_PYTHON_INSTALL_DIR: join(root, 'tools', 'python'),
210
+ HF_HOME: join(root, 'cache', 'huggingface'),
211
+ PIP_DISABLE_PIP_VERSION_CHECK: '1',
212
+ };
130
213
  const run = (command, args, extra = {}) => runner(command, args, { env, signal, timeoutMs: 30 * 60_000, onLine: log, ...extra });
131
214
  try {
132
215
  stage('准备模型运行时');
133
216
  const uv = await ensureUv(root, signal, log, runner);
134
- const versionOutput = await run(basePython, ['-c', 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")'], { timeoutMs: 15_000 });
135
- const baseVersion = versionOutput.trim().split(/\r?\n/).at(-1);
136
- if (!baseVersion || !/^3\.(10|11|12|13)$/.test(baseVersion)) {
137
- throw new Error(`DSH Python 版本不受支持:${baseVersion || '无法读取'};需要 Python 3.10–3.13`);
217
+ log(`基础 Python:${picked.path}(${pythonSourceLabel(picked.source)})`);
218
+ /**
219
+ * 自带运行时那份 Python 带 hardened runtime,**装不了 torch**(见 `hasHardenedRuntime`):
220
+ * 库校验只喂它自己 Team ID 签的 dylib,而 pip 上的原生轮子是 ad-hoc 签名的。
221
+ * 这时改用 uv 管的独立 CPython(不带 hardened runtime),装到 `<resource>/tools/python`。
222
+ *
223
+ * 显式给了 `DSH_PYTHON` 就不改道 —— 那是用户的选择,只把风险写进日志。
224
+ */
225
+ const isHardened = await hardened(picked.path);
226
+ const managed = needsManagedInterpreter(picked, isHardened);
227
+ if (isHardened && picked.source === 'override') {
228
+ log(`注意:${picked.path} 带 hardened runtime,第三方原生扩展(torch 等)可能加载不了。`);
229
+ }
230
+ let baseVersion;
231
+ if (managed) {
232
+ log('基础 Python:由 uv 管理的独立 CPython 3.12(自带的那份带 hardened runtime,加载不了第三方原生扩展)');
233
+ }
234
+ else {
235
+ log(`基础 Python:${picked.path}(${pythonSourceLabel(picked.source)})`);
236
+ const versionOutput = await run(picked.path, ['-c', PYTHON_VERSION_SCRIPT], { timeoutMs: 15_000 });
237
+ baseVersion = versionOutput.trim().split(/\r?\n/).at(-1);
238
+ if (!baseVersion || !SUPPORTED_PYTHON.test(baseVersion)) {
239
+ /**
240
+ * 这句要能直接照着做。原来只说「版本不受支持」,而人看到的是自己机器上
241
+ * `python3 --version` 报 3.9 —— 会以为插件在挑刺,不知道桌面端本身带了 3.12。
242
+ */
243
+ throw new Error([
244
+ `DSH Python 版本不受支持:${baseVersion || '无法读取'}(${picked.path},来自${pythonSourceLabel(picked.source)});需要 Python 3.10–3.13。`,
245
+ picked.source === 'path'
246
+ ? '没有找到 DSH 自带的 Python(桌面端运行时里应有一份 3.12)。请安装 Python 3.10–3.13,再用环境变量 DSH_PYTHON 指向它。'
247
+ : `请把 DSH_PYTHON 指向一个 3.10–3.13 的解释器后重试。`,
248
+ ].join(' '));
249
+ }
138
250
  }
139
251
  const python = managedPython(root);
140
252
  let compatible = false;
141
253
  if (existsSync(python)) {
142
254
  try {
143
- const output = await run(python, ['-c', 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")'], { timeoutMs: 15_000 });
144
- compatible = output.trim().split(/\r?\n/).at(-1) === baseVersion;
255
+ const current = (await run(python, ['-c', PYTHON_VERSION_SCRIPT], { timeoutMs: 15_000 })).trim().split(/\r?\n/).at(-1);
256
+ // 管好的解释器只要求落在支持区间(它的次版本会随 uv 走),其余必须与基础解释器同一个次版本。
257
+ const versionOk = managed ? SUPPORTED_PYTHON.test(current ?? '') : current === baseVersion;
258
+ /**
259
+ * 还要**真的**确认这个环境不带 hardened runtime。
260
+ *
261
+ * 只比版本的话,一个用自带 Python 建出来的 3.12 环境会被判成「兼容」,于是「修复」
262
+ * 不重建 —— 而它正是装不了 torch 的那一个。`codesign` 跟着符号链接走,
263
+ * 所以这里量的是它最终指向的那个解释器。
264
+ */
265
+ compatible = versionOk && (!managed || !(await hardened(python)));
145
266
  }
146
267
  catch {
147
268
  if (signal.aborted)
@@ -154,7 +275,11 @@ export async function installRequiredEnvironment(root, signal, stage, log, runne
154
275
  await rename(join(root, 'python'), backup);
155
276
  log(`原模型运行环境不可用,已保留备份:${backup}`);
156
277
  }
157
- await run(uv, ['venv', '--python', basePython, '--python-preference', 'only-system', join(root, 'python')]);
278
+ await run(uv, ['venv',
279
+ ...(managed ? ['--python', MANAGED_PYTHON, '--python-preference', 'only-managed'] : ['--python', picked.path, '--python-preference', 'only-system']),
280
+ join(root, 'python')]);
281
+ if (managed)
282
+ log(`基础 Python:${(await run(python, ['-c', PYTHON_VERSION_SCRIPT], { timeoutMs: 15_000 })).trim()}(uv 管理的独立 CPython)`);
158
283
  }
159
284
  stage('安装推理依赖');
160
285
  await run(uv, ['pip', 'install', '--reinstall', '--python', python, '-r', requirementsFile]);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/environment/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/environment/install.ts"],"names":[],"mappings":"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"}