@xopcai/xopc 0.0.324 → 0.0.329

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 (325) hide show
  1. package/README.md +4 -3
  2. package/README.zh-CN.md +4 -3
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/telegram/xopc.extension.json +1 -1
  5. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-B-Gczr_A.js → agent-avatar-dicebear-Bs1qnnhD.js} +1 -1
  6. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DHJyAT7t.js +1 -0
  7. package/dist/gateway/static/root/assets/agent-plugin-dialog-DLKj_iIh.js +1 -0
  8. package/dist/gateway/static/root/assets/agents-SXZ5O0g4.js +70 -0
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-BwWdVRlb.js → app-management-settings-panel-BrIji9B5.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-EoXNDO1j.js → appearance-settings-Uts-MQ7K.js} +1 -1
  11. package/dist/gateway/static/root/assets/apps-page-DcclVdxW.js +1 -0
  12. package/dist/gateway/static/root/assets/{archive-plugin-B_T0uMvL.js → archive-plugin-_EzRfBuI.js} +1 -1
  13. package/dist/gateway/static/root/assets/{attachment-load-D9DDwxd2.js → attachment-load-CHg7_XFl.js} +1 -1
  14. package/dist/gateway/static/root/assets/{automations-page-jI9vNr2r.js → automations-page-CGMErk_w.js} +1 -1
  15. package/dist/gateway/static/root/assets/automations-workspace-Cc4yqiF6.js +7 -0
  16. package/dist/gateway/static/root/assets/{binary-plugins-Dzsxh9OL.js → binary-plugins-D3WB-tVn.js} +1 -1
  17. package/dist/gateway/static/root/assets/{block-editor-CWUUgWWk.js → block-editor-Cm1W-14I.js} +53 -53
  18. package/dist/gateway/static/root/assets/box-DvYoGszj.js +1 -0
  19. package/dist/gateway/static/root/assets/braces-Cfmtagno.js +1 -0
  20. package/dist/gateway/static/root/assets/{browser-automation-inputs-DSWXq9lI.js → browser-automation-inputs-VnvK-GQP.js} +1 -1
  21. package/dist/gateway/static/root/assets/browser-automations-page-CZYCvSSU.js +3 -0
  22. package/dist/gateway/static/root/assets/browser-settings-page-DDz9PE6m.js +3 -0
  23. package/dist/gateway/static/root/assets/calendar-clock-D-quYVPe.js +1 -0
  24. package/dist/gateway/static/root/assets/capabilities-page-DH3aDk53.js +2 -0
  25. package/dist/gateway/static/root/assets/capabilities-settings-panel-C8jMZAJl.js +8 -0
  26. package/dist/gateway/static/root/assets/capability-discover-page-CgGvsf3t.js +1 -0
  27. package/dist/gateway/static/root/assets/capability-header-actions-C3chJDQu.js +1 -0
  28. package/dist/gateway/static/root/assets/capability-icon-BYm2-nS-.js +1 -0
  29. package/dist/gateway/static/root/assets/channels-CuVS_KsY.js +1 -0
  30. package/dist/gateway/static/root/assets/{chat-terminal-dock-WXZrEB3K.js → chat-terminal-dock-ClbmjCL2.js} +2 -2
  31. package/dist/gateway/static/root/assets/chevron-left-DqFhpbvK.js +1 -0
  32. package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +1 -0
  33. package/dist/gateway/static/root/assets/computer-settings-page-BfZaf516.js +1 -0
  34. package/dist/gateway/static/root/assets/connector-service-page-F-fYNIx8.js +1 -0
  35. package/dist/gateway/static/root/assets/connectors-page-B4SLpvSL.js +2 -0
  36. package/dist/gateway/static/root/assets/date-picker-DXQTsUJn.js +1 -0
  37. package/dist/gateway/static/root/assets/dependency-picker-B_z3zihW.js +1 -0
  38. package/dist/gateway/static/root/assets/{desktop-pet-DPVPqFlh.js → desktop-pet-C1TZzKS3.js} +1 -1
  39. package/dist/gateway/static/root/assets/desktop-pet-settings-B5JGIfqn.js +1 -0
  40. package/dist/gateway/static/root/assets/device-pairing-wizard-DFYK_Ywf.js +1 -0
  41. package/dist/gateway/static/root/assets/directory-picker-path-field-BfxaNwMB.js +1 -0
  42. package/dist/gateway/static/root/assets/ellipsis-0k4rZLoy.js +1 -0
  43. package/dist/gateway/static/root/assets/{extension-debug-page-cuG5Lnwf.js → extension-debug-page-Bs8_FYCm.js} +1 -1
  44. package/dist/gateway/static/root/assets/extension-marketplace-api-DqV4YRYs.js +1 -0
  45. package/dist/gateway/static/root/assets/{extension-page-BCTAXdyE.js → extension-page-DH5vFbBw.js} +1 -1
  46. package/dist/gateway/static/root/assets/{extension-settings-page-kadW_icu.js → extension-settings-page-hGKovxxC.js} +1 -1
  47. package/dist/gateway/static/root/assets/external-link-DjqjBmc3.js +1 -0
  48. package/dist/gateway/static/root/assets/eye-CABVeTq0.js +1 -0
  49. package/dist/gateway/static/root/assets/folder-open-CyzJ19I9.js +1 -0
  50. package/dist/gateway/static/root/assets/{gateway-config-swr-CoQVulMd.js → gateway-config-swr-BYMrbKZE.js} +1 -1
  51. package/dist/gateway/static/root/assets/gateway-settings-BIsiP-JI.js +1 -0
  52. package/dist/gateway/static/root/assets/{gateway-startup-retry-B5GJ-CQV.js → gateway-startup-retry-DMqYXHAn.js} +1 -1
  53. package/dist/gateway/static/root/assets/gauge-C78eD2BA.js +1 -0
  54. package/dist/gateway/static/root/assets/git-branch-Dh9uxTot.js +1 -0
  55. package/dist/gateway/static/root/assets/globe-DSSGFWFn.js +1 -0
  56. package/dist/gateway/static/root/assets/home-page-CoBivEvx.js +1 -0
  57. package/dist/gateway/static/root/assets/image-Cwyalflz.js +1 -0
  58. package/dist/gateway/static/root/assets/{image-generation-api-DvWDkbk1.js → image-generation-api-D1sQGaJz.js} +1 -1
  59. package/dist/gateway/static/root/assets/imports-page-rssb4rjP.js +1 -0
  60. package/dist/gateway/static/root/assets/inbox-DNoSz682.js +1 -0
  61. package/dist/gateway/static/root/assets/index-C4QN4gCi.css +1 -0
  62. package/dist/gateway/static/root/assets/index-Cr4SINLG.js +121 -0
  63. package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +1 -0
  64. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-C1fKIjz4.js → keyboard-shortcuts-settings-CMitbles.js} +1 -1
  65. package/dist/gateway/static/root/assets/layout-grid-CEVZdVFU.js +1 -0
  66. package/dist/gateway/static/root/assets/link-2-D_ZKYUW7.js +1 -0
  67. package/dist/gateway/static/root/assets/list-BBGUdmkF.js +1 -0
  68. package/dist/gateway/static/root/assets/loader-circle-CifKLtgG.js +1 -0
  69. package/dist/gateway/static/root/assets/local-app-workbench-page-Di82Oacm.js +1 -0
  70. package/dist/gateway/static/root/assets/local-apps-page-CCvA9d9L.js +1 -0
  71. package/dist/gateway/static/root/assets/{locale-store-BPZR8x9b.js → locale-store-BSkKhYkc.js} +1 -1
  72. package/dist/gateway/static/root/assets/lock-keyhole-DEK5kH0u.js +1 -0
  73. package/dist/gateway/static/root/assets/logs-page-BK8ol1q0.js +2 -0
  74. package/dist/gateway/static/root/assets/management-settings-CebXkEtB.js +1 -0
  75. package/dist/gateway/static/root/assets/{markdown-view-Dft8ASFD.js → markdown-view-DXubGEic.js} +2 -2
  76. package/dist/gateway/static/root/assets/{media-plugins-Cjj-fidX.js → media-plugins-DLJrmU9J.js} +1 -1
  77. package/dist/gateway/static/root/assets/message-circle-Badhj-4D.js +1 -0
  78. package/dist/gateway/static/root/assets/message-square-fVE7Ghj1.js +1 -0
  79. package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +1 -0
  80. package/dist/gateway/static/root/assets/messages-D0G_sZvA.js +3 -0
  81. package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +1 -0
  82. package/dist/gateway/static/root/assets/models-hub-cache-B0EUPwTv.js +1 -0
  83. package/dist/gateway/static/root/assets/network-BUQLY1BV.js +1 -0
  84. package/dist/gateway/static/root/assets/note-detail-panel-xsKDIJdK.js +5 -0
  85. package/dist/gateway/static/root/assets/note-image-lightbox-1qg2v-9j.js +1 -0
  86. package/dist/gateway/static/root/assets/notes-page-BFm7XnWH.js +8 -0
  87. package/dist/gateway/static/root/assets/page-context-capture-button-C3JiQEKD.js +1 -0
  88. package/dist/gateway/static/root/assets/paperclip-f1HujQY1.js +1 -0
  89. package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +1 -0
  90. package/dist/gateway/static/root/assets/power-ZI-pBczI.js +1 -0
  91. package/dist/gateway/static/root/assets/preview-open-alternatives-buk_gdip.js +1 -0
  92. package/dist/gateway/static/root/assets/{product-open-page-DlpCi5zT.js → product-open-page-DwEEO0Ak.js} +1 -1
  93. package/dist/gateway/static/root/assets/project-detail-page-CRQGCRSU.js +1 -0
  94. package/dist/gateway/static/root/assets/projects-page-DcqylysA.js +1 -0
  95. package/dist/gateway/static/root/assets/{registry-api-DWWO6ajd.js → registry-api-tx8XCHOs.js} +1 -1
  96. package/dist/gateway/static/root/assets/remote-access-hub-Cq5MaiRW.js +1 -0
  97. package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +1 -0
  98. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BT_ANpaT.js → runtime-tools-settings-panel-De7HmmBu.js} +2 -2
  99. package/dist/gateway/static/root/assets/scenes-page-GXJ-b3dO.js +2 -0
  100. package/dist/gateway/static/root/assets/{schema-form-BcqsqSsV.js → schema-form-DPMEuj5D.js} +1 -1
  101. package/dist/gateway/static/root/assets/search-DA7gz22f.js +1 -0
  102. package/dist/gateway/static/root/assets/server-BlHCBjiE.js +1 -0
  103. package/dist/gateway/static/root/assets/sessions-page-C6FwYIRA.js +1 -0
  104. package/dist/gateway/static/root/assets/settings-advanced-gate-BEyQiZs0.js +1 -0
  105. package/dist/gateway/static/root/assets/settings-form-section-DM0D-BQ_.js +1 -0
  106. package/dist/gateway/static/root/assets/{settings-page-B65vii9U.js → settings-page-CWS9yOH3.js} +1 -1
  107. package/dist/gateway/static/root/assets/settings-page-layout-X1x-2Cp9.js +1 -0
  108. package/dist/gateway/static/root/assets/setup-status-panel-BhGKiTPf.js +1 -0
  109. package/dist/gateway/static/root/assets/{share-preview-page-BS8o58NJ.js → share-preview-page-CcRi2yGy.js} +1 -1
  110. package/dist/gateway/static/root/assets/shares-settings-DNmcCBfX.js +1 -0
  111. package/dist/gateway/static/root/assets/skill-api-BCAV_F1P.js +1 -0
  112. package/dist/gateway/static/root/assets/skill-card-icon-BrrpZ3Mw.js +1 -0
  113. package/dist/gateway/static/root/assets/skill-reload-api-BEV2WXGk.js +1 -0
  114. package/dist/gateway/static/root/assets/skills-page-C8zOGpKw.js +2 -0
  115. package/dist/gateway/static/root/assets/star-BUWJqJ5c.js +1 -0
  116. package/dist/gateway/static/root/assets/stethoscope-DRqTAtjD.js +1 -0
  117. package/dist/gateway/static/root/assets/store-SzD1Jvgm.js +1 -0
  118. package/dist/gateway/static/root/assets/system-settings-panel-C_lajq9u.js +1 -0
  119. package/dist/gateway/static/root/assets/task-detail-page-Dk8Bmlhw.js +1 -0
  120. package/dist/gateway/static/root/assets/tunnel-api-CYvKiE_f.js +1 -0
  121. package/dist/gateway/static/root/assets/upload-rrb46c3c.js +1 -0
  122. package/dist/gateway/static/root/assets/use-autosave-ZTHe1zCM.js +1 -0
  123. package/dist/gateway/static/root/assets/user-model-page-C_SPNZbP.js +2 -0
  124. package/dist/gateway/static/root/assets/user-round-C9jxPhMR.js +1 -0
  125. package/dist/gateway/static/root/assets/{voice-api-key-field-DJV-qERt.js → voice-api-key-field-C8Kpkct-.js} +1 -1
  126. package/dist/gateway/static/root/assets/voice-config-api-BvzxINUk.js +1 -0
  127. package/dist/gateway/static/root/assets/wand-sparkles-DWuJz5ya.js +1 -0
  128. package/dist/gateway/static/root/assets/{work-discovery-overlay-DcHhy54L.js → work-discovery-overlay-ClB6T-dm.js} +1 -1
  129. package/dist/gateway/static/root/assets/workflow-run-setup-panel-X0Cyh2AR.js +3 -0
  130. package/dist/gateway/static/root/assets/workflows-page-BrL6dzf0.js +6 -0
  131. package/dist/gateway/static/root/connector-icons/SOURCES.md +1 -0
  132. package/dist/gateway/static/root/connector-icons/wecom.svg +9 -0
  133. package/dist/gateway/static/root/index.html +26 -8
  134. package/dist/package.js +1 -1
  135. package/dist/src/agent/agent-instance-gateway.d.ts +2 -2
  136. package/dist/src/agent/agent-manager.d.ts +4 -2
  137. package/dist/src/agent/agent-manager.js +58 -19
  138. package/dist/src/agent/background-review/coordinator.d.ts +2 -7
  139. package/dist/src/agent/background-review/coordinator.js +17 -34
  140. package/dist/src/agent/background-review/prompts.d.ts +13 -5
  141. package/dist/src/agent/background-review/prompts.js +17 -12
  142. package/dist/src/agent/background-review/run-background-review.d.ts +3 -3
  143. package/dist/src/agent/background-review/run-background-review.js +58 -43
  144. package/dist/src/agent/context/execution-context.js +5 -2
  145. package/dist/src/agent/mcp/index.js +1 -1
  146. package/dist/src/agent/mcp/mcp-transport.js +2 -2
  147. package/dist/src/agent/mcp/oauth/index.js +1 -1
  148. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +2 -2
  149. package/dist/src/agent/mcp/oauth/mcp-oauth-provider.js +1 -1
  150. package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
  151. package/dist/src/agent/prompt/sections/tooling.js +3 -0
  152. package/dist/src/agent/service/direct-turn-helpers.js +1 -1
  153. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +12 -0
  154. package/dist/src/agent/tools/user-context-tool.js +29 -4
  155. package/dist/src/automations/domain/types.d.ts +7 -1
  156. package/dist/src/automations/service/action-executor.d.ts +2 -2
  157. package/dist/src/automations/service/action-executor.js +36 -13
  158. package/dist/src/automations/service/automation-service.js +2 -1
  159. package/dist/src/browser/automations/index.js +2 -2
  160. package/dist/src/browser/automations/service.d.ts +11 -2
  161. package/dist/src/browser/automations/service.js +19 -5
  162. package/dist/src/capabilities/readiness/from-config.d.ts +0 -1
  163. package/dist/src/capabilities/readiness/from-config.js +2 -4
  164. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  165. package/dist/src/cli/commands/extension-agent-plugin.js +2 -1
  166. package/dist/src/config/schema.js +4 -4
  167. package/dist/src/connectors/china-catalog.js +5 -1
  168. package/dist/src/connectors/connected-source-ingestion.js +6 -1
  169. package/dist/src/connectors/connected-source-observations.d.ts +10 -0
  170. package/dist/src/connectors/connected-source-observations.js +80 -0
  171. package/dist/src/connectors/connected-source-understanding.js +198 -8
  172. package/dist/src/connectors/learning-coordinator.js +63 -26
  173. package/dist/src/connectors/learning-recipes.js +19 -2
  174. package/dist/src/discussions/audio-repair.d.ts +1 -1
  175. package/dist/src/discussions/live-worker.js +1 -3
  176. package/dist/src/discussions/recording.js +2 -2
  177. package/dist/src/discussions/sealer.js +2 -2
  178. package/dist/src/extensions/agent-plugins/auth.d.ts +2 -2
  179. package/dist/src/extensions/agent-plugins/auth.js +6 -35
  180. package/dist/src/extensions/agent-plugins/credentials.d.ts +2 -0
  181. package/dist/src/extensions/agent-plugins/credentials.js +37 -0
  182. package/dist/src/extensions/agent-plugins/plugin-oauth-scope.d.ts +1 -0
  183. package/dist/src/extensions/agent-plugins/plugin-oauth-scope.js +8 -0
  184. package/dist/src/extensions/marketplace.d.ts +4 -0
  185. package/dist/src/extensions/marketplace.js +4 -0
  186. package/dist/src/gateway/file-space-service.d.ts +9 -2
  187. package/dist/src/gateway/hono/routes/agent-plugins.js +2 -1
  188. package/dist/src/gateway/hono/routes/config.js +0 -3
  189. package/dist/src/gateway/hono/routes/connectors.js +3 -10
  190. package/dist/src/gateway/hono/routes/context-sources.d.ts +0 -1
  191. package/dist/src/gateway/hono/routes/context-sources.js +12 -15
  192. package/dist/src/gateway/hono/routes/status.js +0 -1
  193. package/dist/src/gateway/hono/routes/user-model.js +21 -3
  194. package/dist/src/gateway/hono/routes/voice.js +0 -67
  195. package/dist/src/gateway/service.js +6 -4
  196. package/dist/src/media-understanding/types.d.ts +1 -1
  197. package/dist/src/memory-maintenance/service.d.ts +1 -0
  198. package/dist/src/memory-maintenance/service.js +13 -0
  199. package/dist/src/migrations/retired-local-stt.d.ts +2 -0
  200. package/dist/src/migrations/retired-local-stt.js +52 -0
  201. package/dist/src/migrations/runner.js +2 -1
  202. package/dist/src/session/turn-outcome-projector.js +1 -1
  203. package/dist/src/storage/sqlite/connection.js +1 -0
  204. package/dist/src/storage/sqlite/migrations/207_user_model_policy_contract.sql +121 -0
  205. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  206. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  207. package/dist/src/storage/sqlite/schema.js +1 -1
  208. package/dist/src/storage/sqlite/sql-assets.d.ts +1 -0
  209. package/dist/src/storage/sqlite/sql-assets.js +7 -4
  210. package/dist/src/tasks/index.js +2 -2
  211. package/dist/src/tasks/task-application-service.d.ts +1 -0
  212. package/dist/src/tasks/task-application-service.js +4 -2
  213. package/dist/src/tasks/task-context-assembler.js +10 -1
  214. package/dist/src/tasks/task-run-dispatcher.d.ts +1 -0
  215. package/dist/src/tasks/task-run-dispatcher.js +15 -2
  216. package/dist/src/user-context/sources/consent-repository.d.ts +7 -0
  217. package/dist/src/user-context/sources/consent-repository.js +81 -0
  218. package/dist/src/user-context/sources/index.d.ts +1 -0
  219. package/dist/src/user-context/sources/index.js +2 -1
  220. package/dist/src/user-context/sources/repository.js +73 -1
  221. package/dist/src/user-context/sources/types.d.ts +16 -0
  222. package/dist/src/user-model/action-rule-suggestions.d.ts +11 -0
  223. package/dist/src/user-model/action-rule-suggestions.js +29 -0
  224. package/dist/src/user-model/bootstrap.js +1 -1
  225. package/dist/src/user-model/capture/executor.js +83 -7
  226. package/dist/src/user-model/capture/semantic.d.ts +5 -2
  227. package/dist/src/user-model/capture/semantic.js +27 -11
  228. package/dist/src/user-model/domain.d.ts +26 -0
  229. package/dist/src/user-model/domain.js +40 -2
  230. package/dist/src/user-model/index.d.ts +2 -0
  231. package/dist/src/user-model/index.js +6 -4
  232. package/dist/src/user-model/maintenance-policy.d.ts +1 -0
  233. package/dist/src/user-model/maintenance-policy.js +13 -0
  234. package/dist/src/user-model/observation-repository.d.ts +48 -0
  235. package/dist/src/user-model/observation-repository.js +100 -0
  236. package/dist/src/user-model/repository.d.ts +5 -0
  237. package/dist/src/user-model/repository.js +121 -10
  238. package/dist/src/user-model/usage-policy.d.ts +5 -2
  239. package/dist/src/user-model/usage-policy.js +2 -2
  240. package/dist/src/voice/audio/normalize.d.ts +1 -1
  241. package/dist/src/voice/audio/normalize.js +1 -1
  242. package/dist/src/voice/{local → audio}/wav.js +1 -1
  243. package/dist/src/voice/language-profile.js +10 -16
  244. package/dist/src/voice/metadata/builtin.js +0 -46
  245. package/dist/src/voice/stt/providers/index.d.ts +0 -1
  246. package/dist/src/voice/stt/providers/index.js +1 -2
  247. package/dist/src/voice/stt/types.js +3 -4
  248. package/dist/src/voice/tts/merge-config.js +1 -1
  249. package/dist/src/voice/tts/speech-registry.d.ts +1 -1
  250. package/dist/src/voice/tts/types.d.ts +1 -1
  251. package/dist/src/work-discovery/analyzer.js +6 -5
  252. package/dist/src/work-discovery/service.js +2 -2
  253. package/dist/src/work-discovery/types.d.ts +1 -1
  254. package/dist/src/workflows/context/workflow-context.js +5 -1
  255. package/dist/src/workflows/index.js +2 -2
  256. package/dist/src/workflows/service/workflow-run-service.d.ts +1 -0
  257. package/dist/src/workflows/service/workflow-run-service.js +13 -4
  258. package/package.json +13 -17
  259. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CxcIHW_Z.js +0 -1
  260. package/dist/gateway/static/root/assets/agent-plugin-dialog-CNuqJcHQ.js +0 -1
  261. package/dist/gateway/static/root/assets/agents-CPpmkx7O.js +0 -1
  262. package/dist/gateway/static/root/assets/apps-page-6xEgLDv8.js +0 -1
  263. package/dist/gateway/static/root/assets/automations-workspace-rztQnZDk.js +0 -7
  264. package/dist/gateway/static/root/assets/browser-automations-page-D96o3bDY.js +0 -3
  265. package/dist/gateway/static/root/assets/browser-settings-page-DUQzQ3ic.js +0 -3
  266. package/dist/gateway/static/root/assets/capabilities-settings-panel-CKWtXof8.js +0 -8
  267. package/dist/gateway/static/root/assets/channels-settings-C8ducWB7.js +0 -1
  268. package/dist/gateway/static/root/assets/computer-settings-page-uy9YDwxJ.js +0 -1
  269. package/dist/gateway/static/root/assets/connector-service-page-BpF0SjB9.js +0 -1
  270. package/dist/gateway/static/root/assets/connectors-page-eZTfIMWI.js +0 -2
  271. package/dist/gateway/static/root/assets/date-picker-Do1dl0La.js +0 -1
  272. package/dist/gateway/static/root/assets/dependency-picker-BhS8s080.js +0 -1
  273. package/dist/gateway/static/root/assets/desktop-pet-settings-Dv3vG9HZ.js +0 -1
  274. package/dist/gateway/static/root/assets/device-pairing-wizard-DdvO1O6W.js +0 -1
  275. package/dist/gateway/static/root/assets/gateway-settings-CLZyN-u9.js +0 -1
  276. package/dist/gateway/static/root/assets/home-page-BSqg-JE9.js +0 -1
  277. package/dist/gateway/static/root/assets/imports-page-_pddpuej.js +0 -1
  278. package/dist/gateway/static/root/assets/index-BKL5tg2f.css +0 -1
  279. package/dist/gateway/static/root/assets/index-CJuypaNt.js +0 -121
  280. package/dist/gateway/static/root/assets/local-app-workbench-page-DXFnYiA0.js +0 -1
  281. package/dist/gateway/static/root/assets/local-apps-page-CkXKS5xe.js +0 -1
  282. package/dist/gateway/static/root/assets/logs-page-C33z-ife.js +0 -2
  283. package/dist/gateway/static/root/assets/management-settings-8eDZb0uS.js +0 -1
  284. package/dist/gateway/static/root/assets/messages-kFWhF6_t.js +0 -3
  285. package/dist/gateway/static/root/assets/note-detail-panel-C95RtLuL.js +0 -5
  286. package/dist/gateway/static/root/assets/notes-page-kFxknjMR.js +0 -8
  287. package/dist/gateway/static/root/assets/page-context-capture-button-OUL3fEYh.js +0 -1
  288. package/dist/gateway/static/root/assets/page-tabs-CVbY7_N5.js +0 -1
  289. package/dist/gateway/static/root/assets/preview-open-alternatives-CKiIby0r.js +0 -1
  290. package/dist/gateway/static/root/assets/project-detail-page-LPAxUszX.js +0 -1
  291. package/dist/gateway/static/root/assets/projects-page-Cbyb4hyy.js +0 -1
  292. package/dist/gateway/static/root/assets/remote-access-hub-BtDFZc6g.js +0 -1
  293. package/dist/gateway/static/root/assets/scenes-page-CJlc-mg1.js +0 -2
  294. package/dist/gateway/static/root/assets/sessions-page-CUo6-iV2.js +0 -1
  295. package/dist/gateway/static/root/assets/settings-advanced-gate-XeSxPjP7.js +0 -1
  296. package/dist/gateway/static/root/assets/settings-form-section-Dol9j_pF.js +0 -1
  297. package/dist/gateway/static/root/assets/settings-page-layout-eqTUTW2L.js +0 -1
  298. package/dist/gateway/static/root/assets/setup-status-panel-BCt__prc.js +0 -1
  299. package/dist/gateway/static/root/assets/shares-settings-BsjSqEnw.js +0 -1
  300. package/dist/gateway/static/root/assets/skill-reload-api-evN7gs0S.js +0 -1
  301. package/dist/gateway/static/root/assets/skills-page-BifYwEhe.js +0 -2
  302. package/dist/gateway/static/root/assets/skills-page.utils-DOk-iOvN.js +0 -1
  303. package/dist/gateway/static/root/assets/system-settings-panel-CcSvoHfY.js +0 -1
  304. package/dist/gateway/static/root/assets/task-detail-page-pCRG7Jb3.js +0 -1
  305. package/dist/gateway/static/root/assets/tunnel-api-DDGMf44u.js +0 -1
  306. package/dist/gateway/static/root/assets/use-autosave-DiIkxIq7.js +0 -1
  307. package/dist/gateway/static/root/assets/user-model-page-CvYeM0Ml.js +0 -2
  308. package/dist/gateway/static/root/assets/voice-config-api-BaxITrwZ.js +0 -1
  309. package/dist/gateway/static/root/assets/workflow-run-setup-panel-DbVtLh0R.js +0 -3
  310. package/dist/gateway/static/root/assets/workflows-page-CT8ouKcB.js +0 -6
  311. package/dist/src/voice/local/model-files.d.ts +0 -14
  312. package/dist/src/voice/local/model-files.js +0 -92
  313. package/dist/src/voice/local/model-manager.d.ts +0 -18
  314. package/dist/src/voice/local/model-manager.js +0 -133
  315. package/dist/src/voice/local/models.d.ts +0 -28
  316. package/dist/src/voice/local/models.js +0 -99
  317. package/dist/src/voice/local/provider-switch.d.ts +0 -4
  318. package/dist/src/voice/local/provider-switch.js +0 -36
  319. package/dist/src/voice/local/runtime-client.d.ts +0 -28
  320. package/dist/src/voice/local/runtime-client.js +0 -183
  321. package/dist/src/voice/local/runtime-worker.d.ts +0 -1
  322. package/dist/src/voice/local/runtime-worker.js +0 -271
  323. package/dist/src/voice/stt/providers/local-transcription.d.ts +0 -2
  324. package/dist/src/voice/stt/providers/local-transcription.js +0 -53
  325. /package/dist/src/voice/{local → audio}/wav.d.ts +0 -0
