@xopcai/xopc 0.0.191 → 0.0.193

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 (348) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{activity-store-DstnJCS5.js → activity-store-BwmdJ5pv.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DvEkT222.js → agent-avatar-dicebear-DmNq0t2n.js} +1 -1
  5. package/dist/gateway/static/root/assets/agents-BOo1rVn9.js +68 -0
  6. package/dist/gateway/static/root/assets/{api-BTL9kayv.js → api-BM1hNzjw.js} +1 -1
  7. package/dist/gateway/static/root/assets/{app-management-settings-panel-COpP_pKN.js → app-management-settings-panel-B3xStqSX.js} +1 -1
  8. package/dist/gateway/static/root/assets/{appearance-settings-DTVNUEDq.js → appearance-settings-DglyenDq.js} +1 -1
  9. package/dist/gateway/static/root/assets/apps-page-DC9qPFTx.js +1 -0
  10. package/dist/gateway/static/root/assets/{archive-plugin-IpX6VA0o.js → archive-plugin-DvtcrBss.js} +1 -1
  11. package/dist/gateway/static/root/assets/{attachment-load-CKVFNUi1.js → attachment-load-CALdq4xM.js} +1 -1
  12. package/dist/gateway/static/root/assets/automations-page-BIGGKb0T.js +6 -0
  13. package/dist/gateway/static/root/assets/{binary-plugins-BrfvfOS4.js → binary-plugins-GaVuvrDI.js} +1 -1
  14. package/dist/gateway/static/root/assets/{block-editor-D9sEfg32.js → block-editor-C2KrMYa_.js} +4 -4
  15. package/dist/gateway/static/root/assets/browser-settings-page-CPW_E-xj.js +8 -0
  16. package/dist/gateway/static/root/assets/{browser-workflow-inputs-BixZ5lCR.js → browser-workflow-inputs-FfEEjhIS.js} +1 -1
  17. package/dist/gateway/static/root/assets/{browser-workflows-page-YEFuodJI.js → browser-workflows-page-DFP9_UQk.js} +2 -2
  18. package/dist/gateway/static/root/assets/capabilities-settings-panel-CsD8aGHU.js +7 -0
  19. package/dist/gateway/static/root/assets/capability-presets-api-BoOzFotX.js +1 -0
  20. package/dist/gateway/static/root/assets/capability-presets-settings-panel-NCeyWH6Z.js +3 -0
  21. package/dist/gateway/static/root/assets/{channel-recipient-api-BThDGiO3.js → channel-recipient-api-_8IiTxRB.js} +1 -1
  22. package/dist/gateway/static/root/assets/channels-settings-CknzwxNC.js +1 -0
  23. package/dist/gateway/static/root/assets/channels-status-swr-DPaJSYX_.js +1 -0
  24. package/dist/gateway/static/root/assets/{code-editor-D4_k-6QN.js → code-editor-dFzqyDXS.js} +1 -1
  25. package/dist/gateway/static/root/assets/{connectors-api-BMMqC0_9.js → connectors-api-vaSrhPF8.js} +1 -1
  26. package/dist/gateway/static/root/assets/connectors-page-DEGE7xp_.js +2 -0
  27. package/dist/gateway/static/root/assets/{cron-expression-Bm8koRoD.js → cron-expression-BjFuXlGY.js} +1 -1
  28. package/dist/gateway/static/root/assets/dependency-picker-DOdkHdPv.js +1 -0
  29. package/dist/gateway/static/root/assets/{desktop-pet-CMG3mcaJ.js → desktop-pet-Dz-Yf8Uu.js} +1 -1
  30. package/dist/gateway/static/root/assets/{desktop-pet-settings-D8aaPb0x.js → desktop-pet-settings-C8EHFEtd.js} +1 -1
  31. package/dist/gateway/static/root/assets/{directory-picker-path-field-C95yW03b.js → directory-picker-path-field-DKbfmZlZ.js} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-debug-page-DsG7Z9lV.js → extension-debug-page-Dq0xsr_e.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-page-CUAXEbAt.js → extension-page-IgSLUyWP.js} +1 -1
  34. package/dist/gateway/static/root/assets/extension-settings-page-VC-8Pjn2.js +1 -0
  35. package/dist/gateway/static/root/assets/{gateway-config-api-DL70Nakc.js → gateway-config-api-CH2R7yqo.js} +1 -1
  36. package/dist/gateway/static/root/assets/{gateway-settings-BgDxQ08c.js → gateway-settings-DLQJWaBQ.js} +1 -1
  37. package/dist/gateway/static/root/assets/{gateway-startup-retry-EO9mKvzE.js → gateway-startup-retry--2njcDpC.js} +1 -1
  38. package/dist/gateway/static/root/assets/{heartbeat-settings-BX7q55uZ.js → heartbeat-settings-43loWoGb.js} +1 -1
  39. package/dist/gateway/static/root/assets/home-page-DqvpI6LC.js +3 -0
  40. package/dist/gateway/static/root/assets/html-workspace-editor-bXK5tq64.js +1 -0
  41. package/dist/gateway/static/root/assets/{image-generation-api-Bu7PyVSh.js → image-generation-api-Cki7jfEV.js} +1 -1
  42. package/dist/gateway/static/root/assets/index-BpkdvHH0.js +150 -0
  43. package/dist/gateway/static/root/assets/index-CFVjH-EK.css +1 -0
  44. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Dt6wS5zW.js → keyboard-shortcuts-settings-DJDZes_8.js} +1 -1
  45. package/dist/gateway/static/root/assets/local-app-workbench-page-CvNQM6qm.js +2 -0
  46. package/dist/gateway/static/root/assets/{local-apps-page-DcD3-N00.js → local-apps-page-C2ajOn1D.js} +1 -1
  47. package/dist/gateway/static/root/assets/{locale-store-deR2zRaE.js → locale-store-Bjvw7jtg.js} +1 -1
  48. package/dist/gateway/static/root/assets/logs-page-BLm5yWqQ.js +2 -0
  49. package/dist/gateway/static/root/assets/{management-settings-B6EVkJQy.js → management-settings--_eXnFVr.js} +1 -1
  50. package/dist/gateway/static/root/assets/{markdown-editor-BvUebh3C.js → markdown-editor-TWGaF7Xa.js} +2 -2
  51. package/dist/gateway/static/root/assets/{markdown-split-CHUjCnBh.js → markdown-split-iL2oi-x2.js} +1 -1
  52. package/dist/gateway/static/root/assets/{media-plugins-DRrtI2O0.js → media-plugins-BIbkLVpQ.js} +1 -1
  53. package/dist/gateway/static/root/assets/messages-DQ5X6cXp.js +3 -0
  54. package/dist/gateway/static/root/assets/{notes-page-fermYvpI.js → notes-page-xFxaZ6gT.js} +1 -1
  55. package/dist/gateway/static/root/assets/notes-workbench-PAftxL3V.js +4 -0
  56. package/dist/gateway/static/root/assets/{page-tabs-BO262zuu.js → page-tabs-CROi9zm1.js} +1 -1
  57. package/dist/gateway/static/root/assets/{preview-open-alternatives-yZYTy-2e.js → preview-open-alternatives-BwYcPjOM.js} +1 -1
  58. package/dist/gateway/static/root/assets/{product-open-page-Dgy8XWhR.js → product-open-page-BezeuVFd.js} +1 -1
  59. package/dist/gateway/static/root/assets/project-detail-page-CCdfZcw-.js +1 -0
  60. package/dist/gateway/static/root/assets/projects-page-DOG9zm5e.js +1 -0
  61. package/dist/gateway/static/root/assets/remote-access-hub-DQBFgveI.js +1 -0
  62. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-Bs6tpSyX.js +5 -0
  63. package/dist/gateway/static/root/assets/{schema-form-DdE4gtw_.js → schema-form-CWoSjz9s.js} +1 -1
  64. package/dist/gateway/static/root/assets/sessions-page-Db6L6M2H.js +1 -0
  65. package/dist/gateway/static/root/assets/settings-advanced-gate-CcO2bd6q.js +1 -0
  66. package/dist/gateway/static/root/assets/{settings-form-section-CiYU8AvV.js → settings-form-section-BJaMEHsX.js} +1 -1
  67. package/dist/gateway/static/root/assets/{settings-loading-skeleton-Bv03cWib.js → settings-loading-skeleton-sn4k17x7.js} +1 -1
  68. package/dist/gateway/static/root/assets/settings-page-D2hfeFPX.js +1 -0
  69. package/dist/gateway/static/root/assets/{settings-page-layout-t_Ox1slk.js → settings-page-layout-CLtUsWsu.js} +1 -1
  70. package/dist/gateway/static/root/assets/setup-status-panel-UmQC_uZ1.js +1 -0
  71. package/dist/gateway/static/root/assets/{share-preview-page-DF8gW6bo.js → share-preview-page-BJ58AluH.js} +1 -1
  72. package/dist/gateway/static/root/assets/shares-settings-BZKn6Fdc.js +1 -0
  73. package/dist/gateway/static/root/assets/skill-reload-api-Cx3i24w_.js +1 -0
  74. package/dist/gateway/static/root/assets/skills-page-DjUllGtk.js +2 -0
  75. package/dist/gateway/static/root/assets/skills-page.utils-CZYIuE26.js +1 -0
  76. package/dist/gateway/static/root/assets/style-TIDOdKy0.js +7 -0
  77. package/dist/gateway/static/root/assets/system-settings-panel-DUrgdQMk.js +1 -0
  78. package/dist/gateway/static/root/assets/task-detail-page-BGG2cFe9.js +1 -0
  79. package/dist/gateway/static/root/assets/{theme-store-DnBOcGXi.js → theme-store-DtxpMC5S.js} +1 -1
  80. package/dist/gateway/static/root/assets/{typed-models-lib-4XBsLEuv.js → typed-models-lib-CRNMvvFX.js} +1 -1
  81. package/dist/gateway/static/root/assets/{use-autosave-BN2QgFGn.js → use-autosave-Dle3-zdQ.js} +1 -1
  82. package/dist/gateway/static/root/assets/user-context-page-BLLmw5S1.js +1 -0
  83. package/dist/gateway/static/root/assets/{vendor-codemirror--gTq3YAI.js → vendor-codemirror-DRr7hFaD.js} +16 -16
  84. package/dist/gateway/static/root/assets/voice-api-key-field-BrWH0dCl.js +1 -0
  85. package/dist/gateway/static/root/assets/{work-discovery-overlay-nmEAafFl.js → work-discovery-overlay-BZ1l9CFM.js} +1 -1
  86. package/dist/gateway/static/root/assets/work-discovery-page-BnPF2vx7.js +1 -0
  87. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BnNWBDwz.js → workflow-run-setup-panel-BK6e9yzK.js} +2 -2
  88. package/dist/gateway/static/root/assets/workflows-page-Bp5JxQJa.js +5 -0
  89. package/dist/gateway/static/root/index.html +7 -7
  90. package/dist/gateway/static/root/notification-sw.js +15 -0
  91. package/dist/package.js +1 -1
  92. package/dist/src/agent/agent-manager.d.ts +2 -0
  93. package/dist/src/agent/agent-manager.js +76 -0
  94. package/dist/src/agent/background-review/prompts.d.ts +1 -1
  95. package/dist/src/agent/background-review/prompts.js +1 -1
  96. package/dist/src/agent/background-review/run-background-review.js +3 -12
  97. package/dist/src/agent/embedded/run-for-session.js +3 -0
  98. package/dist/src/agent/embedded/run-turn.js +4 -1
  99. package/dist/src/agent/embedded/session-runner.js +3 -4
  100. package/dist/src/agent/embedded/types.d.ts +10 -1
  101. package/dist/src/agent/embedded/xopc-stream-bridge.js +3 -2
  102. package/dist/src/agent/external-tools/mcp-provider.d.ts +1 -0
  103. package/dist/src/agent/external-tools/mcp-provider.js +21 -6
  104. package/dist/src/agent/image/generation/provider-registry.js +1 -0
  105. package/dist/src/agent/image/generation/providers/dashscope.js +20 -0
  106. package/dist/src/agent/image/generation/providers/fal.d.ts +1 -1
  107. package/dist/src/agent/image/generation/providers/fal.js +12 -6
  108. package/dist/src/agent/image/generation/providers/google.js +8 -0
  109. package/dist/src/agent/image/generation/providers/minimax.js +20 -0
  110. package/dist/src/agent/image/generation/providers/openai.js +36 -26
  111. package/dist/src/agent/image/generation/types.d.ts +13 -0
  112. package/dist/src/agent/mcp/bundle-mcp-gateway.d.ts +1 -0
  113. package/dist/src/agent/mcp/bundle-mcp-gateway.js +2 -1
  114. package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +5 -1
  115. package/dist/src/agent/mcp/bundle-mcp-policy.js +11 -3
  116. package/dist/src/agent/mcp/bundle-mcp-runtime.js +3 -2
  117. package/dist/src/agent/mcp/bundle-mcp-types.d.ts +2 -1
  118. package/dist/src/agent/mcp/index.js +2 -2
  119. package/dist/src/agent/mcp/mcp-stdio-transport.js +1 -1
  120. package/dist/src/agent/mcp/mcp-transport.d.ts +2 -1
  121. package/dist/src/agent/mcp/mcp-transport.js +22 -4
  122. package/dist/src/agent/memory/compaction.js +19 -17
  123. package/dist/src/agent/memory/context-budget.js +2 -3
  124. package/dist/src/agent/memory/understanding/service.d.ts +1 -0
  125. package/dist/src/agent/memory/understanding/service.js +49 -20
  126. package/dist/src/agent/memory/understanding/types.d.ts +1 -0
  127. package/dist/src/agent/memory/user-context-coordinator.js +6 -0
  128. package/dist/src/agent/orchestration/agent-orchestrator.js +15 -1
  129. package/dist/src/agent/service/direct-turn-helpers.js +14 -5
  130. package/dist/src/agent/skills/index.d.ts +1 -1
  131. package/dist/src/agent/skills/index.js +2 -2
  132. package/dist/src/agent/skills/installer.d.ts +3 -10
  133. package/dist/src/agent/skills/installer.js +99 -156
  134. package/dist/src/agent/skills/marketplace/adapter.types.d.ts +3 -1
  135. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +30 -6
  136. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +21 -4
  137. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +7 -4
  138. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +3 -0
  139. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +7 -1
  140. package/dist/src/agent/skills/marketplace/search.d.ts +2 -2
  141. package/dist/src/agent/skills/marketplace/search.js +52 -21
  142. package/dist/src/agent/skills/skills-marketplace.d.ts +1 -1
  143. package/dist/src/agent/skills/skills-marketplace.js +2 -2
  144. package/dist/src/agent/skills/types.d.ts +0 -8
  145. package/dist/src/agent/tools/exec-command.d.ts +1 -0
  146. package/dist/src/agent/tools/exec-command.js +2 -1
  147. package/dist/src/agent/tools/factory.d.ts +1 -0
  148. package/dist/src/agent/tools/factory.js +17 -2
  149. package/dist/src/agent/tools/managed-job-tool.d.ts +1 -1
  150. package/dist/src/agent/tools/managed-job-tool.js +3 -2
  151. package/dist/src/agent/tools/skill-install-tool.d.ts +2 -2
  152. package/dist/src/agent/tools/skill-install-tool.js +8 -4
  153. package/dist/src/agent/tools/skills-marketplace-search-tool.js +3 -2
  154. package/dist/src/agent/tools/workflow-tool.d.ts +1 -0
  155. package/dist/src/agent/tools/workflow-tool.js +14 -4
  156. package/dist/src/agent-manifest/schema.d.ts +20 -0
  157. package/dist/src/agent-manifest/schema.js +6 -1
  158. package/dist/src/auth/oauth/xopc-cloud.js +163 -7
  159. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  160. package/dist/src/cli/command-loaders.js +1 -0
  161. package/dist/src/cli/command-manifest.js +4 -0
  162. package/dist/src/cli/commands/doctor/checks/node-version.js +3 -3
  163. package/dist/src/cli/commands/doctor/checks/tool-runtimes.d.ts +2 -0
  164. package/dist/src/cli/commands/doctor/checks/tool-runtimes.js +36 -0
  165. package/dist/src/cli/commands/doctor/flow.js +2 -0
  166. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  167. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  168. package/dist/src/cli/commands/models.js +0 -1
  169. package/dist/src/cli/commands/onboard/model.d.ts +16 -1
  170. package/dist/src/cli/commands/onboard/model.js +65 -4
  171. package/dist/src/cli/commands/onboard.js +13 -1
  172. package/dist/src/cli/commands/runtime.d.ts +1 -0
  173. package/dist/src/cli/commands/runtime.js +77 -0
  174. package/dist/src/cli/commands/setup.js +15 -1
  175. package/dist/src/cli/commands/skills.js +7 -4
  176. package/dist/src/cli/commands/update.js +1 -1
  177. package/dist/src/config/index.js +2 -2
  178. package/dist/src/config/schema.d.ts +125 -0
  179. package/dist/src/config/schema.js +77 -2
  180. package/dist/src/config/voice.d.ts +6 -0
  181. package/dist/src/config/voice.js +17 -0
  182. package/dist/src/extensions/install.js +1 -1
  183. package/dist/src/extensions/types/providers.d.ts +4 -0
  184. package/dist/src/gateway/capability-presets-admin.d.ts +9 -0
  185. package/dist/src/gateway/capability-presets-admin.js +24 -6
  186. package/dist/src/gateway/chat-stream/mapper.js +8 -4
  187. package/dist/src/gateway/chat-stream/protocol.d.ts +10 -1
  188. package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -0
  189. package/dist/src/gateway/hono/routes/commands-skills.js +2 -1
  190. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  191. package/dist/src/gateway/hono/routes/local-apps.js +1 -1
  192. package/dist/src/gateway/hono/routes/models.js +2 -3
  193. package/dist/src/gateway/hono/routes/runtime-tools.d.ts +3 -0
  194. package/dist/src/gateway/hono/routes/runtime-tools.js +142 -0
  195. package/dist/src/gateway/hono/routes/understanding-sources.js +2 -1
  196. package/dist/src/gateway/hono/routes/update.js +2 -2
  197. package/dist/src/gateway/hono/routes/voice.js +43 -2
  198. package/dist/src/gateway/hono/routes/you.js +22 -25
  199. package/dist/src/gateway/image-generation-setup.d.ts +2 -3
  200. package/dist/src/gateway/image-generation-setup.js +39 -8
  201. package/dist/src/gateway/index.js +1 -1
  202. package/dist/src/gateway/run-loop.js +1 -1
  203. package/dist/src/gateway/service/marketplace-service.d.ts +1 -1
  204. package/dist/src/gateway/service/marketplace-service.js +2 -2
  205. package/dist/src/gateway/service/run-gateway-agent.js +21 -8
  206. package/dist/src/gateway/service.js +5 -5
  207. package/dist/src/infra/gateway-processes.js +1 -1
  208. package/dist/src/infra/update-global.js +1 -1
  209. package/dist/src/infra/update-restart.js +1 -1
  210. package/dist/src/infra/update-runner.js +2 -2
  211. package/dist/src/infra/update-startup.js +1 -1
  212. package/dist/src/providers/extension-stream-bridge.js +8 -7
  213. package/dist/src/providers/model-catalog-store.d.ts +24 -4
  214. package/dist/src/providers/model-catalog-store.js +11 -0
  215. package/dist/src/providers/model-registry.js +1 -1
  216. package/dist/src/providers/prompt-cache-payload.d.ts +13 -0
  217. package/dist/src/providers/prompt-cache-payload.js +110 -0
  218. package/dist/src/providers/register-runtime-providers.js +1 -1
  219. package/dist/src/providers/xopc-cloud-model-source.js +52 -6
  220. package/dist/src/runtime-tools/archive.d.ts +8 -0
  221. package/dist/src/runtime-tools/archive.js +99 -0
  222. package/dist/src/runtime-tools/bootstrap.d.ts +16 -0
  223. package/dist/src/runtime-tools/bootstrap.js +33 -0
  224. package/dist/src/runtime-tools/catalog.d.ts +19 -0
  225. package/dist/src/runtime-tools/catalog.js +59 -0
  226. package/dist/src/runtime-tools/command.d.ts +15 -0
  227. package/dist/src/runtime-tools/command.js +59 -0
  228. package/dist/src/runtime-tools/download-source.d.ts +24 -0
  229. package/dist/src/runtime-tools/download-source.js +125 -0
  230. package/dist/src/runtime-tools/downloader.d.ts +21 -0
  231. package/dist/src/runtime-tools/downloader.js +137 -0
  232. package/dist/src/runtime-tools/environment.d.ts +20 -0
  233. package/dist/src/runtime-tools/environment.js +113 -0
  234. package/dist/src/runtime-tools/errors.d.ts +10 -0
  235. package/dist/src/runtime-tools/errors.js +14 -0
  236. package/dist/src/runtime-tools/index.d.ts +7 -0
  237. package/dist/src/runtime-tools/index.js +7 -0
  238. package/dist/src/runtime-tools/install-lock.d.ts +1 -0
  239. package/dist/src/runtime-tools/install-lock.js +50 -0
  240. package/dist/src/runtime-tools/manager.d.ts +20 -0
  241. package/dist/src/runtime-tools/manager.js +641 -0
  242. package/dist/src/runtime-tools/manifest-store.d.ts +3 -0
  243. package/dist/src/runtime-tools/manifest-store.js +26 -0
  244. package/dist/src/runtime-tools/network.d.ts +9 -0
  245. package/dist/src/runtime-tools/network.js +41 -0
  246. package/dist/src/runtime-tools/offline-bundle.d.ts +16 -0
  247. package/dist/src/runtime-tools/offline-bundle.js +41 -0
  248. package/dist/src/runtime-tools/paths.d.ts +7 -0
  249. package/dist/src/runtime-tools/paths.js +22 -0
  250. package/dist/src/runtime-tools/probe.d.ts +7 -0
  251. package/dist/src/runtime-tools/probe.js +71 -0
  252. package/dist/src/runtime-tools/prune.d.ts +10 -0
  253. package/dist/src/runtime-tools/prune.js +93 -0
  254. package/dist/src/runtime-tools/types.d.ts +70 -0
  255. package/dist/src/runtime-tools/types.js +1 -0
  256. package/dist/src/share/share-zip.js +1 -1
  257. package/dist/src/storage/sqlite/migrations/113_memory_evidence_single_source.sql +42 -20
  258. package/dist/src/tasks/home-query-service.js +1 -5
  259. package/dist/src/tasks/index.js +2 -2
  260. package/dist/src/tasks/project-operating-view-service.d.ts +2 -1
  261. package/dist/src/tasks/project-operating-view-service.js +6 -4
  262. package/dist/src/tasks/task-dependency-service.d.ts +2 -1
  263. package/dist/src/tasks/task-dependency-service.js +15 -0
  264. package/dist/src/tui/backends/gateway-realtime-backend.js +1 -1
  265. package/dist/src/tunnel/frpc-binary.js +1 -1
  266. package/dist/src/user-context/domain.d.ts +2 -1
  267. package/dist/src/user-context/domain.js +12 -1
  268. package/dist/src/user-context/manual-understanding.js +8 -10
  269. package/dist/src/user-context/planner.js +1 -6
  270. package/dist/src/user-context/sources/activity-clustering.d.ts +5 -0
  271. package/dist/src/user-context/sources/activity-clustering.js +130 -0
  272. package/dist/src/user-context/sources/catalog.js +26 -0
  273. package/dist/src/user-context/sources/local-source-contract.d.ts +3 -0
  274. package/dist/src/user-context/sources/local-source-contract.js +15 -0
  275. package/dist/src/user-context/sources/repository.js +7 -1
  276. package/dist/src/user-context/sources/types.d.ts +7 -1
  277. package/dist/src/user-context/understanding.d.ts +15 -0
  278. package/dist/src/user-context/understanding.js +24 -0
  279. package/dist/src/voice/local/model-files.js +1 -1
  280. package/dist/src/voice/metadata/builtin.js +99 -32
  281. package/dist/src/voice/metadata/types.d.ts +3 -0
  282. package/dist/src/voice/stt/availability.js +4 -1
  283. package/dist/src/voice/stt/config-slice.d.ts +0 -2
  284. package/dist/src/voice/stt/config-slice.js +1 -6
  285. package/dist/src/voice/stt/factory.js +2 -2
  286. package/dist/src/voice/stt/index.d.ts +2 -3
  287. package/dist/src/voice/stt/list-providers.js +1 -1
  288. package/dist/src/voice/stt/providers/alibaba-transcription.d.ts +0 -19
  289. package/dist/src/voice/stt/providers/alibaba-transcription.js +59 -132
  290. package/dist/src/voice/stt/providers/index.d.ts +1 -0
  291. package/dist/src/voice/stt/providers/index.js +2 -1
  292. package/dist/src/voice/stt/providers/openai-transcription.d.ts +2 -2
  293. package/dist/src/voice/stt/providers/openai-transcription.js +4 -4
  294. package/dist/src/voice/stt/providers/xopc-cloud-transcription.d.ts +2 -0
  295. package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +49 -0
  296. package/dist/src/voice/stt/types.js +2 -2
  297. package/dist/src/voice/tts/providers/index.d.ts +1 -0
  298. package/dist/src/voice/tts/providers/index.js +2 -1
  299. package/dist/src/voice/tts/providers/xopc-cloud-speech.d.ts +2 -0
  300. package/dist/src/voice/tts/providers/xopc-cloud-speech.js +113 -0
  301. package/dist/src/voice/tts/types.d.ts +1 -1
  302. package/dist/src/work-discovery/analyzer.js +9 -4
  303. package/dist/src/work-discovery/candidate-discovery.d.ts +1 -0
  304. package/dist/src/work-discovery/candidate-discovery.js +3 -3
  305. package/dist/src/work-discovery/index.js +2 -2
  306. package/dist/src/work-discovery/service.d.ts +2 -1
  307. package/dist/src/work-discovery/service.js +126 -37
  308. package/dist/src/work-discovery/types.d.ts +1 -0
  309. package/dist/src/workflows/service/workflow-run-service.js +8 -0
  310. package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -1
  311. package/package.json +2 -2
  312. package/dist/gateway/static/root/assets/agents-CXyivfqY.js +0 -68
  313. package/dist/gateway/static/root/assets/apps-page-DsE67BSO.js +0 -1
  314. package/dist/gateway/static/root/assets/automations-page-D0TVev47.js +0 -6
  315. package/dist/gateway/static/root/assets/browser-settings-page-DpZzq8j2.js +0 -8
  316. package/dist/gateway/static/root/assets/capabilities-settings-panel-B9Cmcuff.js +0 -7
  317. package/dist/gateway/static/root/assets/capability-presets-api-BB8t4Ja7.js +0 -1
  318. package/dist/gateway/static/root/assets/capability-presets-settings-panel-C_EpuQtk.js +0 -1
  319. package/dist/gateway/static/root/assets/channels-settings-CvzD5qSv.js +0 -1
  320. package/dist/gateway/static/root/assets/channels-status-swr-Cz7SAAkm.js +0 -1
  321. package/dist/gateway/static/root/assets/connectors-page-BKrm7tJ9.js +0 -2
  322. package/dist/gateway/static/root/assets/extension-settings-page-CsR7QOJo.js +0 -1
  323. package/dist/gateway/static/root/assets/home-page-C08Nen5T.js +0 -3
  324. package/dist/gateway/static/root/assets/html-workspace-editor-C3DKAkMc.js +0 -1
  325. package/dist/gateway/static/root/assets/index-B-_CEvIX.js +0 -150
  326. package/dist/gateway/static/root/assets/index-D6e3tPL-.css +0 -1
  327. package/dist/gateway/static/root/assets/local-app-workbench-page-BQVC0tWq.js +0 -2
  328. package/dist/gateway/static/root/assets/logs-page-D6yvW-E4.js +0 -2
  329. package/dist/gateway/static/root/assets/messages-B4XqB8I6.js +0 -3
  330. package/dist/gateway/static/root/assets/notes-workbench-BVCwabjq.js +0 -4
  331. package/dist/gateway/static/root/assets/project-detail-page-CS4Ujor7.js +0 -1
  332. package/dist/gateway/static/root/assets/projects-page-DMtPC8c4.js +0 -1
  333. package/dist/gateway/static/root/assets/remote-access-hub-BpfHZT88.js +0 -1
  334. package/dist/gateway/static/root/assets/sessions-page-BZkyrJBM.js +0 -1
  335. package/dist/gateway/static/root/assets/settings-advanced-gate-DQlK0A4l.js +0 -1
  336. package/dist/gateway/static/root/assets/settings-page-C-LdINFj.js +0 -1
  337. package/dist/gateway/static/root/assets/setup-status-panel-HRG_lK4_.js +0 -1
  338. package/dist/gateway/static/root/assets/shares-settings-v_iLhxxa.js +0 -1
  339. package/dist/gateway/static/root/assets/skill-reload-api-S-bjtsXX.js +0 -1
  340. package/dist/gateway/static/root/assets/skills-page-BiNBfaX5.js +0 -2
  341. package/dist/gateway/static/root/assets/skills-page.utils-DlnGtvAH.js +0 -1
  342. package/dist/gateway/static/root/assets/system-settings-panel-Bv7GXFc6.js +0 -1
  343. package/dist/gateway/static/root/assets/task-detail-page-BhQcOpnx.js +0 -1
  344. package/dist/gateway/static/root/assets/user-context-page-PtcY7BoJ.js +0 -1
  345. package/dist/gateway/static/root/assets/voice-api-key-field-DnhJtC5l.js +0 -1
  346. package/dist/gateway/static/root/assets/work-discovery-page-C5Kwe_bc.js +0 -1
  347. package/dist/gateway/static/root/assets/workflows-page-Z_qzaohv.js +0 -11
  348. /package/dist/gateway/static/root/assets/{workflows-page-DLioOiRN.css → style-DLioOiRN.css} +0 -0
