@xopcai/xopc 0.0.424 → 0.0.426

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 (252) 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-AI081rxe.js → activity-store-D_DXNHba.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DupnTbL7.js → agent-avatar-dicebear-CjaQxFQt.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agent-avatar-display-CmEj6Uqy.js → agent-avatar-display-6Z4m31Fz.js} +2 -2
  6. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-IEV5yKuu.js → agent-defaults-settings-panel-Dne9A10p.js} +1 -1
  7. package/dist/gateway/static/root/assets/{agent-plugin-dialog-D_njOuFA.js → agent-plugin-dialog-BoHL-b1o.js} +1 -1
  8. package/dist/gateway/static/root/assets/{agents-B_yg9nA3.js → agents-CIiIlVBp.js} +3 -3
  9. package/dist/gateway/static/root/assets/{agents-admin-api-CUZUolwG.js → agents-admin-api-u5c3GREg.js} +1 -1
  10. package/dist/gateway/static/root/assets/{api-bpQ7yR10.js → api-C3Tp9MkF.js} +1 -1
  11. package/dist/gateway/static/root/assets/{api-CWWEVThO.js → api-CRT9ZyH0.js} +1 -1
  12. package/dist/gateway/static/root/assets/{app-management-settings-panel-C0_hxwgg.js → app-management-settings-panel-C8yc3yHG.js} +1 -1
  13. package/dist/gateway/static/root/assets/{appearance-settings-CLh-qnCC.js → appearance-settings-BELgtR3O.js} +1 -1
  14. package/dist/gateway/static/root/assets/{apps-page-Bjtm3Rgi.js → apps-page-vgS1CHDj.js} +1 -1
  15. package/dist/gateway/static/root/assets/{archive-plugin-dGnstkhB.js → archive-plugin-BCQnOkV8.js} +1 -1
  16. package/dist/gateway/static/root/assets/{automation-api-MB2xCoFF.js → automation-api-hRsGx-qe.js} +1 -1
  17. package/dist/gateway/static/root/assets/{automation-result-state-DJQflY78.js → automation-result-state-CMfVTv_i.js} +1 -1
  18. package/dist/gateway/static/root/assets/{automation-task-card-DXgBxVE2.js → automation-task-card-MnzgyTVA.js} +1 -1
  19. package/dist/gateway/static/root/assets/{automations-page-D3O7M2FH.js → automations-page-CdIPdwF0.js} +1 -1
  20. package/dist/gateway/static/root/assets/{automations-workspace-Dk3FVWoX.js → automations-workspace-C3xZLafX.js} +2 -2
  21. package/dist/gateway/static/root/assets/{binary-plugins-BrVJXmYf.js → binary-plugins-CIB5cbvQ.js} +1 -1
  22. package/dist/gateway/static/root/assets/{block-editor-Dok4sfT3.js → block-editor-BQtTLe6Q.js} +1 -1
  23. package/dist/gateway/static/root/assets/{browser-automation-inputs-PJbT3CxW.js → browser-automation-inputs-DeraGZ1y.js} +1 -1
  24. package/dist/gateway/static/root/assets/{browser-automations-page-kkpX1Q7K.js → browser-automations-page-SpPzRNqU.js} +1 -1
  25. package/dist/gateway/static/root/assets/{browser-control-api-Bg4wnkeA.js → browser-control-api-CbbPvhHR.js} +1 -1
  26. package/dist/gateway/static/root/assets/{browser-settings-page-BrgX_Yb2.js → browser-settings-page-BD1uF_Nb.js} +1 -1
  27. package/dist/gateway/static/root/assets/{capabilities-BMaJizw4.js → capabilities-BGE6hiUE.js} +1 -1
  28. package/dist/gateway/static/root/assets/{capabilities-Cs6Jt5Gl.js → capabilities-DLMuj21P.js} +1 -1
  29. package/dist/gateway/static/root/assets/{capabilities-page-D5hvAG6D.js → capabilities-page-Bda4mSdf.js} +2 -2
  30. package/dist/gateway/static/root/assets/{capabilities-settings-panel-BrEvm4IH.js → capabilities-settings-panel-B2B7no22.js} +2 -2
  31. package/dist/gateway/static/root/assets/{channels-1jQgGVc9.js → channels-NtsjZThx.js} +1 -1
  32. package/dist/gateway/static/root/assets/{chat-agents-api-BAOWaUJf.js → chat-agents-api-D8YS5amE.js} +1 -1
  33. package/dist/gateway/static/root/assets/{chat-chart-block-DeWrb9XR.js → chat-chart-block-DCzUECct.js} +1 -1
  34. package/dist/gateway/static/root/assets/chat-page-BnOCCAXG.js +72 -0
  35. package/dist/gateway/static/root/assets/{chat-terminal-dock-C544n0-R.js → chat-terminal-dock-Dl-OTkJI.js} +1 -1
  36. package/dist/gateway/static/root/assets/{command-palette-api-D9PXzY8b.js → command-palette-api-Dijix7V6.js} +1 -1
  37. package/dist/gateway/static/root/assets/{composer-payload-handoff-CYXfjpem.js → composer-payload-handoff-CQc-VTaL.js} +1 -1
  38. package/dist/gateway/static/root/assets/{computer-settings-page-DJmod8-w.js → computer-settings-page-B-lGMimW.js} +1 -1
  39. package/dist/gateway/static/root/assets/connected-providers-grid-CcXe9kz5.js +1 -0
  40. package/dist/gateway/static/root/assets/{connector-service-page-BqDbTOTp.js → connector-service-page-C8InhrMt.js} +1 -1
  41. package/dist/gateway/static/root/assets/{connectors-api-CwRuUnH4.js → connectors-api-DEJU8mgn.js} +1 -1
  42. package/dist/gateway/static/root/assets/{connectors-page-Mq9Bvoax.js → connectors-page-Ci0L2How.js} +1 -1
  43. package/dist/gateway/static/root/assets/{date-picker-DWaT0IC0.js → date-picker-kqic8j73.js} +1 -1
  44. package/dist/gateway/static/root/assets/{dependency-picker-DV9XAt6F.js → dependency-picker-cbC6-2Ya.js} +1 -1
  45. package/dist/gateway/static/root/assets/{desktop-pet-Dffq2NxL.js → desktop-pet-DFNehTtd.js} +1 -1
  46. package/dist/gateway/static/root/assets/{desktop-pet-narrative-CS8qJpNO.js → desktop-pet-narrative-ChwjpnsG.js} +1 -1
  47. package/dist/gateway/static/root/assets/{desktop-pet-settings-CrB1ICax.js → desktop-pet-settings-BDS7_tQ_.js} +1 -1
  48. package/dist/gateway/static/root/assets/{dev-view-store-liRgSkcT.js → dev-view-store-CeZZLOc6.js} +1 -1
  49. package/dist/gateway/static/root/assets/device-pairing-wizard-_3BJFWVQ.js +1 -0
  50. package/dist/gateway/static/root/assets/{directory-picker-path-field-EKqQLQrE.js → directory-picker-path-field-Di0h3ws4.js} +1 -1
  51. package/dist/gateway/static/root/assets/{discussion-annotation-sync-D-b1X6ro.js → discussion-annotation-sync-ClKEyXmN.js} +1 -1
  52. package/dist/gateway/static/root/assets/{extension-debug-page-wD97GeG0.js → extension-debug-page-DwB5KMGk.js} +1 -1
  53. package/dist/gateway/static/root/assets/{extension-iframe-host-B4Q1CjvW.js → extension-iframe-host-Cqg1K70e.js} +1 -1
  54. package/dist/gateway/static/root/assets/{extension-marketplace-api-ak1_K3u8.js → extension-marketplace-api-DRBszrCR.js} +1 -1
  55. package/dist/gateway/static/root/assets/{extension-page-DWFI4iIh.js → extension-page-DyrQtG82.js} +1 -1
  56. package/dist/gateway/static/root/assets/{extension-provider-BZwcaU5Y.js → extension-provider-C_uKqJxP.js} +1 -1
  57. package/dist/gateway/static/root/assets/{extension-settings-page-cn4KS42C.js → extension-settings-page-BAMQHzkX.js} +1 -1
  58. package/dist/gateway/static/root/assets/{file-preview-surface-c3gDD9sM.js → file-preview-surface-DfkXvFnc.js} +1 -1
  59. package/dist/gateway/static/root/assets/{gateway-config-swr-Dmt5JhZU.js → gateway-config-swr-BOCt_zOo.js} +1 -1
  60. package/dist/gateway/static/root/assets/{gateway-realtime-CJtDXQCt.js → gateway-realtime-BL_Cf0OQ.js} +1 -1
  61. package/dist/gateway/static/root/assets/gateway-realtime-store-BHBOPF_q.js +1 -0
  62. package/dist/gateway/static/root/assets/{gateway-restart-DInvvT5u.js → gateway-restart-CHf8qY7H.js} +1 -1
  63. package/dist/gateway/static/root/assets/{gateway-settings-BZXdv2FE.js → gateway-settings-uAboiElC.js} +1 -1
  64. package/dist/gateway/static/root/assets/{gateway-startup-retry-s2KcWekp.js → gateway-startup-retry-CvkJYurV.js} +1 -1
  65. package/dist/gateway/static/root/assets/{global-defaults-api-DtnmDd87.js → global-defaults-api-BWMbKu72.js} +1 -1
  66. package/dist/gateway/static/root/assets/{home-page-CAVjA5rO.js → home-page-D6pCBY1V.js} +2 -2
  67. package/dist/gateway/static/root/assets/{image-generation-api-RQQokgE9.js → image-generation-api-CQxZSTWA.js} +1 -1
  68. package/dist/gateway/static/root/assets/{imports-page-BP_4TubV.js → imports-page-C90644id.js} +1 -1
  69. package/dist/gateway/static/root/assets/index-Cc41XQid.css +1 -0
  70. package/dist/gateway/static/root/assets/index-CnOYR6jq.js +11 -0
  71. package/dist/gateway/static/root/assets/{install-connector-dialog-BNzNuXJ8.js → install-connector-dialog-BuNXON0P.js} +1 -1
  72. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DNRQFepg.js → keyboard-shortcuts-settings-CbeubKe1.js} +1 -1
  73. package/dist/gateway/static/root/assets/{local-app-workbench-page-CvY5XxbX.js → local-app-workbench-page-CP-BkbB6.js} +1 -1
  74. package/dist/gateway/static/root/assets/{local-apps-page-DfwEvd8G.js → local-apps-page-C6zFgwkr.js} +1 -1
  75. package/dist/gateway/static/root/assets/{local-session-drafts-CuDdIyxR.js → local-session-drafts-BJ1B1dQ7.js} +1 -1
  76. package/dist/gateway/static/root/assets/{locale-store-TQcz_Vjt.js → locale-store-Br7IfbXK.js} +1 -1
  77. package/dist/gateway/static/root/assets/{logs-page-eq49F1Rt.js → logs-page-CpVCvAWE.js} +1 -1
  78. package/dist/gateway/static/root/assets/{management-settings-BaYXDMOJ.js → management-settings-I-pXv4ML.js} +1 -1
  79. package/dist/gateway/static/root/assets/{markdown-view-D4nII6Zv.js → markdown-view-DrVAMlwc.js} +1 -1
  80. package/dist/gateway/static/root/assets/{media-plugins-MvlAY405.js → media-plugins-Ba6vUE4J.js} +1 -1
  81. package/dist/gateway/static/root/assets/messages-ByFlEbsu.js +3 -0
  82. package/dist/gateway/static/root/assets/{model-selector-nsoNHqif.js → model-selector-CXcxc30J.js} +1 -1
  83. package/dist/gateway/static/root/assets/{models-hub-cache-CFIazNIF.js → models-hub-cache-Bd-fYUrV.js} +1 -1
  84. package/dist/gateway/static/root/assets/{note-detail-panel-KPzbHiEW.js → note-detail-panel-CbpLXAVh.js} +3 -3
  85. package/dist/gateway/static/root/assets/note-image-lightbox-cLGiF8oU.js +1 -0
  86. package/dist/gateway/static/root/assets/{notes-api-HVxR5bRD.js → notes-api-CUlhTRv0.js} +1 -1
  87. package/dist/gateway/static/root/assets/{notes-page-yShJeR3i.js → notes-page-eoKX85K5.js} +1 -1
  88. package/dist/gateway/static/root/assets/{oauth-api-CfKjRVnb.js → oauth-api-DMMdeaNd.js} +1 -1
  89. package/dist/gateway/static/root/assets/{oauth-provider-connect-D4uqONWr.js → oauth-provider-connect-C8BXow79.js} +1 -1
  90. package/dist/gateway/static/root/assets/{page-context-capture-button-B98nlKTc.js → page-context-capture-button-CBFK41OS.js} +1 -1
  91. package/dist/gateway/static/root/assets/{page-context-draft-HcuK45iu.js → page-context-draft-LF33STHC.js} +1 -1
  92. package/dist/gateway/static/root/assets/page-header-store-Du44NIEJ.js +1 -0
  93. package/dist/gateway/static/root/assets/{personal-avatar-_d72UP_d.js → personal-avatar-D6CzIIfo.js} +1 -1
  94. package/dist/gateway/static/root/assets/{personal-page-B19h_3WQ.js → personal-page-CXR1Gy0x.js} +1 -1
  95. package/dist/gateway/static/root/assets/{personal-settings-panel-CfwtGyue.js → personal-settings-panel-DnYapLo7.js} +1 -1
  96. package/dist/gateway/static/root/assets/{phone-dependencies-card-D8bqsDk_.js → phone-dependencies-card-DBiKtzwz.js} +1 -1
  97. package/dist/gateway/static/root/assets/{phone-model-picker-CL_Zn6Xd.js → phone-model-picker-BmSxEr7M.js} +1 -1
  98. package/dist/gateway/static/root/assets/{phone-settings-page-C5Jia8eQ.js → phone-settings-page-vg65qilc.js} +1 -1
  99. package/dist/gateway/static/root/assets/{phone-workspace-store-FBfrfkYq.js → phone-workspace-store-SN7hfddU.js} +1 -1
  100. package/dist/gateway/static/root/assets/{plugin-details-dialog-gAq2KPzK.js → plugin-details-dialog-B3Hn2cbx.js} +1 -1
  101. package/dist/gateway/static/root/assets/{preference-select-fields-Ck8GAX_y.js → preference-select-fields-Cu_ZC9Up.js} +1 -1
  102. package/dist/gateway/static/root/assets/{product-automation-feedback-BJ9oTnNs.js → product-automation-feedback-Tn2dUJWM.js} +1 -1
  103. package/dist/gateway/static/root/assets/{product-open-page-Dw9hUdxP.js → product-open-page-Nf-Oqf1h.js} +1 -1
  104. package/dist/gateway/static/root/assets/{product-preview-content-C0iPzmSm.js → product-preview-content-D6NwUm3A.js} +1 -1
  105. package/dist/gateway/static/root/assets/{product-preview-modal-COFtHoh6.js → product-preview-modal-BfNcGgXA.js} +2 -2
  106. package/dist/gateway/static/root/assets/{project-detail-page-C5Amjah-.js → project-detail-page-Ch-ZMyTu.js} +1 -1
  107. package/dist/gateway/static/root/assets/{project-understanding-DpL9ADQU.js → project-understanding-B1BK7Ixi.js} +1 -1
  108. package/dist/gateway/static/root/assets/{projects-page-gGg9nM2t.js → projects-page-B7cetxao.js} +1 -1
  109. package/dist/gateway/static/root/assets/{providers-api-D6JJRlJb.js → providers-api-DOnNfkwQ.js} +1 -1
  110. package/dist/gateway/static/root/assets/{recording-upload-DxX1xKyt.js → recording-upload-RAhaLUcQ.js} +1 -1
  111. package/dist/gateway/static/root/assets/{registry-api-BfXzBR1D.js → registry-api-DFDvOTg4.js} +1 -1
  112. package/dist/gateway/static/root/assets/{remote-access-hub-BZA4StwC.js → remote-access-hub-DWsOWetc.js} +1 -1
  113. package/dist/gateway/static/root/assets/{resource-unavailable-X-SIrZYI.js → resource-unavailable-TQcRCpAg.js} +1 -1
  114. package/dist/gateway/static/root/assets/{route-preload-CWRb0UCt.js → route-preload-Zc5Z3fNv.js} +2 -2
  115. package/dist/gateway/static/root/assets/{runtime-tools-api-1DjsPyQ5.js → runtime-tools-api-9o3Wfji1.js} +1 -1
  116. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BnCtyORj.js → runtime-tools-settings-panel-BGiXeHF5.js} +1 -1
  117. package/dist/gateway/static/root/assets/{service-recommendation-list-ChSOfHHh.js → service-recommendation-list-BEnNx0u7.js} +1 -1
  118. package/dist/gateway/static/root/assets/{session-api-rvY5aWw8.js → session-api-Bs3r_d2_.js} +1 -1
  119. package/dist/gateway/static/root/assets/session-manager-ChUtTAoG.js +23 -0
  120. package/dist/gateway/static/root/assets/{sessions-page-DAS2IUGT.js → sessions-page-Bt52kBvJ.js} +1 -1
  121. package/dist/gateway/static/root/assets/settings-advanced-gate-BI4DMz4_.js +1 -0
  122. package/dist/gateway/static/root/assets/{settings-advanced-section-ZKRIuk7h.js → settings-advanced-section-CURRjsLK.js} +1 -1
  123. package/dist/gateway/static/root/assets/{settings-mode-store-CtJ8pEfm.js → settings-mode-store-CiRpsdTJ.js} +1 -1
  124. package/dist/gateway/static/root/assets/{settings-page-B3pUce-_.js → settings-page-GtsbT6as.js} +1 -1
  125. package/dist/gateway/static/root/assets/{settings-page-header-DuNCn8i-.js → settings-page-header-DBL0_u0Z.js} +1 -1
  126. package/dist/gateway/static/root/assets/{settings-page-layout-DeNC8YHJ.js → settings-page-layout-IAvpbz4A.js} +1 -1
  127. package/dist/gateway/static/root/assets/{setup-status-panel-Fc3vuz_h.js → setup-status-panel-A6uMpGRy.js} +1 -1
  128. package/dist/gateway/static/root/assets/{share-link-dialog-B3hwjVAx.js → share-link-dialog-D1otGSXD.js} +1 -1
  129. package/dist/gateway/static/root/assets/{share-preview-page-D_9oFzGS.js → share-preview-page-L9KYu8M7.js} +1 -1
  130. package/dist/gateway/static/root/assets/{shares-api-BoUpXmxq.js → shares-api-D8Q-m46d.js} +1 -1
  131. package/dist/gateway/static/root/assets/{shares-settings-Drfuvepz.js → shares-settings-Bmfadz8A.js} +1 -1
  132. package/dist/gateway/static/root/assets/{skill-api-By2HhJ9O.js → skill-api-uKU4sRiv.js} +1 -1
  133. package/dist/gateway/static/root/assets/{skill-list-api-TaUCzS8Y.js → skill-list-api-BzKzG-xG.js} +1 -1
  134. package/dist/gateway/static/root/assets/{skill-reload-api-CN2fpS1n.js → skill-reload-api-DkUXekcd.js} +1 -1
  135. package/dist/gateway/static/root/assets/{skills-page-LzGLique.js → skills-page-BZklXTX9.js} +1 -1
  136. package/dist/gateway/static/root/assets/{system-settings-panel-Cuyg8Ml3.js → system-settings-panel-CsvcFoaJ.js} +1 -1
  137. package/dist/gateway/static/root/assets/task-detail-page-SjZGW1Dx.js +2 -0
  138. package/dist/gateway/static/root/assets/{task-result-evidence-DDubAU_5.js → task-result-evidence-B8xUiwW3.js} +1 -1
  139. package/dist/gateway/static/root/assets/{terminal-panel-store-BNs75Wdr.js → terminal-panel-store-DJVC7HqA.js} +1 -1
  140. package/dist/gateway/static/root/assets/{theme-store-DB1ZfBUm.js → theme-store-Dlnmgryi.js} +1 -1
  141. package/dist/gateway/static/root/assets/tool-friendly-title-DcCc6g7o.js +1 -0
  142. package/dist/gateway/static/root/assets/{tracing-settings-page-TvtX4Goh.js → tracing-settings-page-MvG4SH64.js} +1 -1
  143. package/dist/gateway/static/root/assets/{tunnel-api-COoVEdV9.js → tunnel-api-BB7u79ID.js} +1 -1
  144. package/dist/gateway/static/root/assets/{understanding-activity-store-Dr_MLgYe.js → understanding-activity-store-C4bblRnQ.js} +1 -1
  145. package/dist/gateway/static/root/assets/{understanding-refresh-store-DGmLGEqw.js → understanding-refresh-store-BvCj9-Ue.js} +1 -1
  146. package/dist/gateway/static/root/assets/{usage-page-DP6eb6ed.js → usage-page-Cv4Je5XJ.js} +1 -1
  147. package/dist/gateway/static/root/assets/{use-autosave-itwjDYUb.js → use-autosave-YHxQ-UZg.js} +1 -1
  148. package/dist/gateway/static/root/assets/{use-composer-attachments-hjIGlI_2.js → use-composer-attachments-vDdxHtUb.js} +1 -1
  149. package/dist/gateway/static/root/assets/{use-file-preview-expanded-ClLa0g8D.js → use-file-preview-expanded-Ce2mgYme.js} +2 -2
  150. package/dist/gateway/static/root/assets/{use-personal-profile-vhWk6tTU.js → use-personal-profile-D2Un8G1L.js} +1 -1
  151. package/dist/gateway/static/root/assets/{use-workspace-tree-dfXXjA2-.js → use-workspace-tree-BQEiJzK7.js} +1 -1
  152. package/dist/gateway/static/root/assets/{user-model-page-D8dswPWd.js → user-model-page-DRSsn4EV.js} +1 -1
  153. package/dist/gateway/static/root/assets/{voice-api-key-field-BIfBySnN.js → voice-api-key-field-DCM69u8Y.js} +1 -1
  154. package/dist/gateway/static/root/assets/{voice-config-api-J4o59ICE.js → voice-config-api-CrULrSKC.js} +1 -1
  155. package/dist/gateway/static/root/assets/{voice-input-shortcut-events-B1mlpUdC.js → voice-input-shortcut-events-DFMNIyy4.js} +1 -1
  156. package/dist/gateway/static/root/assets/{voice-transcribe-api-xxaSOOmq.js → voice-transcribe-api-Bbyj0yGR.js} +1 -1
  157. package/dist/gateway/static/root/assets/{work-discovery-overlay-DqwT1E5u.js → work-discovery-overlay-CVe9UmFl.js} +1 -1
  158. package/dist/gateway/static/root/assets/{work-discovery-page-BzYQmPLT.js → work-discovery-page-CtqkRMN5.js} +1 -1
  159. package/dist/gateway/static/root/assets/{working-directory-picker-modal-D2Zf3GOG.js → working-directory-picker-modal-CDZ1xh3o.js} +1 -1
  160. package/dist/gateway/static/root/assets/{workspace-api-Bnx3eS2M.js → workspace-api-tbifz2zY.js} +2 -2
  161. package/dist/gateway/static/root/assets/workspace-editor-agent-store-4cZ26iaD.js +1 -0
  162. package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-D13qHzVr.js → workspace-file-preview-dialog-BubQwQwU.js} +1 -1
  163. package/dist/gateway/static/root/assets/{workspace-open-location-menu-Cou-ig1H.js → workspace-open-location-menu-DZk3MBSa.js} +1 -1
  164. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-DQGPKxHA.js → xopc-cloud-account-card-CIavPUr3.js} +1 -1
  165. package/dist/gateway/static/root/index.html +81 -81
  166. package/dist/package.js +1 -1
  167. package/dist/packages/computer-control-contract/src/index.js +33 -3
  168. package/dist/src/agent/embedded/run-turn.js +64 -4
  169. package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
  170. package/dist/src/agent/tool-manuals/computer.js +6 -0
  171. package/dist/src/agent/tools/computer-use-tool.js +18 -5
  172. package/dist/src/agent/tools/phone-use-tool.js +12 -2
  173. package/dist/src/computer/agent-context.d.ts +21 -0
  174. package/dist/src/computer/agent-context.js +107 -0
  175. package/dist/src/computer/broker.d.ts +4 -2
  176. package/dist/src/computer/broker.js +26 -11
  177. package/dist/src/computer/diagnostics.d.ts +60 -6
  178. package/dist/src/computer/diagnostics.js +45 -4
  179. package/dist/src/computer/errors.d.ts +1 -1
  180. package/dist/src/computer/errors.js +4 -0
  181. package/dist/src/computer/evaluation.d.ts +2 -2
  182. package/dist/src/computer/native-timing.d.ts +15 -0
  183. package/dist/src/computer/native-timing.js +49 -0
  184. package/dist/src/computer/program-runtime.d.ts +22 -0
  185. package/dist/src/computer/program-runtime.js +105 -0
  186. package/dist/src/computer/runtime.d.ts +36 -2
  187. package/dist/src/computer/runtime.js +269 -58
  188. package/dist/src/config/models-json.d.ts +12 -0
  189. package/dist/src/config/schema.d.ts +18 -0
  190. package/dist/src/gateway/hono/routes/phone-setup.js +12 -7
  191. package/dist/src/gateway/hono/routes/phone.js +2 -4
  192. package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
  193. package/dist/src/gateway/service.js +4 -4
  194. package/dist/src/gateway/xopc-cloud-capability-setup.js +9 -1
  195. package/dist/src/home-intelligence/host.js +2 -2
  196. package/dist/src/phone/adb-driver.d.ts +15 -1
  197. package/dist/src/phone/adb-driver.js +104 -41
  198. package/dist/src/phone/autoglm-protocol.d.ts +36 -0
  199. package/dist/src/phone/autoglm-protocol.js +88 -0
  200. package/dist/src/phone/autoglm-upstream-prompt.d.ts +2 -0
  201. package/dist/src/phone/autoglm-upstream-prompt.js +5 -0
  202. package/dist/src/phone/autoglm-upstream.LICENSE +201 -0
  203. package/dist/src/phone/cloud-adb-connection.d.ts +3 -0
  204. package/dist/src/phone/cloud-adb-connection.js +105 -31
  205. package/dist/src/phone/cloud-adb.js +18 -6
  206. package/dist/src/phone/completion-recovery.d.ts +6 -0
  207. package/dist/src/phone/completion-recovery.js +30 -0
  208. package/dist/src/phone/contracts.d.ts +24 -0
  209. package/dist/src/phone/contracts.js +12 -1
  210. package/dist/src/phone/execution-trace.d.ts +51 -0
  211. package/dist/src/phone/execution-trace.js +78 -0
  212. package/dist/src/phone/gui-protocol.d.ts +7 -0
  213. package/dist/src/phone/gui-protocol.js +302 -0
  214. package/dist/src/phone/model-adapter.d.ts +10 -2
  215. package/dist/src/phone/model-adapter.js +136 -62
  216. package/dist/src/phone/model-response.d.ts +5 -0
  217. package/dist/src/phone/model-response.js +118 -0
  218. package/dist/src/phone/runtime.d.ts +4 -0
  219. package/dist/src/phone/runtime.js +154 -18
  220. package/dist/src/phone/text-session.d.ts +14 -0
  221. package/dist/src/phone/text-session.js +39 -0
  222. package/dist/src/phone/ui-dump-binary.d.ts +1 -1
  223. package/dist/src/phone/ui-dump-binary.js +1 -1
  224. package/dist/src/phone/ui-session.d.ts +24 -0
  225. package/dist/src/phone/ui-session.js +210 -0
  226. package/dist/src/process/phone-process.d.ts +1 -0
  227. package/dist/src/process/phone-process.js +11 -1
  228. package/dist/src/providers/env-keys.js +2 -0
  229. package/dist/src/providers/index.js +11 -0
  230. package/dist/src/providers/model-catalog-types.d.ts +1 -1
  231. package/dist/src/providers/model-supplements.d.ts +1 -1
  232. package/dist/src/providers/model-supplements.js +6 -3
  233. package/dist/src/providers/phone-models.d.ts +3 -0
  234. package/dist/src/providers/phone-models.js +33 -0
  235. package/dist/src/providers/presentation.js +0 -1
  236. package/dist/src/tui/tui.js +1 -1
  237. package/dist/src/voice/platform-catalog.d.ts +1 -1
  238. package/package.json +2 -1
  239. package/dist/gateway/static/root/assets/chat-page-CafkCKOj.js +0 -72
  240. package/dist/gateway/static/root/assets/connected-providers-grid-b46VH4uy.js +0 -1
  241. package/dist/gateway/static/root/assets/device-pairing-wizard-1du1hfi5.js +0 -1
  242. package/dist/gateway/static/root/assets/gateway-realtime-store-DcsZyYEa.js +0 -1
  243. package/dist/gateway/static/root/assets/index-BS9mjvSL.js +0 -11
  244. package/dist/gateway/static/root/assets/index-pT-m6l6b.css +0 -1
  245. package/dist/gateway/static/root/assets/messages-DaLmc4W1.js +0 -3
  246. package/dist/gateway/static/root/assets/note-image-lightbox-DticJxxh.js +0 -1
  247. package/dist/gateway/static/root/assets/page-header-store-D6SzJ9Ch.js +0 -1
  248. package/dist/gateway/static/root/assets/session-manager-D2rbRfX3.js +0 -23
  249. package/dist/gateway/static/root/assets/settings-advanced-gate-CYDQybNF.js +0 -1
  250. package/dist/gateway/static/root/assets/task-detail-page-6A9337pK.js +0 -2
  251. package/dist/gateway/static/root/assets/tool-friendly-title-DGmi7rCQ.js +0 -1
  252. package/dist/gateway/static/root/assets/workspace-editor-agent-store-COUVwj-p.js +0 -1