@@ -1,271 +0,0 @@
1
- import { getLocalVoiceModel, resolveLocalVoiceModelDir } from "./models.js";
2
- import { downloadLocalVoiceModelFiles } from "./model-files.js";
3
- import { join, resolve, sep } from "node:path";
4
- import { mkdir, rm } from "node:fs/promises";
5
- import { EnvHttpProxyAgent, RetryAgent, setGlobalDispatcher } from "undici";
6
- import { createInterface } from "node:readline";
7
- //#region src/voice/local/runtime-worker.ts
8
- const pipelines = /* @__PURE__ */ new Map();
9
- const sherpaRecognizers = /* @__PURE__ */ new Map();
10
- async function assertLocalVoiceEngineAvailable(modelId) {
11
- const model = getLocalVoiceModel(modelId);
12
- if (model.engine === "sherpa-onnx") {
13
- const imported = await import("sherpa-onnx-node").catch((cause) => {
14
- throw new Error("The sherpa-onnx local voice engine is not installed. Install sherpa-onnx-node@1.13.4 alongside @xopcai/xopc.", { cause });
15
- });
16
- if (typeof (imported.default ?? imported).OfflineRecognizer !== "function") throw new Error("The sherpa-onnx local voice engine did not expose OfflineRecognizer");
17
- } else await import("@huggingface/transformers").catch((cause) => {
18
- throw new Error("The Transformers.js local voice engine is not installed. Install @huggingface/transformers@3.8.1 alongside @xopcai/xopc.", { cause });
19
- });
20
- return model.engine;
21
- }
22
- const networkAgent = new RetryAgent(new EnvHttpProxyAgent(), {
23
- maxRetries: 4,
24
- minTimeout: 500,
25
- maxTimeout: 8e3,
26
- timeoutFactor: 2,
27
- retryAfter: true
28
- });
29
- setGlobalDispatcher(networkAgent);
30
- function normalizeRemoteHost(value) {
31
- const url = new URL(value);
32
- if (url.username || url.password) throw new Error("Local voice model endpoint must not contain credentials");
33
- if (url.protocol !== "https:" && url.hostname !== "127.0.0.1" && url.hostname !== "localhost") throw new Error("Local voice model endpoint must use HTTPS");
34
- url.pathname = `${url.pathname.replace(/\/+$/, "")}/`;
35
- return url.toString();
36
- }
37
- function resolveRemoteHosts() {
38
- const configured = process.env.XOPC_VOICE_MODEL_ENDPOINT?.trim() || process.env.HF_ENDPOINT?.trim();
39
- if (configured) return [normalizeRemoteHost(configured)];
40
- return [normalizeRemoteHost("https://xopc.ai/api/voice/models"), normalizeRemoteHost("https://huggingface.co")];
41
- }
42
- function serializeError(error) {
43
- if (!(error instanceof Error)) return { message: String(error) };
44
- const withCode = error;
45
- const nested = withCode.cause;
46
- const nestedMessage = nested instanceof Error ? nested.message : void 0;
47
- const nestedCode = nested && typeof nested === "object" && "code" in nested ? String(nested.code ?? "") : void 0;
48
- return {
49
- message: error.message,
50
- ...typeof withCode.code === "string" ? { code: withCode.code } : {},
51
- ...nestedCode ? { code: nestedCode } : {},
52
- ...nestedMessage && nestedMessage !== error.message ? { cause: nestedMessage } : {}
53
- };
54
- }
55
- function send(message) {
56
- process.stdout.write(`${JSON.stringify(message)}\n`);
57
- }
58
- async function loadPipeline(modelId, allowRemote, cacheDir = resolveLocalVoiceModelDir(modelId), onProgress) {
59
- const key = `${modelId}:${cacheDir}`;
60
- const existing = pipelines.get(key);
61
- if (existing) return existing;
62
- const model = getLocalVoiceModel(modelId);
63
- if (model.engine !== "transformers.js") throw new Error(`Model ${model.id} does not use the Transformers.js engine`);
64
- const promise = (async () => {
65
- let transformers;
66
- try {
67
- transformers = await import("@huggingface/transformers");
68
- } catch (cause) {
69
- throw new Error("The Transformers.js local voice engine is not installed. Install @huggingface/transformers@3.8.1 alongside @xopcai/xopc; use npm install -g when xopc is installed globally.", { cause });
70
- }
71
- transformers.env.cacheDir = cacheDir;
72
- transformers.env.allowRemoteModels = allowRemote;
73
- transformers.env.allowLocalModels = true;
74
- const remoteHosts = allowRemote ? resolveRemoteHosts() : [normalizeRemoteHost("https://xopc.ai")];
75
- let lastError;
76
- for (const [index, remoteHost] of remoteHosts.entries()) {
77
- transformers.env.remoteHost = remoteHost;
78
- try {
79
- return await transformers.pipeline("automatic-speech-recognition", model.repository, {
80
- revision: model.revision,
81
- dtype: model.dtype,
82
- progress_callback: onProgress
83
- });
84
- } catch (error) {
85
- lastError = error;
86
- if (index + 1 < remoteHosts.length) {
87
- await rm(cacheDir, {
88
- recursive: true,
89
- force: true
90
- });
91
- await mkdir(cacheDir, { recursive: true });
92
- }
93
- }
94
- }
95
- throw lastError;
96
- })();
97
- pipelines.set(key, promise);
98
- try {
99
- return await promise;
100
- } catch (error) {
101
- pipelines.delete(key);
102
- throw error;
103
- }
104
- }
105
- function normalizeSenseVoiceLanguage(language) {
106
- if (typeof language !== "string") return "auto";
107
- const value = language.trim().toLowerCase().replace("_", "-");
108
- if (!value || value === "auto") return "auto";
109
- if (value === "cmn" || value.startsWith("zh")) return "zh";
110
- if (value === "cantonese" || value.startsWith("yue")) return "yue";
111
- if (value.startsWith("en")) return "en";
112
- if (value.startsWith("ja")) return "ja";
113
- if (value.startsWith("ko")) return "ko";
114
- return "auto";
115
- }
116
- function cleanSenseVoiceTag(value) {
117
- return value?.replace(/^<\|/, "").replace(/\|>$/, "").trim() || void 0;
118
- }
119
- async function loadSherpaRecognizer(modelId, language) {
120
- const key = `${modelId}:${language}`;
121
- const existing = sherpaRecognizers.get(key);
122
- if (existing) return existing;
123
- const model = getLocalVoiceModel(modelId);
124
- if (model.engine !== "sherpa-onnx") throw new Error(`Model ${model.id} does not use the sherpa-onnx engine`);
125
- const modelDir = resolveLocalVoiceModelDir(model.id);
126
- const promise = (async () => {
127
- let imported;
128
- try {
129
- imported = await import("sherpa-onnx-node");
130
- } catch (cause) {
131
- throw new Error("The sherpa-onnx local voice engine is not installed. Install sherpa-onnx-node@1.13.4 alongside @xopcai/xopc; use npm install -g when xopc is installed globally.", { cause });
132
- }
133
- return new (imported.default ?? imported).OfflineRecognizer({
134
- featConfig: {
135
- sampleRate: 16e3,
136
- featureDim: 80
137
- },
138
- modelConfig: {
139
- senseVoice: {
140
- model: join(modelDir, "model.int8.onnx"),
141
- language,
142
- useInverseTextNormalization: 1
143
- },
144
- tokens: join(modelDir, "tokens.txt"),
145
- numThreads: Math.max(1, Math.min(4, Number(process.env.XOPC_VOICE_THREADS) || 2)),
146
- provider: "cpu",
147
- debug: 0
148
- }
149
- });
150
- })();
151
- sherpaRecognizers.set(key, promise);
152
- try {
153
- return await promise;
154
- } catch (error) {
155
- sherpaRecognizers.delete(key);
156
- throw error;
157
- }
158
- }
159
- async function transcribeWithSherpa(modelId, audio, language) {
160
- const recognizer = await loadSherpaRecognizer(modelId, normalizeSenseVoiceLanguage(language));
161
- const stream = recognizer.createStream();
162
- stream.acceptWaveform({
163
- sampleRate: 16e3,
164
- samples: audio
165
- });
166
- const result = recognizer.decodeAsync ? await recognizer.decodeAsync(stream) : (recognizer.decode(stream), recognizer.getResult(stream));
167
- return {
168
- text: String(result.text ?? "").trim(),
169
- ...cleanSenseVoiceTag(result.lang) ? { language: cleanSenseVoiceTag(result.lang) } : {},
170
- ...cleanSenseVoiceTag(result.emotion) ? { emotion: cleanSenseVoiceTag(result.emotion) } : {},
171
- ...cleanSenseVoiceTag(result.event) ? { event: cleanSenseVoiceTag(result.event) } : {}
172
- };
173
- }
174
- async function handle(request) {
175
- const params = request.params ?? {};
176
- if (request.method === "health") {
177
- const modelId = typeof params.modelId === "string" && params.modelId ? params.modelId : void 0;
178
- const selectedEngine = modelId ? await assertLocalVoiceEngineAvailable(modelId) : void 0;
179
- return {
180
- ok: true,
181
- protocolVersion: 2,
182
- engine: "transformers.js+sherpa-onnx",
183
- engines: ["transformers.js", "sherpa-onnx"],
184
- ...modelId ? {
185
- modelId,
186
- selectedEngine
187
- } : {}
188
- };
189
- }
190
- if (request.method === "model.install") {
191
- const modelId = String(params.modelId ?? "");
192
- const modelDir = resolve(resolveLocalVoiceModelDir(modelId));
193
- const requestedCacheDir = typeof params.cacheDir === "string" ? resolve(params.cacheDir) : modelDir;
194
- const allowedPrefix = `${resolve(modelDir, "..")}${sep}`;
195
- if (requestedCacheDir !== modelDir && !requestedCacheDir.startsWith(allowedPrefix)) throw new Error("Local voice model cache directory is outside the managed root");
196
- const model = getLocalVoiceModel(modelId);
197
- if (model.engine === "sherpa-onnx") await downloadLocalVoiceModelFiles({
198
- model,
199
- destinationDir: requestedCacheDir,
200
- remoteHosts: resolveRemoteHosts(),
201
- onProgress: (data) => send({
202
- id: request.id,
203
- event: "progress",
204
- data
205
- })
206
- });
207
- else {
208
- await loadPipeline(modelId, true, requestedCacheDir, (data) => send({
209
- id: request.id,
210
- event: "progress",
211
- data
212
- }));
213
- pipelines.delete(`${modelId}:${requestedCacheDir}`);
214
- }
215
- return {
216
- installed: true,
217
- modelId
218
- };
219
- }
220
- if (request.method === "model.unload") {
221
- const modelId = String(params.modelId ?? "");
222
- for (const key of pipelines.keys()) if (key.startsWith(`${modelId}:`)) pipelines.delete(key);
223
- for (const key of sherpaRecognizers.keys()) if (key.startsWith(`${modelId}:`)) sherpaRecognizers.delete(key);
224
- return { unloaded: true };
225
- }
226
- if (request.method === "transcribe") {
227
- const modelId = String(params.modelId ?? "");
228
- const bytes = Buffer.from(String(params.audioBase64 ?? ""), "base64");
229
- const copied = Uint8Array.from(bytes);
230
- const audio = new Float32Array(copied.buffer);
231
- const language = typeof params.language === "string" && params.language ? params.language : void 0;
232
- const model = getLocalVoiceModel(modelId);
233
- if (model.engine === "sherpa-onnx") return {
234
- ...await transcribeWithSherpa(model.id, audio, language),
235
- modelId
236
- };
237
- const output = await (await loadPipeline(modelId, false))(audio, {
238
- task: "transcribe",
239
- ...language ? { language } : {},
240
- chunk_length_s: 30,
241
- stride_length_s: 5,
242
- return_timestamps: false
243
- });
244
- return {
245
- text: (output && typeof output === "object" && "text" in output ? String(output.text ?? "") : "").trim(),
246
- modelId
247
- };
248
- }
249
- throw new Error(`Unknown local voice runtime method: ${request.method}`);
250
- }
251
- const lines = createInterface({ input: process.stdin });
252
- lines.on("line", (line) => {
253
- let request;
254
- try {
255
- request = JSON.parse(line);
256
- } catch {
257
- return;
258
- }
259
- handle(request).then((result) => send({
260
- id: request.id,
261
- result
262
- }), (error) => send({
263
- id: request.id,
264
- error: serializeError(error)
265
- }));
266
- });
267
- lines.once("close", () => {
268
- networkAgent.close().finally(() => process.exit(0));
269
- });
270
- //#endregion
271
- export {};
@@ -1,2 +0,0 @@
1
- import type { MediaUnderstandingProvider } from '../../../media-understanding/types.js';
2
- export declare const localTranscriptionProvider: MediaUnderstandingProvider;
@@ -1,53 +0,0 @@
1
- import { createLogger } from "../../../utils/logger/index.js";
2
- import { init_logger } from "../../../utils/logger.js";
3
- import { DEFAULT_LOCAL_VOICE_MODEL_ID, getLocalVoiceModel, hasInstalledLocalVoiceModel, isLocalVoiceModelInstalled } from "../../local/models.js";
4
- import { registerMediaUnderstandingProvider } from "../../../media-understanding/registry.js";
5
- import { getLocalVoiceRuntimeClient } from "../../local/runtime-client.js";
6
- import { decodeAudioToMonoFloat32 } from "../../audio/normalize.js";
7
- //#region src/voice/stt/providers/local-transcription.ts
8
- init_logger();
9
- const log = createLogger("STT:Local");
10
- async function transcribeAudio(req) {
11
- const model = getLocalVoiceModel(req.model);
12
- if (!isLocalVoiceModelInstalled(model.id)) throw new Error(`Local voice model "${model.id}" is not installed`);
13
- const decoded = await decodeAudioToMonoFloat32({
14
- buffer: req.buffer,
15
- signal: req.signal
16
- });
17
- const audioBytes = Buffer.from(decoded.samples.buffer, decoded.samples.byteOffset, decoded.samples.byteLength);
18
- const startedAt = Date.now();
19
- const result = await getLocalVoiceRuntimeClient().request("transcribe", {
20
- modelId: model.id,
21
- audioBase64: audioBytes.toString("base64"),
22
- ...req.language ? { language: req.language } : {}
23
- }, {
24
- signal: req.signal,
25
- timeoutMs: req.timeoutMs
26
- });
27
- log.info({
28
- model: model.id,
29
- audioDurationSeconds: decoded.durationSeconds,
30
- latencyMs: Date.now() - startedAt,
31
- realTimeFactor: decoded.durationSeconds > 0 ? (Date.now() - startedAt) / 1e3 / decoded.durationSeconds : void 0,
32
- textLength: result.text.length
33
- }, "Local transcription completed");
34
- return {
35
- text: result.text,
36
- model: model.id,
37
- ...result.language || req.language ? { language: result.language ?? req.language } : {},
38
- durationSeconds: decoded.durationSeconds
39
- };
40
- }
41
- const localTranscriptionProvider = {
42
- id: "xopc-local",
43
- aliases: ["local"],
44
- capabilities: ["audio"],
45
- requiresApiKey: false,
46
- defaultModels: { audio: DEFAULT_LOCAL_VOICE_MODEL_ID },
47
- autoPriority: { audio: 0 },
48
- isConfigured: (options) => options?.model ? isLocalVoiceModelInstalled(options.model) : hasInstalledLocalVoiceModel(),
49
- transcribeAudio
50
- };
51
- registerMediaUnderstandingProvider(localTranscriptionProvider);
52
- //#endregion
53
- export { localTranscriptionProvider };
File without changes