@@ -0,0 +1,137 @@
1
+ import { RuntimeError } from "./errors.js";
2
+ import { fetchRuntimeResource, readRuntimeResponseText } from "./network.js";
3
+ import { dirname } from "node:path";
4
+ import { createReadStream, createWriteStream } from "node:fs";
5
+ import { createHash } from "node:crypto";
6
+ import { access, mkdir, rename, rm, stat } from "node:fs/promises";
7
+ import { pipeline } from "node:stream/promises";
8
+ //#region src/runtime-tools/downloader.ts
9
+ const MAX_ARCHIVE_BYTES = 500 * 1024 * 1024;
10
+ const MAX_CHECKSUM_BYTES = 1024 * 1024;
11
+ var RuntimeDownloadTransportError = class extends Error {
12
+ constructor(message, allowsSourceFallback, options) {
13
+ super(message, options);
14
+ this.allowsSourceFallback = allowsSourceFallback;
15
+ }
16
+ };
17
+ var RuntimeDownloadContentError = class extends Error {};
18
+ function canFallbackRuntimeDownload(error) {
19
+ return error instanceof RuntimeError && error.code === "RUNTIME_DOWNLOAD_FAILED" && error.cause instanceof RuntimeDownloadTransportError && error.cause.allowsSourceFallback;
20
+ }
21
+ async function fetchText(url, timeoutMs, proxy, signal) {
22
+ const response = await fetchRuntimeResource({
23
+ url,
24
+ timeoutMs,
25
+ proxy,
26
+ signal,
27
+ init: { redirect: "follow" }
28
+ });
29
+ if (!response.ok) {
30
+ await response.body?.cancel().catch(() => {});
31
+ throw new Error(`HTTP ${response.status} for ${url}`);
32
+ }
33
+ const declaredSize = Number(response.headers.get("content-length"));
34
+ if (Number.isFinite(declaredSize) && declaredSize > MAX_CHECKSUM_BYTES) {
35
+ await response.body?.cancel().catch(() => {});
36
+ throw new Error("Checksum response exceeds size limit");
37
+ }
38
+ return await readRuntimeResponseText(response, MAX_CHECKSUM_BYTES);
39
+ }
40
+ async function resolveExpectedChecksum(params) {
41
+ const lines = (await fetchText(params.checksumUrl, params.timeoutMs, params.proxy, params.signal)).split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
42
+ for (const line of lines) {
43
+ const match = line.match(/^([a-fA-F0-9]{64})(?:\s+[*]?(.+))?$/);
44
+ if (!match) continue;
45
+ if (!match[2] || match[2] === params.archiveFile) return match[1].toLowerCase();
46
+ }
47
+ throw new RuntimeError(`Checksum for ${params.archiveFile} was not found`, "RUNTIME_CHECKSUM_MISMATCH", params.runtime, "resolve_checksum", true);
48
+ }
49
+ async function sha256File(path) {
50
+ const hash = createHash("sha256");
51
+ for await (const chunk of createReadStream(path)) hash.update(chunk);
52
+ return hash.digest("hex");
53
+ }
54
+ async function downloadVerifiedArchive(params) {
55
+ await mkdir(dirname(params.targetPath), { recursive: true });
56
+ const completedPath = params.targetPath.replace(/\.partial$/, "");
57
+ try {
58
+ await access(completedPath);
59
+ if (await sha256File(completedPath) === params.expectedSha256.toLowerCase()) return completedPath;
60
+ await rm(completedPath, { force: true });
61
+ } catch {}
62
+ try {
63
+ let resumeOffset = await stat(params.targetPath).then((info) => info.isFile() ? info.size : 0).catch(() => 0);
64
+ if (resumeOffset > MAX_ARCHIVE_BYTES) {
65
+ await rm(params.targetPath, { force: true });
66
+ resumeOffset = 0;
67
+ }
68
+ let response;
69
+ const request = async (offset) => {
70
+ try {
71
+ return await fetchRuntimeResource({
72
+ url: params.url,
73
+ timeoutMs: params.timeoutMs,
74
+ proxy: params.proxy,
75
+ signal: params.signal,
76
+ init: {
77
+ redirect: "follow",
78
+ headers: offset > 0 ? { Range: `bytes=${offset}-` } : void 0
79
+ }
80
+ });
81
+ } catch (error) {
82
+ throw new RuntimeDownloadTransportError(error instanceof Error ? error.message : String(error), !params.signal?.aborted, { cause: error });
83
+ }
84
+ };
85
+ response = await request(resumeOffset);
86
+ if (resumeOffset > 0 && response.status === 416) {
87
+ await response.body?.cancel().catch(() => {});
88
+ await rm(params.targetPath, { force: true });
89
+ resumeOffset = 0;
90
+ response = await request(0);
91
+ }
92
+ if (!response.ok || !response.body) {
93
+ await response.body?.cancel().catch(() => {});
94
+ throw new RuntimeDownloadTransportError(`HTTP ${response.status}`, response.status === 429 || response.status >= 500);
95
+ }
96
+ let total;
97
+ if (response.status === 206) {
98
+ const contentRange = response.headers.get("content-range")?.match(/^bytes (\d+)-(\d+)\/(\d+)$/);
99
+ if (!contentRange || Number(contentRange[1]) !== resumeOffset) {
100
+ await response.body.cancel().catch(() => {});
101
+ throw new RuntimeDownloadContentError("Invalid Content-Range response");
102
+ }
103
+ total = Number(contentRange[3]);
104
+ } else {
105
+ if (resumeOffset > 0) {
106
+ await rm(params.targetPath, { force: true });
107
+ resumeOffset = 0;
108
+ }
109
+ total = Number(response.headers.get("content-length")) || void 0;
110
+ }
111
+ if (total && total > MAX_ARCHIVE_BYTES) {
112
+ await response.body.cancel().catch(() => {});
113
+ throw new Error("Archive exceeds size limit");
114
+ }
115
+ let downloaded = resumeOffset;
116
+ const transform = new TransformStream({ transform(chunk, controller) {
117
+ downloaded += chunk.byteLength;
118
+ if (downloaded > MAX_ARCHIVE_BYTES) throw new Error("Archive exceeds size limit");
119
+ params.onProgress?.(downloaded, total);
120
+ controller.enqueue(chunk);
121
+ } });
122
+ await pipeline(response.body.pipeThrough(transform), createWriteStream(params.targetPath, {
123
+ flags: resumeOffset > 0 ? "a" : "w",
124
+ mode: 384
125
+ }));
126
+ if (total && downloaded !== total) throw new RuntimeDownloadTransportError("Archive download was truncated", true);
127
+ if (await sha256File(params.targetPath) !== params.expectedSha256.toLowerCase()) throw new RuntimeError(`Checksum mismatch for ${params.runtime} archive`, "RUNTIME_CHECKSUM_MISMATCH", params.runtime, "verify_archive", true);
128
+ await rename(params.targetPath, completedPath);
129
+ return completedPath;
130
+ } catch (error) {
131
+ if (error instanceof RuntimeDownloadContentError || error instanceof RuntimeError && error.code === "RUNTIME_CHECKSUM_MISMATCH" || error instanceof Error && error.message === "Archive exceeds size limit") await rm(params.targetPath, { force: true });
132
+ if (error instanceof RuntimeError) throw error;
133
+ throw new RuntimeError(`Failed to download ${params.runtime} runtime: ${error instanceof Error ? error.message : String(error)}`, "RUNTIME_DOWNLOAD_FAILED", params.runtime, "download", true, [], { cause: error });
134
+ }
135
+ }
136
+ //#endregion
137
+ export { canFallbackRuntimeDownload, downloadVerifiedArchive, resolveExpectedChecksum, sha256File };
@@ -0,0 +1,20 @@
1
+ import type { RuntimeToolsConfig } from '../config/schema.js';
2
+ import type { ResolvedRuntime, RuntimeKind } from './types.js';
3
+ export interface RuntimeEnvironmentOptions {
4
+ stateDir: string;
5
+ config: RuntimeToolsConfig;
6
+ baseEnv: Record<string, string>;
7
+ runtimes?: RuntimeKind[];
8
+ extraBinDirs?: string[];
9
+ }
10
+ export interface RuntimeEnvironmentResult {
11
+ env: Record<string, string>;
12
+ resolved: ResolvedRuntime[];
13
+ }
14
+ export declare function buildRuntimeEnvironment(options: RuntimeEnvironmentOptions): Promise<RuntimeEnvironmentResult>;
15
+ export declare function resolveRuntimeCommand(params: {
16
+ command: string;
17
+ stateDir: string;
18
+ config: RuntimeToolsConfig;
19
+ allowProvision: boolean;
20
+ }): Promise<string>;
@@ -0,0 +1,113 @@
1
+ import { applyPathPrepend } from "../infra/path-prepend.js";
2
+ import { ManagedRuntimeManager } from "./manager.js";
3
+ import { dirname, join } from "node:path";
4
+ import { access, readdir } from "node:fs/promises";
5
+ //#region src/runtime-tools/environment.ts
6
+ const POLLUTING_ENV_KEYS = [
7
+ "NODE_OPTIONS",
8
+ "NODE_PATH",
9
+ "NPM_CONFIG_PREFIX",
10
+ "npm_config_prefix",
11
+ "PYTHONHOME",
12
+ "PYTHONPATH",
13
+ "VIRTUAL_ENV",
14
+ "CONDA_PREFIX",
15
+ "UV_PYTHON_INSTALL_DIR",
16
+ "UV_PYTHON_BIN_DIR",
17
+ "UV_TOOL_DIR",
18
+ "UV_TOOL_BIN_DIR",
19
+ "UV_CACHE_DIR",
20
+ "UV_PYTHON_INSTALL_MIRROR"
21
+ ];
22
+ async function skillEnvironmentBinDirs(stateDir) {
23
+ const root = join(stateDir, "tools", "environments", "skills");
24
+ let environmentIds;
25
+ try {
26
+ environmentIds = await readdir(root);
27
+ } catch {
28
+ return [];
29
+ }
30
+ const candidates = environmentIds.flatMap((id) => [join(root, id, "bin"), join(root, id, "node_modules", ".bin")]);
31
+ return (await Promise.all(candidates.map(async (candidate) => {
32
+ try {
33
+ await access(candidate);
34
+ return candidate;
35
+ } catch {
36
+ return null;
37
+ }
38
+ }))).filter((candidate) => candidate !== null);
39
+ }
40
+ async function buildRuntimeEnvironment(options) {
41
+ const env = { ...options.baseEnv };
42
+ for (const key of POLLUTING_ENV_KEYS) delete env[key];
43
+ const manager = new ManagedRuntimeManager({
44
+ stateDir: options.stateDir,
45
+ config: options.config
46
+ });
47
+ const runtimes = options.runtimes ?? [
48
+ "node",
49
+ "uv",
50
+ "python"
51
+ ];
52
+ const resolved = (await Promise.all(runtimes.map(async (runtime) => {
53
+ try {
54
+ return await manager.resolve({
55
+ runtime,
56
+ allowProvision: false
57
+ });
58
+ } catch {
59
+ return null;
60
+ }
61
+ }))).filter((item) => item !== null);
62
+ const managedBinDirs = resolved.filter((item) => item.source === "managed").map((item) => dirname(item.executable));
63
+ const skillBinDirs = await skillEnvironmentBinDirs(options.stateDir);
64
+ applyPathPrepend(env, [
65
+ ...managedBinDirs,
66
+ ...skillBinDirs,
67
+ ...options.extraBinDirs ?? []
68
+ ]);
69
+ if (resolved.some((item) => item.runtime === "python")) {
70
+ env.PYTHONNOUSERSITE = "1";
71
+ env.PIP_REQUIRE_VIRTUALENV = "1";
72
+ }
73
+ if (resolved.some((item) => item.runtime === "uv")) {
74
+ env.UV_PYTHON_INSTALL_DIR = resolved.find((item) => item.runtime === "python" && item.source === "managed")?.installDir ?? join(options.stateDir, "tools", "python", "versions");
75
+ env.UV_PYTHON_BIN_DIR = join(options.stateDir, "tools", "python", "bin");
76
+ env.UV_CACHE_DIR = join(options.stateDir, "tools", "cache", "uv");
77
+ env.UV_MANAGED_PYTHON = "1";
78
+ env.UV_NO_CONFIG = "1";
79
+ }
80
+ if (resolved.some((item) => item.runtime === "node")) {
81
+ env.COREPACK_HOME = join(options.stateDir, "tools", "cache", "corepack");
82
+ env.npm_config_cache = join(options.stateDir, "tools", "cache", "npm");
83
+ }
84
+ return {
85
+ env,
86
+ resolved
87
+ };
88
+ }
89
+ const COMMAND_RUNTIME = {
90
+ node: "node",
91
+ npm: "node",
92
+ npx: "node",
93
+ corepack: "node",
94
+ uv: "uv",
95
+ uvx: "uv",
96
+ python: "python",
97
+ python3: "python"
98
+ };
99
+ async function resolveRuntimeCommand(params) {
100
+ const runtime = COMMAND_RUNTIME[params.command.toLowerCase()];
101
+ if (!runtime) return params.command;
102
+ const resolved = await new ManagedRuntimeManager({
103
+ stateDir: params.stateDir,
104
+ config: params.config
105
+ }).resolve({
106
+ runtime,
107
+ allowProvision: params.allowProvision
108
+ });
109
+ const key = params.command.toLowerCase() === "python3" ? "python" : params.command.toLowerCase();
110
+ return resolved.executables[key] ?? resolved.executable;
111
+ }
112
+ //#endregion
113
+ export { buildRuntimeEnvironment, resolveRuntimeCommand };
@@ -0,0 +1,10 @@
1
+ import type { RuntimeKind } from './types.js';
2
+ export type RuntimeErrorCode = 'RUNTIME_DISABLED' | 'RUNTIME_UNSUPPORTED' | 'RUNTIME_NOT_FOUND' | 'RUNTIME_VERSION_MISMATCH' | 'RUNTIME_DOWNLOAD_FAILED' | 'RUNTIME_CHECKSUM_MISMATCH' | 'RUNTIME_ARCHIVE_INVALID' | 'RUNTIME_INSTALL_LOCKED' | 'RUNTIME_PROBE_FAILED' | 'RUNTIME_CORRUPTED' | 'RUNTIME_PERMISSION_DENIED';
3
+ export declare class RuntimeError extends Error {
4
+ readonly code: RuntimeErrorCode;
5
+ readonly runtime: RuntimeKind;
6
+ readonly phase: string;
7
+ readonly repairable: boolean;
8
+ readonly hints: string[];
9
+ constructor(message: string, code: RuntimeErrorCode, runtime: RuntimeKind, phase: string, repairable: boolean, hints?: string[], options?: ErrorOptions);
10
+ }
@@ -0,0 +1,14 @@
1
+ //#region src/runtime-tools/errors.ts
2
+ var RuntimeError = class extends Error {
3
+ constructor(message, code, runtime, phase, repairable, hints = [], options) {
4
+ super(message, options);
5
+ this.code = code;
6
+ this.runtime = runtime;
7
+ this.phase = phase;
8
+ this.repairable = repairable;
9
+ this.hints = hints;
10
+ this.name = "RuntimeError";
11
+ }
12
+ };
13
+ //#endregion
14
+ export { RuntimeError };
@@ -0,0 +1,7 @@
1
+ export * from './errors.js';
2
+ export * from './bootstrap.js';
3
+ export * from './environment.js';
4
+ export * from './manager.js';
5
+ export * from './offline-bundle.js';
6
+ export * from './prune.js';
7
+ export * from './types.js';
@@ -0,0 +1,7 @@
1
+ import { RuntimeError } from "./errors.js";
2
+ import { bundledPythonArchiveName, resolveOfflineBundleArtifact } from "./offline-bundle.js";
3
+ import { ManagedRuntimeManager } from "./manager.js";
4
+ import { buildRuntimeEnvironment, resolveRuntimeCommand } from "./environment.js";
5
+ import { provisionEagerRuntimes } from "./bootstrap.js";
6
+ import { pruneRuntimeTools } from "./prune.js";
7
+ export { ManagedRuntimeManager, RuntimeError, buildRuntimeEnvironment, bundledPythonArchiveName, provisionEagerRuntimes, pruneRuntimeTools, resolveOfflineBundleArtifact, resolveRuntimeCommand };
@@ -0,0 +1 @@
1
+ export declare function withInstallLock<T>(path: string, metadata: Record<string, unknown>, fn: () => Promise<T>): Promise<T>;
@@ -0,0 +1,50 @@
1
+ import { dirname } from "node:path";
2
+ import { mkdir, open, readFile, unlink } from "node:fs/promises";
3
+ //#region src/runtime-tools/install-lock.ts
4
+ const LOCK_STALE_MS = 1800 * 1e3;
5
+ const LOCK_WAIT_MS = 250;
6
+ function isProcessAlive(pid) {
7
+ try {
8
+ process.kill(pid, 0);
9
+ return true;
10
+ } catch {
11
+ return false;
12
+ }
13
+ }
14
+ async function staleLock(path) {
15
+ try {
16
+ const value = JSON.parse(await readFile(path, "utf8"));
17
+ const pid = typeof value.pid === "number" ? value.pid : 0;
18
+ const createdAt = typeof value.createdAt === "number" ? value.createdAt : 0;
19
+ return !isProcessAlive(pid) && Date.now() - createdAt > LOCK_STALE_MS;
20
+ } catch {
21
+ return true;
22
+ }
23
+ }
24
+ async function withInstallLock(path, metadata, fn) {
25
+ await mkdir(dirname(path), { recursive: true });
26
+ while (true) try {
27
+ const handle = await open(path, "wx", 384);
28
+ await handle.writeFile(JSON.stringify({
29
+ pid: process.pid,
30
+ createdAt: Date.now(),
31
+ ...metadata
32
+ }));
33
+ await handle.close();
34
+ break;
35
+ } catch (error) {
36
+ if (error.code !== "EEXIST") throw error;
37
+ if (await staleLock(path)) {
38
+ await unlink(path).catch(() => void 0);
39
+ continue;
40
+ }
41
+ await new Promise((resolve) => setTimeout(resolve, LOCK_WAIT_MS));
42
+ }
43
+ try {
44
+ return await fn();
45
+ } finally {
46
+ await unlink(path).catch(() => void 0);
47
+ }
48
+ }
49
+ //#endregion
50
+ export { withInstallLock };
@@ -0,0 +1,20 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import type { ResolvedRuntime, RuntimeKind, RuntimeManagerOptions, RuntimeRequest, RuntimeStatus } from './types.js';
3
+ export declare class ManagedRuntimeManager extends EventEmitter {
4
+ private readonly options;
5
+ private readonly inFlight;
6
+ constructor(options: RuntimeManagerOptions);
7
+ defaultVersion(runtime: RuntimeKind): string;
8
+ resolve(request: RuntimeRequest): Promise<ResolvedRuntime>;
9
+ private resolveUncached;
10
+ probeManaged(runtime: RuntimeKind, requestedVersion: string): Promise<ResolvedRuntime | null>;
11
+ install(runtime: RuntimeKind, version?: string, signal?: AbortSignal): Promise<ResolvedRuntime>;
12
+ private installDistribution;
13
+ private installPython;
14
+ private installBundledPython;
15
+ private uvEnvironment;
16
+ status(runtime: RuntimeKind): Promise<RuntimeStatus>;
17
+ statusAll(): Promise<RuntimeStatus[]>;
18
+ repair(runtime: RuntimeKind): Promise<ResolvedRuntime>;
19
+ private progress;
20
+ }