@@ -0,0 +1,24 @@
1
+ import { type PhoneElement } from './contracts.js';
2
+ export interface PhoneUiTransport {
3
+ readable: AsyncIterable<Uint8Array>;
4
+ write(data: Uint8Array): Promise<void>;
5
+ close(): Promise<void>;
6
+ }
7
+ /** Closing an ADB socket alone need not stop its remote app_process child. */
8
+ export declare function closePhoneUiProcess(write: (data: Uint8Array) => Promise<void>, exited: Promise<unknown>, terminate: () => Promise<void>): Promise<void>;
9
+ /** One request in flight, bounded framing, no replay after transport or confirmation failure. */
10
+ export declare class PhoneUiSession {
11
+ private transport;
12
+ private sequence;
13
+ private busy;
14
+ private closed;
15
+ private closing?;
16
+ private buffer;
17
+ private iterator;
18
+ constructor(transport: PhoneUiTransport);
19
+ close(): Promise<void>;
20
+ private request;
21
+ snapshot(signal: AbortSignal): Promise<string>;
22
+ replace(app: string, target: PhoneElement, text: string, signal: AbortSignal): Promise<void>;
23
+ }
24
+ export declare function openLocalPhoneUi(adbPath: string, serial: string, signal: AbortSignal): Promise<PhoneUiSession>;
@@ -0,0 +1,210 @@
1
+ import { PhoneError, init_contracts } from "./contracts.js";
2
+ import { measurePhonePhase } from "./execution-trace.js";
3
+ import { spawnPhoneInteractiveCommand } from "../process/phone-process.js";
4
+ import { runAdb } from "./adb-command.js";
5
+ import { PHONE_UI_DEX } from "./ui-dump-binary.js";
6
+ import { tmpdir } from "node:os";
7
+ import { join } from "node:path";
8
+ import { createHash, randomUUID } from "node:crypto";
9
+ import { mkdtemp, rm, writeFile } from "node:fs/promises";
10
+ //#region src/phone/ui-session.ts
11
+ init_contracts();
12
+ /** Closing an ADB socket alone need not stop its remote app_process child. */
13
+ async function closePhoneUiProcess(write, exited, terminate) {
14
+ let timer;
15
+ try {
16
+ await Promise.race([(async () => {
17
+ await write(Buffer.from("{\"op\":\"close\"}\n"));
18
+ await exited;
19
+ })(), new Promise((resolve) => {
20
+ timer = setTimeout(resolve, 3e3);
21
+ })]).catch(() => {});
22
+ } finally {
23
+ clearTimeout(timer);
24
+ await terminate();
25
+ }
26
+ }
27
+ /** One request in flight, bounded framing, no replay after transport or confirmation failure. */
28
+ var PhoneUiSession = class {
29
+ sequence = 0;
30
+ busy = false;
31
+ closed = false;
32
+ closing;
33
+ buffer = "";
34
+ iterator;
35
+ constructor(transport) {
36
+ this.transport = transport;
37
+ this.iterator = transport.readable[Symbol.asyncIterator]();
38
+ }
39
+ close() {
40
+ if (this.closing) return this.closing;
41
+ this.closed = true;
42
+ this.buffer = "";
43
+ this.closing = this.transport.close();
44
+ return this.closing;
45
+ }
46
+ async request(fields, signal) {
47
+ if (this.closed || this.busy) throw new PhoneError("PHONE_UI_UNAVAILABLE", "Phone observer is closed or busy", 409);
48
+ const combined = AbortSignal.any([signal, AbortSignal.timeout(1e4)]);
49
+ combined.throwIfAborted();
50
+ this.busy = true;
51
+ const id = ++this.sequence;
52
+ let reason = "";
53
+ let abort;
54
+ const cancelled = new Promise((_resolve, reject) => {
55
+ abort = () => {
56
+ this.close().catch(() => {});
57
+ reject(new PhoneError("PHONE_UI_UNAVAILABLE", "Phone observer stopped or timed out", 409));
58
+ };
59
+ combined.addEventListener("abort", abort, { once: true });
60
+ });
61
+ try {
62
+ return await Promise.race([cancelled, (async () => {
63
+ await this.transport.write(Buffer.from(`${JSON.stringify({
64
+ ...fields,
65
+ id
66
+ })}\n`));
67
+ const decoder = new TextDecoder("utf-8", { fatal: true });
68
+ while (!this.buffer.includes("\n")) {
69
+ const next = await this.iterator.next();
70
+ if (next.done || this.closed) throw new Error("Observer disconnected");
71
+ this.buffer += decoder.decode(next.value, { stream: true });
72
+ if (Buffer.byteLength(this.buffer) > 2 * 1024 * 1024) throw new Error("Observer response exceeded limit");
73
+ }
74
+ const end = this.buffer.indexOf("\n");
75
+ const response = JSON.parse(this.buffer.slice(0, end));
76
+ this.buffer = this.buffer.slice(end + 1);
77
+ if (response.id !== id || response.ok !== true) {
78
+ if ([
79
+ "no-root",
80
+ "app",
81
+ "focus",
82
+ "target",
83
+ "value",
84
+ "write",
85
+ "identity",
86
+ "confirmation"
87
+ ].includes(response.error)) reason = ` (${response.error})`;
88
+ throw new Error("Observer request unconfirmed");
89
+ }
90
+ return response;
91
+ })()]);
92
+ } catch {
93
+ await this.close().catch(() => {});
94
+ throw new PhoneError(fields.op === "setText" ? "PHONE_TEXT_INPUT_UNCONFIRMED" : "PHONE_UI_UNAVAILABLE", fields.op === "setText" ? `Field input could not be confirmed${reason}. Inspect the field before retrying.` : "Phone observation failed; reconnect before controlling the phone", 409);
95
+ } finally {
96
+ this.busy = false;
97
+ combined.removeEventListener("abort", abort);
98
+ }
99
+ }
100
+ async snapshot(signal) {
101
+ const response = await this.request({ op: "snapshot" }, signal);
102
+ if (typeof response.xml !== "string" || !response.xml.includes("</hierarchy>")) {
103
+ await this.close();
104
+ throw new PhoneError("PHONE_UI_UNAVAILABLE", "Incomplete phone observation", 409);
105
+ }
106
+ return response.xml;
107
+ }
108
+ async replace(app, target, text, signal) {
109
+ await measurePhonePhase("field_transaction", () => this.request({
110
+ op: "setText",
111
+ app,
112
+ resourceId: target.resourceId,
113
+ bounds: target.bounds.join(","),
114
+ before: target.text,
115
+ text
116
+ }, signal));
117
+ }
118
+ };
119
+ async function openLocalPhoneUi(adbPath, serial, signal) {
120
+ const binary = Buffer.from(PHONE_UI_DEX, "base64");
121
+ const hash = createHash("sha256").update(binary).digest("hex");
122
+ const remote = `/data/local/tmp/xopc-ui-${hash}.dex`;
123
+ const args = ["-s", serial];
124
+ const existing = await runAdb(adbPath, [
125
+ ...args,
126
+ "shell",
127
+ "sha256sum",
128
+ remote
129
+ ], signal).catch(() => Buffer.alloc(0));
130
+ signal.throwIfAborted();
131
+ if (existing.toString().trim().split(/\s+/)[0] !== hash) {
132
+ const work = await mkdtemp(join(tmpdir(), "xopc-ui-"));
133
+ const staging = `${remote}.${randomUUID()}.tmp`;
134
+ try {
135
+ await writeFile(join(work, "helper.dex"), binary, { mode: 384 });
136
+ await runAdb(adbPath, [
137
+ ...args,
138
+ "push",
139
+ join(work, "helper.dex"),
140
+ staging
141
+ ], signal);
142
+ await runAdb(adbPath, [
143
+ ...args,
144
+ "shell",
145
+ "chmod",
146
+ "400",
147
+ staging
148
+ ], signal);
149
+ await runAdb(adbPath, [
150
+ ...args,
151
+ "shell",
152
+ "mv",
153
+ "-f",
154
+ staging,
155
+ remote
156
+ ], signal);
157
+ if ((await runAdb(adbPath, [
158
+ ...args,
159
+ "shell",
160
+ "sha256sum",
161
+ remote
162
+ ], signal)).toString().trim().split(/\s+/)[0] !== hash) throw new PhoneError("PHONE_UI_UNAVAILABLE", "Observer verification failed");
163
+ } finally {
164
+ await rm(work, {
165
+ recursive: true,
166
+ force: true
167
+ });
168
+ await runAdb(adbPath, [
169
+ ...args,
170
+ "shell",
171
+ "rm",
172
+ "-f",
173
+ staging
174
+ ], void 0, 3e3).catch(() => {});
175
+ }
176
+ }
177
+ signal.throwIfAborted();
178
+ const child = spawnPhoneInteractiveCommand(adbPath, [
179
+ ...args,
180
+ "shell",
181
+ "-T",
182
+ "env",
183
+ `CLASSPATH=${remote}`,
184
+ "app_process",
185
+ "/",
186
+ "ai.xopc.phone.PhoneUiDump",
187
+ "--resident"
188
+ ]);
189
+ child.on("error", () => {});
190
+ child.stdin.on("error", () => {});
191
+ const exited = new Promise((resolve) => {
192
+ child.once("close", resolve);
193
+ });
194
+ const write = (data) => new Promise((resolve, reject) => child.stdin.write(data, (error) => error ? reject(error) : resolve()));
195
+ return new PhoneUiSession({
196
+ readable: child.stdout,
197
+ write,
198
+ close: () => closePhoneUiProcess(write, exited, async () => {
199
+ child.stdin.destroy();
200
+ child.stdout.destroy();
201
+ if (child.exitCode !== null || child.signalCode !== null) return;
202
+ await new Promise((resolve) => {
203
+ child.once("close", resolve);
204
+ child.kill();
205
+ });
206
+ })
207
+ });
208
+ }
209
+ //#endregion
210
+ export { PhoneUiSession, closePhoneUiProcess, openLocalPhoneUi };
@@ -2,3 +2,4 @@ import { type ChildProcess } from 'node:child_process';
2
2
  export declare function runPhoneCommandBuffer(program: string, args: string[], signal?: AbortSignal, timeoutMs?: number): Promise<Buffer>;
3
3
  export declare function runPhoneCommandText(program: string, args: string[], signal: AbortSignal): Promise<string>;
4
4
  export declare function spawnPhoneCommand(program: string, args: string[]): ChildProcess;
5
+ export declare function spawnPhoneInteractiveCommand(program: string, args: string[]): import("node:child_process").ChildProcessByStdio<import("node:stream").Writable, import("node:stream").Readable, null>;
@@ -34,5 +34,15 @@ function spawnPhoneCommand(program, args) {
34
34
  windowsHide: true
35
35
  });
36
36
  }
37
+ function spawnPhoneInteractiveCommand(program, args) {
38
+ return spawn(program, args, {
39
+ stdio: [
40
+ "pipe",
41
+ "pipe",
42
+ "ignore"
43
+ ],
44
+ windowsHide: true
45
+ });
46
+ }
37
47
  //#endregion
38
- export { runPhoneCommandBuffer, runPhoneCommandText, spawnPhoneCommand };
48
+ export { runPhoneCommandBuffer, runPhoneCommandText, spawnPhoneCommand, spawnPhoneInteractiveCommand };
@@ -72,6 +72,8 @@ var init_env_keys = __esmMin((() => {
72
72
  dashscope: ["DASHSCOPE_API_KEY", "QWEN_API_KEY"],
73
73
  "dashscope-cn": ["DASHSCOPE_API_KEY", "QWEN_API_KEY"],
74
74
  "dashscope-intl": ["DASHSCOPE_API_KEY", "QWEN_API_KEY"],
75
+ modelscope: ["MODELSCOPE_TOKEN", "MODELSCOPE_API_KEY"],
76
+ "dashscope-phone": ["DASHSCOPE_API_KEY"],
75
77
  "volcengine-ark": ["ARK_API_KEY", "VOLCENGINE_API_KEY"],
76
78
  "volcengine-plan": ["ARK_API_KEY", "VOLCENGINE_API_KEY"],
77
79
  "byteplus-plan": ["BYTEPLUS_API_KEY", "ARK_API_KEY"],
@@ -144,6 +144,7 @@ function getAllProviders() {
144
144
  const providers = /* @__PURE__ */ new Set();
145
145
  for (const p of getProviders()) if (!isRetiredModelProvider(p)) providers.add(p);
146
146
  for (const m of registry.getAll()) if (!isRetiredModelProvider(m.provider)) providers.add(m.provider);
147
+ for (const m of getSupplementalModels()) if (!isRetiredModelProvider(m.provider)) providers.add(m.provider);
147
148
  for (const plugin of getProviderRegistry().listAll()) providers.add(plugin.id);
148
149
  for (const provider of getModelOAuthProviderIds()) providers.add(provider);
149
150
  return Array.from(providers);
@@ -498,6 +499,16 @@ var init_providers = __esmMin((() => {
498
499
  category: "domestic",
499
500
  supportsApiKey: true
500
501
  },
502
+ modelscope: {
503
+ name: "ModelScope",
504
+ category: "domestic",
505
+ supportsApiKey: true
506
+ },
507
+ "dashscope-phone": {
508
+ name: "Bailian Phone Use",
509
+ category: "domestic",
510
+ supportsApiKey: true
511
+ },
501
512
  "volcengine-ark": {
502
513
  name: "Volcengine Ark",
503
514
  category: "domestic",
@@ -6,7 +6,7 @@ export interface CatalogModel {
6
6
  profile: ComputerProfile;
7
7
  };
8
8
  phoneUse?: {
9
- profile: 'autoglm-phone-v1' | 'structured-phone-v1';
9
+ profile: 'autoglm-phone-v1' | 'structured-phone-v1' | 'doubao-seed-phone-v1' | 'gui-owl-phone-v1';
10
10
  };
11
11
  id: string;
12
12
  name: string;
@@ -1,6 +1,6 @@
1
1
  import type { Api, Model } from '@earendil-works/pi-ai';
2
2
  /**
3
- * Local catalog entries required by xopc's Computer Use providers.
3
+ * Local catalog entries required by xopc's Computer and Phone Use providers.
4
4
  * Keep this list narrow: full provider catalogs should come from pi-ai.
5
5
  */
6
6
  export declare function getSupplementalModels(): Model<Api>[];
@@ -1,11 +1,12 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
+ import { getPhoneModels, init_phone_models } from "./phone-models.js";
2
3
  //#region src/providers/model-supplements.ts
3
4
  /**
4
- * Local catalog entries required by xopc's Computer Use providers.
5
+ * Local catalog entries required by xopc's Computer and Phone Use providers.
5
6
  * Keep this list narrow: full provider catalogs should come from pi-ai.
6
7
  */
7
8
  function getSupplementalModels() {
8
- return [{
9
+ return [...getPhoneModels(), {
9
10
  id: "gui-plus-2026-02-26",
10
11
  name: "GUI-Plus (2026-02-26)",
11
12
  provider: "dashscope-cn",
@@ -24,7 +25,9 @@ function getSupplementalModels() {
24
25
  computerUse: { profile: "gui-plus-2026-02-26" }
25
26
  }];
26
27
  }
27
- var init_model_supplements = __esmMin((() => {}));
28
+ var init_model_supplements = __esmMin((() => {
29
+ init_phone_models();
30
+ }));
28
31
  //#endregion
29
32
  init_model_supplements();
30
33
  export { getSupplementalModels, init_model_supplements };
@@ -0,0 +1,3 @@
1
+ import type { Api, Model } from '@earendil-works/pi-ai';
2
+ /** Cloud presets, not a guarantee of account entitlement or free inference. */
3
+ export declare function getPhoneModels(): Model<Api>[];
@@ -0,0 +1,33 @@
1
+ import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
+ //#region src/providers/phone-models.ts
3
+ /** Cloud presets, not a guarantee of account entitlement or free inference. */
4
+ function getPhoneModels() {
5
+ const model = (provider, baseUrl, id, name, profile, contextWindow) => ({
6
+ id,
7
+ name,
8
+ provider,
9
+ baseUrl,
10
+ api: "openai-completions",
11
+ reasoning: false,
12
+ input: ["text", "image"],
13
+ contextWindow,
14
+ maxTokens: 4096,
15
+ cost: {
16
+ input: 0,
17
+ output: 0,
18
+ cacheRead: 0,
19
+ cacheWrite: 0
20
+ },
21
+ phoneUse: { profile },
22
+ compat: {
23
+ supportsDeveloperRole: false,
24
+ supportsReasoningEffort: false,
25
+ maxTokensField: "max_tokens"
26
+ }
27
+ });
28
+ return [model("dashscope-phone", "https://dashscope.aliyuncs.com/compatible-mode/v1", "gui-plus-2026-02-26", "Bailian GUI-Plus · Phone", "gui-owl-phone-v1", 262144), model("volcengine-ark", "https://ark.cn-beijing.volces.com/api/v3", "doubao-seed-2-1-pro-260915", "Doubao Seed 2.1 Pro · Phone", "doubao-seed-phone-v1", 1024e3)];
29
+ }
30
+ var init_phone_models = __esmMin((() => {}));
31
+ //#endregion
32
+ init_phone_models();
33
+ export { getPhoneModels, init_phone_models };
@@ -133,7 +133,6 @@ const RECOMMENDED_MODEL_PATTERNS = {
133
133
  /^qwen3\.7-max$/i,
134
134
  /^qwen3\.6-flash$/i
135
135
  ],
136
- "volcengine-ark": [/^ep-your-endpoint-id$/i],
137
136
  "volcengine-plan": [
138
137
  /^ark-code-latest$/i,
139
138
  /^doubao-seed-2\.0-code$/i,
@@ -9,7 +9,6 @@ import { MAX_WEBCHAT_ATTACHMENT_FILE_BYTES } from "../gateway/chat-limits.js";
9
9
  import { loadConfig } from "../config/loader.js";
10
10
  import { ensureStarterAgentsInitialized } from "../agent/starter-agents.js";
11
11
  import "../config/index.js";
12
- import { resolveTuiConversationId, resolveTuiStartupConversationId } from "../routing/resolve-tui-session-key.js";
13
12
  import { applyThemeById, getBashExcludeBorderColor, getBashModeBorderColor, getCustomThemesDir, getThemeExports, getThinkingBorderColor, initTuiTheme, listAvailableThemeIds, resolveThemePalette } from "./theme-manager.js";
14
13
  import { editorTheme, theme } from "./theme.js";
15
14
  import { extensionForImageMimeType, readClipboardImage } from "./clipboard-image.js";
@@ -42,6 +41,7 @@ import { createEditorSubmitHandler, createSubmitBurstCoalescer, shouldEnableWind
42
41
  import { withTuiSuspended } from "./tui-suspend.js";
43
42
  import { createInitialState } from "./tui-types.js";
44
43
  import { TuiDraftFileStore } from "./backends/embedded-drafts.js";
44
+ import { resolveTuiConversationId, resolveTuiStartupConversationId } from "../routing/resolve-tui-session-key.js";
45
45
  import { EmbeddedBackend } from "./backends/embedded-backend.js";
46
46
  import { GatewayRealtimeBackend } from "./backends/gateway-realtime-backend.js";
47
47
  import { ChatLog } from "./components/chat-log.js";
@@ -43,7 +43,7 @@ export declare function requirePlatformVoiceModel(id: string, mode: VoiceModeCap
43
43
  profile: import("@xopcai/computer-control-contract/src/index.js").ComputerProfile;
44
44
  };
45
45
  phoneUse?: {
46
- profile: "autoglm-phone-v1" | "structured-phone-v1";
46
+ profile: "autoglm-phone-v1" | "structured-phone-v1" | "doubao-seed-phone-v1" | "gui-owl-phone-v1";
47
47
  };
48
48
  id: string;
49
49
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xopcai/xopc",
3
- "version": "0.0.424",
3
+ "version": "0.0.426",
4
4
  "description": "Local-first personal AI with Ada, task delegation, files, projects and automations. Use cloud or local models.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -230,6 +230,7 @@
230
230
  "test:plugins:store:e2e": "cross-env XOPC_LOG_LEVEL=fatal tsx scripts/verify-store-plugin-e2e.mts",
231
231
  "test:plugins:fixtures": "tsx scripts/build-store-plugin-lab.mts",
232
232
  "test:plugins:browser": "cross-env XOPC_LOG_LEVEL=fatal tsx scripts/verify-plugin-setup-browser.mts",
233
+ "test:web:activity:e2e": "pnpm run build:node && pnpm run build:web && tsx scripts/verify-assistant-activity-browser.mts",
233
234
  "test:web:clarification:e2e": "pnpm run build:node && pnpm run build:web && tsx scripts/verify-clarification-browser.mts",
234
235
  "test:web:onboarding-visual": "node scripts/test-onboarding-visual.mjs",
235
236
  "test:web:onboarding-visual:update": "node scripts/test-onboarding-visual.mjs --update",